Changeset 780
- Timestamp:
- Aug 28, 2014, 6:08:03 PM (10 years ago)
- Location:
- branches/RWT/modules/vci_mem_cache/caba/source
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/RWT/modules/vci_mem_cache/caba/source/include/vci_mem_cache.h
r771 r780 562 562 uint32_t m_cpt_ncc_to_cc_read; // NB change from NCC to CC caused by a READ 563 563 uint32_t m_cpt_ncc_to_cc_write; // NB change from NCC to CC caused by a WRITE 564 uint32_t m_cpt_ncc_to_cc; // NB change from NCC to CC565 564 566 565 uint32_t m_cpt_read_data_unc; -
branches/RWT/modules/vci_mem_cache/caba/source/src/vci_mem_cache.cpp
r771 r780 884 884 m_cpt_ncc_to_cc_read = 0; 885 885 m_cpt_ncc_to_cc_write = 0; 886 m_cpt_ncc_to_cc = 0;887 886 m_cpt_write_ncc_miss = 0; 888 887 } … … 903 902 << "[001] NUMBER OF CYCLES = " << m_cpt_cycles << std::endl 904 903 << std::endl 905 << "[0 02] LOCAL READ = " << m_cpt_read_local << std::endl906 << "[0 03] REMOTE READ = " << m_cpt_read_remote << std::endl907 << "[0 04] READ COST (FLITS * DIST) = " << m_cpt_read_cost << std::endl904 << "[010] LOCAL READ = " << m_cpt_read_local << std::endl 905 << "[011] REMOTE READ = " << m_cpt_read_remote << std::endl 906 << "[012] READ COST (FLITS * DIST) = " << m_cpt_read_cost << std::endl 908 907 << std::endl 909 << "[0 05] LOCAL WRITE = " << m_cpt_write_local << std::endl910 << "[0 06] REMOTE WRITE = " << m_cpt_write_remote << std::endl911 << "[0 07] WRITE FLITS LOCAL = " << m_cpt_write_flits_local << std::endl912 << "[0 08] WRITE FLITS REMOTE = " << m_cpt_write_flits_remote << std::endl913 << "[0 09] WRITE COST (FLITS * DIST) = " << m_cpt_write_cost << std::endl914 << "[ XXX] WRITE L1 MISS NCC = " << m_cpt_write_ncc_miss << std::endl908 << "[020] LOCAL WRITE = " << m_cpt_write_local << std::endl 909 << "[021] REMOTE WRITE = " << m_cpt_write_remote << std::endl 910 << "[022] WRITE FLITS LOCAL = " << m_cpt_write_flits_local << std::endl 911 << "[023] WRITE FLITS REMOTE = " << m_cpt_write_flits_remote << std::endl 912 << "[024] WRITE COST (FLITS * DIST) = " << m_cpt_write_cost << std::endl 913 << "[025] WRITE L1 MISS NCC = " << m_cpt_write_ncc_miss << std::endl 915 914 << std::endl 916 << "[0 10] LOCAL LL = " << m_cpt_ll_local << std::endl917 << "[0 11] REMOTE LL = " << m_cpt_ll_remote << std::endl918 << "[0 12] LL COST (FLITS * DIST) = " << m_cpt_ll_cost << std::endl915 << "[030] LOCAL LL = " << m_cpt_ll_local << std::endl 916 << "[031] REMOTE LL = " << m_cpt_ll_remote << std::endl 917 << "[032] LL COST (FLITS * DIST) = " << m_cpt_ll_cost << std::endl 919 918 << std::endl 920 << "[0 13] LOCAL SC = " << m_cpt_sc_local << std::endl921 << "[0 14] REMOTE SC = " << m_cpt_sc_remote << std::endl922 << "[0 15] SC COST (FLITS * DIST) = " << m_cpt_sc_cost << std::endl919 << "[040] LOCAL SC = " << m_cpt_sc_local << std::endl 920 << "[041] REMOTE SC = " << m_cpt_sc_remote << std::endl 921 << "[042] SC COST (FLITS * DIST) = " << m_cpt_sc_cost << std::endl 923 922 << std::endl 924 << "[0 16] LOCAL CAS = " << m_cpt_cas_local << std::endl925 << "[0 17] REMOTE CAS = " << m_cpt_cas_remote << std::endl926 << "[0 18] CAS COST (FLITS * DIST) = " << m_cpt_cas_cost << std::endl923 << "[050] LOCAL CAS = " << m_cpt_cas_local << std::endl 924 << "[051] REMOTE CAS = " << m_cpt_cas_remote << std::endl 925 << "[052] CAS COST (FLITS * DIST) = " << m_cpt_cas_cost << std::endl 927 926 << std::endl 928 << "[0 19] REQUESTS TRIG. UPDATE = " << m_cpt_update << std::endl929 << "[0 20] LOCAL UPDATE = " << m_cpt_update_local << std::endl930 << "[0 21] REMOTE UPDATE = " << m_cpt_update_remote << std::endl931 << "[0 22] UPDT COST (FLITS * DIST) = " << m_cpt_update_cost << std::endl927 << "[060] REQUESTS TRIG. UPDATE = " << m_cpt_update << std::endl 928 << "[061] LOCAL UPDATE = " << m_cpt_update_local << std::endl 929 << "[062] REMOTE UPDATE = " << m_cpt_update_remote << std::endl 930 << "[063] UPDT COST (FLITS * DIST) = " << m_cpt_update_cost << std::endl 932 931 << std::endl 933 << "[0 23] REQUESTS TRIG. M_INV = " << m_cpt_minval << std::endl934 << "[0 24] LOCAL M_INV = " << m_cpt_minval_local << std::endl935 << "[0 25] REMOTE M_INV = " << m_cpt_minval_remote << std::endl936 << "[0 26] M_INV COST (FLITS * DIST) = " << m_cpt_minval_cost << std::endl932 << "[070] REQUESTS TRIG. M_INV = " << m_cpt_minval << std::endl 933 << "[071] LOCAL M_INV = " << m_cpt_minval_local << std::endl 934 << "[072] REMOTE M_INV = " << m_cpt_minval_remote << std::endl 935 << "[073] M_INV COST (FLITS * DIST) = " << m_cpt_minval_cost << std::endl 937 936 << std::endl 938 << "[027] BROADCAT INVAL = " << m_cpt_binval << std::endl 937 << "[080] BROADCAT INVAL = " << m_cpt_binval << std::endl 938 << "[081] WRITE BROADCAST = " << m_cpt_write_broadcast << std::endl 939 939 << std::endl 940 << "[028] LOCAL CLEANUP = " << m_cpt_cleanup_local << std::endl 941 << "[029] REMOTE CLEANUP = " << m_cpt_cleanup_remote << std::endl 942 << "[030] CLNUP COST (FLITS * DIST) = " << m_cpt_cleanup_cost << std::endl 940 << "[090] LOCAL CLEANUP = " << m_cpt_cleanup_local << std::endl 941 << "[091] REMOTE CLEANUP = " << m_cpt_cleanup_remote << std::endl 942 << "[092] CLNUP COST (FLITS * DIST) = " << m_cpt_cleanup_cost << std::endl 943 << "[093] CLEANUP DATA = " << m_cpt_cleanup_data << std::endl 943 944 << std::endl 945 << "[100] READ MISS = " << m_cpt_read_miss << std::endl 946 << "[101] WRITE MISS = " << m_cpt_write_miss << std::endl 947 << "[102] WRITE DIRTY = " << m_cpt_write_dirty << std::endl 944 948 << std::endl 945 << "[031] READ MISS = " << m_cpt_read_miss << std::endl 946 << "[032] WRITE MISS = " << m_cpt_write_miss << std::endl 947 << "[033] WRITE DIRTY = " << m_cpt_write_dirty << std::endl 948 << "[034] RD BLOCKED BY HIT IN TRT = " << m_cpt_trt_rb << std::endl 949 << "[035] TRANS BLOCKED BY FULL TRT = " << m_cpt_trt_full << std::endl 950 << "[036] PUT (UNIMPLEMENTED) = " << m_cpt_put << std::endl 951 << "[037] GET (UNIMPLEMENTED) = " << m_cpt_get << std::endl 952 << "[038] WRITE BROADCAST = " << m_cpt_write_broadcast << std::endl 953 << "[039] MIN HEAP SLOT AVAILABLE = " << m_cpt_heap_min_slot_available << std::endl 949 << "[110] RD BLOCKED BY HIT IN TRT = " << m_cpt_trt_rb << std::endl 950 << "[111] TRANS BLOCKED BY FULL TRT = " << m_cpt_trt_full << std::endl 951 << "[120] PUT (UNIMPLEMENTED) = " << m_cpt_put << std::endl 952 << "[121] GET (UNIMPLEMENTED) = " << m_cpt_get << std::endl 953 << "[130] MIN HEAP SLOT AVAILABLE = " << m_cpt_heap_min_slot_available << std::endl 954 954 << std::endl 955 << "[040] CLEANUP DATA (FLITS) = " << m_cpt_cleanup_data * 16 << std::endl 956 << "[041] NCC TO CC (READ) = " << m_cpt_ncc_to_cc_read << std::endl 957 << "[042] NCC TO CC (WRITE) = " << m_cpt_ncc_to_cc_write << std::endl 958 << "[043] NCC TO CC (TOTAL) = " << m_cpt_ncc_to_cc << std::endl 955 << "[140] NCC TO CC (READ) = " << m_cpt_ncc_to_cc_read << std::endl 956 << "[141] NCC TO CC (WRITE) = " << m_cpt_ncc_to_cc_write << std::endl 959 957 << std::endl; 960 958 } … … 965 963 std::cout << "----------------------------------" << std::dec << std::endl; 966 964 std::cout 967 << "[ 100] READ TOTAL = " << m_cpt_read_local + m_cpt_read_remote << std::endl968 << "[ 101] READ RATE = " << (double) (m_cpt_read_local + m_cpt_read_remote) / m_cpt_cycles << std::endl969 << "[ 102] LOCAL READ RATE = " << (double) m_cpt_read_local / m_cpt_cycles << std::endl970 << "[ 103] REMOTE READ RATE = " << (double) m_cpt_read_remote / m_cpt_cycles << std::endl971 << "[ 104] READ MISS RATE = " << (double) m_cpt_read_miss / (m_cpt_read_local + m_cpt_read_remote) << std::endl965 << "[300] READ TOTAL = " << m_cpt_read_local + m_cpt_read_remote << std::endl 966 << "[301] READ RATE = " << (double) (m_cpt_read_local + m_cpt_read_remote) / m_cpt_cycles << std::endl 967 << "[302] LOCAL READ RATE = " << (double) m_cpt_read_local / m_cpt_cycles << std::endl 968 << "[303] REMOTE READ RATE = " << (double) m_cpt_read_remote / m_cpt_cycles << std::endl 969 << "[304] READ MISS RATE = " << (double) m_cpt_read_miss / (m_cpt_read_local + m_cpt_read_remote) << std::endl 972 970 << std::endl 973 << "[ 105] WRITE TOTAL = " << m_cpt_write_local + m_cpt_write_remote << std::endl974 << "[ 106] WRITE RATE = " << (double) (m_cpt_write_local + m_cpt_write_remote) / m_cpt_cycles << std::endl975 << "[ 107] LOCAL WRITE RATE = " << (double) m_cpt_write_local / m_cpt_cycles << std::endl976 << "[ 108] REMOTE WRITE RATE = " << (double) m_cpt_write_remote / m_cpt_cycles << std::endl977 << "[ 109] WRITE MISS RATE = " << (double) m_cpt_write_miss / (m_cpt_write_local + m_cpt_write_remote) << std::endl978 << "[ 110] WRITE BURST TOTAL = " << m_cpt_write_flits_local + m_cpt_write_flits_remote << std::endl979 << "[ 111] WRITE BURST AVERAGE = " << (double) (m_cpt_write_flits_local + m_cpt_write_flits_remote) / (m_cpt_write_local + m_cpt_write_remote) << std::endl980 << "[ 112] LOCAL WRITE BURST AV. = " << (double) m_cpt_write_flits_local / (m_cpt_write_local + m_cpt_write_remote) << std::endl981 << "[ 113] REMOTE WRITE BURST AV = " << (double) m_cpt_write_flits_remote / (m_cpt_write_local + m_cpt_write_remote) << std::endl971 << "[305] WRITE TOTAL = " << m_cpt_write_local + m_cpt_write_remote << std::endl 972 << "[306] WRITE RATE = " << (double) (m_cpt_write_local + m_cpt_write_remote) / m_cpt_cycles << std::endl 973 << "[307] LOCAL WRITE RATE = " << (double) m_cpt_write_local / m_cpt_cycles << std::endl 974 << "[308] REMOTE WRITE RATE = " << (double) m_cpt_write_remote / m_cpt_cycles << std::endl 975 << "[309] WRITE MISS RATE = " << (double) m_cpt_write_miss / (m_cpt_write_local + m_cpt_write_remote) << std::endl 976 << "[310] WRITE BURST TOTAL = " << m_cpt_write_flits_local + m_cpt_write_flits_remote << std::endl 977 << "[311] WRITE BURST AVERAGE = " << (double) (m_cpt_write_flits_local + m_cpt_write_flits_remote) / (m_cpt_write_local + m_cpt_write_remote) << std::endl 978 << "[312] LOCAL WRITE BURST AV. = " << (double) m_cpt_write_flits_local / (m_cpt_write_local + m_cpt_write_remote) << std::endl 979 << "[313] REMOTE WRITE BURST AV = " << (double) m_cpt_write_flits_remote / (m_cpt_write_local + m_cpt_write_remote) << std::endl 982 980 << std::endl 983 << "[ 114] UPDATE RATE = " << (double) m_cpt_update / m_cpt_cycles << std::endl984 << "[ 115] AV. UPDATE PER UP REQ = " << (double) (m_cpt_update_local + m_cpt_update_remote) / m_cpt_update << std::endl985 << "[ 116] AV. LOC UPDT PER UP REQ = " << (double) m_cpt_update_local / m_cpt_update << std::endl986 << "[ 117] AV. REMOTE UPDT PER UP REQ = " << (double) m_cpt_update_remote / m_cpt_update << std::endl981 << "[314] UPDATE RATE = " << (double) m_cpt_update / m_cpt_cycles << std::endl 982 << "[315] AV. UPDATE PER UP REQ = " << (double) (m_cpt_update_local + m_cpt_update_remote) / m_cpt_update << std::endl 983 << "[316] AV. LOC UPDT PER UP REQ = " << (double) m_cpt_update_local / m_cpt_update << std::endl 984 << "[317] AV. REMOTE UPDT PER UP REQ = " << (double) m_cpt_update_remote / m_cpt_update << std::endl 987 985 << std::endl 988 << "[ 118] INVAL MULTICAST RATE = " << (double) m_cpt_minval / m_cpt_cycles << std::endl989 << "[ 119] AVE. INVAL PER M_INV = " << (double) (m_cpt_minval_local + m_cpt_minval_remote) / m_cpt_minval << std::endl990 << "[ 120] AV. LOC INV PER M_INV = " << (double) m_cpt_minval_local / m_cpt_minval << std::endl991 << "[ 121] AV. REM INV PER M_INV = " << (double) m_cpt_minval_remote / m_cpt_minval << std::endl986 << "[318] INVAL MULTICAST RATE = " << (double) m_cpt_minval / m_cpt_cycles << std::endl 987 << "[319] AVE. INVAL PER M_INV = " << (double) (m_cpt_minval_local + m_cpt_minval_remote) / m_cpt_minval << std::endl 988 << "[320] AV. LOC INV PER M_INV = " << (double) m_cpt_minval_local / m_cpt_minval << std::endl 989 << "[321] AV. REM INV PER M_INV = " << (double) m_cpt_minval_remote / m_cpt_minval << std::endl 992 990 << std::endl 993 << "[ 122] INVAL BROADCAST RATE = " << (double) m_cpt_binval / m_cpt_cycles << std::endl994 << "[ 123] WRITE DIRTY RATE = " << (double) m_cpt_write_dirty / m_cpt_cycles << std::endl991 << "[322] INVAL BROADCAST RATE = " << (double) m_cpt_binval / m_cpt_cycles << std::endl 992 << "[323] WRITE DIRTY RATE = " << (double) m_cpt_write_dirty / m_cpt_cycles << std::endl 995 993 << std::endl 996 << "[ 124] CLEANUP RATE = " << (double) (m_cpt_cleanup_local + m_cpt_cleanup_remote) / m_cpt_cycles << std::endl997 << "[ 125] LOCAL CLEANUP RATE = " << (double) m_cpt_cleanup_local / m_cpt_cycles << std::endl998 << "[ 126] REMOTE CLEANUP RATE = " << (double) m_cpt_cleanup_remote / m_cpt_cycles << std::endl999 << "[ 127] LL RATE = " << (double) (m_cpt_ll_local + m_cpt_ll_remote) / m_cpt_cycles << std::endl1000 << "[ 128] LOCAL LL RATE = " << (double) m_cpt_ll_local / m_cpt_cycles << std::endl1001 << "[ 129] REMOTE LL RATE = " << (double) m_cpt_ll_remote / m_cpt_cycles << std::endl1002 << "[ 130] SC RATE = " << (double) (m_cpt_sc_local + m_cpt_sc_remote) / m_cpt_cycles << std::endl1003 << "[ 131] LOCAL SC RATE = " << (double) m_cpt_sc_local / m_cpt_cycles << std::endl1004 << "[ 132] REMOTE SC RATE = " << (double) m_cpt_sc_remote / m_cpt_cycles << std::endl1005 << "[ 133] CAS RATE = " << (double) (m_cpt_cas_local + m_cpt_cas_remote) / m_cpt_cycles << std::endl1006 << "[ 134] LOCAL CAS RATE = " << (double) m_cpt_cas_local / m_cpt_cycles << std::endl1007 << "[ 135] REMOTE CAS RATE = " << (double) m_cpt_cas_remote / m_cpt_cycles << std::endl994 << "[324] CLEANUP RATE = " << (double) (m_cpt_cleanup_local + m_cpt_cleanup_remote) / m_cpt_cycles << std::endl 995 << "[325] LOCAL CLEANUP RATE = " << (double) m_cpt_cleanup_local / m_cpt_cycles << std::endl 996 << "[326] REMOTE CLEANUP RATE = " << (double) m_cpt_cleanup_remote / m_cpt_cycles << std::endl 997 << "[327] LL RATE = " << (double) (m_cpt_ll_local + m_cpt_ll_remote) / m_cpt_cycles << std::endl 998 << "[328] LOCAL LL RATE = " << (double) m_cpt_ll_local / m_cpt_cycles << std::endl 999 << "[329] REMOTE LL RATE = " << (double) m_cpt_ll_remote / m_cpt_cycles << std::endl 1000 << "[330] SC RATE = " << (double) (m_cpt_sc_local + m_cpt_sc_remote) / m_cpt_cycles << std::endl 1001 << "[331] LOCAL SC RATE = " << (double) m_cpt_sc_local / m_cpt_cycles << std::endl 1002 << "[332] REMOTE SC RATE = " << (double) m_cpt_sc_remote / m_cpt_cycles << std::endl 1003 << "[333] CAS RATE = " << (double) (m_cpt_cas_local + m_cpt_cas_remote) / m_cpt_cycles << std::endl 1004 << "[334] LOCAL CAS RATE = " << (double) m_cpt_cas_local / m_cpt_cycles << std::endl 1005 << "[335] REMOTE CAS RATE = " << (double) m_cpt_cas_remote / m_cpt_cycles << std::endl 1008 1006 << std::endl 1009 1007 << std::endl; … … 1276 1274 m_cpt_ncc_to_cc_read = 0; 1277 1275 m_cpt_ncc_to_cc_write = 0; 1278 m_cpt_ncc_to_cc = 0;1279 1276 1280 1277 m_cpt_heap_min_slot_available = m_heap_size; … … 5928 5925 5929 5926 5930 if (inval_request) m_cpt_ncc_to_cc ++;5931 5927 5932 5928 if (r_write_to_cleanup_req.read() and (r_cleanup_nline.read() == r_write_to_cleanup_nline.read()))
Note: See TracChangeset
for help on using the changeset viewer.