Ignore:
Timestamp:
Mar 27, 2008, 11:04:49 AM (16 years ago)
Author:
rosiere
Message:

Add :

  • Execute_loop (must be test systemC)
  • Prediction
    • Direction : predifined scheme
    • Branch Target Buffer
  • iFetch_unit
    • ifetch_queue
    • pc management
  • Decod_unit
    • coming soon : support for custom operation
  • Rename_unit
    • RAT
    • Free_list
    • Dependence RAW check
    • Load store unit pointer
  • New Environnement (hierarchy_memory will remove in a next version)


Modif :

  • Manage Custom Operation
  • All component in execute_loop to use the new statistics management

Not Finish :

  • Return Address Stack
  • Environnement
Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters.cpp

    r77 r78  
    6363    _have_port_front_end_id  (_size_front_end_id  > 0),
    6464    _have_port_ooo_engine_id (_size_ooo_engine_id > 0),
    65     _have_port_rob_id        (_size_rob_id        > 0)
     65    _have_port_rob_id        (_size_rob_id        > 0),
     66    _have_port_load_queue_ptr(_size_load_queue    > 1)
    6667  {
    6768    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
     
    100101    _have_port_front_end_id  (param._have_port_front_end_id ),
    101102    _have_port_ooo_engine_id (param._have_port_ooo_engine_id),
    102     _have_port_rob_id        (param._have_port_rob_id       )
     103    _have_port_rob_id        (param._have_port_rob_id       ),
     104    _have_port_load_queue_ptr(param._have_port_load_queue_ptr)
    103105  {
    104106    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Parameters_msg_error.cpp

    r75 r78  
    2121#undef  FUNCTION
    2222#define FUNCTION "Reservation_station::msg_error"
    23   std::string Parameters::msg_error(void)
     23  Parameters_test Parameters::msg_error(void)
    2424  {
    2525    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
    2626
    27     std::string msg = "";
    28 
    29 //     if (_size_queue < 2)
    30 //       {
    31 //         msg += "  - The reservation_station must be have less a depth of 2";
    32 //         msg += "    * size_queue                      : " + toString(_size_queue)    + "\n";
    33 //       }
     27    Parameters_test test ("Reservation_station");
    3428
    3529    if (_size_queue < _nb_inst_retire)
    36       {
    37         msg += "  - The reservation_station can't have more retire port than entry in the queue.";
    38       }
    39    
    40     return msg;
     30      test.error("The reservation_station can't have more retire port than entry in the queue.");
    4131
    4232    log_printf(FUNC,Reservation_station,FUNCTION,"End");
     33
     34    return test;
    4335  };
    4436
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_allocation.cpp

    r76 r78  
    7373       in_INSERT_TYPE           = interface->set_signal_in <Ttype_t           > ("type"           ,_param->_size_type             );
    7474       in_INSERT_STORE_QUEUE_PTR_WRITE = interface->set_signal_in <Tlsq_ptr_t> ("store_queue_ptr_write" ,log2(_param->_size_store_queue));
     75       if (_param->_have_port_load_queue_ptr)
    7576       in_INSERT_LOAD_QUEUE_PTR_WRITE  = interface->set_signal_in <Tlsq_ptr_t> ("load_queue_ptr_write"  ,log2(_param->_size_load_queue) );
    7677       in_INSERT_HAS_IMMEDIAT   = interface->set_signal_in <Tcontrol_t        > ("has_immediat"   ,1                             );
     
    108109    out_RETIRE_TYPE           = new SC_OUT(Ttype_t           ) * [_param->_nb_inst_retire];
    109110    out_RETIRE_STORE_QUEUE_PTR_WRITE = new SC_OUT(Tlsq_ptr_t ) * [_param->_nb_inst_retire];
     111    if (_param->_have_port_load_queue_ptr)
    110112    out_RETIRE_LOAD_QUEUE_PTR_WRITE  = new SC_OUT(Tlsq_ptr_t ) * [_param->_nb_inst_retire];
    111113    out_RETIRE_HAS_IMMEDIAT   = new SC_OUT(Tcontrol_t        ) * [_param->_nb_inst_retire];
     
    141143        out_RETIRE_TYPE         [i] = interface->set_signal_out<Ttype_t           > ("type"         ,_param->_size_type);
    142144        out_RETIRE_STORE_QUEUE_PTR_WRITE [i] = interface->set_signal_out<Tlsq_ptr_t> ("store_queue_ptr_write" ,log2(_param->_size_store_queue));
     145        if (_param->_have_port_load_queue_ptr)
    143146        out_RETIRE_LOAD_QUEUE_PTR_WRITE  [i] = interface->set_signal_out<Tlsq_ptr_t> ("load_queue_ptr_write"  ,log2(_param->_size_load_queue) );
    144147
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_deallocation.cpp

    r76 r78  
    4444    delete     in_INSERT_TYPE          ;
    4545    delete     in_INSERT_STORE_QUEUE_PTR_WRITE;
     46    if (_param->_have_port_load_queue_ptr)
    4647    delete     in_INSERT_LOAD_QUEUE_PTR_WRITE ;
    4748    delete     in_INSERT_HAS_IMMEDIAT  ;
     
    7778    delete [] out_RETIRE_TYPE          ;
    7879    delete [] out_RETIRE_STORE_QUEUE_PTR_WRITE;
     80    if (_param->_have_port_load_queue_ptr)
    7981    delete [] out_RETIRE_LOAD_QUEUE_PTR_WRITE ;
    8082    delete [] out_RETIRE_HAS_IMMEDIAT  ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_genMoore.cpp

    r76 r78  
    102102            PORT_WRITE(out_RETIRE_TYPE          [i],_queue[index_find]._type);
    103103            PORT_WRITE(out_RETIRE_STORE_QUEUE_PTR_WRITE [i],_queue[index_find]._store_queue_ptr_write);
     104            if (_param->_have_port_load_queue_ptr)
    104105            PORT_WRITE(out_RETIRE_LOAD_QUEUE_PTR_WRITE  [i],_queue[index_find]._load_queue_ptr_write );
    105106            PORT_WRITE(out_RETIRE_HAS_IMMEDIAT  [i],_queue[index_find]._has_immediat);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_transition.cpp

    r76 r78  
    259259            _queue[index]._type            = PORT_READ(in_INSERT_TYPE           );
    260260            _queue[index]._store_queue_ptr_write = PORT_READ(in_INSERT_STORE_QUEUE_PTR_WRITE);
     261            if (_param->_have_port_load_queue_ptr)
    261262            _queue[index]._load_queue_ptr_write  = PORT_READ(in_INSERT_LOAD_QUEUE_PTR_WRITE );
    262263            _queue[index]._has_immediat    = PORT_READ(in_INSERT_HAS_IMMEDIAT   );
Note: See TracChangeset for help on using the changeset viewer.