summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mem/ruby/system/CacheMemory.cc10
-rw-r--r--src/mem/ruby/system/Sequencer.cc6
2 files changed, 7 insertions, 9 deletions
diff --git a/src/mem/ruby/system/CacheMemory.cc b/src/mem/ruby/system/CacheMemory.cc
index 9f1fe6320..393612355 100644
--- a/src/mem/ruby/system/CacheMemory.cc
+++ b/src/mem/ruby/system/CacheMemory.cc
@@ -339,12 +339,12 @@ CacheMemory::lookup(const Address& address) const
void
CacheMemory::setMRU(const Address& address)
{
- Index cacheSet;
+ Index cacheSet = addressToCacheSet(address);
+ int loc = findTagInSet(cacheSet, address);
- cacheSet = addressToCacheSet(address);
- m_replacementPolicy_ptr->
- touch(cacheSet, findTagInSet(cacheSet, address),
- g_eventQueue_ptr->getTime());
+ if(loc != -1)
+ m_replacementPolicy_ptr->
+ touch(cacheSet, loc, g_eventQueue_ptr->getTime());
}
void
diff --git a/src/mem/ruby/system/Sequencer.cc b/src/mem/ruby/system/Sequencer.cc
index 1cd54d45c..5f64a1ba4 100644
--- a/src/mem/ruby/system/Sequencer.cc
+++ b/src/mem/ruby/system/Sequencer.cc
@@ -482,11 +482,9 @@ Sequencer::hitCallback(SequencerRequest* srequest,
// Set this cache entry to the most recently used
if (type == RubyRequestType_IFETCH) {
- if (m_instCache_ptr->isTagPresent(request_line_address))
- m_instCache_ptr->setMRU(request_line_address);
+ m_instCache_ptr->setMRU(request_line_address);
} else {
- if (m_dataCache_ptr->isTagPresent(request_line_address))
- m_dataCache_ptr->setMRU(request_line_address);
+ m_dataCache_ptr->setMRU(request_line_address);
}
assert(g_eventQueue_ptr->getTime() >= issued_time);