Changeset 88 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop_deallocation.cpp
- Timestamp:
- Dec 10, 2008, 7:31:39 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/src/Execute_loop_deallocation.cpp
r81 r88 1 1 2 /* 2 3 * $Id$ … … 7 8 8 9 #include "Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Execute_loop.h" 9 10 #include "Behavioural/include/Allocation.h" 10 11 namespace morpheo { 11 12 namespace behavioural { … … 21 22 log_printf(FUNC,Execute_loop,FUNCTION,"Begin"); 22 23 23 if ( _usage & USE_SYSTEMC)24 if (usage_is_set(_usage,USE_SYSTEMC)) 24 25 { 25 26 delete in_CLOCK ; 26 27 delete in_NRESET; 27 28 28 // ~~~~~[ Interface "execute_loop_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 29 delete [] in_EXECUTE_LOOP_IN_VAL ; 30 delete [] out_EXECUTE_LOOP_IN_ACK ; 31 if (_param->_have_port_context_id) 32 delete [] in_EXECUTE_LOOP_IN_CONTEXT_ID ; 33 if (_param->_have_port_front_end_id) 34 delete [] in_EXECUTE_LOOP_IN_FRONT_END_ID ; 35 if (_param->_have_port_ooo_engine_id) 36 delete [] in_EXECUTE_LOOP_IN_OOO_ENGINE_ID ; 37 if (_param->_have_port_packet_id) 38 delete [] in_EXECUTE_LOOP_IN_PACKET_ID ; 39 delete [] in_EXECUTE_LOOP_IN_OPERATION ; 40 delete [] in_EXECUTE_LOOP_IN_TYPE ; 41 delete [] in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE; 42 if (_param->_have_port_load_queue_ptr) 43 delete [] in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ; 44 delete [] in_EXECUTE_LOOP_IN_HAS_IMMEDIAT ; 45 delete [] in_EXECUTE_LOOP_IN_IMMEDIAT ; 46 delete [] in_EXECUTE_LOOP_IN_READ_RA ; 47 delete [] in_EXECUTE_LOOP_IN_NUM_REG_RA ; 48 delete [] in_EXECUTE_LOOP_IN_READ_RB ; 49 delete [] in_EXECUTE_LOOP_IN_NUM_REG_RB ; 50 delete [] in_EXECUTE_LOOP_IN_READ_RC ; 51 delete [] in_EXECUTE_LOOP_IN_NUM_REG_RC ; 52 delete [] in_EXECUTE_LOOP_IN_WRITE_RD ; 53 delete [] in_EXECUTE_LOOP_IN_NUM_REG_RD ; 54 delete [] in_EXECUTE_LOOP_IN_WRITE_RE ; 55 delete [] in_EXECUTE_LOOP_IN_NUM_REG_RE ; 29 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_VAL ,_param->_nb_read_unit,1); 30 DELETE1_SIGNAL(out_EXECUTE_LOOP_IN_ACK ,_param->_nb_read_unit,1); 31 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_CONTEXT_ID ,_param->_nb_read_unit,_param->_size_context_id); 32 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_FRONT_END_ID ,_param->_nb_read_unit,_param->_size_front_end_id); 33 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_OOO_ENGINE_ID ,_param->_nb_read_unit,_param->_size_ooo_engine_id); 34 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_PACKET_ID ,_param->_nb_read_unit,_param->_size_rob_ptr ); 35 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_OPERATION ,_param->_nb_read_unit,_param->_size_operation); 36 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_TYPE ,_param->_nb_read_unit,_param->_size_type); 37 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE,_param->_nb_read_unit,_param->_size_store_queue_ptr); 38 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ,_param->_nb_read_unit,_param->_size_load_queue_ptr); 39 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_HAS_IMMEDIAT ,_param->_nb_read_unit,1); 40 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_IMMEDIAT ,_param->_nb_read_unit,_param->_size_general_data); 41 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_READ_RA ,_param->_nb_read_unit,1); 42 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_NUM_REG_RA ,_param->_nb_read_unit,_param->_size_general_register); 43 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_READ_RB ,_param->_nb_read_unit,1); 44 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_NUM_REG_RB ,_param->_nb_read_unit,_param->_size_general_register); 45 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_READ_RC ,_param->_nb_read_unit,1); 46 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_NUM_REG_RC ,_param->_nb_read_unit,_param->_size_special_register); 47 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_WRITE_RD ,_param->_nb_read_unit,1); 48 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_NUM_REG_RD ,_param->_nb_read_unit,_param->_size_general_register); 49 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_WRITE_RE ,_param->_nb_read_unit,1); 50 DELETE1_SIGNAL( in_EXECUTE_LOOP_IN_NUM_REG_RE ,_param->_nb_read_unit,_param->_size_special_register); 51 52 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_VAL ,_param->_nb_write_unit,1); 53 DELETE1_SIGNAL( in_EXECUTE_LOOP_OUT_ACK ,_param->_nb_write_unit,1); 54 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_CONTEXT_ID ,_param->_nb_write_unit,_param->_size_context_id); 55 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_FRONT_END_ID ,_param->_nb_write_unit,_param->_size_front_end_id); 56 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_OOO_ENGINE_ID,_param->_nb_write_unit,_param->_size_ooo_engine_id); 57 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_PACKET_ID ,_param->_nb_write_unit,_param->_size_rob_ptr ); 58 // DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_OPERATION ,_param->_nb_write_unit,_param->_size_operation); 59 // DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_TYPE ,_param->_nb_write_unit,_param->_size_type); 60 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_FLAGS ,_param->_nb_write_unit,_param->_size_special_data); 61 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_EXCEPTION ,_param->_nb_write_unit,_param->_size_exception); 62 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_NO_SEQUENCE ,_param->_nb_write_unit,1); 63 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_ADDRESS ,_param->_nb_write_unit,_param->_size_general_data); 64 DELETE1_SIGNAL(out_EXECUTE_LOOP_OUT_DATA ,_param->_nb_write_unit,_param->_size_general_data); 65 66 DELETE2_SIGNAL(out_DCACHE_REQ_VAL , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],1 ); 67 DELETE2_SIGNAL( in_DCACHE_REQ_ACK , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],1 ); 68 DELETE2_SIGNAL(out_DCACHE_REQ_CONTEXT_ID, _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_max_size_dcache_context_id); 69 DELETE2_SIGNAL(out_DCACHE_REQ_PACKET_ID , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_max_size_dcache_packet_id ); 70 DELETE2_SIGNAL(out_DCACHE_REQ_ADDRESS , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_size_general_data ); 71 DELETE2_SIGNAL(out_DCACHE_REQ_TYPE , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_size_dcache_type ); 72 DELETE2_SIGNAL(out_DCACHE_REQ_WDATA , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_size_general_data ); 73 74 DELETE2_SIGNAL( in_DCACHE_RSP_VAL , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],1 ); 75 DELETE2_SIGNAL(out_DCACHE_RSP_ACK , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],1 ); 76 DELETE2_SIGNAL( in_DCACHE_RSP_CONTEXT_ID, _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_max_size_dcache_context_id); 77 DELETE2_SIGNAL( in_DCACHE_RSP_PACKET_ID , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_max_size_dcache_packet_id ); 78 DELETE2_SIGNAL( in_DCACHE_RSP_RDATA , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_size_general_data ); 79 DELETE2_SIGNAL( in_DCACHE_RSP_ERROR , _param->_nb_load_store_unit, _param->_nb_cache_port[it1],_param->_size_dcache_error ); 80 81 DELETE2_SIGNAL( in_INSERT_ROB_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1 ); 82 DELETE2_SIGNAL(out_INSERT_ROB_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1 ); 83 DELETE2_SIGNAL( in_INSERT_ROB_RD_USE ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1 ); 84 DELETE2_SIGNAL( in_INSERT_ROB_RD_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],_param->_size_general_register); 85 DELETE2_SIGNAL( in_INSERT_ROB_RE_USE ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],1 ); 86 DELETE2_SIGNAL( in_INSERT_ROB_RE_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob[it1],_param->_size_special_register); 87 88 // DELETE2_SIGNAL( in_RETIRE_ROB_VAL ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],1 ); 89 // DELETE2_SIGNAL(out_RETIRE_ROB_ACK ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],1 ); 90 // DELETE2_SIGNAL( in_RETIRE_ROB_RD_OLD_USE ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],1 ); 91 // DELETE2_SIGNAL( in_RETIRE_ROB_RD_OLD_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],_param->_size_general_register); 92 // DELETE2_SIGNAL( in_RETIRE_ROB_RD_NEW_USE ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],1 ); 93 // DELETE2_SIGNAL( in_RETIRE_ROB_RD_NEW_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],_param->_size_general_register); 94 // DELETE2_SIGNAL( in_RETIRE_ROB_RE_OLD_USE ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],1 ); 95 // DELETE2_SIGNAL( in_RETIRE_ROB_RE_OLD_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],_param->_size_special_register); 96 // DELETE2_SIGNAL( in_RETIRE_ROB_RE_NEW_USE ,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],1 ); 97 // DELETE2_SIGNAL( in_RETIRE_ROB_RE_NEW_NUM_REG,_param->_nb_ooo_engine,_param->_nb_inst_retire_rob[it1],_param->_size_special_register); 98 } 56 99 57 // ~~~~~[ Interface "execute_loop_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~58 delete [] out_EXECUTE_LOOP_OUT_VAL ;59 delete [] in_EXECUTE_LOOP_OUT_ACK ;60 if (_param->_have_port_context_id)61 delete [] out_EXECUTE_LOOP_OUT_CONTEXT_ID ;62 if (_param->_have_port_front_end_id)63 delete [] out_EXECUTE_LOOP_OUT_FRONT_END_ID ;64 if (_param->_have_port_ooo_engine_id)65 delete [] out_EXECUTE_LOOP_OUT_OOO_ENGINE_ID ;66 if (_param->_have_port_packet_id)67 delete [] out_EXECUTE_LOOP_OUT_PACKET_ID ;68 //delete [] out_EXECUTE_LOOP_OUT_OPERATION ;69 //delete [] out_EXECUTE_LOOP_OUT_TYPE ;70 delete [] out_EXECUTE_LOOP_OUT_FLAGS ;71 delete [] out_EXECUTE_LOOP_OUT_EXCEPTION ;72 delete [] out_EXECUTE_LOOP_OUT_NO_SEQUENCE ;73 delete [] out_EXECUTE_LOOP_OUT_ADDRESS ;74 75 // ~~~~~[ Interface "dcache_req" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~76 delete [] out_DCACHE_REQ_VAL ;77 delete [] in_DCACHE_REQ_ACK ;78 if (_param->_have_port_dcache_context_id)79 delete [] out_DCACHE_REQ_CONTEXT_ID ;80 delete [] out_DCACHE_REQ_PACKET_ID ;81 delete [] out_DCACHE_REQ_ADDRESS ;82 delete [] out_DCACHE_REQ_TYPE ;83 delete [] out_DCACHE_REQ_WDATA ;84 85 // ~~~~~[ Interface "dcache_rsp" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~86 delete [] in_DCACHE_RSP_VAL ;87 delete [] out_DCACHE_RSP_ACK ;88 if (_param->_have_port_dcache_context_id)89 delete [] in_DCACHE_RSP_CONTEXT_ID ;90 delete [] in_DCACHE_RSP_PACKET_ID ;91 delete [] in_DCACHE_RSP_RDATA ;92 delete [] in_DCACHE_RSP_ERROR ;93 94 // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~95 delete [] in_INSERT_ROB_VAL ;96 delete [] out_INSERT_ROB_ACK ;97 delete [] in_INSERT_ROB_RD_USE ;98 delete [] in_INSERT_ROB_RD_NUM_REG ;99 delete [] in_INSERT_ROB_RE_USE ;100 delete [] in_INSERT_ROB_RE_NUM_REG ;101 102 // ~~~~~[ Interface "retire_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~103 delete [] in_RETIRE_ROB_VAL ;104 delete [] out_RETIRE_ROB_ACK ;105 delete [] in_RETIRE_ROB_RD_OLD_USE ;106 delete [] in_RETIRE_ROB_RD_OLD_NUM_REG ;107 delete [] in_RETIRE_ROB_RD_NEW_USE ;108 delete [] in_RETIRE_ROB_RD_NEW_NUM_REG ;109 delete [] in_RETIRE_ROB_RE_OLD_USE ;110 delete [] in_RETIRE_ROB_RE_OLD_NUM_REG ;111 delete [] in_RETIRE_ROB_RE_NEW_USE ;112 delete [] in_RETIRE_ROB_RE_NEW_NUM_REG ;113 }114 115 100 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 101 delete _component; 102 delete _component_glue ; 117 103 delete [] _component_read_unit ; 118 104 delete [] _component_functionnal_unit ; 119 105 delete [] _component_load_store_unit ; 120 106 delete [] _component_write_unit ; 121 delete []_component_read_unit_to_execution_unit ;122 delete []_component_execution_unit_to_write_unit;123 delete []_component_register_unit ;107 delete _component_read_unit_to_execution_unit ; 108 delete _component_execution_unit_to_write_unit; 109 delete _component_register_unit ; 124 110 125 111 log_printf(FUNC,Execute_loop,FUNCTION,"End"); … … 129 115 }; // end namespace multi_execute_loop 130 116 }; // end namespace core 131 132 117 }; // end namespace behavioural 133 118 }; // end namespace morpheo
Note: See TracChangeset
for help on using the changeset viewer.