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/Two_Level_Branch_Predictor/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/include/Parameters.h

    r110 r111  
    99 */
    1010
     11#include "Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/include/Types.h"
    1112#include "Behavioural/include/Parameters.h"
    1213#include "Common/include/Debug.h"
     
    2627  {
    2728    //-----[ fields ]------------------------------------------------------------
     29  public : uint32_t   _nb_inst_predict         ;
     30  public : uint32_t   _nb_inst_update          ;
     31  public : uint32_t   _size_address            ;
     32  public : bool       _have_bht                ;
     33  public : uint32_t   _bht_size_shifter        ;
     34  public : uint32_t   _bht_nb_shifter          ;
     35  public : bool       _have_pht                ;
     36  public : uint32_t   _pht_size_counter        ;
     37  public : uint32_t   _pht_nb_counter          ;
     38  public : uint32_t   _pht_size_address_share  ;
     39  public : bool       _update_on_prediction    ;
     40                                       
     41  public : Thistory_t _pht_counter_max         ;
     42       
     43  public : uint32_t   _size_history            ;
     44                                               
     45  public : Thistory_t _bht_history_mask        ;
     46  public : Thistory_t _bht_history_rshift      ;
     47  public : Thistory_t _pht_history_mask        ;
     48  public : Thistory_t _pht_history_rshift      ;
     49                                               
     50  public : uint32_t   _bht_size_address        ;
     51  public : uint32_t   _pht_size_address        ;
     52                                               
     53  public : Taddress_t _bht_address_mask        ;
     54  public : uint32_t   _pht_nb_bank             ;
     55  public : uint32_t   _pht_size_bank           ;
     56  public : Taddress_t _pht_address_share_mask  ;
     57  public : Taddress_t _pht_address_share_lshift;
     58  public : Taddress_t _pht_address_bank_mask   ;
     59  public : Taddress_t _pht_address_bank_rshift ;
    2860
    2961    //-----[ methods ]-----------------------------------------------------------
    30   public : Parameters  (bool is_toplevel=false);
     62  public : Parameters  (uint32_t nb_inst_predict       ,
     63                        uint32_t nb_inst_update        ,
     64                        uint32_t size_address          ,
     65                        bool     have_bht              ,
     66                        uint32_t bht_size_shifter      ,
     67                        uint32_t bht_nb_shifter        ,
     68                        bool     have_pht              ,
     69                        uint32_t pht_size_counter      ,
     70                        uint32_t pht_nb_counter        ,
     71                        uint32_t pht_size_address_share,
     72                        bool     update_on_prediction  ,
     73                        bool is_toplevel=false);
    3174//public : Parameters  (Parameters & param) ;
    3275  public : ~Parameters (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/include/Two_Level_Branch_Predictor.h

    r110 r111  
    6666  public    : SC_IN (Tcontrol_t)            *  in_NRESET       ;
    6767
     68    // ~~~~~[ Interface : "predict" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     69  public    : SC_IN (Tcontrol_t)           **  in_PREDICT_VAL          ;//[nb_inst_predict]
     70  public    : SC_OUT(Tcontrol_t)           ** out_PREDICT_ACK          ;//[nb_inst_predict]
     71  public    : SC_IN (Taddress_t)           **  in_PREDICT_ADDRESS      ;//[nb_inst_predict]
     72  public    : SC_OUT(Tcontrol_t)           ** out_PREDICT_DIRECTION    ;//[nb_inst_predict] // = MSB[history]
     73  public    : SC_OUT(Thistory_t)           ** out_PREDICT_HISTORY      ;//[nb_inst_predict]
     74  public    : SC_IN (Tcontrol_t)           **  in_PREDICT_DIRECTION_VAL;//[nb_inst_predict] // if update_on_prediction
     75  public    : SC_IN (Tcontrol_t)           **  in_PREDICT_DIRECTION    ;//[nb_inst_predict] // if update_on_prediction
     76
     77    // ~~~~~[ Interface : "update" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     78  public    : SC_IN (Tcontrol_t)           **  in_UPDATE_VAL           ;//[nb_inst_update]
     79  public    : SC_OUT(Tcontrol_t)           ** out_UPDATE_ACK           ;//[nb_inst_update]
     80  public    : SC_IN (Taddress_t)           **  in_UPDATE_ADDRESS       ;//[nb_inst_update]
     81  public    : SC_IN (Thistory_t)           **  in_UPDATE_HISTORY       ;//[nb_inst_update]
     82  public    : SC_IN (Tcontrol_t)           **  in_UPDATE_DIRECTION     ;//[nb_inst_update]
     83  public    : SC_IN (Tcontrol_t)           **  in_UPDATE_MISS          ;//[nb_inst_update] // if update_on_prediction
     84
    6885    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    69 
     86   
    7087    // ~~~~~[ Register ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     88  private   : Thistory_t                    * reg_BHT                       ;//[bht_nb_shifter]
     89  private   : Thistory_t                   ** reg_PHT                       ;//[pht_nb_counter][pht_nb_bank]
    7190
    7291    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     92  private   : Tcontrol_t                    * internal_PREDICT_ACK          ;//[nb_inst_predict]
     93  private   : Thistory_t                    * internal_PREDICT_BHT_NUM_REG  ;//[nb_inst_predict] // if update_on_prediction
     94  private   : Thistory_t                    * internal_PREDICT_PHT_NUM_BANK ;//[nb_inst_predict] // if update_on_prediction
     95  private   : Thistory_t                    * internal_PREDICT_PHT_NUM_REG  ;//[nb_inst_predict] // if update_on_prediction
     96
     97  private   : Tcontrol_t                    * internal_UPDATE_ACK           ;//[nb_inst_update]
    7398#endif
    7499
     
    104129#ifdef SYSTEMC                                 
    105130  public  : void        transition                (void);
    106 //public  : void        genMoore                  (void);
     131  public  : void        genMealy_predict          (void);
    107132#endif                                         
    108133
Note: See TracChangeset for help on using the changeset viewer.