Changeset 107 for trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue
- Timestamp:
- Feb 11, 2009, 12:03:25 AM (15 years ago)
- Location:
- trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue.cpp
r88 r107 92 92 PORT_WRITE(out_PREDICT_ACK [i], 1); 93 93 94 // constant direction : never / always94 // constant direction : never / always 95 95 switch (_param->_predictor_scheme) 96 96 { … … 166 166 167 167 # ifdef SYSTEMCASS_SPECIFIC 168 // List dependency information169 for (uint32_t i=0; i<_param->_nb_inst_predict; i++)170 {171 172 switch (_param->_predictor_scheme)173 {174 case PREDICTOR_STATIC :175 {176 (*(out_PREDICT_DIRECTION [i])) (*(in_PREDICT_STATIC [i]));177 178 break;179 }180 case PREDICTOR_LAST_TAKE :181 {182 (*(out_PREDICT_DIRECTION [i])) (*(in_PREDICT_LAST_TAKE [i]));183 184 break;185 }186 case PREDICTOR_COUNTER :187 case PREDICTOR_LOCAL :188 case PREDICTOR_GLOBAL :189 case PREDICTOR_META :190 case PREDICTOR_CUSTOM :191 {192 (*(out_PREDICT_ACK [i])) (*(in_PREDICT_PREDICTOR_ACK [i]));193 (*(out_PREDICT_HISTORY [i])) (*(in_PREDICT_PREDICTOR_HISTORY [i]));194 (*(out_PREDICT_DIRECTION [i])) (*(in_PREDICT_PREDICTOR_DIRECTION [i]));195 (*(out_PREDICT_PREDICTOR_VAL [i])) (*(in_PREDICT_VAL [i]));196 (*(out_PREDICT_PREDICTOR_ADDRESS_SRC [i])) (*(in_PREDICT_ADDRESS_SRC [i]));197 198 break;199 }200 default :201 {202 break;203 }204 }205 }168 // // List dependency information 169 // for (uint32_t i=0; i<_param->_nb_inst_predict; i++) 170 // { 171 172 // switch (_param->_predictor_scheme) 173 // { 174 // case PREDICTOR_STATIC : 175 // { 176 // (*(out_PREDICT_DIRECTION [i])) (*(in_PREDICT_STATIC [i])); 177 178 // break; 179 // } 180 // case PREDICTOR_LAST_TAKE : 181 // { 182 // (*(out_PREDICT_DIRECTION [i])) (*(in_PREDICT_LAST_TAKE [i])); 183 184 // break; 185 // } 186 // case PREDICTOR_COUNTER : 187 // case PREDICTOR_LOCAL : 188 // case PREDICTOR_GLOBAL : 189 // case PREDICTOR_META : 190 // case PREDICTOR_CUSTOM : 191 // { 192 // (*(out_PREDICT_ACK [i])) (*(in_PREDICT_PREDICTOR_ACK [i])); 193 // (*(out_PREDICT_HISTORY [i])) (*(in_PREDICT_PREDICTOR_HISTORY [i])); 194 // (*(out_PREDICT_DIRECTION [i])) (*(in_PREDICT_PREDICTOR_DIRECTION [i])); 195 // (*(out_PREDICT_PREDICTOR_VAL [i])) (*(in_PREDICT_VAL [i])); 196 // (*(out_PREDICT_PREDICTOR_ADDRESS_SRC [i])) (*(in_PREDICT_ADDRESS_SRC [i])); 197 198 // break; 199 // } 200 // default : 201 // { 202 // break; 203 // } 204 // } 205 // } 206 206 # endif 207 207 } … … 222 222 223 223 # ifdef SYSTEMCASS_SPECIFIC 224 // List dependency information225 for (uint32_t i=0; i<_param->_nb_inst_update; i++)226 {227 (*(out_UPDATE_PREDICTOR_VAL [i])) (*(in_UPDATE_VAL [i]));228 (*(out_UPDATE_ACK [i])) (*(in_UPDATE_PREDICTOR_ACK [i]));229 (*(out_UPDATE_PREDICTOR_ADDRESS [i])) (*(in_UPDATE_ADDRESS [i]));230 (*(out_UPDATE_PREDICTOR_HISTORY [i])) (*(in_UPDATE_HISTORY [i]));231 (*(out_UPDATE_PREDICTOR_DIRECTION [i])) (*(in_UPDATE_DIRECTION [i]));232 }224 // // List dependency information 225 // for (uint32_t i=0; i<_param->_nb_inst_update; i++) 226 // { 227 // (*(out_UPDATE_PREDICTOR_VAL [i])) (*(in_UPDATE_VAL [i])); 228 // (*(out_UPDATE_ACK [i])) (*(in_UPDATE_PREDICTOR_ACK [i])); 229 // (*(out_UPDATE_PREDICTOR_ADDRESS [i])) (*(in_UPDATE_ADDRESS [i])); 230 // (*(out_UPDATE_PREDICTOR_HISTORY [i])) (*(in_UPDATE_HISTORY [i])); 231 // (*(out_UPDATE_PREDICTOR_DIRECTION [i])) (*(in_UPDATE_DIRECTION [i])); 232 // } 233 233 # endif 234 234 } -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue_genMealy_predict.cpp
r81 r107 23 23 void Direction_Glue::genMealy_predict (void) 24 24 { 25 log_printf(FUNC,Direction_Glue,FUNCTION,"Begin"); 25 log_begin(Direction_Glue,FUNCTION); 26 log_function(Direction_Glue,FUNCTION,_name.c_str()); 26 27 27 28 // constant direction : never / always 28 switch (_param->_predictor_scheme)29 for (uint32_t i=0; i<_param->_nb_inst_predict; i++) 29 30 { 30 case PREDICTOR_STATIC : 31 { 32 for (uint32_t i=0; i<_param->_nb_inst_predict; i++) 33 PORT_WRITE(out_PREDICT_DIRECTION [i], PORT_READ(in_PREDICT_STATIC [i])); 34 35 break; 36 } 37 case PREDICTOR_LAST_TAKE : 38 { 39 for (uint32_t i=0; i<_param->_nb_inst_predict; i++) 40 PORT_WRITE(out_PREDICT_DIRECTION [i], PORT_READ(in_PREDICT_LAST_TAKE [i])); 31 log_printf(TRACE,Direction_Glue,FUNCTION," * PREDICT [%d]",i); 41 32 42 break; 43 } 44 case PREDICTOR_COUNTER : 45 case PREDICTOR_LOCAL : 46 case PREDICTOR_GLOBAL : 47 case PREDICTOR_META : 48 case PREDICTOR_CUSTOM : 49 { 50 for (uint32_t i=0; i<_param->_nb_inst_predict; i++) 51 { 52 // not use : 53 // in_PREDICT_LAST_TAKE 54 // in_PREDICT_STATIC 33 Tcontrol_t direction; 34 35 switch (_param->_predictor_scheme) 36 { 37 // defined as constant in Direction_Glue.cpp 38 // case PREDICTOR_NEVER_TAKE : 39 // { 40 // direction = 0; 41 // break; 42 // } 43 // case PREDICTOR_ALWAYS_TAKE : 44 // { 45 // direction = 1; 46 // break; 47 // } 48 case PREDICTOR_STATIC : 49 { 50 direction = PORT_READ(in_PREDICT_STATIC [i]); 51 break; 52 } 53 case PREDICTOR_LAST_TAKE : 54 { 55 direction = PORT_READ(in_PREDICT_LAST_TAKE [i]); 56 break; 57 } 58 case PREDICTOR_COUNTER : 59 case PREDICTOR_LOCAL : 60 case PREDICTOR_GLOBAL : 61 case PREDICTOR_META : 62 case PREDICTOR_CUSTOM : 63 { 64 // not use : 65 // in_PREDICT_LAST_TAKE 66 // in_PREDICT_STATIC 67 68 direction = PORT_READ(in_PREDICT_PREDICTOR_DIRECTION [i]); 55 69 56 70 PORT_WRITE(out_PREDICT_PREDICTOR_VAL [i], PORT_READ(in_PREDICT_VAL [i])); … … 58 72 PORT_WRITE(out_PREDICT_PREDICTOR_ADDRESS_SRC [i], PORT_READ(in_PREDICT_ADDRESS_SRC [i])); 59 73 PORT_WRITE(out_PREDICT_HISTORY [i], PORT_READ(in_PREDICT_PREDICTOR_HISTORY [i])); 60 PORT_WRITE(out_PREDICT_DIRECTION [i], PORT_READ(in_PREDICT_PREDICTOR_DIRECTION [i])); 61 } 74 75 break; 76 } 77 default : 78 { 79 ERRORMORPHEO(FUNCTION,"No valid predictor scheme"); 80 break; 81 } 82 } 83 84 log_printf(TRACE,Direction_Glue,FUNCTION," * direction : %d",direction); 62 85 63 break; 64 } 65 default : 66 { 67 ERRORMORPHEO(FUNCTION,"No valid predictor scheme"); 68 break; 69 } 86 PORT_WRITE(out_PREDICT_DIRECTION [i], direction); 70 87 } 71 88 72 73 74 log_printf(FUNC,Direction_Glue,FUNCTION,"End"); 89 log_end(Direction_Glue,FUNCTION); 75 90 }; 76 91 -
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue_genMealy_update.cpp
r81 r107 23 23 void Direction_Glue::genMealy_update (void) 24 24 { 25 log_printf(FUNC,Direction_Glue,FUNCTION,"Begin"); 25 log_begin(Direction_Glue,FUNCTION); 26 log_function(Direction_Glue,FUNCTION,_name.c_str()); 26 27 27 28 for (uint32_t i=0; i<_param->_nb_inst_update; i++) … … 34 35 } 35 36 36 log_ printf(FUNC,Direction_Glue,FUNCTION,"End");37 log_end(Direction_Glue,FUNCTION); 37 38 }; 38 39
Note: See TracChangeset
for help on using the changeset viewer.