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/Configuration/src/Instance_fromInternalStructure.cpp

    r139 r146  
    178178    // load_store_unit
    179179    //-----------------------------------------------------
    180     ALLOC1(_param->_size_store_queue                   ,uint32_t    ,_param->_nb_load_store_unit);
    181     ALLOC1(_param->_size_load_queue                    ,uint32_t    ,_param->_nb_load_store_unit);
    182     ALLOC1(_param->_size_speculative_access_queue      ,uint32_t    ,_param->_nb_load_store_unit);
    183     ALLOC1(_param->_nb_store_queue_bank                ,uint32_t    ,_param->_nb_load_store_unit);
    184     ALLOC1(_param->_nb_load_queue_bank                 ,uint32_t    ,_param->_nb_load_store_unit);
    185     ALLOC1(_param->_nb_port_check                      ,uint32_t    ,_param->_nb_load_store_unit);
     180    ALLOC1(_param->_size_store_queue                   ,uint32_t     ,_param->_nb_load_store_unit);
     181    ALLOC1(_param->_size_load_queue                    ,uint32_t     ,_param->_nb_load_store_unit);
     182    ALLOC1(_param->_size_speculative_access_queue      ,uint32_t     ,_param->_nb_load_store_unit);
     183    ALLOC1(_param->_nb_store_queue_bank                ,uint32_t     ,_param->_nb_load_store_unit);
     184    ALLOC1(_param->_nb_load_queue_bank                 ,uint32_t     ,_param->_nb_load_store_unit);
     185    ALLOC1(_param->_nb_port_check                      ,uint32_t     ,_param->_nb_load_store_unit);
    186186    ALLOC1(_param->_speculative_load                   ,core::multi_execute_loop::execute_loop::Tspeculative_load_t,_param->_nb_load_store_unit);
    187     ALLOC1(_param->_speculative_commit_predictor_scheme,Tpredictor_t,_param->_nb_load_store_unit);
    188     ALLOC2(_param->_lsu_pht_size_counter               ,uint32_t    ,_param->_nb_load_store_unit,1);
    189     ALLOC2(_param->_lsu_pht_nb_counter                 ,uint32_t    ,_param->_nb_load_store_unit,1);
    190     ALLOC1(_param->_nb_bypass_memory                   ,uint32_t    ,_param->_nb_load_store_unit);
    191     ALLOC1(_param->_nb_cache_port                      ,uint32_t    ,_param->_nb_load_store_unit);
    192     ALLOC1(_param->_nb_inst_memory                     ,uint32_t    ,_param->_nb_load_store_unit);
     187    ALLOC1(_param->_speculative_commit_predictor_scheme,Tpredictor_t ,_param->_nb_load_store_unit);
     188    ALLOC2(_param->_lsu_pht_size_counter               ,uint32_t     ,_param->_nb_load_store_unit,1);
     189    ALLOC2(_param->_lsu_pht_nb_counter                 ,uint32_t     ,_param->_nb_load_store_unit,1);
     190    ALLOC2(_param->_lsu_pht_scheme                     ,Tpht_scheme_t,_param->_nb_load_store_unit,1);
     191    ALLOC1(_param->_nb_bypass_memory                   ,uint32_t     ,_param->_nb_load_store_unit);
     192    ALLOC1(_param->_nb_cache_port                      ,uint32_t     ,_param->_nb_load_store_unit);
     193    ALLOC1(_param->_nb_inst_memory                     ,uint32_t     ,_param->_nb_load_store_unit);
    193194
    194195    for (uint32_t i=0; i<_param->_nb_load_store_unit; ++i)
     
    220221          {
    221222          //log_printf(INFO,Configuration,FUNCTION,_("PREDICTOR [%d][%d]"),i,j);
    222         _param->_lsu_pht_size_counter             [i][j] = fromString<uint32_t    > (getParam("lsu_pht_size_counter"               ,"load_store_unit",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
    223         _param->_lsu_pht_nb_counter               [i][j] = fromString<uint32_t    > (getParam("lsu_pht_nb_counter"                 ,"load_store_unit",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
     223        _param->_lsu_pht_size_counter             [i][j] = fromString<uint32_t     > (getParam("lsu_pht_size_counter"               ,"load_store_unit",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
     224        _param->_lsu_pht_nb_counter               [i][j] = fromString<uint32_t     > (getParam("lsu_pht_nb_counter"                 ,"load_store_unit",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
     225        _param->_lsu_pht_scheme                   [i][j] = fromString<Tpht_scheme_t> (getParam("lsu_pht_scheme"                     ,"load_store_unit",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
    224226          }
    225227
     
    309311    // front_end
    310312    //-----------------------------------------------------
    311     ALLOC1(_param->_nb_context                    ,uint32_t    ,_param->_nb_front_end);
    312     ALLOC1(_param->_nb_decod_unit                 ,uint32_t    ,_param->_nb_front_end);
    313     ALLOC1(_param->_nb_inst_branch_predict        ,uint32_t    ,_param->_nb_front_end);
    314     ALLOC1(_param->_nb_inst_branch_decod          ,uint32_t    ,_param->_nb_front_end);
    315     ALLOC1(_param->_nb_inst_branch_update         ,uint32_t    ,_param->_nb_front_end);
    316     ALLOC1(_param->_btb_size_queue                ,uint32_t    ,_param->_nb_front_end);
    317     ALLOC1(_param->_btb_associativity             ,uint32_t    ,_param->_nb_front_end);
    318     ALLOC1(_param->_btb_size_counter              ,uint32_t    ,_param->_nb_front_end);
    319     ALLOC1(_param->_btb_victim_scheme             ,Tvictim_t   ,_param->_nb_front_end);
    320     ALLOC1(_param->_dir_predictor_scheme          ,Tpredictor_t,_param->_nb_front_end);
    321     ALLOC2(_param->_dir_have_bht                  ,bool        ,_param->_nb_front_end,3);
    322     ALLOC2(_param->_dir_bht_size_shifter          ,uint32_t    ,_param->_nb_front_end,3);
    323     ALLOC2(_param->_dir_bht_nb_shifter            ,uint32_t    ,_param->_nb_front_end,3);
    324     ALLOC2(_param->_dir_have_pht                  ,bool        ,_param->_nb_front_end,3);
    325     ALLOC2(_param->_dir_pht_size_counter          ,uint32_t    ,_param->_nb_front_end,3);
    326     ALLOC2(_param->_dir_pht_nb_counter            ,uint32_t    ,_param->_nb_front_end,3);
    327     ALLOC2(_param->_dir_pht_size_address_share    ,uint32_t    ,_param->_nb_front_end,3);
     313    ALLOC1(_param->_nb_context                    ,uint32_t     ,_param->_nb_front_end);
     314    ALLOC1(_param->_nb_decod_unit                 ,uint32_t     ,_param->_nb_front_end);
     315    ALLOC1(_param->_nb_inst_branch_predict        ,uint32_t     ,_param->_nb_front_end);
     316    ALLOC1(_param->_nb_inst_branch_decod          ,uint32_t     ,_param->_nb_front_end);
     317    ALLOC1(_param->_nb_inst_branch_update         ,uint32_t     ,_param->_nb_front_end);
     318    ALLOC1(_param->_btb_size_queue                ,uint32_t     ,_param->_nb_front_end);
     319    ALLOC1(_param->_btb_associativity             ,uint32_t     ,_param->_nb_front_end);
     320    ALLOC1(_param->_btb_size_counter              ,uint32_t     ,_param->_nb_front_end);
     321    ALLOC1(_param->_btb_victim_scheme             ,Tvictim_t    ,_param->_nb_front_end);
     322    ALLOC1(_param->_dir_predictor_scheme          ,Tpredictor_t ,_param->_nb_front_end);
     323    ALLOC2(_param->_dir_have_bht                  ,bool         ,_param->_nb_front_end,3);
     324    ALLOC2(_param->_dir_bht_size_shifter          ,uint32_t     ,_param->_nb_front_end,3);
     325    ALLOC2(_param->_dir_bht_nb_shifter            ,uint32_t     ,_param->_nb_front_end,3);
     326    ALLOC2(_param->_dir_have_pht                  ,bool         ,_param->_nb_front_end,3);
     327    ALLOC2(_param->_dir_pht_size_counter          ,uint32_t     ,_param->_nb_front_end,3);
     328    ALLOC2(_param->_dir_pht_nb_counter            ,uint32_t     ,_param->_nb_front_end,3);
     329    ALLOC2(_param->_dir_pht_size_address_share    ,uint32_t     ,_param->_nb_front_end,3);
     330    ALLOC2(_param->_dir_pht_scheme                ,Tpht_scheme_t,_param->_nb_front_end,3);
    328331
    329332    for (uint32_t i=0; i<_param->_nb_front_end; ++i)
     
    356359          //log_printf(INFO,Configuration,FUNCTION,_("PREDICTOR [%d][%d]"),i,j);
    357360
    358         _param->_dir_have_bht               [i][j] = fromString<bool        >(getParam("dir_have_bht"              ,"front_end",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
    359         _param->_dir_bht_size_shifter       [i][j] = fromString<uint32_t    >(getParam("dir_bht_size_shifter"      ,"front_end",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
    360         _param->_dir_bht_nb_shifter         [i][j] = fromString<uint32_t    >(getParam("dir_bht_nb_shifter"        ,"front_end",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
    361         _param->_dir_have_pht               [i][j] = fromString<bool        >(getParam("dir_have_pht"              ,"front_end",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
    362         _param->_dir_pht_size_counter       [i][j] = fromString<uint32_t    >(getParam("dir_pht_size_counter"      ,"front_end",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
    363         _param->_dir_pht_nb_counter         [i][j] = fromString<uint32_t    >(getParam("dir_pht_nb_counter"        ,"front_end",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
    364         _param->_dir_pht_size_address_share [i][j] = fromString<uint32_t    >(getParam("dir_pht_size_address_share","front_end",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
     361        _param->_dir_have_bht               [i][j] = fromString<bool         >(getParam("dir_have_bht"              ,"front_end",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
     362        _param->_dir_bht_size_shifter       [i][j] = fromString<uint32_t     >(getParam("dir_bht_size_shifter"      ,"front_end",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
     363        _param->_dir_bht_nb_shifter         [i][j] = fromString<uint32_t     >(getParam("dir_bht_nb_shifter"        ,"front_end",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
     364        _param->_dir_have_pht               [i][j] = fromString<bool         >(getParam("dir_have_pht"              ,"front_end",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
     365        _param->_dir_pht_size_counter       [i][j] = fromString<uint32_t     >(getParam("dir_pht_size_counter"      ,"front_end",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
     366        _param->_dir_pht_nb_counter         [i][j] = fromString<uint32_t     >(getParam("dir_pht_nb_counter"        ,"front_end",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
     367        _param->_dir_pht_size_address_share [i][j] = fromString<uint32_t     >(getParam("dir_pht_size_address_share","front_end",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
     368        _param->_dir_pht_scheme             [i][j] = fromString<Tpht_scheme_t>(getParam("dir_pht_scheme"            ,"front_end",toString(i).c_str(),"predictor",toString(j).c_str(), ""));
    365369          }
    366370      }   
Note: See TracChangeset for help on using the changeset viewer.