Changeset 145 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_transition.cpp
- Timestamp:
- Oct 13, 2010, 8:15:51 PM (14 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_transition.cpp
r144 r145 48 48 _nb_cycle_idle [i][j] = 0; 49 49 50 reg_NB_INST_COMMIT_ALL [i][j] = 0;51 reg_NB_INST_COMMIT_MEM [i][j] = 0;52 53 50 reg_EVENT_STATE [i][j] = COMMIT_EVENT_STATE_NO_EVENT; 54 51 // reg_EVENT_FLUSH [i][j] = false; … … 72 69 reg_PC_CURRENT_IS_DS_TAKE [i][j] = 0; 73 70 reg_PC_NEXT [i][j] = (0x100+4)>>2; 71 72 reg_NB_INST_COMMIT_ALL [i][j] = 0; 73 reg_NB_INST_COMMIT_MEM [i][j] = 0; 74 75 if (_param->_front_end_rat_scheme[i] == RAT_DEPTH_SAVE) 76 for (uint32_t k=0; k<_param->_nb_branch_speculated[i][j]; ++k) 77 reg_NB_INST_DEPTH [i][j][k] = 0; 74 78 } 75 79 … … 281 285 uint32_t ptr = reg_BANK_PTR [num_bank]; 282 286 287 // entry->restore = false; 283 288 entry->ptr = ptr; 284 289 entry->front_end_id = front_end_id; … … 353 358 { 354 359 case TYPE_BRANCH : {entry->state=(no_execute==1)?ROB_BRANCH_COMPLETE:ROB_BRANCH_WAIT_END ; break;} 355 case TYPE_MEMORY : {entry->state=(no_execute==1)?ROB_END_OK_SPECULATIVE:(entry->state=(is_store 360 case TYPE_MEMORY : {entry->state=(no_execute==1)?ROB_END_OK_SPECULATIVE:(entry->state=(is_store==1)?ROB_STORE_WAIT_END_OK:ROB_OTHER_WAIT_END); break;} 356 361 default : {entry->state=(no_execute==1)?ROB_END_OK_SPECULATIVE:ROB_OTHER_WAIT_END; break;} 357 362 } … … 378 383 if (type == TYPE_MEMORY) 379 384 reg_NB_INST_COMMIT_MEM [front_end_id][context_id] ++; 380 385 386 if (_param->_front_end_rat_scheme[front_end_id] == RAT_DEPTH_SAVE) 387 reg_NB_INST_DEPTH [front_end_id][context_id][entry->depth] ++; 381 388 382 389 // flush = present event or future event. … … 856 863 if (type == TYPE_MEMORY) 857 864 reg_NB_INST_COMMIT_MEM [front_end_id][context_id] --; 858 865 if (_param->_front_end_rat_scheme[front_end_id] == RAT_DEPTH_SAVE) 866 reg_NB_INST_DEPTH [front_end_id][context_id][entry->depth] --; 859 867 // Update pointer 860 868 reg_NUM_BANK_HEAD = (num_bank+1)%_param->_nb_bank; … … 1191 1199 switch (state) 1192 1200 { 1193 case ROB_BRANCH_WAIT_END : {state = ROB_EVENT_WAIT_END ; break;}1194 case ROB_BRANCH_COMPLETE : {state = ROB_END_MISS ; break;}1201 case ROB_BRANCH_WAIT_END : {state = ROB_EVENT_WAIT_END ; break;} 1202 case ROB_BRANCH_COMPLETE : {state = ROB_END_MISS ; break;} 1195 1203 case ROB_END_BRANCH_MISS : 1196 case ROB_END_BRANCH_MISS_SPECULATIVE : {state = ROB_END_MISS ; break;}1204 case ROB_END_BRANCH_MISS_SPECULATIVE : {state = ROB_END_MISS ; break;} 1197 1205 case ROB_END_LOAD_MISS : 1198 1206 case ROB_END_LOAD_MISS_UPDATE : 1199 case ROB_END_LOAD_MISS_SPECULATIVE : {state = ROB_END_MISS ; break;}1200 case ROB_STORE_OK : {state = ROB_STORE_KO ; break;}1207 case ROB_END_LOAD_MISS_SPECULATIVE : {state = ROB_END_MISS ; break;} 1208 case ROB_STORE_OK : {state = ROB_STORE_KO ; break;} 1201 1209 case ROB_STORE_WAIT_END_OK : {state = ROB_STORE_WAIT_END_KO; break;} 1202 1210 case ROB_STORE_OK_WAIT_END : {state = ROB_STORE_KO_WAIT_END; break;} 1203 case ROB_OTHER_WAIT_END : {state = ROB_EVENT_WAIT_END ; break;}1211 case ROB_OTHER_WAIT_END : {state = ROB_EVENT_WAIT_END ; break;} 1204 1212 case ROB_END_OK : 1205 case ROB_END_OK_SPECULATIVE : {state = ROB_END_MISS ; break;}1213 case ROB_END_OK_SPECULATIVE : {state = ROB_END_MISS ; break;} 1206 1214 case ROB_END_KO : 1207 case ROB_END_KO_SPECULATIVE : {state = ROB_END_MISS ; break;}1215 case ROB_END_KO_SPECULATIVE : {state = ROB_END_MISS ; break;} 1208 1216 case ROB_END_EXCEPTION_UPDATE : 1209 1217 case ROB_END_EXCEPTION : 1210 case ROB_END_EXCEPTION_WAIT_HEAD : {state = ROB_END_MISS ; break;}1218 case ROB_END_EXCEPTION_WAIT_HEAD : {state = ROB_END_MISS ; break;} 1211 1219 1212 1220 // don't change state -> wait … … 1348 1356 // log_printf(TRACE,Commit_unit,FUNCTION," * EVENT : %d (bank %d, ptr %d)",((reg_EVENT_NUM_PTR [i][j] << _param->_shift_num_slot) | reg_EVENT_NUM_BANK [i][j]), reg_EVENT_NUM_BANK [i][j],reg_EVENT_NUM_PTR [i][j]); 1349 1357 // log_printf(TRACE,Commit_unit,FUNCTION," * EVENT_CAN_RESTART : %d",reg_EVENT_CAN_RESTART [i][j]); 1350 log_printf(TRACE,Commit_unit,FUNCTION," * EVENT_DEPTH : %d - type %s",reg_EVENT_DEPTH [i][j],toString(reg_EVENT_TYPE [i][j]).c_str()); 1358 log_printf(TRACE,Commit_unit,FUNCTION," * EVENT_DEPTH : %d",reg_EVENT_DEPTH [i][j]); 1359 log_printf(TRACE,Commit_unit,FUNCTION," * EVENT_TYPE : %s",toString(reg_EVENT_TYPE [i][j]).c_str()); 1351 1360 log_printf(TRACE,Commit_unit,FUNCTION," * EVENT_LAST : %d - packet %d - ptr %d (bank %d, ptr %d)",reg_EVENT_LAST [i][j],reg_EVENT_PACKET[i][j],((reg_EVENT_LAST_NUM_PTR [i][j] << _param->_shift_num_slot) | reg_EVENT_LAST_NUM_BANK [i][j]), reg_EVENT_LAST_NUM_BANK [i][j],reg_EVENT_LAST_NUM_PTR [i][j]); 1352 1361 log_printf(TRACE,Commit_unit,FUNCTION," * EVENT_NEXT : stop : %d - packet : %d",reg_EVENT_NEXT_STOP [i][j],reg_EVENT_NEXT_PACKET[i][j]); … … 1436 1445 } 1437 1446 1438 log_printf(TRACE,Commit_unit,FUNCTION," * Dump RAT 1447 log_printf(TRACE,Commit_unit,FUNCTION," * Dump RAT_Update Table"); 1439 1448 for (uint32_t i=0; i<_param->_nb_front_end; ++i) 1440 1449 for (uint32_t j=0; j<_param->_nb_context[i]; ++j)
Note: See TracChangeset
for help on using the changeset viewer.