Changeset 110 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src
- Timestamp:
- Feb 19, 2009, 5:31:47 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src
- Files:
-
- 1 added
- 2 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit.cpp
r88 r110 58 58 log_printf(INFO,Free_List_unit,FUNCTION,"Allocation of statistics"); 59 59 60 statistics_ declaration(param_statistics);60 statistics_allocation(param_statistics); 61 61 } 62 62 #endif … … 157 157 #ifdef STATISTICS 158 158 if (usage_is_set(_usage,USE_STATISTICS)) 159 { 160 log_printf(INFO,Free_List_unit,FUNCTION,"Generate Statistics file"); 161 162 delete _stat; 163 } 159 statistics_deallocation (); 160 164 161 #endif 165 162 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_statistics_allocation.cpp
r108 r110 20 20 21 21 #undef FUNCTION 22 #define FUNCTION "Free_List_unit::statistics_ declaration"23 void Free_List_unit::statistics_ declaration (morpheo::behavioural::Parameters_Statistics * param_statistics)22 #define FUNCTION "Free_List_unit::statistics_allocation" 23 void Free_List_unit::statistics_allocation (morpheo::behavioural::Parameters_Statistics * param_statistics) 24 24 { 25 25 log_printf(FUNC,Free_List_unit,FUNCTION,"Begin"); … … 28 28 "Free_List_unit", 29 29 param_statistics); 30 31 std::string sum_bank_gpr_nb_elt = "0"; 32 _stat_bank_gpr_nb_elt = new counter_t * [_param->_nb_bank]; 30 33 34 for (uint32_t i=0; i<_param->_nb_bank; ++i) 35 { 36 std::string str = "bank_gpr_nb_elt_"+toString(i); 37 38 sum_bank_gpr_nb_elt = "+ "+str+" "+sum_bank_gpr_nb_elt; 39 40 _stat_bank_gpr_nb_elt [i] = _stat->create_variable(str); 41 42 _stat->create_expr_average_by_cycle("average_occupation_bank_gpr_"+toString(i), str, "", toString(_("Average free list occupation (bank %d)"),i)); 43 _stat->create_expr_percent ("percent_occupation_bank_gpr_"+toString(i) , "average_occupation_bank_gpr_"+toString(i), toString(_param->_bank_gpr_nb_slot), toString(_("Percent free list occupation (bank %d)"),i)); 44 } 45 46 _stat->create_expr_average_by_cycle("average_occupation_bank_gpr", sum_bank_gpr_nb_elt, "", _("Average free list occupation (bank all)")); 47 _stat->create_expr_percent ("percent_occupation_bank_gpr", "average_occupation_bank_gpr", toString(_param->_bank_gpr_nb_slot*_param->_nb_bank), _("Percent free list occupation (bank all)")); 48 49 std::string sum_bank_spr_nb_elt = "0"; 50 _stat_bank_spr_nb_elt = new counter_t * [_param->_nb_bank]; 51 52 for (uint32_t i=0; i<_param->_nb_bank; ++i) 53 { 54 std::string str = "bank_spr_nb_elt_"+toString(i); 55 56 sum_bank_spr_nb_elt = "+ "+str+" "+sum_bank_spr_nb_elt; 57 58 _stat_bank_spr_nb_elt [i] = _stat->create_variable(str); 59 60 _stat->create_expr_average_by_cycle("average_occupation_bank_spr_"+toString(i), str, "", toString(_("Average free list occupation (bank %d)"),i)); 61 _stat->create_expr_percent ("percent_occupation_bank_spr_"+toString(i) , "average_occupation_bank_spr_"+toString(i), toString(_param->_bank_spr_nb_slot), toString(_("Percent free list occupation (bank %d)"),i)); 62 } 63 64 _stat->create_expr_average_by_cycle("average_occupation_bank_spr", sum_bank_spr_nb_elt, "", _("Average free list occupation (bank all)")); 65 _stat->create_expr_percent ("percent_occupation_bank_spr", "average_occupation_bank_spr", toString(_param->_bank_spr_nb_slot*_param->_nb_bank), _("Percent free list occupation (bank all)")); 66 67 _stat_nb_inst_pop = _stat->create_variable("nb_inst_pop" ); 68 _stat_nb_inst_pop_gpr = _stat->create_variable("nb_inst_pop_gpr" ); 69 _stat_nb_inst_pop_spr = _stat->create_variable("nb_inst_pop_spr" ); 70 _stat_nb_inst_push_gpr = _stat->create_variable("nb_inst_push_gpr"); 71 _stat_nb_inst_push_spr = _stat->create_variable("nb_inst_push_spr"); 72 73 _stat->create_expr_average_by_cycle("average_use_interface_pop" , "nb_inst_pop" , "", _("Average instruction per cycle on pop interface")); 74 _stat->create_expr_average_by_cycle("average_use_interface_pop_gpr" , "nb_inst_pop_gpr" , "", _("Average instruction per cycle on pop interface for gpr")); 75 _stat->create_expr_average_by_cycle("average_use_interface_pop_spr" , "nb_inst_pop_spr" , "", _("Average instruction per cycle on pop interface for spr")); 76 _stat->create_expr_average_by_cycle("average_use_interface_push_gpr", "nb_inst_push_gpr", "", _("Average instruction per cycle on push_gpr interface")); 77 _stat->create_expr_average_by_cycle("average_use_interface_push_spr", "nb_inst_push_spr", "", _("Average instruction per cycle on push_spr interface")); 78 79 _stat->create_expr_percent ("percent_inst_pop_need_gpr" , "nb_inst_pop_gpr" , "nb_inst_pop", _("Percent of pop instruction that need gpr")); 80 _stat->create_expr_percent ("percent_inst_pop_need_spr" , "nb_inst_pop_spr" , "nb_inst_pop", _("Percent of pop instruction that need spr")); 81 31 82 log_printf(FUNC,Free_List_unit,FUNCTION,"End"); 32 83 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Free_List_unit/src/Free_List_unit_transition.cpp
r109 r110 50 50 log_printf(TRACE,Free_List_unit,FUNCTION," * POP [%d]",i); 51 51 52 #ifdef STATISTICS 53 (*_stat_nb_inst_pop) ++; 54 #endif 55 52 56 if (PORT_READ(in_POP_GPR_VAL [i])) 53 _gpr_list [internal_POP_GPR_BANK[i]].pop_front(); 57 { 58 #ifdef STATISTICS 59 (*_stat_nb_inst_pop_gpr) ++; 60 #endif 61 _gpr_list [internal_POP_GPR_BANK[i]].pop_front(); 62 } 54 63 55 64 if (PORT_READ(in_POP_SPR_VAL [i])) 56 _spr_list [internal_POP_SPR_BANK[i]].pop_front(); 65 { 66 #ifdef STATISTICS 67 (*_stat_nb_inst_pop_spr) ++; 68 #endif 69 _spr_list [internal_POP_SPR_BANK[i]].pop_front(); 70 } 57 71 } 58 72 … … 67 81 log_printf(TRACE,Free_List_unit,FUNCTION," * num_reg : %d",PORT_READ(in_PUSH_GPR_NUM_REG [i])); 68 82 83 #ifdef STATISTICS 84 (*_stat_nb_inst_push_gpr) ++; 85 #endif 86 69 87 _gpr_list [internal_PUSH_GPR_BANK[i]].push_back(PORT_READ(in_PUSH_GPR_NUM_REG [i])); 70 88 } … … 79 97 log_printf(TRACE,Free_List_unit,FUNCTION," * num_reg : %d",PORT_READ(in_PUSH_SPR_NUM_REG [i])); 80 98 99 #ifdef STATISTICS 100 (*_stat_nb_inst_push_spr) ++; 101 #endif 102 81 103 _spr_list [internal_PUSH_SPR_BANK[i]].push_back(PORT_READ(in_PUSH_SPR_NUM_REG [i])); 82 104 } 105 106 #ifdef STATISTICS 107 for (uint32_t i=0; i<_param->_nb_bank; ++i) 108 { 109 (*(_stat_bank_gpr_nb_elt [i])) += _gpr_list[i].size(); 110 (*(_stat_bank_spr_nb_elt [i])) += _spr_list[i].size(); 111 } 112 #endif 83 113 84 114 #if (DEBUG >= DEBUG_TRACE) and (DEBUG_Free_List_unit == true) … … 140 170 if (1) 141 171 for (uint32_t i=0; i<_param->_nb_bank; ++i) 142 {172 { 143 173 for (std::list<Tgeneral_address_t>::iterator it1=_gpr_list[i].begin(); 144 174 it1!=_gpr_list[i].end();
Note: See TracChangeset
for help on using the changeset viewer.