Ignore:
Timestamp:
Jun 3, 2009, 10:15:51 AM (15 years ago)
Author:
rosiere
Message:

Modif for performance :
1) Load Store Unit : store send request to valid exeception
2) Commit_unit : retire can bypass store
3) Commit_unit : add stat to manage store instruction
4) Load Store Unit and Load Store Pointer Manager : add store_queue_ptr_read
5) Fix lot of bug

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h

    r117 r122  
    103103  public    : SC_IN (Ttype_t           )   **  in_MEMORY_IN_TYPE                 ;//[nb_inst_memory]
    104104  public    : SC_IN (Tlsq_ptr_t        )   **  in_MEMORY_IN_STORE_QUEUE_PTR_WRITE;//[nb_inst_memory]
     105  public    : SC_IN (Tlsq_ptr_t        )   **  in_MEMORY_IN_STORE_QUEUE_PTR_READ ;//[nb_inst_memory]
     106  public    : SC_IN (Tcontrol_t        )   **  in_MEMORY_IN_STORE_QUEUE_EMPTY    ;//[nb_inst_memory]
    105107  public    : SC_IN (Tlsq_ptr_t        )   **  in_MEMORY_IN_LOAD_QUEUE_PTR_WRITE ;//[nb_inst_memory]
    106108  public    : SC_IN (Tcontrol_t        )   **  in_MEMORY_IN_HAS_IMMEDIAT         ;//[nb_inst_memory]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Types.h

    r119 r122  
    7373//public    : Tgeneral_address_t   _num_reg_rd          ;
    7474  public    : Texception_t         _exception           ;
     75  public    : bool                 _send_commit         ;
    7576
    7677    friend std::ostream & operator << (std::ostream& os, const Tstore_queue_entry_t & x)
     
    112113  public    : Tlsq_ptr_t                         _load_queue_ptr_write ;
    113114  public    : Tlsq_ptr_t                         _store_queue_ptr_write;
     115  public    : Tlsq_ptr_t                         _store_queue_ptr_read ;
     116  public    : Tcontrol_t                         _store_queue_empty    ;
    114117  public    : Tdcache_address_t                  _address              ;
    115118  public    : Tcontrol_t                         _write_rd             ;
     
    123126                << "   * context, front_end, ooo_engine_id : " << toString(x._context_id) << " - " << toString(x._front_end_id) << " - " << toString(x._ooo_engine_id) << std::endl
    124127                << "   * operation                         : " << toString(x._operation) << std::endl
    125                 << "   * load, store ptr_write             : " << toString(x._load_queue_ptr_write) << " - " << toString(x._store_queue_ptr_write) << std::endl
     128                << "   * load, store ptr_(write/read) empty: " << toString(x._load_queue_ptr_write) << " - " << toString(x._store_queue_ptr_write) << " - " << toString(x._store_queue_ptr_read) << " - " << toString(x._store_queue_empty) << std::endl
    126129                << "   * exception                         : " << toString(x._exception) << std::endl
    127130                << std::hex
     
    166169  public    : Toperation_t         _operation        ;
    167170  public    : Tlsq_ptr_t           _store_queue_ptr_write;
     171  public    : Tlsq_ptr_t           _store_queue_ptr_read ;
     172  public    : Tcontrol_t           _store_queue_empty    ;
    168173  public    : Tdcache_address_t    _address          ;
    169174  public    : Tdcache_address_t    _check_hit_byte   ;
     
    183188                << "   * context, front_end, ooo_engine_id : " << toString(x._context_id) << " - " << toString(x._front_end_id) << " - " << toString(x._ooo_engine_id) << std::endl
    184189                << "   * operation                         : " << toString(x._operation) << std::endl
    185                 << "   * store_queue_ptr_write             : " << toString(x._store_queue_ptr_write) << std::endl
     190                << "   * store_queue ptr_(write,read) empty: " << toString(x._store_queue_ptr_write) << " - " << toString(x._store_queue_ptr_read) << " - " << toString(x._store_queue_empty) <<std::endl
    186191                << "   * exception                         : " << toString(x._exception) << std::endl
    187192                << "   * check_hit, check_hit_byte         : " << toString(x._check_hit) << " - " << toString(x._check_hit_byte) << std::endl
Note: See TracChangeset for help on using the changeset viewer.