Ignore:
Timestamp:
May 12, 2010, 7:34:01 PM (15 years ago)
Author:
rosiere
Message:

1) add counters_t type for interface
2) fix in check load in load_store_unit
3) add parameters (but not yet implemented)
4) change environment and add script (distcc_env.sh ...)
5) add warning if an unser change rename flag with l.mtspr instruction
6) ...

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/include/Parameters.h

    r136 r138  
    5959    // Read bloc
    6060  public : uint32_t                _nb_read_bloc                                  ;//
     61  public : uint32_t              * _nb_inst_read                                  ;//[nb_read_bloc]
    6162  public : uint32_t              * _size_read_queue                               ;//[nb_read_bloc]
    6263  public : uint32_t              * _size_reservation_station                      ;//[nb_read_bloc]
     
    6566    // Write bloc
    6667  public : uint32_t                _nb_write_bloc                                 ;//
     68  public : uint32_t              * _nb_inst_write                                 ;//[nb_write_bloc]
    6769  public : uint32_t              * _size_write_queue                              ;//[nb_write_bloc]
    6870  public : uint32_t              * _size_execute_queue                            ;//[nb_write_bloc]
     
    7678  public : uint32_t              * _size_load_queue                               ;//[nb_load_store_unit]
    7779  public : uint32_t              * _size_speculative_access_queue                 ;//[nb_load_store_unit]
     80  public : uint32_t              * _nb_store_queue_bank                           ;//[nb_load_store_unit]
     81  public : uint32_t              * _nb_load_queue_bank                            ;//[nb_load_store_unit]
    7882  public : uint32_t              * _nb_port_check                                 ;//[nb_load_store_unit]
    7983  public : core::multi_execute_loop::execute_loop::Tspeculative_load_t 
    8084                                 * _speculative_load                              ;//[nb_load_store_unit]
     85  public : Tpredictor_t          * _speculative_commit_predictor_scheme           ;//[nb_load_store_unit]
     86  public : uint32_t             ** _lsu_pht_size_counter                          ;//[nb_load_store_unit][1]
     87  public : uint32_t             ** _lsu_pht_nb_counter                            ;//[nb_load_store_unit][1]
    8188  public : uint32_t              * _nb_bypass_memory                              ;//[nb_load_store_unit]
    8289  public : uint32_t              * _nb_cache_port                                 ;//[nb_load_store_unit]
     
    130137  public : uint32_t              * _size_re_order_buffer                          ;//[nb_ooo_engine]
    131138  public : uint32_t              * _nb_re_order_buffer_bank                       ;//[nb_ooo_engine]
     139  public : morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::Tretire_ooo_scheme_t
     140                                 * _retire_ooo_scheme                             ;//[nb_ooo_engine]
    132141  public : Tpriority_t           * _commit_priority                               ;//[nb_ooo_engine]
    133142  public : Tload_balancing_t     * _commit_load_balancing                         ;//[nb_ooo_engine]
     
    139148  public : Tload_balancing_t     * _issue_load_balancing                          ;//[nb_ooo_engine]
    140149  public : uint32_t              * _size_reexecute_queue                          ;//[nb_ooo_engine]
    141   public : Tpriority_t           * _reexecute_priority                            ;//[nb_ooo_engine]
    142   public : Tload_balancing_t     * _reexecute_load_balancing                      ;//[nb_ooo_engine]
    143150 
    144151    // Execute_loop
     
    166173  public : uint32_t              * _link_decod_bloc_with_thread                   ;//[nb_thread]
    167174  public : uint32_t              * _link_rename_bloc_with_front_end               ;//[nb_front_end]
    168   public : bool                *** _table_dispatch                                ;//[nb_ooo_engine][nb_inst_issue][nb_read_bloc]
    169   public : bool                 ** _link_read_bloc_and_load_store_unit            ;//[nb_read_bloc][nb_load_store_unit]
     175//public : bool                *** _table_dispatch                                ;//[nb_ooo_engine][nb_issue_queue_bank][nb_read_bloc]
     176  public : uint32_t              * _link_read_bloc_with_load_store_unit           ;//[nb_load_store_unit]
    170177  public : bool                 ** _link_read_bloc_and_functionnal_unit           ;//[nb_read_bloc][nb_functionnal_unit]
    171   public : bool                 ** _link_write_bloc_and_load_store_unit           ;//[nb_write_bloc][nb_load_store_unit]
     178  public : uint32_t              * _link_write_bloc_with_load_store_unit          ;//[nb_load_store_unit]
    172179  public : bool                 ** _link_write_bloc_and_functionnal_unit          ;//[nb_write_bloc][nb_functionnal_unit]
    173180  public : uint32_t              * _link_load_store_unit_with_thread              ;//[nb_thread]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Configuration.cpp

    r124 r138  
    4646                fromString<uint32_t>         (_simulator->getParam("debug_idle_time")));
    4747
    48     log_init(fromString<bool>(_simulator->getParam("debug_log_file_generate")),
     48    log_init(fromString<bool>  (_simulator->getParam("debug_log_file_generate")),
    4949             fromString<bool>  (_simulator->getParam("simulation_file_with_date")),
    5050             fromString<bool>  (_simulator->getParam("simulation_file_with_pid")),
     
    9191    // Simulation condition stop
    9292    //--------------------------------------------------
    93     simulation_init (fromString<double>(_simulator->getParam("simulation_nb_cycle")),
    94                      fromString<double>(_simulator->getParam("debug_nb_cycle")),
    95                      fromString<double>(_simulator->getParam("simulation_nb_instruction")),
    96                      fromString<bool>  (_simulator->getParam("simulation_file_with_date")),
    97                      fromString<bool>  (_simulator->getParam("simulation_file_with_pid"))
     93    simulation_init (fromString<double>     (_simulator->getParam("simulation_nb_cycle")),
     94                     fromString<double>     (_simulator->getParam("debug_nb_cycle")),
     95                     fromString<double>     (_simulator->getParam("simulation_nb_instruction")),
     96                     fromString<stop_type_t>(_simulator->getParam("simulation_stop_type")),
     97                     fromString<bool>       (_simulator->getParam("simulation_file_with_date")),
     98                     fromString<bool>       (_simulator->getParam("simulation_file_with_pid"))
    9899                     );
    99100
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Instance.cpp

    r136 r138  
    7474        DELETE1(_param->_link_load_store_unit_with_thread       ,_param->_nb_thread);
    7575        DELETE2(_param->_link_write_bloc_and_functionnal_unit   ,_param->_nb_write_bloc,_param->_nb_functionnal_unit);
    76         DELETE2(_param->_link_write_bloc_and_load_store_unit    ,_param->_nb_write_bloc,_param->_nb_load_store_unit);
     76        DELETE1(_param->_link_write_bloc_with_load_store_unit   ,_param->_nb_load_store_unit);
    7777        DELETE2(_param->_link_read_bloc_and_functionnal_unit    ,_param->_nb_read_bloc,_param->_nb_functionnal_unit);
    78         DELETE2(_param->_link_read_bloc_and_load_store_unit     ,_param->_nb_read_bloc,_param->_nb_load_store_unit);
    79         DELETE3(_param->_table_dispatch                         ,_param->_nb_ooo_engine,_param->_nb_inst_issue[it1],_param->_nb_read_bloc);
     78        DELETE1(_param->_link_read_bloc_with_load_store_unit    ,_param->_nb_load_store_unit);
     79//      DELETE3(_param->_table_dispatch                         ,_param->_nb_ooo_engine,_param->_nb_issue_queue_bank[it1],_param->_nb_read_bloc);
    8080        DELETE1(_param->_link_rename_bloc_with_front_end        ,_param->_nb_front_end);
    8181        DELETE1(_param->_link_decod_bloc_with_thread            ,_param->_nb_thread);
     
    9898        DELETE1(_param->_nb_execute_unit                        ,_param->_nb_execute_loop);
    9999        DELETE1(_param->_nb_read_unit                           ,_param->_nb_execute_loop);
    100         DELETE1(_param->_reexecute_load_balancing               ,_param->_nb_ooo_engine);
    101         DELETE1(_param->_reexecute_priority                     ,_param->_nb_ooo_engine);
    102100        DELETE1(_param->_size_reexecute_queue                   ,_param->_nb_ooo_engine);
    103101        DELETE1(_param->_issue_load_balancing                   ,_param->_nb_ooo_engine);
     
    108106        DELETE1(_param->_commit_load_balancing                  ,_param->_nb_ooo_engine);
    109107        DELETE1(_param->_commit_priority                        ,_param->_nb_ooo_engine);
     108        DELETE1(_param->_retire_ooo_scheme                      ,_param->_nb_ooo_engine);
    110109        DELETE1(_param->_nb_re_order_buffer_bank                ,_param->_nb_ooo_engine);
    111110        DELETE1(_param->_size_re_order_buffer                   ,_param->_nb_ooo_engine);
     
    136135        DELETE3(_param->_timing                                 ,_param->_nb_functionnal_unit,MAX_TYPE,MAX_OPERATION);
    137136        DELETE1(_param->_nb_inst_functionnal_unit               ,_param->_nb_functionnal_unit);
    138         DELETE1(_param->_speculative_load                       ,_param->_nb_load_store_unit);
    139137        DELETE1(_param->_nb_inst_memory                         ,_param->_nb_load_store_unit);
    140138        DELETE1(_param->_nb_cache_port                          ,_param->_nb_load_store_unit);
    141139        DELETE1(_param->_nb_bypass_memory                       ,_param->_nb_load_store_unit);
     140        DELETE2(_param->_lsu_pht_nb_counter                     ,_param->_nb_load_store_unit,1);
     141        DELETE2(_param->_lsu_pht_size_counter                   ,_param->_nb_load_store_unit,1);
     142        DELETE1(_param->_speculative_commit_predictor_scheme    ,_param->_nb_load_store_unit);
     143        DELETE1(_param->_speculative_load                       ,_param->_nb_load_store_unit);
    142144        DELETE1(_param->_nb_port_check                          ,_param->_nb_load_store_unit);
     145        DELETE1(_param->_nb_load_queue_bank                     ,_param->_nb_load_store_unit);
     146        DELETE1(_param->_nb_store_queue_bank                    ,_param->_nb_load_store_unit);
    143147        DELETE1(_param->_size_speculative_access_queue          ,_param->_nb_load_store_unit);
    144148        DELETE1(_param->_size_load_queue                        ,_param->_nb_load_store_unit);
    145149        DELETE1(_param->_size_store_queue                       ,_param->_nb_load_store_unit);
     150
    146151        DELETE1(_param->_write_queue_scheme                     ,_param->_nb_write_bloc);
    147152        DELETE1(_param->_nb_bypass_write                        ,_param->_nb_write_bloc);
    148153        DELETE1(_param->_size_execute_queue                     ,_param->_nb_write_bloc);
    149154        DELETE1(_param->_size_write_queue                       ,_param->_nb_write_bloc);
     155        DELETE1(_param->_nb_inst_write                          ,_param->_nb_write_bloc);
    150156        DELETE1(_param->_nb_inst_retire_reservation_station     ,_param->_nb_read_bloc);
    151157        DELETE1(_param->_size_reservation_station               ,_param->_nb_read_bloc);
    152158        DELETE1(_param->_size_read_queue                        ,_param->_nb_read_bloc);
     159        DELETE1(_param->_nb_inst_read                           ,_param->_nb_read_bloc);
    153160//      DELETE1(_param->_size_read_counter                      ,_param->_nb_rename_bloc);
    154161        DELETE1(_param->_nb_rename_unit_bank                    ,_param->_nb_rename_bloc);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Instance_fromInternalStructure.cpp

    r136 r138  
    138138    // Read_bloc
    139139    //-----------------------------------------------------
     140    ALLOC1(_param->_nb_inst_read                      ,uint32_t,_param->_nb_read_bloc);
    140141    ALLOC1(_param->_size_read_queue                   ,uint32_t,_param->_nb_read_bloc);
    141142    ALLOC1(_param->_size_reservation_station          ,uint32_t,_param->_nb_read_bloc);
     
    146147      //log_printf(INFO,Configuration,FUNCTION,_("READ_BLOC [%d]"),i);
    147148
     149        _param->_nb_inst_read                       [i] = fromString<uint32_t> (getParam("nb_inst_read"                      ,"read_bloc",toString(i).c_str(),""));
    148150        _param->_size_read_queue                    [i] = fromString<uint32_t> (getParam("size_read_queue"                   ,"read_bloc",toString(i).c_str(),""));
    149151        _param->_size_reservation_station           [i] = fromString<uint32_t> (getParam("size_reservation_station"          ,"read_bloc",toString(i).c_str(),""));
     
    154156    // Write_bloc
    155157    //-----------------------------------------------------
     158    ALLOC1(_param->_nb_inst_write     ,uint32_t,_param->_nb_write_bloc);
    156159    ALLOC1(_param->_size_write_queue  ,uint32_t,_param->_nb_write_bloc);
    157160    ALLOC1(_param->_size_execute_queue,uint32_t,_param->_nb_write_bloc);
     
    163166      //log_printf(INFO,Configuration,FUNCTION,_("WRITE_BLOC [%d]"),i);
    164167
     168        _param->_nb_inst_write      [i] = fromString<uint32_t> (getParam("nb_inst_write"     ,"write_bloc",toString(i).c_str(),""));
    165169        _param->_size_write_queue   [i] = fromString<uint32_t> (getParam("size_write_queue"  ,"write_bloc",toString(i).c_str(),""));
    166170        _param->_size_execute_queue [i] = fromString<uint32_t> (getParam("size_execute_queue","write_bloc",toString(i).c_str(),""));
     
    172176    // load_store_unit
    173177    //-----------------------------------------------------
    174     ALLOC1(_param->_size_store_queue             ,uint32_t,_param->_nb_load_store_unit);
    175     ALLOC1(_param->_size_load_queue              ,uint32_t,_param->_nb_load_store_unit);
    176     ALLOC1(_param->_size_speculative_access_queue,uint32_t,_param->_nb_load_store_unit);
    177     ALLOC1(_param->_nb_port_check                ,uint32_t,_param->_nb_load_store_unit);
    178     ALLOC1(_param->_nb_bypass_memory             ,uint32_t,_param->_nb_load_store_unit);
    179     ALLOC1(_param->_nb_cache_port                ,uint32_t,_param->_nb_load_store_unit);
    180     ALLOC1(_param->_nb_inst_memory               ,uint32_t,_param->_nb_load_store_unit);
    181     ALLOC1(_param->_speculative_load             ,core::multi_execute_loop::execute_loop::Tspeculative_load_t,_param->_nb_load_store_unit);
     178    ALLOC1(_param->_size_store_queue                   ,uint32_t    ,_param->_nb_load_store_unit);
     179    ALLOC1(_param->_size_load_queue                    ,uint32_t    ,_param->_nb_load_store_unit);
     180    ALLOC1(_param->_size_speculative_access_queue      ,uint32_t    ,_param->_nb_load_store_unit);
     181    ALLOC1(_param->_nb_store_queue_bank                ,uint32_t    ,_param->_nb_load_store_unit);
     182    ALLOC1(_param->_nb_load_queue_bank                 ,uint32_t    ,_param->_nb_load_store_unit);
     183    ALLOC1(_param->_nb_port_check                      ,uint32_t    ,_param->_nb_load_store_unit);
     184    ALLOC1(_param->_speculative_load                   ,core::multi_execute_loop::execute_loop::Tspeculative_load_t,_param->_nb_load_store_unit);
     185    ALLOC1(_param->_speculative_commit_predictor_scheme,Tpredictor_t,_param->_nb_load_store_unit);
     186    ALLOC2(_param->_lsu_pht_size_counter               ,uint32_t    ,_param->_nb_load_store_unit,1);
     187    ALLOC2(_param->_lsu_pht_nb_counter                 ,uint32_t    ,_param->_nb_load_store_unit,1);
     188    ALLOC1(_param->_nb_bypass_memory                   ,uint32_t    ,_param->_nb_load_store_unit);
     189    ALLOC1(_param->_nb_cache_port                      ,uint32_t    ,_param->_nb_load_store_unit);
     190    ALLOC1(_param->_nb_inst_memory                     ,uint32_t    ,_param->_nb_load_store_unit);
    182191
    183192    for (uint32_t i=0; i<_param->_nb_load_store_unit; ++i)
     
    185194      //log_printf(INFO,Configuration,FUNCTION,_("LOAD_STORE_UNIT [%d]"),i);
    186195
    187         _param->_size_store_queue              [i] = fromString<uint32_t> (getParam("size_store_queue"             ,"load_store_unit",toString(i).c_str(),""));
    188         _param->_size_load_queue               [i] = fromString<uint32_t> (getParam("size_load_queue"              ,"load_store_unit",toString(i).c_str(),""));
    189         _param->_size_speculative_access_queue [i] = fromString<uint32_t> (getParam("size_speculative_access_queue","load_store_unit",toString(i).c_str(),""));
    190         _param->_nb_port_check                 [i] = fromString<uint32_t> (getParam("nb_port_check"                ,"load_store_unit",toString(i).c_str(),""));
    191         _param->_nb_bypass_memory              [i] = fromString<uint32_t> (getParam("nb_bypass_memory"             ,"load_store_unit",toString(i).c_str(),""));
    192         _param->_nb_cache_port                 [i] = fromString<uint32_t> (getParam("nb_cache_port"                ,"load_store_unit",toString(i).c_str(),""));
    193         _param->_nb_inst_memory                [i] = fromString<uint32_t> (getParam("nb_inst_memory"               ,"load_store_unit",toString(i).c_str(),""));
    194 
    195         _param->_speculative_load [i] = fromString<core::multi_execute_loop::execute_loop::Tspeculative_load_t> (getParam("speculative_load","load_store_unit",toString(i).c_str(),""));
     196        _param->_size_store_queue                    [i] = fromString<uint32_t    > (getParam("size_store_queue"                   ,"load_store_unit",toString(i).c_str(),""));
     197        _param->_size_load_queue                     [i] = fromString<uint32_t    > (getParam("size_load_queue"                    ,"load_store_unit",toString(i).c_str(),""));
     198        _param->_size_speculative_access_queue       [i] = fromString<uint32_t    > (getParam("size_speculative_access_queue"      ,"load_store_unit",toString(i).c_str(),""));
     199        _param->_nb_store_queue_bank                 [i] = fromString<uint32_t    > (getParam("nb_store_queue_bank"                ,"load_store_unit",toString(i).c_str(),""));
     200        _param->_nb_load_queue_bank                  [i] = fromString<uint32_t    > (getParam("nb_load_queue_bank"                 ,"load_store_unit",toString(i).c_str(),""));
     201        _param->_speculative_load                    [i] = fromString<core::multi_execute_loop::execute_loop::Tspeculative_load_t>
     202                                                                                    (getParam("speculative_load"                   ,"load_store_unit",toString(i).c_str(),""));
     203        _param->_speculative_commit_predictor_scheme [i] = fromString<Tpredictor_t>
     204                                                                                    (getParam("speculative_commit_predictor_scheme","load_store_unit",toString(i).c_str(),""));
     205        _param->_nb_port_check                       [i] = fromString<uint32_t    > (getParam("nb_port_check"                      ,"load_store_unit",toString(i).c_str(),""));
     206       
     207        // just read !!!
     208        try
     209          {
     210            getParam("nb_predictor","load_store_unit",toString(i).c_str(), "");
     211          }
     212        catch (morpheo::ErrorMorpheo & error)
     213          {
     214          }
     215
     216        const uint32_t max_nb_predictor=1;
     217        for (uint32_t j=0; j<max_nb_predictor; ++j)
     218          {
     219          //log_printf(INFO,Configuration,FUNCTION,_("PREDICTOR [%d][%d]"),i,j);
     220        _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(), ""));
     221        _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(), ""));
     222          }
     223
     224        _param->_nb_bypass_memory                    [i] = fromString<uint32_t    > (getParam("nb_bypass_memory"                   ,"load_store_unit",toString(i).c_str(),""));
     225        _param->_nb_cache_port                       [i] = fromString<uint32_t    > (getParam("nb_cache_port"                      ,"load_store_unit",toString(i).c_str(),""));
     226        _param->_nb_inst_memory                      [i] = fromString<uint32_t    > (getParam("nb_inst_memory"                     ,"load_store_unit",toString(i).c_str(),""));
    196227      }   
    197228
     
    318349          }
    319350
    320         for (uint32_t j=0; j<3; ++j)
     351        const uint32_t max_nb_predictor=3;
     352        for (uint32_t j=0; j<max_nb_predictor; ++j)
    321353          {
    322354          //log_printf(INFO,Configuration,FUNCTION,_("PREDICTOR [%d][%d]"),i,j);
     
    345377    ALLOC1(_param->_size_re_order_buffer    ,uint32_t         ,_param->_nb_ooo_engine);
    346378    ALLOC1(_param->_nb_re_order_buffer_bank ,uint32_t         ,_param->_nb_ooo_engine);
     379    ALLOC1(_param->_retire_ooo_scheme       ,morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::Tretire_ooo_scheme_t
     380                                                              ,_param->_nb_ooo_engine);
    347381    ALLOC1(_param->_commit_priority         ,Tpriority_t      ,_param->_nb_ooo_engine);
    348382    ALLOC1(_param->_commit_load_balancing   ,Tload_balancing_t,_param->_nb_ooo_engine);
     
    354388    ALLOC1(_param->_issue_load_balancing    ,Tload_balancing_t,_param->_nb_ooo_engine);
    355389    ALLOC1(_param->_size_reexecute_queue    ,uint32_t         ,_param->_nb_ooo_engine);
    356     ALLOC1(_param->_reexecute_priority      ,Tpriority_t      ,_param->_nb_ooo_engine);
    357     ALLOC1(_param->_reexecute_load_balancing,Tload_balancing_t,_param->_nb_ooo_engine);
    358390
    359391    for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
     
    370402        _param->_size_re_order_buffer    [i] = fromString<uint32_t         >(getParam("size_re_order_buffer"    ,"ooo_engine",toString(i).c_str(), ""));
    371403        _param->_nb_re_order_buffer_bank [i] = fromString<uint32_t         >(getParam("nb_re_order_buffer_bank" ,"ooo_engine",toString(i).c_str(), ""));
     404        _param->_retire_ooo_scheme       [i] = fromString<morpheo::behavioural::core::multi_ooo_engine::ooo_engine::commit_unit::Tretire_ooo_scheme_t>
     405                                                                            (getParam("retire_ooo_scheme"       ,"ooo_engine",toString(i).c_str(), ""));
    372406        _param->_commit_priority         [i] = fromString<Tpriority_t      >(getParam("commit_priority"         ,"ooo_engine",toString(i).c_str(), ""));
    373407        _param->_commit_load_balancing   [i] = fromString<Tload_balancing_t>(getParam("commit_load_balancing"   ,"ooo_engine",toString(i).c_str(), ""));
     
    379413        _param->_issue_load_balancing    [i] = fromString<Tload_balancing_t>(getParam("issue_load_balancing"    ,"ooo_engine",toString(i).c_str(), ""));
    380414        _param->_size_reexecute_queue    [i] = fromString<uint32_t         >(getParam("size_reexecute_queue"    ,"ooo_engine",toString(i).c_str(), ""));
    381         _param->_reexecute_priority      [i] = fromString<Tpriority_t      >(getParam("reexecute_priority"      ,"ooo_engine",toString(i).c_str(), ""));
    382         _param->_reexecute_load_balancing[i] = fromString<Tload_balancing_t>(getParam("reexecute_load_balancing","ooo_engine",toString(i).c_str(), ""));
    383415      }   
    384416
     
    434466    ALLOC1(_param->_link_decod_bloc_with_thread            ,uint32_t ,_param->_nb_thread);
    435467    ALLOC1(_param->_link_rename_bloc_with_front_end        ,uint32_t ,_param->_nb_front_end);
    436     ALLOC3(_param->_table_dispatch                         ,bool     ,_param->_nb_ooo_engine,_param->_nb_inst_issue[it1],_param->_nb_read_bloc);
    437     ALLOC2(_param->_link_read_bloc_and_load_store_unit     ,bool     ,_param->_nb_read_bloc,_param->_nb_load_store_unit);
     468//  ALLOC3(_param->_table_dispatch                         ,bool     ,_param->_nb_ooo_engine,_param->_nb_issue_queue_bank[it1],_param->_nb_read_bloc);
     469    ALLOC1(_param->_link_read_bloc_with_load_store_unit    ,uint32_t ,_param->_nb_load_store_unit);
    438470    ALLOC2(_param->_link_read_bloc_and_functionnal_unit    ,bool     ,_param->_nb_read_bloc,_param->_nb_functionnal_unit);
    439     ALLOC2(_param->_link_write_bloc_and_load_store_unit    ,bool     ,_param->_nb_write_bloc,_param->_nb_load_store_unit);
     471    ALLOC1(_param->_link_write_bloc_with_load_store_unit   ,uint32_t ,_param->_nb_load_store_unit);
    440472    ALLOC2(_param->_link_write_bloc_and_functionnal_unit   ,bool     ,_param->_nb_write_bloc,_param->_nb_functionnal_unit);
    441473    ALLOC1(_param->_link_load_store_unit_with_thread       ,uint32_t ,_param->_nb_thread);
     
    497529            _param->_link_read_bloc_and_functionnal_unit [i][j] = fromString<bool>(dest[0]);
    498530          }
    499 
    500         for (uint32_t j=0; j<_param->_nb_load_store_unit; ++j)
    501           {
    502             getLink_1("link_read_bloc_and_load_store_unit",toString(i).c_str(),toString(j).c_str(), "");
    503             _param->_link_read_bloc_and_load_store_unit [i][j] = fromString<bool>(dest[0]);
    504           }
     531      }
     532
     533    for (uint32_t i=0; i<_param->_nb_load_store_unit; ++i)
     534      {
     535        getLink_1("link_read_bloc_with_load_store_unit",toString(i).c_str(), "");
     536        _param->_link_read_bloc_with_load_store_unit [i] = fromString<uint32_t>(dest[0]);
     537
     538        getLink_1("link_write_bloc_with_load_store_unit",toString(i).c_str(), "");
     539        _param->_link_write_bloc_with_load_store_unit [i] = fromString<uint32_t>(dest[0]);
    505540      }
    506541
     
    516551            _param->_link_write_bloc_and_functionnal_unit [i][j] = fromString<bool>(dest[0]);
    517552          }
    518 
    519         for (uint32_t j=0; j<_param->_nb_load_store_unit; ++j)
    520           {
    521             getLink_1("link_write_bloc_and_load_store_unit",toString(i).c_str(),toString(j).c_str(), "");
    522             _param->_link_write_bloc_and_load_store_unit [i][j] = fromString<bool>(dest[0]);
    523           }
    524553      }
    525554
     
    550579      }
    551580
    552     for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
    553       for (uint32_t j=0; j<_param->_nb_inst_issue[i]; ++j)
    554         for (uint32_t k=0; k<_param->_nb_read_bloc; ++k)
    555           {
    556             getLink_1("table_dispatch",toString(i).c_str(),toString(j).c_str(),toString(k).c_str(),"");
    557             _param->_table_dispatch [i][j][k] = fromString<bool>(dest[0]);
    558           }
     581    // for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
     582    //   for (uint32_t j=0; j<_param->_nb_issue_queue_bank[i]; ++j)
     583    //     for (uint32_t k=0; k<_param->_nb_read_bloc; ++k)
     584    //       {
     585    //         getLink_1("table_dispatch",toString(i).c_str(),toString(j).c_str(),toString(k).c_str(),"");
     586    //         _param->_table_dispatch [i][j][k] = fromString<bool>(dest[0]);
     587    //       }
    559588
    560589    test_use ();
Note: See TracChangeset for help on using the changeset viewer.