Ignore:
Timestamp:
Aug 30, 2013, 6:28:10 PM (11 years ago)
Author:
meunier
Message:
  • Added activity counters to the vci_mem_cache
  • Modified the print_trace function accordingly
  • Refactored code in vci_mem_cache because there was a mix of 2-space and 4-space indentation
  • Modified topcell to factorize ALMOS specifications
File:
1 edited

Legend:

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

    r499 r504  
    404404
    405405      // instrumentation counters
    406       uint32_t     m_cpt_cycles;        // Counter of cycles
    407 
    408       uint32_t     m_cpt_read;          // Number of READ transactions
    409       uint32_t     m_cpt_read_remote;   // number of remote READ transactions
    410       uint32_t     m_cpt_read_flits;    // number of flits for READs
    411       uint32_t     m_cpt_read_cost;     // Number of (flits * distance) for READs
    412 
    413       uint32_t     m_cpt_read_miss;     // Number of MISS READ
    414 
    415       uint32_t     m_cpt_write;         // Number of WRITE transactions
    416       uint32_t     m_cpt_write_remote;  // number of remote WRITE transactions
    417       uint32_t     m_cpt_write_flits;   // number of flits for WRITEs
    418       uint32_t     m_cpt_write_cost;    // Number of (flits * distance) for WRITEs
    419 
    420       uint32_t     m_cpt_write_miss;    // Number of MISS WRITE
    421       uint32_t     m_cpt_write_cells;   // Cumulated length for WRITE transactions
    422       uint32_t     m_cpt_write_dirty;   // Cumulated length for WRITE transactions
    423       uint32_t     m_cpt_update;        // Number of UPDATE transactions
    424       uint32_t     m_cpt_trt_rb;        // Read blocked by a hit in trt
    425       uint32_t     m_cpt_trt_full;      // Transaction blocked due to a full trt
    426       uint32_t     m_cpt_update_mult;   // Number of targets for UPDATE
    427       uint32_t     m_cpt_inval;         // Number of INVAL  transactions
    428       uint32_t     m_cpt_inval_mult;    // Number of targets for INVAL
    429       uint32_t     m_cpt_inval_brdcast; // Number of BROADCAST INVAL
    430       uint32_t     m_cpt_cleanup;       // Number of CLEANUP transactions
    431       uint32_t     m_cpt_ll;            // Number of LL transactions
    432       uint32_t     m_cpt_sc;            // Number of SC transactions
    433       uint32_t     m_cpt_cas;           // Number of CAS transactions
    434 
    435       uint32_t     m_cpt_cleanup_cost;  // Number of (flits * distance) for CLEANUPs
    436 
    437       uint32_t     m_cpt_update_flits;  // Number of flits for UPDATEs
    438       uint32_t     m_cpt_update_cost;   // Number of (flits * distance) for UPDATEs
    439 
    440       uint32_t     m_cpt_inval_cost;    // Number of (flits * distance) for INVALs
     406      uint32_t     m_cpt_cycles;         // Counter of cycles
     407
     408      // Counters accessible in software (not yet but eventually)
     409      uint32_t     m_cpt_read_local;     // Number of local READ transactions
     410      uint32_t     m_cpt_read_remote;    // number of remote READ transactions
     411      uint32_t     m_cpt_read_cost;      // Number of (flits * distance) for READs
     412
     413      uint32_t     m_cpt_write_local;    // Number of local WRITE transactions
     414      uint32_t     m_cpt_write_remote;   // number of remote WRITE transactions
     415      uint32_t     m_cpt_write_flits_local;  // number of flits for local WRITEs
     416      uint32_t     m_cpt_write_flits_remote; // number of flits for remote WRITEs
     417      uint32_t     m_cpt_write_cost;     // Number of (flits * distance) for WRITEs
     418
     419      uint32_t     m_cpt_ll_local;       // Number of local LL transactions
     420      uint32_t     m_cpt_ll_remote;      // number of remote LL transactions
     421      uint32_t     m_cpt_ll_cost;        // Number of (flits * distance) for LLs
     422
     423      uint32_t     m_cpt_sc_local;       // Number of local SC transactions
     424      uint32_t     m_cpt_sc_remote;      // number of remote SC transactions
     425      uint32_t     m_cpt_sc_cost;        // Number of (flits * distance) for SCs
     426
     427      uint32_t     m_cpt_cas_local;      // Number of local SC transactions
     428      uint32_t     m_cpt_cas_remote;     // number of remote SC transactions
     429      uint32_t     m_cpt_cas_cost;       // Number of (flits * distance) for SCs
     430
     431      uint32_t     m_cpt_update;         // Number of requests causing an UPDATE
     432      uint32_t     m_cpt_update_local;   // Number of local UPDATE transactions
     433      uint32_t     m_cpt_update_remote;  // Number of remote UPDATE transactions
     434      uint32_t     m_cpt_update_cost;    // Number of (flits * distance) for UPDT
     435
     436      uint32_t     m_cpt_m_inval;        // Number of requests causing M_INV
     437      uint32_t     m_cpt_m_inval_local;  // Number of local M_INV transactions
     438      uint32_t     m_cpt_m_inval_remote; // Number of remote M_INV transactions
     439      uint32_t     m_cpt_m_inval_cost;   // Number of (flits * distance) for M_INV
     440
     441      uint32_t     m_cpt_br_inval;       // Number of BROADCAST INVAL
     442
     443      uint32_t     m_cpt_cleanup_local;  // Number of local CLEANUP transactions
     444      uint32_t     m_cpt_cleanup_remote; // Number of remote CLEANUP transactions
     445      uint32_t     m_cpt_cleanup_cost;   // Number of (flits * distance) for CLEANUPs
     446
     447      // Counters not accessible by software
     448      uint32_t     m_cpt_read_miss;      // Number of MISS READ
     449      uint32_t     m_cpt_write_miss;     // Number of MISS WRITE
     450      uint32_t     m_cpt_write_dirty;    // Cumulated length for WRITE transactions
     451
     452      uint32_t     m_cpt_trt_rb;         // Read blocked by a hit in trt
     453      uint32_t     m_cpt_trt_full;       // Transaction blocked due to a full trt
    441454
    442455      uint32_t     m_cpt_get;
    443 
    444456      uint32_t     m_cpt_put;
    445457
     
    466478          const soclib::common::IntTab       &tgtid_d,        // global index INT network
    467479          const size_t                       cc_global_id,    // global index CC network
     480          const size_t                       x_width,         // X width in platform
     481          const size_t                       y_width,         // Y width in platform
    468482          const size_t                       nways,           // Number of ways per set
    469483          const size_t                       nsets,           // Number of sets
     
    479493      ~VciMemCache();
    480494
    481       void print_stats();
     495      void print_stats(bool activity_counters, bool stats);
    482496      void print_trace();
    483497      void cache_monitor(addr_t addr);
     
    490504      void genMoore();
    491505      void check_monitor(addr_t addr, data_t data, bool read);
     506      uint32_t req_distance(uint32_t req_srcid);
     507      bool is_local_req(uint32_t req_srcid);
    492508
    493509      // Component attributes
     
    503519      const size_t                       m_words;            // Number of words in a line
    504520      const size_t                       m_cc_global_id;     // global_index on cc network
     521      const size_t                       m_xwidth;           // number of x bits in platform
     522      const size_t                       m_ywidth;           // number of y bits in platform
    505523      size_t                             m_debug_start_cycle;
    506524      bool                               m_debug_ok;
Note: See TracChangeset for help on using the changeset viewer.