Changeset 111 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_transition.cpp
- Timestamp:
- Feb 27, 2009, 7:37:40 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_transition.cpp
r110 r111 27 27 { 28 28 _priority_in ->reset(); 29 _priority_out->reset();30 _priority_reg->reset();31 32 for (uint32_t i=0; i<_param->_nb_bank; i++)33 _issue_queue [i].clear();34 29 _reexecute_queue.clear(); 35 30 } … … 37 32 { 38 33 _priority_in ->transition(); 39 _priority_out->transition();40 _priority_reg->transition();41 42 // ===================================================================43 // =====[ ISSUE_IN ]==================================================44 // ===================================================================45 46 for (uint32_t i=0; i<_param->_nb_bank; i++)47 if (internal_BANK_IN_ACK [i])48 {49 uint32_t x = internal_BANK_IN_NUM_RENAME_UNIT [i];50 uint32_t y = internal_BANK_IN_NUM_INST [i];51 52 if (PORT_READ(in_ISSUE_IN_VAL[x][y]))53 {54 log_printf(TRACE,Issue_queue,FUNCTION," * ISSUE_IN [%d] - Transaction with ISSUE_IN [%d][%d]",i,x,y);55 56 #ifdef STATISTICS57 if (usage_is_set(_usage,USE_STATISTICS))58 (*_stat_nb_inst_issue_in [x]) ++;59 #endif60 entry_t * entry = new entry_t61 (62 (_param->_have_port_context_id )?PORT_READ(in_ISSUE_IN_CONTEXT_ID [x][y]):0,63 (_param->_have_port_front_end_id )?PORT_READ(in_ISSUE_IN_FRONT_END_ID [x][y]):0,64 (_param->_have_port_rob_ptr )?PORT_READ(in_ISSUE_IN_PACKET_ID [x][y]):0,65 PORT_READ(in_ISSUE_IN_OPERATION [x][y]),66 PORT_READ(in_ISSUE_IN_TYPE [x][y]),67 PORT_READ(in_ISSUE_IN_STORE_QUEUE_PTR_WRITE [x][y]),68 (_param->_have_port_load_queue_ptr)?PORT_READ(in_ISSUE_IN_LOAD_QUEUE_PTR_WRITE [x][y]):0,69 PORT_READ(in_ISSUE_IN_HAS_IMMEDIAT [x][y]),70 PORT_READ(in_ISSUE_IN_IMMEDIAT [x][y]),71 PORT_READ(in_ISSUE_IN_READ_RA [x][y]),72 PORT_READ(in_ISSUE_IN_NUM_REG_RA [x][y]),73 PORT_READ(in_ISSUE_IN_READ_RB [x][y]),74 PORT_READ(in_ISSUE_IN_NUM_REG_RB [x][y]),75 PORT_READ(in_ISSUE_IN_READ_RC [x][y]),76 PORT_READ(in_ISSUE_IN_NUM_REG_RC [x][y]),77 PORT_READ(in_ISSUE_IN_WRITE_RD [x][y]),78 PORT_READ(in_ISSUE_IN_NUM_REG_RD [x][y]),79 PORT_READ(in_ISSUE_IN_WRITE_RE [x][y]),80 PORT_READ(in_ISSUE_IN_NUM_REG_RE [x][y])81 );82 83 _issue_queue [i].push_back(entry);84 }85 }86 34 87 35 // =================================================================== … … 130 78 if (internal_ISSUE_OUT_VAL [i] and PORT_READ(in_ISSUE_OUT_ACK [i])) 131 79 { 132 entry_t * entry = internal_ISSUE_OUT_ENTRY [i]; 133 80 #ifdef STATISTICS 81 if (usage_is_set(_usage,USE_STATISTICS)) 82 (*_stat_nb_inst_issue_out ) ++; 83 #endif 134 84 if (internal_ISSUE_OUT_FROM_REEXECUTE [i]) 135 85 { 86 entry_t * entry = internal_ISSUE_OUT_ENTRY [i]; 87 136 88 log_printf(TRACE,Issue_queue,FUNCTION," * ISSUE_OUT [%d] - From Reexecute_queue",i); 137 89 138 90 _reexecute_queue.remove(entry); 91 92 delete entry; 139 93 } 140 else 141 { 142 // front ... 143 uint32_t num_bank = internal_ISSUE_OUT_NUM_BANK [i]; 144 145 log_printf(TRACE,Issue_queue,FUNCTION," * ISSUE_OUT [%d] - From issue_queue [%d]",i,num_bank); 146 147 _issue_queue [num_bank].remove(entry); 148 } 149 150 delete entry; 151 } 94 // else ... in function specific 95 } 152 96 } 153 97 154 #if defined(DEBUG) and defined(DEBUG_Issue_queue) and (DEBUG >= DEBUG_TRACE) 98 // specific implementation 99 (this->*function_transition) (); 100 101 // =================================================================== 102 // =====[ PRINT ]==================================================== 103 // =================================================================== 104 105 #if defined(DEBUG) and DEBUG_Issue_queue and (DEBUG >= DEBUG_TRACE) 155 106 log_printf(TRACE,Issue_queue,FUNCTION," * Dump Issue_queue"); 156 107 … … 245 196 #endif 246 197 198 199 247 200 #if defined(STATISTICS) or defined(VHDL_TESTBENCH) 248 201 end_cycle ();
Note: See TracChangeset
for help on using the changeset viewer.