Ignore:
Timestamp:
Mar 18, 2009, 11:36:26 PM (15 years ago)
Author:
rosiere
Message:

1) Stat_list : fix retire old and new register bug
2) Stat_list : remove read_counter and valid flag, because validation of destination is in retire step (not in commit step)
3) Model : add class Model (cf Morpheo.sim)
4) Allocation : alloc_interface_begin and alloc_interface_end to delete temporary array.
5) Script : add distexe.sh
6) Add Comparator, Multiplier, Divider. But this component are not implemented
7) Software : add Dhrystone

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

Legend:

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

    r108 r112  
    5555    // ~~~~~[ Interface "icache_req" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    5656    {
    57       ALLOC1_INTERFACE("icache_req",WEST,OUT,_("Request to instruction cache"),_param->_nb_icache_port);
     57      ALLOC1_INTERFACE_BEGIN("icache_req",WEST,OUT,_("Request to instruction cache"),_param->_nb_icache_port);
    5858
    5959      ALLOC1_VALACK_OUT(out_ICACHE_REQ_VAL         ,VAL);
     
    6363      ALLOC1_SIGNAL_OUT(out_ICACHE_REQ_ADDRESS     ,"address"  ,Ticache_address_t    ,_param->_size_icache_address  );
    6464      ALLOC1_SIGNAL_OUT(out_ICACHE_REQ_TYPE        ,"type"     ,Ticache_type_t       ,_param->_size_icache_type     );
     65
     66      ALLOC1_INTERFACE_END(_param->_nb_icache_port);
    6567    }
    6668                                                                           
    6769    // ~~~~~[ Interface "icache_rsp" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    6870    {
    69       ALLOC1_INTERFACE("icache_rsp",WEST,IN ,_("Respons from instruction cache"),_param->_nb_icache_port);
     71      ALLOC1_INTERFACE_BEGIN("icache_rsp",WEST,IN ,_("Respons from instruction cache"),_param->_nb_icache_port);
    7072     
    7173      ALLOC1_VALACK_IN ( in_ICACHE_RSP_VAL         ,VAL);
     
    7476      ALLOC1_SIGNAL_IN ( in_ICACHE_RSP_PACKET_ID   ,"packet_id"  ,Tpacket_t            ,_param->_size_icache_packet_id);
    7577      ALLOC1_SIGNAL_IN ( in_ICACHE_RSP_ERROR       ,"error"      ,Ticache_error_t      ,_param->_size_icache_error);
     78
     79      ALLOC1_INTERFACE_END(_param->_nb_icache_port);
    7680    }
    7781    {
    78       ALLOC2_INTERFACE("icache_rsp",WEST,IN ,_("Respons from instruction cache"),_param->_nb_icache_port,_param->_icache_nb_instruction[it1]);
     82      ALLOC2_INTERFACE_BEGIN("icache_rsp",WEST,IN ,_("Respons from instruction cache"),_param->_nb_icache_port,_param->_icache_nb_instruction[it1]);
    7983     
    8084      _ALLOC2_SIGNAL_IN ( in_ICACHE_RSP_INSTRUCTION ,"instruction",Ticache_instruction_t,_param->_size_instruction,_param->_nb_icache_port,_param->_icache_nb_instruction[it1]);
     85
     86      ALLOC2_INTERFACE_END(_param->_nb_icache_port,_param->_icache_nb_instruction[it1]);
    8187    }
    8288
    8389    // ~~~~~[ Interface "dcache_req" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    8490    {
    85       ALLOC1_INTERFACE("dcache_req", OUT, NORTH, _("Request to data cache"),_param->_nb_dcache_port);
     91      ALLOC1_INTERFACE_BEGIN("dcache_req", OUT, NORTH, _("Request to data cache"),_param->_nb_dcache_port);
    8692     
    8793      ALLOC1_VALACK_OUT(out_DCACHE_REQ_VAL         ,VAL);
     
    9298      ALLOC1_SIGNAL_OUT(out_DCACHE_REQ_WDATA       ,"wdata"    ,Tdcache_data_t       ,_param->_size_dcache_data);
    9399      ALLOC1_SIGNAL_OUT(out_DCACHE_REQ_TYPE        ,"type"     ,Tdcache_type_t       ,_param->_size_dcache_type);
     100
     101      ALLOC1_INTERFACE_END(_param->_nb_dcache_port);
    94102    }
    95103                                                                           
    96104    // ~~~~~[ Interface "dcache_rsp" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    97105    {
    98       ALLOC1_INTERFACE("dcache_rsp", IN , NORTH, _("Respons from data cache"),_param->_nb_dcache_port);
     106      ALLOC1_INTERFACE_BEGIN("dcache_rsp", IN , NORTH, _("Respons from data cache"),_param->_nb_dcache_port);
    99107
    100108      ALLOC1_VALACK_IN ( in_DCACHE_RSP_VAL         ,VAL);
     
    104112      ALLOC1_SIGNAL_IN ( in_DCACHE_RSP_RDATA       ,"rdata"    ,Tdcache_data_t       ,_param->_size_dcache_data);
    105113      ALLOC1_SIGNAL_IN ( in_DCACHE_RSP_ERROR       ,"error"    ,Tdcache_error_t      ,_param->_size_dcache_error);
     114
     115      ALLOC1_INTERFACE_END(_param->_nb_dcache_port);
    106116    }
    107117
    108118    // ~~~~~[ Interface : "interrupt" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    109119    {
    110       ALLOC1_INTERFACE("interrupt", IN , NORTH, _("Interruption line"),_param->_nb_thread);
     120      ALLOC1_INTERFACE_BEGIN("interrupt", IN , NORTH, _("Interruption line"),_param->_nb_thread);
    111121
    112122      ALLOC1_SIGNAL_IN ( in_INTERRUPT_ENABLE      ,"enable",Tcontrol_t           ,1);
     123
     124      ALLOC1_INTERFACE_END(_param->_nb_thread);
    113125    }
    114126   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/src/Core_deallocation.cpp

    r88 r112  
    5959    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    6060
     61    DELETE0(_component_glue);
     62    DELETE0(_component_dcache_access);
     63    DELETE0(_component_icache_access);
     64    DELETE1(_component_execute_loop, _param->_nb_execute_loop);
     65    DELETE1(_component_ooo_engine  , _param->_nb_ooo_engine);
     66    DELETE1(_component_front_end   , _param->_nb_front_end);
     67
    6168    delete _component;
    6269
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/src/Parameters.cpp

    r111 r112  
    107107  uint32_t              * nb_reg_free                                   ,//[nb_rename_bloc]
    108108  uint32_t              * nb_rename_unit_bank                           ,//[nb_rename_bloc]
    109   uint32_t              * size_read_counter                             ,//[nb_rename_bloc]
     109//   uint32_t              * size_read_counter                             ,//[nb_rename_bloc]
    110110
    111111  // Read bloc
     
    262262    _nb_reg_free                             = nb_reg_free                             ;
    263263    _nb_rename_unit_bank                     = nb_rename_unit_bank                     ;
    264     _size_read_counter                       = size_read_counter                       ;
     264//     _size_read_counter                       = size_read_counter                       ;
    265265
    266266    _nb_read_bloc                            = nb_read_bloc                            ;
     
    974974    ALLOC2(_ooo_engine_nb_reg_free                        ,uint32_t         ,_nb_ooo_engine,_nb_rename_unit[it1]);
    975975    ALLOC2(_ooo_engine_nb_rename_unit_bank                ,uint32_t         ,_nb_ooo_engine,_nb_rename_unit[it1]);
    976     ALLOC2(_ooo_engine_size_read_counter                  ,uint32_t         ,_nb_ooo_engine,_nb_rename_unit[it1]);
     976//     ALLOC2(_ooo_engine_size_read_counter                  ,uint32_t         ,_nb_ooo_engine,_nb_rename_unit[it1]);
    977977
    978978    for (uint32_t i=0; i<_nb_ooo_engine; ++i)
     
    997997            _ooo_engine_nb_reg_free                       [i][j] = _nb_reg_free                       [num_rename_bloc];
    998998            _ooo_engine_nb_rename_unit_bank               [i][j] = _nb_rename_unit_bank               [num_rename_bloc];
    999             _ooo_engine_size_read_counter                 [i][j] = _size_read_counter                 [num_rename_bloc];
     999//             _ooo_engine_size_read_counter                 [i][j] = _size_read_counter                 [num_rename_bloc];
    10001000          }
    10011001      }
     
    19181918       _ooo_engine_nb_reg_free                       [i],
    19191919       _ooo_engine_nb_rename_unit_bank               [i],
    1920        _ooo_engine_size_read_counter                 [i],
     1920//        _ooo_engine_size_read_counter                 [i],
    19211921       _ooo_engine_nb_load_store_unit                [i],
    19221922       _ooo_engine_size_store_queue                  [i],
     
    21342134    DELETE4(_ooo_engine_implement_group                             ,_nb_ooo_engine,_ooo_engine_nb_front_end[it1],_ooo_engine_nb_context[it1][it2],NB_GROUP);
    21352135    DELETE3(_ooo_engine_link_load_store_unit_with_context           ,_nb_ooo_engine,_ooo_engine_nb_front_end[it1],_ooo_engine_nb_context[it1][it2]);
     2136    DELETE3(_ooo_engine_nb_inst_memory                              ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2]);
    21362137    DELETE3(_ooo_engine_size_load_queue                             ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2]);
    21372138    DELETE3(_ooo_engine_size_store_queue                            ,_nb_ooo_engine,_nb_rename_unit[it1],_ooo_engine_nb_load_store_unit[it1][it2]);
     
    21422143    DELETE3(_ooo_engine_table_routing                               ,_nb_ooo_engine,_nb_rename_unit[it1],_nb_inst_issue[it1]);
    21432144    DELETE4(_network_table_dispatch                                 ,_nb_ooo_engine,_nb_inst_issue[it1],_nb_execute_loop,_nb_read_unit[it3]);
    2144     DELETE2(_ooo_engine_size_read_counter                           ,_nb_ooo_engine,_nb_rename_unit[it1]);
     2145//     DELETE2(_ooo_engine_size_read_counter                           ,_nb_ooo_engine,_nb_rename_unit[it1]);
    21452146    DELETE2(_ooo_engine_nb_rename_unit_bank                         ,_nb_ooo_engine,_nb_rename_unit[it1]);
    21462147    DELETE2(_ooo_engine_nb_reg_free                                 ,_nb_ooo_engine,_nb_rename_unit[it1]);
     
    21512152    DELETE2(_ooo_engine_rename_select_priority                      ,_nb_ooo_engine,_nb_rename_unit[it1]);
    21522153    DELETE2(_ooo_engine_nb_inst_retire                              ,_nb_ooo_engine,_nb_rename_unit[it1]);
     2154    DELETE1(_ooo_engine_nb_inst_insert_rob                          ,_nb_ooo_engine);
    21532155    DELETE2(_ooo_engine_nb_inst_insert                              ,_nb_ooo_engine,_nb_rename_unit[it1]);
    21542156    DELETE2(_ooo_engine_link_rename_unit_with_front_end             ,_nb_ooo_engine,_ooo_engine_nb_front_end[it1]);
    21552157    DELETE3(_ooo_engine_nb_branch_speculated                        ,_nb_ooo_engine,_ooo_engine_nb_front_end[it1],_ooo_engine_nb_context[it1][it2]);
    21562158    DELETE2(_ooo_engine_nb_inst_execute                             ,_nb_ooo_engine,_ooo_engine_nb_execute_loop[it1]);
     2159    DELETE3(_ooo_engine_translate_num_context_to_num_thread         ,_nb_ooo_engine,_ooo_engine_nb_front_end[it1],_ooo_engine_nb_context[it1][it2]);
    21572160    DELETE2(_ooo_engine_nb_inst_decod                               ,_nb_ooo_engine,_ooo_engine_nb_front_end[it1]);
    21582161    DELETE2(_ooo_engine_nb_context                                  ,_nb_ooo_engine,_ooo_engine_nb_front_end[it1]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/src/Parameters_print.cpp

    r111 r112  
    8181    str+= toString(MSG_INFORMATION)+"     * nb_reg_free                                 : "+toString<uint32_t         >(_nb_reg_free                      [i])+"\n";
    8282    str+= toString(MSG_INFORMATION)+"     * nb_rename_unit_bank                         : "+toString<uint32_t         >(_nb_rename_unit_bank              [i])+"\n";
    83     str+= toString(MSG_INFORMATION)+"     * size_read_counter                           : "+toString<uint32_t         >(_size_read_counter                [i])+"\n";
     83//     str+= toString(MSG_INFORMATION)+"     * size_read_counter                           : "+toString<uint32_t         >(_size_read_counter                [i])+"\n";
    8484      }
    8585
Note: See TracChangeset for help on using the changeset viewer.