Ignore:
Timestamp:
Oct 13, 2010, 8:15:51 PM (14 years ago)
Author:
rosiere
Message:

1) add test with SPECINT2K
2) new config of Selftest
3) modif RAT to support multiple depth_save ... but not finish (need fix Update Prediction Table)
4) add Function_pointer but need fix

File:
1 edited

Legend:

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

    r124 r145  
    101101                    if (not bank_full [num_bank])
    102102                      {
    103                         // find !!!
    104                         insert_ack       [num_rename_unit][num_inst_insert] = true;
     103                        bool cond = true;
     104
     105                        if (_param->_rat_scheme[num_rename_unit] == RAT_DEPTH_SAVE)
     106                          {
     107                            Tcontext_t front_end_id = (_param->_have_port_front_end_id)?PORT_READ(in_INSERT_FRONT_END_ID [num_rename_unit][num_inst_insert]):0;
     108                            Tcontext_t context_id   = (_param->_have_port_context_id  )?PORT_READ(in_INSERT_CONTEXT_ID   [num_rename_unit][num_inst_insert]):0;
     109                            Tdepth_t   depth        = (_param->_have_port_depth       )?PORT_READ(in_INSERT_DEPTH        [num_rename_unit][num_inst_insert]):0;
     110                            Tcontrol_t save_rat     =                                   PORT_READ(in_INSERT_SAVE_RAT     [num_rename_unit][num_inst_insert]);
     111
     112                            cond = not (save_rat and (reg_NB_INST_DEPTH[front_end_id][context_id][depth]>0));
     113
     114                            log_printf(TRACE,Commit_unit,FUNCTION,"        * front_end_id : %d",front_end_id);
     115                            log_printf(TRACE,Commit_unit,FUNCTION,"        * context_id   : %d",context_id  );
     116                            log_printf(TRACE,Commit_unit,FUNCTION,"        * depth        : %d",depth       );
     117                            log_printf(TRACE,Commit_unit,FUNCTION,"        * save_rat     : %d",save_rat    );
     118                            log_printf(TRACE,Commit_unit,FUNCTION,"        * cond         : %d",cond        );
     119                           
     120                          }
    105121                       
    106                         Tpacket_t packet_id = ((reg_BANK_PTR [num_bank] << _param->_shift_num_slot) | num_bank);
    107                        
     122                        if (cond)
     123                          {
     124                            // find !!!
     125                            insert_ack       [num_rename_unit][num_inst_insert] = true;
     126                           
     127                            Tpacket_t packet_id = ((reg_BANK_PTR [num_bank] << _param->_shift_num_slot) | num_bank);
     128                           
    108129#ifdef SYSTEMC_VHDL_COMPATIBILITY
    109                         insert_packet_id [num_rename_unit][num_inst_insert] = packet_id;
     130                            insert_packet_id [num_rename_unit][num_inst_insert] = packet_id;
    110131#else
    111                         if (_param->_have_port_rob_ptr  )
    112                         PORT_WRITE(out_INSERT_PACKET_ID [num_rename_unit][num_inst_insert],packet_id);
     132                            if (_param->_have_port_rob_ptr  )
     133                              PORT_WRITE(out_INSERT_PACKET_ID [num_rename_unit][num_inst_insert],packet_id);
    113134#endif
    114                         internal_BANK_INSERT_VAL             [num_bank] = true;
    115                         internal_BANK_INSERT_NUM_RENAME_UNIT [num_bank] = num_rename_unit;
    116                         internal_BANK_INSERT_NUM_INST        [num_bank] = num_inst_insert;
    117                        
    118                         break;
     135                            internal_BANK_INSERT_VAL             [num_bank] = true;
     136                            internal_BANK_INSERT_NUM_RENAME_UNIT [num_bank] = num_rename_unit;
     137                            internal_BANK_INSERT_NUM_INST        [num_bank] = num_inst_insert;
     138                           
     139                            break;
     140                          }
    119141                      }
    120142                  }
Note: See TracChangeset for help on using the changeset viewer.