diff options
Diffstat (limited to 'src/mem/ruby/structures/CacheMemory.cc')
-rw-r--r-- | src/mem/ruby/structures/CacheMemory.cc | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/mem/ruby/structures/CacheMemory.cc b/src/mem/ruby/structures/CacheMemory.cc index c802d8fb6..d08724cff 100644 --- a/src/mem/ruby/structures/CacheMemory.cc +++ b/src/mem/ruby/structures/CacheMemory.cc @@ -528,22 +528,32 @@ CacheMemory::regStats() ; } +// assumption: SLICC generated files will only call this function +// once **all** resources are granted void -CacheMemory::recordRequestType(CacheRequestType requestType) +CacheMemory::recordRequestType(CacheRequestType requestType, Address addr) { DPRINTF(RubyStats, "Recorded statistic: %s\n", CacheRequestType_to_string(requestType)); switch(requestType) { case CacheRequestType_DataArrayRead: + if (m_resource_stalls) + dataArray.reserve(addressToCacheSet(addr)); numDataArrayReads++; return; case CacheRequestType_DataArrayWrite: + if (m_resource_stalls) + dataArray.reserve(addressToCacheSet(addr)); numDataArrayWrites++; return; case CacheRequestType_TagArrayRead: + if (m_resource_stalls) + tagArray.reserve(addressToCacheSet(addr)); numTagArrayReads++; return; case CacheRequestType_TagArrayWrite: + if (m_resource_stalls) + tagArray.reserve(addressToCacheSet(addr)); numTagArrayWrites++; return; default: |