Ignore:
Timestamp:
Oct 20, 2009, 8:52:15 PM (15 years ago)
Author:
rosiere
Message:

1) Add new algo in ifetch queue
2) Add Cancel bit
3) new config

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Reservation_station.h

    r122 r136  
    7373  public    : SC_IN (Toperation_t      )    *  in_INSERT_OPERATION      ;
    7474  public    : SC_IN (Ttype_t           )    *  in_INSERT_TYPE           ;
     75  public    : SC_IN (Tcontrol_t        )    *  in_INSERT_CANCEL         ;
    7576  public    : SC_IN (Tlsq_ptr_t        )    *  in_INSERT_STORE_QUEUE_PTR_WRITE;
    7677  public    : SC_IN (Tlsq_ptr_t        )    *  in_INSERT_STORE_QUEUE_PTR_READ ;
     
    105106  public    : SC_OUT(Toperation_t      )   ** out_RETIRE_OPERATION      ;
    106107  public    : SC_OUT(Ttype_t           )   ** out_RETIRE_TYPE           ;
     108  public    : SC_OUT(Tcontrol_t        )   ** out_RETIRE_CANCEL         ;
    107109  public    : SC_OUT(Tlsq_ptr_t        )   ** out_RETIRE_STORE_QUEUE_PTR_WRITE;
    108110  public    : SC_OUT(Tlsq_ptr_t        )   ** out_RETIRE_STORE_QUEUE_PTR_READ ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/include/Types.h

    r122 r136  
    2828  public    : Toperation_t       _operation   ;
    2929  public    : Ttype_t            _type        ;
     30  public    : Tcontrol_t         _cancel      ;
    3031  public    : Tlsq_ptr_t         _store_queue_ptr_write;
    3132  public    : Tlsq_ptr_t         _store_queue_ptr_read ;
     
    6061                    << " * _operation             : " << toString(x._operation      ) << std::endl
    6162                    << " * _type                  : " << toString(x._type           ) << std::endl
     63                    << " * _cancel                : " << toString(x._cancel         ) << std::endl
    6264                    << " * _store_queue_ptr_write : " << toString(x._store_queue_ptr_write) << std::endl
    6365                    << " * _store_queue_ptr_read  : " << toString(x._store_queue_ptr_read ) << std::endl
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station.cpp

    r131 r136  
    3737    ,_usage (usage)
    3838  {
    39     log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
     39    log_printf(FUNC,Reservation_station,FUNCTION,_("<%s> Begin"),_name.c_str());
    4040
    4141// #if DEBUG_Reservation_station == true
     
    4646
    4747#ifdef SYSTEMC
    48     log_printf(INFO,Reservation_station,FUNCTION,"Allocation");
     48    log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Allocation"),_name.c_str());
    4949
    5050    allocation ();
     
    5454    if (usage_is_set(_usage,USE_STATISTICS))
    5555      {
    56         log_printf(INFO,Reservation_station,FUNCTION,"Allocation of statistics");
     56        log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Allocation of statistics"),_name.c_str());
    5757       
    5858        statistics_declaration(param_statistics);
     
    6464      {
    6565        // generate the vhdl
    66         log_printf(INFO,Reservation_station,FUNCTION,"Generate the vhdl");
     66        log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Generate the vhdl"),_name.c_str());
    6767       
    6868        vhdl();
     
    7474      {
    7575//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    76     log_printf(INFO,Reservation_station,FUNCTION,"Method - transition");
     76    log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Method - transition"),_name.c_str());
    7777
    7878    SC_METHOD (transition);
     
    8585#endif   
    8686
    87     log_printf(INFO,Reservation_station,FUNCTION,"Method - genMoore");
     87    log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Method - genMoore"),_name.c_str());
    8888
    8989    SC_METHOD (genMoore);
     
    9696      }
    9797#endif
    98     log_printf(FUNC,Reservation_station,FUNCTION,"End");
     98    log_printf(FUNC,Reservation_station,FUNCTION,_("<%s> End"),_name.c_str());
    9999  };
    100100 
     
    103103  Reservation_station::~Reservation_station (void)
    104104  {
    105     log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
     105    log_printf(FUNC,Reservation_station,FUNCTION,_("<%s> Begin"),_name.c_str());
    106106
    107107#ifdef STATISTICS
    108108    if (usage_is_set(_usage,USE_STATISTICS))
    109109      {
    110         log_printf(INFO,Reservation_station,FUNCTION,"Generate Statistics file");
     110        log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Generate Statistics file"),_name.c_str());
    111111       
    112112        delete _stat;
     
    115115
    116116#ifdef SYSTEMC
    117     log_printf(INFO,Reservation_station,FUNCTION,"Deallocation");
     117    log_printf(INFO,Reservation_station,FUNCTION,_("<%s> Deallocation"),_name.c_str());
    118118
    119119    deallocation ();
    120120#endif
    121121
    122     log_printf(FUNC,Reservation_station,FUNCTION,"End");
     122    log_printf(FUNC,Reservation_station,FUNCTION,_("<%s> End"),_name.c_str());
    123123  };
    124124
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_allocation.cpp

    r135 r136  
    6363       ALLOC0_SIGNAL_IN ( in_INSERT_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation       );
    6464       ALLOC0_SIGNAL_IN ( in_INSERT_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type            );
     65       ALLOC0_SIGNAL_IN ( in_INSERT_CANCEL               ,"cancel"               ,Tcontrol_t        ,1                             );
    6566       ALLOC0_SIGNAL_IN ( in_INSERT_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr );
    6667       ALLOC0_SIGNAL_IN ( in_INSERT_STORE_QUEUE_PTR_READ ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr );
     
    101102       ALLOC1_SIGNAL_OUT(out_RETIRE_OPERATION            ,"operation"            ,Toperation_t      ,_param->_size_operation);
    102103       ALLOC1_SIGNAL_OUT(out_RETIRE_TYPE                 ,"type"                 ,Ttype_t           ,_param->_size_type);
     104       ALLOC1_SIGNAL_OUT(out_RETIRE_CANCEL               ,"cancel"               ,Tcontrol_t        ,1);
    103105       ALLOC1_SIGNAL_OUT(out_RETIRE_STORE_QUEUE_PTR_WRITE,"store_queue_ptr_write",Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
    104106       ALLOC1_SIGNAL_OUT(out_RETIRE_STORE_QUEUE_PTR_READ ,"store_queue_ptr_read" ,Tlsq_ptr_t        ,_param->_size_store_queue_ptr);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_deallocation.cpp

    r122 r136  
    4242        DELETE0_SIGNAL( in_INSERT_OPERATION            ,_param->_size_operation       );
    4343        DELETE0_SIGNAL( in_INSERT_TYPE                 ,_param->_size_type            );
     44        DELETE0_SIGNAL( in_INSERT_CANCEL               ,1                             );
    4445        DELETE0_SIGNAL( in_INSERT_STORE_QUEUE_PTR_WRITE,_param->_size_store_queue_ptr );
    4546        DELETE0_SIGNAL( in_INSERT_STORE_QUEUE_PTR_READ ,_param->_size_store_queue_ptr );
     
    7374        DELETE1_SIGNAL(out_RETIRE_OPERATION            ,_param->_nb_inst_retire,_param->_size_operation);
    7475        DELETE1_SIGNAL(out_RETIRE_TYPE                 ,_param->_nb_inst_retire,_param->_size_type);
     76        DELETE1_SIGNAL(out_RETIRE_CANCEL               ,_param->_nb_inst_retire,1);
    7577        DELETE1_SIGNAL(out_RETIRE_STORE_QUEUE_PTR_WRITE,_param->_nb_inst_retire,_param->_size_store_queue_ptr);
    7678        DELETE1_SIGNAL(out_RETIRE_STORE_QUEUE_PTR_READ ,_param->_nb_inst_retire,_param->_size_store_queue_ptr);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_genMoore.cpp

    r123 r136  
    112112            PORT_WRITE(out_RETIRE_OPERATION     [i],_queue[index_find]._operation);
    113113            PORT_WRITE(out_RETIRE_TYPE          [i],_queue[index_find]._type);
     114            PORT_WRITE(out_RETIRE_CANCEL        [i],_queue[index_find]._cancel);
    114115            PORT_WRITE(out_RETIRE_STORE_QUEUE_PTR_WRITE [i],_queue[index_find]._store_queue_ptr_write);
    115116            PORT_WRITE(out_RETIRE_STORE_QUEUE_PTR_READ  [i],_queue[index_find]._store_queue_ptr_read );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_transition.cpp

    r128 r136  
    2626      for (uint32_t it_dump=0;it_dump<_param->_size_queue; it_dump++)   \
    2727        if (_queue_valid [it_dump])                                     \
    28           log_printf(TRACE,Reservation_station,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)", \
     28          log_printf(TRACE,Reservation_station,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d %.1d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)", \
    2929                     it_dump,                                           \
    3030                     _queue[it_dump]._context_id           ,            \
     
    3434                     _queue[it_dump]._type                 ,            \
    3535                     _queue[it_dump]._operation            ,            \
     36                     _queue[it_dump]._cancel               ,            \
    3637                     _queue[it_dump]._store_queue_ptr_write,            \
    3738                     _queue[it_dump]._store_queue_ptr_read ,            \
     
    6364      for (uint32_t it_dump=0;it_dump<_param->_size_queue; it_dump++)   \
    6465        if (it_dump < _queue_control->nb_elt())                         \
    65           log_printf(TRACE,Reservation_station,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)", \
     66          log_printf(TRACE,Reservation_station,FUNCTION,"    * [%.4d] %.2d %.2d %.2d %.4d, %.2d %.3d %.1d, %.2d %.2d %.1d %.2d, %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.8x, %.4d %.1d %.2x, %.1d %.4d, %.1d %.4d (%s)", \
    6667                     (*_queue_control)[it_dump],                        \
    6768                     _queue[(*_queue_control)[it_dump]]._context_id           , \
     
    7172                     _queue[(*_queue_control)[it_dump]]._type                 , \
    7273                     _queue[(*_queue_control)[it_dump]]._operation            , \
     74                     _queue[(*_queue_control)[it_dump]]._cancel               , \
    7375                     _queue[(*_queue_control)[it_dump]]._store_queue_ptr_write, \
    7476                     _queue[(*_queue_control)[it_dump]]._store_queue_ptr_read , \
     
    121123            _queue[i]._operation             = 0; // not necessary
    122124            _queue[i]._type                  = 0; // not necessary
     125            _queue[i]._cancel                = 0; // not necessary
    123126            _queue[i]._store_queue_ptr_write = 0; // not necessary
    124127            _queue[i]._store_queue_ptr_read  = 0; // not necessary
     
    327330            _queue[index]._operation       = PORT_READ(in_INSERT_OPERATION      );
    328331            _queue[index]._type            = PORT_READ(in_INSERT_TYPE           );
     332            _queue[index]._cancel          = PORT_READ(in_INSERT_CANCEL         );
    329333            _queue[index]._store_queue_ptr_write = PORT_READ(in_INSERT_STORE_QUEUE_PTR_WRITE);
    330334            _queue[index]._store_queue_ptr_read  = PORT_READ(in_INSERT_STORE_QUEUE_PTR_READ );
Note: See TracChangeset for help on using the changeset viewer.