Ignore:
Timestamp:
Feb 27, 2009, 7:37:40 PM (15 years ago)
Author:
rosiere
Message:

1) Decod_queue : multi implementation (one_fifo, multi_fifo)
2) Issue_queue : multi implementation (in_order, out_of_order)
3) Direction : Add Meta predictor
4) Context_State : re add Branch_complete, More priority to Load miss (is not speculative)
5) Return_Address_Stack : update reg_PREDICT pointer on decod miss prediction
6) UPT : Fix bug in multi event
7) Prediction_glue : in read_stack case, insert in UPT pc_next
8) Rename select : when rob have an event (need flush), read_r{a,b,c} and write_r{d,e} is set at 0

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Meta_Predictor_Glue/src/Meta_Predictor_Glue.cpp

    r110 r111  
    8282# endif   
    8383
    84 //      log_printf(INFO,Meta_Predictor_Glue,FUNCTION,_("<%s> : Method - genMoore"),_name.c_str());
     84        log_printf(INFO,Meta_Predictor_Glue,FUNCTION,_("<%s> : Method - genMealy_update_valack"),_name.c_str());
    8585
    86 //      SC_METHOD (genMoore);
    87 //      dont_initialize ();
    88 //      sensitive << (*(in_CLOCK)).neg(); // need internal register
    89        
    90 // # ifdef SYSTEMCASS_SPECIFIC
    91 //      // List dependency information
    92 // # endif   
     86        SC_METHOD (genMealy_update_valack);
     87        dont_initialize ();
     88//      sensitive << (*(in_CLOCK)).neg(); // don't need internal register
     89        for (uint32_t i=0; i<_param->_nb_inst_update; ++i)
     90          {
     91            sensitive << (*(in_UPDATE_VAL [i]));
     92
     93            for (uint32_t j=0; j<_param->_nb_predictor; ++j)
     94              sensitive << (*(in_UPDATE_PREDICTOR_ACK [j][i]));
     95          }
     96
     97        log_printf(INFO,Meta_Predictor_Glue,FUNCTION,_("<%s> : Method - genMealy_update"),_name.c_str());
     98
     99        SC_METHOD (genMealy_update);
     100        dont_initialize ();
     101//      sensitive << (*(in_CLOCK)).neg(); // don't need internal register
     102        for (uint32_t i=0; i<_param->_nb_inst_update; ++i)
     103          sensitive << (*(in_UPDATE_HISTORY   [i]))
     104                    << (*(in_UPDATE_DIRECTION [i]));
     105
     106# ifdef SYSTEMCASS_SPECIFIC
     107        // List dependency information
     108# endif   
     109
     110        log_printf(INFO,Meta_Predictor_Glue,FUNCTION,_("<%s> : Method - genMealy_predict_valack"),_name.c_str());
     111
     112        SC_METHOD (genMealy_predict_valack);
     113        dont_initialize ();
     114//      sensitive << (*(in_CLOCK)).neg(); // don't need internal register
     115        for (uint32_t i=0; i<_param->_nb_inst_predict; ++i)
     116          {
     117            sensitive << (*(in_PREDICT_VAL [i]));
     118
     119            for (uint32_t j=0; j<_param->_nb_predictor; ++j)
     120              sensitive << (*(in_PREDICT_PREDICTOR_ACK [j][i]));
     121          }
     122
     123# ifdef SYSTEMCASS_SPECIFIC
     124        // List dependency information
     125# endif   
     126
     127        log_printf(INFO,Meta_Predictor_Glue,FUNCTION,_("<%s> : Method - genMealy_predict"),_name.c_str());
     128
     129        SC_METHOD (genMealy_predict);
     130        dont_initialize ();
     131//      sensitive << (*(in_CLOCK)).neg(); // don't need internal register
     132        for (uint32_t i=0; i<_param->_nb_inst_predict; ++i)
     133          for (uint32_t j=0; j<_param->_nb_predictor; ++j)
     134            sensitive << (*(in_PREDICT_PREDICTOR_HISTORY   [j][i]))
     135                      << (*(in_PREDICT_PREDICTOR_DIRECTION [j][i]));
     136
     137# ifdef SYSTEMCASS_SPECIFIC
     138        // List dependency information
     139# endif   
    93140       
    94141#endif
Note: See TracChangeset for help on using the changeset viewer.