Changes between Version 2 and Version 3 of fr-Instance_configuration_file


Ignore:
Timestamp:
Jun 16, 2008, 4:12:52 AM (17 years ago)
Author:
rosiere
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • fr-Instance_configuration_file

    v2 v3  
    55Afin de générer une instance, le générateur à besoin des directives de l'utilisateur. C'est l'objectif du '''fichier de configurations de l'Instance'''
    66
     7Voici un exemple pour voir sa syntaxe
     8
    79{{{
     10#!xml
     11
    812<?xml version="1.0" encoding="ISO-8859-1" ?>
    913
     
    1418       **************************** -->
    1519
    16   <core size_data="..." > <!-- 1 -->
    17 
    18     <cache_unit> <!-- 1 -->
    19 
    20       <icache id="..."
    21               arbiter="..."
    22               nb_port="..." /> <!-- 1+ -->
    23 
    24       <dcache id="..."
    25               arbiter="..."
    26               nb_port="..." /> <!-- 1+ -->
    27 
    28     </cache_unit>
    29 
    30     <front_end id="..."
    31                link_icache="..."
    32                link_out_of_order_engine="..."> <!-- 1+ -->
    33 
    34       <fetch_unit> <!-- 1 -->
    35 
    36         <ifetch id="..."
    37                 nb_inst="..."
    38                 size_queue="..."
    39                 link_decod="..." /> <!-- 1+ -->
    40 
    41       </fetch_unit>
    42 
    43       <prediction_unit arbiter="..."
    44                        nb_prediction="..."
    45                        nb_branch_complete="..." > <!-- 1 -->
    46 
    47         <branch_target_buffer size_queue="..."
    48                               associativity="..." /> <!-- 1 -->
    49 
    50         <return_address_stack size_queue="..." /> <!-- 1 -->
    51 
    52         <branch_context       size_queue="..." /> <!-- 1 -->
    53 
    54         <meta_predictor       have_meta_predictor="..."
    55                               predictor_0_have_bht="..."
    56                               predictor_0_bht_size_shifter="..."
    57                               predictor_0_bht_nb_shifter="..."
    58                               predictor_0_have_pht="..."
    59                               predictor_0_pht_size_counter="..."
    60                               predictor_0_pht_nb_counter="..."
    61                               predictor_0_pht_size_address_share="..."
    62                               predictor_1_have_bht="..."
    63                               predictor_1_bht_size_shifter="..."
    64                               predictor_1_bht_nb_shifter="..."
    65                               predictor_1_have_pht="..."
    66                               predictor_1_pht_size_counter="..."
    67                               predictor_1_pht_nb_counter="..."
    68                               predictor_1_pht_size_address_share="..."
    69                               predictor_2_have_bht="..."
    70                               predictor_2_bht_size_shifter="..."
    71                               predictor_2_bht_nb_shifter="..."
    72                               predictor_2_have_pht="..."
    73                               predictor_2_pht_size_counter="..."
    74                               predictor_2_pht_nb_counter="..."
    75                               predictor_2_pht_size_address_share="..." /> <!-- 1 -->
    76       </prediction_unit>
    77 
    78       <decod_unit> <!-- 1 -->
    79 
    80         <decod id="..."
    81                arbiter="..."
    82                nb_branch_decod="..."
    83                nb_inst="..."
    84                size_queue="..."
    85                link_rename="..." /> <!-- 1+ -->
    86 
    87       </decod_unit>
    88 
    89     </front_end>
    90 
    91     <out_of_order_engine id="..."
    92                          link_execution_loop="..."> <!-- 1+ -->
    93 
    94       <rename arbiter="..."
    95               nb_inst="..."
    96               size_queue="..."
    97               size_windows="..."
    98               nb_gpr_physical="..."
    99               nb_gpr_free="..."
    100               nb_spr_physical="..."
    101               nb_spr_free="..." /> <!-- 1+ -->
    102 
    103       <commit arbiter="..."
    104               nb_inst="..."
    105               size_queue="..."
    106               size_windows="..."
    107               commit_out_of_order_thread="..." /> <!-- 1 -->
    108 
    109     </out_of_order_engine>
    110 
    111     <execution_loop id="..."
    112                     link_dcache="..." > <!-- 1+ -->
    113 
    114       <read_unit> <!-- 1 -->
    115 
    116         <reservation_station id="..."
    117                              size_queue="..."
    118                              one_queue="..." > <!-- 1+ -->
    119 
    120           <link id="..."> <!-- 1+ -->
    121 
    122         </reservation_station>
    123 
    124       </read_unit>
    125 
    126       <memory_unit size_queue="..."
    127                    one_queue="..."
    128                    nb_inst="..."
    129                    size_windows="..."
    130                    bypass_memory_out="..."
    131                    keep_data="..."
    132                    speculated_memory_read="..." > <!-- 1 -->
    133 
    134           <link id="..."> <!-- 1+ -->
    135 
    136       </memory_unit>
    137 
    138       <execution_unit> <!-- 1 -->
    139 
    140         <execution id="..."
    141                    type_mul="..."
    142                    type_div="..."
    143                    type_ext="..."
    144                    type_ff1="..."
    145                    type_fl1="..." /> <!-- 1+ -->
    146 
    147       </execution_unit>
    148 
    149       <write_unit> <!-- 1 -->
    150 
    151         <writeback id="..."
    152                    size_queue="..."
    153                    one_queue="..."
    154                    bypass_execute_gpr="..."
    155                    bypass_execute_spr="..."
    156                    bypass_memory_in="..." > <!-- 1+ -->
    157 
    158           <link id="..."> <!-- 1+ -->
    159 
    160         </writeback>
    161 
    162       </write_unit>
    163      
    164     </execution_loop>
    165 
    166   </core>
    167 
    168 </cpu>
    169 
    170 }}}
    171 
    172 Un petit exemple :
    173 
    174 {{{
    175 <?xml version="1.0" encoding="ISO-8859-1" ?>
    176 
    177 <cpu name="nom_instance" >
    178 
    179   <core size_data="32" >
    180 
    181     <cache_unit>
    182       <icache id="0"  arbiter="0" nb_port="1" />
    183       <dcache id="0"  arbiter="0" nb_port="1" />
    184     </cache_unit>
    185 
    186     <front_end id="0" link_icache="0" link_out_of_order_engine="0">
    187       <fetch_unit>
    188         <ifetch id="0" nb_inst="1" size_queue="4" link_decod="0" />
    189         <ifetch id="1" nb_inst="1" size_queue="4" link_decod="0" />
    190       </fetch_unit>
    191 
    192       <prediction_unit arbiter="0" nb_prediction="1" nb_branch_complete="1" >
    193         <branch_target_buffer size_queue="32" associativity="4" />
    194         <return_address_stack size_queue="8" />
    195         <branch_context       size_queue="8" />
    196         <meta_predictor       have_meta_predictor="1"
    197                               predictor_0_have_bht="1"
    198                               predictor_0_bht_size_shifter="10"
    199                               predictor_0_bht_nb_shifter="16"
    200                               predictor_0_have_pht="0"
    201                               predictor_1_have_bht="0"
    202                               predictor_1_have_pht="1"
    203                               predictor_1_pht_size_counter="2"
    204                               predictor_1_pht_nb_counter="64"
    205                               predictor_1_pht_size_address_share="3"
    206                               predictor_2_have_bht="1"
    207                               predictor_2_bht_size_shifter="4"
    208                               predictor_2_bht_nb_shifter="32"
    209                               predictor_2_have_pht="1"
    210                               predictor_2_pht_size_counter="2"
    211                               predictor_2_pht_nb_counter="32"
    212                               predictor_2_pht_size_address_share="4" />
    213       </prediction_unit>
    214 
    215       <decod_unit>
    216         <decod id="0" arbiter="0" nb_branch_decod="1" nb_inst="1" size_queue="4" link_rename="0" />
    217       </decod_unit>
    218 
    219     </front_end>
    220 
    221     <out_of_order_engine id="0" link_execution_loop="0"> <!-- 1+ -->
    222 
    223       <rename arbiter="1"
    224               nb_inst="1"
    225               size_queue="8"
    226               size_windows="3"
    227               nb_gpr_physical="64"
    228               nb_gpr_free="2"
    229               nb_spr_physical="16"
    230               nb_spr_free="1" />
    231 
    232       <commit arbiter="0"
    233               nb_inst="1"
    234               size_queue="32"
    235               size_windows="2"
    236               commit_out_of_order_thread="1" />
    237 
    238     </out_of_order_engine>
    239 
    240     <execution_loop id="0">
    241 
    242       <read_unit>
    243         <reservation_station id="0" size_queue="4" one_queue="1" >
    244           <link id="0">
    245         </reservation_station>
    246       </read_unit>
    247 
    248       <memory_unit size_queue="8"
    249                    one_queue="1"
    250                    nb_inst="1"
    251                    size_windows="2"
    252                    bypass_memory_out="1"
    253                    keep_data="1"
    254                    speculated_memory_read="1" >
    255           <link id="0">
    256       </memory_unit>
    257 
    258       <execution_unit>
    259         <execution id="0"
    260                    type_mul="1"
    261                    type_div="0"
    262                    type_ext="0"
    263                    type_ff1="1"
    264                    type_fl1="1" />
    265       </execution_unit>
    266 
    267       <write_unit>
    268         <writeback id="0"
    269                    size_queue="4"
    270                    one_queue="1"
    271                    bypass_execute_gpr="1"
    272                    bypass_execute_spr="1"
    273                    bypass_memory_in="0" >
    274           <link id="0">
    275         </writeback>
    276       </write_unit>
    277      
    278     </execution_loop>
    279   </core>
    280 </cpu>
    281 
    282 }}}
    283 
    284 
    285 Autres exemple :
    286 
    287 {{{
    288 <?xml version="1.0" encoding="ISO-8859-1" ?>
    289 
    290 <cpu name="nom_instance" >
    291 
    29220  <core>
     21    <!-- les paramètres sont placés dans des singletons "parameter", ces derniers ont deux attributs : name et value -->
    29322    <parameter name="size_data" value="32" />
    29423
    29524    <cache_unit>
     25      <!-- les balise avec des attributs id représentes des composants internes -->
    29626      <icache id="0">
    29727        <parameter name="arbiter" value="0" />