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/Read_queue/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/Read_queue/src/Parameters.cpp

    r77 r78  
    5858    _have_port_ooo_engine_id (_size_ooo_engine_id > 0),
    5959    _have_port_rob_id        (_size_rob_id        > 0),
     60    _have_port_load_queue_ptr(_size_load_queue    > 1),
    6061
    6162    _size_internal_queue     (  _size_context_id       //_context_id   
     
    116117    _have_port_ooo_engine_id (param._have_port_ooo_engine_id),
    117118    _have_port_rob_id        (param._have_port_rob_id       ),
     119    _have_port_load_queue_ptr(param._have_port_load_queue_ptr),
    118120
    119121    _size_internal_queue     (param._size_internal_queue    )
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Parameters_msg_error.cpp

    r75 r78  
    1919
    2020
    21   std::string Parameters::msg_error(void)
     21  Parameters_test Parameters::msg_error(void)
    2222  {
    2323    log_printf(FUNC,Read_queue,"msg_error","Begin");
    2424
    25     std::string msg = "";
    26 
    27 //     if (_size_queue < 2)
    28 //       {
    29 //         msg += "  - The read_queue must be have less a depth of 2";
    30 //         msg += "    * size_queue                      : " + toString(_size_queue)    + "\n";
    31 //       }
     25    Parameters_test test ("Read_queue");
    3226
    3327    if (_nb_type < 2)
    34       {
    35         msg += "  - The number of type must be > 1";
    36       }
     28      test.error("The number of type must be > 1");
     29
    3730    if (_nb_operation < 2)
    38       {
    39         msg += "  - The number of operation must be > 1";
    40       }
    41    
    42 
    43     return msg;
     31      test.error("The number of operation must be > 1");
    4432
    4533    log_printf(FUNC,Read_queue,"msg_error","End");
     34
     35    return test;
    4636  };
    4737
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_allocation.cpp

    r76 r78  
    7171       in_READ_QUEUE_IN_TYPE           = interface->set_signal_in  <Ttype_t           > ("type"        ,_param->_size_type             );
    7272       in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE = interface->set_signal_in  <Tlsq_ptr_t> ("store_queue_ptr_write", log2(_param->_size_store_queue));
     73       if (_param->_have_port_load_queue_ptr)
    7374       in_READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE  = interface->set_signal_in  <Tlsq_ptr_t> ("load_queue_ptr_write" , log2(_param->_size_load_queue ));
    7475       in_READ_QUEUE_IN_HAS_IMMEDIAT   = interface->set_signal_in  <Tcontrol_t        > ("has_immediat",1                             );
     
    110111      out_READ_QUEUE_OUT_TYPE           = interface->set_signal_out <Ttype_t           > ("type"        ,_param->_size_type             );
    111112      out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE = interface->set_signal_out <Tlsq_ptr_t> ("store_queue_ptr_write", log2(_param->_size_store_queue));
     113      if (_param->_have_port_load_queue_ptr)
    112114      out_READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE  = interface->set_signal_out <Tlsq_ptr_t> ("load_queue_ptr_write" , log2(_param->_size_load_queue ));
    113115      out_READ_QUEUE_OUT_HAS_IMMEDIAT   = interface->set_signal_out <Tcontrol_t        > ("has_immediat",1                             );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_deallocation.cpp

    r76 r78  
    4242    delete     in_READ_QUEUE_IN_TYPE           ;
    4343    delete     in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE;
     44    if (_param->_have_port_load_queue_ptr)
    4445    delete     in_READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE ;
    4546    delete     in_READ_QUEUE_IN_HAS_IMMEDIAT   ;
     
    7172    delete    out_READ_QUEUE_OUT_TYPE           ;
    7273    delete    out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE;
     74    if (_param->_have_port_load_queue_ptr)
    7375    delete    out_READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE ;
    7476    delete    out_READ_QUEUE_OUT_HAS_IMMEDIAT   ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMoore.cpp

    r76 r78  
    4444    PORT_WRITE (out_READ_QUEUE_OUT_TYPE        , _queue_head->_type        );
    4545    PORT_WRITE (out_READ_QUEUE_OUT_STORE_QUEUE_PTR_WRITE, _queue_head->_store_queue_ptr_write);
     46    if (_param->_have_port_load_queue_ptr)
    4647    PORT_WRITE (out_READ_QUEUE_OUT_LOAD_QUEUE_PTR_WRITE , _queue_head->_load_queue_ptr_write );
    4748    PORT_WRITE (out_READ_QUEUE_OUT_HAS_IMMEDIAT, _queue_head->_has_immediat);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_transition.cpp

    r76 r78  
    6767            entry->_type         = PORT_READ(in_READ_QUEUE_IN_TYPE        );
    6868            entry->_store_queue_ptr_write = PORT_READ(in_READ_QUEUE_IN_STORE_QUEUE_PTR_WRITE);
     69            if (_param->_have_port_load_queue_ptr)
    6970            entry->_load_queue_ptr_write  = PORT_READ(in_READ_QUEUE_IN_LOAD_QUEUE_PTR_WRITE );
    7071            entry->_has_immediat = PORT_READ(in_READ_QUEUE_IN_HAS_IMMEDIAT);
Note: See TracChangeset for help on using the changeset viewer.