Ignore:
Timestamp:
Jul 30, 2010, 4:47:27 PM (14 years ago)
Author:
rosiere
Message:
  • Add test for all configuration
  • RAT : add rat scheme (depth_save)
Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/OOO_Engine_allocation.cpp

    r137 r139  
     1
    12/*
    23 * $Id$
     
    7172      _ALLOC2_SIGNAL_IN ( in_RENAME_LAST_EVENT                ,"LAST_EVENT"                ,Tcontrol_t        ,1                                    ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
    7273      _ALLOC2_SIGNAL_IN ( in_RENAME_IS_DELAY_SLOT             ,"IS_DELAY_SLOT"             ,Tcontrol_t        ,1                                    ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
     74      _ALLOC2_SIGNAL_IN ( in_RENAME_SAVE_RAT                  ,"SAVE_RAT"                  ,Tcontrol_t        ,1                                    ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
    7375#ifdef DEBUG
    7476      _ALLOC2_SIGNAL_IN ( in_RENAME_ADDRESS                   ,"ADDRESS"                   ,Taddress_t        ,_param->_size_instruction_address    ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
     
    458460                    PORT_MAP(_component,src , "in_RENAME_IN_"+toString(x)+"_"+toString(k)+"_IS_DELAY_SLOT",
    459461                                        dest, "in_RENAME_"   +toString(j)+"_"+toString(k)+"_IS_DELAY_SLOT");
     462                    PORT_MAP(_component,src , "in_RENAME_IN_"+toString(x)+"_"+toString(k)+"_SAVE_RAT"     ,
     463                                        dest, "in_RENAME_"   +toString(j)+"_"+toString(k)+"_SAVE_RAT"     );
    460464#ifdef DEBUG
    461465                    PORT_MAP(_component,src , "in_RENAME_IN_"+toString(x)+"_"+toString(k)+"_ADDRESS"      ,
     
    530534            COMPONENT_MAP(_component,src ,"out_INSERT_"+toString(j)                +"_IS_DELAY_SLOT" ,
    531535                                     dest, "in_INSERT_"+toString(i)+"_"+toString(j)+"_IS_DELAY_SLOT" );
    532 //             COMPONENT_MAP(_component,src ,"out_INSERT_"+toString(j)                +"_HAVE_EVENT"    ,
    533 //                                      dest, "in_INSERT_"+toString(i)+"_"+toString(j)+"_HAVE_EVENT"    );
     536//          COMPONENT_MAP(_component,src ,"out_INSERT_"+toString(j)                +"_HAVE_EVENT"    ,
     537//                                   dest, "in_INSERT_"+toString(i)+"_"+toString(j)+"_HAVE_EVENT"    );
    534538            COMPONENT_MAP(_component,src ,"out_INSERT_"+toString(j)                +"_LAST_EVENT"    ,
    535539                                     dest, "in_INSERT_"+toString(i)+"_"+toString(j)+"_LAST_EVENT"    );
     
    682686            COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                "_NUM_REG_RE_LOG"       ,
    683687                                     dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_NUM_REG_RE_LOG"       );
     688            COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                "_RESTORE"              ,
     689                                     dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_RESTORE"              );
     690            COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                "_RESTORE_RD_PHY_OLD"   ,
     691                                     dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_RESTORE_RD_PHY_OLD"   );
     692            COMPONENT_MAP(_component,src , "in_RETIRE_"+toString(j)+                "_RESTORE_RE_PHY_OLD"   ,
     693                                     dest,"out_RETIRE_"+toString(i)+"_"+toString(j)+"_RESTORE_RE_PHY_OLD"   );
    684694          }
    685695
     
    705715                    COMPONENT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(x)+"_"+toString(k)+"_STATE",
    706716                                             dest,"out_RETIRE_EVENT_"+toString(j)+"_"+toString(k)+"_STATE");
    707 //                     COMPONENT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(x)+"_"+toString(k)+"_FLUSH",
    708 //                                              dest,"out_RETIRE_EVENT_"+toString(j)+"_"+toString(k)+"_FLUSH");
     717//                  COMPONENT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(x)+"_"+toString(k)+"_FLUSH",
     718//                                           dest,"out_RETIRE_EVENT_"+toString(j)+"_"+toString(k)+"_FLUSH");
    709719                    COMPONENT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(x)+"_"+toString(k)+"_STOP",
    710720                                             dest,"out_RETIRE_EVENT_"+toString(j)+"_"+toString(k)+"_STOP");
     721                    if (_param->_rat_scheme[i] == RAT_DEPTH_SAVE)
     722                      {
     723                    COMPONENT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(x)+"_"+toString(k)+"_TYPE",
     724                                             dest,"out_RETIRE_EVENT_"+toString(j)+"_"+toString(k)+"_TYPE");
     725                    COMPONENT_MAP(_component,src , "in_RETIRE_EVENT_"+toString(x)+"_"+toString(k)+"_DEPTH",
     726                                             dest,"out_RETIRE_EVENT_"+toString(j)+"_"+toString(k)+"_DEPTH");
     727                      }
    711728                  }
    712729                x++;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/OOO_Engine_deallocation.cpp

    r137 r139  
    4141        DELETE2_SIGNAL( in_RENAME_LAST_EVENT                ,_param->_nb_front_end,_param->_nb_inst_decod[it1],1                                    );
    4242        DELETE2_SIGNAL( in_RENAME_IS_DELAY_SLOT             ,_param->_nb_front_end,_param->_nb_inst_decod[it1],1                                    );
     43        DELETE2_SIGNAL( in_RENAME_SAVE_RAT                  ,_param->_nb_front_end,_param->_nb_inst_decod[it1],1                                    );
    4344#ifdef DEBUG
    4445        DELETE2_SIGNAL( in_RENAME_ADDRESS                   ,_param->_nb_front_end,_param->_nb_inst_decod[it1],_param->_size_instruction_address    );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/Parameters.cpp

    r138 r139  
    88#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/include/Parameters.h"
    99#include "Common/include/Max.h"
     10#include "Behavioural/include/Allocation.h"
    1011
    1112namespace morpheo {
     
    6162                          uint32_t            * nb_general_register              ,//[nb_rename_unit]
    6263                          uint32_t            * nb_special_register              ,//[nb_rename_unit]
     64                          Trat_scheme_t       * rat_scheme                       ,//[nb_rename_unit]
    6365                          uint32_t            * nb_reg_free                      ,//[nb_rename_unit]
    6466                          uint32_t            * nb_rename_unit_bank              ,//[nb_rename_unit]
     
    108110    _issue_priority                    = issue_priority                   ;
    109111    _issue_load_balancing              = issue_load_balancing             ;
    110 //     _table_routing                     = table_routing                    ;
    111 //     _table_issue_type                  = table_issue_type                 ;
     112//  _table_routing                     = table_routing                    ;
     113//  _table_issue_type                  = table_issue_type                 ;
    112114    _size_reexecute_queue              = size_reexecute_queue             ;
    113115    _rename_select_priority            = rename_select_priority           ;
     
    116118    _nb_general_register               = nb_general_register              ;
    117119    _nb_special_register               = nb_special_register              ;
     120    _rat_scheme                        = rat_scheme                       ;
    118121    _nb_reg_free                       = nb_reg_free                      ;
    119122    _nb_rename_unit_bank               = nb_rename_unit_bank              ;
    120 //     _size_read_counter                 = size_read_counter                ;
     123//  _size_read_counter                 = size_read_counter                ;
    121124    _nb_load_store_queue               = nb_load_store_queue              ;
    122125    _size_store_queue                  = size_store_queue                 ;
     
    147150    _rename_unit_nb_inst_decod                    = new uint32_t *  [_nb_rename_unit];
    148151    _rename_unit_link_load_store_unit_with_thread = new uint32_t ** [_nb_rename_unit];
     152    _rename_unit_nb_branch_speculated             = new uint32_t ** [_nb_rename_unit];
    149153   
    150154    for (uint32_t i=0; i<_nb_rename_unit; i++)
     
    156160        _rename_unit_nb_inst_decod                    [i] = new uint32_t   [x];
    157161        _rename_unit_link_load_store_unit_with_thread [i] = new uint32_t * [x];
     162        _rename_unit_nb_branch_speculated             [i] = new uint32_t * [x];
    158163
    159164        // Scan front_end list
     
    164169            _rename_unit_nb_inst_decod [i][j] = _nb_inst_decod [*it];
    165170            _rename_unit_link_load_store_unit_with_thread [i][j] = new uint32_t [_nb_context [*it]];
    166            
     171            _rename_unit_nb_branch_speculated             [i][j] = new uint32_t [_nb_context [*it]];
     172
    167173            for (uint32_t k=0; k<_nb_context [*it]; k++)
    168               _rename_unit_link_load_store_unit_with_thread [i][j][k] = _link_load_store_unit_with_thread [*it][k];
     174              {
     175                _rename_unit_link_load_store_unit_with_thread [i][j][k] = _link_load_store_unit_with_thread [*it][k];
     176                _rename_unit_nb_branch_speculated             [i][j][k] = _nb_branch_speculated             [*it][k];
     177              }
    169178
    170179            ++it;           
     
    188197          }
    189198      }
     199
     200    ALLOC1(_commit_unit_rat_scheme,Trat_scheme_t,_nb_front_end);
     201
     202    for (uint32_t num_front_end=0; num_front_end<_nb_front_end; ++num_front_end)
     203      _commit_unit_rat_scheme [num_front_end] = rat_scheme [_link_rename_unit_with_front_end [num_front_end]];
    190204
    191205    _max_nb_context                = max<uint32_t>(_nb_context,_nb_front_end);
     
    242256       _nb_general_register                           [i],
    243257       _nb_special_register                           [i],
     258       _rat_scheme                                    [i],
    244259       _nb_reg_free                                   [i],
    245        _nb_rename_unit_bank                           [i]// ,
    246 //        _size_read_counter                             [i]
    247        
     260       _nb_rename_unit_bank                           [i],
     261//     _size_read_counter                             [i]
     262       _rename_unit_nb_branch_speculated              [i]
    248263       );
    249264
     
    268283        size_general_register   ,
    269284        size_special_register   ,
     285       _commit_unit_rat_scheme  ,
    270286       _issue_priority          ,
    271287       _issue_load_balancing    ,
     
    396412      {
    397413        for (uint32_t j=0; j<_nb_front_end; j++)
     414          delete [] _rename_unit_nb_branch_speculated           [i][j];
     415        delete [] _rename_unit_nb_branch_speculated             [i];
     416        for (uint32_t j=0; j<_nb_front_end; j++)
    398417          delete [] _rename_unit_link_load_store_unit_with_thread [i][j];
    399        
    400418        delete [] _rename_unit_link_load_store_unit_with_thread [i];
    401419        delete [] _rename_unit_nb_inst_decod                    [i];
     
    403421      }
    404422   
     423    delete [] _rename_unit_nb_branch_speculated            ;
    405424    delete [] _rename_unit_link_load_store_unit_with_thread;
    406425    delete [] _rename_unit_nb_inst_decod                   ;
     
    410429    delete [] _rename_unit_size_context_id                 ;
    411430    delete [] _link_front_end_with_rename_unit             ;
     431
     432    DELETE1(_commit_unit_rat_scheme,_nb_front_end);
    412433
    413434    for (uint32_t i=0; i<_nb_rename_unit; i++)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/src/Parameters_print.cpp

    r138 r139  
    7676    str+= toString(MSG_INFORMATION)+"   * nb_special_register                ["+toString(i)+"] : "+toString<uint32_t         >(_nb_special_register              [i])+"\n";//[nb_rename_unit]
    7777    for (uint32_t i=0; i<_nb_rename_unit; ++i)
     78    str+= toString(MSG_INFORMATION)+"   * rat_scheme                         ["+toString(i)+"] : "+toString<uint32_t         >(_rat_scheme                       [i])+"\n";//[nb_rename_unit]
     79    for (uint32_t i=0; i<_nb_rename_unit; ++i)
    7880    str+= toString(MSG_INFORMATION)+"   * nb_reg_free                        ["+toString(i)+"] : "+toString<uint32_t         >(_nb_reg_free                      [i])+"\n";//[nb_rename_unit]
    7981    for (uint32_t i=0; i<_nb_rename_unit; ++i)
Note: See TracChangeset for help on using the changeset viewer.