Ignore:
Timestamp:
Feb 1, 2011, 9:57:54 PM (13 years ago)
Author:
rosiere
Message:

1) Integration of RegisterFile_Internal_Banked in RegisterFile?
2) Erase "read_write" interface in RegisterFile_Monolithic component
3) Add smith predictor parameters in Load_store_pointer_unit.
4) Fix not statistics flags

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/src/Parameters.cpp

    r145 r146  
    150150  uint32_t             ** lsu_pht_size_counter                          ,//[nb_load_store_unit][1]
    151151  uint32_t             ** lsu_pht_nb_counter                            ,//[nb_load_store_unit][1]
     152  Tpht_scheme_t        ** lsu_pht_scheme                                ,//[nb_load_store_unit][1]
    152153  uint32_t              * nb_bypass_memory                              ,//[nb_load_store_unit]
    153154  uint32_t              * nb_cache_port                                 ,//[nb_load_store_unit]
     
    189190  uint32_t             ** dir_pht_nb_counter                            ,//[nb_front_end][3]
    190191  uint32_t             ** dir_pht_size_address_share                    ,//[nb_front_end][3]
     192  Tpht_scheme_t        ** dir_pht_scheme                                ,//[nb_front_end][3]
    191193
    192194  // OOO_Engine
     
    312314    _lsu_pht_size_counter                    = lsu_pht_size_counter                    ;
    313315    _lsu_pht_nb_counter                      = lsu_pht_nb_counter                      ;
     316    _lsu_pht_scheme                          = lsu_pht_scheme                          ;
    314317    _nb_bypass_memory                        = nb_bypass_memory                        ;
    315318    _nb_cache_port                           = nb_cache_port                           ;
     
    346349    _dir_pht_nb_counter                      = dir_pht_nb_counter                      ;
    347350    _dir_pht_size_address_share              = dir_pht_size_address_share              ;
     351    _dir_pht_scheme                          = dir_pht_scheme                          ;
    348352
    349353    _nb_ooo_engine                           = nb_ooo_engine                           ;
     
    13551359    ALLOC3(_ooo_engine_size_store_queue                   ,uint32_t         ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2]);
    13561360    ALLOC3(_ooo_engine_size_load_queue                    ,uint32_t         ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2]);
     1361    ALLOC3(_ooo_engine_speculative_commit_predictor_scheme,Tpredictor_t     ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2]);
     1362    ALLOC4(_ooo_engine_lsu_pht_size_counter               ,uint32_t         ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2],1);
     1363    ALLOC4(_ooo_engine_lsu_pht_nb_counter                 ,uint32_t         ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2],1);
     1364    ALLOC4(_ooo_engine_lsu_pht_scheme                     ,Tpht_scheme_t    ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2],1);
    13571365    ALLOC3(_ooo_engine_nb_inst_memory                     ,uint32_t         ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2]);
    13581366    ALLOC3(_ooo_engine_link_load_store_unit_with_context  ,uint32_t         ,_nb_ooo_engine,_ooo_engine_nb_front_end[it1],_ooo_engine_nb_context[it1][it2]);
     
    13651373              uint32_t num_load_store_unit = _list_load_store_unit_with_rename_unit[i][j][k];
    13661374             
    1367               _ooo_engine_size_store_queue [i][j][k] = _size_store_queue[num_load_store_unit];
    1368               _ooo_engine_size_load_queue  [i][j][k] = _size_load_queue [num_load_store_unit];
    1369               _ooo_engine_nb_inst_memory   [i][j][k] = _nb_inst_memory  [num_load_store_unit];
     1375              _ooo_engine_size_store_queue                    [i][j][k] = _size_store_queue                    [num_load_store_unit];
     1376              _ooo_engine_size_load_queue                     [i][j][k] = _size_load_queue                     [num_load_store_unit];
     1377              _ooo_engine_speculative_commit_predictor_scheme [i][j][k] = _speculative_commit_predictor_scheme [num_load_store_unit];
     1378              for (uint32_t l=0; l<1; ++l)
     1379                {
     1380                  _ooo_engine_lsu_pht_size_counter [i][j][k][l] = _lsu_pht_size_counter [num_load_store_unit][l];
     1381                  _ooo_engine_lsu_pht_nb_counter   [i][j][k][l] = _lsu_pht_nb_counter   [num_load_store_unit][l];
     1382                  _ooo_engine_lsu_pht_scheme       [i][j][k][l] = _lsu_pht_scheme       [num_load_store_unit][l];
     1383                }
     1384              _ooo_engine_nb_inst_memory                      [i][j][k] = _nb_inst_memory                      [num_load_store_unit];
    13701385            }
    13711386
     
    16731688                                                                                ,_nb_execute_loop,_execute_loop_nb_load_store_unit[it1]);
    16741689    ALLOC2(_execute_loop_speculative_commit_predictor_scheme       ,Tpredictor_t,_nb_execute_loop,_execute_loop_nb_load_store_unit[it1]);
    1675     ALLOC3(_execute_loop_lsu_pht_size_counter                      ,uint32_t    ,_nb_execute_loop,_execute_loop_nb_load_store_unit[it1],1);
    1676     ALLOC3(_execute_loop_lsu_pht_nb_counter                        ,uint32_t    ,_nb_execute_loop,_execute_loop_nb_load_store_unit[it1],1);
     1690    // ALLOC3(_execute_loop_lsu_pht_size_counter                      ,uint32_t    ,_nb_execute_loop,_execute_loop_nb_load_store_unit[it1],1);
     1691    // ALLOC3(_execute_loop_lsu_pht_nb_counter                        ,uint32_t    ,_nb_execute_loop,_execute_loop_nb_load_store_unit[it1],1);
    16771692    ALLOC2(_execute_loop_nb_bypass_memory                          ,uint32_t    ,_nb_execute_loop,_execute_loop_nb_load_store_unit[it1]);
    16781693    ALLOC2(_execute_loop_nb_cache_port                             ,uint32_t    ,_nb_execute_loop,_execute_loop_nb_load_store_unit[it1]);
     
    16951710          _execute_loop_speculative_load                    [i][j] = _speculative_load                    [num_load_store_unit];
    16961711          _execute_loop_speculative_commit_predictor_scheme [i][j] = _speculative_commit_predictor_scheme [num_load_store_unit];
    1697           for (uint32_t k=0; k<1; ++k)
    1698             {
    1699           _execute_loop_lsu_pht_size_counter             [i][j][k] = _lsu_pht_size_counter                [num_load_store_unit][k];
    1700           _execute_loop_lsu_pht_nb_counter               [i][j][k] = _lsu_pht_nb_counter                  [num_load_store_unit][k];
    1701             }
     1712          // for (uint32_t k=0; k<1; ++k)
     1713          //   {
     1714          // _execute_loop_lsu_pht_size_counter             [i][j][k] = _lsu_pht_size_counter                [num_load_store_unit][k];
     1715          // _execute_loop_lsu_pht_nb_counter               [i][j][k] = _lsu_pht_nb_counter                  [num_load_store_unit][k];
     1716          //   }
    17021717          _execute_loop_nb_bypass_memory                    [i][j] = _nb_bypass_memory                    [num_load_store_unit];
    17031718          _execute_loop_nb_cache_port                       [i][j] = _nb_cache_port                       [num_load_store_unit];
     
    21152130        _dir_pht_nb_counter                     [i],
    21162131        _dir_pht_size_address_share             [i],
     2132        _dir_pht_scheme                         [i],
    21172133        _front_end_ras_size_queue               [i],
    21182134        _front_end_upt_size_queue               [i],
     
    21312147    _param_ooo_engine [i] = new core::multi_ooo_engine::ooo_engine::Parameters
    21322148      (
    2133        _ooo_engine_nb_front_end                      [i],
    2134        _ooo_engine_nb_context                        [i],
    2135        _nb_rename_unit                               [i],
    2136        _ooo_engine_nb_execute_loop                   [i],
    2137        _ooo_engine_nb_inst_decod                     [i],
    2138        _ooo_engine_nb_inst_insert                    [i],
    2139        _ooo_engine_nb_inst_retire                    [i],
    2140 //     _nb_inst_issue                                [i],
    2141        _ooo_engine_nb_inst_execute                   [i],
    2142        _nb_inst_reexecute                            [i],
    2143        _nb_inst_commit                               [i],
    2144        _nb_inst_branch_complete                      [i],
    2145        _ooo_engine_nb_branch_speculated              [i],
    2146        _size_nb_inst_decod                              ,
    2147        _nb_rename_unit_select                        [i],
    2148        _nb_execute_loop_select                       [i],
    2149        _size_general_data                               ,
    2150        _size_special_data                               ,
    2151        _ooo_engine_link_rename_unit_with_front_end   [i],
    2152        _size_re_order_buffer                         [i],
    2153        _nb_re_order_buffer_bank                      [i],
    2154        _retire_ooo_scheme                            [i],
    2155        _commit_priority                              [i],
    2156        _commit_load_balancing                        [i],
    2157        _size_issue_queue                             [i],
    2158        _issue_queue_scheme                           [i],
    2159        _nb_issue_queue_bank                          [i],
    2160        _issue_priority                               [i],
    2161        _issue_load_balancing                         [i],
    2162 //     _ooo_engine_table_routing                     [i],
    2163 //     _ooo_engine_table_issue_type                  [i],
    2164        _size_reexecute_queue                         [i],
    2165        _ooo_engine_rename_select_priority            [i],
    2166        _ooo_engine_rename_select_load_balancing      [i],
    2167        _ooo_engine_rename_select_nb_front_end_select [i],
    2168        _ooo_engine_nb_general_register               [i],
    2169        _ooo_engine_nb_special_register               [i],
    2170        _ooo_engine_rat_scheme                        [i],
    2171        _ooo_engine_nb_reg_free                       [i],
    2172        _ooo_engine_nb_rename_unit_bank               [i],
    2173 //     _ooo_engine_size_read_counter                 [i],
    2174        _ooo_engine_nb_load_store_unit                [i],
    2175        _ooo_engine_size_store_queue                  [i],
    2176        _ooo_engine_size_load_queue                   [i],
    2177        _ooo_engine_nb_inst_memory                    [i],
    2178        _ooo_engine_link_load_store_unit_with_context [i],
    2179        _ooo_engine_implement_group                   [i],
    2180        _nb_thread                                       ,
     2149       _ooo_engine_nb_front_end                       [i],
     2150       _ooo_engine_nb_context                         [i],
     2151       _nb_rename_unit                                [i],
     2152       _ooo_engine_nb_execute_loop                    [i],
     2153       _ooo_engine_nb_inst_decod                      [i],
     2154       _ooo_engine_nb_inst_insert                     [i],
     2155       _ooo_engine_nb_inst_retire                     [i],
     2156//     _nb_inst_issue                                 [i],
     2157       _ooo_engine_nb_inst_execute                    [i],
     2158       _nb_inst_reexecute                             [i],
     2159       _nb_inst_commit                                [i],
     2160       _nb_inst_branch_complete                       [i],
     2161       _ooo_engine_nb_branch_speculated               [i],
     2162       _size_nb_inst_decod                               ,
     2163       _nb_rename_unit_select                         [i],
     2164       _nb_execute_loop_select                        [i],
     2165       _size_general_data                                ,
     2166       _size_special_data                                ,
     2167       _ooo_engine_link_rename_unit_with_front_end    [i],
     2168       _size_re_order_buffer                          [i],
     2169       _nb_re_order_buffer_bank                       [i],
     2170       _retire_ooo_scheme                             [i],
     2171       _commit_priority                               [i],
     2172       _commit_load_balancing                         [i],
     2173       _size_issue_queue                              [i],
     2174       _issue_queue_scheme                            [i],
     2175       _nb_issue_queue_bank                           [i],
     2176       _issue_priority                                [i],
     2177       _issue_load_balancing                          [i],
     2178//     _ooo_engine_table_routing                      [i],
     2179//     _ooo_engine_table_issue_type                   [i],
     2180       _size_reexecute_queue                          [i],
     2181       _ooo_engine_rename_select_priority             [i],
     2182       _ooo_engine_rename_select_load_balancing       [i],
     2183       _ooo_engine_rename_select_nb_front_end_select  [i],
     2184       _ooo_engine_nb_general_register                [i],
     2185       _ooo_engine_nb_special_register                [i],
     2186       _ooo_engine_rat_scheme                         [i],
     2187       _ooo_engine_nb_reg_free                        [i],
     2188       _ooo_engine_nb_rename_unit_bank                [i],
     2189//     _ooo_engine_size_read_counter                  [i],
     2190       _ooo_engine_nb_load_store_unit                 [i],
     2191       _ooo_engine_size_store_queue                   [i],
     2192       _ooo_engine_size_load_queue                    [i],
     2193       _ooo_engine_speculative_commit_predictor_scheme[i],
     2194       _ooo_engine_lsu_pht_size_counter               [i],
     2195       _ooo_engine_lsu_pht_nb_counter                 [i],
     2196       _ooo_engine_lsu_pht_scheme                     [i],
     2197       _ooo_engine_nb_inst_memory                     [i],
     2198       _ooo_engine_link_load_store_unit_with_context  [i],
     2199       _ooo_engine_implement_group                    [i],
     2200       _nb_thread                                        ,
    21812201       _ooo_engine_translate_num_context_to_num_thread[i]
    21822202       );
     
    22182238         _execute_loop_speculative_load                           [i],
    22192239         _execute_loop_speculative_commit_predictor_scheme        [i],
    2220          _execute_loop_lsu_pht_size_counter                       [i],
    2221          _execute_loop_lsu_pht_nb_counter                         [i],
     2240         // _execute_loop_lsu_pht_size_counter                       [i],
     2241         // _execute_loop_lsu_pht_nb_counter                         [i],
    22222242         _execute_loop_nb_bypass_memory                           [i],
    22232243         _execute_loop_nb_cache_port                              [i],
     
    23922412    DELETE2(_execute_loop_nb_cache_port                             ,_nb_execute_loop,_execute_loop_nb_load_store_unit[it1]);
    23932413    DELETE2(_execute_loop_nb_bypass_memory                          ,_nb_execute_loop,_execute_loop_nb_load_store_unit[it1]);
    2394     DELETE3(_execute_loop_lsu_pht_nb_counter                        ,_nb_execute_loop,_execute_loop_nb_load_store_unit[it1],1);
    2395     DELETE3(_execute_loop_lsu_pht_size_counter                      ,_nb_execute_loop,_execute_loop_nb_load_store_unit[it1],1);
     2414    // DELETE3(_execute_loop_lsu_pht_nb_counter                        ,_nb_execute_loop,_execute_loop_nb_load_store_unit[it1],1);
     2415    // DELETE3(_execute_loop_lsu_pht_size_counter                      ,_nb_execute_loop,_execute_loop_nb_load_store_unit[it1],1);
    23962416    DELETE2(_execute_loop_speculative_commit_predictor_scheme       ,_nb_execute_loop,_execute_loop_nb_load_store_unit[it1]);
    23972417    DELETE2(_execute_loop_speculative_load                          ,_nb_execute_loop,_execute_loop_nb_load_store_unit[it1]);
     
    24232443    DELETE3(_ooo_engine_link_load_store_unit_with_context           ,_nb_ooo_engine,_ooo_engine_nb_front_end[it1],_ooo_engine_nb_context[it1][it2]);
    24242444    DELETE3(_ooo_engine_nb_inst_memory                              ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2]);
     2445    DELETE4(_ooo_engine_lsu_pht_scheme                              ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2],1);
     2446    DELETE4(_ooo_engine_lsu_pht_nb_counter                          ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2],1);
     2447    DELETE4(_ooo_engine_lsu_pht_size_counter                        ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2],1);
     2448    DELETE3(_ooo_engine_speculative_commit_predictor_scheme         ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2]);
    24252449    DELETE3(_ooo_engine_size_load_queue                             ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2]);
    24262450    DELETE3(_ooo_engine_size_store_queue                            ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2]);
Note: See TracChangeset for help on using the changeset viewer.