From 0fa3c492a2c341b4c314a676f80b0b1598f02285 Mon Sep 17 00:00:00 2001 From: wangzd12138 Date: Tue, 25 Jun 2024 13:07:04 +0800 Subject: [PATCH 01/23] add dynamic-randomized skewed cache --- cache/cache.hpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/cache/cache.hpp b/cache/cache.hpp index 9d4484f..dbf985a 100644 --- a/cache/cache.hpp +++ b/cache/cache.hpp @@ -363,4 +363,40 @@ class CacheSkewed : public CacheBase template using CacheNorm = CacheSkewed; +// Dynamic-Randomized support for CacheBase +class CacheBaseDRSupport +{ +public: + CacheBaseDRSupport() {} + virtual ~CacheBaseDRSupport() {} + + virtual void seed(std::vector& seeds) = 0; +}; + +// Dynamic-Randomized Skewed Cache +// IW: index width, NW: number of ways, P: number of partitions +// MT: metadata type, DT: data type (void if not in use) +// IDX: indexer type, RPC: replacer type +// EnMon: whether to enable monitoring +template + requires C_DERIVE + && C_DERIVE_OR_VOID + && C_DERIVE> + && C_DERIVE_OR_VOID +class CacheSkewedDR : public CacheSkewed, + public CacheBaseDRSupport +{ + typedef CacheSkewed CacheT; + +protected: + using CacheT::indexer; + +public: + CacheSkewedDR(std::string name = "", unsigned int extra_par = 0, unsigned int extra_way = 0) + : CacheT(name, extra_par, extra_way){} + virtual ~CacheSkewedDR() {} + + virtual void seed(std::vector& seeds) { indexer.seed(seeds);} +}; + #endif From 879c605643bfceca8d828b0cfed4cb86a56c99e5 Mon Sep 17 00:00:00 2001 From: wangzd12138 Date: Wed, 26 Jun 2024 11:03:13 +0800 Subject: [PATCH 02/23] add InnerCohPortDRT --- cache/coherence.hpp | 82 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/cache/coherence.hpp b/cache/coherence.hpp index c64d4a0..f2b7fca 100644 --- a/cache/coherence.hpp +++ b/cache/coherence.hpp @@ -6,6 +6,7 @@ #include "cache/slicehash.hpp" #include #include +#include class OuterCohPortBase; class InnerCohPortBase; @@ -341,6 +342,87 @@ class InnerCohPortT : public IPUC } }; +template + requires C_DERIVE> + && C_DERIVE +class InnerCohPortDRT : public InnerCohPortT +{ + typedef InnerCohPortT InnerT; + +protected: + using InnerT::cache; + +public: + InnerCohPortDRT(policy_ptr policy) : InnerT(policy){} + virtual ~InnerCohPortDRT() {} + + void remap(){ + auto cache = static_cast(InnerCohPortBase::cache); + auto[P, nset, nway] = cache->size(); + // TODO: pause monitors. + // cache->monitors->pause_monitor(); + std::vector newSeeds; + for(int i=0; iseed(newSeeds); + std::unordered_set remapped; + for(uint32_t ai = 0; ai < P; ai++){ + for(uint32_t idx = 0; idx < nset; idx++){ + for(uint32_t way = 0; way < nway; way++){ + CMMetadataBase *meta = nullptr; + CMDataBase *data = nullptr; + std::tie(meta, data) = cache->access_line(ai, idx, way); + auto c_meta = cache->meta_copy_buffer(); + c_meta->init(meta->addr(idx)); + c_meta->copy(meta); + auto c_data = cache->data_copy_buffer(); + if(data) c_data->copy(data); + uint64_t c_addr = c_meta->addr(idx); + if(meta->is_valid() && !remapped.count(c_addr)){ + meta->to_invalid(); + cache->hook_manage(c_addr, ai, idx, way, true, true, false, c_meta, c_data, nullptr); + while(c_meta->is_valid() && !remapped.count(c_addr)){ + uint32_t new_idx, new_way; + cache->replace(c_addr, &ai, &new_idx, &new_way); + CMMetadataBase *m_meta = nullptr; + CMDataBase *m_data = nullptr; + std::tie(m_meta, m_data) = cache->access_line(ai, new_idx, new_way); + uint64_t m_addr = m_meta->addr(new_idx); + auto c_m_meta = cache->meta_copy_buffer(); + c_m_meta->init(m_addr); + c_m_meta->copy(m_meta); + auto c_m_data = cache->data_copy_buffer(); + if(m_data) c_m_data->copy(m_data); + if(remapped.count(m_addr) && c_m_meta->is_valid()) this->evict(m_meta, m_data, ai, new_idx, new_way, nullptr); + else cache->hook_manage(m_addr, ai, new_idx, new_way, true, true, false, c_m_meta, c_m_data, nullptr); + m_meta->init(c_addr); + m_meta->copy(c_meta); + if(c_data) m_data->copy(c_data); + cache->hook_read(c_addr, ai, new_idx, new_way, true, m_meta, m_data, nullptr); + remapped.insert(c_addr); + c_addr = m_addr; + c_meta->init(m_addr); + c_meta->copy(c_m_meta); + if(c_m_data) c_data->copy(c_m_data); + cache->meta_return_buffer(c_m_meta); + cache->data_return_buffer(c_m_data); + } + } + cache->meta_return_buffer(c_meta); + cache->data_return_buffer(c_data); + } + } + } + // TODO: resume monitors + // cache->monitors->resume_monitor(); + } + + virtual void finish_resp(uint64_t addr, coh_cmd_t outer_cmd){ + // TODO: If the monitor identifies a remap, do it. + // if(cache->monitors->remap_monitor()) remap(); + InnerT::finish_resp(addr, outer_cmd); + } +}; + template using InnerCohPort = InnerCohPortT, EnMT>; From be54b04495d2c7ed4b1cb8268d1593c28fd8e425 Mon Sep 17 00:00:00 2001 From: wangzd12138 Date: Thu, 27 Jun 2024 13:07:27 +0800 Subject: [PATCH 03/23] refactored remap function --- cache/coherence.hpp | 93 +++++++++++++++++++++++++-------------------- 1 file changed, 52 insertions(+), 41 deletions(-) diff --git a/cache/coherence.hpp b/cache/coherence.hpp index f2b7fca..d92d15c 100644 --- a/cache/coherence.hpp +++ b/cache/coherence.hpp @@ -368,47 +368,7 @@ class InnerCohPortDRT : public InnerCohPortT for(uint32_t ai = 0; ai < P; ai++){ for(uint32_t idx = 0; idx < nset; idx++){ for(uint32_t way = 0; way < nway; way++){ - CMMetadataBase *meta = nullptr; - CMDataBase *data = nullptr; - std::tie(meta, data) = cache->access_line(ai, idx, way); - auto c_meta = cache->meta_copy_buffer(); - c_meta->init(meta->addr(idx)); - c_meta->copy(meta); - auto c_data = cache->data_copy_buffer(); - if(data) c_data->copy(data); - uint64_t c_addr = c_meta->addr(idx); - if(meta->is_valid() && !remapped.count(c_addr)){ - meta->to_invalid(); - cache->hook_manage(c_addr, ai, idx, way, true, true, false, c_meta, c_data, nullptr); - while(c_meta->is_valid() && !remapped.count(c_addr)){ - uint32_t new_idx, new_way; - cache->replace(c_addr, &ai, &new_idx, &new_way); - CMMetadataBase *m_meta = nullptr; - CMDataBase *m_data = nullptr; - std::tie(m_meta, m_data) = cache->access_line(ai, new_idx, new_way); - uint64_t m_addr = m_meta->addr(new_idx); - auto c_m_meta = cache->meta_copy_buffer(); - c_m_meta->init(m_addr); - c_m_meta->copy(m_meta); - auto c_m_data = cache->data_copy_buffer(); - if(m_data) c_m_data->copy(m_data); - if(remapped.count(m_addr) && c_m_meta->is_valid()) this->evict(m_meta, m_data, ai, new_idx, new_way, nullptr); - else cache->hook_manage(m_addr, ai, new_idx, new_way, true, true, false, c_m_meta, c_m_data, nullptr); - m_meta->init(c_addr); - m_meta->copy(c_meta); - if(c_data) m_data->copy(c_data); - cache->hook_read(c_addr, ai, new_idx, new_way, true, m_meta, m_data, nullptr); - remapped.insert(c_addr); - c_addr = m_addr; - c_meta->init(m_addr); - c_meta->copy(c_m_meta); - if(c_m_data) c_data->copy(c_m_data); - cache->meta_return_buffer(c_m_meta); - cache->data_return_buffer(c_m_data); - } - } - cache->meta_return_buffer(c_meta); - cache->data_return_buffer(c_data); + multi_relocation(cache, ai, idx, way, remapped); } } } @@ -421,6 +381,57 @@ class InnerCohPortDRT : public InnerCohPortT // if(cache->monitors->remap_monitor()) remap(); InnerT::finish_resp(addr, outer_cmd); } + +protected: + void copy(CMMetadataBase* meta, CMDataBase* data, CMMetadataBase* c_meta, CMDataBase* c_data, uint64_t addr) { + c_meta->init(addr); + c_meta->copy(meta); + if(data) c_data->copy(data); + } + + void relocation(CT* cache, CMMetadataBase* c_meta, CMDataBase* c_data, uint64_t& c_addr, uint32_t ai, std::unordered_set& remapped) { + uint32_t new_idx, new_way; + cache->replace(c_addr, &ai, &new_idx, &new_way); + auto[m_meta, m_data] = cache->access_line(ai, new_idx, new_way); + uint64_t m_addr = m_meta->addr(new_idx); + auto c_m_meta = cache->meta_copy_buffer(); + auto c_m_data = m_data ? cache->data_copy_buffer() : nullptr; + + copy(m_meta, m_data, c_m_meta, c_m_data, m_addr); + + if (c_m_meta->is_valid()) { + if (remapped.count(m_addr)) this->evict(m_meta, m_data, ai, new_idx, new_way, nullptr); + else cache->hook_manage(m_addr, ai, new_idx, new_way, true, true, false, c_m_meta, c_m_data, nullptr); + } + + copy(c_meta, c_data, m_meta, m_data, c_addr); + cache->hook_read(c_addr, ai, new_idx, new_way, true, m_meta, m_data, nullptr); + + remapped.insert(c_addr); + c_addr = m_addr; + copy(c_m_meta, c_m_data, c_meta, c_data, m_addr); + + cache->meta_return_buffer(c_m_meta); + cache->data_return_buffer(c_m_data); + } + + void multi_relocation(CT* cache, uint32_t ai, uint32_t idx, uint32_t way, std::unordered_set& remapped) { + auto[meta, data] = cache->access_line(ai, idx, way); + uint64_t c_addr = meta->addr(idx); + if (!meta->is_valid() || remapped.count(c_addr)) return; + auto c_meta = cache->meta_copy_buffer(); + auto c_data = data ? cache->data_copy_buffer() : nullptr; + copy(meta, data, c_meta, c_data, c_addr); + + meta->to_invalid(); + cache->hook_manage(c_addr, ai, idx, way, true, true, false, c_meta, c_data, nullptr); + + while(c_meta->is_valid() && !remapped.count(c_addr)){ + relocation(cache, c_meta, c_data, c_addr, ai, remapped); + } + cache->meta_return_buffer(c_meta); + cache->data_return_buffer(c_data); + } }; template From ad4135d0d0a67a0509ee7381eb0686139765fde7 Mon Sep 17 00:00:00 2001 From: wangzd12138 Date: Fri, 28 Jun 2024 23:13:02 +0800 Subject: [PATCH 04/23] simplify multi-step relocation in remap --- cache/coherence.hpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cache/coherence.hpp b/cache/coherence.hpp index d92d15c..3ce90d2 100644 --- a/cache/coherence.hpp +++ b/cache/coherence.hpp @@ -368,7 +368,7 @@ class InnerCohPortDRT : public InnerCohPortT for(uint32_t ai = 0; ai < P; ai++){ for(uint32_t idx = 0; idx < nset; idx++){ for(uint32_t way = 0; way < nway; way++){ - multi_relocation(cache, ai, idx, way, remapped); + multi_relocation(ai, idx, way, remapped); } } } @@ -389,7 +389,7 @@ class InnerCohPortDRT : public InnerCohPortT if(data) c_data->copy(data); } - void relocation(CT* cache, CMMetadataBase* c_meta, CMDataBase* c_data, uint64_t& c_addr, uint32_t ai, std::unordered_set& remapped) { + void relocation(CMMetadataBase* c_meta, CMDataBase* c_data, uint64_t& c_addr, uint32_t ai, std::unordered_set& remapped) { uint32_t new_idx, new_way; cache->replace(c_addr, &ai, &new_idx, &new_way); auto[m_meta, m_data] = cache->access_line(ai, new_idx, new_way); @@ -415,7 +415,7 @@ class InnerCohPortDRT : public InnerCohPortT cache->data_return_buffer(c_m_data); } - void multi_relocation(CT* cache, uint32_t ai, uint32_t idx, uint32_t way, std::unordered_set& remapped) { + void multi_relocation(uint32_t ai, uint32_t idx, uint32_t way, std::unordered_set& remapped) { auto[meta, data] = cache->access_line(ai, idx, way); uint64_t c_addr = meta->addr(idx); if (!meta->is_valid() || remapped.count(c_addr)) return; @@ -427,7 +427,7 @@ class InnerCohPortDRT : public InnerCohPortT cache->hook_manage(c_addr, ai, idx, way, true, true, false, c_meta, c_data, nullptr); while(c_meta->is_valid() && !remapped.count(c_addr)){ - relocation(cache, c_meta, c_data, c_addr, ai, remapped); + relocation(c_meta, c_data, c_addr, ai, remapped); } cache->meta_return_buffer(c_meta); cache->data_return_buffer(c_data); From e221bd86a7ab683f724416125686134b3050673b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wei=20Song=20=28=E5=AE=8B=E5=A8=81=29?= Date: Mon, 1 Jul 2024 10:56:35 +0800 Subject: [PATCH 05/23] Update coherence.hpp Rename class for easier understanding. Move common data out of functions. Move special function to private. --- cache/coherence.hpp | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/cache/coherence.hpp b/cache/coherence.hpp index 3ce90d2..fef5514 100644 --- a/cache/coherence.hpp +++ b/cache/coherence.hpp @@ -345,30 +345,38 @@ class InnerCohPortT : public IPUC template requires C_DERIVE> && C_DERIVE -class InnerCohPortDRT : public InnerCohPortT +class InnerCohPortRemapT : public InnerCohPortT { typedef InnerCohPortT InnerT; + std::unordered_set remapped; + + // copy a cache line (both meta and data) + void copy(CMMetadataBase* meta, CMDataBase* data, CMMetadataBase* c_meta, CMDataBase* c_data, uint64_t addr) { + c_meta->init(addr); + c_meta->copy(meta); + if(data) c_data->copy(data); + } protected: using InnerT::cache; public: - InnerCohPortDRT(policy_ptr policy) : InnerT(policy){} - virtual ~InnerCohPortDRT() {} + InnerCohPortRemapT(policy_ptr policy) : InnerT(policy){} + virtual ~InnerCohPortRemapT() {} void remap(){ auto cache = static_cast(InnerCohPortBase::cache); auto[P, nset, nway] = cache->size(); // TODO: pause monitors. // cache->monitors->pause_monitor(); - std::vector newSeeds; - for(int i=0; iseed(newSeeds); - std::unordered_set remapped; + std::vector seeds(P); + for(auto &s:seeds) s = cm_get_random_uint64(); + cache->seed(seeds); + remapped.clear(); for(uint32_t ai = 0; ai < P; ai++){ for(uint32_t idx = 0; idx < nset; idx++){ for(uint32_t way = 0; way < nway; way++){ - multi_relocation(ai, idx, way, remapped); + relocation_chain(ai, idx, way); } } } @@ -383,13 +391,7 @@ class InnerCohPortDRT : public InnerCohPortT } protected: - void copy(CMMetadataBase* meta, CMDataBase* data, CMMetadataBase* c_meta, CMDataBase* c_data, uint64_t addr) { - c_meta->init(addr); - c_meta->copy(meta); - if(data) c_data->copy(data); - } - - void relocation(CMMetadataBase* c_meta, CMDataBase* c_data, uint64_t& c_addr, uint32_t ai, std::unordered_set& remapped) { + void relocation(CMMetadataBase* c_meta, CMDataBase* c_data, uint64_t& c_addr, uint32_t ai) { uint32_t new_idx, new_way; cache->replace(c_addr, &ai, &new_idx, &new_way); auto[m_meta, m_data] = cache->access_line(ai, new_idx, new_way); @@ -415,7 +417,7 @@ class InnerCohPortDRT : public InnerCohPortT cache->data_return_buffer(c_m_data); } - void multi_relocation(uint32_t ai, uint32_t idx, uint32_t way, std::unordered_set& remapped) { + void relocation_chain(uint32_t ai, uint32_t idx, uint32_t way) { auto[meta, data] = cache->access_line(ai, idx, way); uint64_t c_addr = meta->addr(idx); if (!meta->is_valid() || remapped.count(c_addr)) return; @@ -427,7 +429,7 @@ class InnerCohPortDRT : public InnerCohPortT cache->hook_manage(c_addr, ai, idx, way, true, true, false, c_meta, c_data, nullptr); while(c_meta->is_valid() && !remapped.count(c_addr)){ - relocation(c_meta, c_data, c_addr, ai, remapped); + relocation(c_meta, c_data, c_addr, ai); } cache->meta_return_buffer(c_meta); cache->data_return_buffer(c_data); From 46095b7a1b2c187031f396261570d7041ef7712b Mon Sep 17 00:00:00 2001 From: wangzd12138 Date: Wed, 31 Jul 2024 14:37:01 +0800 Subject: [PATCH 06/23] remove unnecessary support and rename CacheSkewedDR --- cache/cache.hpp | 19 ++++--------------- cache/coherence.hpp | 1 - 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/cache/cache.hpp b/cache/cache.hpp index cbad514..bf536c9 100644 --- a/cache/cache.hpp +++ b/cache/cache.hpp @@ -375,16 +375,6 @@ class CacheSkewed : public CacheBase template using CacheNorm = CacheSkewed; -// Dynamic-Randomized support for CacheBase -class CacheBaseDRSupport -{ -public: - CacheBaseDRSupport() {} - virtual ~CacheBaseDRSupport() {} - - virtual void seed(std::vector& seeds) = 0; -}; - // Dynamic-Randomized Skewed Cache // IW: index width, NW: number of ways, P: number of partitions // MT: metadata type, DT: data type (void if not in use) @@ -395,8 +385,7 @@ template && C_DERIVE> && C_DERIVE_OR_VOID -class CacheSkewedDR : public CacheSkewed, - public CacheBaseDRSupport +class CacheRemap : public CacheSkewed { typedef CacheSkewed CacheT; @@ -404,11 +393,11 @@ class CacheSkewedDR : public CacheSkewed& seeds) { indexer.seed(seeds);} + void seed(std::vector& seeds) { indexer.seed(seeds);} }; #endif diff --git a/cache/coherence.hpp b/cache/coherence.hpp index 5b45191..47566c7 100644 --- a/cache/coherence.hpp +++ b/cache/coherence.hpp @@ -416,7 +416,6 @@ class InnerCohPortT : public IPUC template requires C_DERIVE> - && C_DERIVE class InnerCohPortRemapT : public InnerCohPortT { typedef InnerCohPortT InnerT; From 592a2be6058540a3a598adff3d86c066ab7b27ce Mon Sep 17 00:00:00 2001 From: Zhidong Wang <88184546+wangzd12138@users.noreply.github.com> Date: Thu, 1 Aug 2024 14:34:50 +0800 Subject: [PATCH 07/23] use relocated-meta in remapping (#121) * use relocated-meta in remapping * modify copy function and access_line --- cache/coherence.hpp | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/cache/coherence.hpp b/cache/coherence.hpp index 47566c7..3e07431 100644 --- a/cache/coherence.hpp +++ b/cache/coherence.hpp @@ -414,7 +414,7 @@ class InnerCohPortT : public IPUC } }; -template +template requires C_DERIVE> class InnerCohPortRemapT : public InnerCohPortT { @@ -425,6 +425,8 @@ class InnerCohPortRemapT : public InnerCohPortT void copy(CMMetadataBase* meta, CMDataBase* data, CMMetadataBase* c_meta, CMDataBase* c_data, uint64_t addr) { c_meta->init(addr); c_meta->copy(meta); + if(static_cast(meta)->is_relocated()) static_cast(c_meta)->to_relocated(); + else static_cast(c_meta)->to_unrelocated(); if(data) c_data->copy(data); } @@ -443,7 +445,6 @@ class InnerCohPortRemapT : public InnerCohPortT std::vector seeds(P); for(auto &s:seeds) s = cm_get_random_uint64(); cache->seed(seeds); - remapped.clear(); for(uint32_t ai = 0; ai < P; ai++){ for(uint32_t idx = 0; idx < nset; idx++){ for(uint32_t way = 0; way < nway; way++){ @@ -451,6 +452,13 @@ class InnerCohPortRemapT : public InnerCohPortT } } } + for(uint32_t ai = 0; ai < P; ai++){ + for(uint32_t idx = 0; idx < nset; idx++){ + for(uint32_t way = 0; way < nway; way++){ + static_cast(cache->access(ai, idx, way))->to_unrelocated(); + } + } + } // TODO: resume monitors // cache->monitors->resume_monitor(); } @@ -464,7 +472,7 @@ class InnerCohPortRemapT : public InnerCohPortT protected: void relocation(CMMetadataBase* c_meta, CMDataBase* c_data, uint64_t& c_addr, uint32_t ai) { uint32_t new_idx, new_way; - cache->replace(c_addr, &ai, &new_idx, &new_way); + cache->replace(c_addr, &ai, &new_idx, &new_way, XactPrio::acquire); auto[m_meta, m_data] = cache->access_line(ai, new_idx, new_way); uint64_t m_addr = m_meta->addr(new_idx); auto c_m_meta = cache->meta_copy_buffer(); @@ -473,14 +481,14 @@ class InnerCohPortRemapT : public InnerCohPortT copy(m_meta, m_data, c_m_meta, c_m_data, m_addr); if (c_m_meta->is_valid()) { - if (remapped.count(m_addr)) this->evict(m_meta, m_data, ai, new_idx, new_way, nullptr); + if (static_cast(m_meta)->is_relocated()) this->evict(m_meta, m_data, ai, new_idx, new_way, nullptr); else cache->hook_manage(m_addr, ai, new_idx, new_way, true, true, false, c_m_meta, c_m_data, nullptr); } copy(c_meta, c_data, m_meta, m_data, c_addr); cache->hook_read(c_addr, ai, new_idx, new_way, true, m_meta, m_data, nullptr); - remapped.insert(c_addr); + static_cast(m_meta)->to_relocated(); c_addr = m_addr; copy(c_m_meta, c_m_data, c_meta, c_data, m_addr); @@ -491,15 +499,16 @@ class InnerCohPortRemapT : public InnerCohPortT void relocation_chain(uint32_t ai, uint32_t idx, uint32_t way) { auto[meta, data] = cache->access_line(ai, idx, way); uint64_t c_addr = meta->addr(idx); - if (!meta->is_valid() || remapped.count(c_addr)) return; + if (!meta->is_valid() || static_cast(meta)->is_relocated()) return; auto c_meta = cache->meta_copy_buffer(); auto c_data = data ? cache->data_copy_buffer() : nullptr; copy(meta, data, c_meta, c_data, c_addr); meta->to_invalid(); + static_cast(meta)->to_relocated(); cache->hook_manage(c_addr, ai, idx, way, true, true, false, c_meta, c_data, nullptr); - while(c_meta->is_valid() && !remapped.count(c_addr)){ + while(c_meta->is_valid() && !static_cast(c_meta)->is_relocated()){ relocation(c_meta, c_data, c_addr, ai); } cache->meta_return_buffer(c_meta); From 9294e99f49b79015e7b8562968dc60d8df8aba68 Mon Sep 17 00:00:00 2001 From: wangzd12138 Date: Mon, 19 Aug 2024 15:13:03 +0800 Subject: [PATCH 08/23] use relocate function in remap --- cache/coherence.hpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/cache/coherence.hpp b/cache/coherence.hpp index 4600fd9..af50621 100644 --- a/cache/coherence.hpp +++ b/cache/coherence.hpp @@ -419,11 +419,9 @@ class InnerCohPortRemapT : public InnerCohPortT // copy a cache line (both meta and data) void copy(CMMetadataBase* meta, CMDataBase* data, CMMetadataBase* c_meta, CMDataBase* c_data, uint64_t addr) { - c_meta->init(addr); - c_meta->copy(meta); + static_cast(cache)->relocate(addr, meta, c_meta, data, c_data); if(static_cast(meta)->is_relocated()) static_cast(c_meta)->to_relocated(); else static_cast(c_meta)->to_unrelocated(); - if(data) c_data->copy(data); } protected: @@ -474,12 +472,11 @@ class InnerCohPortRemapT : public InnerCohPortT auto c_m_meta = cache->meta_copy_buffer(); auto c_m_data = m_data ? cache->data_copy_buffer() : nullptr; - copy(m_meta, m_data, c_m_meta, c_m_data, m_addr); - - if (c_m_meta->is_valid()) { + if (m_meta->is_valid()) { if (static_cast(m_meta)->is_relocated()) this->evict(m_meta, m_data, ai, new_idx, new_way, nullptr); - else cache->hook_manage(m_addr, ai, new_idx, new_way, true, true, false, c_m_meta, c_m_data, nullptr); + else cache->hook_manage(m_addr, ai, new_idx, new_way, true, true, false, m_meta, m_data, nullptr); } + copy(m_meta, m_data, c_m_meta, c_m_data, m_addr); copy(c_meta, c_data, m_meta, m_data, c_addr); cache->hook_read(c_addr, ai, new_idx, new_way, true, m_meta, m_data, nullptr); @@ -499,12 +496,10 @@ class InnerCohPortRemapT : public InnerCohPortT auto c_meta = cache->meta_copy_buffer(); auto c_data = data ? cache->data_copy_buffer() : nullptr; copy(meta, data, c_meta, c_data, c_addr); - - meta->to_invalid(); static_cast(meta)->to_relocated(); cache->hook_manage(c_addr, ai, idx, way, true, true, false, c_meta, c_data, nullptr); - while(c_meta->is_valid() && !static_cast(c_meta)->is_relocated()){ + while(c_meta->is_valid()){ relocation(c_meta, c_data, c_addr, ai); } cache->meta_return_buffer(c_meta); From 6b875a42cb29a399cbc408291b304a79c92aae79 Mon Sep 17 00:00:00 2001 From: wangzd12138 Date: Mon, 19 Aug 2024 15:43:02 +0800 Subject: [PATCH 09/23] no longer copying relocated of meta --- cache/coherence.hpp | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/cache/coherence.hpp b/cache/coherence.hpp index af50621..464bdc8 100644 --- a/cache/coherence.hpp +++ b/cache/coherence.hpp @@ -417,12 +417,6 @@ class InnerCohPortRemapT : public InnerCohPortT typedef InnerCohPortT InnerT; std::unordered_set remapped; - // copy a cache line (both meta and data) - void copy(CMMetadataBase* meta, CMDataBase* data, CMMetadataBase* c_meta, CMDataBase* c_data, uint64_t addr) { - static_cast(cache)->relocate(addr, meta, c_meta, data, c_data); - if(static_cast(meta)->is_relocated()) static_cast(c_meta)->to_relocated(); - else static_cast(c_meta)->to_unrelocated(); - } protected: using InnerT::cache; @@ -476,14 +470,14 @@ class InnerCohPortRemapT : public InnerCohPortT if (static_cast(m_meta)->is_relocated()) this->evict(m_meta, m_data, ai, new_idx, new_way, nullptr); else cache->hook_manage(m_addr, ai, new_idx, new_way, true, true, false, m_meta, m_data, nullptr); } - copy(m_meta, m_data, c_m_meta, c_m_data, m_addr); + static_cast(cache)->relocate(m_addr, m_meta, c_m_meta, m_data, c_m_data); - copy(c_meta, c_data, m_meta, m_data, c_addr); + static_cast(cache)->relocate(c_addr, c_meta, m_meta, c_data, m_data); cache->hook_read(c_addr, ai, new_idx, new_way, true, m_meta, m_data, nullptr); static_cast(m_meta)->to_relocated(); c_addr = m_addr; - copy(c_m_meta, c_m_data, c_meta, c_data, m_addr); + static_cast(cache)->relocate(m_addr, c_m_meta, c_meta, c_m_data, c_data); cache->meta_return_buffer(c_m_meta); cache->data_return_buffer(c_m_data); @@ -495,7 +489,7 @@ class InnerCohPortRemapT : public InnerCohPortT if (!meta->is_valid() || static_cast(meta)->is_relocated()) return; auto c_meta = cache->meta_copy_buffer(); auto c_data = data ? cache->data_copy_buffer() : nullptr; - copy(meta, data, c_meta, c_data, c_addr); + static_cast(cache)->relocate(c_addr, meta, c_meta, data, c_data); static_cast(meta)->to_relocated(); cache->hook_manage(c_addr, ai, idx, way, true, true, false, c_meta, c_data, nullptr); From b463cbd6292887403b1779c0f34e0073f87d9c92 Mon Sep 17 00:00:00 2001 From: Zhidong Wang <88184546+wangzd12138@users.noreply.github.com> Date: Tue, 20 Aug 2024 22:20:14 +0800 Subject: [PATCH 10/23] add next indexer (#135) * add next indexer * modify replace function * try to make the replace function more adaptable --------- Co-authored-by: Wei Song --- cache/cache.hpp | 46 +++++++++++++++++++++++++++++++++++++++------ cache/coherence.hpp | 24 ++++++++++------------- cache/exclusive.hpp | 16 +++++----------- cache/mirage.hpp | 30 ++++++++++++++--------------- 4 files changed, 69 insertions(+), 47 deletions(-) diff --git a/cache/cache.hpp b/cache/cache.hpp index 2283e49..03d97af 100644 --- a/cache/cache.hpp +++ b/cache/cache.hpp @@ -219,6 +219,12 @@ class CacheSkewed : public CacheBase std::mutex meta_buffer_mutex; std::condition_variable meta_buffer_cv; + virtual void replace_choose_set(uint64_t addr, uint32_t *ai, uint32_t *s, unsigned int) { + if constexpr (P==1) *ai = 0; + else *ai = ((*loc_random)() % P); + *s = indexer.index(addr, *ai); + } + public: CacheSkewed(std::string name = "", unsigned int extra_par = 0, unsigned int extra_way = 0) : CacheBase(name), loc_random(nullptr), data_buffer_state(MSHR), meta_buffer_pool(MSHR), meta_buffer_state(MSHR) @@ -266,9 +272,7 @@ class CacheSkewed : public CacheBase } virtual bool replace(uint64_t addr, uint32_t *ai, uint32_t *s, uint32_t *w, uint16_t prio, unsigned int genre = 0) override { - if constexpr (P==1) *ai = 0; - else *ai = ((*loc_random)() % P); - *s = indexer.index(addr, *ai); + replace_choose_set(addr, ai, s, genre); if(EnMT) { this->set_mt_state(*ai, *s, prio); // double check the miss status @@ -403,6 +407,11 @@ class CacheSkewed : public CacheBase template using CacheNorm = CacheSkewed; +class RemapHelper { + static const unsigned int replace_for_relocate = 2408200ul; + static const unsigned int replace_during_remap = 2408201ul; +}; + // Dynamic-Randomized Skewed Cache // IW: index width, NW: number of ways, P: number of partitions // MT: metadata type, DT: data type (void if not in use) @@ -413,19 +422,44 @@ template && C_DERIVE> && C_DERIVE_OR_VOID -class CacheRemap : public CacheSkewed +class CacheRemap : public CacheSkewed, protected RemapHelper { typedef CacheSkewed CacheT; + IDX indexer_next; + std::vector next_seeds; protected: using CacheT::indexer; + using CacheT::replacer; + using CacheT::loc_random; + + virtual void replace_choose_set(uint64_t addr, uint32_t *ai, uint32_t *s, uint16_t prio, unsigned int genre) override { + if constexpr (P==1) *ai = 0; + else *ai = ((*loc_random)() % P); + if(0 == genre) *s = indexer.index(addr, *ai); + else if(replace_for_relocate == genre) *s = indexer_next.index(addr, *ai); + else { + assert(replace_during_remap == genre); + assert(0 == "remap in multithread simulation is not supported yet!"); + *ai = -1; //force a segment error in release mode + } + } public: CacheRemap(std::string name = "", unsigned int extra_par = 0, unsigned int extra_way = 0) - : CacheT(name, extra_par, extra_way){} + : CacheT(name, extra_par, extra_way) { + next_seeds.resize(P); + std::generate(next_seeds.begin(), next_seeds.end(), cm_get_random_uint64); + indexer_next.seed(next_seeds); + } virtual ~CacheRemap() {} - void seed(std::vector& seeds) { indexer.seed(seeds);} + void rotate_indexer() { + indexer.seed(next_seeds); + std::generate(next_seeds.begin(), next_seeds.end(), cm_get_random_uint64); + indexer_next.seed(next_seeds); + } + }; #endif diff --git a/cache/coherence.hpp b/cache/coherence.hpp index 464bdc8..453e8a6 100644 --- a/cache/coherence.hpp +++ b/cache/coherence.hpp @@ -412,10 +412,9 @@ class InnerCohPortT : public IPUC template requires C_DERIVE> -class InnerCohPortRemapT : public InnerCohPortT +class InnerCohPortRemapT : public InnerCohPortT, protected RemapHelper { typedef InnerCohPortT InnerT; - std::unordered_set remapped; protected: @@ -426,13 +425,9 @@ class InnerCohPortRemapT : public InnerCohPortT virtual ~InnerCohPortRemapT() {} void remap(){ - auto cache = static_cast(InnerCohPortBase::cache); auto[P, nset, nway] = cache->size(); // TODO: pause monitors. // cache->monitors->pause_monitor(); - std::vector seeds(P); - for(auto &s:seeds) s = cm_get_random_uint64(); - cache->seed(seeds); for(uint32_t ai = 0; ai < P; ai++){ for(uint32_t idx = 0; idx < nset; idx++){ for(uint32_t way = 0; way < nway; way++){ @@ -440,6 +435,7 @@ class InnerCohPortRemapT : public InnerCohPortT } } } + static_cast(cache)->rotate_indexer(); for(uint32_t ai = 0; ai < P; ai++){ for(uint32_t idx = 0; idx < nset; idx++){ for(uint32_t way = 0; way < nway; way++){ @@ -458,22 +454,22 @@ class InnerCohPortRemapT : public InnerCohPortT } protected: - void relocation(CMMetadataBase* c_meta, CMDataBase* c_data, uint64_t& c_addr, uint32_t ai) { - uint32_t new_idx, new_way; - cache->replace(c_addr, &ai, &new_idx, &new_way, XactPrio::acquire); - auto[m_meta, m_data] = cache->access_line(ai, new_idx, new_way); + void relocation(CMMetadataBase* c_meta, CMDataBase* c_data, uint64_t& c_addr) { + uint32_t new_ai, new_idx, new_way; + cache->replace(c_addr, &new_ai, &new_idx, &new_way, XactPrio::acquire, replace_for_relocate); + auto[m_meta, m_data] = cache->access_line(new_ai, new_idx, new_way); uint64_t m_addr = m_meta->addr(new_idx); auto c_m_meta = cache->meta_copy_buffer(); auto c_m_data = m_data ? cache->data_copy_buffer() : nullptr; if (m_meta->is_valid()) { - if (static_cast(m_meta)->is_relocated()) this->evict(m_meta, m_data, ai, new_idx, new_way, nullptr); - else cache->hook_manage(m_addr, ai, new_idx, new_way, true, true, false, m_meta, m_data, nullptr); + if (static_cast(m_meta)->is_relocated()) this->evict(m_meta, m_data, new_ai, new_idx, new_way, nullptr); + else cache->hook_manage(m_addr, new_ai, new_idx, new_way, true, true, false, m_meta, m_data, nullptr); } static_cast(cache)->relocate(m_addr, m_meta, c_m_meta, m_data, c_m_data); static_cast(cache)->relocate(c_addr, c_meta, m_meta, c_data, m_data); - cache->hook_read(c_addr, ai, new_idx, new_way, true, m_meta, m_data, nullptr); + cache->hook_read(c_addr, new_ai, new_idx, new_way, true, m_meta, m_data, nullptr); static_cast(m_meta)->to_relocated(); c_addr = m_addr; @@ -494,7 +490,7 @@ class InnerCohPortRemapT : public InnerCohPortT cache->hook_manage(c_addr, ai, idx, way, true, true, false, c_meta, c_data, nullptr); while(c_meta->is_valid()){ - relocation(c_meta, c_data, c_addr, ai); + relocation(c_meta, c_data, c_addr); } cache->meta_return_buffer(c_meta); cache->data_return_buffer(c_data); diff --git a/cache/exclusive.hpp b/cache/exclusive.hpp index 351fe13..caa7caf 100644 --- a/cache/exclusive.hpp +++ b/cache/exclusive.hpp @@ -129,21 +129,15 @@ class CacheSkewedExclusive : public CacheSkewedreplace_choose_set(addr, ai, s, genre); + if constexpr (!EnDir) replacer[*ai].replace(*s, w); + else if(0 == genre) replacer[*ai].replace(*s, w); + else { ext_replacer[*ai].replace(*s, w); *w += NW; } return true; // ToDo: support multithread } diff --git a/cache/mirage.hpp b/cache/mirage.hpp index 43ba03c..2b2347f 100644 --- a/cache/mirage.hpp +++ b/cache/mirage.hpp @@ -98,6 +98,20 @@ class MirageCache : public CacheSkewed > candidates(P); + uint32_t m_s; + for(int i=0; i max_free) { p = 0; max_free = free_num; } + if(free_num >= max_free) + candidates[p++] = std::make_pair(i, m_s); + } + std::tie(*ai, *s) = candidates[(*loc_random)() % p]; + } + public: MirageCache(std::string name = "") : CacheT(name, 1) { @@ -147,22 +161,6 @@ class MirageCache : public CacheSkewed > candidates(P); - uint32_t m_s; - for(int i=0; i max_free) { p = 0; max_free = free_num; } - if(free_num >= max_free) - candidates[p++] = std::make_pair(i, m_s); - } - std::tie(*ai, *s) = candidates[(*loc_random)() % p]; - replacer[*ai].replace(*s, w); - return true; // ToDo: support multithread - } - virtual void hook_read(uint64_t addr, uint32_t ai, uint32_t s, uint32_t w, bool hit, const CMMetadataBase * meta, const CMDataBase *data, uint64_t *delay) override { if(ai < P) { auto [ds, dw] = static_cast(this->access(ai, s, w))->pointer(); From 731c444ff70eb1b2dc03d66e1389ff27a38c296c Mon Sep 17 00:00:00 2001 From: Zhidong Wang <88184546+wangzd12138@users.noreply.github.com> Date: Thu, 22 Aug 2024 20:22:45 +0800 Subject: [PATCH 11/23] bugfix for replace choose set (#136) * bugfix for replace choose set * further tweak --------- Co-authored-by: Wei Song --- cache/cache.hpp | 4 ++-- cache/mirage.hpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cache/cache.hpp b/cache/cache.hpp index 03d97af..f8bbb68 100644 --- a/cache/cache.hpp +++ b/cache/cache.hpp @@ -407,7 +407,7 @@ class CacheSkewed : public CacheBase template using CacheNorm = CacheSkewed; -class RemapHelper { +struct RemapHelper { static const unsigned int replace_for_relocate = 2408200ul; static const unsigned int replace_during_remap = 2408201ul; }; @@ -433,7 +433,7 @@ class CacheRemap : public CacheSkewed, using CacheT::replacer; using CacheT::loc_random; - virtual void replace_choose_set(uint64_t addr, uint32_t *ai, uint32_t *s, uint16_t prio, unsigned int genre) override { + virtual void replace_choose_set(uint64_t addr, uint32_t *ai, uint32_t *s, unsigned int genre) override { if constexpr (P==1) *ai = 0; else *ai = ((*loc_random)() % P); if(0 == genre) *s = indexer.index(addr, *ai); diff --git a/cache/mirage.hpp b/cache/mirage.hpp index 2b2347f..de01946 100644 --- a/cache/mirage.hpp +++ b/cache/mirage.hpp @@ -98,7 +98,7 @@ class MirageCache : public CacheSkewed > candidates(P); uint32_t m_s; From b7bf4e51abf6bde4fcf9f0388aac7b194e4b6ea0 Mon Sep 17 00:00:00 2001 From: wangzd12138 Date: Mon, 26 Aug 2024 20:57:01 +0800 Subject: [PATCH 12/23] add hit function to remap --- cache/cache.hpp | 40 +++++++++++++++++++++++++++++++++++++--- cache/coherence.hpp | 11 +++-------- 2 files changed, 40 insertions(+), 11 deletions(-) diff --git a/cache/cache.hpp b/cache/cache.hpp index f8bbb68..6f10abb 100644 --- a/cache/cache.hpp +++ b/cache/cache.hpp @@ -426,13 +426,17 @@ class CacheRemap : public CacheSkewed, { typedef CacheSkewed CacheT; - IDX indexer_next; - std::vector next_seeds; protected: using CacheT::indexer; + using CacheT::arrays; using CacheT::replacer; using CacheT::loc_random; + IDX indexer_next; + std::vector next_seeds; + std::vector SPtr; + bool remap; + virtual void replace_choose_set(uint64_t addr, uint32_t *ai, uint32_t *s, unsigned int genre) override { if constexpr (P==1) *ai = 0; else *ai = ((*loc_random)() % P); @@ -447,7 +451,8 @@ class CacheRemap : public CacheSkewed, public: CacheRemap(std::string name = "", unsigned int extra_par = 0, unsigned int extra_way = 0) - : CacheT(name, extra_par, extra_way) { + : CacheT(name, extra_par, extra_way), remap(false) { + SPtr.resize(P, 0); next_seeds.resize(P); std::generate(next_seeds.begin(), next_seeds.end(), cm_get_random_uint64); indexer_next.seed(next_seeds); @@ -460,6 +465,35 @@ class CacheRemap : public CacheSkewed, indexer_next.seed(next_seeds); } + virtual bool hit(uint64_t addr, uint32_t *ai, uint32_t *s, uint32_t *w, uint16_t prio, bool check_and_set) override { + if(!remap) return CacheT::hit(addr, ai, s, w, prio, check_and_set); + for(*ai=0; *ai= SPtr[*ai]){ + if (arrays[*ai]->hit(addr, *s, w)) return true; + } + *s = indexer_next.index(addr, *ai); + if (arrays[*ai]->hit(addr, *s, w)) return true; + } + return false; + } + + void move_SPtr(uint32_t ai) { SPtr[ai]++; } + + void remap_start() { remap = true; } + void remap_end() { + remap = false; + SPtr.resize(P, 0); + rotate_indexer(); + for(uint32_t ai = 0; ai < P; ai++){ + for(uint32_t idx = 0; idx < 1ul<(this->access(ai, idx, way))->to_unrelocated(); + } + } + } + } + }; #endif diff --git a/cache/coherence.hpp b/cache/coherence.hpp index 453e8a6..0795788 100644 --- a/cache/coherence.hpp +++ b/cache/coherence.hpp @@ -428,21 +428,16 @@ class InnerCohPortRemapT : public InnerCohPortT, protected RemapHelp auto[P, nset, nway] = cache->size(); // TODO: pause monitors. // cache->monitors->pause_monitor(); + static_cast(cache)->remap_start(); for(uint32_t ai = 0; ai < P; ai++){ for(uint32_t idx = 0; idx < nset; idx++){ for(uint32_t way = 0; way < nway; way++){ relocation_chain(ai, idx, way); } + static_cast(cache)->move_SPtr(ai); } } - static_cast(cache)->rotate_indexer(); - for(uint32_t ai = 0; ai < P; ai++){ - for(uint32_t idx = 0; idx < nset; idx++){ - for(uint32_t way = 0; way < nway; way++){ - static_cast(cache->access(ai, idx, way))->to_unrelocated(); - } - } - } + static_cast(cache)->remap_end(); // TODO: resume monitors // cache->monitors->resume_monitor(); } From 63144e9689b1c150899ebd055601998f7b2a3aed Mon Sep 17 00:00:00 2001 From: wangzd12138 Date: Tue, 27 Aug 2024 16:04:12 +0800 Subject: [PATCH 13/23] further tweak --- cache/cache.hpp | 24 ++++++++++++------------ cache/coherence.hpp | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/cache/cache.hpp b/cache/cache.hpp index 6f10abb..3c2d756 100644 --- a/cache/cache.hpp +++ b/cache/cache.hpp @@ -433,8 +433,8 @@ class CacheRemap : public CacheSkewed, using CacheT::loc_random; IDX indexer_next; - std::vector next_seeds; - std::vector SPtr; + std::vector indexer_seed_next; + std::vector remap_pointer; bool remap; virtual void replace_choose_set(uint64_t addr, uint32_t *ai, uint32_t *s, unsigned int genre) override { @@ -452,24 +452,24 @@ class CacheRemap : public CacheSkewed, public: CacheRemap(std::string name = "", unsigned int extra_par = 0, unsigned int extra_way = 0) : CacheT(name, extra_par, extra_way), remap(false) { - SPtr.resize(P, 0); - next_seeds.resize(P); - std::generate(next_seeds.begin(), next_seeds.end(), cm_get_random_uint64); - indexer_next.seed(next_seeds); + remap_pointer.resize(P, 0); + indexer_seed_next.resize(P); + std::generate(indexer_seed_next.begin(), indexer_seed_next.end(), cm_get_random_uint64); + indexer_next.seed(indexer_seed_next); } virtual ~CacheRemap() {} void rotate_indexer() { - indexer.seed(next_seeds); - std::generate(next_seeds.begin(), next_seeds.end(), cm_get_random_uint64); - indexer_next.seed(next_seeds); + indexer.seed(indexer_seed_next); + std::generate(indexer_seed_next.begin(), indexer_seed_next.end(), cm_get_random_uint64); + indexer_next.seed(indexer_seed_next); } virtual bool hit(uint64_t addr, uint32_t *ai, uint32_t *s, uint32_t *w, uint16_t prio, bool check_and_set) override { if(!remap) return CacheT::hit(addr, ai, s, w, prio, check_and_set); for(*ai=0; *ai= SPtr[*ai]){ + if(*s >= remap_pointer[*ai]){ if (arrays[*ai]->hit(addr, *s, w)) return true; } *s = indexer_next.index(addr, *ai); @@ -478,12 +478,12 @@ class CacheRemap : public CacheSkewed, return false; } - void move_SPtr(uint32_t ai) { SPtr[ai]++; } + void move_remap_pointer(uint32_t ai) { remap_pointer[ai]++; } void remap_start() { remap = true; } void remap_end() { remap = false; - SPtr.resize(P, 0); + std::fill(remap_pointer.begin(), remap_pointer.end(), 0); rotate_indexer(); for(uint32_t ai = 0; ai < P; ai++){ for(uint32_t idx = 0; idx < 1ul<, protected RemapHelp for(uint32_t way = 0; way < nway; way++){ relocation_chain(ai, idx, way); } - static_cast(cache)->move_SPtr(ai); + static_cast(cache)->move_remap_pointer(ai); } } static_cast(cache)->remap_end(); From 7505321cc6299f1d809e41d8e6094f9d2051ff3a Mon Sep 17 00:00:00 2001 From: wangzd12138 Date: Wed, 11 Sep 2024 17:00:03 +0800 Subject: [PATCH 14/23] further modify to merge master --- cache/coherence.hpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/cache/coherence.hpp b/cache/coherence.hpp index 8fe8785..285c649 100644 --- a/cache/coherence.hpp +++ b/cache/coherence.hpp @@ -409,20 +409,16 @@ class InnerCohPortT : public IPUC } }; -template - requires C_DERIVE> -class InnerCohPortRemapT : public InnerCohPortT, protected RemapHelper +template +class InnerCohPortRemapT : public InnerCohPortT, protected RemapHelper { - typedef InnerCohPortT InnerT; + typedef InnerCohPortT InnerT; protected: using InnerT::cache; public: - InnerCohPortRemapT(policy_ptr policy) : InnerT(policy){} - virtual ~InnerCohPortRemapT() {} - void remap(){ auto[P, nset, nway] = cache->size(); // TODO: pause monitors. From 8d13310a239acd30190014e787e28e5fb3c518cb Mon Sep 17 00:00:00 2001 From: Zhidong Wang <88184546+wangzd12138@users.noreply.github.com> Date: Fri, 13 Sep 2024 15:51:05 +0800 Subject: [PATCH 15/23] add simple remap monitor and inner will actually do remapping (#147) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add simple remap monitor and inner will actually do remapping * further tweak * some tweaks --------- Co-authored-by: Wei Song (宋威) --- cache/coherence.hpp | 13 ++++++----- util/monitor.hpp | 56 +++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 61 insertions(+), 8 deletions(-) diff --git a/cache/coherence.hpp b/cache/coherence.hpp index 285c649..da76e8b 100644 --- a/cache/coherence.hpp +++ b/cache/coherence.hpp @@ -417,12 +417,13 @@ class InnerCohPortRemapT : public InnerCohPortTsize(); - // TODO: pause monitors. - // cache->monitors->pause_monitor(); + cache->monitors->pause(); static_cast(cache)->remap_start(); for(uint32_t ai = 0; ai < P; ai++){ for(uint32_t idx = 0; idx < nset; idx++){ @@ -433,13 +434,13 @@ class InnerCohPortRemapT : public InnerCohPortT(cache)->remap_end(); - // TODO: resume monitors - // cache->monitors->resume_monitor(); + cache->monitors->resume(); } virtual void finish_resp(uint64_t addr, coh_cmd_t outer_cmd){ - // TODO: If the monitor identifies a remap, do it. - // if(cache->monitors->remap_monitor()) remap(); + cache->monitors->magic_func(addr, MAGIC_ID_REMAP, &remap_flag); + if(remap_flag) remap(); + remap_flag = false; InnerT::finish_resp(addr, outer_cmd); } diff --git a/util/monitor.hpp b/util/monitor.hpp index 4da53eb..fb20d4f 100644 --- a/util/monitor.hpp +++ b/util/monitor.hpp @@ -15,6 +15,8 @@ class CMDataBase; class CMMetadataBase; +#define MAGIC_ID_REMAP 2024091300ul + // monitor base class class MonitorBase { @@ -56,6 +58,8 @@ class MonitorContainerBase virtual void hook_write(uint64_t addr, int32_t ai, int32_t s, int32_t w, bool hit, const CMMetadataBase *meta, const CMDataBase *data, uint64_t *delay, unsigned int genre = 0) = 0; virtual void hook_manage(uint64_t addr, int32_t ai, int32_t s, int32_t w, bool hit, bool evict, bool writeback, const CMMetadataBase *meta, const CMDataBase *data, uint64_t *delay, unsigned int genre = 0) = 0; virtual void magic_func(uint64_t addr, uint64_t magic_id, void *magic_data) = 0; // an interface for special communication with a specific monitor if attached + virtual void pause() = 0; + virtual void resume() = 0; }; // class monitor helper @@ -121,17 +125,29 @@ class CacheMonitorImp : public MonitorContainerBase return; } } + + virtual void pause() override { + if constexpr (EnMon) { + for(auto monitor : monitors) monitor->pause(); + } + } + + virtual void resume() override { + if constexpr (EnMon) { + for(auto monitor : monitors) monitor->resume(); + } + } }; // Simple Access Monitor class SimpleAccMonitor : public MonitorBase { protected: - uint64_t cnt_access, cnt_miss, cnt_write, cnt_write_miss, cnt_invalid; + uint64_t cnt_access = 0, cnt_miss = 0, cnt_write = 0, cnt_write_miss = 0, cnt_invalid = 0; bool active; public: - SimpleAccMonitor() : cnt_access(0), cnt_miss(0), cnt_write(0), cnt_write_miss(0), cnt_invalid(0), active(false) {} + SimpleAccMonitor(bool active = false) : active(active) {} virtual bool attach(uint64_t cache_id) override { return true; } @@ -264,4 +280,40 @@ class SimpleTracerMT : public SimpleTracer virtual void stop() { globalPrinter->stop(); print_thread.join(); } }; +// Simple Remap Monitor +class SimpleEVRemapper : public SimpleAccMonitor +{ +protected: + uint64_t period; + bool remap = false; + +public: + SimpleEVRemapper(uint64_t period) : SimpleAccMonitor(true), period(period) {} + virtual ~SimpleEVRemapper() {} + + virtual void invalid(uint64_t cache_id, uint64_t addr, int32_t ai, int32_t s, int32_t w, const CMMetadataBase *meta, const CMDataBase *data) override { + if(!active) return; + cnt_invalid++; + if(cnt_invalid !=0 && (cnt_invalid % period) == 0) { + remap = true; + } + } + + virtual void reset() override { + remap = false; + SimpleAccMonitor::reset(); + } + + virtual bool magic_func(uint64_t cache_id, uint64_t addr, uint64_t magic_id, void *magic_data) override { + if (magic_id == MAGIC_ID_REMAP) { + if (magic_data) { + *static_cast(magic_data) = remap; + remap = false; + } + return true; + } + return false; + } +}; + #endif From df6f06f4eebd225869a811cc3a7c5fdd25d1ed5d Mon Sep 17 00:00:00 2001 From: Zhidong Wang <88184546+wangzd12138@users.noreply.github.com> Date: Mon, 16 Sep 2024 09:48:21 +0800 Subject: [PATCH 16/23] refactor dynamic random cache into a separate file (#149) * refactor dynamic random cache into a separate file * further tweak * Revert "further tweak" This reverts commit bd19426f710665a9a187360b63ed34903824713c. * include monitor.hpp --- cache/cache.hpp | 89 ---------------- cache/coherence.hpp | 79 --------------- cache/dynamic_random.hpp | 213 +++++++++++++++++++++++++++++++++++++++ util/monitor.hpp | 38 ------- 4 files changed, 213 insertions(+), 206 deletions(-) create mode 100644 cache/dynamic_random.hpp diff --git a/cache/cache.hpp b/cache/cache.hpp index fbc9cdd..744be6e 100644 --- a/cache/cache.hpp +++ b/cache/cache.hpp @@ -414,93 +414,4 @@ class CacheSkewed : public CacheBase template using CacheNorm = CacheSkewed; -struct RemapHelper { - static const unsigned int replace_for_relocate = 2408200ul; - static const unsigned int replace_during_remap = 2408201ul; -}; - -// Dynamic-Randomized Skewed Cache -// IW: index width, NW: number of ways, P: number of partitions -// MT: metadata type, DT: data type (void if not in use) -// IDX: indexer type, RPC: replacer type -// EnMon: whether to enable monitoring -template - requires C_DERIVE - && C_DERIVE_OR_VOID - && C_DERIVE> - && C_DERIVE_OR_VOID -class CacheRemap : public CacheSkewed, protected RemapHelper -{ - typedef CacheSkewed CacheT; - -protected: - using CacheT::indexer; - using CacheT::arrays; - using CacheT::replacer; - using CacheT::loc_random; - - IDX indexer_next; - std::vector indexer_seed_next; - std::vector remap_pointer; - bool remap; - - virtual void replace_choose_set(uint64_t addr, uint32_t *ai, uint32_t *s, unsigned int genre) override { - if constexpr (P==1) *ai = 0; - else *ai = ((*loc_random)() % P); - if(0 == genre) *s = indexer.index(addr, *ai); - else if(replace_for_relocate == genre) *s = indexer_next.index(addr, *ai); - else { - assert(replace_during_remap == genre); - assert(0 == "remap in multithread simulation is not supported yet!"); - *ai = -1; //force a segment error in release mode - } - } - -public: - CacheRemap(std::string name = "", unsigned int extra_par = 0, unsigned int extra_way = 0) - : CacheT(name, extra_par, extra_way), remap(false) { - remap_pointer.resize(P, 0); - indexer_seed_next.resize(P); - std::generate(indexer_seed_next.begin(), indexer_seed_next.end(), cm_get_random_uint64); - indexer_next.seed(indexer_seed_next); - } - virtual ~CacheRemap() {} - - void rotate_indexer() { - indexer.seed(indexer_seed_next); - std::generate(indexer_seed_next.begin(), indexer_seed_next.end(), cm_get_random_uint64); - indexer_next.seed(indexer_seed_next); - } - - virtual bool hit(uint64_t addr, uint32_t *ai, uint32_t *s, uint32_t *w, uint16_t prio, bool check_and_set) override { - if(!remap) return CacheT::hit(addr, ai, s, w, prio, check_and_set); - for(*ai=0; *ai= remap_pointer[*ai]){ - if (arrays[*ai]->hit(addr, *s, w)) return true; - } - *s = indexer_next.index(addr, *ai); - if (arrays[*ai]->hit(addr, *s, w)) return true; - } - return false; - } - - void move_remap_pointer(uint32_t ai) { remap_pointer[ai]++; } - - void remap_start() { remap = true; } - void remap_end() { - remap = false; - std::fill(remap_pointer.begin(), remap_pointer.end(), 0); - rotate_indexer(); - for(uint32_t ai = 0; ai < P; ai++){ - for(uint32_t idx = 0; idx < 1ul<(this->access(ai, idx, way))->to_unrelocated(); - } - } - } - } - -}; - #endif diff --git a/cache/coherence.hpp b/cache/coherence.hpp index da76e8b..b6aa72c 100644 --- a/cache/coherence.hpp +++ b/cache/coherence.hpp @@ -409,85 +409,6 @@ class InnerCohPortT : public IPUC } }; -template -class InnerCohPortRemapT : public InnerCohPortT, protected RemapHelper -{ - typedef InnerCohPortT InnerT; - - -protected: - using InnerT::cache; - bool remap_flag; - -public: - InnerCohPortRemapT() : remap_flag(false){} - void remap(){ - auto[P, nset, nway] = cache->size(); - cache->monitors->pause(); - static_cast(cache)->remap_start(); - for(uint32_t ai = 0; ai < P; ai++){ - for(uint32_t idx = 0; idx < nset; idx++){ - for(uint32_t way = 0; way < nway; way++){ - relocation_chain(ai, idx, way); - } - static_cast(cache)->move_remap_pointer(ai); - } - } - static_cast(cache)->remap_end(); - cache->monitors->resume(); - } - - virtual void finish_resp(uint64_t addr, coh_cmd_t outer_cmd){ - cache->monitors->magic_func(addr, MAGIC_ID_REMAP, &remap_flag); - if(remap_flag) remap(); - remap_flag = false; - InnerT::finish_resp(addr, outer_cmd); - } - -protected: - void relocation(CMMetadataBase* c_meta, CMDataBase* c_data, uint64_t& c_addr) { - uint32_t new_ai, new_idx, new_way; - cache->replace(c_addr, &new_ai, &new_idx, &new_way, XactPrio::acquire, replace_for_relocate); - auto[m_meta, m_data] = cache->access_line(new_ai, new_idx, new_way); - uint64_t m_addr = m_meta->addr(new_idx); - auto c_m_meta = cache->meta_copy_buffer(); - auto c_m_data = m_data ? cache->data_copy_buffer() : nullptr; - - if (m_meta->is_valid()) { - if (static_cast(m_meta)->is_relocated()) this->evict(m_meta, m_data, new_ai, new_idx, new_way, nullptr); - else cache->hook_manage(m_addr, new_ai, new_idx, new_way, true, true, false, m_meta, m_data, nullptr); - } - static_cast(cache)->relocate(m_addr, m_meta, c_m_meta, m_data, c_m_data); - - static_cast(cache)->relocate(c_addr, c_meta, m_meta, c_data, m_data); - cache->hook_read(c_addr, new_ai, new_idx, new_way, true, m_meta, m_data, nullptr); - - static_cast(m_meta)->to_relocated(); - c_addr = m_addr; - static_cast(cache)->relocate(m_addr, c_m_meta, c_meta, c_m_data, c_data); - - cache->meta_return_buffer(c_m_meta); - cache->data_return_buffer(c_m_data); - } - - void relocation_chain(uint32_t ai, uint32_t idx, uint32_t way) { - auto[meta, data] = cache->access_line(ai, idx, way); - uint64_t c_addr = meta->addr(idx); - if (!meta->is_valid() || static_cast(meta)->is_relocated()) return; - auto c_meta = cache->meta_copy_buffer(); - auto c_data = data ? cache->data_copy_buffer() : nullptr; - static_cast(cache)->relocate(c_addr, meta, c_meta, data, c_data); - static_cast(meta)->to_relocated(); - cache->hook_manage(c_addr, ai, idx, way, true, true, false, c_meta, c_data, nullptr); - - while(c_meta->is_valid()){ - relocation(c_meta, c_data, c_addr); - } - cache->meta_return_buffer(c_meta); - cache->data_return_buffer(c_data); - } -}; - template using InnerCohPort = InnerCohPortT; diff --git a/cache/dynamic_random.hpp b/cache/dynamic_random.hpp new file mode 100644 index 0000000..f112c0e --- /dev/null +++ b/cache/dynamic_random.hpp @@ -0,0 +1,213 @@ +#ifndef CM_CACHE_DYNAMIC_RANDOM_HPP +#define CM_CACHE_DYNAMIC_RANDOM_HPP + +#include "cache/coherence.hpp" +#include "util/monitor.hpp" + +#define MAGIC_ID_REMAP 2024091300ul + +struct RemapHelper { + static const unsigned int replace_for_relocate = 2408200ul; + static const unsigned int replace_during_remap = 2408201ul; +}; + +// Dynamic-Randomized Skewed Cache +// IW: index width, NW: number of ways, P: number of partitions +// MT: metadata type, DT: data type (void if not in use) +// IDX: indexer type, RPC: replacer type +// EnMon: whether to enable monitoring +template + requires C_DERIVE + && C_DERIVE_OR_VOID + && C_DERIVE> + && C_DERIVE_OR_VOID +class CacheRemap : public CacheSkewed, protected RemapHelper +{ + typedef CacheSkewed CacheT; + +protected: + using CacheT::indexer; + using CacheT::arrays; + using CacheT::replacer; + using CacheT::loc_random; + + IDX indexer_next; + std::vector indexer_seed_next; + std::vector remap_pointer; + bool remap; + + virtual void replace_choose_set(uint64_t addr, uint32_t *ai, uint32_t *s, unsigned int genre) override { + if constexpr (P==1) *ai = 0; + else *ai = ((*loc_random)() % P); + if(0 == genre) *s = indexer.index(addr, *ai); + else if(replace_for_relocate == genre) *s = indexer_next.index(addr, *ai); + else { + assert(replace_during_remap == genre); + assert(0 == "remap in multithread simulation is not supported yet!"); + *ai = -1; //force a segment error in release mode + } + } + +public: + CacheRemap(std::string name = "", unsigned int extra_par = 0, unsigned int extra_way = 0) + : CacheT(name, extra_par, extra_way), remap(false) { + remap_pointer.resize(P, 0); + indexer_seed_next.resize(P); + std::generate(indexer_seed_next.begin(), indexer_seed_next.end(), cm_get_random_uint64); + indexer_next.seed(indexer_seed_next); + } + virtual ~CacheRemap() {} + + void rotate_indexer() { + indexer.seed(indexer_seed_next); + std::generate(indexer_seed_next.begin(), indexer_seed_next.end(), cm_get_random_uint64); + indexer_next.seed(indexer_seed_next); + } + + virtual bool hit(uint64_t addr, uint32_t *ai, uint32_t *s, uint32_t *w, uint16_t prio, bool check_and_set) override { + if(!remap) return CacheT::hit(addr, ai, s, w, prio, check_and_set); + for(*ai=0; *ai= remap_pointer[*ai]){ + if (arrays[*ai]->hit(addr, *s, w)) return true; + } + *s = indexer_next.index(addr, *ai); + if (arrays[*ai]->hit(addr, *s, w)) return true; + } + return false; + } + + void move_remap_pointer(uint32_t ai) { remap_pointer[ai]++; } + + void remap_start() { remap = true; } + void remap_end() { + remap = false; + std::fill(remap_pointer.begin(), remap_pointer.end(), 0); + rotate_indexer(); + for(uint32_t ai = 0; ai < P; ai++){ + for(uint32_t idx = 0; idx < 1ul<(this->access(ai, idx, way))->to_unrelocated(); + } + } + } + } + +}; + +template +class InnerCohPortRemapT : public InnerCohPortT, protected RemapHelper +{ + typedef InnerCohPortT InnerT; + + +protected: + using InnerT::cache; + bool remap_flag; + +public: + InnerCohPortRemapT() : remap_flag(false){} + void remap(){ + auto[P, nset, nway] = cache->size(); + cache->monitors->pause(); + static_cast(cache)->remap_start(); + for(uint32_t ai = 0; ai < P; ai++){ + for(uint32_t idx = 0; idx < nset; idx++){ + for(uint32_t way = 0; way < nway; way++){ + relocation_chain(ai, idx, way); + } + static_cast(cache)->move_remap_pointer(ai); + } + } + static_cast(cache)->remap_end(); + cache->monitors->resume(); + } + + virtual void finish_resp(uint64_t addr, coh_cmd_t outer_cmd){ + cache->monitors->magic_func(addr, MAGIC_ID_REMAP, &remap_flag); + if(remap_flag) remap(); + remap_flag = false; + InnerT::finish_resp(addr, outer_cmd); + } + +protected: + void relocation(CMMetadataBase* c_meta, CMDataBase* c_data, uint64_t& c_addr) { + uint32_t new_ai, new_idx, new_way; + cache->replace(c_addr, &new_ai, &new_idx, &new_way, XactPrio::acquire, replace_for_relocate); + auto[m_meta, m_data] = cache->access_line(new_ai, new_idx, new_way); + uint64_t m_addr = m_meta->addr(new_idx); + auto c_m_meta = cache->meta_copy_buffer(); + auto c_m_data = m_data ? cache->data_copy_buffer() : nullptr; + + if (m_meta->is_valid()) { + if (static_cast(m_meta)->is_relocated()) this->evict(m_meta, m_data, new_ai, new_idx, new_way, nullptr); + else cache->hook_manage(m_addr, new_ai, new_idx, new_way, true, true, false, m_meta, m_data, nullptr); + } + static_cast(cache)->relocate(m_addr, m_meta, c_m_meta, m_data, c_m_data); + + static_cast(cache)->relocate(c_addr, c_meta, m_meta, c_data, m_data); + cache->hook_read(c_addr, new_ai, new_idx, new_way, true, m_meta, m_data, nullptr); + + static_cast(m_meta)->to_relocated(); + c_addr = m_addr; + static_cast(cache)->relocate(m_addr, c_m_meta, c_meta, c_m_data, c_data); + + cache->meta_return_buffer(c_m_meta); + cache->data_return_buffer(c_m_data); + } + + void relocation_chain(uint32_t ai, uint32_t idx, uint32_t way) { + auto[meta, data] = cache->access_line(ai, idx, way); + uint64_t c_addr = meta->addr(idx); + if (!meta->is_valid() || static_cast(meta)->is_relocated()) return; + auto c_meta = cache->meta_copy_buffer(); + auto c_data = data ? cache->data_copy_buffer() : nullptr; + static_cast(cache)->relocate(c_addr, meta, c_meta, data, c_data); + static_cast(meta)->to_relocated(); + cache->hook_manage(c_addr, ai, idx, way, true, true, false, c_meta, c_data, nullptr); + + while(c_meta->is_valid()){ + relocation(c_meta, c_data, c_addr); + } + cache->meta_return_buffer(c_meta); + cache->data_return_buffer(c_data); + } +}; + +// Simple Remap Monitor +class SimpleEVRemapper : public SimpleAccMonitor +{ +protected: + uint64_t period; + bool remap = false; + +public: + SimpleEVRemapper(uint64_t period) : SimpleAccMonitor(true), period(period) {} + virtual ~SimpleEVRemapper() {} + + virtual void invalid(uint64_t cache_id, uint64_t addr, int32_t ai, int32_t s, int32_t w, const CMMetadataBase *meta, const CMDataBase *data) override { + if(!active) return; + cnt_invalid++; + if(cnt_invalid !=0 && (cnt_invalid % period) == 0) { + remap = true; + } + } + + virtual void reset() override { + remap = false; + SimpleAccMonitor::reset(); + } + + virtual bool magic_func(uint64_t cache_id, uint64_t addr, uint64_t magic_id, void *magic_data) override { + if (magic_id == MAGIC_ID_REMAP) { + if (magic_data) { + *static_cast(magic_data) = remap; + remap = false; + } + return true; + } + return false; + } +}; + +#endif diff --git a/util/monitor.hpp b/util/monitor.hpp index fb20d4f..c62c5c9 100644 --- a/util/monitor.hpp +++ b/util/monitor.hpp @@ -15,8 +15,6 @@ class CMDataBase; class CMMetadataBase; -#define MAGIC_ID_REMAP 2024091300ul - // monitor base class class MonitorBase { @@ -280,40 +278,4 @@ class SimpleTracerMT : public SimpleTracer virtual void stop() { globalPrinter->stop(); print_thread.join(); } }; -// Simple Remap Monitor -class SimpleEVRemapper : public SimpleAccMonitor -{ -protected: - uint64_t period; - bool remap = false; - -public: - SimpleEVRemapper(uint64_t period) : SimpleAccMonitor(true), period(period) {} - virtual ~SimpleEVRemapper() {} - - virtual void invalid(uint64_t cache_id, uint64_t addr, int32_t ai, int32_t s, int32_t w, const CMMetadataBase *meta, const CMDataBase *data) override { - if(!active) return; - cnt_invalid++; - if(cnt_invalid !=0 && (cnt_invalid % period) == 0) { - remap = true; - } - } - - virtual void reset() override { - remap = false; - SimpleAccMonitor::reset(); - } - - virtual bool magic_func(uint64_t cache_id, uint64_t addr, uint64_t magic_id, void *magic_data) override { - if (magic_id == MAGIC_ID_REMAP) { - if (magic_data) { - *static_cast(magic_data) = remap; - remap = false; - } - return true; - } - return false; - } -}; - #endif From 1b5d9ce7f4cb515c11a4a5ae17b12a9cb2b2ecaa Mon Sep 17 00:00:00 2001 From: wangzd12138 Date: Wed, 18 Sep 2024 11:00:24 +0800 Subject: [PATCH 17/23] add remap monitor base --- cache/dynamic_random.hpp | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/cache/dynamic_random.hpp b/cache/dynamic_random.hpp index f112c0e..f63343d 100644 --- a/cache/dynamic_random.hpp +++ b/cache/dynamic_random.hpp @@ -174,24 +174,15 @@ class InnerCohPortRemapT : public InnerCohPortT Date: Fri, 20 Sep 2024 14:40:40 +0800 Subject: [PATCH 18/23] further modify swap and remap enable --- cache/cache.hpp | 10 ++++++++++ cache/dynamic_random.hpp | 20 ++++---------------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/cache/cache.hpp b/cache/cache.hpp index ad2664c..d05468e 100644 --- a/cache/cache.hpp +++ b/cache/cache.hpp @@ -320,6 +320,16 @@ class CacheSkewed : public CacheBase } } + __always_inline void swap(uint64_t a_addr, uint64_t b_addr, CMMetadataBase *a_meta, CMMetadataBase *b_meta, CMDataBase *a_data, CMDataBase *b_data) { + auto buffer_meta = meta_copy_buffer(); + auto buffer_data = a_data ? data_copy_buffer() : nullptr; + relocate(a_addr, a_meta, buffer_meta, a_data, buffer_data); + relocate(b_addr, b_meta, a_meta, b_data, a_data); + relocate(a_addr, buffer_meta, b_meta, buffer_data, b_data); + meta_return_buffer(buffer_meta); + data_return_buffer(buffer_data); + } + virtual void hook_read(uint64_t addr, uint32_t ai, uint32_t s, uint32_t w, bool hit, bool prefetch, const CMMetadataBase * meta, const CMDataBase *data, uint64_t *delay) override { if(ai < P) replacer[ai].access(s, w, true, prefetch); if constexpr (EnMon || !C_VOID) monitors->hook_read(addr, ai, s, w, hit, meta, data, delay); diff --git a/cache/dynamic_random.hpp b/cache/dynamic_random.hpp index f63343d..19ca1a9 100644 --- a/cache/dynamic_random.hpp +++ b/cache/dynamic_random.hpp @@ -136,24 +136,14 @@ class InnerCohPortRemapT : public InnerCohPortTreplace(c_addr, &new_ai, &new_idx, &new_way, XactPrio::acquire, replace_for_relocate); auto[m_meta, m_data] = cache->access_line(new_ai, new_idx, new_way); uint64_t m_addr = m_meta->addr(new_idx); - auto c_m_meta = cache->meta_copy_buffer(); - auto c_m_data = m_data ? cache->data_copy_buffer() : nullptr; - if (m_meta->is_valid()) { if (static_cast(m_meta)->is_relocated()) this->evict(m_meta, m_data, new_ai, new_idx, new_way, nullptr); else cache->hook_manage(m_addr, new_ai, new_idx, new_way, true, true, false, m_meta, m_data, nullptr); } - static_cast(cache)->relocate(m_addr, m_meta, c_m_meta, m_data, c_m_data); - - static_cast(cache)->relocate(c_addr, c_meta, m_meta, c_data, m_data); + static_cast(cache)->swap(m_addr, c_addr, m_meta, c_meta, m_data, c_data); cache->hook_read(c_addr, new_ai, new_idx, new_way, true, m_meta, m_data, nullptr); - static_cast(m_meta)->to_relocated(); c_addr = m_addr; - static_cast(cache)->relocate(m_addr, c_m_meta, c_meta, c_m_data, c_data); - - cache->meta_return_buffer(c_m_meta); - cache->data_return_buffer(c_m_data); } void relocation_chain(uint32_t ai, uint32_t idx, uint32_t way) { @@ -191,10 +181,8 @@ class RemapperBase : public SimpleAccMonitor virtual bool magic_func(uint64_t cache_id, uint64_t addr, uint64_t magic_id, void *magic_data) override { if (magic_id == MAGIC_ID_REMAP) { - if (magic_data) { - *static_cast(magic_data) = remap; - remap = false; - } + if(remap_enable) *static_cast(magic_data) |= remap; + remap = false; return true; } return false; @@ -213,7 +201,7 @@ class SimpleEVRemapper : public RemapperBase virtual void invalid(uint64_t cache_id, uint64_t addr, int32_t ai, int32_t s, int32_t w, const CMMetadataBase *meta, const CMDataBase *data) override { if(!active) return; cnt_invalid++; - if(remap_enable && cnt_invalid !=0 && (cnt_invalid % period) == 0) { + if(cnt_invalid !=0 && (cnt_invalid % period) == 0) { remap = true; } } From 50d31532ce53ed8b7eac70590c3c7860a3d5c76b Mon Sep 17 00:00:00 2001 From: wangzd12138 Date: Fri, 20 Sep 2024 15:15:08 +0800 Subject: [PATCH 19/23] further modify to merge master --- cache/dynamic_random.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cache/dynamic_random.hpp b/cache/dynamic_random.hpp index 19ca1a9..e48ca0d 100644 --- a/cache/dynamic_random.hpp +++ b/cache/dynamic_random.hpp @@ -141,7 +141,7 @@ class InnerCohPortRemapT : public InnerCohPortThook_manage(m_addr, new_ai, new_idx, new_way, true, true, false, m_meta, m_data, nullptr); } static_cast(cache)->swap(m_addr, c_addr, m_meta, c_meta, m_data, c_data); - cache->hook_read(c_addr, new_ai, new_idx, new_way, true, m_meta, m_data, nullptr); + cache->hook_read(c_addr, new_ai, new_idx, new_way, false, false, m_meta, m_data, nullptr); static_cast(m_meta)->to_relocated(); c_addr = m_addr; } From 1c58fb5fcf348ffc0488d500dbb080709abfa003 Mon Sep 17 00:00:00 2001 From: wangzd12138 Date: Fri, 20 Sep 2024 15:20:21 +0800 Subject: [PATCH 20/23] add cache_gen_remap --- util/cache_type.hpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/util/cache_type.hpp b/util/cache_type.hpp index 78a8eef..5c77345 100644 --- a/util/cache_type.hpp +++ b/util/cache_type.hpp @@ -5,6 +5,7 @@ #include "cache/exclusive.hpp" #include "cache/mirage.hpp" +#include "cache/dynamic_random.hpp" #include "cache/mesi.hpp" #include "cache/index.hpp" #include "cache/replace.hpp" @@ -175,4 +176,27 @@ namespace ct { } } +namespace ct { + namespace remap { + template class RPT, + typename Outer, + typename DLY, bool EnMon> + struct types { + using index_type = IndexRandom; + using replace_type = RPT; + using metadata_base_type = MetadataMSIBroadcast<48,0,0+6>; + using metadata_type = MetadataWithRelocate; + using cache_base_type = CacheRemap; + using policy_type = MSIPolicy; + using input_type = InnerCohPortRemapT; + using output_type = OuterCohPortUncached; + using cache_type = CoherentCacheNorm; + static inline auto cache_gen_remap(int size, const std::string& name_prefix) { + return cache_generator(size, name_prefix); + } + }; + } +} + #endif From d01309ca414831fe821ba684a76821886c669e13 Mon Sep 17 00:00:00 2001 From: wangzd12138 Date: Fri, 20 Sep 2024 15:30:17 +0800 Subject: [PATCH 21/23] add c2-l2-remap regression --- Makefile | 2 +- regression/c2-l2-remap.cpp | 52 ++ regression/c2-l2-remap.expect | 1644 +++++++++++++++++++++++++++++++++ 3 files changed, 1697 insertions(+), 1 deletion(-) create mode 100644 regression/c2-l2-remap.cpp create mode 100644 regression/c2-l2-remap.expect diff --git a/Makefile b/Makefile index 98a3c35..a4be8d9 100644 --- a/Makefile +++ b/Makefile @@ -48,7 +48,7 @@ REGRESSION_TESTS = \ c1-l1 \ c2-l2 c2-l2-mesi c2-l2-exc c2-l2-exc-mi c2-l2-exc-mesi \ c4-l3 c4-l3-exc c4-l3-exc-mesi c4-l3-intel \ - c2-l2-mirage + c2-l2-mirage c2-l2-remap REGRESSION_TESTS_EXE = $(patsubst %, regression/%, $(REGRESSION_TESTS)) REGRESSION_TESTS_LOG = $(patsubst %, regression/%.log, $(REGRESSION_TESTS)) diff --git a/regression/c2-l2-remap.cpp b/regression/c2-l2-remap.cpp new file mode 100644 index 0000000..d890a5c --- /dev/null +++ b/regression/c2-l2-remap.cpp @@ -0,0 +1,52 @@ +#include "cache/memory.hpp" +#include "util/cache_type.hpp" +#include "util/regression.hpp" + +#define PAddrN 128 +#define SAddrN 64 +#define NCore 2 +#define TestN ((PAddrN + SAddrN) * NCore * 2) + +#define L1IW 4 +#define L1WN 4 + +#define L2IW 5 +#define L2WN 8 + +int main() { + using remap_gen = ct::remap::types; + using policy_l2 = MSIPolicy; + using policy_l1d = MSIPolicy; + using policy_l1i = MSIPolicy; + auto l1d = cache_gen_l1(NCore, "l1d"); + auto core_data = get_l1_core_interface(l1d); + auto l1i = cache_gen_l1(NCore, "l1i"); + auto core_inst = get_l1_core_interface(l1i); + auto l2 = remap_gen::cache_gen_remap(1, "l2")[0]; + auto mem = new SimpleMemoryModel("mem"); + SimpleTracer tracer(true); + SimpleEVRemapper Remapper(10); + + for(int i=0; iouter->connect(l2->inner); + l1d[i]->outer->connect(l2->inner); + l1i[i]->attach_monitor(&tracer); + l1d[i]->attach_monitor(&tracer); + } + l2->outer->connect(mem); + + l2->attach_monitor(&tracer); + l2->attach_monitor(&Remapper); + mem->attach_monitor(&tracer); + tracer.start(); + + RegressionGen tgen; + auto rv = tgen.run(TestN, core_inst, core_data); + + tracer.stop(); + delete_caches(l1d); + delete_caches(l1i); + delete l2; + delete mem; + return rv; +} diff --git a/regression/c2-l2-remap.expect b/regression/c2-l2-remap.expect new file mode 100644 index 0000000..69570f7 --- /dev/null +++ b/regression/c2-l2-remap.expect @@ -0,0 +1,1644 @@ +mem read 000039a6b2ebcd00 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000039a6b2ebcd00 00 0001 00 0 [McW] 0000000000000000 +l1d-1 write 000039a6b2ebcd00 00 0004 00 0 [MdW] 92f3c8ee96a39ad8 +mem read 000018c9dccfc840 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000018c9dccfc840 00 0011 00 0 [McW] 0000000000000000 +l1d-0 write 000018c9dccfc840 00 0001 00 0 [MdW] 83b569fd7e2f93d0 +mem read 00005a86b1c246c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00005a86b1c246c0 00 0017 00 0 [McW] 0000000000000000 +l1d-1 write 00005a86b1c246c0 00 0011 00 0 [MdW] a4ed9aaf1420592d +mem read 00007a0ccec77d00 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00007a0ccec77d00 00 0004 00 0 [McW] 0000000000000000 +l1d-1 write 00007a0ccec77d00 00 0004 01 0 [MdW] 603f902534bdd00d +l2 write 00007a0ccec77d00 00 0004 00 1 [MdW] 603f902534bdd00d +l2 read 00007a0ccec77d00 00 0004 00 1 [SdW] 603f902534bdd00d +l1d-0 read 00007a0ccec77d00 00 0004 00 0 [ScR] 603f902534bdd00d +mem read 000019a40a160240 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000019a40a160240 00 0008 00 0 [McW] 0000000000000000 +l1d-0 write 000019a40a160240 00 0009 00 0 [MdW] 8330cfb2dc469827 +mem read 0000ced5eac0d680 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000ced5eac0d680 00 0002 00 0 [McW] 0000000000000000 +l1d-0 write 0000ced5eac0d680 00 0010 00 0 [MdW] 286cd5e99abee408 +mem read 000039a5e213fe00 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000039a5e213fe00 00 0010 00 0 [McW] 0000000000000000 +l1d-1 write 000039a5e213fe00 00 0008 00 0 [MdW] ab1570a6fc8f5e64 +mem read 000066e78b358f00 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000066e78b358f00 00 0009 00 0 [McW] 0000000000000000 +l1d-0 write 000066e78b358f00 00 0012 00 0 [MdW] 46e305bdddfc6574 +mem read 0000c97dfb94fd80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000c97dfb94fd80 00 0019 00 0 [McW] 0000000000000000 +l1d-1 write 0000c97dfb94fd80 00 0006 00 0 [MdW] 866e8372e740908a +mem read 0000033616c7e540 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000033616c7e540 00 0022 00 0 [McW] 0000000000000000 +l1d-0 write 0000033616c7e540 00 0005 00 0 [MdW] 505e4c2fc450e2ad +mem read 000049afd5e02b40 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000049afd5e02b40 00 0015 00 0 [McW] 0000000000000000 +l1d-0 write 000049afd5e02b40 00 0013 00 0 [MdW] 0d73762cec20ec64 +mem read 0000b5cd51622240 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000b5cd51622240 00 0015 01 0 [McW] 0000000000000000 +l1d-1 write 0000b5cd51622240 00 0009 00 0 [MdW] 4f9c1718ca9de14e +mem read 00004d48d3ab6400 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00004d48d3ab6400 00 0025 00 0 [McW] 0000000000000000 +l1d-1 write 00004d48d3ab6400 00 0000 00 0 [MdW] ba6e57907407aadf +mem read 00003f232f338000 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00003f232f338000 00 0021 00 0 [McW] 0000000000000000 +l1d-0 write 00003f232f338000 00 0000 00 0 [MdW] a2d413acae95e3cd +l1d-1 read 000039a5e213fe00 00 0008 00 1 [MdW] ab1570a6fc8f5e64 +mem read 00005dfc154ee8c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00005dfc154ee8c0 00 0001 01 0 [McW] 0000000000000000 +l1d-0 write 00005dfc154ee8c0 00 0003 00 0 [MdW] 8a7139c015313d43 +mem read 000057ef223eb2c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000057ef223eb2c0 00 0009 01 0 [McW] 0000000000000000 +l1d-0 write 000057ef223eb2c0 00 0011 00 0 [MdW] fcc2619e1793c524 +mem read 0000a65bf8171680 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000a65bf8171680 00 0024 00 0 [McW] 0000000000000000 +l1d-0 write 0000a65bf8171680 00 0010 01 0 [MdW] e92d6a6544b2e04a +mem read 00002d9824d83d80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00002d9824d83d80 00 0021 01 0 [McW] 0000000000000000 +l1d-1 write 00002d9824d83d80 00 0006 01 0 [MdW] 101aad3e107bdbf7 +mem read 00005066f9d0b480 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00005066f9d0b480 00 0026 00 0 [McW] 0000000000000000 +l1d-0 write 00005066f9d0b480 00 0002 00 0 [MdW] 137a92d6da9c98a8 +mem read 0000d99af3531440 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000d99af3531440 00 0026 01 0 [McW] 0000000000000000 +l1d-1 write 0000d99af3531440 00 0001 00 0 [MdW] e66ccdd010b2f326 +mem read 0000ff71c82dc900 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000ff71c82dc900 00 0031 00 0 [McW] 0000000000000000 +l1d-0 write 0000ff71c82dc900 00 0004 01 0 [MdW] 75c7c14436ed60c6 +mem read 0000c20e6058a4c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000c20e6058a4c0 00 0004 01 0 [McW] 0000000000000000 +l1d-1 write 0000c20e6058a4c0 00 0003 00 0 [MdW] 82e8d84a28a779bb +l1d-1 read 0000d99af3531440 00 0001 00 1 [MdW] e66ccdd010b2f326 +mem read 0000c477f06039c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000c477f06039c0 00 0016 00 0 [McW] 0000000000000000 +l1d-0 write 0000c477f06039c0 00 0007 00 0 [MdW] 07a43d1b05d30814 +l1d-0 read 00005066f9d0b480 00 0002 00 1 [MdW] 137a92d6da9c98a8 +mem read 0000ed89583b9580 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000ed89583b9580 00 0018 00 0 [McW] 0000000000000000 +l1d-1 write 0000ed89583b9580 00 0006 02 0 [MdW] df138b65bf1ba81e +mem read 00009a603343d580 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00009a603343d580 00 0031 01 0 [McW] 0000000000000000 +l1d-0 write 00009a603343d580 00 0006 00 0 [MdW] c162b9927026ea74 +mem read 000078135d3f5200 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000078135d3f5200 00 0000 00 0 [McW] 0000000000000000 +l1d-1 write 000078135d3f5200 00 0008 01 0 [MdW] 0ec0b79ad41353f3 +l1d-1 read 00007a0ccec77d00 00 0004 01 1 [ScR] 603f902534bdd00d +l1d-0 read 00009a603343d580 00 0006 00 1 [MdW] c162b9927026ea74 +mem read 000087a8e7348c80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000087a8e7348c80 00 0009 02 0 [McW] 0000000000000000 +l1d-0 write 000087a8e7348c80 00 0002 01 0 [MdW] f525efac2f3cf7fd +l1d-1 read 000039a5e213fe00 00 0008 00 1 [MdW] ab1570a6fc8f5e64 +mem read 00002ccb051018c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00002ccb051018c0 00 0026 02 0 [McW] 0000000000000000 +l1d-1 write 00002ccb051018c0 00 0003 01 0 [MdW] 37430a6ae2ed6122 +mem read 000016f64b35ad40 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000016f64b35ad40 00 0025 01 0 [McW] 0000000000000000 +l1d-1 write 000016f64b35ad40 00 0005 00 0 [MdW] 0a3253895fd4c544 +mem read 0000a6f9f0803d80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000a6f9f0803d80 00 0010 01 0 [McW] 0000000000000000 +l1d-0 write 0000a6f9f0803d80 00 0006 01 0 [MdW] 2efe16e086b3c230 +mem read 0000c662cc646980 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000c662cc646980 00 0000 01 0 [McW] 0000000000000000 +l1d-0 write 0000c662cc646980 00 0006 02 0 [MdW] cd75106db33edfb9 +l1d-0 read 000018c9dccfc840 00 0001 00 1 [MdW] 83b569fd7e2f93d0 +mem read 000052d61b6d5a00 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000052d61b6d5a00 00 0016 01 0 [McW] 0000000000000000 +l1d-0 write 000052d61b6d5a00 00 0008 00 0 [MdW] a4ca6d0b4cdb32f8 +mem read 000043ca5c07b240 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000043ca5c07b240 00 0000 02 0 [McW] 0000000000000000 +l1d-1 write 000043ca5c07b240 00 0009 01 0 [MdW] eb220539d65d1d1d +mem read 0000242235f69b80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000242235f69b80 00 0023 00 0 [McW] 0000000000000000 +l1d-1 write 0000242235f69b80 00 0014 00 0 [MdW] cd0f83c76caa72c4 +mem read 00002814eea2cf80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00002814eea2cf80 00 0019 01 0 [McW] 0000000000000000 +l1d-1 write 00002814eea2cf80 00 0014 01 0 [MdW] ac76c3067a593258 +mem read 00003bd14ab212c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00003bd14ab212c0 00 0021 02 0 [McW] 0000000000000000 +l1d-1 write 00003bd14ab212c0 00 0011 01 0 [MdW] 338c39d468604fc8 +l1d-1 read 00002ccb051018c0 00 0003 01 1 [MdW] 37430a6ae2ed6122 +l1d-0 write 00009a603343d580 00 0006 00 1 [MdW] 020e5e644f2ad57f +mem read 0000bb75517c9b80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000bb75517c9b80 00 0011 01 0 [McW] 0000000000000000 +l1d-1 write 0000bb75517c9b80 00 0014 02 0 [MdW] 7b7218fdb561dee4 +mem read 00001cff7cd11500 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00001cff7cd11500 00 0012 00 0 [McW] 0000000000000000 +l1d-1 write 00001cff7cd11500 00 0004 02 0 [MdW] 0e4d4bf31c06ad0e +l1d-1 write 000043ca5c07b240 00 0009 01 1 [MdW] 0b03165c64b25b52 +mem read 0000cb3c5e49d5c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000cb3c5e49d5c0 00 0016 02 0 [McW] 0000000000000000 +l1d-1 write 0000cb3c5e49d5c0 00 0007 00 0 [MdW] 96d85584f5f75334 +l1d-1 read 0000bb75517c9b80 00 0014 02 1 [MdW] 7b7218fdb561dee4 +l1d-0 write 0000c662cc646980 00 0006 02 1 [MdW] 3987fbb7ff0e452f +mem read 00002cbcc4bef440 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00002cbcc4bef440 00 0001 02 0 [McW] 0000000000000000 +l1d-0 write 00002cbcc4bef440 00 0001 01 0 [MdW] ab6b5c43445d1eaf +l1d-0 read 000052d61b6d5a00 00 0008 00 1 [MdW] a4ca6d0b4cdb32f8 +l1d-0 read 000087a8e7348c80 00 0002 01 1 [MdW] f525efac2f3cf7fd +mem read 0000605ba6057540 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000605ba6057540 00 0016 03 0 [McW] 0000000000000000 +l1d-0 write 0000605ba6057540 00 0005 01 0 [MdW] cfc80859e336b176 +l1d-1 read 0000ed89583b9580 00 0006 02 1 [MdW] df138b65bf1ba81e +mem read 00007c5378aae380 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00007c5378aae380 00 0008 01 0 [McW] 0000000000000000 +l1d-1 write 00007c5378aae380 00 0014 03 0 [MdW] 53d9575e9769a4f8 +l1d-1 write 000016f64b35ad40 00 0005 00 1 [MdW] f0cf83fbebb65de6 +mem read 0000f66f9acff100 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000f66f9acff100 00 0030 00 0 [McW] 0000000000000000 +l1d-0 write 0000f66f9acff100 00 0004 02 0 [MdW] c7f5ae053c4b54cf +mem read 00007b42479583c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00007b42479583c0 00 0026 03 0 [McW] 0000000000000000 +l1d-1 write 00007b42479583c0 00 0015 00 0 [MdW] 1fca5feae77517e8 +l1d-0 read 0000a65bf8171680 00 0010 01 1 [MdW] e92d6a6544b2e04a +mem read 0000b78d2a790900 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000b78d2a790900 00 0023 01 0 [McW] 0000000000000000 +l1d-0 write 0000b78d2a790900 00 0004 03 0 [MdW] 4b286894f1b254a4 +mem read 000065dc0cb58f00 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000065dc0cb58f00 00 0010 02 0 [McW] 0000000000000000 +l1d-0 write 000065dc0cb58f00 00 0012 01 0 [MdW] 33d1db34ba341148 +mem read 00003be6b01765c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00003be6b01765c0 00 0025 02 0 [McW] 0000000000000000 +l1d-0 write 00003be6b01765c0 00 0007 01 0 [MdW] b07105a9381db806 +l1d-0 read 000057ef223eb2c0 00 0011 00 1 [MdW] fcc2619e1793c524 +mem read 0000fa408c35ba00 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000fa408c35ba00 00 0005 00 0 [McW] 0000000000000000 +l1d-0 write 0000fa408c35ba00 00 0008 01 0 [MdW] 0f510d0082c38a2a +l1d-1 read 00002814eea2cf80 00 0014 01 1 [MdW] ac76c3067a593258 +mem read 0000792d5ad259c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000792d5ad259c0 00 0024 01 0 [McW] 0000000000000000 +l1d-1 write 0000792d5ad259c0 00 0007 01 0 [MdW] 14078fc202486941 +l1d-1 read 0000bb75517c9b80 00 0014 02 1 [MdW] 7b7218fdb561dee4 +mem read 000073703a455800 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000073703a455800 00 0004 02 0 [McW] 0000000000000000 +l1d-1 write 000073703a455800 00 0000 01 0 [MdW] 84b896eee0ea8bfb +mem read 0000bd16375b9000 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000bd16375b9000 00 0030 01 0 [McW] 0000000000000000 +l1d-0 write 0000bd16375b9000 00 0000 01 0 [MdW] 471f2cfa81d3ac5a +mem read 00001ad58832f640 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00001ad58832f640 00 0009 03 0 [McW] 0000000000000000 +l1d-0 write 00001ad58832f640 00 0009 01 0 [MdW] 1ff8b0b6c912b3c9 +mem read 00006a25c963e900 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00006a25c963e900 00 0028 00 0 [McW] 0000000000000000 +l1d-1 write 00006a25c963e900 00 0004 03 0 [MdW] ae43245b0fd92af4 +mem read 0000acd63c8d1880 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000acd63c8d1880 00 0017 01 0 [McW] 0000000000000000 +l1d-0 write 0000acd63c8d1880 00 0002 02 0 [MdW] 8995eace539d8fd8 +mem read 00006d3f203d79c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00006d3f203d79c0 00 0023 02 0 [McW] 0000000000000000 +l1d-1 write 00006d3f203d79c0 00 0007 02 0 [MdW] 6e8f92dc574cb465 +mem read 00004dcada9f52c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00004dcada9f52c0 00 0004 03 0 [McW] 0000000000000000 +l1d-0 write 00004dcada9f52c0 00 0011 01 0 [MdW] df2509b29fb62744 +mem read 000030295cbb89c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000030295cbb89c0 00 0031 02 0 [McW] 0000000000000000 +l1d-1 write 000030295cbb89c0 00 0007 03 0 [MdW] 9dc7657dd695cd8c +mem read 000035b33dc0d400 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000035b33dc0d400 00 0003 00 0 [McW] 0000000000000000 +l1d-0 write 000035b33dc0d400 00 0000 02 0 [MdW] b3fa26fb2bb1072d +mem read 00004f46a7d2ea80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00004f46a7d2ea80 00 0020 00 0 [McW] 0000000000000000 +l1d-1 write 00004f46a7d2ea80 00 0010 00 0 [MdW] 5cc39e710db580f0 +mem read 00000b438aedb2c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00000b438aedb2c0 00 0027 00 0 [McW] 0000000000000000 +l1d-1 write 00000b438aedb2c0 00 0011 02 0 [MdW] 5ecbef1f072d7164 +l2 write 00001cff7cd11500 00 0012 00 1 [MdW] 0e4d4bf31c06ad0e +l2 read 00001cff7cd11500 00 0012 00 1 [SdW] 0e4d4bf31c06ad0e +l1i-1 read 00001cff7cd11500 00 0004 00 0 [ScR] 0e4d4bf31c06ad0e +mem read 0000aaaf5454e400 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000aaaf5454e400 00 0005 01 0 [McW] 0000000000000000 +l1d-0 write 0000aaaf5454e400 00 0000 03 0 [MdW] 9eb60b8de359e983 +l1d-0 read 000052d61b6d5a00 00 0008 00 1 [MdW] a4ca6d0b4cdb32f8 +mem read 0000a40aa8666480 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000a40aa8666480 00 0025 03 0 [McW] 0000000000000000 +l1d-0 write 0000a40aa8666480 00 0002 03 0 [MdW] 173c5f4478ac31b3 +mem read 0000c0773417d200 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000c0773417d200 00 0000 03 0 [McW] 0000000000000000 +l1d-1 write 0000c0773417d200 00 0008 02 0 [MdW] 729cc719bf00c2c7 +l2 write 00005066f9d0b480 00 0026 00 1 [MdW] 137a92d6da9c98a8 +l1d-0 evict 00005066f9d0b480 00 0002 00 [IcR] 137a92d6da9c98a8 +mem read 0000f448c073e880 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000f448c073e880 00 0022 01 0 [McW] 0000000000000000 +l1d-0 write 0000f448c073e880 00 0002 00 0 [MdW] 563a359b9f3978a0 +mem read 0000c86d27a3d040 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000c86d27a3d040 00 0002 01 0 [McW] 0000000000000000 +l1d-0 write 0000c86d27a3d040 00 0001 02 0 [MdW] 3034aadc83c0c12c +mem read 0000883768b6a3c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000883768b6a3c0 00 0013 00 0 [McW] 0000000000000000 +l1d-1 write 0000883768b6a3c0 00 0015 01 0 [MdW] 380bc1e40165d228 +mem read 0000012233313580 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000012233313580 00 0022 02 0 [McW] 0000000000000000 +l1d-1 write 0000012233313580 00 0006 03 0 [MdW] 035a85acce905784 +l2 write 000039a6b2ebcd00 00 0001 00 1 [MdW] 92f3c8ee96a39ad8 +l1d-1 evict 000039a6b2ebcd00 00 0004 00 [IcR] 92f3c8ee96a39ad8 +mem read 0000803bdde89900 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000803bdde89900 00 0008 02 0 [McW] 0000000000000000 +l1d-1 write 0000803bdde89900 00 0004 00 0 [MdW] 4149d9c5522ff4aa +l1d-1 write 0000883768b6a3c0 00 0015 01 1 [MdW] 2ff8705424575c12 +mem read 00006980d04a3400 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00006980d04a3400 00 0009 04 0 [McW] 0000000000000000 +l1d-1 write 00006980d04a3400 00 0000 02 0 [MdW] 7e87cb6b5a7c5b20 +mem read 000015c671e31180 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000015c671e31180 00 0030 02 0 [McW] 0000000000000000 +l1d-0 write 000015c671e31180 00 0006 03 0 [MdW] f2046a186505ea97 +l1d-1 read 0000242235f69b80 00 0014 00 1 [MdW] cd0f83c76caa72c4 +l1d-1 read 00002d9824d83d80 00 0006 01 1 [MdW] 101aad3e107bdbf7 +l1d-1 evict 0000c0773417d200 00 0008 02 [IcR] 729cc719bf00c2c7 +l2 write 0000c0773417d200 00 0000 03 1 [MdW] 729cc719bf00c2c7 +l2 read 0000c0773417d200 00 0000 03 1 [MdW] 729cc719bf00c2c7 +l1d-0 write 0000c0773417d200 00 0008 02 0 [MdW] 2f46e337ff7072cf +l1d-1 write 00004f46a7d2ea80 00 0010 00 1 [MdW] 72fa0bb71628eb88 +mem read 0000136b8cb094c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000136b8cb094c0 00 0009 05 0 [McW] 0000000000000000 +l1d-1 write 0000136b8cb094c0 00 0003 02 0 [MdW] 0222675c83eb04dd +l1d-0 write 000052d61b6d5a00 00 0008 00 1 [MdW] f2ba597f630895bc +l2 write 00007c5378aae380 00 0008 01 1 [MdW] 53d9575e9769a4f8 +l1d-1 evict 00007c5378aae380 00 0014 03 [IcR] 53d9575e9769a4f8 +mem read 00007d0902e50f80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00007d0902e50f80 00 0023 03 0 [McW] 0000000000000000 +l1d-1 write 00007d0902e50f80 00 0014 03 0 [MdW] 7db9c8fa6d0f39e2 +mem read 0000a0082dda2840 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000a0082dda2840 00 0023 04 0 [McW] 0000000000000000 +l1d-1 write 0000a0082dda2840 00 0001 01 0 [MdW] e32363faf3579882 +l1d-0 read 00009a603343d580 00 0006 00 1 [MdW] 020e5e644f2ad57f +l1d-0 write 0000c662cc646980 00 0006 02 1 [MdW] 2890bd85006b410f +l1d-1 read 0000b5cd51622240 00 0009 00 1 [MdW] 4f9c1718ca9de14e +l1d-1 write 00007d0902e50f80 00 0014 03 1 [MdW] 4175eb4d906962c0 +l1d-1 read 00004f46a7d2ea80 00 0010 00 1 [MdW] 72fa0bb71628eb88 +l1d-1 read 000043ca5c07b240 00 0009 01 1 [MdW] 0b03165c64b25b52 +l1d-0 read 00009a603343d580 00 0006 00 1 [MdW] 020e5e644f2ad57f +l1d-1 read 00002d9824d83d80 00 0006 01 1 [MdW] 101aad3e107bdbf7 +l1d-0 read 000057ef223eb2c0 00 0011 00 1 [MdW] fcc2619e1793c524 +l1d-0 read 000015c671e31180 00 0006 03 1 [MdW] f2046a186505ea97 +l1d-0 read 0000a65bf8171680 00 0010 01 1 [MdW] e92d6a6544b2e04a +mem read 00006f44ab8bcf80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00006f44ab8bcf80 00 0017 02 0 [McW] 0000000000000000 +l1d-0 write 00006f44ab8bcf80 00 0014 00 0 [MdW] 53a8a8925ca7b5c1 +l2 write 00004f46a7d2ea80 00 0020 00 1 [MdW] 72fa0bb71628eb88 +l2 read 00004f46a7d2ea80 00 0020 00 1 [SdW] 72fa0bb71628eb88 +l1d-0 read 00004f46a7d2ea80 00 0010 02 0 [ScR] 72fa0bb71628eb88 +l1d-1 read 0000a0082dda2840 00 0001 01 1 [MdW] e32363faf3579882 +mem read 00004813c834cdc0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00004813c834cdc0 00 0025 04 0 [McW] 0000000000000000 +l1d-0 write 00004813c834cdc0 00 0007 02 0 [MdW] 6490dcecd59b9e65 +l1d-0 read 00004813c834cdc0 00 0007 02 1 [MdW] 6490dcecd59b9e65 +l1d-1 read 00002d9824d83d80 00 0006 01 1 [MdW] 101aad3e107bdbf7 +l1d-0 read 00001ad58832f640 00 0009 01 1 [MdW] 1ff8b0b6c912b3c9 +mem read 0000045cce7b2a40 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000045cce7b2a40 00 0030 03 0 [McW] 0000000000000000 +l1d-0 write 0000045cce7b2a40 00 0009 02 0 [MdW] 9732b992490f2bec +l2 write 000087a8e7348c80 00 0009 02 1 [MdW] f525efac2f3cf7fd +l1d-0 evict 000087a8e7348c80 00 0002 01 [IcR] f525efac2f3cf7fd +mem read 0000418397142480 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000418397142480 00 0003 01 0 [McW] 0000000000000000 +l1d-0 write 0000418397142480 00 0002 01 0 [MdW] d5ca42501735883b +mem read 0000908064eef6c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000908064eef6c0 00 0003 02 0 [McW] 0000000000000000 +l1d-1 write 0000908064eef6c0 00 0011 03 0 [MdW] f840ce71fef19440 +mem read 0000d1a495bc3400 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000d1a495bc3400 00 0007 00 0 [McW] 0000000000000000 +l1d-1 write 0000d1a495bc3400 00 0000 03 0 [MdW] b09506206c0eb875 +mem read 00009fde26f888c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00009fde26f888c0 00 0005 02 0 [McW] 0000000000000000 +l1d-0 write 00009fde26f888c0 00 0003 01 0 [MdW] 8686d9ef6a6a287c +l2 write 00004d48d3ab6400 00 0025 00 1 [MdW] ba6e57907407aadf +l1d-1 evict 00004d48d3ab6400 00 0000 00 [IcR] ba6e57907407aadf +mem read 000013d16c815400 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000013d16c815400 00 0018 01 0 [McW] 0000000000000000 +l1d-1 write 000013d16c815400 00 0000 00 0 [MdW] 25524688721323dc +mem read 000073f8f4229a80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000073f8f4229a80 00 0006 00 0 [McW] 0000000000000000 +l1d-0 write 000073f8f4229a80 00 0010 03 0 [MdW] 1702ea018319b29e +mem read 0000750cdfd9ed40 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000750cdfd9ed40 00 0031 03 0 [McW] 0000000000000000 +l1d-0 write 0000750cdfd9ed40 00 0005 02 0 [MdW] a1fecd85f61fe080 +l1d-0 write 000019a40a160240 00 0009 00 1 [MdW] 003301b2273c5e28 +mem read 000095873da506c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000095873da506c0 00 0012 01 0 [McW] 0000000000000000 +l1d-0 write 000095873da506c0 00 0011 02 0 [MdW] 5d652850f1d45f1d +mem read 000000f97fae5cc0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000000f97fae5cc0 00 0003 03 0 [McW] 0000000000000000 +l1d-0 write 000000f97fae5cc0 00 0003 02 0 [MdW] 5a9b67dc4f76dfb0 +l1d-0 read 0000b78d2a790900 00 0004 03 1 [MdW] 4b286894f1b254a4 +mem read 0000c92c00098fc0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000c92c00098fc0 00 0011 02 0 [McW] 0000000000000000 +l1d-1 write 0000c92c00098fc0 00 0015 02 0 [MdW] 5ac8f2c9a0464889 +l1d-1 read 00005a86b1c246c0 00 0011 00 1 [MdW] a4ed9aaf1420592d +mem read 000040f7755c2ac0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000040f7755c2ac0 00 0025 05 0 [McW] 0000000000000000 +l1d-0 write 000040f7755c2ac0 00 0011 03 0 [MdW] 25a76a616407309f +l1d-1 write 000039a5e213fe00 00 0008 00 1 [MdW] 936f106a592e18f2 +mem read 0000f76720bc2480 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000f76720bc2480 00 0027 01 0 [McW] 0000000000000000 +l1d-1 write 0000f76720bc2480 00 0002 00 0 [MdW] 565b8595108a30b2 +l1d-1 read 00005a86b1c246c0 00 0011 00 1 [MdW] a4ed9aaf1420592d +l1d-0 write 0000c662cc646980 00 0006 02 1 [MdW] 07a6036c839cdbf5 +l1d-1 read 0000883768b6a3c0 00 0015 01 1 [MdW] 2ff8705424575c12 +l1d-0 write 0000c662cc646980 00 0006 02 1 [MdW] 5a40dd098e0e0eef +l2 write 00002814eea2cf80 00 0019 01 1 [MdW] ac76c3067a593258 +l1d-1 evict 00002814eea2cf80 00 0014 01 [IcR] ac76c3067a593258 +mem read 000092e2f479cf80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000092e2f479cf80 00 0031 04 0 [McW] 0000000000000000 +l1d-1 write 000092e2f479cf80 00 0014 01 0 [MdW] 33c61b349e0e4999 +l1d-1 write 0000bb75517c9b80 00 0014 02 1 [MdW] 78786a2e713dca43 +l1d-1 write 0000c20e6058a4c0 00 0003 00 1 [MdW] 9d29d9cac786a1e3 +l2 write 000073703a455800 00 0004 02 1 [MdW] 84b896eee0ea8bfb +l1d-1 evict 000073703a455800 00 0000 01 [IcR] 84b896eee0ea8bfb +mem read 00007e3437831800 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00007e3437831800 00 0017 03 0 [McW] 0000000000000000 +l1d-1 write 00007e3437831800 00 0000 01 0 [MdW] ccaa263c2051e1d1 +mem read 0000534534d814c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000534534d814c0 00 0006 01 0 [McW] 0000000000000000 +l1d-0 write 0000534534d814c0 00 0003 03 0 [MdW] 5488878000e9ca11 +l1d-1 read 00006a25c963e900 00 0004 03 1 [MdW] ae43245b0fd92af4 +l1d-0 write 000040f7755c2ac0 00 0011 03 1 [MdW] b7c65bf46efbfe6e +mem read 00006bf6751e90c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00006bf6751e90c0 00 0004 04 0 [McW] 0000000000000000 +l1d-1 write 00006bf6751e90c0 00 0003 03 0 [MdW] 1bb491472e86fbd8 +l1d-1 read 00005a86b1c246c0 00 0011 00 1 [MdW] a4ed9aaf1420592d +l1d-0 write 00002cbcc4bef440 00 0001 01 1 [MdW] 4dbd028faad33d6c +mem read 0000ade5546e9640 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000ade5546e9640 00 0019 02 0 [McW] 0000000000000000 +l1d-0 write 0000ade5546e9640 00 0009 03 0 [MdW] 292bf8907b74edd2 +mem read 00008e48523b3e80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00008e48523b3e80 00 0028 01 0 [McW] 0000000000000000 +l1d-1 write 00008e48523b3e80 00 0010 01 0 [MdW] 9419ebae6d75d1b9 +l1d-1 read 00002ccb051018c0 00 0003 01 1 [MdW] 37430a6ae2ed6122 +l1d-0 read 00004dcada9f52c0 00 0011 01 1 [MdW] df2509b29fb62744 +l1d-0 write 0000a6f9f0803d80 00 0006 01 1 [MdW] c0f82e8e69025d47 +mem read 000063036c943940 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000063036c943940 00 0026 04 0 [McW] 0000000000000000 +l1d-0 write 000063036c943940 00 0005 03 0 [MdW] fe254bc894940d80 +l2 write 00001ad58832f640 00 0009 03 1 [MdW] 1ff8b0b6c912b3c9 +l1d-0 evict 00001ad58832f640 00 0009 01 [IcR] 1ff8b0b6c912b3c9 +mem read 0000d6eae7df0a40 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000d6eae7df0a40 00 0020 01 0 [McW] 0000000000000000 +l1d-0 write 0000d6eae7df0a40 00 0009 01 0 [MdW] 212009caf997e0d1 +mem read 000025cc871abf00 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000025cc871abf00 00 0017 04 0 [McW] 0000000000000000 +l1d-1 write 000025cc871abf00 00 0012 00 0 [MdW] a36cd516217674c5 +l1d-1 evict 00007a0ccec77d00 00 0004 01 [IcR] 603f902534bdd00d +mem read 0000fc3d1a588d00 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000fc3d1a588d00 00 0025 06 0 [McW] 0000000000000000 +l1d-1 write 0000fc3d1a588d00 00 0004 01 0 [MdW] 20d6291b6fceeaa3 +l2 write 00005dfc154ee8c0 00 0001 01 1 [MdW] 8a7139c015313d43 +l1d-0 evict 00005dfc154ee8c0 00 0003 00 [IcR] 8a7139c015313d43 +mem read 00009a461a9864c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00009a461a9864c0 00 0019 03 0 [McW] 0000000000000000 +l1d-0 write 00009a461a9864c0 00 0003 00 0 [MdW] ba1ecfdec3d1dc5d +l1d-0 evict 00004f46a7d2ea80 00 0010 02 [IcR] 72fa0bb71628eb88 +l2 read 00004f46a7d2ea80 00 0020 00 1 [MdW] 72fa0bb71628eb88 +l1d-1 write 00004f46a7d2ea80 00 0010 00 0 [MdW] d8a5addb7e65e806 +l1d-1 read 0000cb3c5e49d5c0 00 0007 00 1 [MdW] 96d85584f5f75334 +l2 write 00003f232f338000 00 0021 00 1 [MdW] a2d413acae95e3cd +l1d-0 evict 00003f232f338000 00 0000 00 [IcR] a2d413acae95e3cd +l1d-1 evict 00007e3437831800 00 0000 01 [IcR] ccaa263c2051e1d1 +l2 write 00007e3437831800 00 0017 03 1 [MdW] ccaa263c2051e1d1 +l2 read 00007e3437831800 00 0017 03 1 [MdW] ccaa263c2051e1d1 +l1d-0 write 00007e3437831800 00 0000 00 0 [MdW] 9ac69dc0ff6bf852 +l2 write 0000045cce7b2a40 00 0030 03 1 [MdW] 9732b992490f2bec +l1d-0 evict 0000045cce7b2a40 00 0009 02 [IcR] 9732b992490f2bec +l2 read 00001ad58832f640 00 0009 03 1 [MdW] 1ff8b0b6c912b3c9 +l1d-0 write 00001ad58832f640 00 0009 02 0 [MdW] 84fce73def654b09 +l1d-0 read 0000c86d27a3d040 00 0001 02 1 [MdW] 3034aadc83c0c12c +l1d-0 read 0000c662cc646980 00 0006 02 1 [MdW] 5a40dd098e0e0eef +l1d-0 write 00009a603343d580 00 0006 00 1 [MdW] c334dfcfde2552e3 +l1d-0 write 0000c662cc646980 00 0006 02 1 [MdW] 816f140018ef71ee +l1d-0 read 000052d61b6d5a00 00 0008 00 1 [MdW] f2ba597f630895bc +l1d-0 read 000019a40a160240 00 0009 00 1 [MdW] 003301b2273c5e28 +l1d-0 read 000063036c943940 00 0005 03 1 [MdW] fe254bc894940d80 +l1d-1 read 000016f64b35ad40 00 0005 00 1 [MdW] f0cf83fbebb65de6 +l1d-1 read 000039a5e213fe00 00 0008 00 1 [MdW] 936f106a592e18f2 +l1d-1 read 0000c97dfb94fd80 00 0006 00 1 [MdW] 866e8372e740908a +l2 write 0000242235f69b80 00 0023 00 1 [MdW] cd0f83c76caa72c4 +l1d-1 evict 0000242235f69b80 00 0014 00 [IcR] cd0f83c76caa72c4 +mem read 00005d35d68c9380 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00005d35d68c9380 00 0019 04 0 [McW] 0000000000000000 +l1d-1 write 00005d35d68c9380 00 0014 00 0 [MdW] 51bed99eb8f604e9 +mem read 0000333bb344eb40 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000333bb344eb40 00 0013 01 0 [McW] 0000000000000000 +l1d-0 write 0000333bb344eb40 00 0013 01 0 [MdW] b8f60836dc885f73 +l1d-0 read 0000c86d27a3d040 00 0001 02 1 [MdW] 3034aadc83c0c12c +l1d-1 write 000039a5e213fe00 00 0008 00 1 [MdW] 7892a8403ecb4af3 +mem read 0000095a29bb9340 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000095a29bb9340 00 0011 03 0 [McW] 0000000000000000 +l1d-1 write 0000095a29bb9340 00 0013 00 0 [MdW] 482146cfbf6e77c6 +l1d-0 read 000052d61b6d5a00 00 0008 00 1 [MdW] f2ba597f630895bc +l1d-1 write 00008e48523b3e80 00 0010 01 1 [MdW] 665d67bf32230465 +l1d-0 write 000000f97fae5cc0 00 0003 02 1 [MdW] d6f7e41866f9a4a8 +mem read 00002c011c660300 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00002c011c660300 00 0012 02 0 [McW] 0000000000000000 +l1d-0 write 00002c011c660300 00 0012 02 0 [MdW] 7a2d736a5722d9e9 +l2 write 000015c671e31180 00 0030 02 1 [MdW] f2046a186505ea97 +l1d-0 evict 000015c671e31180 00 0006 03 [IcR] f2046a186505ea97 +mem read 00000701e403e980 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00000701e403e980 00 0013 02 0 [McW] 0000000000000000 +l1d-0 write 00000701e403e980 00 0006 03 0 [MdW] d91c439474d9ea75 +l1d-0 read 000095873da506c0 00 0011 02 1 [MdW] 5d652850f1d45f1d +l1d-1 write 00007d0902e50f80 00 0014 03 1 [MdW] b58da730dd4416c2 +l1d-0 read 00004813c834cdc0 00 0007 02 1 [MdW] 6490dcecd59b9e65 +l1d-1 read 0000bb75517c9b80 00 0014 02 1 [MdW] 78786a2e713dca43 +l1d-0 read 000057ef223eb2c0 00 0011 00 1 [MdW] fcc2619e1793c524 +l1d-1 write 0000883768b6a3c0 00 0015 01 1 [MdW] d8bb918563e07612 +l1d-1 read 0000883768b6a3c0 00 0015 01 1 [MdW] d8bb918563e07612 +l1d-0 read 0000ade5546e9640 00 0009 03 1 [MdW] 292bf8907b74edd2 +l1d-0 read 00004813c834cdc0 00 0007 02 1 [MdW] 6490dcecd59b9e65 +l1d-1 write 0000095a29bb9340 00 0013 00 1 [MdW] 43acdf402f9215fc +l1d-0 write 000057ef223eb2c0 00 0011 00 1 [MdW] 33fc07f29b2cfaff +l1d-0 read 0000aaaf5454e400 00 0000 03 1 [MdW] 9eb60b8de359e983 +l1d-1 read 0000bb75517c9b80 00 0014 02 1 [MdW] 78786a2e713dca43 +l1d-0 write 000073f8f4229a80 00 0010 03 1 [MdW] 64a74b273feb83c9 +l1d-1 read 000039a5e213fe00 00 0008 00 1 [MdW] 7892a8403ecb4af3 +l1d-1 read 0000012233313580 00 0006 03 1 [MdW] 035a85acce905784 +l1d-0 read 000063036c943940 00 0005 03 1 [MdW] fe254bc894940d80 +mem read 0000bb381b2db600 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000bb381b2db600 00 0019 05 0 [McW] 0000000000000000 +l1d-1 write 0000bb381b2db600 00 0008 02 0 [MdW] e215c0b496405f9e +l1d-1 read 00007d0902e50f80 00 0014 03 1 [MdW] b58da730dd4416c2 +l1d-0 evict 00007a0ccec77d00 00 0004 00 [IcR] 603f902534bdd00d +mem read 00008a30b4505100 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00008a30b4505100 00 0023 05 0 [McW] 0000000000000000 +l1d-0 write 00008a30b4505100 00 0004 00 0 [MdW] a3b0cfd024518f31 +l2 write 0000ed89583b9580 00 0018 00 1 [MdW] df138b65bf1ba81e +l1d-1 evict 0000ed89583b9580 00 0006 02 [IcR] df138b65bf1ba81e +mem read 0000ccd4a1523d80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000ccd4a1523d80 00 0017 05 0 [McW] 0000000000000000 +l1d-1 write 0000ccd4a1523d80 00 0006 02 0 [MdW] 2e58730cb2f43705 +l1d-1 read 00005a86b1c246c0 00 0011 00 1 [MdW] a4ed9aaf1420592d +l2 write 0000acd63c8d1880 00 0017 01 1 [MdW] 8995eace539d8fd8 +l1d-0 evict 0000acd63c8d1880 00 0002 02 [IcR] 8995eace539d8fd8 +l2 read 000087a8e7348c80 00 0009 02 1 [MdW] f525efac2f3cf7fd +l1d-0 write 000087a8e7348c80 00 0002 02 0 [MdW] 06d5c4a0dca92e1a +l1d-1 read 00005a86b1c246c0 00 0011 00 1 [MdW] a4ed9aaf1420592d +mem read 0000b17eb0082080 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000b17eb0082080 00 0016 04 0 [McW] 0000000000000000 +l1d-1 write 0000b17eb0082080 00 0002 01 0 [MdW] d9a4ae41c0817096 +l1d-0 read 000057ef223eb2c0 00 0011 00 1 [MdW] 33fc07f29b2cfaff +l1d-0 write 00002cbcc4bef440 00 0001 01 1 [MdW] e21542a5128e9ecb +l2 write 0000a40aa8666480 00 0025 03 1 [MdW] 173c5f4478ac31b3 +l1d-0 evict 0000a40aa8666480 00 0002 03 [IcR] 173c5f4478ac31b3 +l2 read 0000acd63c8d1880 00 0017 01 1 [SdW] 8995eace539d8fd8 +l1d-0 read 0000acd63c8d1880 00 0002 03 0 [ScR] 8995eace539d8fd8 +l1d-1 read 00002ccb051018c0 00 0003 01 1 [MdW] 37430a6ae2ed6122 +l1d-1 read 0000883768b6a3c0 00 0015 01 1 [MdW] d8bb918563e07612 +l2 write 0000792d5ad259c0 00 0024 01 1 [MdW] 14078fc202486941 +l1d-1 evict 0000792d5ad259c0 00 0007 01 [IcR] 14078fc202486941 +mem read 0000ecb652ef69c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000ecb652ef69c0 00 0029 00 0 [McW] 0000000000000000 +l1d-1 write 0000ecb652ef69c0 00 0007 01 0 [MdW] 9b9abf9df1c1a30b +l1d-0 evict 000066e78b358f00 00 0012 00 [IcR] 46e305bdddfc6574 +l2 write 000066e78b358f00 00 0009 00 1 [MdW] 46e305bdddfc6574 +l2 read 000066e78b358f00 00 0009 00 1 [MdW] 46e305bdddfc6574 +l1d-1 write 000066e78b358f00 00 0012 01 0 [MdW] 4be2debb8d9625f2 +l1d-0 write 0000f448c073e880 00 0002 00 1 [MdW] 559a57ec385bc2c2 +mem read 0000f029765c7540 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000f029765c7540 00 0020 02 0 [McW] 0000000000000000 +l1d-1 write 0000f029765c7540 00 0005 01 0 [MdW] 2b0306dcb419a086 +l1d-1 read 00002d9824d83d80 00 0006 01 1 [MdW] 101aad3e107bdbf7 +l2 write 0000d6eae7df0a40 00 0020 01 1 [MdW] 212009caf997e0d1 +l1d-0 evict 0000d6eae7df0a40 00 0009 01 [IcR] 212009caf997e0d1 +l2 read 0000045cce7b2a40 00 0030 03 1 [SdW] 9732b992490f2bec +l1d-0 read 0000045cce7b2a40 00 0009 01 0 [ScR] 9732b992490f2bec +l1d-1 write 0000d99af3531440 00 0001 00 1 [MdW] 9dd6e27e91bc9863 +mem read 00006a36c42b4840 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00006a36c42b4840 00 0014 00 0 [McW] 0000000000000000 +l1d-1 write 00006a36c42b4840 00 0001 02 0 [MdW] b53b1938ff066c6d +mem read 00001c9702375bc0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00001c9702375bc0 00 0021 03 0 [McW] 0000000000000000 +l1d-1 write 00001c9702375bc0 00 0015 03 0 [MdW] 916619a5f0fd52ba +l1d-0 read 000019a40a160240 00 0009 00 1 [MdW] 003301b2273c5e28 +l1d-0 read 0000418397142480 00 0002 01 1 [MdW] d5ca42501735883b +l1d-1 write 0000095a29bb9340 00 0013 00 1 [MdW] 67fb54c3292395a9 +l2 write 0000136b8cb094c0 00 0009 05 1 [MdW] 0222675c83eb04dd +l1d-1 evict 0000136b8cb094c0 00 0003 02 [IcR] 0222675c83eb04dd +mem read 000050012c6eb8c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000050012c6eb8c0 00 0006 02 0 [McW] 0000000000000000 +l1d-1 write 000050012c6eb8c0 00 0003 02 0 [MdW] 8d505e21d3399d55 +l1d-1 write 000092e2f479cf80 00 0014 01 1 [MdW] d17309df336a0e01 +l1d-0 read 000065dc0cb58f00 00 0012 01 1 [MdW] 33d1db34ba341148 +l1d-1 read 00005a86b1c246c0 00 0011 00 1 [MdW] a4ed9aaf1420592d +l1d-0 read 00008a30b4505100 00 0004 00 1 [MdW] a3b0cfd024518f31 +l1d-0 read 00004813c834cdc0 00 0007 02 1 [MdW] 6490dcecd59b9e65 +l1d-1 read 0000b5cd51622240 00 0009 00 1 [MdW] 4f9c1718ca9de14e +l1d-1 read 0000908064eef6c0 00 0011 03 1 [MdW] f840ce71fef19440 +mem read 0000fe371a542400 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000fe371a542400 00 0004 05 0 [McW] 0000000000000000 +l1d-1 write 0000fe371a542400 00 0000 01 0 [MdW] 0968e82e4bb02b18 +mem read 0000f27b5523ddc0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000f27b5523ddc0 00 0026 05 0 [McW] 0000000000000000 +l1d-0 write 0000f27b5523ddc0 00 0007 03 0 [MdW] 8a77fd2642a4e939 +l1d-0 read 0000605ba6057540 00 0005 01 1 [MdW] cfc80859e336b176 +l1d-1 evict 00001cff7cd11500 00 0004 02 [IcR] 0e4d4bf31c06ad0e +mem read 00001fd6787ba100 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00001fd6787ba100 00 0007 01 0 [McW] 0000000000000000 +l1d-1 write 00001fd6787ba100 00 0004 02 0 [MdW] df1b827b0bffd943 +mem read 000049889647d200 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000049889647d200 00 0022 03 0 [McW] 0000000000000000 +l1d-1 write 000049889647d200 00 0008 03 0 [MdW] 77793b7a2d13abb1 +l2 write 00005d35d68c9380 00 0019 04 1 [MdW] 51bed99eb8f604e9 +l1d-1 evict 00005d35d68c9380 00 0014 00 [IcR] 51bed99eb8f604e9 +mem read 00006d9316738f80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00006d9316738f80 00 0027 02 0 [McW] 0000000000000000 +l1d-1 write 00006d9316738f80 00 0014 00 0 [MdW] 6700e6b15b3571ec +l1d-1 write 00000b438aedb2c0 00 0011 02 1 [MdW] f960a061cdcbd97f +l1d-1 write 00007d0902e50f80 00 0014 03 1 [MdW] cb58c668f7241e9f +l1d-1 read 0000883768b6a3c0 00 0015 01 1 [MdW] d8bb918563e07612 +l1d-0 read 000052d61b6d5a00 00 0008 00 1 [MdW] f2ba597f630895bc +l1d-1 read 00003bd14ab212c0 00 0011 01 1 [MdW] 338c39d468604fc8 +l1d-1 read 00001c9702375bc0 00 0015 03 1 [MdW] 916619a5f0fd52ba +l1d-0 read 00007e3437831800 00 0000 00 1 [MdW] 9ac69dc0ff6bf852 +l1d-0 read 0000045cce7b2a40 00 0009 01 1 [ScR] 9732b992490f2bec +l1d-0 read 000073f8f4229a80 00 0010 03 1 [MdW] 64a74b273feb83c9 +l1d-1 write 0000012233313580 00 0006 03 1 [MdW] 0aa2d7ab5dfce8cc +mem read 00003174403caf00 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00003174403caf00 00 0014 01 0 [McW] 0000000000000000 +l1d-0 write 00003174403caf00 00 0012 00 0 [MdW] e27dc8a846a78e56 +l1d-1 write 000039a5e213fe00 00 0008 00 1 [MdW] 8dc08ec49d595537 +l1d-0 write 000065dc0cb58f00 00 0012 01 1 [MdW] 5d6e440d0dd55dd5 +mem read 0000e030a3d78740 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000e030a3d78740 00 0015 02 0 [McW] 0000000000000000 +l1d-1 write 0000e030a3d78740 00 0013 01 0 [MdW] bccc952adbed9749 +l1d-1 read 000043ca5c07b240 00 0009 01 1 [MdW] 0b03165c64b25b52 +l2 write 0000033616c7e540 00 0022 00 1 [MdW] 505e4c2fc450e2ad +l1d-0 evict 0000033616c7e540 00 0005 00 [IcR] 505e4c2fc450e2ad +mem read 0000e4f3a6fe9140 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000e4f3a6fe9140 00 0023 06 0 [McW] 0000000000000000 +l1d-0 write 0000e4f3a6fe9140 00 0005 00 0 [MdW] 3cd13398bb7792b5 +l1d-0 read 00009a461a9864c0 00 0003 00 1 [MdW] ba1ecfdec3d1dc5d +l1d-1 read 0000012233313580 00 0006 03 1 [MdW] 0aa2d7ab5dfce8cc +mem read 00001b6fc10d9840 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00001b6fc10d9840 00 0027 03 0 [McW] 0000000000000000 +l1d-0 write 00001b6fc10d9840 00 0001 03 0 [MdW] 7f5c255dd3c361e0 +l1d-1 read 00002d9824d83d80 00 0006 01 1 [MdW] 101aad3e107bdbf7 +l1d-1 write 000066e78b358f00 00 0012 01 1 [MdW] 9d96c52a7d69d60e +l1d-1 read 0000bb381b2db600 00 0008 02 1 [MdW] e215c0b496405f9e +l1d-1 read 0000d99af3531440 00 0001 00 1 [MdW] 9dd6e27e91bc9863 +l2 write 0000c97dfb94fd80 00 0019 00 1 [MdW] 866e8372e740908a +l1d-1 evict 0000c97dfb94fd80 00 0006 00 [IcR] 866e8372e740908a +l2 read 0000ed89583b9580 00 0018 00 1 [SdW] df138b65bf1ba81e +l1d-1 read 0000ed89583b9580 00 0006 00 0 [ScR] df138b65bf1ba81e +l2 write 00006bf6751e90c0 00 0004 04 1 [MdW] 1bb491472e86fbd8 +l2 read 00006bf6751e90c0 00 0004 04 1 [SdW] 1bb491472e86fbd8 +l1i-1 read 00006bf6751e90c0 00 0003 00 0 [ScR] 1bb491472e86fbd8 +l2 write 0000ccd4a1523d80 00 0017 05 1 [MdW] 2e58730cb2f43705 +l2 read 0000ccd4a1523d80 00 0017 05 1 [SdW] 2e58730cb2f43705 +l1i-1 read 0000ccd4a1523d80 00 0006 00 0 [ScR] 2e58730cb2f43705 +l1d-1 evict 0000ccd4a1523d80 00 0006 02 [IcR] 2e58730cb2f43705 +mem read 0000780ab040b980 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000780ab040b980 00 0009 06 0 [McW] 0000000000000000 +l1d-1 write 0000780ab040b980 00 0006 02 0 [MdW] e88dd55a43222698 +l1d-0 read 0000c0773417d200 00 0008 02 1 [MdW] 2f46e337ff7072cf +l1d-1 read 000043ca5c07b240 00 0009 01 1 [MdW] 0b03165c64b25b52 +l1i-1 read 0000ccd4a1523d80 00 0006 00 1 [ScR] 2e58730cb2f43705 +l1d-1 read 0000ed89583b9580 00 0006 00 1 [ScR] df138b65bf1ba81e +l2 write 0000ff71c82dc900 00 0031 00 1 [MdW] 75c7c14436ed60c6 +l1d-0 evict 0000ff71c82dc900 00 0004 01 [IcR] 75c7c14436ed60c6 +l2 write 00001fd6787ba100 00 0007 01 1 [MdW] df1b827b0bffd943 +l2 read 00001fd6787ba100 00 0007 01 1 [SdW] df1b827b0bffd943 +l1d-0 read 00001fd6787ba100 00 0004 01 0 [ScR] df1b827b0bffd943 +l2 write 0000a6f9f0803d80 00 0010 01 1 [MdW] c0f82e8e69025d47 +l1d-0 evict 0000a6f9f0803d80 00 0006 01 [IcR] c0f82e8e69025d47 +mem read 00002b4766af8580 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00002b4766af8580 00 0026 06 0 [McW] 0000000000000000 +l1d-0 write 00002b4766af8580 00 0006 01 0 [MdW] 66d6c51c457e98ea +l2 write 0000750cdfd9ed40 00 0031 03 1 [MdW] a1fecd85f61fe080 +l1d-0 evict 0000750cdfd9ed40 00 0005 02 [IcR] a1fecd85f61fe080 +mem read 0000ba16e8b8b540 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000ba16e8b8b540 00 0020 03 0 [McW] 0000000000000000 +l1d-0 write 0000ba16e8b8b540 00 0005 02 0 [MdW] 9baa72244d2761d2 +mem read 000042ff28b0ea40 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000042ff28b0ea40 00 0031 05 0 [McW] 0000000000000000 +l1d-1 write 000042ff28b0ea40 00 0009 02 0 [MdW] 21186ad558f150fb +l1d-1 write 00002d9824d83d80 00 0006 01 1 [MdW] c921aab4717f265e +l1d-0 write 00009fde26f888c0 00 0003 01 1 [MdW] e1b5104d91b6911e +l2 write 0000bb75517c9b80 00 0011 01 1 [MdW] 78786a2e713dca43 +l1d-1 evict 0000bb75517c9b80 00 0014 02 [IcR] 78786a2e713dca43 +l2 read 00002814eea2cf80 00 0019 01 1 [SdW] ac76c3067a593258 +l1d-1 read 00002814eea2cf80 00 0014 02 0 [ScR] ac76c3067a593258 +l1i-1 read 00001cff7cd11500 00 0004 00 1 [ScR] 0e4d4bf31c06ad0e +l2 write 00009a603343d580 00 0031 01 1 [MdW] c334dfcfde2552e3 +l1d-0 evict 00009a603343d580 00 0006 00 [IcR] c334dfcfde2552e3 +l1d-1 evict 0000ed89583b9580 00 0006 00 [IcR] df138b65bf1ba81e +l2 read 0000ed89583b9580 00 0018 00 1 [MdW] df138b65bf1ba81e +l1d-0 write 0000ed89583b9580 00 0006 00 0 [MdW] 6c07dacfdb56821e +l1d-0 write 000063036c943940 00 0005 03 1 [MdW] 05816e4fa46226e6 +l1d-1 read 000039a5e213fe00 00 0008 00 1 [MdW] 8dc08ec49d595537 +l1d-1 read 00005a86b1c246c0 00 0011 00 1 [MdW] a4ed9aaf1420592d +l2 write 000092e2f479cf80 00 0031 04 1 [MdW] d17309df336a0e01 +l1d-1 evict 000092e2f479cf80 00 0014 01 [IcR] d17309df336a0e01 +mem read 0000b1312a1f2f80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000b1312a1f2f80 00 0028 02 0 [McW] 0000000000000000 +l1d-1 write 0000b1312a1f2f80 00 0014 01 0 [MdW] 63f4a195a598fedc +l2 write 0000bd16375b9000 00 0030 01 1 [MdW] 471f2cfa81d3ac5a +l1d-0 evict 0000bd16375b9000 00 0000 01 [IcR] 471f2cfa81d3ac5a +l2 read 00003f232f338000 00 0021 00 1 [SdW] a2d413acae95e3cd +l1d-0 read 00003f232f338000 00 0000 01 0 [ScR] a2d413acae95e3cd +l2 write 00001ad58832f640 00 0009 03 1 [MdW] 84fce73def654b09 +l1d-0 evict 00001ad58832f640 00 0009 02 [IcR] 84fce73def654b09 +mem read 00004c22aaaafa40 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00004c22aaaafa40 00 0020 04 0 [McW] 0000000000000000 +l1d-0 write 00004c22aaaafa40 00 0009 02 0 [MdW] 508089914b57b049 +l2 write 000035b33dc0d400 00 0003 00 1 [MdW] b3fa26fb2bb1072d +l1d-0 evict 000035b33dc0d400 00 0000 02 [IcR] b3fa26fb2bb1072d +l2 read 0000bd16375b9000 00 0030 01 1 [SdW] 471f2cfa81d3ac5a +l1d-0 read 0000bd16375b9000 00 0000 02 0 [ScR] 471f2cfa81d3ac5a +l1d-1 read 000039a5e213fe00 00 0008 00 1 [MdW] 8dc08ec49d595537 +l2 write 0000ade5546e9640 00 0019 02 1 [MdW] 292bf8907b74edd2 +l1d-0 evict 0000ade5546e9640 00 0009 03 [IcR] 292bf8907b74edd2 +l2 read 00001ad58832f640 00 0009 03 1 [MdW] 84fce73def654b09 +l1d-0 write 00001ad58832f640 00 0009 03 0 [MdW] 42b739607dd8504e +l1d-1 read 000039a5e213fe00 00 0008 00 1 [MdW] 8dc08ec49d595537 +l1d-0 read 000018c9dccfc840 00 0001 00 1 [MdW] 83b569fd7e2f93d0 +l2 write 0000c20e6058a4c0 00 0004 01 1 [MdW] 9d29d9cac786a1e3 +l1d-1 evict 0000c20e6058a4c0 00 0003 00 [IcR] 9d29d9cac786a1e3 +l2 read 0000136b8cb094c0 00 0009 05 1 [MdW] 0222675c83eb04dd +l1d-1 write 0000136b8cb094c0 00 0003 00 0 [MdW] 4d51034c84140818 +l1d-1 write 000013d16c815400 00 0000 00 1 [MdW] 7d923acd36856c0b +l1d-0 read 000019a40a160240 00 0009 00 1 [MdW] 003301b2273c5e28 +l1d-0 read 0000333bb344eb40 00 0013 01 1 [MdW] b8f60836dc885f73 +l1d-1 evict 00006bf6751e90c0 00 0003 03 [IcR] 1bb491472e86fbd8 +mem read 000093de24a554c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000093de24a554c0 00 0025 07 0 [McW] 0000000000000000 +l1d-1 write 000093de24a554c0 00 0003 03 0 [MdW] e1280befc25cd4a1 +mem read 0000443a27100c40 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000443a27100c40 00 0008 03 0 [McW] 0000000000000000 +l1d-1 write 0000443a27100c40 00 0001 03 0 [MdW] 3be61c8763ba8f77 +l1d-0 read 00001ad58832f640 00 0009 03 1 [MdW] 42b739607dd8504e +l1d-1 read 0000e030a3d78740 00 0013 01 1 [MdW] bccc952adbed9749 +l1d-1 read 000049889647d200 00 0008 03 1 [MdW] 77793b7a2d13abb1 +l1d-1 read 0000b1312a1f2f80 00 0014 01 1 [MdW] 63f4a195a598fedc +l2 write 0000c662cc646980 00 0000 01 1 [MdW] 816f140018ef71ee +l1d-0 evict 0000c662cc646980 00 0006 02 [IcR] 816f140018ef71ee +l2 write 0000780ab040b980 00 0009 06 1 [MdW] e88dd55a43222698 +l2 read 0000780ab040b980 00 0009 06 1 [SdW] e88dd55a43222698 +l1d-0 read 0000780ab040b980 00 0006 02 0 [ScR] e88dd55a43222698 +l2 write 00000701e403e980 00 0013 02 1 [MdW] d91c439474d9ea75 +l1d-0 evict 00000701e403e980 00 0006 03 [IcR] d91c439474d9ea75 +l2 read 00009a603343d580 00 0031 01 1 [MdW] c334dfcfde2552e3 +l1d-0 write 00009a603343d580 00 0006 03 0 [MdW] e4bd1c98fd7a6b9f +l1d-1 read 000039a5e213fe00 00 0008 00 1 [MdW] 8dc08ec49d595537 +l1d-0 read 000057ef223eb2c0 00 0011 00 1 [MdW] 33fc07f29b2cfaff +l1d-0 read 00002c011c660300 00 0012 02 1 [MdW] 7a2d736a5722d9e9 +l1d-1 read 00002814eea2cf80 00 0014 02 1 [ScR] ac76c3067a593258 +l1d-0 read 0000ed89583b9580 00 0006 00 1 [MdW] 6c07dacfdb56821e +l1d-1 read 0000b17eb0082080 00 0002 01 1 [MdW] d9a4ae41c0817096 +l1d-0 write 00001ad58832f640 00 0009 03 1 [MdW] f1d026232e24dd48 +l1d-1 write 0000095a29bb9340 00 0013 00 1 [MdW] 398750ee00ee1b8d +l2 write 0000aaaf5454e400 00 0005 01 1 [MdW] 9eb60b8de359e983 +l1d-0 evict 0000aaaf5454e400 00 0000 03 [IcR] 9eb60b8de359e983 +l2 read 000035b33dc0d400 00 0003 00 1 [SdW] b3fa26fb2bb1072d +l1d-0 read 000035b33dc0d400 00 0000 03 0 [ScR] b3fa26fb2bb1072d +l1d-1 read 000050012c6eb8c0 00 0003 02 1 [MdW] 8d505e21d3399d55 +l1d-1 read 00007b42479583c0 00 0015 00 1 [MdW] 1fca5feae77517e8 +l1d-1 read 0000012233313580 00 0006 03 1 [MdW] 0aa2d7ab5dfce8cc +l1d-0 read 0000418397142480 00 0002 01 1 [MdW] d5ca42501735883b +l1d-1 read 000030295cbb89c0 00 0007 03 1 [MdW] 9dc7657dd695cd8c +l2 write 0000c477f06039c0 00 0016 00 1 [MdW] 07a43d1b05d30814 +l1d-0 evict 0000c477f06039c0 00 0007 00 [IcR] 07a43d1b05d30814 +mem read 0000c79b07073dc0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000c79b07073dc0 00 0013 03 0 [McW] 0000000000000000 +l1d-0 write 0000c79b07073dc0 00 0007 00 0 [MdW] 31397f4080bef586 +l2 write 00006d9316738f80 00 0027 02 1 [MdW] 6700e6b15b3571ec +l1d-1 evict 00006d9316738f80 00 0014 00 [IcR] 6700e6b15b3571ec +l2 read 0000bb75517c9b80 00 0011 01 1 [SdW] 78786a2e713dca43 +l1d-1 read 0000bb75517c9b80 00 0014 00 0 [ScR] 78786a2e713dca43 +l1d-0 evict 0000045cce7b2a40 00 0009 01 [IcR] 9732b992490f2bec +l2 read 0000ade5546e9640 00 0019 02 1 [MdW] 292bf8907b74edd2 +l1d-0 write 0000ade5546e9640 00 0009 01 0 [MdW] 5209bc09f2897536 +l2 write 00006d3f203d79c0 00 0023 02 1 [MdW] 6e8f92dc574cb465 +l1d-1 evict 00006d3f203d79c0 00 0007 02 [IcR] 6e8f92dc574cb465 +mem read 00008c87a41659c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00008c87a41659c0 00 0009 07 0 [McW] 0000000000000000 +l1d-1 write 00008c87a41659c0 00 0007 02 0 [MdW] 80dfdd5b1394ac8c +l1d-0 read 000063036c943940 00 0005 03 1 [MdW] 05816e4fa46226e6 +l1d-0 write 0000f448c073e880 00 0002 00 1 [MdW] 180aac06cd400335 +l1d-1 write 00002d9824d83d80 00 0006 01 1 [MdW] 789fd761f0d30dbc +l2 write 00007d0902e50f80 00 0023 03 1 [MdW] cb58c668f7241e9f +l1d-1 evict 00007d0902e50f80 00 0014 03 [IcR] cb58c668f7241e9f +l2 read 000092e2f479cf80 00 0031 04 1 [SdW] d17309df336a0e01 +l1d-1 read 000092e2f479cf80 00 0014 03 0 [ScR] d17309df336a0e01 +l1i-1 evict 00006bf6751e90c0 00 0003 00 [IcR] 1bb491472e86fbd8 +l2 write 00002ccb051018c0 00 0026 02 1 [MdW] 37430a6ae2ed6122 +l1d-1 evict 00002ccb051018c0 00 0003 01 [IcR] 37430a6ae2ed6122 +l2 read 00006bf6751e90c0 00 0004 04 1 [MdW] 1bb491472e86fbd8 +l1d-1 write 00006bf6751e90c0 00 0003 01 0 [MdW] c8f6e6fa1d07acdd +l1d-1 read 00002d9824d83d80 00 0006 01 1 [MdW] 789fd761f0d30dbc +l1d-0 read 000035b33dc0d400 00 0000 03 1 [ScR] b3fa26fb2bb1072d +l2 write 0000b1312a1f2f80 00 0028 02 1 [MdW] 63f4a195a598fedc +l1d-1 evict 0000b1312a1f2f80 00 0014 01 [IcR] 63f4a195a598fedc +l2 read 00007d0902e50f80 00 0023 03 1 [SdW] cb58c668f7241e9f +l1d-1 read 00007d0902e50f80 00 0014 01 0 [ScR] cb58c668f7241e9f +mem read 000059bb4b098240 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000059bb4b098240 00 0004 06 0 [McW] 0000000000000000 +l1d-1 write 000059bb4b098240 00 0009 03 0 [MdW] a816cf9eeece6498 +mem write 00004d48d3ab6400 -1 -001 -1 1 [MdW] ba6e57907407aadf +l2 evict 00004d48d3ab6400 00 0025 00 [IcR] ba6e57907407aadf +mem read 0000ffac00a71b80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000ffac00a71b80 00 0025 00 0 [McW] 0000000000000000 +l1d-0 write 0000ffac00a71b80 00 0014 01 0 [MdW] e178f2d9faca3dba +l2 write 0000cb3c5e49d5c0 00 0016 02 1 [MdW] 96d85584f5f75334 +l1d-1 evict 0000cb3c5e49d5c0 00 0007 00 [IcR] 96d85584f5f75334 +l2 read 00006d3f203d79c0 00 0023 02 1 [SdW] 6e8f92dc574cb465 +l1d-1 read 00006d3f203d79c0 00 0007 00 0 [ScR] 6e8f92dc574cb465 +l2 write 00007e3437831800 00 0017 03 1 [MdW] 9ac69dc0ff6bf852 +l1d-0 evict 00007e3437831800 00 0000 00 [IcR] 9ac69dc0ff6bf852 +l1d-1 evict 000016f64b35ad40 00 0005 00 [IcR] f0cf83fbebb65de6 +l2 write 000016f64b35ad40 00 0025 01 1 [MdW] f0cf83fbebb65de6 +mem write 000016f64b35ad40 -1 -001 -1 1 [MdW] f0cf83fbebb65de6 +l2 evict 000016f64b35ad40 00 0025 01 [IcR] f0cf83fbebb65de6 +mem read 000057c442889400 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000057c442889400 00 0025 01 0 [McW] 0000000000000000 +l1d-0 write 000057c442889400 00 0000 00 0 [MdW] 41f1903bf6dd8949 +l1d-0 read 00004c22aaaafa40 00 0009 02 1 [MdW] 508089914b57b049 +l1d-0 write 000063036c943940 00 0005 03 1 [MdW] 2f9cc192d2218654 +l2 write 0000605ba6057540 00 0016 03 1 [MdW] cfc80859e336b176 +l1d-0 evict 0000605ba6057540 00 0005 01 [IcR] cfc80859e336b176 +l2 read 0000033616c7e540 00 0022 00 1 [SdW] 505e4c2fc450e2ad +l1d-0 read 0000033616c7e540 00 0005 01 0 [ScR] 505e4c2fc450e2ad +mem read 0000d9b688e86700 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000d9b688e86700 00 0000 04 0 [McW] 0000000000000000 +l1d-0 write 0000d9b688e86700 00 0012 03 0 [MdW] 9cff86c4f5d7b689 +l2 write 000078135d3f5200 00 0000 00 1 [MdW] 0ec0b79ad41353f3 +l1d-1 evict 000078135d3f5200 00 0008 01 [IcR] 0ec0b79ad41353f3 +l2 write 0000c0773417d200 00 0000 03 1 [MdW] 2f46e337ff7072cf +l2 read 0000c0773417d200 00 0000 03 1 [SdW] 2f46e337ff7072cf +l1d-1 read 0000c0773417d200 00 0008 01 0 [ScR] 2f46e337ff7072cf +l2 write 0000ed89583b9580 00 0018 00 1 [MdW] 6c07dacfdb56821e +l2 read 0000ed89583b9580 00 0018 00 1 [SdW] 6c07dacfdb56821e +l1d-1 read 0000ed89583b9580 00 0006 00 0 [ScR] 6c07dacfdb56821e +l1d-0 read 00003174403caf00 00 0012 00 1 [MdW] e27dc8a846a78e56 +l1d-1 read 00005a86b1c246c0 00 0011 00 1 [MdW] a4ed9aaf1420592d +l1d-0 read 000018c9dccfc840 00 0001 00 1 [MdW] 83b569fd7e2f93d0 +l1i-1 read 00001cff7cd11500 00 0004 00 1 [ScR] 0e4d4bf31c06ad0e +l1d-1 read 0000ed89583b9580 00 0006 00 1 [ScR] 6c07dacfdb56821e +l2 write 00002b4766af8580 00 0026 06 1 [MdW] 66d6c51c457e98ea +l1d-0 evict 00002b4766af8580 00 0006 01 [IcR] 66d6c51c457e98ea +l2 read 0000c662cc646980 00 0000 01 1 [MdW] 816f140018ef71ee +l1d-0 write 0000c662cc646980 00 0006 01 0 [MdW] 9178878696de8c91 +l1d-0 read 00004813c834cdc0 00 0007 02 1 [MdW] 6490dcecd59b9e65 +l2 write 00006980d04a3400 00 0009 04 1 [MdW] 7e87cb6b5a7c5b20 +l1d-1 evict 00006980d04a3400 00 0000 02 [IcR] 7e87cb6b5a7c5b20 +l2 read 000073703a455800 00 0004 02 1 [SdW] 84b896eee0ea8bfb +l1d-1 read 000073703a455800 00 0000 02 0 [ScR] 84b896eee0ea8bfb +l1d-0 read 0000ffac00a71b80 00 0014 01 1 [MdW] e178f2d9faca3dba +l1d-1 write 0000095a29bb9340 00 0013 00 1 [MdW] 30470642eb039e5b +l2 write 000059bb4b098240 00 0004 06 1 [MdW] a816cf9eeece6498 +l2 read 000059bb4b098240 00 0004 06 1 [SdW] a816cf9eeece6498 +l1i-1 read 000059bb4b098240 00 0009 00 0 [ScR] a816cf9eeece6498 +l2 write 0000136b8cb094c0 00 0009 05 1 [MdW] 4d51034c84140818 +l1d-1 evict 0000136b8cb094c0 00 0003 00 [IcR] 4d51034c84140818 +l2 read 00002ccb051018c0 00 0026 02 1 [SdW] 37430a6ae2ed6122 +l1d-1 read 00002ccb051018c0 00 0003 00 0 [ScR] 37430a6ae2ed6122 +l1d-1 read 0000bb381b2db600 00 0008 02 1 [MdW] e215c0b496405f9e +l1d-0 read 00004813c834cdc0 00 0007 02 1 [MdW] 6490dcecd59b9e65 +l2 write 0000f66f9acff100 00 0030 00 1 [MdW] c7f5ae053c4b54cf +l1d-0 evict 0000f66f9acff100 00 0004 02 [IcR] c7f5ae053c4b54cf +l2 read 0000ff71c82dc900 00 0031 00 1 [MdW] 75c7c14436ed60c6 +l1d-0 write 0000ff71c82dc900 00 0004 02 0 [MdW] ead7b1b4f2b53fe5 +l1d-0 read 000049afd5e02b40 00 0013 00 1 [MdW] 0d73762cec20ec64 +l1d-0 read 0000c662cc646980 00 0006 01 1 [MdW] 9178878696de8c91 +l1d-1 read 00006a25c963e900 00 0004 03 1 [MdW] ae43245b0fd92af4 +l1i-1 evict 00001cff7cd11500 00 0004 00 [IcR] 0e4d4bf31c06ad0e +l2 write 0000803bdde89900 00 0008 02 1 [MdW] 4149d9c5522ff4aa +l1d-1 evict 0000803bdde89900 00 0004 00 [IcR] 4149d9c5522ff4aa +l2 read 00001cff7cd11500 00 0012 00 1 [MdW] 0e4d4bf31c06ad0e +l1d-1 write 00001cff7cd11500 00 0004 00 0 [MdW] 6b0180ad5bfc6aa3 +l1d-0 read 000000f97fae5cc0 00 0003 02 1 [MdW] d6f7e41866f9a4a8 +l1d-1 evict 00002814eea2cf80 00 0014 02 [IcR] ac76c3067a593258 +l2 read 0000242235f69b80 00 0023 00 1 [MdW] cd0f83c76caa72c4 +l1d-1 write 0000242235f69b80 00 0014 02 0 [MdW] 22713d9fb41fbafa +l1i-1 read 000059bb4b098240 00 0009 00 1 [ScR] a816cf9eeece6498 +l1d-0 read 000087a8e7348c80 00 0002 02 1 [MdW] 06d5c4a0dca92e1a +l2 write 0000b5cd51622240 00 0015 01 1 [MdW] 4f9c1718ca9de14e +l1d-1 evict 0000b5cd51622240 00 0009 00 [IcR] 4f9c1718ca9de14e +mem read 000095996286e640 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000095996286e640 00 0020 05 0 [McW] 0000000000000000 +l1d-1 write 000095996286e640 00 0009 00 0 [MdW] f1b509cda89b9e6b +l1d-0 evict 00003f232f338000 00 0000 01 [IcR] a2d413acae95e3cd +l2 read 00006980d04a3400 00 0009 04 1 [SdW] 7e87cb6b5a7c5b20 +l1d-0 read 00006980d04a3400 00 0000 01 0 [ScR] 7e87cb6b5a7c5b20 +l1d-1 read 0000780ab040b980 00 0006 02 1 [ScR] e88dd55a43222698 +l2 read 0000acd63c8d1880 00 0017 01 1 [MdW] 8995eace539d8fd8 +l1d-0 write 0000acd63c8d1880 00 0002 03 0 [MdW] 9440c2c945444381 +l1d-0 read 000073f8f4229a80 00 0010 03 1 [MdW] 64a74b273feb83c9 +l1d-0 read 0000c662cc646980 00 0006 01 1 [MdW] 9178878696de8c91 +l1d-0 read 000087a8e7348c80 00 0002 02 1 [MdW] 06d5c4a0dca92e1a +l1d-0 read 000087a8e7348c80 00 0002 02 1 [MdW] 06d5c4a0dca92e1a +l1d-1 read 0000a0082dda2840 00 0001 01 1 [MdW] e32363faf3579882 +l2 write 000049889647d200 00 0022 03 1 [MdW] 77793b7a2d13abb1 +l1d-1 evict 000049889647d200 00 0008 03 [IcR] 77793b7a2d13abb1 +mem read 00005d7bb4b3fa00 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00005d7bb4b3fa00 00 0031 06 0 [McW] 0000000000000000 +l1d-1 write 00005d7bb4b3fa00 00 0008 03 0 [MdW] e908b2478d834bdb +l2 write 000019a40a160240 00 0008 00 1 [MdW] 003301b2273c5e28 +l1d-0 evict 000019a40a160240 00 0009 00 [IcR] 003301b2273c5e28 +l2 read 0000045cce7b2a40 00 0030 03 1 [SdW] 9732b992490f2bec +l1d-0 read 0000045cce7b2a40 00 0009 00 0 [ScR] 9732b992490f2bec +l2 write 0000534534d814c0 00 0006 01 1 [MdW] 5488878000e9ca11 +l1d-0 evict 0000534534d814c0 00 0003 03 [IcR] 5488878000e9ca11 +mem read 0000c72e4af4f8c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000c72e4af4f8c0 00 0004 07 0 [McW] 0000000000000000 +l1d-0 write 0000c72e4af4f8c0 00 0003 03 0 [MdW] e7800ffc079ed92a +l1d-1 evict 0000bb75517c9b80 00 0014 00 [IcR] 78786a2e713dca43 +l1d-0 evict 00003be6b01765c0 00 0007 01 [IcR] b07105a9381db806 +l2 write 00003be6b01765c0 00 0025 02 1 [MdW] b07105a9381db806 +mem write 00003be6b01765c0 -1 -001 -1 1 [MdW] b07105a9381db806 +l2 evict 00003be6b01765c0 00 0025 02 [IcR] b07105a9381db806 +mem read 0000015d1559b380 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000015d1559b380 00 0025 02 0 [McW] 0000000000000000 +l1d-1 write 0000015d1559b380 00 0014 00 0 [MdW] 042dac84e3de4101 +l1d-1 write 00006a36c42b4840 00 0001 02 1 [MdW] 1eeac5371ae03949 +l1d-0 read 00002cbcc4bef440 00 0001 01 1 [MdW] e21542a5128e9ecb +l1d-0 evict 0000780ab040b980 00 0006 02 [IcR] e88dd55a43222698 +l2 read 000015c671e31180 00 0030 02 1 [SdW] f2046a186505ea97 +l1d-0 read 000015c671e31180 00 0006 02 0 [ScR] f2046a186505ea97 +l2 write 0000fc3d1a588d00 00 0025 06 1 [MdW] 20d6291b6fceeaa3 +l1d-1 evict 0000fc3d1a588d00 00 0004 01 [IcR] 20d6291b6fceeaa3 +l2 read 0000803bdde89900 00 0008 02 1 [SdW] 4149d9c5522ff4aa +l1d-1 read 0000803bdde89900 00 0004 01 0 [ScR] 4149d9c5522ff4aa +l1d-1 read 0000883768b6a3c0 00 0015 01 1 [MdW] d8bb918563e07612 +l2 write 000043ca5c07b240 00 0000 02 1 [MdW] 0b03165c64b25b52 +l1d-1 evict 000043ca5c07b240 00 0009 01 [IcR] 0b03165c64b25b52 +l2 read 0000b5cd51622240 00 0015 01 1 [SdW] 4f9c1718ca9de14e +l1d-1 read 0000b5cd51622240 00 0009 01 0 [ScR] 4f9c1718ca9de14e +l1d-0 read 000052d61b6d5a00 00 0008 00 1 [MdW] f2ba597f630895bc +l1d-1 evict 000092e2f479cf80 00 0014 03 [IcR] d17309df336a0e01 +l2 read 00002814eea2cf80 00 0019 01 1 [MdW] ac76c3067a593258 +l1d-1 write 00002814eea2cf80 00 0014 03 0 [MdW] c6da95c57f5d5cb2 +l1d-1 read 00007b42479583c0 00 0015 00 1 [MdW] 1fca5feae77517e8 +l1d-1 evict 00007d0902e50f80 00 0014 01 [IcR] cb58c668f7241e9f +l2 read 0000bb75517c9b80 00 0011 01 1 [SdW] 78786a2e713dca43 +l1d-1 read 0000bb75517c9b80 00 0014 01 0 [ScR] 78786a2e713dca43 +l2 write 0000242235f69b80 00 0023 00 1 [MdW] 22713d9fb41fbafa +l1d-1 evict 0000242235f69b80 00 0014 02 [IcR] 22713d9fb41fbafa +mem read 00000463b4c5cf80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00000463b4c5cf80 00 0022 04 0 [McW] 0000000000000000 +l1d-1 write 00000463b4c5cf80 00 0014 02 0 [MdW] d8778ea3f72f9753 +l1d-1 read 0000e030a3d78740 00 0013 01 1 [MdW] bccc952adbed9749 +l2 write 0000e4f3a6fe9140 00 0023 06 1 [MdW] 3cd13398bb7792b5 +l1d-0 evict 0000e4f3a6fe9140 00 0005 00 [IcR] 3cd13398bb7792b5 +l2 read 0000750cdfd9ed40 00 0031 03 1 [SdW] a1fecd85f61fe080 +l1d-0 read 0000750cdfd9ed40 00 0005 00 0 [ScR] a1fecd85f61fe080 +l1d-1 read 000095996286e640 00 0009 00 1 [MdW] f1b509cda89b9e6b +l2 read 00006980d04a3400 00 0009 04 1 [SdW] 7e87cb6b5a7c5b20 +l1i-0 read 00006980d04a3400 00 0000 00 0 [ScR] 7e87cb6b5a7c5b20 +l2 write 0000b78d2a790900 00 0023 01 1 [MdW] 4b286894f1b254a4 +l1d-0 evict 0000b78d2a790900 00 0004 03 [IcR] 4b286894f1b254a4 +mem read 0000a462f1bb1500 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000a462f1bb1500 00 0029 01 0 [McW] 0000000000000000 +l1d-0 write 0000a462f1bb1500 00 0004 03 0 [MdW] 2f9d5892b243a4f9 +l2 write 0000012233313580 00 0022 02 1 [MdW] 0aa2d7ab5dfce8cc +l1d-1 evict 0000012233313580 00 0006 03 [IcR] 0aa2d7ab5dfce8cc +l2 read 0000c97dfb94fd80 00 0019 00 1 [SdW] 866e8372e740908a +l1d-1 read 0000c97dfb94fd80 00 0006 03 0 [ScR] 866e8372e740908a +l2 write 0000ecb652ef69c0 00 0029 00 1 [MdW] 9b9abf9df1c1a30b +l1d-1 evict 0000ecb652ef69c0 00 0007 01 [IcR] 9b9abf9df1c1a30b +l2 read 0000792d5ad259c0 00 0024 01 1 [SdW] 14078fc202486941 +l1d-1 read 0000792d5ad259c0 00 0007 01 0 [ScR] 14078fc202486941 +l1d-0 read 00004813c834cdc0 00 0007 02 1 [MdW] 6490dcecd59b9e65 +l2 write 00009a461a9864c0 00 0019 03 1 [MdW] ba1ecfdec3d1dc5d +l1d-0 evict 00009a461a9864c0 00 0003 00 [IcR] ba1ecfdec3d1dc5d +l2 read 0000534534d814c0 00 0006 01 1 [SdW] 5488878000e9ca11 +l1d-0 read 0000534534d814c0 00 0003 00 0 [ScR] 5488878000e9ca11 +l1d-0 read 000095873da506c0 00 0011 02 1 [MdW] 5d652850f1d45f1d +l2 write 000030295cbb89c0 00 0031 02 1 [MdW] 9dc7657dd695cd8c +l1d-1 evict 000030295cbb89c0 00 0007 03 [IcR] 9dc7657dd695cd8c +mem read 00008edcd3eccdc0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00008edcd3eccdc0 00 0018 02 0 [McW] 0000000000000000 +l1d-1 write 00008edcd3eccdc0 00 0007 03 0 [MdW] 62582b34270ac5fc +l1d-0 read 00004813c834cdc0 00 0007 02 1 [MdW] 6490dcecd59b9e65 +l2 write 00009fde26f888c0 00 0005 02 1 [MdW] e1b5104d91b6911e +l1d-0 evict 00009fde26f888c0 00 0003 01 [IcR] e1b5104d91b6911e +mem read 0000df0f11cce0c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000df0f11cce0c0 00 0018 03 0 [McW] 0000000000000000 +l1d-0 write 0000df0f11cce0c0 00 0003 01 0 [MdW] b46e0cda852ad2e2 +l1d-0 write 00004813c834cdc0 00 0007 02 1 [MdW] 943fd65d38c4092e +l1d-1 read 0000ed89583b9580 00 0006 00 1 [ScR] 6c07dacfdb56821e +l1d-0 read 000095873da506c0 00 0011 02 1 [MdW] 5d652850f1d45f1d +l1d-1 read 00006d3f203d79c0 00 0007 00 1 [ScR] 6e8f92dc574cb465 +l2 write 0000015d1559b380 00 0025 02 1 [MdW] 042dac84e3de4101 +l1d-1 evict 0000015d1559b380 00 0014 00 [IcR] 042dac84e3de4101 +l2 read 00007d0902e50f80 00 0023 03 1 [SdW] cb58c668f7241e9f +l1d-1 read 00007d0902e50f80 00 0014 00 0 [ScR] cb58c668f7241e9f +l1d-0 read 000065dc0cb58f00 00 0012 01 1 [MdW] 5d6e440d0dd55dd5 +l1d-0 read 0000d9b688e86700 00 0012 03 1 [MdW] 9cff86c4f5d7b689 +l1d-0 read 00009a603343d580 00 0006 03 1 [MdW] e4bd1c98fd7a6b9f +l2 write 000000f97fae5cc0 00 0003 03 1 [MdW] d6f7e41866f9a4a8 +l1d-0 evict 000000f97fae5cc0 00 0003 02 [IcR] d6f7e41866f9a4a8 +l2 read 00009fde26f888c0 00 0005 02 1 [SdW] e1b5104d91b6911e +l1d-0 read 00009fde26f888c0 00 0003 02 0 [ScR] e1b5104d91b6911e +l1i-1 read 000059bb4b098240 00 0009 00 1 [ScR] a816cf9eeece6498 +l1d-0 read 0000033616c7e540 00 0005 01 1 [ScR] 505e4c2fc450e2ad +l1d-0 evict 000057ef223eb2c0 00 0011 00 [IcR] 33fc07f29b2cfaff +l2 write 000057ef223eb2c0 00 0009 01 1 [MdW] 33fc07f29b2cfaff +mem write 000057ef223eb2c0 -1 -001 -1 1 [MdW] 33fc07f29b2cfaff +l2 evict 000057ef223eb2c0 00 0009 01 [IcR] 33fc07f29b2cfaff +mem read 0000b54aff87b9c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000b54aff87b9c0 00 0009 01 0 [McW] 0000000000000000 +l1d-0 write 0000b54aff87b9c0 00 0007 01 0 [MdW] 06b7c521daf2ebd7 +l2 write 00008c87a41659c0 00 0009 07 1 [MdW] 80dfdd5b1394ac8c +l1d-1 evict 00008c87a41659c0 00 0007 02 [IcR] 80dfdd5b1394ac8c +mem read 000072629a2641c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000072629a2641c0 00 0011 04 0 [McW] 0000000000000000 +l1d-1 write 000072629a2641c0 00 0007 02 0 [MdW] 074c637b3568f695 +l2 write 00004f46a7d2ea80 00 0020 00 1 [MdW] d8a5addb7e65e806 +l2 read 00004f46a7d2ea80 00 0020 00 1 [SdW] d8a5addb7e65e806 +l1d-0 read 00004f46a7d2ea80 00 0010 02 0 [ScR] d8a5addb7e65e806 +l2 write 00006bf6751e90c0 00 0004 04 1 [MdW] c8f6e6fa1d07acdd +l2 read 00006bf6751e90c0 00 0004 04 1 [SdW] c8f6e6fa1d07acdd +l1i-1 read 00006bf6751e90c0 00 0003 00 0 [ScR] c8f6e6fa1d07acdd +l1d-0 read 0000ffac00a71b80 00 0014 01 1 [MdW] e178f2d9faca3dba +l1d-1 read 0000bb75517c9b80 00 0014 01 1 [ScR] 78786a2e713dca43 +mem write 00008c87a41659c0 -1 -001 -1 1 [MdW] 80dfdd5b1394ac8c +l2 evict 00008c87a41659c0 00 0009 07 [IcR] 80dfdd5b1394ac8c +mem read 000057ef223eb2c0 -1 -001 -1 1 [McW] 33fc07f29b2cfaff +l2 read 000057ef223eb2c0 00 0009 07 0 [ScW] 33fc07f29b2cfaff +l1d-0 read 000057ef223eb2c0 00 0011 00 0 [ScR] 33fc07f29b2cfaff +l1d-0 read 0000c662cc646980 00 0006 01 1 [MdW] 9178878696de8c91 +l1d-0 evict 0000ed89583b9580 00 0006 00 [IcR] 6c07dacfdb56821e +l2 read 00002b4766af8580 00 0026 06 1 [MdW] 66d6c51c457e98ea +l1d-0 write 00002b4766af8580 00 0006 00 0 [MdW] ec0af5df425fb3d3 +l2 write 0000c72e4af4f8c0 00 0004 07 1 [MdW] e7800ffc079ed92a +l1d-0 evict 0000c72e4af4f8c0 00 0003 03 [IcR] e7800ffc079ed92a +l2 read 000000f97fae5cc0 00 0003 03 1 [MdW] d6f7e41866f9a4a8 +l1d-0 write 000000f97fae5cc0 00 0003 03 0 [MdW] adf40caecba14b7b +l1d-0 read 00001ad58832f640 00 0009 03 1 [MdW] f1d026232e24dd48 +l2 write 0000ade5546e9640 00 0019 02 1 [MdW] 5209bc09f2897536 +l1d-0 evict 0000ade5546e9640 00 0009 01 [IcR] 5209bc09f2897536 +l2 read 0000d6eae7df0a40 00 0020 01 1 [SdW] 212009caf997e0d1 +l1d-0 read 0000d6eae7df0a40 00 0009 01 0 [ScR] 212009caf997e0d1 +l1d-0 evict 000015c671e31180 00 0006 02 [IcR] f2046a186505ea97 +l2 read 0000780ab040b980 00 0009 06 1 [SdW] e88dd55a43222698 +l1d-0 read 0000780ab040b980 00 0006 02 0 [ScR] e88dd55a43222698 +l2 write 000093de24a554c0 00 0025 07 1 [MdW] e1280befc25cd4a1 +l1d-1 evict 000093de24a554c0 00 0003 03 [IcR] e1280befc25cd4a1 +l2 write 0000df0f11cce0c0 00 0018 03 1 [MdW] b46e0cda852ad2e2 +l2 read 0000df0f11cce0c0 00 0018 03 1 [SdW] b46e0cda852ad2e2 +l1d-1 read 0000df0f11cce0c0 00 0003 03 0 [ScR] b46e0cda852ad2e2 +l1d-0 read 00001fd6787ba100 00 0004 01 1 [ScR] df1b827b0bffd943 +l1d-0 read 0000750cdfd9ed40 00 0005 00 1 [ScR] a1fecd85f61fe080 +l1d-1 read 0000792d5ad259c0 00 0007 01 1 [ScR] 14078fc202486941 +l1d-0 read 0000ffac00a71b80 00 0014 01 1 [MdW] e178f2d9faca3dba +l1d-0 read 0000045cce7b2a40 00 0009 00 1 [ScR] 9732b992490f2bec +l2 write 00008a30b4505100 00 0023 05 1 [MdW] a3b0cfd024518f31 +l1d-0 evict 00008a30b4505100 00 0004 00 [IcR] a3b0cfd024518f31 +l2 read 00007a0ccec77d00 00 0004 00 1 [SdW] 603f902534bdd00d +l1d-0 read 00007a0ccec77d00 00 0004 00 0 [ScR] 603f902534bdd00d +l1d-1 read 00002814eea2cf80 00 0014 03 1 [MdW] c6da95c57f5d5cb2 +l2 read 00006980d04a3400 00 0009 04 1 [SdW] 7e87cb6b5a7c5b20 +l1i-1 read 00006980d04a3400 00 0000 00 0 [ScR] 7e87cb6b5a7c5b20 +l1d-0 read 0000333bb344eb40 00 0013 01 1 [MdW] b8f60836dc885f73 +l2 write 00009a603343d580 00 0031 01 1 [MdW] e4bd1c98fd7a6b9f +l1d-0 evict 00009a603343d580 00 0006 03 [IcR] e4bd1c98fd7a6b9f +l2 read 0000ed89583b9580 00 0018 00 1 [SdW] 6c07dacfdb56821e +l1d-0 read 0000ed89583b9580 00 0006 03 0 [ScR] 6c07dacfdb56821e +l1d-0 read 000000f97fae5cc0 00 0003 03 1 [MdW] adf40caecba14b7b +l1d-1 read 0000883768b6a3c0 00 0015 01 1 [MdW] d8bb918563e07612 +l2 write 0000c86d27a3d040 00 0002 01 1 [MdW] 3034aadc83c0c12c +l1d-0 evict 0000c86d27a3d040 00 0001 02 [IcR] 3034aadc83c0c12c +l2 write 00006a36c42b4840 00 0014 00 1 [MdW] 1eeac5371ae03949 +l2 read 00006a36c42b4840 00 0014 00 1 [SdW] 1eeac5371ae03949 +l1d-0 read 00006a36c42b4840 00 0001 02 0 [ScR] 1eeac5371ae03949 +l1d-0 read 0000acd63c8d1880 00 0002 03 1 [MdW] 9440c2c945444381 +l2 write 000042ff28b0ea40 00 0031 05 1 [MdW] 21186ad558f150fb +l1d-1 evict 000042ff28b0ea40 00 0009 02 [IcR] 21186ad558f150fb +mem read 0000fc0f3e0e0240 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000fc0f3e0e0240 00 0013 04 0 [McW] 0000000000000000 +l1d-1 write 0000fc0f3e0e0240 00 0009 02 0 [MdW] 297f6f72b9a770ce +mem read 0000799fa07cabc0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000799fa07cabc0 00 0024 02 0 [McW] 0000000000000000 +l1d-0 write 0000799fa07cabc0 00 0015 00 0 [MdW] 51888f97616533a8 +l2 write 000050012c6eb8c0 00 0006 02 1 [MdW] 8d505e21d3399d55 +l1d-1 evict 000050012c6eb8c0 00 0003 02 [IcR] 8d505e21d3399d55 +l2 read 0000c20e6058a4c0 00 0004 01 1 [SdW] 9d29d9cac786a1e3 +l1d-1 read 0000c20e6058a4c0 00 0003 02 0 [ScR] 9d29d9cac786a1e3 +l1d-1 read 0000883768b6a3c0 00 0015 01 1 [MdW] d8bb918563e07612 +l1d-1 read 0000c92c00098fc0 00 0015 02 1 [MdW] 5ac8f2c9a0464889 +l1d-1 read 00002d9824d83d80 00 0006 01 1 [MdW] 789fd761f0d30dbc +l1d-1 read 0000ed89583b9580 00 0006 00 1 [ScR] 6c07dacfdb56821e +l2 read 0000792d5ad259c0 00 0024 01 1 [MdW] 14078fc202486941 +l1d-1 write 0000792d5ad259c0 00 0007 01 0 [MdW] c05f08a4b165d0bf +l1d-0 write 000040f7755c2ac0 00 0011 03 1 [MdW] 0ca06c02deb05937 +l1d-0 read 000063036c943940 00 0005 03 1 [MdW] 2f9cc192d2218654 +l1d-0 evict 0000bd16375b9000 00 0000 02 [IcR] 471f2cfa81d3ac5a +l1d-0 evict 0000b54aff87b9c0 00 0007 01 [IcR] 06b7c521daf2ebd7 +l2 write 0000b54aff87b9c0 00 0009 01 1 [MdW] 06b7c521daf2ebd7 +mem write 0000b54aff87b9c0 -1 -001 -1 1 [MdW] 06b7c521daf2ebd7 +l2 evict 0000b54aff87b9c0 00 0009 01 [IcR] 06b7c521daf2ebd7 +mem read 0000fa4efe47a000 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000fa4efe47a000 00 0009 01 0 [McW] 0000000000000000 +l1d-0 write 0000fa4efe47a000 00 0000 02 0 [MdW] df2c433ed877cb6c +mem read 0000da7033404e80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000da7033404e80 00 0016 05 0 [McW] 0000000000000000 +l1d-1 write 0000da7033404e80 00 0010 02 0 [MdW] def0d5cb9fb03510 +l1d-1 read 00002814eea2cf80 00 0014 03 1 [MdW] c6da95c57f5d5cb2 +l1d-0 evict 000035b33dc0d400 00 0000 03 [IcR] b3fa26fb2bb1072d +l2 read 000073703a455800 00 0004 02 1 [SdW] 84b896eee0ea8bfb +l1d-0 read 000073703a455800 00 0000 03 0 [ScR] 84b896eee0ea8bfb +l1d-1 read 0000f76720bc2480 00 0002 00 1 [MdW] 565b8595108a30b2 +l1d-0 read 000087a8e7348c80 00 0002 02 1 [MdW] 06d5c4a0dca92e1a +l2 write 000039a5e213fe00 00 0010 00 1 [MdW] 8dc08ec49d595537 +l1d-1 evict 000039a5e213fe00 00 0008 00 [IcR] 8dc08ec49d595537 +l2 read 000049889647d200 00 0022 03 1 [MdW] 77793b7a2d13abb1 +l1d-1 write 000049889647d200 00 0008 00 0 [MdW] 47834119196c606b +l1d-0 read 0000045cce7b2a40 00 0009 00 1 [ScR] 9732b992490f2bec +l1d-1 read 0000792d5ad259c0 00 0007 01 1 [MdW] c05f08a4b165d0bf +l2 write 0000c662cc646980 00 0000 01 1 [MdW] 9178878696de8c91 +l1d-0 evict 0000c662cc646980 00 0006 01 [IcR] 9178878696de8c91 +l2 read 00000701e403e980 00 0013 02 1 [SdW] d91c439474d9ea75 +l1d-0 read 00000701e403e980 00 0006 01 0 [ScR] d91c439474d9ea75 +mem read 0000ade01f76c940 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000ade01f76c940 00 0029 02 0 [McW] 0000000000000000 +l1d-1 write 0000ade01f76c940 00 0005 00 0 [MdW] d967632a5e9ed335 +l2 read 0000045cce7b2a40 00 0030 03 1 [MdW] 9732b992490f2bec +l1d-0 write 0000045cce7b2a40 00 0009 00 0 [MdW] b93463c7c6882c2d +l1d-0 read 000073f8f4229a80 00 0010 03 1 [MdW] 64a74b273feb83c9 +l1d-1 read 0000f029765c7540 00 0005 01 1 [MdW] 2b0306dcb419a086 +l1d-1 read 00004f46a7d2ea80 00 0010 00 1 [ScR] d8a5addb7e65e806 +l1d-1 read 0000d99af3531440 00 0001 00 1 [MdW] 9dd6e27e91bc9863 +l2 read 0000d6eae7df0a40 00 0020 01 1 [MdW] 212009caf997e0d1 +l1d-0 write 0000d6eae7df0a40 00 0009 01 0 [MdW] 1bb178ab1f40b28c +l1d-1 write 0000d99af3531440 00 0001 00 1 [MdW] dbc90c66dea50e65 +l1d-1 read 0000883768b6a3c0 00 0015 01 1 [MdW] d8bb918563e07612 +l1d-0 write 000052d61b6d5a00 00 0008 00 1 [MdW] d59c432eac30fa04 +l1d-0 read 00006f44ab8bcf80 00 0014 00 1 [MdW] 53a8a8925ca7b5c1 +l2 read 000057ef223eb2c0 00 0009 07 1 [McW] 33fc07f29b2cfaff +l1d-0 write 000057ef223eb2c0 00 0011 00 0 [MdW] fc7cb9051b6d5fb5 +l1i-0 read 00006980d04a3400 00 0000 00 1 [ScR] 7e87cb6b5a7c5b20 +l2 write 00002b4766af8580 00 0026 06 1 [MdW] ec0af5df425fb3d3 +l1d-0 evict 00002b4766af8580 00 0006 00 [IcR] ec0af5df425fb3d3 +l2 read 0000c662cc646980 00 0000 01 1 [SdW] 9178878696de8c91 +l1d-0 read 0000c662cc646980 00 0006 00 0 [ScR] 9178878696de8c91 +l1i-1 read 00006980d04a3400 00 0000 00 1 [ScR] 7e87cb6b5a7c5b20 +l1d-0 read 0000a65bf8171680 00 0010 01 1 [MdW] e92d6a6544b2e04a +l1d-0 evict 0000780ab040b980 00 0006 02 [IcR] e88dd55a43222698 +l2 read 00009a603343d580 00 0031 01 1 [SdW] e4bd1c98fd7a6b9f +l1d-0 read 00009a603343d580 00 0006 02 0 [ScR] e4bd1c98fd7a6b9f +l2 write 00008edcd3eccdc0 00 0018 02 1 [MdW] 62582b34270ac5fc +l1d-1 evict 00008edcd3eccdc0 00 0007 03 [IcR] 62582b34270ac5fc +mem read 0000494fead535c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000494fead535c0 00 0020 06 0 [McW] 0000000000000000 +l1d-1 write 0000494fead535c0 00 0007 03 0 [MdW] 613b6d57ad34e57a +l2 write 00000463b4c5cf80 00 0022 04 1 [MdW] d8778ea3f72f9753 +l2 read 00000463b4c5cf80 00 0022 04 1 [SdW] d8778ea3f72f9753 +l1i-1 read 00000463b4c5cf80 00 0014 00 0 [ScR] d8778ea3f72f9753 +l1d-0 read 000052d61b6d5a00 00 0008 00 1 [MdW] d59c432eac30fa04 +l1d-1 read 0000ed89583b9580 00 0006 00 1 [ScR] 6c07dacfdb56821e +l1d-0 read 000049afd5e02b40 00 0013 00 1 [MdW] 0d73762cec20ec64 +l1d-0 read 0000fa4efe47a000 00 0000 02 1 [MdW] df2c433ed877cb6c +l1d-0 write 0000f448c073e880 00 0002 00 1 [MdW] e586cd2ebfeffde9 +l2 write 0000ba16e8b8b540 00 0020 03 1 [MdW] 9baa72244d2761d2 +l1d-0 evict 0000ba16e8b8b540 00 0005 02 [IcR] 9baa72244d2761d2 +l2 write 0000ade01f76c940 00 0029 02 1 [MdW] d967632a5e9ed335 +l2 read 0000ade01f76c940 00 0029 02 1 [SdW] d967632a5e9ed335 +l1d-0 read 0000ade01f76c940 00 0005 02 0 [ScR] d967632a5e9ed335 +l1d-0 read 00000701e403e980 00 0006 01 1 [ScR] d91c439474d9ea75 +l1d-1 evict 000059bb4b098240 00 0009 03 [IcR] a816cf9eeece6498 +l2 read 000043ca5c07b240 00 0000 02 1 [SdW] 0b03165c64b25b52 +l1d-1 read 000043ca5c07b240 00 0009 03 0 [ScR] 0b03165c64b25b52 +l1d-0 read 00000701e403e980 00 0006 01 1 [ScR] d91c439474d9ea75 +l1d-0 write 0000f27b5523ddc0 00 0007 03 1 [MdW] 630f01551a3a523f +l1d-1 read 000043ca5c07b240 00 0009 03 1 [ScR] 0b03165c64b25b52 +l1d-0 read 0000acd63c8d1880 00 0002 03 1 [MdW] 9440c2c945444381 +l1d-0 read 0000045cce7b2a40 00 0009 00 1 [MdW] b93463c7c6882c2d +l1d-0 read 0000c79b07073dc0 00 0007 00 1 [MdW] 31397f4080bef586 +l1d-1 read 00007d0902e50f80 00 0014 00 1 [ScR] cb58c668f7241e9f +l1d-0 write 000063036c943940 00 0005 03 1 [MdW] fb71c5cb4335e2f5 +l2 write 00001c9702375bc0 00 0021 03 1 [MdW] 916619a5f0fd52ba +l1d-1 evict 00001c9702375bc0 00 0015 03 [IcR] 916619a5f0fd52ba +mem read 0000b16b39d563c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000b16b39d563c0 00 0027 04 0 [McW] 0000000000000000 +l1d-1 write 0000b16b39d563c0 00 0015 03 0 [MdW] c4e2fe434591c591 +l1d-1 read 00002d9824d83d80 00 0006 01 1 [MdW] 789fd761f0d30dbc +l2 write 000057c442889400 00 0025 01 1 [MdW] 41f1903bf6dd8949 +l1d-0 evict 000057c442889400 00 0000 00 [IcR] 41f1903bf6dd8949 +mem read 000042cda8d19c00 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000042cda8d19c00 00 0029 03 0 [McW] 0000000000000000 +l1d-0 write 000042cda8d19c00 00 0000 00 0 [MdW] bf4e3ef9cf917b73 +l2 write 0000ff71c82dc900 00 0031 00 1 [MdW] ead7b1b4f2b53fe5 +l1d-0 evict 0000ff71c82dc900 00 0004 02 [IcR] ead7b1b4f2b53fe5 +l2 read 0000f66f9acff100 00 0030 00 1 [SdW] c7f5ae053c4b54cf +l1d-0 read 0000f66f9acff100 00 0004 02 0 [ScR] c7f5ae053c4b54cf +l1d-0 write 00006f44ab8bcf80 00 0014 00 1 [MdW] 5b34bc35144399f8 +l1d-0 read 0000c0773417d200 00 0008 02 1 [ScR] 2f46e337ff7072cf +l1d-1 read 00002d9824d83d80 00 0006 01 1 [MdW] 789fd761f0d30dbc +l1d-1 read 00000b438aedb2c0 00 0011 02 1 [MdW] f960a061cdcbd97f +l1d-0 read 000049afd5e02b40 00 0013 00 1 [MdW] 0d73762cec20ec64 +l2 write 0000f27b5523ddc0 00 0026 05 1 [MdW] 630f01551a3a523f +l2 read 0000f27b5523ddc0 00 0026 05 1 [SdW] 630f01551a3a523f +l1i-0 read 0000f27b5523ddc0 00 0007 00 0 [ScR] 630f01551a3a523f +l1d-0 read 000063036c943940 00 0005 03 1 [MdW] fb71c5cb4335e2f5 +l1d-1 read 00005a86b1c246c0 00 0011 00 1 [MdW] a4ed9aaf1420592d +l1d-0 read 0000045cce7b2a40 00 0009 00 1 [MdW] b93463c7c6882c2d +l1d-1 read 00007d0902e50f80 00 0014 00 1 [ScR] cb58c668f7241e9f +l1d-0 write 00006f44ab8bcf80 00 0014 00 1 [MdW] aedb2159a3c4680e +l1i-1 evict 00006bf6751e90c0 00 0003 00 [IcR] c8f6e6fa1d07acdd +l2 read 00006bf6751e90c0 00 0004 04 1 [MdW] c8f6e6fa1d07acdd +l1d-1 write 00006bf6751e90c0 00 0003 01 0 [MdW] 3c0c3449cec62aac +l1d-0 evict 0000df0f11cce0c0 00 0003 01 [IcR] b46e0cda852ad2e2 +l2 read 0000df0f11cce0c0 00 0018 03 1 [MdW] b46e0cda852ad2e2 +l1d-1 write 0000df0f11cce0c0 00 0003 03 0 [MdW] 9c0f2328e5a76eca +mem read 0000cf04a7d0b7c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000cf04a7d0b7c0 00 0012 03 0 [McW] 0000000000000000 +l1d-0 write 0000cf04a7d0b7c0 00 0015 01 0 [MdW] 640faa68409ae8f8 +l1d-1 read 00005a86b1c246c0 00 0011 00 1 [MdW] a4ed9aaf1420592d +l1d-0 evict 0000c0773417d200 00 0008 02 [IcR] 2f46e337ff7072cf +l2 read 0000c0773417d200 00 0000 03 1 [MdW] 2f46e337ff7072cf +l1d-1 write 0000c0773417d200 00 0008 01 0 [MdW] 01c0de693ddfa9f2 +l1d-0 write 000057ef223eb2c0 00 0011 00 1 [MdW] d1c802c4f83738f4 +l1d-1 read 000043ca5c07b240 00 0009 03 1 [ScR] 0b03165c64b25b52 +l1d-1 write 0000f76720bc2480 00 0002 00 1 [MdW] 5d585c9b6a7f6b9f +l1d-0 read 000065dc0cb58f00 00 0012 01 1 [MdW] 5d6e440d0dd55dd5 +l2 write 0000908064eef6c0 00 0003 02 1 [MdW] f840ce71fef19440 +l1d-1 evict 0000908064eef6c0 00 0011 03 [IcR] f840ce71fef19440 +mem read 0000c5d1227ee6c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000c5d1227ee6c0 00 0001 03 0 [McW] 0000000000000000 +l1d-1 write 0000c5d1227ee6c0 00 0011 03 0 [MdW] 37aa7cac493fcf20 +mem write 0000a40aa8666480 -1 -001 -1 1 [MdW] 173c5f4478ac31b3 +l2 evict 0000a40aa8666480 00 0025 03 [IcR] 173c5f4478ac31b3 +mem read 00003be6b01765c0 -1 -001 -1 1 [McW] b07105a9381db806 +l2 read 00003be6b01765c0 00 0025 03 0 [ScW] b07105a9381db806 +l1d-0 read 00003be6b01765c0 00 0007 01 0 [ScR] b07105a9381db806 +l1d-0 evict 00006a36c42b4840 00 0001 02 [IcR] 1eeac5371ae03949 +l2 read 00006a36c42b4840 00 0014 00 1 [MdW] 1eeac5371ae03949 +l1d-1 write 00006a36c42b4840 00 0001 02 0 [MdW] d9265abb2499f188 +l1d-0 write 0000f448c073e880 00 0002 00 1 [MdW] a6a1a8066252f6a4 +l1d-1 read 0000da7033404e80 00 0010 02 1 [MdW] def0d5cb9fb03510 +l1d-1 read 0000b16b39d563c0 00 0015 03 1 [MdW] c4e2fe434591c591 +l1d-0 write 0000fa408c35ba00 00 0008 01 1 [MdW] 7ecba1cd63a2cbbe +l1d-1 evict 00001fd6787ba100 00 0004 02 [IcR] df1b827b0bffd943 +l2 read 0000fc3d1a588d00 00 0025 06 1 [SdW] 20d6291b6fceeaa3 +l1d-1 read 0000fc3d1a588d00 00 0004 02 0 [ScR] 20d6291b6fceeaa3 +l1d-1 evict 00000463b4c5cf80 00 0014 02 [IcR] d8778ea3f72f9753 +l2 read 00006d9316738f80 00 0027 02 1 [SdW] 6700e6b15b3571ec +l1d-1 read 00006d9316738f80 00 0014 02 0 [ScR] 6700e6b15b3571ec +l1d-0 read 0000534534d814c0 00 0003 00 1 [ScR] 5488878000e9ca11 +l1d-1 read 0000883768b6a3c0 00 0015 01 1 [MdW] d8bb918563e07612 +l1d-0 read 0000f66f9acff100 00 0004 02 1 [ScR] c7f5ae053c4b54cf +l1d-0 evict 00006980d04a3400 00 0000 01 [IcR] 7e87cb6b5a7c5b20 +l2 read 00007e3437831800 00 0017 03 1 [SdW] 9ac69dc0ff6bf852 +l1d-0 read 00007e3437831800 00 0000 01 0 [ScR] 9ac69dc0ff6bf852 +l1d-1 evict 0000bb75517c9b80 00 0014 01 [IcR] 78786a2e713dca43 +l2 read 00005d35d68c9380 00 0019 04 1 [SdW] 51bed99eb8f604e9 +l1d-1 read 00005d35d68c9380 00 0014 01 0 [ScR] 51bed99eb8f604e9 +l1d-1 evict 0000b5cd51622240 00 0009 01 [IcR] 4f9c1718ca9de14e +mem read 0000c1546879c240 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000c1546879c240 00 0000 05 0 [McW] 0000000000000000 +l1d-1 write 0000c1546879c240 00 0009 01 0 [MdW] 000a8f23aa537d49 +l2 write 00004c22aaaafa40 00 0020 04 1 [MdW] 508089914b57b049 +l1d-0 evict 00004c22aaaafa40 00 0009 02 [IcR] 508089914b57b049 +l2 read 000019a40a160240 00 0008 00 1 [SdW] 003301b2273c5e28 +l1d-0 read 000019a40a160240 00 0009 02 0 [ScR] 003301b2273c5e28 +l1d-1 write 0000883768b6a3c0 00 0015 01 1 [MdW] f278520dc139b5ed +l1d-1 read 0000095a29bb9340 00 0013 00 1 [MdW] 30470642eb039e5b +l1d-0 read 000057ef223eb2c0 00 0011 00 1 [MdW] d1c802c4f83738f4 +l1d-0 read 00009a603343d580 00 0006 02 1 [ScR] e4bd1c98fd7a6b9f +l2 write 00004813c834cdc0 00 0025 04 1 [MdW] 943fd65d38c4092e +l1d-0 evict 00004813c834cdc0 00 0007 02 [IcR] 943fd65d38c4092e +mem read 00006074635435c0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00006074635435c0 00 0007 02 0 [McW] 0000000000000000 +l1d-0 write 00006074635435c0 00 0007 02 0 [MdW] 427f5edbe26fb649 +l1d-1 evict 000066e78b358f00 00 0012 01 [IcR] 9d96c52a7d69d60e +l2 write 000066e78b358f00 00 0009 00 1 [MdW] 9d96c52a7d69d60e +mem write 000066e78b358f00 -1 -001 -1 1 [MdW] 9d96c52a7d69d60e +l2 evict 000066e78b358f00 00 0009 00 [IcR] 9d96c52a7d69d60e +mem read 0000e2c595bb5e80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000e2c595bb5e80 00 0009 00 0 [McW] 0000000000000000 +l1d-1 write 0000e2c595bb5e80 00 0010 03 0 [MdW] 426159303ad0aed9 +l2 read 0000c86d27a3d040 00 0002 01 1 [SdW] 3034aadc83c0c12c +l1d-0 read 0000c86d27a3d040 00 0001 02 0 [ScR] 3034aadc83c0c12c +l1d-1 read 00007d0902e50f80 00 0014 00 1 [ScR] cb58c668f7241e9f +l1d-0 evict 0000f27b5523ddc0 00 0007 03 [IcR] 630f01551a3a523f +l2 read 0000c477f06039c0 00 0016 00 1 [SdW] 07a43d1b05d30814 +l1d-0 read 0000c477f06039c0 00 0007 03 0 [ScR] 07a43d1b05d30814 +l2 write 0000418397142480 00 0003 01 1 [MdW] d5ca42501735883b +l1d-0 evict 0000418397142480 00 0002 01 [IcR] d5ca42501735883b +mem write 00004813c834cdc0 -1 -001 -1 1 [MdW] 943fd65d38c4092e +l2 evict 00004813c834cdc0 00 0025 04 [IcR] 943fd65d38c4092e +mem read 0000a40aa8666480 -1 -001 -1 1 [McW] 173c5f4478ac31b3 +l2 read 0000a40aa8666480 00 0025 04 0 [ScW] 173c5f4478ac31b3 +l1d-0 read 0000a40aa8666480 00 0002 01 0 [ScR] 173c5f4478ac31b3 +l1d-0 read 000063036c943940 00 0005 03 1 [MdW] fb71c5cb4335e2f5 +l1d-1 evict 00002ccb051018c0 00 0003 00 [IcR] 37430a6ae2ed6122 +l2 read 0000136b8cb094c0 00 0009 05 1 [SdW] 4d51034c84140818 +l1d-1 read 0000136b8cb094c0 00 0003 00 0 [ScR] 4d51034c84140818 +l2 write 00006a25c963e900 00 0028 00 1 [MdW] ae43245b0fd92af4 +l1d-1 evict 00006a25c963e900 00 0004 03 [IcR] ae43245b0fd92af4 +l2 read 00007a0ccec77d00 00 0004 00 1 [SdW] 603f902534bdd00d +l1d-1 read 00007a0ccec77d00 00 0004 03 0 [ScR] 603f902534bdd00d +l1d-0 write 000073f8f4229a80 00 0010 03 1 [MdW] e8eef9e821b9b361 +l2 read 0000a6f9f0803d80 00 0010 01 1 [SdW] c0f82e8e69025d47 +l1i-0 read 0000a6f9f0803d80 00 0006 00 0 [ScR] c0f82e8e69025d47 +l2 write 00002c011c660300 00 0012 02 1 [MdW] 7a2d736a5722d9e9 +l1d-0 evict 00002c011c660300 00 0012 02 [IcR] 7a2d736a5722d9e9 +l1d-0 evict 0000fa4efe47a000 00 0000 02 [IcR] df2c433ed877cb6c +l2 write 0000fa4efe47a000 00 0009 01 1 [MdW] df2c433ed877cb6c +mem write 0000fa4efe47a000 -1 -001 -1 1 [MdW] df2c433ed877cb6c +l2 evict 0000fa4efe47a000 00 0009 01 [IcR] df2c433ed877cb6c +mem read 000066e78b358f00 -1 -001 -1 1 [McW] 9d96c52a7d69d60e +l2 read 000066e78b358f00 00 0009 01 0 [ScW] 9d96c52a7d69d60e +l1d-0 read 000066e78b358f00 00 0012 02 0 [ScR] 9d96c52a7d69d60e +l2 write 0000ced5eac0d680 00 0022 05 1 [MdW] 286cd5e99abee408 +l1d-0 evict 0000ced5eac0d680 00 0010 00 [IcR] 286cd5e99abee408 +mem read 00007121fd387e80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00007121fd387e80 00 0015 02 0 [McW] 0000000000000000 +l1d-0 write 00007121fd387e80 00 0010 00 0 [MdW] ad519a24c56e4188 +l1d-0 write 0000045cce7b2a40 00 0009 00 1 [MdW] a17c5d2d47e695af +l1d-0 read 0000ffac00a71b80 00 0014 01 1 [MdW] e178f2d9faca3dba +l1d-0 write 00006f44ab8bcf80 00 0014 00 1 [MdW] 54ef841c985c9745 +l1d-0 write 000052d61b6d5a00 00 0008 00 1 [MdW] 47f09fd7ab0208ac +l1d-1 evict 0000780ab040b980 00 0006 02 [IcR] e88dd55a43222698 +mem read 000080a8ac776580 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000080a8ac776580 00 0010 07 0 [McW] 0000000000000000 +l1d-1 write 000080a8ac776580 00 0006 02 0 [MdW] 50545394e7113224 +l2 read 0000534534d814c0 00 0011 06 1 [MdW] 5488878000e9ca11 +l1d-0 write 0000534534d814c0 00 0003 00 0 [MdW] 4c19d65a8afebebd +mem read 00006cf58254d780 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00006cf58254d780 00 0007 05 0 [McW] 0000000000000000 +l1d-0 write 00006cf58254d780 00 0014 02 0 [MdW] cd2840a4925c9683 +l1d-0 read 00009a603343d580 00 0006 02 1 [ScR] e4bd1c98fd7a6b9f +l1d-1 read 0000c97dfb94fd80 00 0006 03 1 [ScR] 866e8372e740908a +l1d-0 read 000049afd5e02b40 00 0013 00 1 [MdW] 0d73762cec20ec64 +l1d-0 read 00004f46a7d2ea80 00 0010 02 1 [ScR] d8a5addb7e65e806 +l1d-0 read 000063036c943940 00 0005 03 1 [MdW] fb71c5cb4335e2f5 +l2 write 00002814eea2cf80 00 0005 02 1 [MdW] c6da95c57f5d5cb2 +l1d-1 evict 00002814eea2cf80 00 0014 03 [IcR] c6da95c57f5d5cb2 +l2 read 0000bb75517c9b80 00 0007 00 1 [MdW] 78786a2e713dca43 +l1d-1 write 0000bb75517c9b80 00 0014 03 0 [MdW] f837c18c35888bd3 +l2 write 00001cff7cd11500 00 0028 04 1 [MdW] 6b0180ad5bfc6aa3 +l1d-1 evict 00001cff7cd11500 00 0004 00 [IcR] 6b0180ad5bfc6aa3 +l2 read 00006a25c963e900 00 0018 02 1 [SdW] ae43245b0fd92af4 +l1d-1 read 00006a25c963e900 00 0004 00 0 [ScR] ae43245b0fd92af4 +l1d-1 read 0000fc3d1a588d00 00 0004 02 1 [ScR] 20d6291b6fceeaa3 +l1d-1 read 0000bb75517c9b80 00 0014 03 1 [MdW] f837c18c35888bd3 +l1d-0 read 000052d61b6d5a00 00 0008 00 1 [MdW] 47f09fd7ab0208ac +l1d-0 read 0000c477f06039c0 00 0007 03 1 [ScR] 07a43d1b05d30814 +l1d-0 read 000063036c943940 00 0005 03 1 [MdW] fb71c5cb4335e2f5 +l2 write 0000a462f1bb1500 00 0019 00 1 [MdW] 2f9d5892b243a4f9 +l1d-0 evict 0000a462f1bb1500 00 0004 03 [IcR] 2f9d5892b243a4f9 +mem read 0000d090b8181100 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000d090b8181100 00 0021 03 0 [McW] 0000000000000000 +l1d-0 write 0000d090b8181100 00 0004 03 0 [MdW] 600a65175372b60f +l1i-1 read 0000ccd4a1523d80 00 0006 00 1 [ScR] 2e58730cb2f43705 +l1d-0 write 000065dc0cb58f00 00 0012 01 1 [MdW] c1826e64b02c93c3 +l1d-0 read 00003174403caf00 00 0012 00 1 [MdW] e27dc8a846a78e56 +mem read 000061848951ebc0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000061848951ebc0 00 0006 06 0 [McW] 0000000000000000 +l1d-0 write 000061848951ebc0 00 0015 02 0 [MdW] 17a334d5e0225251 +l1d-1 read 000043ca5c07b240 00 0009 03 1 [ScR] 0b03165c64b25b52 +l2 write 0000c79b07073dc0 00 0017 00 1 [MdW] 31397f4080bef586 +l1d-0 evict 0000c79b07073dc0 00 0007 00 [IcR] 31397f4080bef586 +mem read 00004813c834cdc0 -1 -001 -1 1 [McW] 943fd65d38c4092e +l2 read 00004813c834cdc0 00 0003 07 0 [ScW] 943fd65d38c4092e +l1d-0 read 00004813c834cdc0 00 0007 00 0 [ScR] 943fd65d38c4092e +l1d-1 read 000043ca5c07b240 00 0009 03 1 [ScR] 0b03165c64b25b52 +l1d-1 read 0000883768b6a3c0 00 0015 01 1 [MdW] f278520dc139b5ed +l2 read 00007d0902e50f80 00 0022 00 1 [MdW] cb58c668f7241e9f +l1d-1 write 00007d0902e50f80 00 0014 00 0 [MdW] 0c06578e52110426 +l1d-0 write 000040f7755c2ac0 00 0011 03 1 [MdW] 23c94fe36f11e191 +l1d-1 write 0000095a29bb9340 00 0013 00 1 [MdW] b31520207b4d7d77 +l1d-1 read 00005a86b1c246c0 00 0011 00 1 [MdW] a4ed9aaf1420592d +l1d-1 read 0000bb75517c9b80 00 0014 03 1 [MdW] f837c18c35888bd3 +l1d-1 read 000025cc871abf00 00 0012 00 1 [MdW] a36cd516217674c5 +l1d-1 evict 00006d9316738f80 00 0014 02 [IcR] 6700e6b15b3571ec +l2 read 0000015d1559b380 00 0016 00 1 [MdW] 042dac84e3de4101 +l1d-1 write 0000015d1559b380 00 0014 02 0 [MdW] 282232be54b9c054 +l2 read 000035b33dc0d400 00 0024 03 1 [SdW] b3fa26fb2bb1072d +l1d-0 read 000035b33dc0d400 00 0000 02 0 [ScR] b3fa26fb2bb1072d +l1d-0 read 00001ad58832f640 00 0009 03 1 [MdW] f1d026232e24dd48 +l2 write 00003bd14ab212c0 00 0028 06 1 [MdW] 338c39d468604fc8 +l1d-1 evict 00003bd14ab212c0 00 0011 01 [IcR] 338c39d468604fc8 +l2 read 0000908064eef6c0 00 0001 00 1 [SdW] f840ce71fef19440 +l1d-1 read 0000908064eef6c0 00 0011 01 0 [ScR] f840ce71fef19440 +l1d-1 read 000013d16c815400 00 0000 00 1 [MdW] 7d923acd36856c0b +l1d-0 read 0000534534d814c0 00 0003 00 1 [MdW] 4c19d65a8afebebd +l1d-0 read 00007a0ccec77d00 00 0004 00 1 [ScR] 603f902534bdd00d +l1i-1 read 00006980d04a3400 00 0000 00 1 [ScR] 7e87cb6b5a7c5b20 +l1d-0 write 000057ef223eb2c0 00 0011 00 1 [MdW] 5cf1dee5ec17ee31 +l1d-0 read 000065dc0cb58f00 00 0012 01 1 [MdW] c1826e64b02c93c3 +l1d-1 write 00002d9824d83d80 00 0006 01 1 [MdW] 4df2eea104e63fd7 +l2 write 00001b6fc10d9840 00 0007 03 1 [MdW] 7f5c255dd3c361e0 +l1d-0 evict 00001b6fc10d9840 00 0001 03 [IcR] 7f5c255dd3c361e0 +mem read 00003c43977d6040 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00003c43977d6040 00 0024 01 0 [McW] 0000000000000000 +l1d-0 write 00003c43977d6040 00 0001 03 0 [MdW] 4230a216503f3385 +l2 write 00000b438aedb2c0 00 0016 06 1 [MdW] f960a061cdcbd97f +l1d-1 evict 00000b438aedb2c0 00 0011 02 [IcR] f960a061cdcbd97f +l2 read 00003bd14ab212c0 00 0028 06 1 [SdW] 338c39d468604fc8 +l1d-1 read 00003bd14ab212c0 00 0011 02 0 [ScR] 338c39d468604fc8 +l1d-1 read 0000da7033404e80 00 0010 02 1 [MdW] def0d5cb9fb03510 +l1d-1 read 0000c97dfb94fd80 00 0006 03 1 [ScR] 866e8372e740908a +l1d-1 evict 0000ed89583b9580 00 0006 00 [IcR] 6c07dacfdb56821e +l2 read 0000ed89583b9580 00 0002 03 1 [MdW] 6c07dacfdb56821e +l1d-0 write 0000ed89583b9580 00 0006 03 0 [MdW] 7585da8db36b9e1d +l2 write 0000d6eae7df0a40 00 0027 01 1 [MdW] 1bb178ab1f40b28c +l1d-0 evict 0000d6eae7df0a40 00 0009 01 [IcR] 1bb178ab1f40b28c +l2 read 0000ade5546e9640 00 0011 01 1 [SdW] 5209bc09f2897536 +l1d-0 read 0000ade5546e9640 00 0009 01 0 [ScR] 5209bc09f2897536 +l1d-0 read 00004dcada9f52c0 00 0011 01 1 [MdW] df2509b29fb62744 +l1d-0 read 0000cf04a7d0b7c0 00 0015 01 1 [MdW] 640faa68409ae8f8 +l2 read 00004813c834cdc0 00 0003 07 1 [McW] 943fd65d38c4092e +l1d-0 write 00004813c834cdc0 00 0007 00 0 [MdW] 0af84804aa6dd58b +l1d-1 evict 0000803bdde89900 00 0004 01 [IcR] 4149d9c5522ff4aa +l2 read 00001cff7cd11500 00 0028 04 1 [SdW] 6b0180ad5bfc6aa3 +l1d-1 read 00001cff7cd11500 00 0004 01 0 [ScR] 6b0180ad5bfc6aa3 +l2 write 000095996286e640 00 0018 00 1 [MdW] f1b509cda89b9e6b +l1d-1 evict 000095996286e640 00 0009 00 [IcR] f1b509cda89b9e6b +mem read 000056fd61295e40 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000056fd61295e40 00 0008 03 0 [McW] 0000000000000000 +l1d-1 write 000056fd61295e40 00 0009 00 0 [MdW] eb4618272fa8ed80 +l1d-1 evict 00005d35d68c9380 00 0014 01 [IcR] 51bed99eb8f604e9 +l2 read 00002814eea2cf80 00 0005 02 1 [SdW] c6da95c57f5d5cb2 +l1d-1 read 00002814eea2cf80 00 0014 01 0 [ScR] c6da95c57f5d5cb2 +l1d-1 write 0000792d5ad259c0 00 0007 01 1 [MdW] 3221ebd848868f90 +l2 write 000018c9dccfc840 00 0021 07 1 [MdW] 83b569fd7e2f93d0 +l1d-0 evict 000018c9dccfc840 00 0001 00 [IcR] 83b569fd7e2f93d0 +mem read 0000232a73ed2040 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000232a73ed2040 00 0029 02 0 [McW] 0000000000000000 +l1d-0 write 0000232a73ed2040 00 0001 00 0 [MdW] bcf94c89f64696f7 +l1d-1 read 0000136b8cb094c0 00 0003 00 1 [ScR] 4d51034c84140818 +l1d-0 read 000019a40a160240 00 0009 02 1 [ScR] 003301b2273c5e28 +mem read 0000cb907584dc80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000cb907584dc80 00 0027 02 0 [McW] 0000000000000000 +l1d-1 write 0000cb907584dc80 00 0002 02 0 [MdW] c2b3bde410eeed99 +l1d-1 read 0000792d5ad259c0 00 0007 01 1 [MdW] 3221ebd848868f90 +l2 write 0000c5d1227ee6c0 00 0002 02 1 [MdW] 37aa7cac493fcf20 +l1d-1 evict 0000c5d1227ee6c0 00 0011 03 [IcR] 37aa7cac493fcf20 +l2 read 00000b438aedb2c0 00 0016 06 1 [SdW] f960a061cdcbd97f +l1d-1 read 00000b438aedb2c0 00 0011 03 0 [ScR] f960a061cdcbd97f +l1d-1 read 00007b42479583c0 00 0015 00 1 [MdW] 1fca5feae77517e8 +l2 write 0000d1a495bc3400 00 0012 05 1 [MdW] b09506206c0eb875 +l1d-1 evict 0000d1a495bc3400 00 0000 03 [IcR] b09506206c0eb875 +mem read 0000e799028df400 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000e799028df400 00 0026 01 0 [McW] 0000000000000000 +l1d-1 write 0000e799028df400 00 0000 03 0 [MdW] bc6691b91abbe790 +l1d-0 read 0000a65bf8171680 00 0010 01 1 [MdW] e92d6a6544b2e04a +l1d-1 read 0000883768b6a3c0 00 0015 01 1 [MdW] f278520dc139b5ed +l1d-1 read 0000015d1559b380 00 0014 02 1 [MdW] 282232be54b9c054 +l1d-0 read 00009a603343d580 00 0006 02 1 [ScR] e4bd1c98fd7a6b9f +l2 read 00003bd14ab212c0 00 0028 06 1 [MdW] 338c39d468604fc8 +l1d-1 write 00003bd14ab212c0 00 0011 02 0 [MdW] 7d5fd4c9e5820a28 +l1d-1 read 00005a86b1c246c0 00 0011 00 1 [MdW] a4ed9aaf1420592d +l1i-1 read 0000ccd4a1523d80 00 0006 00 1 [ScR] 2e58730cb2f43705 +l1d-0 write 0000ffac00a71b80 00 0014 01 1 [MdW] a61665acf2792f66 +l1d-1 write 0000095a29bb9340 00 0013 00 1 [MdW] cd5095ef84be60be +l1d-1 read 00005a86b1c246c0 00 0011 00 1 [MdW] a4ed9aaf1420592d +l2 write 0000fc0f3e0e0240 00 0011 00 1 [MdW] 297f6f72b9a770ce +l1d-1 evict 0000fc0f3e0e0240 00 0009 02 [IcR] 297f6f72b9a770ce +mem read 0000d3afe5d1ca40 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000d3afe5d1ca40 00 0007 06 0 [McW] 0000000000000000 +l1d-1 write 0000d3afe5d1ca40 00 0009 02 0 [MdW] bb3721a1166e6ecf +l1d-0 read 000052d61b6d5a00 00 0008 00 1 [MdW] 47f09fd7ab0208ac +l1d-0 write 0000534534d814c0 00 0003 00 1 [MdW] a76d1bb85a4f194a +l1d-0 read 000049afd5e02b40 00 0013 00 1 [MdW] 0d73762cec20ec64 +l1d-0 read 0000f66f9acff100 00 0004 02 1 [ScR] c7f5ae053c4b54cf +l2 read 00002814eea2cf80 00 0005 02 1 [MdW] c6da95c57f5d5cb2 +l1d-1 write 00002814eea2cf80 00 0014 01 0 [MdW] 1d6b75778fa46c62 +l1d-0 evict 000073703a455800 00 0000 03 [IcR] 84b896eee0ea8bfb +l2 read 00003f232f338000 00 0018 01 1 [SdW] a2d413acae95e3cd +l1d-0 read 00003f232f338000 00 0000 03 0 [ScR] a2d413acae95e3cd +l1d-0 read 000052d61b6d5a00 00 0008 00 1 [MdW] 47f09fd7ab0208ac +l2 read 0000012233313580 00 0006 04 1 [SdW] 0aa2d7ab5dfce8cc +l1d-1 read 0000012233313580 00 0006 00 0 [ScR] 0aa2d7ab5dfce8cc +l1d-1 evict 00007a0ccec77d00 00 0004 03 [IcR] 603f902534bdd00d +l2 read 000039a6b2ebcd00 00 0009 02 1 [SdW] 92f3c8ee96a39ad8 +l1d-1 read 000039a6b2ebcd00 00 0004 03 0 [ScR] 92f3c8ee96a39ad8 +l1d-0 read 000057ef223eb2c0 00 0011 00 1 [MdW] 5cf1dee5ec17ee31 +l2 read 00003be6b01765c0 00 0022 02 1 [McW] b07105a9381db806 +l1d-0 write 00003be6b01765c0 00 0007 01 0 [MdW] 72c7e34d716ce2c3 +l1d-0 read 00009a603343d580 00 0006 02 1 [ScR] e4bd1c98fd7a6b9f +l1d-1 evict 0000c20e6058a4c0 00 0003 02 [IcR] 9d29d9cac786a1e3 +l2 read 000050012c6eb8c0 00 0008 04 1 [SdW] 8d505e21d3399d55 +l1d-1 read 000050012c6eb8c0 00 0003 02 0 [ScR] 8d505e21d3399d55 +l1d-1 read 00008e48523b3e80 00 0010 01 1 [MdW] 665d67bf32230465 +l1d-1 read 0000bb75517c9b80 00 0014 03 1 [MdW] f837c18c35888bd3 +l1d-1 read 0000fe371a542400 00 0000 01 1 [MdW] 0968e82e4bb02b18 +l1d-1 read 0000e799028df400 00 0000 03 1 [MdW] bc6691b91abbe790 +l1d-0 read 000065dc0cb58f00 00 0012 01 1 [MdW] c1826e64b02c93c3 +l2 write 000042cda8d19c00 00 0016 01 1 [MdW] bf4e3ef9cf917b73 +l1d-0 evict 000042cda8d19c00 00 0000 00 [IcR] bf4e3ef9cf917b73 +mem read 0000fa4efe47a000 -1 -001 -1 1 [McW] df2c433ed877cb6c +l2 read 0000fa4efe47a000 00 0011 03 0 [McW] df2c433ed877cb6c +l1d-0 write 0000fa4efe47a000 00 0000 00 0 [MdW] 3d554e47c9a0c003 +l1d-1 read 0000443a27100c40 00 0001 03 1 [MdW] 3be61c8763ba8f77 +l1d-0 read 0000ade5546e9640 00 0009 01 1 [ScR] 5209bc09f2897536 +l1d-1 read 000043ca5c07b240 00 0009 03 1 [ScR] 0b03165c64b25b52 +l1d-0 read 0000c477f06039c0 00 0007 03 1 [ScR] 07a43d1b05d30814 +l1d-1 read 0000d99af3531440 00 0001 00 1 [MdW] dbc90c66dea50e65 +l1d-1 write 00002d9824d83d80 00 0006 01 1 [MdW] afb4bb99ec9cb2da +l1d-0 evict 00001fd6787ba100 00 0004 01 [IcR] df1b827b0bffd943 +l2 read 0000b78d2a790900 00 0000 03 1 [MdW] 4b286894f1b254a4 +l1d-0 write 0000b78d2a790900 00 0004 01 0 [MdW] efe31bf8541a673f +l2 read 0000605ba6057540 00 0002 01 1 [SdW] cfc80859e336b176 +l1d-1 read 0000605ba6057540 00 0005 02 0 [ScR] cfc80859e336b176 +l2 write 00007d0902e50f80 00 0022 00 1 [MdW] 0c06578e52110426 +l1d-1 evict 00007d0902e50f80 00 0014 00 [IcR] 0c06578e52110426 +l2 read 000092e2f479cf80 00 0022 04 1 [MdW] d17309df336a0e01 +l1d-1 write 000092e2f479cf80 00 0014 00 0 [MdW] 953e17bdbbc42e90 +l1d-0 evict 0000033616c7e540 00 0005 01 [IcR] 505e4c2fc450e2ad +mem read 0000205a116a7d40 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000205a116a7d40 00 0005 06 0 [McW] 0000000000000000 +l1d-0 write 0000205a116a7d40 00 0005 01 0 [MdW] a4864eeab5efaace +l1d-0 read 000065dc0cb58f00 00 0012 01 1 [MdW] c1826e64b02c93c3 +l1d-1 read 00006a25c963e900 00 0004 00 1 [ScR] ae43245b0fd92af4 +l2 write 000040f7755c2ac0 00 0027 06 1 [MdW] 23c94fe36f11e191 +l2 read 000040f7755c2ac0 00 0027 06 1 [SdW] 23c94fe36f11e191 +l1i-0 read 000040f7755c2ac0 00 0011 00 0 [ScR] 23c94fe36f11e191 +l2 read 00001cff7cd11500 00 0028 04 1 [SdW] 6b0180ad5bfc6aa3 +l1i-1 read 00001cff7cd11500 00 0004 00 0 [ScR] 6b0180ad5bfc6aa3 +l1d-1 read 0000012233313580 00 0006 00 1 [ScR] 0aa2d7ab5dfce8cc +l2 write 0000c1546879c240 00 0003 04 1 [MdW] 000a8f23aa537d49 +l1d-1 evict 0000c1546879c240 00 0009 01 [IcR] 000a8f23aa537d49 +l2 read 000095996286e640 00 0018 00 1 [SdW] f1b509cda89b9e6b +l1d-1 read 000095996286e640 00 0009 01 0 [ScR] f1b509cda89b9e6b +l1d-0 write 000073f8f4229a80 00 0010 03 1 [MdW] 31d6fa0a53f18b41 +l2 read 000039a6b2ebcd00 00 0009 02 1 [MdW] 92f3c8ee96a39ad8 +l1d-1 write 000039a6b2ebcd00 00 0004 03 0 [MdW] eef3a60d9033465c +l1d-1 read 0000b16b39d563c0 00 0015 03 1 [MdW] c4e2fe434591c591 +l1d-0 read 00000701e403e980 00 0006 01 1 [ScR] d91c439474d9ea75 +l2 write 00006074635435c0 00 0006 00 1 [MdW] 427f5edbe26fb649 +l1d-0 evict 00006074635435c0 00 0007 02 [IcR] 427f5edbe26fb649 +l2 write 0000792d5ad259c0 00 0030 04 1 [MdW] 3221ebd848868f90 +l2 read 0000792d5ad259c0 00 0030 04 1 [SdW] 3221ebd848868f90 +l1d-0 read 0000792d5ad259c0 00 0007 02 0 [ScR] 3221ebd848868f90 +l1d-0 read 00003c43977d6040 00 0001 03 1 [MdW] 4230a216503f3385 +l1d-1 read 00002d9824d83d80 00 0006 01 1 [MdW] afb4bb99ec9cb2da +l1d-1 evict 0000fc3d1a588d00 00 0004 02 [IcR] 20d6291b6fceeaa3 +l2 read 0000803bdde89900 00 0031 02 1 [SdW] 4149d9c5522ff4aa +l1d-1 read 0000803bdde89900 00 0004 02 0 [ScR] 4149d9c5522ff4aa +l2 write 000087a8e7348c80 00 0010 03 1 [MdW] 06d5c4a0dca92e1a +l1d-0 evict 000087a8e7348c80 00 0002 02 [IcR] 06d5c4a0dca92e1a +l2 read 0000418397142480 00 0004 03 1 [MdW] d5ca42501735883b +l1d-0 write 0000418397142480 00 0002 02 0 [MdW] 4230466cc357474e +l1d-1 read 0000b16b39d563c0 00 0015 03 1 [MdW] c4e2fe434591c591 +l1d-0 read 000095873da506c0 00 0011 02 1 [MdW] 5d652850f1d45f1d +mem read 00006673791a8780 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00006673791a8780 00 0012 02 0 [McW] 0000000000000000 +l1d-0 write 00006673791a8780 00 0014 03 0 [MdW] f4cd862dc374f36d +l1d-0 read 000073f8f4229a80 00 0010 03 1 [MdW] 31d6fa0a53f18b41 +l1d-1 write 000025cc871abf00 00 0012 00 1 [MdW] 1e77d11d1718e287 +l1d-1 read 0000d99af3531440 00 0001 00 1 [MdW] dbc90c66dea50e65 +l1d-1 write 000025cc871abf00 00 0012 00 1 [MdW] a534b1f80fab5047 +l1i-1 read 00000463b4c5cf80 00 0014 00 1 [ScR] d8778ea3f72f9753 +l1d-0 read 000065dc0cb58f00 00 0012 01 1 [MdW] c1826e64b02c93c3 +l1d-0 read 00002cbcc4bef440 00 0001 01 1 [MdW] e21542a5128e9ecb +l1d-0 read 000052d61b6d5a00 00 0008 00 1 [MdW] 47f09fd7ab0208ac +l1d-0 write 0000418397142480 00 0002 02 1 [MdW] 2fcbd7fcdbfe874e +l1d-1 read 000080a8ac776580 00 0006 02 1 [MdW] 50545394e7113224 +l1d-1 write 0000e030a3d78740 00 0013 01 1 [MdW] cd8ad056003b74ce +l1d-0 read 0000b78d2a790900 00 0004 01 1 [MdW] efe31bf8541a673f +l2 write 0000015d1559b380 00 0016 00 1 [MdW] 282232be54b9c054 +l1d-1 evict 0000015d1559b380 00 0014 02 [IcR] 282232be54b9c054 +mem read 0000f2231ef84f80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000f2231ef84f80 00 0008 05 0 [McW] 0000000000000000 +l1d-1 write 0000f2231ef84f80 00 0014 02 0 [MdW] 794119a0f1a9513d +l1d-1 write 00002d9824d83d80 00 0006 01 1 [MdW] 39fe4a0fc65da1d9 +l1d-1 read 0000da7033404e80 00 0010 02 1 [MdW] def0d5cb9fb03510 +l1i-1 read 00001cff7cd11500 00 0004 00 1 [ScR] 6b0180ad5bfc6aa3 +l1d-1 read 0000bb381b2db600 00 0008 02 1 [MdW] e215c0b496405f9e +l1d-0 read 000019a40a160240 00 0009 02 1 [ScR] 003301b2273c5e28 +l1d-1 read 000092e2f479cf80 00 0014 00 1 [MdW] 953e17bdbbc42e90 +l2 write 000056fd61295e40 00 0008 03 1 [MdW] eb4618272fa8ed80 +l1d-1 evict 000056fd61295e40 00 0009 00 [IcR] eb4618272fa8ed80 +l2 read 000042ff28b0ea40 00 0004 01 1 [SdW] 21186ad558f150fb +l1d-1 read 000042ff28b0ea40 00 0009 00 0 [ScR] 21186ad558f150fb +l1d-1 evict 00001cff7cd11500 00 0004 01 [IcR] 6b0180ad5bfc6aa3 +l2 read 0000fc3d1a588d00 00 0006 05 1 [SdW] 20d6291b6fceeaa3 +l1d-1 read 0000fc3d1a588d00 00 0004 01 0 [ScR] 20d6291b6fceeaa3 +l1d-1 read 000043ca5c07b240 00 0009 03 1 [ScR] 0b03165c64b25b52 +l1d-1 read 0000605ba6057540 00 0005 02 1 [ScR] cfc80859e336b176 +l2 write 0000d090b8181100 00 0021 03 1 [MdW] 600a65175372b60f +l1d-0 evict 0000d090b8181100 00 0004 03 [IcR] 600a65175372b60f +l2 read 0000ff71c82dc900 00 0010 05 1 [MdW] ead7b1b4f2b53fe5 +l1d-0 write 0000ff71c82dc900 00 0004 03 0 [MdW] 429db08a0998b047 +l1d-1 write 0000bb75517c9b80 00 0014 03 1 [MdW] e09e57bfd05f4979 +l1d-1 read 00002d9824d83d80 00 0006 01 1 [MdW] 39fe4a0fc65da1d9 +l2 write 00005d7bb4b3fa00 00 0010 06 1 [MdW] e908b2478d834bdb +l1d-1 evict 00005d7bb4b3fa00 00 0008 03 [IcR] e908b2478d834bdb +l2 read 000039a5e213fe00 00 0019 07 1 [SdW] 8dc08ec49d595537 +l1d-1 read 000039a5e213fe00 00 0008 03 0 [ScR] 8dc08ec49d595537 +l1d-0 read 00004813c834cdc0 00 0007 00 1 [MdW] 0af84804aa6dd58b +l2 write 00006f44ab8bcf80 00 0010 00 1 [MdW] 54ef841c985c9745 +l1d-0 evict 00006f44ab8bcf80 00 0014 00 [IcR] 54ef841c985c9745 +l2 read 0000015d1559b380 00 0016 00 1 [SdW] 282232be54b9c054 +l1d-0 read 0000015d1559b380 00 0014 00 0 [ScR] 282232be54b9c054 +l1d-1 read 0000c92c00098fc0 00 0015 02 1 [MdW] 5ac8f2c9a0464889 +l2 read 00005066f9d0b480 00 0023 00 1 [SdW] 137a92d6da9c98a8 +l1d-1 read 00005066f9d0b480 00 0002 03 0 [ScR] 137a92d6da9c98a8 +l1i-1 read 00000463b4c5cf80 00 0014 00 1 [ScR] d8778ea3f72f9753 +l1d-1 evict 00006a25c963e900 00 0004 00 [IcR] ae43245b0fd92af4 +l2 read 00001cff7cd11500 00 0028 04 1 [SdW] 6b0180ad5bfc6aa3 +l1d-1 read 00001cff7cd11500 00 0004 00 0 [ScR] 6b0180ad5bfc6aa3 +l1d-0 evict 0000792d5ad259c0 00 0007 02 [IcR] 3221ebd848868f90 +l2 read 0000792d5ad259c0 00 0030 04 1 [MdW] 3221ebd848868f90 +l1d-1 write 0000792d5ad259c0 00 0007 01 0 [MdW] 817044232bfa184a +mem read 00004fefb0cb7cc0 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00004fefb0cb7cc0 00 0011 04 0 [McW] 0000000000000000 +l1d-0 write 00004fefb0cb7cc0 00 0003 01 0 [MdW] 38afdc4cdcf866a7 +l2 write 00006cf58254d780 00 0007 05 1 [MdW] cd2840a4925c9683 +l1d-0 evict 00006cf58254d780 00 0014 02 [IcR] cd2840a4925c9683 +l2 read 00006f44ab8bcf80 00 0010 00 1 [SdW] 54ef841c985c9745 +l1d-0 read 00006f44ab8bcf80 00 0014 02 0 [ScR] 54ef841c985c9745 +l1d-0 write 00004813c834cdc0 00 0007 00 1 [MdW] 1c05eadfc5b117e3 +l1d-1 read 0000c92c00098fc0 00 0015 02 1 [MdW] 5ac8f2c9a0464889 +l1d-0 read 0000799fa07cabc0 00 0015 00 1 [MdW] 51888f97616533a8 +l1d-0 read 000065dc0cb58f00 00 0012 01 1 [MdW] c1826e64b02c93c3 +l2 read 0000f66f9acff100 00 0012 01 1 [MdW] c7f5ae053c4b54cf +l1d-0 write 0000f66f9acff100 00 0004 02 0 [MdW] 6127ca24e671725d +l1d-0 read 00003c43977d6040 00 0001 03 1 [MdW] 4230a216503f3385 +l1d-1 evict 0000c97dfb94fd80 00 0006 03 [IcR] 866e8372e740908a +mem read 0000fe2140a6f980 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000fe2140a6f980 00 0030 00 0 [McW] 0000000000000000 +l1d-1 write 0000fe2140a6f980 00 0006 03 0 [MdW] 48764c6ee9e0a7c7 +l1d-1 read 00002814eea2cf80 00 0014 01 1 [MdW] 1d6b75778fa46c62 +l2 write 00007121fd387e80 00 0015 02 1 [MdW] ad519a24c56e4188 +l1d-0 evict 00007121fd387e80 00 0010 00 [IcR] ad519a24c56e4188 +mem read 0000d8e31ae65a80 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 0000d8e31ae65a80 00 0018 03 0 [McW] 0000000000000000 +l1d-0 write 0000d8e31ae65a80 00 0010 00 0 [MdW] 51d4ae33f538a94d +l1d-1 write 00008e48523b3e80 00 0010 01 1 [MdW] 9b2fa4f38abab900 +l1d-0 read 0000cf04a7d0b7c0 00 0015 01 1 [MdW] 640faa68409ae8f8 +l2 write 0000045cce7b2a40 00 0002 06 1 [MdW] a17c5d2d47e695af +l1d-0 evict 0000045cce7b2a40 00 0009 00 [IcR] a17c5d2d47e695af +l2 read 0000d6eae7df0a40 00 0027 01 1 [SdW] 1bb178ab1f40b28c +l1d-0 read 0000d6eae7df0a40 00 0009 00 0 [ScR] 1bb178ab1f40b28c +l1d-0 read 000073f8f4229a80 00 0010 03 1 [MdW] 31d6fa0a53f18b41 +l2 read 00006074635435c0 00 0006 00 1 [MdW] 427f5edbe26fb649 +l1d-0 write 00006074635435c0 00 0007 02 0 [MdW] ec92afdb6195340e +l1d-1 read 0000012233313580 00 0006 00 1 [ScR] 0aa2d7ab5dfce8cc +l1d-0 write 000052d61b6d5a00 00 0008 00 1 [MdW] 30b94c7c50299b8f +l1d-1 write 0000bb381b2db600 00 0008 02 1 [MdW] d0e4f72848753da1 +l1d-1 write 00003bd14ab212c0 00 0011 02 1 [MdW] b3191296ad508c64 +l1d-1 read 00006bf6751e90c0 00 0003 01 1 [MdW] 3c0c3449cec62aac +l1d-0 write 0000cf04a7d0b7c0 00 0015 01 1 [MdW] 735681b7cd1351f3 +l1d-0 evict 00007e3437831800 00 0000 01 [IcR] 9ac69dc0ff6bf852 +l2 read 000042cda8d19c00 00 0016 01 1 [SdW] bf4e3ef9cf917b73 +l1d-0 read 000042cda8d19c00 00 0000 01 0 [ScR] bf4e3ef9cf917b73 +l1d-0 read 000057ef223eb2c0 00 0011 00 1 [MdW] 5cf1dee5ec17ee31 +l1d-0 read 000000f97fae5cc0 00 0003 03 1 [MdW] adf40caecba14b7b +l2 write 00003be6b01765c0 00 0022 02 1 [MdW] 72c7e34d716ce2c3 +l1d-0 evict 00003be6b01765c0 00 0007 01 [IcR] 72c7e34d716ce2c3 +l2 write 0000792d5ad259c0 00 0030 04 1 [MdW] 817044232bfa184a +l2 read 0000792d5ad259c0 00 0030 04 1 [SdW] 817044232bfa184a +l1d-0 read 0000792d5ad259c0 00 0007 01 0 [ScR] 817044232bfa184a +l1d-0 read 000049afd5e02b40 00 0013 00 1 [MdW] 0d73762cec20ec64 +l1d-1 read 0000fc3d1a588d00 00 0004 01 1 [ScR] 20d6291b6fceeaa3 +l1d-1 read 0000095a29bb9340 00 0013 00 1 [MdW] cd5095ef84be60be +l2 write 0000f2231ef84f80 00 0008 05 1 [MdW] 794119a0f1a9513d +l1d-1 evict 0000f2231ef84f80 00 0014 02 [IcR] 794119a0f1a9513d +l2 read 0000b1312a1f2f80 00 0026 00 1 [MdW] 63f4a195a598fedc +l1d-1 write 0000b1312a1f2f80 00 0014 02 0 [MdW] 3c9e34fba44c1163 +l1i-1 read 00001cff7cd11500 00 0004 00 1 [ScR] 6b0180ad5bfc6aa3 +l1d-1 read 000025cc871abf00 00 0012 00 1 [MdW] a534b1f80fab5047 +l1d-0 read 0000b78d2a790900 00 0004 01 1 [MdW] efe31bf8541a673f +l1d-0 write 000063036c943940 00 0005 03 1 [MdW] db4ca61caef1d720 +l2 write 00006bf6751e90c0 00 0022 06 1 [MdW] 3c0c3449cec62aac +l2 read 00006bf6751e90c0 00 0022 06 1 [SdW] 3c0c3449cec62aac +l1i-1 read 00006bf6751e90c0 00 0003 00 0 [ScR] 3c0c3449cec62aac +l1d-1 read 000049889647d200 00 0008 00 1 [MdW] 47834119196c606b +l1d-1 evict 00006d3f203d79c0 00 0007 00 [IcR] 6e8f92dc574cb465 +l2 read 00008edcd3eccdc0 00 0008 02 1 [SdW] 62582b34270ac5fc +l1d-1 read 00008edcd3eccdc0 00 0007 00 0 [ScR] 62582b34270ac5fc +l1d-1 read 0000d3afe5d1ca40 00 0009 02 1 [MdW] bb3721a1166e6ecf +l2 write 0000d9b688e86700 00 0029 04 1 [MdW] 9cff86c4f5d7b689 +l1d-0 evict 0000d9b688e86700 00 0012 03 [IcR] 9cff86c4f5d7b689 +mem read 000046663e4def00 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000046663e4def00 00 0029 03 0 [McW] 0000000000000000 +l1d-0 write 000046663e4def00 00 0012 03 0 [MdW] 770f259328cec622 +l1d-0 read 0000792d5ad259c0 00 0007 01 1 [ScR] 817044232bfa184a +l2 write 0000c0773417d200 00 0019 06 1 [MdW] 01c0de693ddfa9f2 +l1d-1 evict 0000c0773417d200 00 0008 01 [IcR] 01c0de693ddfa9f2 +mem read 00002bcb521f5a00 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00002bcb521f5a00 00 0014 01 0 [McW] 0000000000000000 +l1d-1 write 00002bcb521f5a00 00 0008 01 0 [MdW] 52eb0cd4b20154b4 +l1d-0 read 0000c477f06039c0 00 0007 03 1 [ScR] 07a43d1b05d30814 +l2 write 000039a6b2ebcd00 00 0009 02 1 [MdW] eef3a60d9033465c +l1d-1 evict 000039a6b2ebcd00 00 0004 03 [IcR] eef3a60d9033465c +l2 read 00001fd6787ba100 00 0002 00 1 [SdW] df1b827b0bffd943 +l1d-1 read 00001fd6787ba100 00 0004 03 0 [ScR] df1b827b0bffd943 +l1d-0 read 000035b33dc0d400 00 0000 02 1 [ScR] b3fa26fb2bb1072d +l1d-0 read 00003c43977d6040 00 0001 03 1 [MdW] 4230a216503f3385 +l1d-1 write 0000d99af3531440 00 0001 00 1 [MdW] 04a8f0e2708cd718 +l1d-0 read 000000f97fae5cc0 00 0003 03 1 [MdW] adf40caecba14b7b +l1d-0 read 000073f8f4229a80 00 0010 03 1 [MdW] 31d6fa0a53f18b41 +l2 write 0000b17eb0082080 00 0006 02 1 [MdW] d9a4ae41c0817096 +l1d-1 evict 0000b17eb0082080 00 0002 01 [IcR] d9a4ae41c0817096 +mem read 00002a2ab265e880 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 00002a2ab265e880 00 0008 06 0 [McW] 0000000000000000 +l1d-1 write 00002a2ab265e880 00 0002 01 0 [MdW] b3863dc2a64fad71 +l1i-1 read 00006bf6751e90c0 00 0003 00 1 [ScR] 3c0c3449cec62aac +l1d-0 read 000052d61b6d5a00 00 0008 00 1 [MdW] 30b94c7c50299b8f +l1d-0 read 00009fde26f888c0 00 0003 02 1 [ScR] e1b5104d91b6911e +l1d-0 read 000000f97fae5cc0 00 0003 03 1 [MdW] adf40caecba14b7b +l1d-1 read 0000bb75517c9b80 00 0014 03 1 [MdW] e09e57bfd05f4979 +l1d-1 write 00003bd14ab212c0 00 0011 02 1 [MdW] 8d8266d149cbeb7c +l2 read 00000b438aedb2c0 00 0016 06 1 [MdW] f960a061cdcbd97f +l1d-1 write 00000b438aedb2c0 00 0011 03 0 [MdW] 85821dd1a70a78e0 +l2 write 0000a0082dda2840 00 0019 01 1 [MdW] e32363faf3579882 +l1d-1 evict 0000a0082dda2840 00 0001 01 [IcR] e32363faf3579882 +mem read 000034ffc92a8040 -1 -001 -1 1 [McW] 0000000000000000 +l2 read 000034ffc92a8040 00 0016 02 0 [McW] 0000000000000000 +l1d-1 write 000034ffc92a8040 00 0001 01 0 [MdW] f4bde5c2fcdd2d2b +l1d-1 evict 000095996286e640 00 0009 01 [IcR] f1b509cda89b9e6b +l2 read 0000c1546879c240 00 0003 04 1 [SdW] 000a8f23aa537d49 +l1d-1 read 0000c1546879c240 00 0009 01 0 [ScR] 000a8f23aa537d49 +l1d-0 read 0000ade5546e9640 00 0009 01 1 [ScR] 5209bc09f2897536 From 3dd9d5736cdd0253770d912c449c35abb9d8b7bc Mon Sep 17 00:00:00 2001 From: wangzd12138 Date: Fri, 20 Sep 2024 16:40:13 +0800 Subject: [PATCH 22/23] remove unnecessary head file --- cache/coherence.hpp | 1 - 1 file changed, 1 deletion(-) diff --git a/cache/coherence.hpp b/cache/coherence.hpp index 462b2d5..fb2abe9 100644 --- a/cache/coherence.hpp +++ b/cache/coherence.hpp @@ -6,7 +6,6 @@ #include "cache/slicehash.hpp" #include #include -#include ///////////////////////////////// // Priority of transactions (only useful for multithread simulation): From ec099cc6dbe2ceeb58fc100e7baa1a2d79cc8acb Mon Sep 17 00:00:00 2001 From: wangzd12138 Date: Fri, 20 Sep 2024 17:25:26 +0800 Subject: [PATCH 23/23] pass regression test under -Werror --- cache/dynamic_random.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cache/dynamic_random.hpp b/cache/dynamic_random.hpp index e48ca0d..9aeb39b 100644 --- a/cache/dynamic_random.hpp +++ b/cache/dynamic_random.hpp @@ -108,7 +108,9 @@ class InnerCohPortRemapT : public InnerCohPortTsize(); + auto [p, s, w] = cache->size(); + uint32_t P, nset, nway; + std::tie(P, nset, nway) = std::make_tuple(static_cast(p), static_cast(s), static_cast(w)); cache->monitors->pause(); static_cast(cache)->remap_start(); for(uint32_t ai = 0; ai < P; ai++){