Changeset 104 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_allocation.cpp
- Timestamp:
- Jan 21, 2009, 10:53:13 PM (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_allocation.cpp
r101 r104 104 104 _ALLOC2_SIGNAL_OUT(out_RETIRE_CONTEXT_ID ,"context_id" ,Tcontext_t ,_param->_size_context_id ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]); 105 105 // _ALLOC2_SIGNAL_OUT(out_RETIRE_RENAME_UNIT_ID ,"rename_unit_id" ,Tcontext_t ,_param->_size_rename_unit_id ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]); 106 _ALLOC2_SIGNAL_OUT(out_RETIRE_EVENT_STATE ,"event_state" ,Tevent_state_t ,_param->_size_event_state ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]);107 106 _ALLOC2_SIGNAL_OUT(out_RETIRE_USE_STORE_QUEUE ,"use_store_queue" ,Tcontrol_t ,1 ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]); 108 107 _ALLOC2_SIGNAL_OUT(out_RETIRE_USE_LOAD_QUEUE ,"use_load_queue" ,Tcontrol_t ,1 ,_param->_nb_rename_unit,_param->_nb_inst_retire[it1]); … … 125 124 } 126 125 126 // ~~~~~[ Interface : "retire_event" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 127 { 128 ALLOC2_INTERFACE("retire_event",OUT,SOUTH, _("Interface to update rename_unit."),_param->_nb_front_end,_param->_nb_context[it1]); 129 130 _ALLOC2_VALACK_OUT(out_RETIRE_EVENT_VAL ,VAL,_param->_nb_front_end,_param->_nb_context[it1]); 131 _ALLOC2_VALACK_IN ( in_RETIRE_EVENT_ACK ,ACK,_param->_nb_front_end,_param->_nb_context[it1]); 132 _ALLOC2_SIGNAL_OUT(out_RETIRE_EVENT_STATE ,"state" ,Tevent_state_t ,_param->_size_event_state ,_param->_nb_front_end,_param->_nb_context[it1]); 133 } 134 127 135 // ~~~~~[ Interface : "commit" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 128 136 { … … 243 251 { 244 252 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 245 internal_BANK_INSERT_VAL = new Tcontrol_t [_param->_nb_bank]; 246 internal_BANK_INSERT_NUM_RENAME_UNIT = new uint32_t [_param->_nb_bank]; 247 internal_BANK_INSERT_NUM_INST = new uint32_t [_param->_nb_bank]; 248 249 internal_BANK_COMMIT_VAL = new Tcontrol_t * [_param->_nb_bank]; 250 internal_BANK_COMMIT_NUM_INST = new uint32_t * [_param->_nb_bank]; 251 internal_BANK_COMMIT_ENTRY = new entry_t ** [_param->_nb_bank]; 253 ALLOC1(internal_BANK_INSERT_VAL ,Tcontrol_t,_param->_nb_bank); 254 ALLOC1(internal_BANK_INSERT_NUM_RENAME_UNIT ,uint32_t ,_param->_nb_bank); 255 ALLOC1(internal_BANK_INSERT_NUM_INST ,uint32_t ,_param->_nb_bank); 256 257 ALLOC2(internal_BANK_COMMIT_VAL ,Tcontrol_t,_param->_nb_bank,_param->_nb_bank_access_commit); 258 ALLOC2(internal_BANK_COMMIT_NUM_INST ,uint32_t ,_param->_nb_bank,_param->_nb_bank_access_commit); 259 ALLOC2(internal_BANK_COMMIT_ENTRY ,entry_t * ,_param->_nb_bank,_param->_nb_bank_access_commit); 260 261 ALLOC1(internal_BANK_RETIRE_VAL ,Tcontrol_t,_param->_nb_bank); 262 ALLOC1(internal_BANK_RETIRE_NUM_RENAME_UNIT ,uint32_t ,_param->_nb_bank); 263 ALLOC1(internal_BANK_RETIRE_NUM_INST ,uint32_t ,_param->_nb_bank); 264 265 ALLOC1(internal_REEXECUTE_VAL ,Tcontrol_t,_param->_nb_inst_reexecute); 266 ALLOC1(internal_REEXECUTE_NUM_BANK ,uint32_t ,_param->_nb_inst_reexecute); 267 268 ALLOC1(internal_BRANCH_COMPLETE_VAL ,Tcontrol_t,_param->_nb_inst_branch_complete); 269 ALLOC1(internal_BRANCH_COMPLETE_NUM_BANK ,uint32_t ,_param->_nb_inst_branch_complete); 270 271 ALLOC2(internal_EVENT_ACK ,Tcontrol_t,_param->_nb_front_end,_param->_nb_context [it1]); 272 273 ALLOC2(internal_RETIRE_EVENT_VAL ,Tcontrol_t,_param->_nb_front_end,_param->_nb_context[it1]); 274 275 // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 276 ALLOC1(_rob ,std::list<entry_t*>,_param->_nb_bank); 252 277 253 for (uint32_t i=0; i<_param->_nb_bank; i++) 254 { 255 internal_BANK_COMMIT_VAL [i] = new Tcontrol_t [_param->_nb_bank_access_commit]; 256 internal_BANK_COMMIT_NUM_INST [i] = new uint32_t [_param->_nb_bank_access_commit]; 257 internal_BANK_COMMIT_ENTRY [i] = new entry_t * [_param->_nb_bank_access_commit]; 258 } 259 260 internal_BANK_RETIRE_VAL = new Tcontrol_t [_param->_nb_bank]; 261 internal_BANK_RETIRE_NUM_RENAME_UNIT = new uint32_t [_param->_nb_bank]; 262 internal_BANK_RETIRE_NUM_INST = new uint32_t [_param->_nb_bank]; 263 264 internal_REEXECUTE_VAL = new Tcontrol_t [_param->_nb_inst_reexecute]; 265 internal_REEXECUTE_NUM_BANK = new uint32_t [_param->_nb_inst_reexecute]; 266 267 internal_BRANCH_COMPLETE_VAL = new Tcontrol_t [_param->_nb_inst_branch_complete]; 268 internal_BRANCH_COMPLETE_NUM_BANK = new uint32_t [_param->_nb_inst_branch_complete]; 269 270 internal_EVENT_ACK = new Tcontrol_t * [_param->_nb_front_end]; 271 for (uint32_t i=0; i<_param->_nb_front_end; i++) 272 internal_EVENT_ACK [i] = new Tcontrol_t [_param->_nb_context [i]]; 273 274 // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 ALLOC1(_rob ,std::list<entry_t*>,_param->_nb_bank); 278 ALLOC1(reg_BANK_PTR ,uint32_t ,_param->_nb_bank); 279 280 ALLOC2(reg_NB_INST_COMMIT_ALL ,Tcounter_t ,_param->_nb_front_end,_param->_nb_context [it1]); 281 ALLOC2(reg_NB_INST_COMMIT_MEM ,Tcounter_t ,_param->_nb_front_end,_param->_nb_context [it1]); 276 282 277 ALLOC1(reg_BANK_PTR ,uint32_t ,_param->_nb_bank); 278 279 ALLOC2(reg_NB_INST_COMMIT_ALL ,Tcounter_t ,_param->_nb_front_end,_param->_nb_context [it1]); 280 ALLOC2(reg_NB_INST_COMMIT_MEM ,Tcounter_t ,_param->_nb_front_end,_param->_nb_context [it1]); 281 282 ALLOC2(reg_EVENT_STATE ,Tevent_state_t,_param->_nb_front_end,_param->_nb_context [it1]); 283 ALLOC2(reg_EVENT_STATE ,Tevent_state_t,_param->_nb_front_end,_param->_nb_context [it1]); 284 ALLOC2(reg_EVENT_FLUSH ,bool ,_param->_nb_front_end,_param->_nb_context [it1]); 285 286 ALLOC2(reg_PC_PREVIOUS ,Taddress_t ,_param->_nb_front_end,_param->_nb_context [it1]); 287 ALLOC2(reg_PC_CURRENT ,Taddress_t ,_param->_nb_front_end,_param->_nb_context [it1]); 288 ALLOC2(reg_PC_CURRENT_IS_DS ,Taddress_t ,_param->_nb_front_end,_param->_nb_context [it1]); 289 ALLOC2(reg_PC_CURRENT_IS_DS_TAKE,Taddress_t ,_param->_nb_front_end,_param->_nb_context [it1]); 290 ALLOC2(reg_PC_NEXT ,Taddress_t ,_param->_nb_front_end,_param->_nb_context [it1]); 283 291 } 284 292
Note: See TracChangeset
for help on using the changeset viewer.