diff options
Diffstat (limited to 'src/mem/ruby/structures/CacheMemory.cc')
-rw-r--r-- | src/mem/ruby/structures/CacheMemory.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/mem/ruby/structures/CacheMemory.cc b/src/mem/ruby/structures/CacheMemory.cc index d08724cff..e444ae09c 100644 --- a/src/mem/ruby/structures/CacheMemory.cc +++ b/src/mem/ruby/structures/CacheMemory.cc @@ -63,6 +63,7 @@ CacheMemory::CacheMemory(const Params *p) m_latency = p->latency; m_cache_assoc = p->assoc; m_replacementPolicy_ptr = p->replacement_policy; + m_replacementPolicy_ptr->setCache(this); m_start_index_bit = p->start_index_bit; m_is_instruction_only_cache = p->is_icache; m_resource_stalls = p->resourceStalls; @@ -592,3 +593,15 @@ CacheMemory::checkResourceAvailable(CacheResourceType res, Address addr) return true; } } + +bool +CacheMemory::isBlockInvalid(int64 cache_set, int64 loc) +{ + return (m_cache[cache_set][loc]->m_Permission == AccessPermission_Invalid); +} + +bool +CacheMemory::isBlockNotBusy(int64 cache_set, int64 loc) +{ + return (m_cache[cache_set][loc]->m_Permission != AccessPermission_Busy); +} |