Changeset 137 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src
- Timestamp:
- Feb 16, 2010, 1:35:48 PM (14 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_allocation.cpp
r136 r137 66 66 // _ALLOC2_SIGNAL_IN ( in_INSERT_RENAME_UNIT_ID ,"rename_unit_id" ,Tcontext_t ,_param->_size_rename_unit_id ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 67 67 _ALLOC2_SIGNAL_IN ( in_INSERT_DEPTH ,"depth" ,Tdepth_t ,_param->_size_depth ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 68 #ifdef STATISTICS 69 _ALLOC2_SIGNAL_IN ( in_INSERT_INSTRUCTION ,"instruction" ,uint32_t ,32 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 70 #endif 68 71 _ALLOC2_SIGNAL_IN ( in_INSERT_TYPE ,"type" ,Ttype_t ,_param->_size_type ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 69 72 _ALLOC2_SIGNAL_IN ( in_INSERT_OPERATION ,"operation" ,Toperation_t ,_param->_size_operation ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); … … 76 79 _ALLOC2_SIGNAL_IN ( in_INSERT_ADDRESS_NEXT ,"address_next" ,Taddress_t ,_param->_size_instruction_address ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 77 80 _ALLOC2_SIGNAL_IN ( in_INSERT_EXCEPTION ,"exception" ,Texception_t ,_param->_size_exception ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 78 _ALLOC2_SIGNAL_IN ( in_INSERT_EXCEPTION_USE ,"exception_use" ,Texception_t ,_param->_size_exception 81 _ALLOC2_SIGNAL_IN ( in_INSERT_EXCEPTION_USE ,"exception_use" ,Texception_t ,_param->_size_exception_use ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 79 82 _ALLOC2_SIGNAL_IN ( in_INSERT_STORE_QUEUE_PTR_WRITE ,"store_queue_ptr_write",Tlsq_ptr_t ,_param->_size_store_queue_ptr ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 80 83 _ALLOC2_SIGNAL_IN ( in_INSERT_LOAD_QUEUE_PTR_WRITE ,"load_queue_ptr_write" ,Tlsq_ptr_t ,_param->_size_load_queue_ptr ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); … … 83 86 _ALLOC2_SIGNAL_IN ( in_INSERT_NUM_REG_RA_LOG ,"num_reg_ra_log" ,Tgeneral_address_t,_param->_size_general_register_logic,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 84 87 _ALLOC2_SIGNAL_IN ( in_INSERT_NUM_REG_RA_PHY ,"num_reg_ra_phy" ,Tgeneral_address_t,_param->_size_general_register ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 88 #endif 85 89 _ALLOC2_SIGNAL_IN ( in_INSERT_READ_RB ,"read_rb" ,Tcontrol_t ,1 ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 90 #ifdef DEBUG 86 91 _ALLOC2_SIGNAL_IN ( in_INSERT_NUM_REG_RB_LOG ,"num_reg_rb_log" ,Tgeneral_address_t,_param->_size_general_register_logic,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); 87 92 _ALLOC2_SIGNAL_IN ( in_INSERT_NUM_REG_RB_PHY ,"num_reg_rb_phy" ,Tgeneral_address_t,_param->_size_general_register ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1]); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_deallocation.cpp
r136 r137 35 35 // DELETE2_SIGNAL( in_INSERT_RENAME_UNIT_ID ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_rename_unit_id ); 36 36 DELETE2_SIGNAL( in_INSERT_DEPTH ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_depth ); 37 #ifdef STATISTICS 38 DELETE2_SIGNAL( in_INSERT_INSTRUCTION ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],32); 39 #endif 37 40 DELETE2_SIGNAL( in_INSERT_TYPE ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_type ); 38 41 DELETE2_SIGNAL( in_INSERT_OPERATION ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_operation ); … … 52 55 DELETE2_SIGNAL( in_INSERT_NUM_REG_RA_LOG ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register_logic); 53 56 DELETE2_SIGNAL( in_INSERT_NUM_REG_RA_PHY ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register ); 57 #endif 54 58 DELETE2_SIGNAL( in_INSERT_READ_RB ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],1 ); 59 #ifdef DEBUG 55 60 DELETE2_SIGNAL( in_INSERT_NUM_REG_RB_LOG ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register_logic); 56 61 DELETE2_SIGNAL( in_INSERT_NUM_REG_RB_PHY ,_param->_nb_rename_unit,_param->_nb_inst_insert[it1],_param->_size_general_register ); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_statistics_allocation.cpp
r124 r137 52 52 _stat_nb_inst_retire_ok = new counter_t * [_param->_nb_thread]; 53 53 _stat_nb_inst_retire_ko = new counter_t * [_param->_nb_thread]; 54 _stat_nb_inst_instruction = new counter_t * [NB_INSTRUCTION]; 54 55 _stat_nb_inst_type = new counter_t * [_param->_nb_type]; 55 56 _stat_bank_nb_inst = new counter_t * [_param->_nb_bank]; 56 57 57 58 { 58 59 std::string sum_nb_inst_insert = "0"; … … 129 130 130 131 for (uint32_t i=0; i<_param->_nb_type; i++) 131 132 if (is_type_valid(i)) 132 133 { 133 134 _stat_nb_inst_type [i] = _stat->create_variable("nb_inst_type_"+toString(i)); … … 139 140 if (is_type_valid(i)) 140 141 { 141 std::string name = toString(static_cast<type_t>(i)).c_str(); 142 // _stat->create_expr_average_by_cycle("average_inst_type_"+toString(name), "nb_inst_type_"+toString(i), "", toString(_("Average instruction retire ok by cycle (type %s)"),name.c_str())); 143 _stat->create_expr_percent ("percent_inst_type_"+toString(name), "nb_inst_type_"+toString(i), sum_nb_inst_type, toString(_("Percent instruction retire ok by cycle (type %s)"),name.c_str())); 144 } 142 std::string name = toString(static_cast<type_t>(i)); 143 144 _stat->create_expr_percent ("percent_type_"+toString(name), "nb_inst_type_"+toString(i), sum_nb_inst_type, toString(_("Percent instruction retire ok by cycle (type %s)"),name.c_str())); 145 } 146 } 147 148 { 149 std::string sum_nb_inst_instruction = "0"; 150 151 for (uint32_t i=0; i<NB_INSTRUCTION; i++) 152 { 153 _stat_nb_inst_instruction [i] = _stat->create_variable("nb_inst_instruction_"+toString(i)); 154 155 sum_nb_inst_instruction = "+ nb_inst_instruction_"+toString(i) + " " +sum_nb_inst_instruction; 156 } 157 158 for (uint32_t i=0; i<NB_INSTRUCTION; i++) 159 { 160 std::string name = toString_instruction(i).c_str(); 161 162 _stat->create_expr_percent ("percent_instruction_"+toString(name), "nb_inst_instruction_"+toString(i), sum_nb_inst_instruction, toString(_("Percent instruction retire ok by cycle (instruction %s)"),name.c_str())); 163 } 145 164 } 146 165 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_statistics_deallocation.cpp
r124 r137 31 31 delete [] _stat_nb_inst_retire_ok; 32 32 delete [] _stat_nb_inst_retire_ko; 33 delete [] _stat_nb_inst_instruction; 33 34 delete [] _stat_nb_inst_type; 34 35 delete [] _stat_bank_nb_inst; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit_transition.cpp
r136 r137 252 252 entry->rename_unit_id = x; 253 253 entry->depth = (_param->_have_port_depth)?PORT_READ(in_INSERT_DEPTH [x][y]):0; 254 #ifdef STATISTICS 255 entry->instruction = PORT_READ(in_INSERT_INSTRUCTION [x][y]); 256 #endif 254 257 entry->type = type; 255 258 entry->operation = operation; … … 266 269 entry->num_reg_ra_log = PORT_READ(in_INSERT_NUM_REG_RA_LOG [x][y]); 267 270 entry->num_reg_ra_phy = PORT_READ(in_INSERT_NUM_REG_RA_PHY [x][y]); 271 #endif 268 272 entry->read_rb = PORT_READ(in_INSERT_READ_RB [x][y]); 273 #ifdef DEBUG 269 274 entry->num_reg_rb_log = PORT_READ(in_INSERT_NUM_REG_RB_LOG [x][y]); 270 275 entry->num_reg_rb_phy = PORT_READ(in_INSERT_NUM_REG_RB_PHY [x][y]); … … 287 292 #ifdef DEBUG 288 293 entry->address = PORT_READ(in_INSERT_ADDRESS [x][y]); 289 #else290 entry->address = 0; // not necessary291 294 #endif 292 295 entry->address_next = PORT_READ(in_INSERT_ADDRESS_NEXT [x][y]); … … 823 826 if (retire_ok) 824 827 { 825 (*_stat_nb_inst_retire_ok [num_thread]) ++; 826 (*_stat_nb_inst_type [type] ) ++; 828 uint32_t instruction = entry->instruction; 829 830 (*_stat_nb_inst_retire_ok [num_thread] ) ++; 831 (*_stat_nb_inst_instruction [instruction]) ++; 832 (*_stat_nb_inst_type [type] ) ++; 827 833 } 828 834 else … … 1048 1054 // Read information 1049 1055 rob_state_t state = entry->state; 1050 Tdepth_t depth = entry->depth;1051 1052 Tdepth_t depth_min = (_param->_have_port_depth)?PORT_READ(in_DEPTH_MIN[front_end_id][context_id]):0;1053 Tdepth_t depth_max = (_param->_have_port_depth)?PORT_READ(in_DEPTH_MAX[front_end_id][context_id]):0;1054 Tcontrol_t depth_full = PORT_READ(in_DEPTH_FULL [front_end_id][context_id]);1056 // Tdepth_t depth = entry->depth; 1057 1058 // Tdepth_t depth_min = (_param->_have_port_depth)?PORT_READ(in_DEPTH_MIN[front_end_id][context_id]):0; 1059 // Tdepth_t depth_max = (_param->_have_port_depth)?PORT_READ(in_DEPTH_MAX[front_end_id][context_id]):0; 1060 // Tcontrol_t depth_full = PORT_READ(in_DEPTH_FULL [front_end_id][context_id]); 1055 1061 1056 1062 // is a valid instruction ? … … 1088 1094 1089 1095 log_printf(TRACE,Commit_unit,FUNCTION," * is_valid : %d ((depth == depth_min) and not flush)",is_valid); 1090 log_printf(TRACE,Commit_unit,FUNCTION," * depth : %d",depth );1091 log_printf(TRACE,Commit_unit,FUNCTION," * depth_min : %d",depth_min);1092 log_printf(TRACE,Commit_unit,FUNCTION," * depth_max : %d",depth_max);1093 log_printf(TRACE,Commit_unit,FUNCTION," * depth_full : %d",depth_full);1096 // log_printf(TRACE,Commit_unit,FUNCTION," * depth : %d",depth ); 1097 // log_printf(TRACE,Commit_unit,FUNCTION," * depth_min : %d",depth_min); 1098 // log_printf(TRACE,Commit_unit,FUNCTION," * depth_max : %d",depth_max); 1099 // log_printf(TRACE,Commit_unit,FUNCTION," * depth_full : %d",depth_full); 1094 1100 log_printf(TRACE,Commit_unit,FUNCTION," * speculative : %d",speculative); 1095 1101 log_printf(TRACE,Commit_unit,FUNCTION," * flush : %d",flush);
Note: See TracChangeset
for help on using the changeset viewer.