Changeset 128 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit
- Timestamp:
- Jun 26, 2009, 10:43:23 AM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/Operation/include/Types.h
r116 r128 109 109 for (uint32_t i=0; i<NB_GROUP; i++) 110 110 { 111 _spr 111 _spr [i] = NULL; 112 112 } 113 113 } … … 117 117 for (uint32_t x=0; x<NB_GROUP; x++) 118 118 if (_spr[x] != NULL) 119 delete _spr[x];120 delete _spr;121 delete _spr_access_mode;119 delete [] _spr[x]; 120 delete [] _spr; 121 delete _spr_access_mode; 122 122 } 123 123 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_deallocation.cpp
r122 r128 32 32 DELETE0_SIGNAL( in_EXECUTE_IN_VAL ,1); 33 33 DELETE0_SIGNAL(out_EXECUTE_IN_ACK ,1); 34 DELETE0_SIGNAL( in_EXECUTE_IN_CONTEXT_ID , 35 DELETE0_SIGNAL( in_EXECUTE_IN_FRONT_END_ID , 36 DELETE0_SIGNAL( in_EXECUTE_IN_OOO_ENGINE_ID , 37 DELETE0_SIGNAL( in_EXECUTE_IN_PACKET_ID , _param->_size_rob_ptr);38 DELETE0_SIGNAL( in_EXECUTE_IN_OPERATION , 39 DELETE0_SIGNAL( in_EXECUTE_IN_TYPE , 34 DELETE0_SIGNAL( in_EXECUTE_IN_CONTEXT_ID ,_param->_size_context_id ); 35 DELETE0_SIGNAL( in_EXECUTE_IN_FRONT_END_ID ,_param->_size_front_end_id ); 36 DELETE0_SIGNAL( in_EXECUTE_IN_OOO_ENGINE_ID ,_param->_size_ooo_engine_id); 37 DELETE0_SIGNAL( in_EXECUTE_IN_PACKET_ID ,_param->_size_rob_ptr ); 38 DELETE0_SIGNAL( in_EXECUTE_IN_OPERATION ,_param->_size_operation ); 39 DELETE0_SIGNAL( in_EXECUTE_IN_TYPE ,_param->_size_type ); 40 40 DELETE0_SIGNAL( in_EXECUTE_IN_STORE_QUEUE_PTR_WRITE ,_param->_size_store_queue_ptr); 41 41 DELETE0_SIGNAL( in_EXECUTE_IN_STORE_QUEUE_PTR_READ ,_param->_size_store_queue_ptr); 42 DELETE0_SIGNAL( in_EXECUTE_IN_STORE_QUEUE_EMPTY , 42 DELETE0_SIGNAL( in_EXECUTE_IN_STORE_QUEUE_EMPTY ,1); 43 43 DELETE0_SIGNAL( in_EXECUTE_IN_LOAD_QUEUE_PTR_WRITE ,_param->_size_load_queue_ptr); 44 DELETE0_SIGNAL( in_EXECUTE_IN_HAS_IMMEDIAT , 45 DELETE0_SIGNAL( in_EXECUTE_IN_IMMEDIAT , 46 DELETE0_SIGNAL( in_EXECUTE_IN_DATA_RA , 47 DELETE0_SIGNAL( in_EXECUTE_IN_DATA_RB , 48 DELETE0_SIGNAL( in_EXECUTE_IN_DATA_RC , 49 DELETE0_SIGNAL( in_EXECUTE_IN_WRITE_RD , 50 DELETE0_SIGNAL( in_EXECUTE_IN_NUM_REG_RD , 51 DELETE0_SIGNAL( in_EXECUTE_IN_WRITE_RE , 52 DELETE0_SIGNAL( in_EXECUTE_IN_NUM_REG_RE , 44 DELETE0_SIGNAL( in_EXECUTE_IN_HAS_IMMEDIAT ,1); 45 DELETE0_SIGNAL( in_EXECUTE_IN_IMMEDIAT ,_param->_size_general_data); 46 DELETE0_SIGNAL( in_EXECUTE_IN_DATA_RA ,_param->_size_general_data); 47 DELETE0_SIGNAL( in_EXECUTE_IN_DATA_RB ,_param->_size_general_data); 48 DELETE0_SIGNAL( in_EXECUTE_IN_DATA_RC ,_param->_size_special_data); 49 DELETE0_SIGNAL( in_EXECUTE_IN_WRITE_RD ,1); 50 DELETE0_SIGNAL( in_EXECUTE_IN_NUM_REG_RD ,_param->_size_general_register); 51 DELETE0_SIGNAL( in_EXECUTE_IN_WRITE_RE ,1); 52 DELETE0_SIGNAL( in_EXECUTE_IN_NUM_REG_RE ,_param->_size_special_register); 53 53 54 54 DELETE0_SIGNAL(out_EXECUTE_OUT_VAL ,1); … … 72 72 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 73 74 for (uint32_t i=0; i<_param->_nb_type; i++) 75 delete [] _function_execute [i]; 76 delete [] _function_execute; 77 74 78 for (uint32_t i=0; i<_param->_nb_context; i++) 75 for (uint32_t j=0; j<_param->_nb_front_end; j++) 76 for (uint32_t k=0; k<_param->_nb_ooo_engine; k++) 77 delete _execute_register [i][j][k]; 79 { 80 for (uint32_t j=0; j<_param->_nb_front_end; j++) 81 { 82 for (uint32_t k=0; k<_param->_nb_ooo_engine; k++) 83 delete _execute_register [i][j][k]; 84 delete [] _execute_register [i][j]; 85 } 86 delete [] _execute_register [i]; 87 } 88 delete [] _execute_register; 78 89 79 DELETE3(_execute_register,_param->_nb_context,_param->_nb_front_end,_param->_nb_ooo_engine);80 DELETE0(_execute_param);90 delete _execute_param; 91 delete _execute_operation_out; 81 92 if (_param->_have_pipeline_in) 82 DELETE0(_execute_operation_in); 83 DELETE0(_execute_operation_out); 84 DELETE2(_function_execute,_param->_nb_type,_param->_nb_operation); 93 delete _execute_operation_in; 85 94 } 86 95 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Functionnal_unit/src/Functionnal_unit_transition.cpp
r118 r128 132 132 execute_operation->_num_reg_re = PORT_READ(in_EXECUTE_IN_NUM_REG_RE ); 133 133 execute_operation->_data_re = 0; // no necessaray 134 execute_operation->_exception = 0; // no necessaray 135 execute_operation->_no_sequence = 0; // no necessaray 136 execute_operation->_address = 0; // no necessaray 134 137 135 138 log_printf(TRACE,Functionnal_unit,FUNCTION," * context_id : %d",execute_operation->_context_id ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_deallocation.cpp
r124 r128 122 122 123 123 #if defined(DEBUG) and defined(DEBUG_Load_store_unit) and (DEBUG_Load_store_unit == true) 124 for (uint32_t i=0; i<_param->_nb_thread; ++i) 125 if (_param->_num_thread_valid [i]) 126 { 127 memory_log_file [i].close(); 128 } 124 { 125 for (uint32_t i=0; i<_param->_nb_thread; ++i) 126 if (_param->_num_thread_valid [i]) 127 { 128 memory_log_file [i].close(); 129 } 130 delete [] memory_log_file; 131 } 129 132 #endif 130 133 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit_function_speculative_load_commit_transition.cpp
r124 r128 239 239 _speculative_access_queue_control->clear(); 240 240 241 reg_STORE_QUEUE_PTR_READ = 0;241 reg_STORE_QUEUE_PTR_READ = 0; 242 242 reg_LOAD_QUEUE_CHECK_PRIORITY = 0; 243 243 244 244 for (uint32_t i=0; i< _param->_size_store_queue ; i++) 245 245 { 246 reg_STORE_QUEUE_NB_CHECK [i] = 0; 247 _store_queue [i]._state = STORE_QUEUE_EMPTY; 246 reg_STORE_QUEUE_NB_CHECK [i] = 0; 247 _store_queue [i]._state = STORE_QUEUE_EMPTY; 248 _store_queue [i]._context_id = 0; // not necessary 249 _store_queue [i]._front_end_id = 0; // not necessary 250 _store_queue [i]._ooo_engine_id = 0; // not necessary 251 _store_queue [i]._packet_id = 0; // not necessary 252 _store_queue [i]._operation = 0; // not necessary 253 _store_queue [i]._load_queue_ptr_write = 0; // not necessary 254 _store_queue [i]._address = 0; // not necessary 255 _store_queue [i]._wdata = 0; // not necessary 256 // _store_queue [i]._write_rd = 0; // not necessary 257 // _store_queue [i]._num_reg_rd = 0; // not necessary 258 _store_queue [i]._exception = 0; // not necessary 259 _store_queue [i]._send_commit = 0; // not necessary 248 260 } 249 261 250 262 for (uint32_t i=0; i< _param->_size_load_queue ; i++) 251 _load_queue [i]._state = LOAD_QUEUE_EMPTY; 263 { 264 _load_queue [i]._state = LOAD_QUEUE_EMPTY; 265 _load_queue [i]._context_id = 0; // not necessary 266 _load_queue [i]._front_end_id = 0; // not necessary 267 _load_queue [i]._ooo_engine_id = 0; // not necessary 268 _load_queue [i]._packet_id = 0; // not necessary 269 _load_queue [i]._operation = 0; // not necessary 270 _load_queue [i]._store_queue_ptr_write = 0; // not necessary 271 _load_queue [i]._store_queue_ptr_read = 0; // not necessary 272 _load_queue [i]._store_queue_empty = 0; // not necessary 273 _load_queue [i]._address = 0; // not necessary 274 _load_queue [i]._check_hit_byte = 0; // not necessary 275 _load_queue [i]._check_hit = 0; // not necessary 276 _load_queue [i]._shift = 0; // not necessary 277 _load_queue [i]._is_load_signed = 0; // not necessary 278 _load_queue [i]._access_size = 0; // not necessary 279 _load_queue [i]._rdata = 0; // not necessary 280 _load_queue [i]._write_rd = 0; // not necessary 281 _load_queue [i]._num_reg_rd = 0; // not necessary 282 _load_queue [i]._exception = 0; // not necessary 283 } 252 284 253 285 for (uint32_t i=0; i< _param->_size_speculative_access_queue; i++) 254 _speculative_access_queue [i]._state = SPECULATIVE_ACCESS_QUEUE_EMPTY; 286 { 287 _speculative_access_queue [i]._state = SPECULATIVE_ACCESS_QUEUE_EMPTY; 288 _speculative_access_queue [i]._context_id = 0; // not necessary 289 _speculative_access_queue [i]._front_end_id = 0; // not necessary 290 _speculative_access_queue [i]._ooo_engine_id = 0; // not necessary 291 _speculative_access_queue [i]._packet_id = 0; // not necessary 292 _speculative_access_queue [i]._operation = 0; // not necessary 293 _speculative_access_queue [i]._load_queue_ptr_write = 0; // not necessary 294 _speculative_access_queue [i]._store_queue_ptr_write = 0; // not necessary 295 _speculative_access_queue [i]._store_queue_ptr_read = 0; // not necessary 296 _speculative_access_queue [i]._store_queue_empty = 0; // not necessary 297 _speculative_access_queue [i]._address = 0; // not necessary 298 _speculative_access_queue [i]._write_rd = 0; // not necessary 299 _speculative_access_queue [i]._num_reg_rd = 0; // not necessary 300 _speculative_access_queue [i]._exception = 0; // not necessary 301 } 255 302 } 256 303 else … … 1000 1047 bool have_exception = (exception != EXCEPTION_MEMORY_NONE); 1001 1048 bool need_check= false; 1002 Tlsq_ptr_t 1003 Tlsq_ptr_t 1004 Tcontrol_t 1049 Tlsq_ptr_t store_queue_ptr_write = _speculative_access_queue [internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ]._store_queue_ptr_write; 1050 Tlsq_ptr_t store_queue_ptr_read = _speculative_access_queue [internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ]._store_queue_ptr_read ; 1051 Tcontrol_t store_queue_empty = _speculative_access_queue [internal_SPECULATIVE_ACCESS_QUEUE_PTR_READ]._store_queue_empty ; 1005 1052 1006 1053 if (have_exception)
Note: See TracChangeset
for help on using the changeset viewer.