Ignore:
Timestamp:
Feb 16, 2009, 9:28:31 PM (15 years ago)
Author:
rosiere
Message:

1) Configuration : instance configuration file : regroup similar instance
2) Configuration : timing default = 0
3) Debug/Commit_unit : Add watch dog timer
4) Issue_queue : Test parameters : add test if type is optionnal
5) Cor_glue : Fix insert index
6) Free_list : remove bank_by_pop (else deadlock)
7) Update Free List : add register to source event

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Commit_unit.h

    r108 r109  
    222222                                                                                   
    223223    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         
     224  private   : double                       ** _nb_cycle_idle;
     225
    224226  private   : std::list<entry_t*>           * _rob                                 ;//[nb_bank]
    225227                                                                                   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_allocation.cpp

    r108 r109  
    279279
    280280    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     281    ALLOC2(_nb_cycle_idle           ,double        ,_param->_nb_front_end,_param->_nb_context [it1]);
    281282    ALLOC1(_rob                     ,std::list<entry_t*>,_param->_nb_bank);
    282283   
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_deallocation.cpp

    r108 r109  
    187187       
    188188        // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     189        DELETE2(_nb_cycle_idle           ,_param->_nb_front_end,_param->_nb_context [it1]);
    189190        DELETE1(_rob                     ,_param->_nb_bank);
    190191        DELETE1(reg_BANK_PTR             ,_param->_nb_bank);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_statistics_allocation.cpp

    r100 r109  
    5858      _stat->create_expr_average_by_cycle("average_inst_retire"   , "+ "+sum_nb_inst_retire_ok+" "+sum_nb_inst_retire_ko, "", _("Average instruction retire by cycle"));
    5959
    60       _stat->create_expr                 ("IPC", "average_inst_retire_ok", TYPE_COUNTER, "inst/cycle", "Instruction Per Cycle");
    61       _stat->create_expr                 ("CPI", "/ 1 IPC"               , TYPE_COUNTER, "cycle/inst", "Cycle Per Instruction");
     60      _stat->create_expr                 ("IPC_ok" , "average_inst_retire_ok", TYPE_COUNTER, "inst/cycle", "Instruction Per Cycle (Instruction Ok)");
     61      _stat->create_expr                 ("CPI_ok" , "/ 1 IPC_ok"            , TYPE_COUNTER, "cycle/inst", "Cycle Per Instruction (Instruction Ok)");
     62
     63      _stat->create_expr                 ("IPC_ko" , "average_inst_retire_ko", TYPE_COUNTER, "inst/cycle", "Instruction Per Cycle (Instruction Ko)");
     64      _stat->create_expr                 ("CPI_ko" , "/ 1 IPC_ko"            , TYPE_COUNTER, "cycle/inst", "Cycle Per Instruction (Instruction Ko)");
     65
     66      _stat->create_expr                 ("IPC_all", "average_inst_retire"   , TYPE_COUNTER, "inst/cycle", "Instruction Per Cycle (Instruction Ok and Ko)");
     67      _stat->create_expr                 ("CPI_all", "/ 1 IPC_all"           , TYPE_COUNTER, "cycle/inst", "Cycle Per Instruction (Instruction Ok and Ko)");
    6268    }
    6369
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_transition.cpp

    r108 r109  
    4141          for (uint32_t j=0; j<_param->_nb_context [i]; j++)
    4242            {
     43              _nb_cycle_idle            [i][j] = 0;
     44
    4345              reg_NB_INST_COMMIT_ALL    [i][j] = 0;
    4446              reg_NB_INST_COMMIT_MEM    [i][j] = 0;
     
    5961    else
    6062      {
     63        // Increase number idle cycle
     64        for (uint32_t i=0; i<_param->_nb_front_end; i++)
     65          for (uint32_t j=0; j<_param->_nb_context [i]; j++)
     66            _nb_cycle_idle [i][j] ++;
     67
    6168        // Compute next priority
    6269        _priority_insert->transition();
     
    402409              _rob [i].pop_front();
    403410              delete entry;
     411
     412              // Transaction on retire interface : reset watch dog timer.
     413              _nb_cycle_idle [front_end_id][context_id] = 0;
    404414            }
    405415
     
    759769#endif
    760770
     771    // Stop Condition
     772    for (uint32_t i=0; i<_param->_nb_front_end; i++)
     773      for (uint32_t j=0; j<_param->_nb_context [i]; j++)
     774        if (_nb_cycle_idle [i][j] >= debug_cycle_idle)
     775          throw ERRORMORPHEO(FUNCTION,toString(_("Context [%d][%d] is idle since %.0f cycles.\n"),i,j,_nb_cycle_idle [i][j]));
     776
    761777    log_end(Commit_unit,FUNCTION);
    762778  };
Note: See TracChangeset for help on using the changeset viewer.