Changeset 123 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src
- Timestamp:
- Jun 8, 2009, 10:43:30 PM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit.cpp
r112 r123 38 38 log_printf(FUNC,Stat_List_unit,FUNCTION,"Begin"); 39 39 40 #if DEBUG_Stat_List_unit == true41 log_printf(INFO,Stat_List_unit,FUNCTION,_("<%s> Parameters"),_name.c_str());40 // #if DEBUG_Stat_List_unit == true 41 // log_printf(INFO,Stat_List_unit,FUNCTION,_("<%s> Parameters"),_name.c_str()); 42 42 43 std::cout << *param << std::endl;44 #endif43 // std::cout << *param << std::endl; 44 // #endif 45 45 46 46 log_printf(INFO,Stat_List_unit,FUNCTION,"Allocation"); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_allocation.cpp
r121 r123 125 125 } 126 126 127 // ~~~~~[ interface : "info" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 128 #ifdef DEBUG_TEST 129 { 130 ALLOC0_INTERFACE_BEGIN("info",IN, NORTH, _("Information")); 131 132 ALLOC0_SIGNAL_IN ( in_INFO_ROB_EMPTY ,"rob_empty" ,bool ,1); 133 ALLOC0_SIGNAL_IN ( in_INFO_NB_GPR_FREE,"nb_gpr_free",uint32_t,_param->_size_general_register+1); 134 ALLOC0_SIGNAL_IN ( in_INFO_NB_SPR_FREE,"nb_spr_free",uint32_t,_param->_size_special_register+1); 135 136 ALLOC0_INTERFACE_END(); 137 } 138 #endif 139 127 140 // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 128 141 if (usage_is_set(_usage,USE_SYSTEMC)) -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_deallocation.cpp
r121 r123 71 71 DELETE1_SIGNAL(out_PUSH_SPR_NUM_REG,_param->_nb_reg_free,_param->_size_special_register); 72 72 73 #ifdef DEBUG_TEST 74 DELETE0_SIGNAL( in_INFO_ROB_EMPTY ,1); 75 DELETE0_SIGNAL( in_INFO_NB_GPR_FREE,_param->_size_general_register+1); 76 DELETE0_SIGNAL( in_INFO_NB_SPR_FREE,_param->_size_special_register+1); 77 #endif 78 73 79 DELETE2(gpr_stat_list ,_param->_nb_bank,_param->_nb_general_register_by_bank); 74 80 DELETE2(spr_stat_list ,_param->_nb_bank,_param->_nb_special_register_by_bank); -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_genMoore.cpp
r118 r123 28 28 log_function(Stat_List_unit,FUNCTION,_name.c_str()); 29 29 30 if (PORT_READ(in_NRESET)) 31 { 30 32 uint32_t gpr_ptr = reg_GPR_PTR_FREE; 31 33 uint32_t spr_ptr = reg_SPR_PTR_FREE; … … 81 83 internal_PUSH_GPR_NUM_REG [i] = gpr_ptr ; 82 84 83 PORT_WRITE(out_PUSH_GPR_VAL [i], val);84 85 if (val) 85 86 PORT_WRITE(out_PUSH_GPR_NUM_REG[i], ((bank_gpr<<_param->_shift_gpr) | gpr_ptr)); … … 126 127 internal_PUSH_SPR_NUM_REG [i] = spr_ptr ; 127 128 128 PORT_WRITE(out_PUSH_SPR_VAL [i], val);129 129 if (val) 130 130 PORT_WRITE(out_PUSH_SPR_NUM_REG[i], ((bank_spr<<_param->_shift_spr) | spr_ptr)); … … 133 133 134 134 } 135 135 } 136 else 137 { 138 for (uint32_t i=0; i<_param->_nb_reg_free; i++) 139 { 140 internal_PUSH_GPR_VAL [i] = 0; 141 // internal_PUSH_GPR_NUM_BANK [i] = bank_gpr; 142 // internal_PUSH_GPR_NUM_REG [i] = gpr_ptr ; 143 internal_PUSH_SPR_VAL [i] = 0; 144 // internal_PUSH_SPR_NUM_BANK [i] = bank_spr; 145 // internal_PUSH_SPR_NUM_REG [i] = spr_ptr ; 146 } 147 } 148 149 for (uint32_t i=0; i<_param->_nb_reg_free; i++) 150 { 151 PORT_WRITE(out_PUSH_GPR_VAL [i], internal_PUSH_GPR_VAL [i]); 152 PORT_WRITE(out_PUSH_SPR_VAL [i], internal_PUSH_SPR_VAL [i]); 153 } 154 136 155 log_end(Stat_List_unit,FUNCTION); 137 156 }; -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_transition.cpp
r118 r123 43 43 else 44 44 { 45 #ifdef DEBUG_TEST 46 { 47 uint32_t free_list_nb_gpr_free = PORT_READ(in_INFO_NB_GPR_FREE); 48 uint32_t free_list_nb_spr_free = PORT_READ(in_INFO_NB_SPR_FREE); 49 uint32_t stat_list_nb_gpr_free = 0; 50 uint32_t stat_list_nb_spr_free = 0; 51 uint32_t stat_list_nb_gpr_can_free = 0; 52 uint32_t stat_list_nb_spr_can_free = 0; 53 uint32_t stat_list_nb_gpr_link = 0; 54 uint32_t stat_list_nb_spr_link = 0; 55 uint32_t stat_list_nb_gpr_use = 0; 56 uint32_t stat_list_nb_spr_use = 0; 57 58 for (uint32_t i=0; i<_param->_nb_bank; i++) 59 { 60 for (uint32_t j=0; j<_param->_nb_general_register_by_bank; j++) 61 { 62 if (gpr_stat_list [i][j]._is_free) 63 stat_list_nb_gpr_free ++; 64 if (gpr_stat_list [i][j]._is_link) 65 stat_list_nb_gpr_link ++; 66 if (gpr_stat_list [i][j]._is_use) 67 stat_list_nb_gpr_use ++; 68 if (gpr_stat_list [i][j].can_free()) 69 stat_list_nb_gpr_can_free ++; 70 } 71 for (uint32_t j=0; j<_param->_nb_special_register_by_bank; j++) 72 { 73 if (spr_stat_list [i][j]._is_free) 74 stat_list_nb_spr_free ++; 75 if (spr_stat_list [i][j]._is_link) 76 stat_list_nb_spr_link ++; 77 if (spr_stat_list [i][j]._is_use) 78 stat_list_nb_spr_use ++; 79 if (spr_stat_list [i][j].can_free()) 80 stat_list_nb_spr_can_free ++; 81 } 82 } 83 84 uint32_t nb_gpr_free = stat_list_nb_gpr_free+stat_list_nb_gpr_can_free; 85 uint32_t nb_spr_free = stat_list_nb_spr_free+stat_list_nb_spr_can_free; 86 uint32_t _nb_gpr_free = (_param->_nb_general_register - _param->_nb_gpr_use_init); 87 uint32_t _nb_spr_free = (_param->_nb_special_register - _param->_nb_spr_use_init); 88 uint32_t nb_gpr_link = stat_list_nb_gpr_link - _param->_nb_gpr_use_init; 89 uint32_t nb_spr_link = stat_list_nb_spr_link - _param->_nb_spr_use_init; 90 uint32_t nb_gpr_use = stat_list_nb_gpr_use - _param->_nb_gpr_use_init; 91 uint32_t nb_spr_use = stat_list_nb_spr_use - _param->_nb_spr_use_init; 92 93 log_printf(TRACE,Stat_List_unit,FUNCTION," * nb_gpr_free : stat_list %d - free_list %d - free %d, link %d (%d), use %d (%d)",stat_list_nb_gpr_free,free_list_nb_gpr_free,nb_gpr_free,nb_gpr_link,stat_list_nb_gpr_link,nb_gpr_use,stat_list_nb_gpr_use); 94 log_printf(TRACE,Stat_List_unit,FUNCTION," * nb_spr_free : stat_list %d - free_list %d - free %d, link %d (%d), use %d (%d)",stat_list_nb_spr_free,free_list_nb_spr_free,nb_spr_free,nb_spr_link,stat_list_nb_spr_link,nb_spr_use,stat_list_nb_spr_use); 95 96 if (free_list_nb_gpr_free != stat_list_nb_gpr_free) 97 throw ERRORMORPHEO(FUNCTION,toString(_("Number of free general register is not valid. %d in Stat_List and %d in Free_list.\n"),stat_list_nb_gpr_free,free_list_nb_gpr_free)); 98 if (free_list_nb_spr_free != stat_list_nb_spr_free) 99 throw ERRORMORPHEO(FUNCTION,toString(_("Number of free general register is not valid. %d in Stat_List and %d in Free_list.\n"),stat_list_nb_spr_free,free_list_nb_spr_free)); 100 101 if (PORT_READ(in_INFO_ROB_EMPTY) and (nb_gpr_free != _nb_gpr_free)) 102 throw ERRORMORPHEO(FUNCTION,toString(_("Rob is empty but they have %d general registers free or can_free and must be %d registers."),nb_gpr_free,_nb_gpr_free)); 103 104 if (PORT_READ(in_INFO_ROB_EMPTY) and (nb_spr_free != _nb_spr_free)) 105 throw ERRORMORPHEO(FUNCTION,toString(_("Rob is empty but they have %d special registers free or can_free and must be %d registers."),nb_spr_free,_nb_spr_free)); 106 } 107 #endif 108 45 109 // ===================================================== 46 110 // =====[ INSERT ]====================================== … … 256 320 for (uint32_t i=0; i<_param->_nb_bank; i++) 257 321 for (uint32_t j=0; j<_param->_nb_general_register_by_bank; j++) 258 log_printf(TRACE,Stat_List_unit,FUNCTION," * GPR[%.4d][%.5d] (%.5d) - free %.1d, link %.1d ",322 log_printf(TRACE,Stat_List_unit,FUNCTION," * GPR[%.4d][%.5d] (%.5d) - free %.1d, link %.1d, use %.1d", 259 323 i, 260 324 j, 261 325 (i<<_param->_shift_gpr)|j, 262 326 gpr_stat_list[i][j]._is_free, 263 gpr_stat_list[i][j]._is_link// , 327 gpr_stat_list[i][j]._is_link, 328 gpr_stat_list[i][j]._is_use// , 264 329 // gpr_stat_list[i][j]._is_valid, 265 330 // gpr_stat_list[i][j]._counter … … 267 332 for (uint32_t i=0; i<_param->_nb_bank; i++) 268 333 for (uint32_t j=0; j<_param->_nb_special_register_by_bank; j++) 269 log_printf(TRACE,Stat_List_unit,FUNCTION," * SPR[%.4d][%.5d] (%.5d) - free %.1d, link %.1d ",334 log_printf(TRACE,Stat_List_unit,FUNCTION," * SPR[%.4d][%.5d] (%.5d) - free %.1d, link %.1d, use %.1d", 270 335 i, 271 336 j, 272 337 (i<<_param->_shift_spr)|j, 273 338 spr_stat_list[i][j]._is_free, 274 spr_stat_list[i][j]._is_link// , 339 spr_stat_list[i][j]._is_link, 340 spr_stat_list[i][j]._is_use// , 275 341 // spr_stat_list[i][j]._is_valid, 276 342 // spr_stat_list[i][j]._counter
Note: See TracChangeset
for help on using the changeset viewer.