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

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/SelfTest
Files:
2 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/SelfTest/config-alpha_21264.cfg

    r110 r111  
    11Meta_Predictor
     21       1       +1      # nb_inst_predict
     31       1       +1      # nb_inst_update
     430      30      *2      # size_address
     51       1       +1      # predictor_0_have_bht             
     610      10      +1      # predictor_0_bht_size_shifter     
     71024    1024    *2      # predictor_0_bht_nb_shifter
     81       1       +1      # predictor_0_have_pht             
     93       3       +1      # predictor_0_pht_size_counter     
     101024    1024    *2      # predictor_0_pht_nb_counter
     110       0       +1      # predictor_0_pht_size_address_share
     121       1       +1      # predictor_1_have_bht             
     1312      12      +1      # predictor_1_bht_size_shifter     
     142       2       *2      # predictor_1_bht_nb_shifter
     151       1       +1      # predictor_1_have_pht             
     162       2       +1      # predictor_1_pht_size_counter     
     174096    4096    *2      # predictor_1_pht_nb_counter
     180       0       +1      # predictor_1_pht_size_address_share
     190       0       +1      # predictor_2_have_bht             
     204       4       +1      # predictor_2_bht_size_shifter     
     21256     256     *2      # predictor_2_bht_nb_shifter
     221       1       +1      # predictor_2_have_pht             
     232       2       +1      # predictor_2_pht_size_counter     
     244096    4096    *2      # predictor_2_pht_nb_counter
     250       0       +1      # predictor_2_pht_size_address_share
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/SelfTest/src/main.cpp

    r110 r111  
    77
    88#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/SelfTest/include/test.h"
     9#include "Behavioural/include/Selftest.h"
    910
    10 #define NB_PARAMS 0
     11#define NB_PARAMS 3+7*3
    1112
    1213void usage (int argc, char * argv[])
     
    1415  err (_("<Usage> %s name_instance list_params.\n"),argv[0]);
    1516  err (_("list_params is :\n"));
    16   err (_(" *  ()\n"));
    17 
     17  err (_(" * nb_inst_predict            (uint32_t)\n"));
     18  err (_(" * nb_inst_update             (uint32_t)\n"));
     19  err (_(" * size_address               (uint32_t)\n"));
     20  err (_(" * have_bht               [3] (bool    )\n"));
     21  err (_(" * bht_size_shifter       [3] (uint32_t)\n"));
     22  err (_(" * bht_nb_shifter         [3] (uint32_t)\n"));
     23  err (_(" * have_pht               [3] (bool    )\n"));
     24  err (_(" * pht_size_counter       [3] (uint32_t)\n"));
     25  err (_(" * pht_nb_counter         [3] (uint32_t)\n"));
     26  err (_(" * pht_size_address_share [3] (uint32_t)\n"));
    1827  exit (1);
    1928}
     
    3140
    3241  string name = argv[x++];
     42  uint32_t _nb_inst_predict           ;
     43  uint32_t _nb_inst_update            ;
     44  uint32_t _size_address              ;
     45  bool     _have_bht               [3];
     46  uint32_t _bht_size_shifter       [3];
     47  uint32_t _bht_nb_shifter         [3];
     48  bool     _have_pht               [3];
     49  uint32_t _pht_size_counter       [3];
     50  uint32_t _pht_nb_counter         [3];
     51  uint32_t _pht_size_address_share [3];
     52
     53  SELFTEST0(_nb_inst_predict           ,uint32_t,argv,x);
     54  SELFTEST0(_nb_inst_update            ,uint32_t,argv,x);
     55  SELFTEST0(_size_address              ,uint32_t,argv,x);
     56
     57  for (uint32_t i=0; i<3; ++i)
     58    {
     59  SELFTEST0(_have_bht               [i],bool    ,argv,x);
     60  SELFTEST0(_bht_size_shifter       [i],uint32_t,argv,x);
     61  SELFTEST0(_bht_nb_shifter         [i],uint32_t,argv,x);
     62  SELFTEST0(_have_pht               [i],bool    ,argv,x);
     63  SELFTEST0(_pht_size_counter       [i],uint32_t,argv,x);
     64  SELFTEST0(_pht_nb_counter         [i],uint32_t,argv,x);
     65  SELFTEST0(_pht_size_address_share [i],uint32_t,argv,x);
     66    }
    3367
    3468  int _return = EXIT_SUCCESS;
     
    3771      morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::direction::meta_predictor::Parameters * param = new morpheo::behavioural::core::multi_front_end::front_end::prediction_unit::direction::meta_predictor::Parameters
    3872        (
     73         _nb_inst_predict       ,
     74         _nb_inst_update        ,
     75         _size_address          ,
     76         _have_bht              ,
     77         _bht_size_shifter      ,
     78         _bht_nb_shifter        ,
     79         _have_pht              ,
     80         _pht_size_counter      ,
     81         _pht_nb_counter        ,
     82         _pht_size_address_share,
    3983         true // is_toplevel
    4084        );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/SelfTest/src/test.cpp

    r110 r111  
    5050  sc_clock              *  in_CLOCK  = new sc_clock ("clock", 1.0, 0.5);         
    5151  sc_signal<Tcontrol_t> *  in_NRESET = new sc_signal<Tcontrol_t> ("NRESET");
     52  ALLOC1_SC_SIGNAL( in_PREDICT_VAL          ," in_PREDICT_VAL          ",Tcontrol_t,_param->_nb_inst_predict);
     53  ALLOC1_SC_SIGNAL(out_PREDICT_ACK          ,"out_PREDICT_ACK          ",Tcontrol_t,_param->_nb_inst_predict);
     54  ALLOC1_SC_SIGNAL( in_PREDICT_ADDRESS      ," in_PREDICT_ADDRESS      ",Taddress_t,_param->_nb_inst_predict);
     55  ALLOC1_SC_SIGNAL(out_PREDICT_DIRECTION    ,"out_PREDICT_DIRECTION    ",Tcontrol_t,_param->_nb_inst_predict);
     56  ALLOC1_SC_SIGNAL(out_PREDICT_HISTORY      ,"out_PREDICT_HISTORY      ",Thistory_t,_param->_nb_inst_predict);
     57 
     58  ALLOC1_SC_SIGNAL( in_UPDATE_VAL           ," in_UPDATE_VAL           ",Tcontrol_t,_param->_nb_inst_update);
     59  ALLOC1_SC_SIGNAL(out_UPDATE_ACK           ,"out_UPDATE_ACK           ",Tcontrol_t,_param->_nb_inst_update);
     60  ALLOC1_SC_SIGNAL( in_UPDATE_ADDRESS       ," in_UPDATE_ADDRESS       ",Taddress_t,_param->_nb_inst_update);
     61  ALLOC1_SC_SIGNAL( in_UPDATE_HISTORY       ," in_UPDATE_HISTORY       ",Thistory_t,_param->_nb_inst_update);
     62  ALLOC1_SC_SIGNAL( in_UPDATE_DIRECTION     ," in_UPDATE_DIRECTION     ",Tcontrol_t,_param->_nb_inst_update);
    5263 
    5364  /********************************************************
     
    6071  (*(_Meta_Predictor->in_NRESET))       (*(in_NRESET));
    6172
     73  INSTANCE1_SC_SIGNAL(_Meta_Predictor, in_PREDICT_VAL          ,_param->_nb_inst_predict);
     74  INSTANCE1_SC_SIGNAL(_Meta_Predictor,out_PREDICT_ACK          ,_param->_nb_inst_predict);
     75  INSTANCE1_SC_SIGNAL(_Meta_Predictor, in_PREDICT_ADDRESS      ,_param->_nb_inst_predict);
     76  INSTANCE1_SC_SIGNAL(_Meta_Predictor,out_PREDICT_DIRECTION    ,_param->_nb_inst_predict);
     77  INSTANCE1_SC_SIGNAL(_Meta_Predictor,out_PREDICT_HISTORY      ,_param->_nb_inst_predict);
     78
     79  INSTANCE1_SC_SIGNAL(_Meta_Predictor, in_UPDATE_VAL           ,_param->_nb_inst_update);
     80  INSTANCE1_SC_SIGNAL(_Meta_Predictor,out_UPDATE_ACK           ,_param->_nb_inst_update);
     81  INSTANCE1_SC_SIGNAL(_Meta_Predictor, in_UPDATE_ADDRESS       ,_param->_nb_inst_update);
     82  INSTANCE1_SC_SIGNAL(_Meta_Predictor, in_UPDATE_HISTORY       ,_param->_nb_inst_update);
     83  INSTANCE1_SC_SIGNAL(_Meta_Predictor, in_UPDATE_DIRECTION     ,_param->_nb_inst_update);
    6284
    6385  msg(_("<%s> : Start Simulation ............\n"),name.c_str());
     
    104126  delete in_CLOCK;
    105127  delete in_NRESET;
     128
     129  DELETE1_SC_SIGNAL( in_PREDICT_VAL          ,_param->_nb_inst_predict);
     130  DELETE1_SC_SIGNAL(out_PREDICT_ACK          ,_param->_nb_inst_predict);
     131  DELETE1_SC_SIGNAL( in_PREDICT_ADDRESS      ,_param->_nb_inst_predict);
     132  DELETE1_SC_SIGNAL(out_PREDICT_DIRECTION    ,_param->_nb_inst_predict);
     133  DELETE1_SC_SIGNAL(out_PREDICT_HISTORY      ,_param->_nb_inst_predict);
     134
     135  DELETE1_SC_SIGNAL( in_UPDATE_VAL           ,_param->_nb_inst_update);
     136  DELETE1_SC_SIGNAL(out_UPDATE_ACK           ,_param->_nb_inst_update);
     137  DELETE1_SC_SIGNAL( in_UPDATE_ADDRESS       ,_param->_nb_inst_update);
     138  DELETE1_SC_SIGNAL( in_UPDATE_HISTORY       ,_param->_nb_inst_update);
     139  DELETE1_SC_SIGNAL( in_UPDATE_DIRECTION     ,_param->_nb_inst_update);
    106140    }
    107141#endif
Note: See TracChangeset for help on using the changeset viewer.