Changeset 719 for branches


Ignore:
Timestamp:
Jun 24, 2014, 5:30:03 PM (10 years ago)
Author:
haoliu
Message:

MESI: some modifications have been done for the MESI protocol in MAY for

some counters have been updated in component memcache and cc_vcache
fixed a bug in memcache (in WRITE FSM)

Location:
branches/MESI/modules
Files:
4 edited

Legend:

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

    r700 r719  
    774774    uint32_t m_cpt_data_tlb_inval;             // number of data tlb invalidate
    775775
     776    uint32_t m_cpt_data_miss_clean;
     777    uint32_t m_cpt_data_miss_clean_pte;
     778    uint32_t m_cpt_data_miss_clean_ptd;
     779    uint32_t m_cpt_miss_tlb;
     780    uint32_t m_cpt_dcache_miss_pte;
     781
    776782    // FSM activity counters
    777783    uint32_t m_cpt_fsm_icache     [64];
  • branches/MESI/modules/vci_cc_vcache_wrapper/caba/source/src/vci_cc_vcache_wrapper.cpp

    r700 r719  
    597597////////////////////////
    598598{
    599     float run_cycles = (float)(m_cpt_total_cycles - m_cpt_frz_cycles);
     599    //float run_cycles = (float)(m_cpt_total_cycles - m_cpt_frz_cycles);
    600600    std::cout << name() << std::endl
    601         << "- CPI                     = " << std::dec <<(float)m_cpt_total_cycles/run_cycles << std::endl
    602         << "- READ RATE               = " << (float)m_cpt_data_read/run_cycles << std::endl
    603         << "- WRITE RATE              = " << (float)m_cpt_data_write/run_cycles << std::endl
    604         << "- IMISS_RATE              = " << (float)m_cpt_ins_miss/m_cpt_ins_read << std::endl
    605         << "- DMISS RATE              = " << (float)m_cpt_data_miss/(m_cpt_data_read-m_cpt_unc_read) << std::endl
    606         << "- INS MISS COST           = " << (float)m_cost_ins_miss_frz/m_cpt_ins_miss << std::endl
    607         << "- DATA MISS COST          = " << (float)m_cost_data_miss_frz/m_cpt_data_miss << std::endl
    608         << "- WRITE COST              = " << (float)m_cost_write_frz/m_cpt_data_write << std::endl
    609         << "- UNC COST                = " << (float)m_cost_unc_read_frz/m_cpt_unc_read << std::endl
    610         << "- UNCACHED READ RATE      = " << (float)m_cpt_unc_read/m_cpt_data_read << std::endl
    611         << "- CACHED WRITE RATE       = " << (float)m_cpt_write_cached/m_cpt_data_write << std::endl
    612         << "- INS TLB MISS RATE       = " << (float)m_cpt_ins_tlb_miss/m_cpt_ins_tlb_read << std::endl
    613         << "- DATA TLB MISS RATE      = " << (float)m_cpt_data_tlb_miss/m_cpt_data_tlb_read << std::endl
    614         << "- ITLB MISS COST          = " << (float)m_cost_ins_tlb_miss_frz/m_cpt_ins_tlb_miss << std::endl
    615         << "- DTLB MISS COST          = " << (float)m_cost_data_tlb_miss_frz/m_cpt_data_tlb_miss << std::endl
    616         << "- ITLB UPDATE ACC COST    = " << (float)m_cost_ins_tlb_update_acc_frz/m_cpt_ins_tlb_update_acc << std::endl
    617         << "- DTLB UPDATE ACC COST    = " << (float)m_cost_data_tlb_update_acc_frz/m_cpt_data_tlb_update_acc << std::endl
    618         << "- DTLB UPDATE DIRTY COST  = " << (float)m_cost_data_tlb_update_dirty_frz/m_cpt_data_tlb_update_dirty << std::endl
    619         << "- ITLB HIT IN DCACHE RATE = " << (float)m_cpt_ins_tlb_hit_dcache/m_cpt_ins_tlb_miss << std::endl
    620         << "- DTLB HIT IN DCACHE RATE = " << (float)m_cpt_data_tlb_hit_dcache/m_cpt_data_tlb_miss << std::endl
    621         //<< "- DCACHE FROZEN BY ITLB   = " << (float)m_cost_ins_tlb_occup_cache_frz/m_cpt_dcache_frz_cycles << std::endl
    622         << "- DCACHE FOR TLB %        = " << (float)m_cpt_tlb_occup_dcache/(m_dcache_ways*m_dcache_sets) << std::endl
    623         << "- NB CC BROADCAST         = " << m_cpt_cc_broadcast << std::endl
    624         << "- NB CC UPDATE DATA       = " << m_cpt_cc_update_dcache << std::endl
    625         << "- NB CC INVAL DATA        = " << m_cpt_cc_inval_dcache << std::endl
    626         << "- NB CC INVAL INS         = " << m_cpt_cc_inval_icache << std::endl
    627         << "- CC BROADCAST COST       = " << (float)m_cost_broadcast_frz/m_cpt_cc_broadcast << std::endl
    628         << "- CC UPDATE DATA COST     = " << (float)m_cost_updt_data_frz/m_cpt_cc_update_dcache << std::endl
    629         << "- CC INVAL DATA COST      = " << (float)m_cost_inval_data_frz/m_cpt_cc_inval_dcache << std::endl
    630         << "- CC INVAL INS COST       = " << (float)m_cost_inval_ins_frz/m_cpt_cc_inval_icache << std::endl
    631         << "- NB CC CLEANUP DATA      = " << m_cpt_cc_cleanup_data << std::endl
    632         << "- NB CC CLEANUP INS       = " << m_cpt_cc_cleanup_ins << std::endl
    633         << "- IMISS TRANSACTION       = " << (float)m_cost_imiss_transaction/m_cpt_imiss_transaction << std::endl
    634         << "- DMISS TRANSACTION       = " << (float)m_cost_dmiss_transaction/m_cpt_dmiss_transaction << std::endl
    635         << "- UNC TRANSACTION         = " << (float)m_cost_unc_transaction/m_cpt_unc_transaction << std::endl
    636         << "- WRITE TRANSACTION       = " << (float)m_cost_write_transaction/m_cpt_write_transaction << std::endl
    637         << "- NB WRITE TRANSACTION    = " << m_cpt_write_transaction << std::endl
    638         << "- NB WRITE WORDS VCI      = " << m_length_write_transaction << std::endl
    639         << "- NB WRITE PROC           = " << m_cpt_data_write << std::endl
    640         << "- NB WRITE BACK           = " << m_cpt_data_write_back << std::endl
    641         << "- NB WRITE BACK COHERENCE = " << m_cpt_data_cleanup << std::endl
    642         << "- NB DATA SC              = " << m_cpt_data_sc << std::endl
    643         << "- WRITE LENGTH            = " << (float)m_length_write_transaction/m_cpt_write_transaction << std::endl
    644         << "- ITLB MISS TRANSACTION   = " << (float)m_cost_itlbmiss_transaction/m_cpt_itlbmiss_transaction << std::endl
    645         << "- DTLB MISS TRANSACTION   = " << (float)m_cost_dtlbmiss_transaction/m_cpt_dtlbmiss_transaction << std::endl
    646 
    647         << "- DMISS TRANSACTION       = " << m_cpt_dmiss_transaction << std::endl
    648         << "- DUNC TRANSACTION        = " << m_cpt_dunc_transaction << std::endl
    649         << "- LL TRANSACTION          = " << m_cpt_ll_transaction << std::endl
    650         << "- WRITE DATA MISS         = " << m_cpt_data_write_miss << std::endl
    651         << "- WRITE DATA ON ZOMBI     = " << m_cpt_data_write_on_zombi << std::endl
    652         << "- WRITE DATA ON ZOMBI NCC = " << m_cpt_data_write_on_zombi_ncc << std::endl
    653         << "- CLEANUP DATA NOT DIRTY  = " << m_cpt_cleanup_data_not_dirty << std::endl
    654         << "- CLEANUP DATA DIRTY WORD = " << m_cpt_cleanup_data_dirty_word << std::endl;
     601      //  << "- CPI                     = " << std::dec <<(float)m_cpt_total_cycles/run_cycles << std::endl
     602        << "- NB_MISS_CLEAN           = " << std::dec <<m_cpt_data_miss_clean << std::endl
     603        << "- NB_MISS_CLEAN_PTE       = " << std::dec <<m_cpt_data_miss_clean_pte << std::endl
     604        << "- NB_MISS_CLEAN_PTD       = " << std::dec <<m_cpt_data_miss_clean_ptd << std::endl
     605        << "- NB_MISS_TLB             = " << std::dec <<m_cpt_miss_tlb  << std::endl
     606        << "- NB_MISS_PTE             = " << std::dec <<m_cpt_dcache_miss_pte  << std::endl;
     607
     608     //   << "- READ RATE               = " << (float)m_cpt_data_read/run_cycles << std::endl
     609     //   << "- WRITE RATE              = " << (float)m_cpt_data_write/run_cycles << std::endl
     610     //   << "- IMISS_RATE              = " << (float)m_cpt_ins_miss/m_cpt_ins_read << std::endl
     611     //   << "- DMISS RATE              = " << (float)m_cpt_data_miss/(m_cpt_data_read-m_cpt_unc_read) << std::endl
     612     //   << "- INS MISS COST           = " << (float)m_cost_ins_miss_frz/m_cpt_ins_miss << std::endl
     613     //   << "- DATA MISS COST          = " << (float)m_cost_data_miss_frz/m_cpt_data_miss << std::endl
     614     //   << "- WRITE COST              = " << (float)m_cost_write_frz/m_cpt_data_write << std::endl
     615     //   << "- UNC COST                = " << (float)m_cost_unc_read_frz/m_cpt_unc_read << std::endl
     616     //   << "- UNCACHED READ RATE      = " << (float)m_cpt_unc_read/m_cpt_data_read << std::endl
     617     //   << "- CACHED WRITE RATE       = " << (float)m_cpt_write_cached/m_cpt_data_write << std::endl
     618     //   << "- INS TLB MISS RATE       = " << (float)m_cpt_ins_tlb_miss/m_cpt_ins_tlb_read << std::endl
     619     //   << "- DATA TLB MISS RATE      = " << (float)m_cpt_data_tlb_miss/m_cpt_data_tlb_read << std::endl
     620     //   << "- ITLB MISS COST          = " << (float)m_cost_ins_tlb_miss_frz/m_cpt_ins_tlb_miss << std::endl
     621     //   << "- DTLB MISS COST          = " << (float)m_cost_data_tlb_miss_frz/m_cpt_data_tlb_miss << std::endl
     622     //   << "- ITLB UPDATE ACC COST    = " << (float)m_cost_ins_tlb_update_acc_frz/m_cpt_ins_tlb_update_acc << std::endl
     623     //   << "- DTLB UPDATE ACC COST    = " << (float)m_cost_data_tlb_update_acc_frz/m_cpt_data_tlb_update_acc << std::endl
     624     //   << "- DTLB UPDATE DIRTY COST  = " << (float)m_cost_data_tlb_update_dirty_frz/m_cpt_data_tlb_update_dirty << std::endl
     625     //   << "- ITLB HIT IN DCACHE RATE = " << (float)m_cpt_ins_tlb_hit_dcache/m_cpt_ins_tlb_miss << std::endl
     626     //   << "- DTLB HIT IN DCACHE RATE = " << (float)m_cpt_data_tlb_hit_dcache/m_cpt_data_tlb_miss << std::endl
     627     //   //<< "- DCACHE FROZEN BY ITLB   = " << (float)m_cost_ins_tlb_occup_cache_frz/m_cpt_dcache_frz_cycles << std::endl
     628     //   << "- DCACHE FOR TLB %        = " << (float)m_cpt_tlb_occup_dcache/(m_dcache_ways*m_dcache_sets) << std::endl
     629     //   << "- NB CC BROADCAST         = " << m_cpt_cc_broadcast << std::endl
     630     //   << "- NB CC UPDATE DATA       = " << m_cpt_cc_update_dcache << std::endl
     631     //   << "- NB CC INVAL DATA        = " << m_cpt_cc_inval_dcache << std::endl
     632     //   << "- NB CC INVAL INS         = " << m_cpt_cc_inval_icache << std::endl
     633     //   << "- CC BROADCAST COST       = " << (float)m_cost_broadcast_frz/m_cpt_cc_broadcast << std::endl
     634     //   << "- CC UPDATE DATA COST     = " << (float)m_cost_updt_data_frz/m_cpt_cc_update_dcache << std::endl
     635     //   << "- CC INVAL DATA COST      = " << (float)m_cost_inval_data_frz/m_cpt_cc_inval_dcache << std::endl
     636     //   << "- CC INVAL INS COST       = " << (float)m_cost_inval_ins_frz/m_cpt_cc_inval_icache << std::endl
     637     //   << "- NB CC CLEANUP DATA      = " << m_cpt_cc_cleanup_data << std::endl
     638     //   << "- NB CC CLEANUP INS       = " << m_cpt_cc_cleanup_ins << std::endl
     639     //   << "- IMISS TRANSACTION       = " << (float)m_cost_imiss_transaction/m_cpt_imiss_transaction << std::endl
     640     //   << "- DMISS TRANSACTION       = " << (float)m_cost_dmiss_transaction/m_cpt_dmiss_transaction << std::endl
     641     //   << "- UNC TRANSACTION         = " << (float)m_cost_unc_transaction/m_cpt_unc_transaction << std::endl
     642     //   << "- WRITE TRANSACTION       = " << (float)m_cost_write_transaction/m_cpt_write_transaction << std::endl
     643     //   << "- NB WRITE TRANSACTION    = " << m_cpt_write_transaction << std::endl
     644     //   << "- NB WRITE WORDS VCI      = " << m_length_write_transaction << std::endl
     645     //   << "- NB WRITE PROC           = " << m_cpt_data_write << std::endl
     646     //   << "- NB WRITE BACK           = " << m_cpt_data_write_back << std::endl
     647     //   << "- NB WRITE BACK COHERENCE = " << m_cpt_data_cleanup << std::endl
     648     //   << "- NB DATA SC              = " << m_cpt_data_sc << std::endl
     649     //   << "- WRITE LENGTH            = " << (float)m_length_write_transaction/m_cpt_write_transaction << std::endl
     650     //   << "- ITLB MISS TRANSACTION   = " << (float)m_cost_itlbmiss_transaction/m_cpt_itlbmiss_transaction << std::endl
     651     //   << "- DTLB MISS TRANSACTION   = " << (float)m_cost_dtlbmiss_transaction/m_cpt_dtlbmiss_transaction << std::endl
     652
     653     //   << "- DMISS TRANSACTION       = " << m_cpt_dmiss_transaction << std::endl
     654     //   << "- DUNC TRANSACTION        = " << m_cpt_dunc_transaction << std::endl
     655     //   << "- LL TRANSACTION          = " << m_cpt_ll_transaction << std::endl
     656     //   << "- WRITE DATA MISS         = " << m_cpt_data_write_miss << std::endl
     657     //   << "- WRITE DATA ON ZOMBI     = " << m_cpt_data_write_on_zombi << std::endl
     658     //   << "- WRITE DATA ON ZOMBI NCC = " << m_cpt_data_write_on_zombi_ncc << std::endl
     659     //   << "- CLEANUP DATA NOT DIRTY  = " << m_cpt_cleanup_data_not_dirty << std::endl
     660     //   << "- CLEANUP DATA DIRTY WORD = " << m_cpt_cleanup_data_dirty_word << std::endl;
    655661}
    656662
     
    755761    m_cpt_data_write_on_zombi = 0;
    756762    m_cpt_data_write_on_zombi_ncc = 0;
     763   
     764    m_cpt_data_miss_clean = 0;
     765    m_cpt_data_miss_clean_pte = 0;
     766    m_cpt_data_miss_clean_ptd = 0;
     767    m_cpt_miss_tlb = 0;
    757768
    758769}
     
    13001311                    m_irsp.instruction = cache_inst;
    13011312                    r_icache_fsm       = ICACHE_IDLE;
    1302 #if DEBUG_ICACHE
     1313#if DEBUG_ICACHE 
    13031314if ( m_debug_activated )
    13041315std::cout << "  <PROC " << name() << " ICACHE_IDLE> READ HIT in icache"
     
    22802291            if (m_dreq.addr == 0x0 && m_dreq.wdata == 0xDEADDEAD) {
    22812292                std::cout << "*** Ecriture à l'adresse 0 pour fin de simulation ***" << std::endl;
     2293                print_stats();
    22822294                raise(SIGINT);
    22832295            }
     
    30573069        paddr_t         pte_paddr;
    30583070
     3071
     3072        m_cpt_miss_tlb ++;
    30593073        // evaluate bypass in order to skip first level page table access
    30603074        if ( r_dcache_tlb_ins.read() )                          // itlb miss
     
    32473261            r_dcache_miss_type     = PTE1_MISS;
    32483262            r_dcache_fsm           = DCACHE_MISS_SELECT;
     3263           
     3264            m_cpt_dcache_miss_pte ++;
    32493265
    32503266#if DEBUG_DCACHE
     
    35313547            r_dcache_miss_type    = PTE2_MISS;
    35323548
     3549            m_cpt_dcache_miss_pte ++;
    35333550#if DEBUG_DCACHE
    35343551if ( m_debug_activated )
     
    45114528        size_t  set   = r_dcache_miss_set.read();
    45124529
     4530        m_cpt_data_miss_clean ++;
    45134531#ifdef INSTRUMENTATION
    45144532m_cpt_dcache_dir_read++;
     
    45354553            //MODIFIED
    45364554            //r_dcache_in_tlb[way*m_dcache_sets+set] = false;
     4555            m_cpt_data_miss_clean_pte ++;
    45374556            r_dcache_content_state[way*m_dcache_sets+set] = LINE_EMPTY;
    45384557            if( not r_dcache_cleanup_victim_req.read() )
     
    45534572        else if ( r_dcache_content_state[way*m_dcache_sets+set] == LINE_CACHE_CONTAINS_PTD )
    45544573        {
     4574            m_cpt_data_miss_clean_ptd ++;
    45554575            r_itlb.reset();
    45564576            r_dtlb.reset();
  • branches/MESI/modules/vci_mem_cache/caba/source/include/vci_mem_cache.h

    r700 r719  
    491491      uint32_t     m_cpt_trt_rb;        // Read blocked by a hit in trt
    492492      uint32_t     m_cpt_trt_full;      // Transaction blocked due to a full trt
     493      uint32_t     m_cpt_put;     
     494      uint32_t     m_cpt_get;
    493495     
    494496      uint32_t     m_cpt_read_fsm_dir_lock;        // wait DIR LOCK
  • branches/MESI/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp

    r700 r719  
    1 /* -*- c++ -*-
     1    /* -*- c++ -*-
    22*
    33* File       : vci_mem_cache.cpp
     
    898898        m_cpt_trt_rb                    = 0 ;                                                                 
    899899        m_cpt_trt_full                  = 0 ;                                                             
    900                                                                                          
     900        m_cpt_put                       = 0 ;                                                             
     901        m_cpt_get                       = 0 ;                                                             
    901902        m_cpt_read_fsm_dir_lock         = 0 ;                                                                         
    902903        m_cpt_read_fsm_n_dir_lock       = 0 ;                                                                         
     
    996997                << "[004] READ COST (FLITS * DIST)  = " << m_cpt_read_miss_cost << std::endl
    997998                << std::endl
    998                 << "[005] LOCAL GETM MISS           = " << m_cpt_getm_miss_local << std::endl
    999                 << "[006] REMOTE GETM MISS          = " << m_cpt_getm_miss_remote << std::endl
    1000                 << "[007] LOCAL GETM HIT           = " << m_cpt_getm_hit_local << std::endl
    1001                 << "[008] REMOTE GETM HIT          = " << m_cpt_getm_hit_remote << std::endl
    1002                 << "[009] GETM COST (FLITS * DIST)  = " << m_cpt_getm_cost << std::endl
     999                << "[005] LOCAL WRITE               = " << m_cpt_write_local << std::endl
     1000                << "[006] REMOTE WRITE              = " << m_cpt_write_remote << std::endl
     1001                << "[007] WRITE FLITS LOCAL         = " << m_cpt_write_flits_local << std::endl
     1002                << "[008] WRITE FLITS REMOTE        = " << m_cpt_write_flits_remote << std::endl
     1003                << "[009] WRITE COST (FLITS * DIST) = " << m_cpt_write_cost << std::endl
    10031004                << std::endl
    1004                 << "[010] LOCAL WRITE               = " << m_cpt_write_local << std::endl
    1005                 << "[011] REMOTE WRITE              = " << m_cpt_write_remote << std::endl
    1006                 << "[012] WRITE FLITS LOCAL         = " << m_cpt_write_flits_local << std::endl
    1007                 << "[013] WRITE FLITS REMOTE        = " << m_cpt_write_flits_remote << std::endl
    1008                 << "[014] WRITE COST (FLITS * DIST) = " << m_cpt_write_cost << std::endl
     1005                << "[010] LOCAL LL                  = " << m_cpt_ll_local << std::endl
     1006                << "[011] REMOTE LL                 = " << m_cpt_ll_remote << std::endl
     1007                << "[012] LL COST (FLITS * DIST)    = " << m_cpt_ll_cost << std::endl
    10091008                << std::endl
    1010                 << "[015] LOCAL LL                  = " << m_cpt_ll_local << std::endl
    1011                 << "[016] REMOTE LL                 = " << m_cpt_ll_remote << std::endl
    1012                 << "[017] LL COST (FLITS * DIST)    = " << m_cpt_ll_cost << std::endl
     1009                << "[013] LOCAL SC                  = " << m_cpt_sc_local << std::endl
     1010                << "[014] REMOTE SC                 = " << m_cpt_sc_remote << std::endl
     1011                << "[015] SC COST (FLITS * DIST)    = " << m_cpt_sc_cost << std::endl
    10131012                << std::endl
    1014                 << "[018] LOCAL SC                  = " << m_cpt_sc_local << std::endl
    1015                 << "[019] REMOTE SC                 = " << m_cpt_sc_remote << std::endl
    1016                 << "[020] SC COST (FLITS * DIST)    = " << m_cpt_sc_cost << std::endl
     1013                << "[016] LOCAL CAS                 = " << m_cpt_cas_local << std::endl
     1014                << "[017] REMOTE CAS                = " << m_cpt_cas_remote << std::endl
     1015                << "[018] CAS COST (FLITS * DIST)   = " << m_cpt_cas_cost << std::endl
    10171016                << std::endl
    1018                 << "[021] LOCAL CAS                 = " << m_cpt_cas_local << std::endl
    1019                 << "[022] REMOTE CAS                = " << m_cpt_cas_remote << std::endl
    1020                 << "[023] CAS COST (FLITS * DIST)   = " << m_cpt_cas_cost << std::endl
     1017                << "[019] REQUESTS TRIG. UPDATE     = " << m_cpt_update << std::endl
     1018                << "[020] LOCAL UPDATE              = " << m_cpt_update_local << std::endl
     1019                << "[021] REMOTE UPDATE             = " << m_cpt_update_remote << std::endl
     1020                << "[022] UPDT COST (FLITS * DIST)  = " << m_cpt_update_cost << std::endl
    10211021                << std::endl
    1022                 << "[024] REQUESTS TRIG. UPDATE     = " << m_cpt_update << std::endl
    1023                 << "[025] LOCAL UPDATE              = " << m_cpt_update_local << std::endl
    1024                 << "[026] REMOTE UPDATE             = " << m_cpt_update_remote << std::endl
    1025                 << "[027] UPDT COST (FLITS * DIST)  = " << m_cpt_update_cost << std::endl
     1022                << "[023] REQUESTS TRIG. M_INV      = " << m_cpt_minval << std::endl
     1023                << "[024] LOCAL M_INV               = " << m_cpt_minval_local << std::endl
     1024                << "[025] REMOTE M_INV              = " << m_cpt_minval_remote << std::endl
     1025                << "[026] M_INV COST (FLITS * DIST) = " << m_cpt_minval_cost << std::endl
    10261026                << std::endl
    1027                 << "[028] REQUESTS TRIG. M_INV      = " << m_cpt_minval << std::endl
    1028                 << "[029] LOCAL M_INV               = " << m_cpt_minval_local << std::endl
    1029                 << "[030] REMOTE M_INV              = " << m_cpt_minval_remote << std::endl
    1030                 << "[031] M_INV COST (FLITS * DIST) = " << m_cpt_minval_cost << std::endl
     1027                << "[027] BROADCAT INVAL            = " << m_cpt_binval << std::endl
    10311028                << std::endl
    1032                 << "[032] BROADCAT INVAL            = " << m_cpt_binval << std::endl
     1029                << "[028] LOCAL CLEANUP             = " << m_cpt_cleanup_local << std::endl
     1030                << "[029] REMOTE CLEANUP            = " << m_cpt_cleanup_remote << std::endl
     1031                << "[030] CLNUP COST (FLITS * DIST) = " << m_cpt_cleanup_cost << std::endl
    10331032                << std::endl
    1034                 << "[033] LOCAL CLEANUP             = " << m_cpt_cleanup_local << std::endl
    1035                 << "[034] REMOTE CLEANUP            = " << m_cpt_cleanup_remote << std::endl
    1036                 << "[035] CLEANUP DATA              = " << m_cpt_cleanup_with_data << std::endl
    1037                 << "[036] CLNUP COST (FLITS * DIST) = " << m_cpt_cleanup_cost << std::endl
    10381033                << std::endl
    1039                 << "[037] MULTI_ACK_MISS            = " << m_cpt_multi_ack_miss << std::endl
    1040                 << "[038] MULTI_ACK_HIT             = " << m_cpt_multi_ack_hit << std::endl
    1041                 << "[039] MULTI_ACK_DATA            = " << m_cpt_multi_ack_hit_with_data << std::endl
     1034                << "[031] READ MISS                 = " << m_cpt_read_miss << std::endl
     1035                << "[032] WRITE MISS                = " << m_cpt_write_miss << std::endl
     1036                << "[033] WRITE DIRTY               = " << m_cpt_write_dirty << std::endl
     1037                << "[034] RD BLOCKED BY HIT IN TRT  = " << m_cpt_trt_rb << std::endl
     1038                << "[035] TRANS BLOCKED BY FULL TRT = " << m_cpt_trt_full << std::endl
     1039                << "[036] PUT (UNIMPLEMENTED)       = " << m_cpt_put << std::endl
     1040                << "[037] GET (UNIMPLEMENTED)       = " << m_cpt_get << std::endl
     1041                << "[038] WRITE BROADCAST           = " << m_cpt_write_broadcast << std::endl
    10421042                << std::endl
    1043                 << "[040] READ MISS                 = " << m_cpt_read_miss << std::endl
    1044                 << "[041] GETM MISS                 = " << m_cpt_getm_miss << std::endl
    1045                 << "[042] WRITE MISS                = " << m_cpt_write_miss << std::endl
    1046                 << "[043] CAS MISS                  = " << m_cpt_cas_miss << std::endl
    1047                 << "[044] WRITE DIRTY               = " << m_cpt_write_dirty << std::endl
    1048                 << "[045] RD BLOCKED BY HIT IN TRT  = " << m_cpt_trt_rb << std::endl
    1049                 << "[046] TRANS BLOCKED BY FULL TRT = " << m_cpt_trt_full << std::endl
    1050                 << "[047] WRITE BROADCAST           = " << m_cpt_write_broadcast << std::endl
    1051                 << "[048] WRITE MINVAL              = " << m_cpt_write_minval << std::endl
    1052                 << "[049] CAS BROADCAST             = " << m_cpt_cas_broadcast << std::endl
    1053                 << "[050] CAS MINVAL                = " << m_cpt_cas_minval << std::endl
    1054                 << "[051] GETM BROADCAST            = " << m_cpt_getm_broadcast << std::endl
    1055                 << "[052] GETM MINVAL               = " << m_cpt_getm_minval << std::endl
     1043
     1044                << "[050] LOCAL GETM MISS           = " << m_cpt_getm_miss_local << std::endl
     1045                << "[051] REMOTE GETM MISS          = " << m_cpt_getm_miss_remote << std::endl
     1046                << "[052] LOCAL GETM HIT            = " << m_cpt_getm_hit_local << std::endl
     1047                << "[053] REMOTE GETM HIT           = " << m_cpt_getm_hit_remote << std::endl
     1048                << "[054] GETM COST (FLITS * DIST)  = " << m_cpt_getm_cost << std::endl
    10561049                << std::endl
    1057                 << "[053] READ LOCKED WAIT          = " << m_cpt_read_locked_rb << std::endl
    1058                 << "[054] CAS LOCKED WAIT           = " << m_cpt_cas_locked_rb << std::endl
    1059                 << "[055] WRITE LOCKED WAIT         = " << m_cpt_write_locked_rb << std::endl
    1060                 << "[056] EVICTED SLOT              = " << m_cpt_slot_inval << std::endl
    1061 
     1050                << "[055] CLEANUP WITH DATA         = " << m_cpt_cleanup_with_data << std::endl
     1051                << std::endl
     1052                << "[056] MULTI_ACK_MISS            = " << m_cpt_multi_ack_miss << std::endl
     1053                << "[057] MULTI_ACK_HIT             = " << m_cpt_multi_ack_hit << std::endl
     1054                << "[058] MULTI_ACK_DATA            = " << m_cpt_multi_ack_hit_with_data << std::endl
     1055                << std::endl
     1056                << "[059] GETM MISS                 = " << m_cpt_getm_miss << std::endl
     1057                << "[060] WRITE MINVAL              = " << m_cpt_write_minval << std::endl
     1058                << "[061] GETM BROADCAST            = " << m_cpt_getm_broadcast << std::endl
     1059                << "[062] GETM MINVAL               = " << m_cpt_getm_minval << std::endl
     1060                << std::endl
     1061                << "[063] READ LOCKED WAIT          = " << m_cpt_read_locked_rb << std::endl
     1062                << "[064] CAS LOCKED WAIT           = " << m_cpt_cas_locked_rb << std::endl
     1063                << "[065] WRITE LOCKED WAIT         = " << m_cpt_write_locked_rb << std::endl
     1064                << "[066] EVICTED SLOT              = " << m_cpt_slot_inval << std::endl
    10621065                << std::endl;
    10631066        }
     
    10731076                << "[103] REMOTE READ RATE      = " << (double) m_cpt_read_miss_remote / m_cpt_cycles << std::endl
    10741077                << "[104] READ MISS RATE        = " << (double) m_cpt_read_miss / (m_cpt_read_miss_local + m_cpt_read_miss_remote) << std::endl
    1075                 << "[100] GETM MISS TOTAL       = " << m_cpt_getm_miss_local + m_cpt_getm_miss_remote << std::endl
    1076                 << "[101] GETM MISS RATE        = " << (double) (m_cpt_getm_miss_local + m_cpt_getm_miss_remote) / m_cpt_cycles << std::endl
    1077                 << "[102] LOCAL GETM MISS RATE  = " << (double) m_cpt_getm_miss_local / m_cpt_cycles << std::endl
    1078                 << "[103] REMOTE GETM MISS RATE = " << (double) m_cpt_getm_miss_remote / m_cpt_cycles << std::endl
    1079                 << "[100] GETM HIT TOTAL        = " << m_cpt_getm_hit_local + m_cpt_getm_hit_remote << std::endl
    1080                 << "[101] GETM HIT RATE         = " << (double) (m_cpt_getm_hit_local + m_cpt_getm_hit_remote) / m_cpt_cycles << std::endl
    1081                 << "[102] LOCAL GETM HIT RATE   = " << (double) m_cpt_getm_hit_local / m_cpt_cycles << std::endl
    1082                 << "[103] REMOTE GETM HIT RATE  = " << (double) m_cpt_getm_hit_remote / m_cpt_cycles << std::endl
    1083 
    1084                 << "[100] GETM TOTAL            = " << m_cpt_getm_hit_local + m_cpt_getm_hit_remote + m_cpt_getm_miss_remote + m_cpt_getm_miss_local << std::endl
    1085 
    1086                 << "[104] GETM MISS RATE        = " << (double) m_cpt_read_miss / (m_cpt_getm_hit_local + m_cpt_getm_hit_remote + m_cpt_getm_miss_remote + m_cpt_getm_miss_local) << std::endl
     1078                << "[105] GETM MISS TOTAL       = " << m_cpt_getm_miss_local + m_cpt_getm_miss_remote << std::endl
     1079                << "[106] GETM MISS RATE        = " << (double) (m_cpt_getm_miss_local + m_cpt_getm_miss_remote) / m_cpt_cycles << std::endl
     1080                << "[107] LOCAL GETM MISS RATE  = " << (double) m_cpt_getm_miss_local / m_cpt_cycles << std::endl
     1081                << "[108] REMOTE GETM MISS RATE = " << (double) m_cpt_getm_miss_remote / m_cpt_cycles << std::endl
     1082                << "[109] GETM HIT TOTAL        = " << m_cpt_getm_hit_local + m_cpt_getm_hit_remote << std::endl
     1083                << "[110] GETM HIT RATE         = " << (double) (m_cpt_getm_hit_local + m_cpt_getm_hit_remote) / m_cpt_cycles << std::endl
     1084                << "[111] LOCAL GETM HIT RATE   = " << (double) m_cpt_getm_hit_local / m_cpt_cycles << std::endl
     1085                << "[112] REMOTE GETM HIT RATE  = " << (double) m_cpt_getm_hit_remote / m_cpt_cycles << std::endl
     1086
     1087                << "[113] GETM TOTAL            = " << m_cpt_getm_hit_local + m_cpt_getm_hit_remote + m_cpt_getm_miss_remote + m_cpt_getm_miss_local << std::endl
     1088
     1089                << "[114] GETM MISS RATE        = " << (double) m_cpt_read_miss / (m_cpt_getm_hit_local + m_cpt_getm_hit_remote + m_cpt_getm_miss_remote + m_cpt_getm_miss_local) << std::endl
    10871090 
    10881091                << std::endl
    1089                 << "[105] WRITE TOTAL           = " << m_cpt_write_local + m_cpt_write_remote << std::endl
    1090                 << "[106] WRITE RATE            = " << (double) (m_cpt_write_local + m_cpt_write_remote) / m_cpt_cycles << std::endl
    1091                 << "[107] LOCAL WRITE RATE      = " << (double) m_cpt_write_local / m_cpt_cycles << std::endl
    1092                 << "[108] REMOTE WRITE RATE     = " << (double) m_cpt_write_remote / m_cpt_cycles << std::endl
    1093                 << "[109] WRITE MISS RATE       = " << (double) m_cpt_write_miss / (m_cpt_write_local + m_cpt_write_remote) << std::endl
    1094                 << "[110] WRITE BURST TOTAL     = " << m_cpt_write_flits_local + m_cpt_write_flits_remote << std::endl
    1095                 << "[111] WRITE BURST AVERAGE   = " << (double) (m_cpt_write_flits_local + m_cpt_write_flits_remote) / (m_cpt_write_local + m_cpt_write_remote) << std::endl
    1096                 << "[112] LOCAL WRITE BURST AV. = " << (double) m_cpt_write_flits_local / (m_cpt_write_local + m_cpt_write_remote) << std::endl
    1097                 << "[113] REMOTE WRITE BURST AV = " << (double) m_cpt_write_flits_remote / (m_cpt_write_local + m_cpt_write_remote) << std::endl
     1092                << "[115] WRITE TOTAL           = " << m_cpt_write_local + m_cpt_write_remote << std::endl
     1093                << "[116] WRITE RATE            = " << (double) (m_cpt_write_local + m_cpt_write_remote) / m_cpt_cycles << std::endl
     1094                << "[117] LOCAL WRITE RATE      = " << (double) m_cpt_write_local / m_cpt_cycles << std::endl
     1095                << "[118] REMOTE WRITE RATE     = " << (double) m_cpt_write_remote / m_cpt_cycles << std::endl
     1096                << "[119] WRITE MISS RATE       = " << (double) m_cpt_write_miss / (m_cpt_write_local + m_cpt_write_remote) << std::endl
     1097                << "[120] WRITE BURST TOTAL     = " << m_cpt_write_flits_local + m_cpt_write_flits_remote << std::endl
     1098                << "[121] WRITE BURST AVERAGE   = " << (double) (m_cpt_write_flits_local + m_cpt_write_flits_remote) / (m_cpt_write_local + m_cpt_write_remote) << std::endl
     1099                << "[122] LOCAL WRITE BURST AV. = " << (double) m_cpt_write_flits_local / (m_cpt_write_local + m_cpt_write_remote) << std::endl
     1100                << "[123] REMOTE WRITE BURST AV = " << (double) m_cpt_write_flits_remote / (m_cpt_write_local + m_cpt_write_remote) << std::endl
    10981101                << std::endl
    1099                 << "[114] UPDATE RATE                = " << (double) m_cpt_update / m_cpt_cycles << std::endl
    1100                 << "[115] AV. UPDATE PER UP REQ      = " << (double) (m_cpt_update_local + m_cpt_update_remote) / m_cpt_update << std::endl
    1101                 << "[116] AV. LOC UPDT PER UP REQ    = " << (double) m_cpt_update_local / m_cpt_update << std::endl
    1102                 << "[117] AV. REMOTE UPDT PER UP REQ = " << (double) m_cpt_update_remote / m_cpt_update << std::endl
     1102                << "[124] UPDATE RATE                = " << (double) m_cpt_update / m_cpt_cycles << std::endl
     1103                << "[125] AV. UPDATE PER UP REQ      = " << (double) (m_cpt_update_local + m_cpt_update_remote) / m_cpt_update << std::endl
     1104                << "[126] AV. LOC UPDT PER UP REQ    = " << (double) m_cpt_update_local / m_cpt_update << std::endl
     1105                << "[127] AV. REMOTE UPDT PER UP REQ = " << (double) m_cpt_update_remote / m_cpt_update << std::endl
    11031106                << std::endl
    1104                 << "[118] INVAL MULTICAST RATE  = " << (double) m_cpt_minval / m_cpt_cycles << std::endl
    1105                 << "[119] AVE. INVAL PER M_INV  = " << (double) (m_cpt_minval_local + m_cpt_minval_remote) / m_cpt_minval << std::endl
    1106                 << "[120] AV. LOC INV PER M_INV = " << (double) m_cpt_minval_local / m_cpt_minval << std::endl
    1107                 << "[121] AV. REM INV PER M_INV = " << (double) m_cpt_minval_remote / m_cpt_minval << std::endl
     1107                << "[128] INVAL MULTICAST RATE  = " << (double) m_cpt_minval / m_cpt_cycles << std::endl
     1108                << "[129] AVE. INVAL PER M_INV  = " << (double) (m_cpt_minval_local + m_cpt_minval_remote) / m_cpt_minval << std::endl
     1109                << "[130] AV. LOC INV PER M_INV = " << (double) m_cpt_minval_local / m_cpt_minval << std::endl
     1110                << "[131] AV. REM INV PER M_INV = " << (double) m_cpt_minval_remote / m_cpt_minval << std::endl
    11081111                << std::endl
    1109                 << "[122] INVAL BROADCAST RATE  = " << (double) m_cpt_binval / m_cpt_cycles << std::endl
    1110                 << "[123] WRITE DIRTY RATE      = " << (double) m_cpt_write_dirty / m_cpt_cycles << std::endl
     1112                << "[132] INVAL BROADCAST RATE  = " << (double) m_cpt_binval / m_cpt_cycles << std::endl
     1113                << "[133] WRITE DIRTY RATE      = " << (double) m_cpt_write_dirty / m_cpt_cycles << std::endl
    11111114                << std::endl
    1112                 << "[124] CLEANUP RATE          = " << (double) (m_cpt_cleanup_local + m_cpt_cleanup_remote) / m_cpt_cycles << std::endl
    1113                 << "[125] LOCAL CLEANUP RATE    = " << (double) m_cpt_cleanup_local / m_cpt_cycles << std::endl
    1114                 << "[126] REMOTE CLEANUP RATE   = " << (double) m_cpt_cleanup_remote / m_cpt_cycles << std::endl
    1115                 << "[127] LL RATE               = " << (double) (m_cpt_ll_local + m_cpt_ll_remote) / m_cpt_cycles << std::endl
    1116                 << "[128] LOCAL LL RATE         = " << (double) m_cpt_ll_local / m_cpt_cycles << std::endl
    1117                 << "[129] REMOTE LL RATE        = " << (double) m_cpt_ll_remote / m_cpt_cycles << std::endl
    1118                 << "[130] SC RATE               = " << (double) (m_cpt_sc_local + m_cpt_sc_remote) / m_cpt_cycles << std::endl
    1119                 << "[131] LOCAL SC RATE         = " << (double) m_cpt_sc_local / m_cpt_cycles << std::endl
    1120                 << "[132] REMOTE SC RATE        = " << (double) m_cpt_sc_remote / m_cpt_cycles << std::endl
    1121                 << "[133] CAS RATE              = " << (double) (m_cpt_cas_local + m_cpt_cas_remote) / m_cpt_cycles << std::endl
    1122                 << "[134] LOCAL CAS RATE        = " << (double) m_cpt_cas_local / m_cpt_cycles << std::endl
    1123                 << "[135] REMOTE CAS RATE       = " << (double) m_cpt_cas_remote / m_cpt_cycles << std::endl
     1115                << "[134] CLEANUP RATE          = " << (double) (m_cpt_cleanup_local + m_cpt_cleanup_remote) / m_cpt_cycles << std::endl
     1116                << "[135] LOCAL CLEANUP RATE    = " << (double) m_cpt_cleanup_local / m_cpt_cycles << std::endl
     1117                << "[136] REMOTE CLEANUP RATE   = " << (double) m_cpt_cleanup_remote / m_cpt_cycles << std::endl
     1118                << "[137] LL RATE               = " << (double) (m_cpt_ll_local + m_cpt_ll_remote) / m_cpt_cycles << std::endl
     1119                << "[138] LOCAL LL RATE         = " << (double) m_cpt_ll_local / m_cpt_cycles << std::endl
     1120                << "[139] REMOTE LL RATE        = " << (double) m_cpt_ll_remote / m_cpt_cycles << std::endl
     1121                << "[140] SC RATE               = " << (double) (m_cpt_sc_local + m_cpt_sc_remote) / m_cpt_cycles << std::endl
     1122                << "[141] LOCAL SC RATE         = " << (double) m_cpt_sc_local / m_cpt_cycles << std::endl
     1123                << "[142] REMOTE SC RATE        = " << (double) m_cpt_sc_remote / m_cpt_cycles << std::endl
     1124                << "[143] CAS RATE              = " << (double) (m_cpt_cas_local + m_cpt_cas_remote) / m_cpt_cycles << std::endl
     1125                << "[144] LOCAL CAS RATE        = " << (double) m_cpt_cas_local / m_cpt_cycles << std::endl
     1126                << "[145] REMOTE CAS RATE       = " << (double) m_cpt_cas_remote / m_cpt_cycles << std::endl
    11241127                << "[124] MULTI ACK RATE        = " << (double) (m_cpt_multi_ack_hit + m_cpt_multi_ack_miss) / m_cpt_cycles << std::endl
    1125                 << std::endl
    11261128                << std::endl;
    11271129        }
     
    11611163        delete [] m_debug_data;
    11621164
    1163         print_stats();
     1165        //print_stats();
    11641166    }
    11651167
     
    13851387            m_cpt_trt_rb                    = 0 ;                                                                 
    13861388            m_cpt_trt_full                  = 0 ;                                                             
     1389            m_cpt_put                       = 0 ;                                                             
     1390            m_cpt_get                       = 0 ;                                                             
    13871391                                                                                             
    13881392            m_cpt_read_fsm_dir_lock         = 0 ;                                                                         
     
    48044808                        bool        ivt_full   = m_ivt.is_full();
    48054809
    4806                        
    48074810                        //r_write_ivt_index = index;
    48084811
     
    48524855                            for(size_t word=0 ; word<m_words ; word++)
    48534856                            {
    4854                                 r_write_to_cleanup_be[word]   = r_write_be[word];
    4855                                 r_write_to_cleanup_data[word] = r_write_data[word];
    4856                                
     4857                               
    48574858                                if(r_write_state.read() == ENTRY_SHARED)
    48584859                                {
    48594860                                    m_cache_data.write(way, set, word, r_write_data[word].read(), r_write_be[word].read());
     4861                                }
     4862                                else
     4863                                {
     4864                                    r_write_to_cleanup_be[word]   = r_write_be[word];
     4865                                    r_write_to_cleanup_data[word] = r_write_data[word];
    48604866                                }
    48614867                            }
     
    63286334                            << " CLEANUP_DIR_LOCK> Test directory status: "
    63296335                            << std::hex
    6330                             << " line = "         << cleanup_address
     6336                            << " addr = "         << cleanup_address
    63316337                            << " / hit = "        << entry.state
    63326338                            << " / way = "        << way
     
    65386544                            }
    65396545                        }
    6540 
    6541                         size_t set = m_y[(addr_t)(cleanup_address)];
    6542                         m_cache_data.read_line(way, set, r_cleanup_data);
     6546                        else //read the cache data for a request getM (the special case)
     6547                        {
     6548                            m_cache_data.read_line(way, set, r_cleanup_data);
     6549                        }
    65436550                    }
    65446551                    else
     
    74957502                        addr_t      nline           = m_nline[(addr_t)(m_cmd_cas_addr_fifo.read())];
    74967503
    7497                         wok = m_ivt.set(false,                  // it's an invalid transaction
    7498                                         r_cas_is_cnt.read(),    
    7499                                         true,                   // response required 
    7500                                         false,                  // no acknowledge required
     7504                        wok = m_ivt.set(false,   // it's an invalid transaction
     7505                                        r_cas_is_cnt.read(),   // it's not a broadcast
     7506                                        true,    // response required 
     7507                                        false,   // no acknowledge required
    75017508                                        srcid,
    75027509                                        trdid,
     
    75307537                            // So, the line is still valid in dir.
    75317538                            m_cache_data.write(way, set, word, r_cas_wdata.read());
     7539
    75327540                            if(r_cas_cpt.read() == 4)
    75337541                                m_cache_data.write(way, set, word+1, m_cmd_cas_wdata_fifo.read());
     
    82638271                        }
    82648272                        // </Activity Counters>
     8273                        m_cpt_minval++;
     8274                        // </Activity Counters>
    82658275                        r_cc_send_fsm = CC_SEND_CONFIG_INVAL_NLINE;
    82668276                        break;
    82678277                    }
    82688278                    if(r_config_to_cc_send_multi_req.read()) r_config_to_cc_send_multi_req = false;
    8269                     // <Activity Counters>
    8270                     m_cpt_minval++;
    8271                     // </Activity Counters>
    82728279                    r_cc_send_fsm = CC_SEND_CONFIG_IDLE;
    82738280                    break;
     
    83308337                        }
    83318338                        // </Activity Counters>
     8339                        m_cpt_minval++;
     8340                        // </Activity Counters>
    83328341                        r_cc_send_fsm = CC_SEND_XRAM_RSP_INVAL_NLINE;
    83338342                        break;
    83348343                    }
    83358344                    if(r_xram_rsp_to_cc_send_multi_req.read()) r_xram_rsp_to_cc_send_multi_req = false;
    8336                     // <Activity Counters>
    8337                     m_cpt_minval++;
    8338                     // </Activity Counters>
     8345
    83398346                    r_cc_send_fsm = CC_SEND_XRAM_RSP_IDLE;
    83408347                    break;
     
    84248431                        }
    84258432                        // </Activity Counters>
     8433                        if(r_read_to_cc_send_type.read())
     8434                            m_cpt_minval++;
     8435                        // </Activity Counters>
    84268436                        r_cc_send_fsm = CC_SEND_READ_MULTI_NLINE;
    84278437                        break;
     
    84328442                       r_read_to_cc_send_multi_req = false;
    84338443                    }
    8434                     // <Activity Counters>
    8435                     if(r_read_to_cc_send_type.read())
    8436                         m_cpt_minval++;
    8437                     // </Activity Counters>
     8444
    84388445                    r_cc_send_fsm = CC_SEND_READ_IDLE;
    84398446                    break;
     
    85038510                        }
    85048511                        // </Activity Counters>
     8512                        m_cpt_minval++;
     8513                        // </Activity Counters>
    85058514                        r_cc_send_fsm = CC_SEND_WRITE_INVAL_NLINE;
    85068515                        break;
     
    85118520                        r_write_to_cc_send_multi_req = false;
    85128521                    }
    8513                     // <Activity Counters>
    8514                     m_cpt_minval++;
    8515                     // </Activity Counters>
     8522
    85168523                    r_cc_send_fsm = CC_SEND_WRITE_IDLE;
    85178524                    break;
     
    85478554                    // </Activity Counters>
    85488555
    8549                      // <Activity Counters>
    8550                     m_cpt_minval++;
    8551                     // </Activity Counters>                   r_cas_to_cc_send_brdcast_req = false;
     8556                    r_cas_to_cc_send_brdcast_req = false;
    85528557                    r_cc_send_fsm = CC_SEND_CAS_IDLE;
    85538558
     
    85768581                            m_cpt_minval_cost += req_distance(m_cas_to_cc_send_srcid_fifo.read());
    85778582                        }
     8583                        // <Activity Counters>
     8584                        m_cpt_minval++;
    85788585                        // </Activity Counters>
    85798586                        r_cc_send_fsm = CC_SEND_CAS_INVAL_NLINE;
     
    85868593                        r_cas_to_cc_send_multi_req = false;
    85878594                    }
    8588                     // <Activity Counters>
    8589                     m_cpt_minval++;
    8590                     // </Activity Counters>
     8595
    85918596                    r_cc_send_fsm = CC_SEND_CAS_IDLE;
    85928597                    break;
Note: See TracChangeset for help on using the changeset viewer.