source: trunk/IPs/systemC/processor/Morpheo/Configuration/SelfTest/data/test2.xml @ 2

Last change on this file since 2 was 2, checked in by kane, 17 years ago

Import Morpheo

File size: 9.5 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2
3<cpu name="my_cpu">
4 
5  <!-- **************************** -->
6  <!-- * Définition du processeur * -->
7  <!-- **************************** -->
8
9  <definition>
10    <!-- Définition global s'applique à tous le proc -->
11    <global>
12      <size_data                                 value="32"     />        <!-- Balise Optionnel (defaut : 32 )     -->
13      <scheme_bypass                             algo ="complet"/>        <!-- Balise Optionnel (defaut : complet) -->
14      <isa> 
15        <ORBIS                                   value="true" type="2" /> <!-- Balise Obligatoire, attribut "type" optionniel (default : 1) -->
16        <ORFPX                                   value="false"  />        <!-- Balise Obligatoire, attribut "type" optionniel (default : 1) -->
17        <ORVDX                                   value="false"  />        <!-- Balise Obligatoire, attribut "type" optionniel (default : 1) -->
18      </isa>
19    </global>
20
21    <cache>
22      <icache id="0">
23         <arbiter                              algo ="roundrobin" />
24         <nb_icache_port                       value="2"     />
25      </icache>
26      <dcache id="0">
27           <arbiter                              algo ="roundrobin" />
28           <nb_dcache_port                       value="2"     />
29      </dcache>
30    </cache>
31
32    <!-- Etage 1 : Ifetch -->
33    <ifetch id="0">
34         <nb_inst_fetch                          value="4"     />
35         <size_fetch_queue                       value="3"     />
36
37         <link_icache                            id="0"        />
38         <link_decod                             id="0"        />
39         <link_predictor                         id="0"        />
40    </ifetch>                                                     
41
42    <!-- Predicteur de branchement -->                                                         
43    <prediction>                                               
44      <instance id="0">                                       
45         <arbiter                                algo ="roundrobin" />
46
47         <scheme_predictor                       algo ="all"   />
48         <size_branch_target_buffer              value="32"    />
49         <associativity_branch_target_buffer     value="4"     />
50
51         <meta_predictor>                                                     
52           <size_prediction                      value="32"    />
53           <nb_bit_counter                       value="2"     />
54         </meta_predictor>             
55
56         <global_predictor>                                   
57           <size_prediction_history_table        value="4"     />
58           <size_prediction                      value="16"    />
59           <nb_bit_counter                       value="2"     />
60         </global_predictor>
61       
62         <local_predictor>
63           <size_prediction_history_table        value="4"     />
64           <size_prediction_l1                   value="8"     />
65           <size_prediction_l2                   value="16"    />
66           <nb_bit_counter                       value="2"     />
67           <xor                                  value="false" />
68         </local_predictor>
69
70         <size_return_address_stack              value="8"     />
71         <size_update_prediction                 value="4"     />
72
73      </instance>                                             
74    </prediction>                                             
75
76    <branch_queue>
77      <instance id="0">
78         <arbiter                                algo ="roundrobin" />
79         <nb_branch_speculated                   value="4"     />
80         <nb_branch_complete                     value="1"     />
81      </instance>
82    </branch_queue>
83       
84    <!-- Etage 2 : Décodage -->                                               
85    <decod>                                                   
86      <instance id="0">                                       
87         <arbiter                                algo ="roundrobin" />
88         <link_rename                            id="0"        />
89         <link_branch_queue                      id="0"        />
90         <nb_inst_decod                          value="3"     />
91         <nb_inst_rename                         value="3"     />
92         <size_decod_queue                       value="4"     />
93      </instance>                                                 
94    </decod>                                                   
95                                                               
96    <!-- Etage 3 : Renommage -->
97    <rename>                                                   
98      <instance id="0">                                       
99         <arbiter                                algo ="roundrobin" />
100
101         <slot>
102           <route                                id="0"        />
103         </slot>
104
105         <link_commit                            id="0"        />
106         <link_load_store_queue                  id="0"        />
107         <link_special_register_file             id="0"        />
108         <nb_inst_rename                         value="5"     />
109         <nb_inst_select_windows                 value="9"     />
110         <size_rename_queue                      value="15"    />
111         <nb_gpr_phy                             value="128"   />
112         <nb_gpr_free                            value="4"     />
113         <nb_spr_phy                             value="32"    />
114         <nb_spr_free                            value="2"     />
115      </instance>                                             
116    </rename>
117
118    <!-- Etage 4   Selection/Issue -->
119    <select_issue>
120      <!-- lien entre un slot est un cluster -->
121      <slot id="0">
122        <!-- lien entre un cluster et une waitunit -->
123        <cluster id="0">
124          <route                                 id="0"        />
125        </cluster>
126      </slot>
127    </select_issue>
128
129    <!-- Etage 5 : Execution -->
130    <execute>
131
132      <!-- Clusterisation des unités d'éxecution -->
133      <cluster id="0">
134         <!-- bypass intra cluster -->
135         <bypass_register                        value="false" />
136         <bypass_status                          value="false" />
137         
138         <!-- Wait Unit (Selection queue - Reservation Station) -->
139         <waitunit>
140           <instance id="0">
141              <size_select_queue                 value="4"     />
142              <size_reservation_station          value="4"     />
143              <dispatch>
144                <route                           id="0"        />
145              </dispatch>
146           </instance>
147         </waitunit>
148
149         <!-- Executive Unit (Ue (type des opérations accepté et latence des opérations) - Execute queue) -->
150         <executiveunit>
151           <instance id="0">
152              <arbiter                           algo ="roundrobin" />
153              <size_execute_queue                value="4"     />
154              <nb_inst_execute                   value="2"     />
155              <type                              value="0"     />
156              <latence                           value="0"     />
157           </instance>
158         </executiveunit>
159
160      </cluster>
161    </execute>
162
163    <!-- Etage 5bis : Memory -->
164    <memory>
165      <instance id="0">                                       
166         <arbiter                                algo ="roundrobin" />
167         <link_dcache                            id="0"        />
168         <link_commit                            id="0"        />
169         <nb_inst_commit                         value="4"     />
170         <nb_memory_complete                     value="5"     />
171         <size_load_store_queue                  value="32"    />
172         <bypass_memory_in                       value="false" />
173         <bypass_memory_out                      value="false" />
174         <bypass_memory_internal                 value="false" />
175      </instance>
176    </memory>
177
178    <!-- Banc de registres
179         (Autant de RegFile que d'étage 3) -->
180    <general_registerfile>
181      <instance id="0">                                       
182         <arbiter                                algo ="roundrobin" />
183         <nb_gpr_reader                          value="5"     />
184         <nb_gpr_writer                          value="5"     />
185         <nb_spr_reader                          value="5"     />
186         <nb_spr_writer                          value="5"     />
187      </instance>
188    </general_registerfile>
189
190    <!-- Etage 6 : Commit -->
191    <commit>
192      <instance id="0">                                       
193         <arbiter                                algo ="roundrobin" />
194         <nb_inst_commit                         value="4"     />
195         <nb_inst_update                         value="5"     />
196         <nb_inst_update_windows                 value="9"     />
197         <size_re_order_buffer                   value="32"    />
198         <commit_out_of_order_thread             value="false" />
199      </instance>
200    </commit>
201  </definition>
202
203  <!-- ******** -->
204  <!-- * Type * -->
205  <!-- ******** -->
206
207  <type>
208    <!-- definition : pour chaque instance, definit les types autorisé -->
209    <enumerate>
210      <instance id="0">
211        <allow id="0" />
212        <allow id="2" />
213      </instance>
214    </enumerate>
215
216    <!-- pour chaque operation, définit le type d'appartenance.
217         default : 0 -->
218    <affectation>
219        <operation name="INST_L_ADD" type="0"/>
220        <operation name="INST_L_SUB" type="0"/>
221        <operation name="INST_L_AND" type="1"/>
222        <operation name="INST_L_XOR" type="1"/>
223        <operation name="INST_L_MUL" type="2"/>
224        <operation name="INST_L_DIV" type="2"/>
225    </affectation>
226  </type>
227
228  <!-- *********** -->
229  <!-- * Latence * -->
230  <!-- *********** -->
231
232  <!-- liste pour chaque opération leur delay et latence,
233       default : latence = 1, delay = 1 -->
234  <latence>
235    <instance id="0">
236      <operation name="INST_L_ADD" delay="1" latence="2" />
237      <operation name="INST_L_MUL" delay="8" latence="4" />
238    </instance>
239  </latence>
240
241</cpu>
Note: See TracBrowser for help on using the repository browser.