Ignore:
Timestamp:
May 20, 2014, 2:43:42 PM (10 years ago)
Author:
haoliu
Message:

MESI: Adding the counters in the vci_mem_cache component to analyse the performance.

File:
1 edited

Legend:

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

    r686 r700  
    290290        CAS_DIR_HIT_COMPARE,
    291291        CAS_DIR_HIT_WRITE,
    292         CAS_MULTI_INVAL_IVT_LOCK,
     292        CAS_INVAL_IVT_LOCK,
    293293        CAS_WAIT,
    294294        CAS_MULTI_INVAL_HEAP_LOCK,
     
    296296        CAS_HEAP_NEXT,
    297297        CAS_HEAP_LAST,
    298         CAS_BC_TRT_LOCK,
    299         CAS_BC_IVT_LOCK,
    300         CAS_BC_DIR_INVAL,
    301         CAS_BC_CC_SEND,
    302         CAS_BC_XRAM_REQ,
    303298        CAS_RSP_FAIL,
    304299        CAS_RSP_SUCCESS,
     
    361356      };
    362357
    363 //      /* States of the ALLOC_UPT fsm */
    364 //      enum alloc_upt_fsm_state_e
    365 //      {
    366 //        ALLOC_UPT_WRITE,
    367 //        ALLOC_UPT_CAS,
    368 //        ALLOC_UPT_MULTI_ACK
    369 //      };
    370 //
    371358      /* States of the ALLOC_IVT fsm */
    372359      enum alloc_ivt_fsm_state_e
     
    435422      // Counters accessible in software (not yet but eventually)
    436423      uint32_t     m_cpt_reset_count;    // Last cycle at which counters have been reset
    437       uint32_t     m_cpt_read_local;     // Number of local READ transactions
    438       uint32_t     m_cpt_read_remote;    // number of remote READ transactions
    439       uint32_t     m_cpt_read_cost;      // Number of (flits * distance) for READs
     424      uint32_t     m_cpt_read_miss_local;     // Number of local READ transactions
     425      uint32_t     m_cpt_read_miss_remote;    // number of remote READ transactions
     426      uint32_t     m_cpt_read_miss_cost;      // Number of (flits * distance) for READs
     427
     428      uint32_t     m_cpt_getm_miss_local;     // Number of local getm miss  transactions
     429      uint32_t     m_cpt_getm_miss_remote;    // number of remote getm miss transactions
     430
     431      uint32_t     m_cpt_getm_hit_local;     // Number of local getm hit transactions
     432      uint32_t     m_cpt_getm_hit_remote;    // number of remote getm hit transactions
     433      uint32_t     m_cpt_getm_cost;          // Number of (flits * distance) for getm
    440434
    441435      uint32_t     m_cpt_write_local;    // Number of local WRITE transactions
     
    471465      uint32_t     m_cpt_cleanup_local;  // Number of local CLEANUP transactions
    472466      uint32_t     m_cpt_cleanup_remote; // Number of remote CLEANUP transactions
     467      uint32_t     m_cpt_cleanup_with_data;
    473468      uint32_t     m_cpt_cleanup_cost;   // Number of (flits * distance) for CLEANUPs
    474469
     470      uint32_t     m_cpt_multi_ack_miss;  // Number of local CLEANUP transactions
     471      uint32_t     m_cpt_multi_ack_hit;   // Number of local CLEANUP transactions
     472      uint32_t     m_cpt_multi_ack_hit_with_data; // Number of remote CLEANUP transactions
     473   
    475474      // Counters not accessible by software
    476475      uint32_t     m_cpt_read_miss;      // Number of MISS READ
    477       uint32_t     m_cpt_write_miss;    // Number of MISS WRITE
    478       uint32_t     m_cpt_write_dirty;   // Cumulated length for WRITE transactions
     476      uint32_t     m_cpt_getm_miss;      // Number of getm miss
     477      uint32_t     m_cpt_getm_broadcast; // Number of BROADCAST INVAL because getm
     478      uint32_t     m_cpt_getm_minval;    // Number of MULTI INVAL because getm
     479      uint32_t     m_cpt_write_miss;     // Number of MISS WRITE
     480      uint32_t     m_cpt_write_dirty;    // Cumulated length for WRITE transactions
    479481      uint32_t     m_cpt_write_broadcast;// Number of BROADCAST INVAL because write
     482      uint32_t     m_cpt_write_minval;   // Number of MULTI INVAL because write
     483      uint32_t     m_cpt_cas_broadcast;  // Number of BROADCAST INVAL because cas
     484      uint32_t     m_cpt_cas_minval;     // Number of MULTI INVAL because cas
     485      uint32_t     m_cpt_cas_miss;
     486
     487      uint32_t     m_cpt_read_locked_rb; // Read blocked by a locked ligne
     488      uint32_t     m_cpt_cas_locked_rb;       // cas  blocked by a locked ligne
     489      uint32_t     m_cpt_write_locked_rb;     // wt   blocked by a locked ligne
    480490
    481491      uint32_t     m_cpt_trt_rb;        // Read blocked by a hit in trt
     
    492502      uint32_t     m_cpt_cleanup_fsm_dir_lock;     // wait DIR LOCK
    493503      uint32_t     m_cpt_cleanup_fsm_n_dir_lock;   // NB DIR LOCK
    494      
     504      uint32_t     m_cpt_multi_ack_fsm_dir_lock;     // wait DIR LOCK
     505      uint32_t     m_cpt_multi_ack_fsm_n_dir_lock;   // NB DIR LOCK
     506
    495507      uint32_t     m_cpt_dir_unused;            // NB cycles DIR LOCK unused
    496508      uint32_t     m_cpt_read_fsm_dir_used;     // NB cycles DIR LOCK used
     
    499511      uint32_t     m_cpt_xram_rsp_fsm_dir_used; // NB cycles DIR LOCK used
    500512      uint32_t     m_cpt_cleanup_fsm_dir_used;  // NB cycles DIR LOCK used
     513      uint32_t     m_cpt_multi_ack_fsm_dir_used;  // NB cycles DIR LOCK used
    501514
    502515      uint32_t     m_cpt_read_fsm_trt_lock;      // wait TRT LOCK
     
    510523      uint32_t     m_cpt_cas_fsm_n_trt_lock;       // NB TRT LOCK
    511524      uint32_t     m_cpt_xram_rsp_fsm_n_trt_lock;  // NB TRT LOCK
    512       uint32_t     m_cpt_ixr_fsm_n_trt_lock;       // NB TRT LOCK
     525      uint32_t     m_cpt_ixr_cmd_fsm_n_trt_lock;   // NB TRT LOCK
     526      uint32_t     m_cpt_ixr_rsp_fsm_n_trt_lock;   // NB TRT LOCK
    513527
    514528      uint32_t     m_cpt_read_fsm_trt_used;      // NB cycles TRT LOCK used
     
    516530      uint32_t     m_cpt_cas_fsm_trt_used;       // NB cycles TRT LOCK used
    517531      uint32_t     m_cpt_xram_rsp_fsm_trt_used;  // NB cycles TRT LOCK used
    518       uint32_t     m_cpt_ixr_fsm_trt_used;       // NB cycles TRT LOCK used
     532      uint32_t     m_cpt_ixr_cmd_fsm_trt_used;   // NB cycles TRT LOCK used
     533      uint32_t     m_cpt_ixr_rsp_fsm_trt_used;   // NB cycles TRT LOCK used
     534      uint32_t     m_cpt_cleanup_fsm_trt_used;   // NB cycles TRT LOCK used
    519535     
    520536      uint32_t     m_cpt_trt_unused;            // NB cycles TRT LOCK unused
    521537
    522       uint32_t     m_cpt_write_fsm_upt_lock;     // wait UPT LOCK
    523       uint32_t     m_cpt_xram_rsp_fsm_upt_lock;  // wait UPT LOCK
    524       uint32_t     m_cpt_multi_ack_fsm_upt_lock; // wait UPT LOCK
    525       uint32_t     m_cpt_cleanup_fsm_ivt_lock;   // wait UPT LOCK
    526       uint32_t     m_cpt_cas_fsm_upt_lock;       // wait UPT LOCK
     538      uint32_t     m_cpt_cleanup_fsm_ivt_lock;   // wait ivt LOCK
     539      uint32_t     m_cpt_cleanup_fsm_n_ivt_lock;   // NB cycles UPT LOCK used
    527540     
    528       uint32_t     m_cpt_write_fsm_n_upt_lock;     // NB UPT LOCK
    529       uint32_t     m_cpt_xram_rsp_fsm_n_upt_lock;  // NB UPT LOCK
    530       uint32_t     m_cpt_multi_ack_fsm_n_upt_lock; // NB UPT LOCK
    531       uint32_t     m_cpt_cleanup_fsm_n_upt_lock;   // NB UPT LOCK
    532       uint32_t     m_cpt_cas_fsm_n_upt_lock;       // NB UPT LOCK
    533      
    534       uint32_t     m_cpt_write_fsm_upt_used;     // NB cycles UPT LOCK used
    535       uint32_t     m_cpt_xram_rsp_fsm_upt_used;  // NB cycles UPT LOCK used
    536       uint32_t     m_cpt_multi_ack_fsm_upt_used; // NB cycles UPT LOCK used
    537       uint32_t     m_cpt_cleanup_fsm_ivt_used;   // NB cycles UPT LOCK used
    538       uint32_t     m_cpt_cas_fsm_upt_used;       // NB cycles UPT LOCK used
    539      
     541      uint32_t     m_cpt_multi_ack_fsm_ivt_lock;   // wait ivt LOCK
     542      uint32_t     m_cpt_multi_ack_fsm_n_ivt_lock;   // NB cycles UPT LOCK used
     543
    540544      uint32_t     m_cpt_ivt_unused;            // NB cycles UPT LOCK unused
    541       uint32_t     m_cpt_upt_unused;            // NB cycles UPT LOCK unused
    542545
    543546      uint32_t     m_cpt_read_fsm_heap_lock;     // wait HEAP LOCK
     
    546549      uint32_t     m_cpt_cleanup_fsm_heap_lock;  // wait HEAP LOCK
    547550      uint32_t     m_cpt_xram_rsp_fsm_heap_lock; // wait HEAP LOCK
     551      uint32_t     m_cpt_multi_ack_fsm_heap_lock; // wait HEAP LOCK
    548552     
    549553      uint32_t     m_cpt_read_fsm_n_heap_lock;     // NB HEAP LOCK
     
    552556      uint32_t     m_cpt_cleanup_fsm_n_heap_lock;  // NB HEAP LOCK
    553557      uint32_t     m_cpt_xram_rsp_fsm_n_heap_lock; // NB HEAP LOCK
     558      uint32_t     m_cpt_multi_ack_fsm_n_heap_lock; // NB HEAP LOCK
    554559     
    555560      uint32_t     m_cpt_read_fsm_heap_used;     // NB cycles HEAP LOCK used
     
    558563      uint32_t     m_cpt_cleanup_fsm_heap_used;  // NB cycles HEAP LOCK used
    559564      uint32_t     m_cpt_xram_rsp_fsm_heap_used; // NB cycles HEAP LOCK used
     565      uint32_t     m_cpt_multi_ack_fsm_heap_used; // NB cycles HEAP LOCK used
    560566     
    561567      uint32_t     m_cpt_heap_unused;            // NB cycles HEAP LOCK unused
    562 
    563       //RWT
    564       uint32_t     m_cpt_cleanup_data;   
    565       uint32_t     m_cpt_ncc_to_cc_read;         // NB change from NCC to CC caused by a READ
    566       uint32_t     m_cpt_ncc_to_cc_write;        // NB change from NCC to CC caused by a WRITE
    567       uint32_t     m_cpt_ncc_to_cc;              // NB change from NCC to CC
    568 
    569       uint32_t     m_cpt_read_data_unc;
    570       uint32_t     m_cpt_read_data_miss_CC;
    571       uint32_t     m_cpt_read_ins_unc;
    572       uint32_t     m_cpt_read_ins_miss;
    573       uint32_t     m_cpt_read_ll_CC;
    574       uint32_t     m_cpt_read_data_miss_NCC;
    575       uint32_t     m_cpt_read_ll_NCC;
    576       uint32_t     m_cpt_read_WTF;
    577 
    578       uint32_t     m_cpt_update_flits;  // Number of flits for UPDATEs
    579       uint32_t     m_cpt_inval_cost;    // Number of (flits * distance) for INVALs
    580 
    581       uint32_t     m_cpt_get;
    582       uint32_t     m_cpt_put;
    583 
    584       size_t       m_prev_count;
     568      uint32_t     m_cpt_slot_inval;           
    585569
    586570      protected:
Note: See TracChangeset for help on using the changeset viewer.