Ignore:
Timestamp:
Jul 17, 2013, 10:54:07 AM (11 years ago)
Author:
cfuguet
Message:

Modifications in branches/v5/vci_mem_cache:

  • Changing name of CC DSPIN ports: + p_dspin_in => p_dspin_p2m + p_dspin_out => p_dspin_m2p
  • Splitting the Update Table in two tables: + UPT (Update Table): Stores the MULTI-UPDATE transactions + IVT (Invalidate Table): Stores the MULTI/BROADCAST INVALIDATE

transactions

Each table has its own allocator FSM: r_alloc_upt and r_alloc_ivt

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/v5/modules/vci_mem_cache/caba/source/include/vci_mem_cache.h

    r440 r441  
    5454#define TRT_ENTRIES      4      // Number of entries in TRT
    5555#define UPT_ENTRIES      4      // Number of entries in UPT
     56#define IVT_ENTRIES      4      // Number of entries in IVT
    5657#define HEAP_ENTRIES     1024   // Number of entries in HEAP
    5758
     
    165166        CONFIG_DIR_REQ,
    166167        CONFIG_DIR_ACCESS,
    167         CONFIG_DIR_UPT_LOCK,
     168        CONFIG_DIR_IVT_LOCK,
    168169        CONFIG_BC_SEND,
    169170        CONFIG_BC_WAIT,
     
    213214        WRITE_MISS_XRAM_REQ,
    214215        WRITE_BC_TRT_LOCK,
    215         WRITE_BC_UPT_LOCK,
     216        WRITE_BC_IVT_LOCK,
    216217        WRITE_BC_DIR_INVAL,
    217218        WRITE_BC_CC_SEND,
     
    276277        CAS_UPT_NEXT,
    277278        CAS_BC_TRT_LOCK,
    278         CAS_BC_UPT_LOCK,
     279        CAS_BC_IVT_LOCK,
    279280        CAS_BC_DIR_INVAL,
    280281        CAS_BC_CC_SEND,
     
    301302        CLEANUP_HEAP_CLEAN,
    302303        CLEANUP_HEAP_FREE,
    303         CLEANUP_UPT_LOCK,
    304         CLEANUP_UPT_DECREMENT,
    305         CLEANUP_UPT_CLEAR,
     304        CLEANUP_IVT_LOCK,
     305        CLEANUP_IVT_DECREMENT,
     306        CLEANUP_IVT_CLEAR,
    306307        CLEANUP_WRITE_RSP,
    307308        CLEANUP_CONFIG_ACK,
     
    334335      enum alloc_upt_fsm_state_e
    335336      {
    336         ALLOC_UPT_CONFIG,
    337337        ALLOC_UPT_WRITE,
    338         ALLOC_UPT_XRAM_RSP,
    339         ALLOC_UPT_MULTI_ACK,
    340         ALLOC_UPT_CLEANUP,
    341         ALLOC_UPT_CAS
     338        ALLOC_UPT_CAS,
     339        ALLOC_UPT_MULTI_ACK
     340      };
     341
     342      /* States of the ALLOC_IVT fsm */
     343      enum alloc_ivt_fsm_state_e
     344      {
     345        ALLOC_IVT_WRITE,
     346        ALLOC_IVT_XRAM_RSP,
     347        ALLOC_IVT_CLEANUP,
     348        ALLOC_IVT_CAS,
     349        ALLOC_IVT_CONFIG
    342350      };
    343351
     
    450458      soclib::caba::VciTarget<vci_param_int>      p_vci_tgt;
    451459      soclib::caba::VciInitiator<vci_param_ext>   p_vci_ixr;
    452       soclib::caba::DspinInput<dspin_in_width>    p_dspin_in;
    453       soclib::caba::DspinOutput<dspin_out_width>  p_dspin_out;
     460      soclib::caba::DspinInput<dspin_in_width>    p_dspin_p2m;
     461      soclib::caba::DspinOutput<dspin_out_width>  p_dspin_m2p;
     462      soclib::caba::DspinOutput<dspin_out_width>  p_dspin_clack;
    454463
    455464      VciMemCache(
     
    467476          const size_t                       trt_lines=TRT_ENTRIES,
    468477          const size_t                       upt_lines=UPT_ENTRIES,     
     478          const size_t                       ivt_lines=IVT_ENTRIES,     
    469479          const size_t                       debug_start_cycle=0,
    470480          const bool                         debug_ok=false );
     
    501511      TransactionTab                     m_trt;              // xram transaction table
    502512      uint32_t                           m_upt_lines;
    503       UpdateTab                          m_upt;              // pending update & invalidate
     513      UpdateTab                          m_upt;              // pending update
     514      UpdateTab                          m_ivt;              // pending invalidate
    504515      CacheDirectory                     m_cache_directory;  // data cache directory
    505516      CacheData                          m_cache_data;       // data array[set][way][word]
     
    590601      sc_signal<size_t>   r_config_heap_next;      // current pointer to scan HEAP
    591602
    592       sc_signal<size_t>   r_config_upt_index;  // UPT index
     603      sc_signal<size_t>   r_config_ivt_index;      // IVT index
    593604
    594605      // Buffer between CONFIG fsm and TGT_RSP fsm (send a done response to L1 cache)
     
    871882      sc_signal<size_t>   r_xram_rsp_victim_ptr;        // victim line pointer to the heap
    872883      sc_signal<data_t> * r_xram_rsp_victim_data;       // victim line data
    873       sc_signal<size_t>   r_xram_rsp_upt_index;         // UPT entry index
     884      sc_signal<size_t>   r_xram_rsp_ivt_index;         // IVT entry index
    874885      sc_signal<size_t>   r_xram_rsp_next_ptr;          // Next pointer to the heap
    875886
     
    952963
    953964      ////////////////////////////////////////////////////
     965      // Registers controlled by ALLOC_IVT fsm
     966      ////////////////////////////////////////////////////
     967
     968      sc_signal<int>      r_alloc_ivt_fsm;
     969
     970      ////////////////////////////////////////////////////
    954971      // Registers controlled by ALLOC_HEAP fsm
    955972      ////////////////////////////////////////////////////
Note: See TracChangeset for help on using the changeset viewer.