Ignore:
Timestamp:
Feb 12, 2009, 12:55:06 PM (15 years ago)
Author:
rosiere
Message:

1) decod_queue : add reg_LAST_SLOT.
2) Commit : insert on event -> to pop decod_queue. Head test : add information (speculative or not)
3) Context State / UPT : Branch miss and Load miss in same cycle.
4) Free List : Bank is on LSB not MSB.
5) Platforms : move data

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_genMealy_pop.cpp

    r88 r108  
    2828    for (uint32_t i=0; i<_param->_nb_pop; i++)
    2929      {
    30         uint32_t offset = i*_param->_nb_bank_by_pop;
     30        log_printf(TRACE,Free_List_unit,FUNCTION,"  * POP [%d]",i);
     31
     32        uint32_t offset = i*_param->_nb_bank_by_pop;
    3133
    3234        // GPR
    3335        bool gpr_ack = not PORT_READ(in_POP_GPR_VAL[i]);
    3436
     37        log_printf(TRACE,Free_List_unit,FUNCTION,"    * GPR_VAL : %d",PORT_READ(in_POP_GPR_VAL[i]));
     38
    3539        if (not gpr_ack)
    3640          for (uint32_t j=0; j<_param->_nb_bank_by_pop; j++)
    3741            {
    38               uint32_t bank = offset+((j+internal_BANK_PRIORITY)%_param->_nb_bank_by_pop);
     42              uint32_t bank = offset+((j+reg_BANK_PRIORITY)%_param->_nb_bank_by_pop
     43                                      );
     44
     45              log_printf(TRACE,Free_List_unit,FUNCTION,"    * bank    : %d",bank);
    3946             
    4047              if (not _gpr_list[bank].empty())
    4148                {
    4249                  // find
     50                  log_printf(TRACE,Free_List_unit,FUNCTION,"    * find    : %d",_gpr_list[bank].front());
     51
    4352                  gpr_ack = true;
    4453                  internal_POP_GPR_BANK [i] = bank;
    4554                  PORT_WRITE(out_POP_GPR_NUM_REG [i],
    46                              //(bank << _param->_shift) |
     55                             //(bank << _param->_shift) | // only in VHDL
    4756                             _gpr_list[bank].front());
    4857                 
     
    5463        bool spr_ack = not PORT_READ(in_POP_SPR_VAL[i]);
    5564
     65        log_printf(TRACE,Free_List_unit,FUNCTION,"    * SPR_VAL : %d",PORT_READ(in_POP_SPR_VAL[i]));
     66
    5667        if (not spr_ack)
    5768          for (uint32_t j=0; j<_param->_nb_bank_by_pop; j++)
    5869            {
    59               uint32_t bank = offset+((j+internal_BANK_PRIORITY)%_param->_nb_bank_by_pop);
     70              uint32_t bank = offset+((j+reg_BANK_PRIORITY)%_param->_nb_bank_by_pop
     71                                      );
     72
     73              log_printf(TRACE,Free_List_unit,FUNCTION,"    * bank    : %d",bank);
    6074             
    6175              if (not _spr_list[bank].empty())
    6276                {
    6377                  // find
     78                  log_printf(TRACE,Free_List_unit,FUNCTION,"    * find    : %d",_spr_list[bank].front());
     79
    6480                  spr_ack = true;
    6581                  internal_POP_SPR_BANK [i] = bank;
    6682                  PORT_WRITE(out_POP_SPR_NUM_REG [i],
    67                              //(bank << _param->_shift) |
     83                             //(bank << _param->_shift) | // only in VHDL
    6884                             _spr_list[bank].front());
    6985                 
Note: See TracChangeset for help on using the changeset viewer.