Changeset 122 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_genMealy_retire.cpp
- Timestamp:
- Jun 3, 2009, 10:15:51 AM (15 years ago)
- 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_retire.cpp
r121 r122 56 56 57 57 } 58 58 59 // Scan Top of each bank 59 60 internal_BANK_RETIRE_HEAD = reg_NUM_BANK_HEAD; … … 62 63 uint32_t num_bank = (internal_BANK_RETIRE_HEAD+i)%_param->_nb_bank; 63 64 65 // Test if have instruction 64 66 if (not _rob[num_bank].empty()) 65 67 { … … 68 70 uint32_t x = entry->rename_unit_id; 69 71 uint32_t y = num_inst_retire [x]; 70 72 bool bypass= false; 71 73 // test if : 72 74 // * can retire (all previous instruction is retired) … … 77 79 { 78 80 rob_state_t state = entry->state; 81 Tcontext_t front_end_id = entry->front_end_id; 82 Tcontext_t context_id = entry->context_id; 83 79 84 if ((state == ROB_END_OK ) or 80 85 (state == ROB_END_KO ) or … … 87 92 Tcontrol_t write_re = entry->write_re; 88 93 Tspecial_address_t num_reg_re_log = entry->num_reg_re_log; 89 Tcontext_t front_end_id = entry->front_end_id;90 Tcontext_t context_id = entry->context_id;91 94 92 95 // if state is ok, when write flags in the SR regsiters … … 173 176 can_retire [x] = false; 174 177 } 178 179 bypass = ((state == ROB_END ) or 180 (state == ROB_STORE_OK ) or 181 (state == ROB_STORE_KO ) or 182 (state == ROB_STORE_OK_WAIT_END) or 183 (state == ROB_STORE_KO_WAIT_END)); 184 185 uint32_t packet = ((entry->ptr << _param->_shift_num_slot) | num_bank); 186 187 // if future event, don't update after this event 188 if (reg_EVENT_STOP [front_end_id][context_id] and 189 (reg_EVENT_PACKET [entry->front_end_id][entry->context_id] == packet)) 190 bypass = false; 175 191 } 176 192 177 193 // Retire "in-order" 178 can_retire [x] &= retire_val [x][y];194 can_retire [x] &= (retire_val [x][y] or bypass); 179 195 } 180 196 }
Note: See TracChangeset
for help on using the changeset viewer.