Changeset 509 for trunk/modules


Ignore:
Timestamp:
Sep 2, 2013, 1:40:32 PM (11 years ago)
Author:
meunier
Message:

Last commit encountered an error and was only partially propagated, retrying...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp

    r507 r509  
    546546
    547547    /////////////////////////////////////////////////////
    548     tmpl(void) ::cache_monitor(addr_t addr)
     548    tmpl(void)::cache_monitor(addr_t addr)
    549549    /////////////////////////////////////////////////////
    550550    {
     
    614614    /////////////////////////////////////////////////////
    615615    {
    616         uint8_t self_x_srcid = m_cc_global_id >> (14 - m_xwidth);
    617         uint8_t self_y_srcid = ((m_cc_global_id << m_xwidth) >> (14 - m_ywidth));
    618 
    619         uint8_t x_srcid = req_srcid >> (14 - m_xwidth);
    620         uint8_t y_srcid = ((req_srcid << m_xwidth) >> (14 - m_ywidth));
     616        const uint32_t srcid_width = vci_param_int::S;
     617        uint8_t self_x_srcid = m_cc_global_id >> (srcid_width - m_xwidth);
     618        uint8_t self_y_srcid = (m_cc_global_id >> (srcid_width - m_ywidth)) & ((1 << m_xwidth) - 1);
     619
     620        uint8_t x_srcid = req_srcid >> (srcid_width - m_xwidth);
     621        uint8_t y_srcid = (req_srcid >> (srcid_width - m_ywidth - m_xwidth)) & ((1 << m_xwidth) - 1);
    621622        return abs(self_x_srcid - x_srcid) + abs(self_y_srcid - y_srcid);
    622623    }
     
    665666        std::cout << "**********************************" << std::dec << std::endl;
    666667        if (activity_counters) {
    667             std::cout << "   ----------------------------------" << std::dec << std::endl;
    668             std::cout << "   ---     Activity Counters      ---" << std::dec << std::endl;
    669             std::cout << "   ----------------------------------" << std::dec << std::endl;
     668            std::cout << "----------------------------------" << std::dec << std::endl;
     669            std::cout << "---     Activity Counters      ---" << std::dec << std::endl;
     670            std::cout << "----------------------------------" << std::dec << std::endl;
    670671            std::cout
    671                 << "   - NUMBER OF CYCLES          = " << m_cpt_cycles << std::endl
     672                << "[001] NUMBER OF CYCLES          = " << m_cpt_cycles << std::endl
    672673                << std::endl
    673                 << "   - LOCAL READ                = " << m_cpt_read_local << std::endl
    674                 << "   - REMOTE READ               = " << m_cpt_read_remote << std::endl
    675                 << "   - READ COST (FLITS * DIST)  = " << m_cpt_read_cost << std::endl
     674                << "[002] LOCAL READ                = " << m_cpt_read_local << std::endl
     675                << "[003] REMOTE READ               = " << m_cpt_read_remote << std::endl
     676                << "[004] READ COST (FLITS * DIST)  = " << m_cpt_read_cost << std::endl
    676677                << std::endl
    677                 << "   - LOCAL WRITE               = " << m_cpt_write_local << std::endl
    678                 << "   - REMOTE WRITE              = " << m_cpt_write_remote << std::endl
    679                 << "   - WRITE FLITS LOCAL         = " << m_cpt_write_flits_local << std::endl
    680                 << "   - WRITE FLITS REMOTE        = " << m_cpt_write_flits_remote << std::endl
    681                 << "   - WRITE COST (FLITS * DIST) = " << m_cpt_write_cost << std::endl
     678                << "[005] LOCAL WRITE               = " << m_cpt_write_local << std::endl
     679                << "[006] REMOTE WRITE              = " << m_cpt_write_remote << std::endl
     680                << "[007] WRITE FLITS LOCAL         = " << m_cpt_write_flits_local << std::endl
     681                << "[008] WRITE FLITS REMOTE        = " << m_cpt_write_flits_remote << std::endl
     682                << "[009] WRITE COST (FLITS * DIST) = " << m_cpt_write_cost << std::endl
    682683                << std::endl
    683                 << "   - LOCAL LL                  = " << m_cpt_ll_local << std::endl
    684                 << "   - REMOTE LL                 = " << m_cpt_ll_remote << std::endl
    685                 << "   - LL COST (FLITS * DIST)    = " << m_cpt_ll_cost << std::endl
     684                << "[010] LOCAL LL                  = " << m_cpt_ll_local << std::endl
     685                << "[011] REMOTE LL                 = " << m_cpt_ll_remote << std::endl
     686                << "[012] LL COST (FLITS * DIST)    = " << m_cpt_ll_cost << std::endl
    686687                << std::endl
    687                 << "   - LOCAL SC                  = " << m_cpt_sc_local << std::endl
    688                 << "   - REMOTE SC                 = " << m_cpt_sc_remote << std::endl
    689                 << "   - SC COST (FLITS * DIST)    = " << m_cpt_sc_cost << std::endl
     688                << "[013] LOCAL SC                  = " << m_cpt_sc_local << std::endl
     689                << "[014] REMOTE SC                 = " << m_cpt_sc_remote << std::endl
     690                << "[015] SC COST (FLITS * DIST)    = " << m_cpt_sc_cost << std::endl
    690691                << std::endl
    691                 << "   - LOCAL CAS                 = " << m_cpt_cas_local << std::endl
    692                 << "   - REMOTE CAS                = " << m_cpt_cas_remote << std::endl
    693                 << "   - CAS COST (FLITS * DIST)   = " << m_cpt_cas_cost << std::endl
     692                << "[016] LOCAL CAS                 = " << m_cpt_cas_local << std::endl
     693                << "[017] REMOTE CAS                = " << m_cpt_cas_remote << std::endl
     694                << "[018] CAS COST (FLITS * DIST)   = " << m_cpt_cas_cost << std::endl
    694695                << std::endl
    695                 << "   - REQUESTS TRIG. UPDATE     = " << m_cpt_update << std::endl
    696                 << "   - LOCAL UPDATE              = " << m_cpt_update_local << std::endl
    697                 << "   - REMOTE UPDATE             = " << m_cpt_update_remote << std::endl
    698                 << "   - UPDT COST (FLITS * DIST)  = " << m_cpt_update_cost << std::endl
     696                << "[019] REQUESTS TRIG. UPDATE     = " << m_cpt_update << std::endl
     697                << "[020] LOCAL UPDATE              = " << m_cpt_update_local << std::endl
     698                << "[021] REMOTE UPDATE             = " << m_cpt_update_remote << std::endl
     699                << "[022] UPDT COST (FLITS * DIST)  = " << m_cpt_update_cost << std::endl
    699700                << std::endl
    700                 << "   - REQUESTS TRIG. M_INV      = " << m_cpt_m_inval << std::endl
    701                 << "   - LOCAL M_INV               = " << m_cpt_m_inval_local << std::endl
    702                 << "   - REMOTE M_INV              = " << m_cpt_m_inval_remote << std::endl
    703                 << "   - M_INV COST (FLITS * DIST) = " << m_cpt_m_inval_cost << std::endl
     701                << "[023] REQUESTS TRIG. M_INV      = " << m_cpt_m_inval << std::endl
     702                << "[024] LOCAL M_INV               = " << m_cpt_m_inval_local << std::endl
     703                << "[025] REMOTE M_INV              = " << m_cpt_m_inval_remote << std::endl
     704                << "[026] M_INV COST (FLITS * DIST) = " << m_cpt_m_inval_cost << std::endl
    704705                << std::endl
    705                 << "   - BROADCAT INVAL            = " << m_cpt_br_inval << std::endl
     706                << "[027] BROADCAT INVAL            = " << m_cpt_br_inval << std::endl
    706707                << std::endl
    707                 << "   - LOCAL CLEANUP             = " << m_cpt_cleanup_local << std::endl
    708                 << "   - REMOTE CLEANUP            = " << m_cpt_cleanup_remote << std::endl
    709                 << "   - CLNUP COST (FLITS * DIST) = " << m_cpt_cleanup_cost << std::endl
     708                << "[028] LOCAL CLEANUP             = " << m_cpt_cleanup_local << std::endl
     709                << "[029] REMOTE CLEANUP            = " << m_cpt_cleanup_remote << std::endl
     710                << "[030] CLNUP COST (FLITS * DIST) = " << m_cpt_cleanup_cost << std::endl
    710711                << std::endl
    711712                << std::endl
    712                 << "   - READ MISS                 = " << m_cpt_read_miss << std::endl
    713                 << "   - WRITE MISS                = " << m_cpt_write_miss << std::endl
    714                 << "   - WRITE DIRTY               = " << m_cpt_write_dirty << std::endl
    715                 << "   - RD BLOCKED BY HIT IN TRT  = " << m_cpt_trt_rb << std::endl
    716                 << "   - TRANS BLOCKED BY FULL TRT = " << m_cpt_trt_full << std::endl
    717                 << "   - PUT                       = " << m_cpt_put << std::endl
    718                 << "   - GET                       = " << m_cpt_get << std::endl;
     713                << "[031] READ MISS                 = " << m_cpt_read_miss << std::endl
     714                << "[032] WRITE MISS                = " << m_cpt_write_miss << std::endl
     715                << "[033] WRITE DIRTY               = " << m_cpt_write_dirty << std::endl
     716                << "[034] RD BLOCKED BY HIT IN TRT  = " << m_cpt_trt_rb << std::endl
     717                << "[035] TRANS BLOCKED BY FULL TRT = " << m_cpt_trt_full << std::endl
     718                << "[036] PUT (UNIMPLEMENTED)       = " << m_cpt_put << std::endl
     719                << "[037] GET (UNIMPLEMENTED)       = " << m_cpt_get << std::endl
     720                << std::endl;
    719721        }
    720722
    721723        if (stats) {
    722             std::cout << "   ----------------------------------" << std::dec << std::endl;
    723             std::cout << "   ---      Calculated Stats      ---" << std::dec << std::endl;
    724             std::cout << "   ----------------------------------" << std::dec << std::endl;
     724            std::cout << "----------------------------------" << std::dec << std::endl;
     725            std::cout << "---      Calculated Stats      ---" << std::dec << std::endl;
     726            std::cout << "----------------------------------" << std::dec << std::endl;
    725727            std::cout
    726                 << "   - READ TOTAL            = " << m_cpt_read_local + m_cpt_read_remote << std::endl
    727                 << "   - READ RATE             = " << (double) (m_cpt_read_local + m_cpt_read_remote) / m_cpt_cycles << std::endl
    728                 << "   - LOCAL READ RATE       = " << (double) m_cpt_read_local / m_cpt_cycles << std::endl
    729                 << "   - REMOTE READ RATE      = " << (double) m_cpt_read_remote / m_cpt_cycles << std::endl
    730                 << "   - READ MISS RATE        = " << (double) m_cpt_read_miss / (m_cpt_read_local + m_cpt_read_remote) << std::endl
     728                << "[100] READ TOTAL            = " << m_cpt_read_local + m_cpt_read_remote << std::endl
     729                << "[101] READ RATE             = " << (double) (m_cpt_read_local + m_cpt_read_remote) / m_cpt_cycles << std::endl
     730                << "[102] LOCAL READ RATE       = " << (double) m_cpt_read_local / m_cpt_cycles << std::endl
     731                << "[103] REMOTE READ RATE      = " << (double) m_cpt_read_remote / m_cpt_cycles << std::endl
     732                << "[104] READ MISS RATE        = " << (double) m_cpt_read_miss / (m_cpt_read_local + m_cpt_read_remote) << std::endl
    731733                << std::endl
    732                 << "   - WRITE TOTAL           = " << m_cpt_write_local + m_cpt_write_remote << std::endl
    733                 << "   - WRITE RATE            = " << (double) (m_cpt_write_local + m_cpt_write_remote) / m_cpt_cycles << std::endl
    734                 << "   - LOCAL WRITE RATE      = " << (double) m_cpt_write_local / m_cpt_cycles << std::endl
    735                 << "   - REMOTE WRITE RATE     = " << (double) m_cpt_write_remote / m_cpt_cycles << std::endl
    736                 << "   - WRITE MISS RATE       = " << (double) m_cpt_write_miss / (m_cpt_write_local + m_cpt_write_remote) << std::endl
    737                 << "   - WRITE BURST TOTAL     = " << m_cpt_write_flits_local + m_cpt_write_flits_remote << std::endl
    738                 << "   - WRITE BURST AVERAGE   = " << (double) (m_cpt_write_flits_local + m_cpt_write_flits_remote) / (m_cpt_write_local + m_cpt_write_remote) << std::endl
    739                 << "   - LOCAL WRITE BURST AV. = " << (double) m_cpt_write_flits_local / (m_cpt_write_local + m_cpt_write_remote) << std::endl
    740                 << "   - REMOTE WRITE BURST AV = " << (double) m_cpt_write_flits_remote / (m_cpt_write_local + m_cpt_write_remote) << std::endl
     734                << "[105] WRITE TOTAL           = " << m_cpt_write_local + m_cpt_write_remote << std::endl
     735                << "[106] WRITE RATE            = " << (double) (m_cpt_write_local + m_cpt_write_remote) / m_cpt_cycles << std::endl
     736                << "[107] LOCAL WRITE RATE      = " << (double) m_cpt_write_local / m_cpt_cycles << std::endl
     737                << "[108] REMOTE WRITE RATE     = " << (double) m_cpt_write_remote / m_cpt_cycles << std::endl
     738                << "[109] WRITE MISS RATE       = " << (double) m_cpt_write_miss / (m_cpt_write_local + m_cpt_write_remote) << std::endl
     739                << "[110] WRITE BURST TOTAL     = " << m_cpt_write_flits_local + m_cpt_write_flits_remote << std::endl
     740                << "[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
     741                << "[112] LOCAL WRITE BURST AV. = " << (double) m_cpt_write_flits_local / (m_cpt_write_local + m_cpt_write_remote) << std::endl
     742                << "[113] REMOTE WRITE BURST AV = " << (double) m_cpt_write_flits_remote / (m_cpt_write_local + m_cpt_write_remote) << std::endl
    741743                << std::endl
    742                 << "   - UPDATE RATE                = " << (double) m_cpt_update / m_cpt_cycles << std::endl
    743                 << "   - AV. UPDATE PER UP REQ      = " << (double) (m_cpt_update_local + m_cpt_update_remote) / m_cpt_update << std::endl
    744                 << "   - AV. LOC UPDT PER UP REQ    = " << (double) m_cpt_update_local / m_cpt_update << std::endl
    745                 << "   - AV. REMOTE UPDT PER UP REQ = " << (double) m_cpt_update_remote / m_cpt_update << std::endl
     744                << "[114] UPDATE RATE                = " << (double) m_cpt_update / m_cpt_cycles << std::endl
     745                << "[115] AV. UPDATE PER UP REQ      = " << (double) (m_cpt_update_local + m_cpt_update_remote) / m_cpt_update << std::endl
     746                << "[116] AV. LOC UPDT PER UP REQ    = " << (double) m_cpt_update_local / m_cpt_update << std::endl
     747                << "[117] AV. REMOTE UPDT PER UP REQ = " << (double) m_cpt_update_remote / m_cpt_update << std::endl
    746748                << std::endl
    747                 << "   - INVAL MULTICAST RATE  = " << (double) m_cpt_m_inval / m_cpt_cycles << std::endl
    748                 << "   - AVE. INVAL PER M_INV  = " << (double) (m_cpt_m_inval_local + m_cpt_m_inval_remote) / m_cpt_m_inval << std::endl
    749                 << "   - AV. LOC INV PER M_INV = " << (double) m_cpt_m_inval_local / m_cpt_m_inval << std::endl
    750                 << "   - AV. REM INV PER M_INV = " << (double) m_cpt_m_inval_remote / m_cpt_m_inval << std::endl
     749                << "[118] INVAL MULTICAST RATE  = " << (double) m_cpt_m_inval / m_cpt_cycles << std::endl
     750                << "[119] AVE. INVAL PER M_INV  = " << (double) (m_cpt_m_inval_local + m_cpt_m_inval_remote) / m_cpt_m_inval << std::endl
     751                << "[120] AV. LOC INV PER M_INV = " << (double) m_cpt_m_inval_local / m_cpt_m_inval << std::endl
     752                << "[121] AV. REM INV PER M_INV = " << (double) m_cpt_m_inval_remote / m_cpt_m_inval << std::endl
    751753                << std::endl
    752                 << "   - INVAL BROADCAST RATE  = " << (double) m_cpt_br_inval / m_cpt_cycles << std::endl
    753                 << "   - WRITE DIRTY RATE      = " << (double) m_cpt_write_dirty / m_cpt_cycles << std::endl
     754                << "[122] INVAL BROADCAST RATE  = " << (double) m_cpt_br_inval / m_cpt_cycles << std::endl
     755                << "[123] WRITE DIRTY RATE      = " << (double) m_cpt_write_dirty / m_cpt_cycles << std::endl
    754756                << std::endl
    755                 << "   - CLEANUP RATE          = " << (double) (m_cpt_cleanup_local + m_cpt_cleanup_remote) / m_cpt_cycles << std::endl
    756                 << "   - LOCAL CLEANUP RATE    = " << (double) m_cpt_cleanup_local / m_cpt_cycles << std::endl
    757                 << "   - REMOTE CLEANUP RATE   = " << (double) m_cpt_cleanup_remote / m_cpt_cycles << std::endl
    758                 << "   - LL RATE               = " << (double) (m_cpt_ll_local + m_cpt_ll_remote) / m_cpt_cycles << std::endl
    759                 << "   - LOCAL LL RATE         = " << (double) m_cpt_ll_local / m_cpt_cycles << std::endl
    760                 << "   - REMOTE LL RATE        = " << (double) m_cpt_ll_remote / m_cpt_cycles << std::endl
    761                 << "   - SC RATE               = " << (double) (m_cpt_sc_local + m_cpt_sc_remote) / m_cpt_cycles << std::endl
    762                 << "   - LOCAL SC RATE         = " << (double) m_cpt_sc_local / m_cpt_cycles << std::endl
    763                 << "   - REMOTE SC RATE        = " << (double) m_cpt_sc_remote / m_cpt_cycles << std::endl
    764                 << "   - CAS RATE              = " << (double) (m_cpt_cas_local + m_cpt_cas_remote) / m_cpt_cycles << std::endl
    765                 << "   - LOCAL CAS RATE        = " << (double) m_cpt_cas_local / m_cpt_cycles << std::endl
    766                 << "   - REMOTE CAS RATE       = " << (double) m_cpt_cas_remote / m_cpt_cycles << std::endl;
     757                << "[124] CLEANUP RATE          = " << (double) (m_cpt_cleanup_local + m_cpt_cleanup_remote) / m_cpt_cycles << std::endl
     758                << "[125] LOCAL CLEANUP RATE    = " << (double) m_cpt_cleanup_local / m_cpt_cycles << std::endl
     759                << "[126] REMOTE CLEANUP RATE   = " << (double) m_cpt_cleanup_remote / m_cpt_cycles << std::endl
     760                << "[127] LL RATE               = " << (double) (m_cpt_ll_local + m_cpt_ll_remote) / m_cpt_cycles << std::endl
     761                << "[128] LOCAL LL RATE         = " << (double) m_cpt_ll_local / m_cpt_cycles << std::endl
     762                << "[129] REMOTE LL RATE        = " << (double) m_cpt_ll_remote / m_cpt_cycles << std::endl
     763                << "[130] SC RATE               = " << (double) (m_cpt_sc_local + m_cpt_sc_remote) / m_cpt_cycles << std::endl
     764                << "[131] LOCAL SC RATE         = " << (double) m_cpt_sc_local / m_cpt_cycles << std::endl
     765                << "[132] REMOTE SC RATE        = " << (double) m_cpt_sc_remote / m_cpt_cycles << std::endl
     766                << "[133] CAS RATE              = " << (double) (m_cpt_cas_local + m_cpt_cas_remote) / m_cpt_cycles << std::endl
     767                << "[134] LOCAL CAS RATE        = " << (double) m_cpt_cas_local / m_cpt_cycles << std::endl
     768                << "[135] REMOTE CAS RATE       = " << (double) m_cpt_cas_remote / m_cpt_cycles << std::endl
     769                << std::endl
     770                << std::endl;
    767771        }
    768772    }
Note: See TracChangeset for help on using the changeset viewer.