Changeset 111 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src
- Timestamp:
- Feb 27, 2009, 7:37:40 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src
- Files:
-
- 7 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue.cpp
r110 r111 75 75 if (usage_is_set(_usage,USE_SYSTEMC)) 76 76 { 77 log_printf(INFO,Issue_queue,FUNCTION,_("<%s> : Method - transition"),_name.c_str()); 77 // Function pointer 78 switch (_param->_queue_scheme) 79 { 80 case ISSUE_QUEUE_SCHEME_IN_ORDER : 81 { 82 function_transition = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::issue_queue::Issue_queue::function_in_order_transition ; 83 function_genMoore = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::issue_queue::Issue_queue::function_in_order_genMoore ; 84 function_genMealy_issue_in = NULL; 85 function_genMealy_issue_out = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::issue_queue::Issue_queue::function_in_order_genMealy_issue_out; 86 87 break; 88 } 89 case ISSUE_QUEUE_SCHEME_OUT_OF_ORDER : 90 { 91 function_transition = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::issue_queue::Issue_queue::function_out_of_order_transition ; 92 function_genMoore = &morpheo::behavioural::core::multi_ooo_engine::ooo_engine::issue_queue::Issue_queue::function_out_of_order_genMoore ; 93 function_genMealy_issue_in = NULL; 94 function_genMealy_issue_out = NULL; 95 96 break; 97 } 98 default : 99 { 100 break; 101 } 102 } 78 103 79 SC_METHOD (transition); 80 dont_initialize (); 81 sensitive << (*(in_CLOCK)).pos(); 82 104 if (function_transition != NULL) 105 { 106 log_printf(INFO,Issue_queue,FUNCTION,_("<%s> : Method - transition"),_name.c_str()); 107 108 SC_METHOD (transition); 109 dont_initialize (); 110 sensitive << (*(in_CLOCK)).pos(); 111 83 112 # ifdef SYSTEMCASS_SPECIFIC 84 113 // List dependency information 85 114 # endif 115 } 86 116 87 log_printf(INFO,Issue_queue,FUNCTION,_("<%s> : Method - genMoore"),_name.c_str()); 117 if (function_genMoore != NULL) 118 { 119 log_printf(INFO,Issue_queue,FUNCTION,_("<%s> : Method - genMoore"),_name.c_str()); 120 121 SC_METHOD (genMoore); 122 dont_initialize (); 123 sensitive << (*(in_CLOCK)).neg(); // need internal register 124 125 # ifdef SYSTEMCASS_SPECIFIC 126 // List dependency information 127 # endif 128 } 88 129 89 SC_METHOD (genMoore); 90 dont_initialize (); 91 sensitive << (*(in_CLOCK)).neg(); // need internal register 92 130 if (function_genMealy_issue_in != NULL) 131 { 132 log_printf(INFO,Issue_queue,FUNCTION,_("<%s> : Method - genMealy_issue_in"),_name.c_str()); 133 134 SC_METHOD (genMealy_issue_in); 135 dont_initialize (); 136 sensitive << (*(in_CLOCK)).neg(); // need internal register 137 93 138 # ifdef SYSTEMCASS_SPECIFIC 94 139 // List dependency information 95 140 # endif 141 } 142 143 if (function_genMealy_issue_out != NULL) 144 { 145 log_printf(INFO,Issue_queue,FUNCTION,_("<%s> : Method - genMealy_issue_out"),_name.c_str()); 146 147 SC_METHOD (genMealy_issue_out); 148 dont_initialize (); 149 sensitive << (*(in_CLOCK)).neg(); // need internal register 150 151 if (_param->_queue_scheme == ISSUE_QUEUE_SCHEME_IN_ORDER) 152 { 153 for (uint32_t i=0; i<_param->_nb_inst_issue; ++i) 154 sensitive << (*(in_ISSUE_OUT_ACK [i])); 155 } 156 157 # ifdef SYSTEMCASS_SPECIFIC 158 // List dependency information 159 # endif 160 } 96 161 97 162 #endif -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_allocation.cpp
r110 r111 154 154 155 155 ALLOC1(internal_REEXECUTE_ACK ,Tcontrol_t,_param->_nb_inst_reexecute); 156 157 if (_param->_queue_scheme == ISSUE_QUEUE_SCHEME_OUT_OF_ORDER) 158 { 159 ALLOC1(internal_BANK_IN_ACK ,Tcontrol_t,_param->_nb_bank); 160 ALLOC1(internal_BANK_IN_NUM_RENAME_UNIT ,uint32_t ,_param->_nb_bank); 161 ALLOC1(internal_BANK_IN_NUM_INST ,uint32_t ,_param->_nb_bank); 162 } 163 if (_param->_queue_scheme == ISSUE_QUEUE_SCHEME_IN_ORDER) 164 { 165 ALLOC2(internal_ISSUE_IN_ACK ,Tcontrol_t,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]); 166 } 156 167 } 157 168 158 169 // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 159 160 170 _priority_in = new generic::priority::Priority (_name+"_priority_in" , 161 171 _param->_priority , … … 165 175 _param->_nb_rename_unit_select); 166 176 177 if (_param->_queue_scheme == ISSUE_QUEUE_SCHEME_OUT_OF_ORDER) 178 { 167 179 _priority_out = new generic::priority::Priority (_name+"_priority_out" , 168 180 _param->_priority , … … 174 186 _param->_nb_bank, 175 187 _param->_nb_bank); 188 } 176 189 177 190 #ifdef POSITION -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_deallocation.cpp
r110 r111 98 98 99 99 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 100 DELETE1(internal_BANK_IN_ACK ,_param->_nb_bank);101 DELETE1(internal_BANK_IN_NUM_RENAME_UNIT ,_param->_nb_bank);102 DELETE1(internal_BANK_IN_NUM_INST ,_param->_nb_bank);103 104 100 DELETE1(internal_ISSUE_OUT_VAL ,_param->_nb_inst_issue); 105 101 DELETE1(internal_ISSUE_OUT_FROM_REEXECUTE,_param->_nb_inst_issue); … … 108 104 109 105 DELETE1(internal_REEXECUTE_ACK ,_param->_nb_inst_reexecute); 106 107 if (_param->_queue_scheme == ISSUE_QUEUE_SCHEME_OUT_OF_ORDER) 108 { 109 DELETE1(internal_BANK_IN_ACK ,_param->_nb_bank); 110 DELETE1(internal_BANK_IN_NUM_RENAME_UNIT ,_param->_nb_bank); 111 DELETE1(internal_BANK_IN_NUM_INST ,_param->_nb_bank); 112 } 113 if (_param->_queue_scheme == ISSUE_QUEUE_SCHEME_IN_ORDER) 114 { 115 DELETE2(internal_ISSUE_IN_ACK ,_param->_nb_rename_unit,_param->_nb_inst_rename[it1]); 116 } 110 117 } 111 118 … … 113 120 114 121 delete _priority_in ; 115 delete _priority_out; 116 delete _priority_reg; 122 if (_param->_queue_scheme == ISSUE_QUEUE_SCHEME_OUT_OF_ORDER) 123 { 124 delete _priority_out; 125 delete _priority_reg; 126 } 117 127 delete _component; 118 128 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_genMoore.cpp
r110 r111 39 39 } 40 40 41 // =================================================================== 42 // =====[ ISSUE_IN ]================================================== 43 // =================================================================== 44 { 45 Tcontrol_t ack [_param->_nb_rename_unit][_param->_max_nb_inst_rename]; 46 47 // Initialisation 48 for (uint32_t i=0; i<_param->_nb_bank; i++) 49 internal_BANK_IN_ACK [i] = false; 50 51 for (uint32_t i=0; i<_param->_nb_rename_unit; i++) 52 for (uint32_t j=0; j<_param->_nb_inst_rename[i]; j++) 53 ack [i][j] = false; 54 55 std::list<generic::priority::select_t> * select_reg = _priority_reg->select(); // same select for all issue 56 57 // issue_in interface 58 std::list<generic::priority::select_t> * select_in = _priority_in ->select(); // same select for all issue 59 for (std::list<generic::priority::select_t>::iterator it=select_in ->begin(); 60 it!=select_in ->end(); 61 it++) 62 { 63 // Get num interface 64 uint32_t num_rename_unit = it->grp; 65 uint32_t num_inst_rename = it->elt; 66 67 log_printf(TRACE,Issue_queue,FUNCTION," * ISSUE_IN [%d][%d]",num_rename_unit,num_inst_rename); 68 69 // scan all bank 70 for (std::list<generic::priority::select_t>::iterator it=select_reg->begin(); 71 it!=select_reg->end(); 72 it++) 73 { 74 uint32_t num_bank = it->grp; 75 76 log_printf(TRACE,Issue_queue,FUNCTION," * BANK [%d]",num_bank); 77 78 // test if bank is not busy (full or previous access) 79 if (not internal_BANK_IN_ACK [num_bank] and (_issue_queue[num_bank].size() < _param->_size_bank)) 80 { 81 log_printf(TRACE,Issue_queue,FUNCTION," * find"); 82 83 // find 84 ack [num_rename_unit][num_inst_rename] = true; 85 internal_BANK_IN_ACK [num_bank] = true; 86 internal_BANK_IN_NUM_RENAME_UNIT [num_bank] = num_rename_unit; 87 internal_BANK_IN_NUM_INST [num_bank] = num_inst_rename; 88 89 break; // Stop scan 90 } 91 else 92 log_printf(TRACE,Issue_queue,FUNCTION," * not find"); 93 } 94 } 95 96 for (uint32_t i=0; i<_param->_nb_rename_unit; i++) 97 for (uint32_t j=0; j<_param->_nb_inst_rename[i]; j++) 98 PORT_WRITE(out_ISSUE_IN_ACK [i][j],ack [i][j]); 99 } 100 101 // =================================================================== 102 // =====[ ISSUE_OUT ]================================================= 103 // =================================================================== 104 { 105 Tcontrol_t val [_param->_nb_inst_issue]; 106 107 for (uint32_t i=0; i<_param->_nb_inst_issue; i++) 108 val [i] = 0; 109 110 // From Reexecute_queue 111 112 // uint32_t num_reexecute_entry = 0; 113 for (std::list<entry_t*>::iterator it=_reexecute_queue.begin(); 114 it!=_reexecute_queue.end(); 115 ++it) 116 { 117 entry_t* entry = (*it); 118 119 for (uint32_t i=0; i<_param->_nb_inst_issue; i++) 120 // test if no previous transaction and can accept this type 121 if ((val[i] == 0) and _param->_table_issue_type [i][entry->_type]) 122 { 123 // find a issue port 124 val [i] = 1; 125 126 if (_param->_have_port_context_id) 127 PORT_WRITE(out_ISSUE_OUT_CONTEXT_ID [i], entry->_context_id ); 128 if (_param->_have_port_front_end_id) 129 PORT_WRITE(out_ISSUE_OUT_FRONT_END_ID [i], entry->_front_end_id ); 130 if (_param->_have_port_rob_ptr ) 131 PORT_WRITE(out_ISSUE_OUT_PACKET_ID [i], entry->_packet_id ); 132 PORT_WRITE(out_ISSUE_OUT_OPERATION [i], entry->_operation ); 133 PORT_WRITE(out_ISSUE_OUT_TYPE [i], entry->_type ); 134 PORT_WRITE(out_ISSUE_OUT_STORE_QUEUE_PTR_WRITE [i], entry->_store_queue_ptr_write); 135 if (_param->_have_port_load_queue_ptr) 136 PORT_WRITE(out_ISSUE_OUT_LOAD_QUEUE_PTR_WRITE [i], entry->_load_queue_ptr_write ); 137 PORT_WRITE(out_ISSUE_OUT_HAS_IMMEDIAT [i], entry->_has_immediat ); 138 PORT_WRITE(out_ISSUE_OUT_IMMEDIAT [i], entry->_immediat ); 139 PORT_WRITE(out_ISSUE_OUT_READ_RA [i], entry->_read_ra ); 140 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RA [i], entry->_num_reg_ra ); 141 PORT_WRITE(out_ISSUE_OUT_READ_RB [i], entry->_read_rb ); 142 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RB [i], entry->_num_reg_rb ); 143 PORT_WRITE(out_ISSUE_OUT_READ_RC [i], entry->_read_rc ); 144 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RC [i], entry->_num_reg_rc ); 145 PORT_WRITE(out_ISSUE_OUT_WRITE_RD [i], entry->_write_rd ); 146 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RD [i], entry->_num_reg_rd ); 147 PORT_WRITE(out_ISSUE_OUT_WRITE_RE [i], entry->_write_re ); 148 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RE [i], entry->_num_reg_re ); 149 150 internal_ISSUE_OUT_FROM_REEXECUTE [i] = true; 151 // internal_ISSUE_OUT_NUM_BANK [i] = num_reexecute_entry; 152 internal_ISSUE_OUT_ENTRY [i] = entry; 153 154 break; // stop scan 155 } 156 // num_reexecute_entry ++; 157 } 158 159 // From Issue_queue 160 161 std::list<generic::priority::select_t> * select = _priority_out->select(); // same select for all issue 162 163 for (std::list<generic::priority::select_t>::iterator it=select->begin(); 164 it!=select->end(); 165 it++) 166 { 167 uint32_t num_bank=it->grp; 168 169 // log_printf(TRACE,Issue_queue,Issue_queue,FUNCTION," * Bank [%d]",num_bank); 170 171 // Have instruction ? 172 if (not _issue_queue [num_bank].empty()) 173 { 174 // log_printf(TRACE,Issue_queue,Issue_queue,FUNCTION," * Not Empty !!!"); 175 176 entry_t* entry = _issue_queue [num_bank].front(); 177 178 for (uint32_t i=0; i<_param->_nb_inst_issue; i++) 179 // test if no previous transaction and can accept this type 180 if ((val[i] == 0) and _param->_table_issue_type [i][entry->_type]) 181 { 182 // find a issue port 183 val [i] = 1; 184 185 if (_param->_have_port_context_id) 186 PORT_WRITE(out_ISSUE_OUT_CONTEXT_ID [i], entry->_context_id ); 187 if (_param->_have_port_front_end_id) 188 PORT_WRITE(out_ISSUE_OUT_FRONT_END_ID [i], entry->_front_end_id ); 189 if (_param->_have_port_rob_ptr ) 190 PORT_WRITE(out_ISSUE_OUT_PACKET_ID [i], entry->_packet_id ); 191 PORT_WRITE(out_ISSUE_OUT_OPERATION [i], entry->_operation ); 192 PORT_WRITE(out_ISSUE_OUT_TYPE [i], entry->_type ); 193 PORT_WRITE(out_ISSUE_OUT_STORE_QUEUE_PTR_WRITE [i], entry->_store_queue_ptr_write); 194 if (_param->_have_port_load_queue_ptr) 195 PORT_WRITE(out_ISSUE_OUT_LOAD_QUEUE_PTR_WRITE [i], entry->_load_queue_ptr_write ); 196 PORT_WRITE(out_ISSUE_OUT_HAS_IMMEDIAT [i], entry->_has_immediat ); 197 PORT_WRITE(out_ISSUE_OUT_IMMEDIAT [i], entry->_immediat ); 198 PORT_WRITE(out_ISSUE_OUT_READ_RA [i], entry->_read_ra ); 199 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RA [i], entry->_num_reg_ra ); 200 PORT_WRITE(out_ISSUE_OUT_READ_RB [i], entry->_read_rb ); 201 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RB [i], entry->_num_reg_rb ); 202 PORT_WRITE(out_ISSUE_OUT_READ_RC [i], entry->_read_rc ); 203 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RC [i], entry->_num_reg_rc ); 204 PORT_WRITE(out_ISSUE_OUT_WRITE_RD [i], entry->_write_rd ); 205 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RD [i], entry->_num_reg_rd ); 206 PORT_WRITE(out_ISSUE_OUT_WRITE_RE [i], entry->_write_re ); 207 PORT_WRITE(out_ISSUE_OUT_NUM_REG_RE [i], entry->_num_reg_re ); 208 209 internal_ISSUE_OUT_FROM_REEXECUTE [i] = false; 210 internal_ISSUE_OUT_NUM_BANK [i] = num_bank; 211 internal_ISSUE_OUT_ENTRY [i] = entry; 212 213 break; // stop scan 214 } 215 } 216 } 217 218 for (uint32_t i=0; i<_param->_nb_inst_issue; i++) 219 { 220 internal_ISSUE_OUT_VAL [i] = val [i]; 221 PORT_WRITE(out_ISSUE_OUT_VAL [i], internal_ISSUE_OUT_VAL [i]); 222 } 223 } 41 (this->*function_genMoore) (); 224 42 225 43 log_end(Issue_queue,FUNCTION); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_transition.cpp
r110 r111 27 27 { 28 28 _priority_in ->reset(); 29 _priority_out->reset();30 _priority_reg->reset();31 32 for (uint32_t i=0; i<_param->_nb_bank; i++)33 _issue_queue [i].clear();34 29 _reexecute_queue.clear(); 35 30 } … … 37 32 { 38 33 _priority_in ->transition(); 39 _priority_out->transition();40 _priority_reg->transition();41 42 // ===================================================================43 // =====[ ISSUE_IN ]==================================================44 // ===================================================================45 46 for (uint32_t i=0; i<_param->_nb_bank; i++)47 if (internal_BANK_IN_ACK [i])48 {49 uint32_t x = internal_BANK_IN_NUM_RENAME_UNIT [i];50 uint32_t y = internal_BANK_IN_NUM_INST [i];51 52 if (PORT_READ(in_ISSUE_IN_VAL[x][y]))53 {54 log_printf(TRACE,Issue_queue,FUNCTION," * ISSUE_IN [%d] - Transaction with ISSUE_IN [%d][%d]",i,x,y);55 56 #ifdef STATISTICS57 if (usage_is_set(_usage,USE_STATISTICS))58 (*_stat_nb_inst_issue_in [x]) ++;59 #endif60 entry_t * entry = new entry_t61 (62 (_param->_have_port_context_id )?PORT_READ(in_ISSUE_IN_CONTEXT_ID [x][y]):0,63 (_param->_have_port_front_end_id )?PORT_READ(in_ISSUE_IN_FRONT_END_ID [x][y]):0,64 (_param->_have_port_rob_ptr )?PORT_READ(in_ISSUE_IN_PACKET_ID [x][y]):0,65 PORT_READ(in_ISSUE_IN_OPERATION [x][y]),66 PORT_READ(in_ISSUE_IN_TYPE [x][y]),67 PORT_READ(in_ISSUE_IN_STORE_QUEUE_PTR_WRITE [x][y]),68 (_param->_have_port_load_queue_ptr)?PORT_READ(in_ISSUE_IN_LOAD_QUEUE_PTR_WRITE [x][y]):0,69 PORT_READ(in_ISSUE_IN_HAS_IMMEDIAT [x][y]),70 PORT_READ(in_ISSUE_IN_IMMEDIAT [x][y]),71 PORT_READ(in_ISSUE_IN_READ_RA [x][y]),72 PORT_READ(in_ISSUE_IN_NUM_REG_RA [x][y]),73 PORT_READ(in_ISSUE_IN_READ_RB [x][y]),74 PORT_READ(in_ISSUE_IN_NUM_REG_RB [x][y]),75 PORT_READ(in_ISSUE_IN_READ_RC [x][y]),76 PORT_READ(in_ISSUE_IN_NUM_REG_RC [x][y]),77 PORT_READ(in_ISSUE_IN_WRITE_RD [x][y]),78 PORT_READ(in_ISSUE_IN_NUM_REG_RD [x][y]),79 PORT_READ(in_ISSUE_IN_WRITE_RE [x][y]),80 PORT_READ(in_ISSUE_IN_NUM_REG_RE [x][y])81 );82 83 _issue_queue [i].push_back(entry);84 }85 }86 34 87 35 // =================================================================== … … 130 78 if (internal_ISSUE_OUT_VAL [i] and PORT_READ(in_ISSUE_OUT_ACK [i])) 131 79 { 132 entry_t * entry = internal_ISSUE_OUT_ENTRY [i]; 133 80 #ifdef STATISTICS 81 if (usage_is_set(_usage,USE_STATISTICS)) 82 (*_stat_nb_inst_issue_out ) ++; 83 #endif 134 84 if (internal_ISSUE_OUT_FROM_REEXECUTE [i]) 135 85 { 86 entry_t * entry = internal_ISSUE_OUT_ENTRY [i]; 87 136 88 log_printf(TRACE,Issue_queue,FUNCTION," * ISSUE_OUT [%d] - From Reexecute_queue",i); 137 89 138 90 _reexecute_queue.remove(entry); 91 92 delete entry; 139 93 } 140 else 141 { 142 // front ... 143 uint32_t num_bank = internal_ISSUE_OUT_NUM_BANK [i]; 144 145 log_printf(TRACE,Issue_queue,FUNCTION," * ISSUE_OUT [%d] - From issue_queue [%d]",i,num_bank); 146 147 _issue_queue [num_bank].remove(entry); 148 } 149 150 delete entry; 151 } 94 // else ... in function specific 95 } 152 96 } 153 97 154 #if defined(DEBUG) and defined(DEBUG_Issue_queue) and (DEBUG >= DEBUG_TRACE) 98 // specific implementation 99 (this->*function_transition) (); 100 101 // =================================================================== 102 // =====[ PRINT ]==================================================== 103 // =================================================================== 104 105 #if defined(DEBUG) and DEBUG_Issue_queue and (DEBUG >= DEBUG_TRACE) 155 106 log_printf(TRACE,Issue_queue,FUNCTION," * Dump Issue_queue"); 156 107 … … 245 196 #endif 246 197 198 199 247 200 #if defined(STATISTICS) or defined(VHDL_TESTBENCH) 248 201 end_cycle (); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Parameters.cpp
r110 r111 19 19 #undef FUNCTION 20 20 #define FUNCTION "Issue_queue::Parameters" 21 Parameters::Parameters (uint32_t nb_context , 22 uint32_t nb_front_end , 23 uint32_t nb_rename_unit , 24 uint32_t size_queue , 25 uint32_t nb_bank , 26 uint32_t size_packet , 27 uint32_t size_general_data , 28 uint32_t size_special_data , 29 uint32_t size_general_register , 30 uint32_t size_special_register , 31 uint32_t size_store_queue_ptr , 32 uint32_t size_load_queue_ptr , 33 uint32_t nb_inst_issue , 34 uint32_t * nb_inst_rename , 35 uint32_t nb_inst_reexecute , 36 uint32_t nb_rename_unit_select , 37 Tpriority_t priority , 38 Tload_balancing_t load_balancing , 39 bool ** table_routing , 40 bool ** table_issue_type , 41 bool is_toplevel ) 21 Parameters::Parameters (uint32_t nb_context , 22 uint32_t nb_front_end , 23 uint32_t nb_rename_unit , 24 uint32_t size_queue , 25 Tissue_queue_scheme_t queue_scheme , 26 uint32_t nb_bank , 27 uint32_t size_packet , 28 uint32_t size_general_data , 29 uint32_t size_special_data , 30 uint32_t size_general_register , 31 uint32_t size_special_register , 32 uint32_t size_store_queue_ptr , 33 uint32_t size_load_queue_ptr , 34 uint32_t nb_inst_issue , 35 uint32_t * nb_inst_rename , 36 uint32_t nb_inst_reexecute , 37 uint32_t nb_rename_unit_select , 38 Tpriority_t priority , 39 Tload_balancing_t load_balancing , 40 bool ** table_routing , 41 bool ** table_issue_type , 42 bool is_toplevel ) 42 43 { 43 44 log_begin(Issue_queue,FUNCTION); … … 47 48 _nb_rename_unit = nb_rename_unit ; 48 49 _size_queue = size_queue ; 50 _queue_scheme = queue_scheme ; 49 51 _nb_bank = nb_bank ; 50 52 _nb_inst_issue = nb_inst_issue ; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Parameters_msg_error.cpp
r109 r111 25 25 26 26 Parameters_test test ("Issue_queue"); 27 28 switch (_queue_scheme) 29 { 30 case ISSUE_QUEUE_SCHEME_IN_ORDER : 31 case ISSUE_QUEUE_SCHEME_OUT_OF_ORDER : 32 { 33 // supported 34 break; 35 } 36 default : 37 { 38 test.error(toString(_("Issue queue scheme '%s' is not supported. Please wait a next revision.\n"),toString(_queue_scheme).c_str())); 39 break; 40 } 41 } 42 43 if (// (_queue_scheme == ISSUE_QUEUE_SCHEME_IN_BUNDLE_ORDER) or 44 (_queue_scheme == ISSUE_QUEUE_SCHEME_OUT_OF_ORDER )) 45 test.warning(toString(_("Can have deadlock with the queue scheme \"%s\".\n"),toString(_queue_scheme).c_str())); 27 46 28 47 if (not is_multiple(_size_queue, _nb_bank))
Note: See TracChangeset
for help on using the changeset viewer.