Changeset 88 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_transition.cpp
- Timestamp:
- Dec 10, 2008, 7:31:39 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Rename_select/src/Rename_select_transition.cpp
r81 r88 26 26 if (PORT_READ(in_NRESET) == 0) 27 27 { 28 select.clear(); 29 reg_FRONT_END_PRIORITY = 0; 28 _priority->reset(); 30 29 } 31 30 else 32 31 { 33 switch (_param->_priority) 34 { 35 case PRIORITY_STATIC : 36 { 37 reg_FRONT_END_PRIORITY = (reg_FRONT_END_PRIORITY+_param->_nb_front_end_select)%_param->_nb_front_end; 38 break; 39 } 40 case PRIORITY_ROUND_ROBIN : 41 { 42 reg_FRONT_END_PRIORITY = (reg_FRONT_END_PRIORITY+1)%_param->_nb_front_end; 43 break; 44 } 45 default: 46 { 47 break; 48 } 49 } 50 51 // flush list 52 select.clear(); 53 54 // Compute next scan order !!! 55 switch (_param->_load_balancing) 56 { 57 case LOAD_BALANCING_BALANCE : 58 { 59 for (uint32_t j=0; j<_param->_max_nb_inst_decod; j++) 60 for (uint32_t i=0; i<_param->_nb_front_end_select; i++) 61 { 62 uint32_t x=(reg_FRONT_END_PRIORITY+i)%_param->_nb_front_end; 63 64 // Test valid inst_decod 65 if (j < _param->_nb_inst_decod[x]) 66 select.push_back(select_t(x,j)); 67 } 68 69 break; 70 } 71 case LOAD_BALANCING_MAXIMUM_FOR_PRIORITY : 72 { 73 74 for (uint32_t i=0; i<_param->_nb_front_end_select; i++) 75 { 76 uint32_t x=(reg_FRONT_END_PRIORITY+i)%_param->_nb_front_end; 77 78 for (uint32_t j=0; j<_param->_nb_inst_decod[x]; j++) 79 select.push_back(select_t(x,j)); 80 } 81 82 break; 83 } 84 default : 85 { 86 break; 87 } 88 } 32 _priority->transition(); 89 33 90 34 // #if (DEBUG >= DEBUG_TRACE)
Note: See TracChangeset
for help on using the changeset viewer.