Changeset 109 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue
- Timestamp:
- Feb 16, 2009, 9:28:31 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Issue_queue_transition.cpp
r88 r109 45 45 if (internal_BANK_IN_ACK [i]) 46 46 { 47 entry_t * entry = NULL;47 entry_t * entry = NULL; 48 48 49 49 if (internal_BANK_IN_IS_REEXECUTE [i]) … … 53 53 if (PORT_READ(in_REEXECUTE_VAL [y])) 54 54 { 55 log_printf(TRACE,Issue_queue,FUNCTION," * ISSUE_IN [%d] - Transaction with REEXECUTE [%d]",i,y); 55 56 #ifdef STATISTICS 56 57 if (usage_is_set(_usage,USE_STATISTICS)) … … 62 63 (_param->_have_port_front_end_id )?PORT_READ(in_REEXECUTE_FRONT_END_ID [y]):0, 63 64 (_param->_have_port_rob_ptr )?PORT_READ(in_REEXECUTE_PACKET_ID [y]):0, 64 PORT_READ(in_REEXECUTE_OPERATION [y]),65 PORT_READ(in_REEXECUTE_TYPE [y]),66 PORT_READ(in_REEXECUTE_STORE_QUEUE_PTR_WRITE [y]),65 PORT_READ(in_REEXECUTE_OPERATION [y]), 66 PORT_READ(in_REEXECUTE_TYPE [y]), 67 PORT_READ(in_REEXECUTE_STORE_QUEUE_PTR_WRITE [y]), 67 68 (_param->_have_port_load_queue_ptr)?PORT_READ(in_REEXECUTE_LOAD_QUEUE_PTR_WRITE [y]):0, 68 PORT_READ(in_REEXECUTE_HAS_IMMEDIAT [y]),69 PORT_READ(in_REEXECUTE_IMMEDIAT [y]),70 PORT_READ(in_REEXECUTE_READ_RA [y]),71 PORT_READ(in_REEXECUTE_NUM_REG_RA [y]),72 PORT_READ(in_REEXECUTE_READ_RB [y]),73 PORT_READ(in_REEXECUTE_NUM_REG_RB [y]),74 PORT_READ(in_REEXECUTE_READ_RC [y]),75 PORT_READ(in_REEXECUTE_NUM_REG_RC [y]),76 PORT_READ(in_REEXECUTE_WRITE_RD [y]),77 PORT_READ(in_REEXECUTE_NUM_REG_RD [y]),78 PORT_READ(in_REEXECUTE_WRITE_RE [y]),79 PORT_READ(in_REEXECUTE_NUM_REG_RE [y])69 PORT_READ(in_REEXECUTE_HAS_IMMEDIAT [y]), 70 PORT_READ(in_REEXECUTE_IMMEDIAT [y]), 71 PORT_READ(in_REEXECUTE_READ_RA [y]), 72 PORT_READ(in_REEXECUTE_NUM_REG_RA [y]), 73 PORT_READ(in_REEXECUTE_READ_RB [y]), 74 PORT_READ(in_REEXECUTE_NUM_REG_RB [y]), 75 PORT_READ(in_REEXECUTE_READ_RC [y]), 76 PORT_READ(in_REEXECUTE_NUM_REG_RC [y]), 77 PORT_READ(in_REEXECUTE_WRITE_RD [y]), 78 PORT_READ(in_REEXECUTE_NUM_REG_RD [y]), 79 PORT_READ(in_REEXECUTE_WRITE_RE [y]), 80 PORT_READ(in_REEXECUTE_NUM_REG_RE [y]) 80 81 ); 81 82 } … … 88 89 if (PORT_READ(in_ISSUE_IN_VAL[x][y])) 89 90 { 91 log_printf(TRACE,Issue_queue,FUNCTION," * ISSUE_IN [%d] - Transaction with ISSUE_IN [%d][%d]",i,x,y); 92 90 93 #ifdef STATISTICS 91 94 if (usage_is_set(_usage,USE_STATISTICS)) … … 97 100 (_param->_have_port_front_end_id )?PORT_READ(in_ISSUE_IN_FRONT_END_ID [x][y]):0, 98 101 (_param->_have_port_rob_ptr )?PORT_READ(in_ISSUE_IN_PACKET_ID [x][y]):0, 99 PORT_READ(in_ISSUE_IN_OPERATION [x][y]),100 PORT_READ(in_ISSUE_IN_TYPE [x][y]),101 PORT_READ(in_ISSUE_IN_STORE_QUEUE_PTR_WRITE [x][y]),102 PORT_READ(in_ISSUE_IN_OPERATION [x][y]), 103 PORT_READ(in_ISSUE_IN_TYPE [x][y]), 104 PORT_READ(in_ISSUE_IN_STORE_QUEUE_PTR_WRITE [x][y]), 102 105 (_param->_have_port_load_queue_ptr)?PORT_READ(in_ISSUE_IN_LOAD_QUEUE_PTR_WRITE [x][y]):0, 103 PORT_READ(in_ISSUE_IN_HAS_IMMEDIAT [x][y]),104 PORT_READ(in_ISSUE_IN_IMMEDIAT [x][y]),105 PORT_READ(in_ISSUE_IN_READ_RA [x][y]),106 PORT_READ(in_ISSUE_IN_NUM_REG_RA [x][y]),107 PORT_READ(in_ISSUE_IN_READ_RB [x][y]),108 PORT_READ(in_ISSUE_IN_NUM_REG_RB [x][y]),109 PORT_READ(in_ISSUE_IN_READ_RC [x][y]),110 PORT_READ(in_ISSUE_IN_NUM_REG_RC [x][y]),111 PORT_READ(in_ISSUE_IN_WRITE_RD [x][y]),112 PORT_READ(in_ISSUE_IN_NUM_REG_RD [x][y]),113 PORT_READ(in_ISSUE_IN_WRITE_RE [x][y]),114 PORT_READ(in_ISSUE_IN_NUM_REG_RE [x][y])106 PORT_READ(in_ISSUE_IN_HAS_IMMEDIAT [x][y]), 107 PORT_READ(in_ISSUE_IN_IMMEDIAT [x][y]), 108 PORT_READ(in_ISSUE_IN_READ_RA [x][y]), 109 PORT_READ(in_ISSUE_IN_NUM_REG_RA [x][y]), 110 PORT_READ(in_ISSUE_IN_READ_RB [x][y]), 111 PORT_READ(in_ISSUE_IN_NUM_REG_RB [x][y]), 112 PORT_READ(in_ISSUE_IN_READ_RC [x][y]), 113 PORT_READ(in_ISSUE_IN_NUM_REG_RC [x][y]), 114 PORT_READ(in_ISSUE_IN_WRITE_RD [x][y]), 115 PORT_READ(in_ISSUE_IN_NUM_REG_RD [x][y]), 116 PORT_READ(in_ISSUE_IN_WRITE_RE [x][y]), 117 PORT_READ(in_ISSUE_IN_NUM_REG_RE [x][y]) 115 118 ); 116 119 } … … 140 143 if (PORT_READ(in_ISSUE_OUT_ACK [x])) 141 144 { 145 log_printf(TRACE,Issue_queue,FUNCTION," * ISSUE_OUT [%d] - Transaction with ISSUE_OUT [%d]",i,x); 146 147 142 148 entry_t * entry = _issue_queue [i].front(); 143 149 _issue_queue [i].pop_front(); … … 148 154 } 149 155 150 log_printf(TRACE,Issue_queue,FUNCTION," * InfoIssue_queue");156 log_printf(TRACE,Issue_queue,FUNCTION," * Dump Issue_queue"); 151 157 for (uint32_t i=0; i<_param->_nb_bank; i++) 152 158 { … … 155 161 *(_stat_bank_nb_inst [i]) += _issue_queue[i].size(); 156 162 #endif 157 log_printf(TRACE,Issue_queue,FUNCTION," * [%d] size : %d",i,(int)_issue_queue[i].size()); 163 log_printf(TRACE,Issue_queue,FUNCTION," * Bank [%d] size : %d",i,(int)_issue_queue[i].size()); 164 165 uint32_t j = 0; 166 for (std::list<entry_t*>::iterator it=_issue_queue[i].begin();it!=_issue_queue[i].end(); ++it) 167 { 168 log_printf(TRACE,Issue_queue,FUNCTION," [%.4d] %.2d %.2d %.4d, %.2d %.3d, %.2d %.2d, %.1d %.8x, %.1d %.4d, %.1d %.4d, %.1d %.4d, %.1d %.4d, %.1d %.4d", 169 j, 170 171 (*it)->_context_id , 172 (*it)->_front_end_id , 173 (*it)->_packet_id , 174 175 (*it)->_type , 176 (*it)->_operation , 177 178 (*it)->_store_queue_ptr_write, 179 (*it)->_load_queue_ptr_write , 180 181 (*it)->_has_immediat , 182 (*it)->_immediat , 183 184 (*it)->_read_ra , 185 (*it)->_num_reg_ra , 186 187 (*it)->_read_rb , 188 (*it)->_num_reg_rb , 189 190 (*it)->_read_rc , 191 (*it)->_num_reg_rc , 192 193 (*it)->_write_rd , 194 (*it)->_num_reg_rd , 195 196 (*it)->_write_re , 197 (*it)->_num_reg_re ); 198 199 ++j; 200 } 201 158 202 } 159 203 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Parameters.cpp
r88 r109 57 57 _table_issue_type = table_issue_type ; 58 58 59 log_printf(TRACE,Issue_queue,FUNCTION," * table_routing [nb_rename_unit][nb_inst_issue]"); 60 for (uint32_t i=0; i<_nb_rename_unit; ++i) 61 for (uint32_t j=0; j<_nb_inst_issue; ++j) 62 if (_table_routing [i][j]) 63 log_printf(TRACE,Issue_queue,FUNCTION," [%d][%d] -> true",i,j); 64 65 log_printf(TRACE,Issue_queue,FUNCTION," * table_issue_type [nb_inst_issue][nb_type]"); 66 for (uint32_t i=0; i<_nb_inst_issue; ++i) 67 for (uint32_t j=0; j<_nb_type; ++j) 68 if (_table_issue_type [i][j]) 69 log_printf(TRACE,Issue_queue,FUNCTION," [%d][%d] -> true",i,j); 70 59 71 _max_nb_inst_rename = max<uint32_t>(_nb_inst_rename,_nb_rename_unit); 60 72 _nb_bank_select_out = _nb_bank/nb_inst_issue; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Issue_queue/src/Parameters_msg_error.cpp
r108 r109 38 38 test.warning(_("For better performance, the bank's size (size_queue/nb_bank) must be > 1.\n")); 39 39 40 bool type_valid [_nb_type];41 42 for (uint32_t i=0; i<_nb_type; i++)43 type_valid [i] = false;44 45 type_valid [TYPE_ALU ] = true;46 type_valid [TYPE_SHIFT ] = true;47 type_valid [TYPE_MOVE ] = true;48 type_valid [TYPE_TEST ] = true;49 type_valid [TYPE_MUL ] = true;50 type_valid [TYPE_DIV ] = true;51 type_valid [TYPE_EXTEND ] = true;52 type_valid [TYPE_FIND ] = true;53 type_valid [TYPE_SPECIAL] = true;54 type_valid [TYPE_CUSTOM ] = true;55 type_valid [TYPE_BRANCH ] = true;56 type_valid [TYPE_MEMORY ] = true;57 58 40 for (uint32_t i=0; i<_nb_rename_unit; i++) 59 41 { … … 61 43 62 44 for (uint32_t j=0; j<_nb_type; j++) 63 type_present [j] = not type_valid [j];45 type_present [j] = not is_type_valid(j); 64 46 65 47 bool find = false; … … 77 59 else 78 60 for (uint32_t j=0; j<_nb_type; j++) 79 if (not type_present [j] )61 if (not type_present [j] and not is_type_optionnal(j)) 80 62 test.error(toString(_("Rename_unit [%d] can't issue instruction's type \"%s\".\n"),i,toString(j).c_str())); 81 63 }
Note: See TracChangeset
for help on using the changeset viewer.