Ignore:
Timestamp:
May 25, 2009, 7:40:26 PM (15 years ago)
Author:
rosiere
Message:

1) Prediction unit : static prediction not blocking

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/SelfTest/src/test.cpp

    r112 r119  
    8787  ALLOC1_SC_SIGNAL( in_EVENT_CONTEXT_STATE_TYPE                       ," in_EVENT_CONTEXT_STATE_TYPE                       ",Tevent_type_t,_param->_nb_context);
    8888  ALLOC1_SC_SIGNAL( in_EVENT_CONTEXT_STATE_DEPTH                      ," in_EVENT_CONTEXT_STATE_DEPTH                      ",Tdepth_t  ,_param->_nb_context);
     89  ALLOC1_SC_SIGNAL( in_EVENT_CONTEXT_STATE_FLUSH_ONLY                 ," in_EVENT_CONTEXT_STATE_FLUSH_ONLY                 ",Tcontrol_t,_param->_nb_context);
    8990
    9091  ALLOC1_SC_SIGNAL(out_DEPTH_CURRENT                                  ,"out_DEPTH_CURRENT                                  ",Tdepth_t  ,_param->_nb_context);
     
    161162  if (_param->_have_port_depth)
    162163  INSTANCE1_SC_SIGNAL(_Front_end_Glue, in_EVENT_CONTEXT_STATE_DEPTH                        ,_param->_nb_context);
     164  INSTANCE1_SC_SIGNAL(_Front_end_Glue, in_EVENT_CONTEXT_STATE_FLUSH_ONLY                   ,_param->_nb_context);
    163165
    164166  INSTANCE1_SC_SIGNAL(_Front_end_Glue, in_DEPTH_PREDICTION_UNIT_VAL                        ,_param->_nb_context);
     
    273275  DELETE1_SC_SIGNAL( in_EVENT_CONTEXT_STATE_TYPE                         ,_param->_nb_context);
    274276  DELETE1_SC_SIGNAL( in_EVENT_CONTEXT_STATE_DEPTH                        ,_param->_nb_context);
     277  DELETE1_SC_SIGNAL( in_EVENT_CONTEXT_STATE_FLUSH_ONLY                   ,_param->_nb_context);
    275278
    276279  DELETE1_SC_SIGNAL(out_DEPTH_MIN                                        ,_param->_nb_context);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/include/Front_end_Glue.h

    r108 r119  
    111111  public    : SC_IN (Tevent_type_t        )  **  in_EVENT_CONTEXT_STATE_TYPE                          ;//[nb_context]
    112112  public    : SC_IN (Tdepth_t             )  **  in_EVENT_CONTEXT_STATE_DEPTH                         ;//[nb_context]
     113  public    : SC_IN (Tcontrol_t           )  **  in_EVENT_CONTEXT_STATE_FLUSH_ONLY                    ;//[nb_context]
    113114
    114115    // ~~~~~[ Interface : "depth" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~           
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/src/Front_end_Glue.cpp

    r108 r119  
    147147                      << (*( in_EVENT_CONTEXT_STATE_ADDRESS_NEXT_VAL [i]))
    148148                      << (*( in_EVENT_CONTEXT_STATE_IS_DS_TAKE       [i]))
    149                       << (*( in_EVENT_CONTEXT_STATE_TYPE             [i]));
     149                      << (*( in_EVENT_CONTEXT_STATE_TYPE             [i]))
     150                      << (*( in_EVENT_CONTEXT_STATE_FLUSH_ONLY       [i]))
     151              ;
    150152            if (_param->_have_port_depth)
    151153            sensitive << (*( in_EVENT_CONTEXT_STATE_DEPTH            [i]));
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/src/Front_end_Glue_allocation.cpp

    r112 r119  
    125125      ALLOC1_SIGNAL_IN  ( in_EVENT_CONTEXT_STATE_TYPE                          ,"CONTEXT_STATE_TYPE"            ,Tevent_type_t        ,_param->_size_event_type);
    126126      ALLOC1_SIGNAL_IN  ( in_EVENT_CONTEXT_STATE_DEPTH                         ,"CONTEXT_STATE_DEPTH"           ,Tdepth_t             ,_param->_size_depth);
     127      ALLOC1_SIGNAL_IN  ( in_EVENT_CONTEXT_STATE_FLUSH_ONLY                    ,"CONTEXT_STATE_FLUSH_ONLY"      ,Tcontrol_t           ,1);
    127128
    128129
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/src/Front_end_Glue_deallocation.cpp

    r108 r119  
    6969        DELETE1_SIGNAL( in_EVENT_CONTEXT_STATE_TYPE                         ,_param->_nb_context,_param->_size_event_type);
    7070        DELETE1_SIGNAL( in_EVENT_CONTEXT_STATE_DEPTH                        ,_param->_nb_context,_param->_size_depth);
     71        DELETE1_SIGNAL( in_EVENT_CONTEXT_STATE_FLUSH_ONLY                   ,_param->_nb_context,1);
    7172       
    7273        DELETE1_SIGNAL(out_DEPTH_MIN                                        ,_param->_nb_context,_param->_size_depth);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/src/Front_end_Glue_genMealy_event.cpp

    r97 r119  
    4949        PORT_WRITE(out_EVENT_PREDICTION_UNIT_DEPTH [i],depth);
    5050          }
     51        Tcontrol_t    flush_only = PORT_READ(in_EVENT_CONTEXT_STATE_FLUSH_ONLY [i]);
    5152       
    5253
     
    5657        Tcontrol_t context_state_val   = PORT_READ(in_EVENT_CONTEXT_STATE_VAL   [i]);
    5758
    58         Tcontrol_t val                 = (//ack                 and
     59        Tcontrol_t val                 = (  not flush_only      and
     60                                          //ack                 and
    5961                                            ifetch_unit_ack     and
    6062                                            prediction_unit_ack and
    61                                             context_state_val   
     63                                            context_state_val
     64                                         
    6265                                          );
    63         Tcontrol_t ifetch_unit_val     = (  ack                 and
     66//         Tcontrol_t ifetch_unit_val     = (  ack                 and
     67//                                           //ifetch_unit_ack     and
     68//                                             prediction_unit_ack and
     69//                                             context_state_val   
     70//                                             );
     71        Tcontrol_t ifetch_unit_val     = (  (
     72                                             flush_only or
     73                                             ack              ) and
    6474                                          //ifetch_unit_ack     and
    6575                                            prediction_unit_ack and
    66                                             context_state_val   
     76                                            context_state_val
    6777                                            );
    68         Tcontrol_t prediction_unit_val = (  ack                 and
     78
     79//         Tcontrol_t prediction_unit_val = (  ack                 and
     80//                                             ifetch_unit_ack     and
     81//                                           //prediction_unit_ack and
     82//                                             context_state_val   
     83//                                             );
     84
     85        Tcontrol_t prediction_unit_val = (  (
     86                                             flush_only or
     87                                             ack              ) and
    6988                                            ifetch_unit_ack     and
    7089                                          //prediction_unit_ack and
    71                                             context_state_val   
     90                                            context_state_val
    7291                                            );
     92
     93
    7394        Tcontrol_t context_state_ack   = (  ack                 and
    7495                                            ifetch_unit_ack     and
     
    97118            log_printf(TRACE,Front_end_Glue,FUNCTION,"    * address_next_val : %d",address_next_val);
    98119            log_printf(TRACE,Front_end_Glue,FUNCTION,"    * is_ds_take       : %d",is_ds_take      );
     120            log_printf(TRACE,Front_end_Glue,FUNCTION,"    * flush_only       : %d",flush_only      );
    99121          }
    100122        else
Note: See TracChangeset for help on using the changeset viewer.