Ignore:
Timestamp:
Oct 20, 2009, 8:52:15 PM (15 years ago)
Author:
rosiere
Message:

1) Add new algo in ifetch queue
2) Add Cancel bit
3) new config

File:
1 edited

Legend:

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

    r128 r136  
    7979  uint32_t                nb_thread                                     ,
    8080  uint32_t              * size_ifetch_queue                             ,//[nb_thread]
     81  multi_front_end::front_end::ifetch_unit::ifetch_queue::Tifetch_queue_scheme_t
     82                        * ifetch_queue_scheme                           ,//[nb_thread]
    8183  uint32_t              * nb_inst_fetch                                 ,//[nb_thread]
    8284  bool                 ** implement_group                               ,//[nb_thread][NB_GROUP]
     
    238240    _nb_thread                               = nb_thread                               ;
    239241    _size_ifetch_queue                       = size_ifetch_queue                       ;
     242    _ifetch_queue_scheme                     = ifetch_queue_scheme                     ;
    240243    _nb_inst_fetch                           = nb_inst_fetch                           ;
    241244    _implement_group                         = implement_group                         ;
     
    452455    // translate for front_end
    453456    ALLOC2(_front_end_size_ifetch_queue                   ,uint32_t         ,_nb_front_end,_nb_context[it1]);
     457    ALLOC2(_front_end_ifetch_queue_scheme                  ,multi_front_end::front_end::ifetch_unit::ifetch_queue::Tifetch_queue_scheme_t
     458                                                                            ,_nb_front_end,_nb_context[it1]);
    454459    ALLOC2(_front_end_nb_inst_fetch                       ,uint32_t         ,_nb_front_end,_nb_context[it1]);
    455460    ALLOC2(_front_end_link_decod_unit_with_context        ,uint32_t         ,_nb_front_end,_nb_context[it1]);
     
    463468          uint32_t num_thread     = _link_thread_with_context[i][j];
    464469
    465           _front_end_size_ifetch_queue            [i][j] = _size_ifetch_queue [num_thread];
    466           _front_end_nb_inst_fetch                [i][j] = _nb_inst_fetch     [num_thread];
    467           _front_end_ras_size_queue               [i][j] = _ras_size_queue    [num_thread];
    468           _front_end_upt_size_queue               [i][j] = _upt_size_queue    [num_thread];
    469           _front_end_ufpt_size_queue              [i][j] = _ufpt_size_queue   [num_thread];
     470          _front_end_size_ifetch_queue            [i][j] = _size_ifetch_queue   [num_thread];
     471          _front_end_ifetch_queue_scheme          [i][j] = _ifetch_queue_scheme [num_thread];
     472          _front_end_nb_inst_fetch                [i][j] = _nb_inst_fetch       [num_thread];
     473          _front_end_ras_size_queue               [i][j] = _ras_size_queue      [num_thread];
     474          _front_end_upt_size_queue               [i][j] = _upt_size_queue      [num_thread];
     475          _front_end_ufpt_size_queue              [i][j] = _ufpt_size_queue     [num_thread];
    470476
    471477          uint32_t num_decod_bloc = _link_decod_bloc_with_thread [num_thread];
     
    987993
    988994    ALLOC2(_ooo_engine_nb_inst_insert                     ,uint32_t         ,_nb_ooo_engine,_nb_rename_unit[it1]);
    989     ALLOC1(_ooo_engine_nb_inst_insert_rob                 ,uint32_t         ,_nb_ooo_engine);
     995//  ALLOC1(_ooo_engine_nb_inst_insert_rob                 ,uint32_t         ,_nb_ooo_engine);
    990996    ALLOC2(_ooo_engine_nb_inst_retire                     ,uint32_t         ,_nb_ooo_engine,_nb_rename_unit[it1]);
    991997    ALLOC2(_ooo_engine_rename_select_priority             ,Tpriority_t      ,_nb_ooo_engine,_nb_rename_unit[it1]);
     
    10011007      {
    10021008        log_printf(TRACE,Core,FUNCTION,_("OOO_Engine [%d] - nb_rename_unit %d"),i,_nb_rename_unit[i]);
    1003         _ooo_engine_nb_inst_insert_rob [i] = 0;
     1009//      _ooo_engine_nb_inst_insert_rob [i] = 0;
    10041010
    10051011        for (uint32_t j=0; j<_nb_rename_unit[i]; ++j)
     
    10101016           
    10111017            _ooo_engine_nb_inst_insert                    [i][j] = _nb_inst_insert                    [num_rename_bloc];
    1012             _ooo_engine_nb_inst_insert_rob                [i]   += _nb_inst_insert                    [num_rename_bloc];
     1018//          _ooo_engine_nb_inst_insert_rob                [i]   += _nb_inst_insert                    [num_rename_bloc];
    10131019            _ooo_engine_nb_inst_retire                    [i][j] = _nb_inst_retire                    [num_rename_bloc];
    10141020            _ooo_engine_rename_select_priority            [i][j] = _rename_select_priority            [num_rename_bloc];
     
    15781584    ALLOC2(_execute_loop_nb_general_register                       ,uint32_t,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
    15791585    ALLOC2(_execute_loop_nb_special_register                       ,uint32_t,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
    1580     ALLOC2(_execute_loop_nb_inst_insert_rob                        ,uint32_t,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
    1581     ALLOC2(_execute_loop_nb_inst_retire_rob                        ,uint32_t,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
     1586//  ALLOC2(_execute_loop_nb_inst_insert_rob                        ,uint32_t,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
     1587//  ALLOC2(_execute_loop_nb_inst_retire_rob                        ,uint32_t,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
    15821588   
    15831589    for (uint32_t i=0; i<_nb_execute_loop; ++i)
     
    16031609   
    16041610   
    1605           uint32_t insert = 0;
    1606           uint32_t retire = 0;
     1611//        uint32_t insert = 0;
     1612//        uint32_t retire = 0;
     1613//       
     1614//        for (uint32_t k=0; k<_nb_rename_unit[num_ooo_engine]; ++k)
     1615//          {
     1616//            insert = _ooo_engine_nb_inst_insert [num_ooo_engine][k];
     1617//            retire = _ooo_engine_nb_inst_retire [num_ooo_engine][k];
     1618//          }
    16071619         
    1608           for (uint32_t k=0; k<_nb_rename_unit[num_ooo_engine]; ++k)
    1609             {
    1610               insert = _ooo_engine_nb_inst_insert [num_ooo_engine][k];
    1611               retire = _ooo_engine_nb_inst_retire [num_ooo_engine][k];
    1612             }
    1613          
    1614           _execute_loop_nb_inst_insert_rob  [i][j] = insert;
    1615           _execute_loop_nb_inst_retire_rob  [i][j] = retire;
     1620//        _execute_loop_nb_inst_insert_rob  [i][j] = insert;
     1621//        _execute_loop_nb_inst_retire_rob  [i][j] = retire;
    16161622        }
    16171623   
     
    19421948        _get_custom_information                    ,
    19431949        _front_end_size_ifetch_queue            [i],
     1950        _front_end_ifetch_queue_scheme          [i],
    19441951        _front_end_nb_inst_fetch                [i],
    19451952        _front_end_instruction_implemeted       [i],
     
    20832090         _execute_loop_nb_general_register                        [i],
    20842091         _execute_loop_nb_special_register                        [i],
    2085          _execute_loop_nb_inst_insert_rob                         [i],
    2086          _execute_loop_nb_inst_retire_rob                         [i],
     2092//       _execute_loop_nb_inst_insert_rob                         [i],
     2093//       _execute_loop_nb_inst_retire_rob                         [i],
    20872094
    20882095         _execution_unit_to_write_unit_priority                   [i],
     
    21492156       _front_end_nb_inst_branch_complete    ,//[nb_front_end]
    21502157       _nb_inst_branch_complete              ,//[nb_ooo_engine]
    2151        _ooo_engine_nb_inst_insert_rob        ,//[nb_ooo_engine]
     2158//     _ooo_engine_nb_inst_insert_rob        ,//[nb_ooo_engine]
    21522159       _nb_inst_reexecute                    ,//[nb_ooo_engine]
    21532160       _nb_inst_issue_queue                  ,//[nb_ooo_engine]
     
    22232230    DELETE4(_execute_loop_read_unit_to_execution_unit_table_routing ,_nb_execute_loop,_nb_read_unit[it1],_nb_execute_unit[it1],_execute_loop_nb_execute_unit_port[it1][it2]);
    22242231    DELETE2(_execute_loop_nb_execute_unit_port                      ,_nb_execute_loop,_nb_execute_unit[it1]);
    2225     DELETE2(_execute_loop_nb_inst_retire_rob                        ,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
    2226     DELETE2(_execute_loop_nb_inst_insert_rob                        ,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
     2232//  DELETE2(_execute_loop_nb_inst_retire_rob                        ,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
     2233//  DELETE2(_execute_loop_nb_inst_insert_rob                        ,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
    22272234    DELETE2(_execute_loop_nb_special_register                       ,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
    22282235    DELETE2(_execute_loop_nb_general_register                       ,_nb_execute_loop,_execute_loop_nb_ooo_engine[it1]);
     
    22772284    DELETE2(_ooo_engine_rename_select_priority                      ,_nb_ooo_engine,_nb_rename_unit[it1]);
    22782285    DELETE2(_ooo_engine_nb_inst_retire                              ,_nb_ooo_engine,_nb_rename_unit[it1]);
    2279     DELETE1(_ooo_engine_nb_inst_insert_rob                          ,_nb_ooo_engine);
     2286//  DELETE1(_ooo_engine_nb_inst_insert_rob                          ,_nb_ooo_engine);
    22802287    DELETE2(_ooo_engine_nb_inst_insert                              ,_nb_ooo_engine,_nb_rename_unit[it1]);
    22812288    DELETE2(_ooo_engine_link_rename_unit_with_front_end             ,_nb_ooo_engine,_ooo_engine_nb_front_end[it1]);
     
    23032310    DELETE2(_front_end_link_decod_unit_with_context                 ,_nb_front_end,_nb_context[it1]);
    23042311    DELETE2(_front_end_nb_inst_fetch                                ,_nb_front_end,_nb_context[it1]);
     2312    DELETE2(_front_end_ifetch_queue_scheme                          ,_nb_front_end,_nb_ifetch_unit[it1]);
    23052313    DELETE2(_front_end_size_ifetch_queue                            ,_nb_front_end,_nb_context[it1]);
    23062314    DELETE1(_list_load_store_unit_with_execute_unit                 ,_nb_execute_loop);
Note: See TracChangeset for help on using the changeset viewer.