Ignore:
Timestamp:
Apr 10, 2013, 12:54:31 PM (12 years ago)
Author:
cfuguet
Message:

Bugfix in vci_mem_cache_v4:

In function "copy()" of the xram_transaction table the LL key was not
copied into register. Hence, the key coming from the XRAM_RSP to the
TGT_RSP FSM was never correct.

In TGT_RSP FSM, in case of LL response, the two response flits were
inverted. We must send first the key and then the data.

Add:

Add the COMPARE_HIT_COMPARE state in the CAS FSM to optimize timing.
(This modification has been already done in the vci_mem_cache v5).

Add output ports for debug. This ports are used only if the
MONITOR_MEMCACHE_FSM compilation directive is gave.

Location:
trunk/modules/vci_mem_cache_v4/caba/source/include
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/vci_mem_cache_v4/caba/source/include/vci_mem_cache_v4.h

    r291 r361  
    2929 *              alexandre.joannou@lip6.fr
    3030 *
    31  * Modifications done by Christophe Choichillon on the 7/04/2009:
    32  * - Adding new states in the CLEANUP FSM : CLEANUP_UPT_LOCK and CLEANUP_UPT_WRITE
    33  * - Adding a new VCI target port for the CLEANUP network
    34  * - Adding new state in the ALLOC_UPT_FSM : ALLOC_UPT_CLEANUP
    35  *
    36  * Modifications to do :
    37  * - Adding new variables used by the CLEANUP FSM
    38  *
    3931 */
    4032
     
    10698        INIT_CMD_INVAL_NLINE,
    10799        INIT_CMD_XRAM_BRDCAST,
     100        INIT_CMD_WRITE_BRDCAST,
     101        INIT_CMD_CAS_BRDCAST,
    108102        INIT_CMD_UPDT_IDLE,
    109         INIT_CMD_WRITE_BRDCAST,
    110103        INIT_CMD_UPDT_NLINE,
    111104        INIT_CMD_UPDT_INDEX,
    112105        INIT_CMD_UPDT_DATA,
    113106        INIT_CMD_CAS_UPDT_IDLE,
    114         INIT_CMD_CAS_BRDCAST,
    115107        INIT_CMD_CAS_UPDT_NLINE,
    116108        INIT_CMD_CAS_UPDT_INDEX,
     
    215207        CAS_DIR_LOCK,
    216208        CAS_DIR_HIT_READ,
     209        CAS_DIR_HIT_COMPARE,
    217210        CAS_DIR_HIT_WRITE,
    218211        CAS_UPT_LOCK,
     
    372365      soclib::caba::VciInitiator<vci_param> p_vci_ixr;
    373366
     367#if MONITOR_MEMCACHE_FSM
     368      sc_out<int>                           p_read_fsm;
     369      sc_out<int>                           p_write_fsm;
     370      sc_out<int>                           p_xram_rsp_fsm;
     371      sc_out<int>                           p_cas_fsm;
     372      sc_out<int>                           p_cleanup_fsm;
     373      sc_out<int>                           p_alloc_heap_fsm;
     374      sc_out<int>                           p_alloc_dir_fsm;
     375      sc_out<int>                           p_alloc_trt_fsm;
     376      sc_out<int>                           p_alloc_upt_fsm;
     377      sc_out<int>                           p_tgt_cmd_fsm;
     378      sc_out<int>                           p_tgt_rsp_fsm;
     379      sc_out<int>                           p_ixr_cmd_fsm;
     380      sc_out<int>                           p_ixr_rsp_fsm;
     381      sc_out<int>                           p_init_cmd_fsm;
     382      sc_out<int>                           p_init_rsp_fsm;
     383#endif
     384                                                       
    374385      VciMemCacheV4(
    375386          sc_module_name name,                                // Instance Name
     
    660671      sc_signal<size_t>   r_cas_trt_index;  // Transaction Table index
    661672      sc_signal<size_t>   r_cas_upt_index;  // Update Table index
     673      sc_signal<data_t> * r_cas_data;       // cache line data
    662674
    663675      // Buffer between CAS fsm and INIT_CMD fsm (XRAM read)
     
    770782      sc_signal<int>      r_tgt_rsp_fsm;
    771783      sc_signal<size_t>   r_tgt_rsp_cpt;
     784      sc_signal<bool>     r_tgt_rsp_key_sent;
    772785
    773786      ////////////////////////////////////////////////////
  • trunk/modules/vci_mem_cache_v4/caba/source/include/xram_transaction_v4.h

    r291 r361  
    7878        wdata.assign(source.wdata.begin(),source.wdata.end());
    7979        rerror      = source.rerror;
     80        ll_key      = source.ll_key;
    8081    }
    8182
Note: See TracChangeset for help on using the changeset viewer.