ruby: cache memory: drop {try,test}CacheAccess functions
This commit is contained in:
parent
5060e572ca
commit
a706b6259a
2 changed files with 0 additions and 59 deletions
|
@ -158,56 +158,6 @@ CacheMemory::getAddressAtIdx(int idx) const
|
||||||
return entry->m_Address;
|
return entry->m_Address;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
|
||||||
CacheMemory::tryCacheAccess(Addr address, RubyRequestType type,
|
|
||||||
DataBlock*& data_ptr)
|
|
||||||
{
|
|
||||||
assert(address == makeLineAddress(address));
|
|
||||||
DPRINTF(RubyCache, "address: %s\n", address);
|
|
||||||
int64_t cacheSet = addressToCacheSet(address);
|
|
||||||
int loc = findTagInSet(cacheSet, address);
|
|
||||||
if (loc != -1) {
|
|
||||||
// Do we even have a tag match?
|
|
||||||
AbstractCacheEntry* entry = m_cache[cacheSet][loc];
|
|
||||||
m_replacementPolicy_ptr->touch(cacheSet, loc, curTick());
|
|
||||||
data_ptr = &(entry->getDataBlk());
|
|
||||||
|
|
||||||
if (entry->m_Permission == AccessPermission_Read_Write) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if ((entry->m_Permission == AccessPermission_Read_Only) &&
|
|
||||||
(type == RubyRequestType_LD || type == RubyRequestType_IFETCH)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
// The line must not be accessible
|
|
||||||
}
|
|
||||||
data_ptr = NULL;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
CacheMemory::testCacheAccess(Addr address, RubyRequestType type,
|
|
||||||
DataBlock*& data_ptr)
|
|
||||||
{
|
|
||||||
assert(address == makeLineAddress(address));
|
|
||||||
DPRINTF(RubyCache, "address: %s\n", address);
|
|
||||||
int64_t cacheSet = addressToCacheSet(address);
|
|
||||||
int loc = findTagInSet(cacheSet, address);
|
|
||||||
|
|
||||||
if (loc != -1) {
|
|
||||||
// Do we even have a tag match?
|
|
||||||
AbstractCacheEntry* entry = m_cache[cacheSet][loc];
|
|
||||||
m_replacementPolicy_ptr->touch(cacheSet, loc, curTick());
|
|
||||||
data_ptr = &(entry->getDataBlk());
|
|
||||||
|
|
||||||
return m_cache[cacheSet][loc]->m_Permission !=
|
|
||||||
AccessPermission_NotPresent;
|
|
||||||
}
|
|
||||||
|
|
||||||
data_ptr = NULL;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// tests to see if an address is present in the cache
|
// tests to see if an address is present in the cache
|
||||||
bool
|
bool
|
||||||
CacheMemory::isTagPresent(Addr address) const
|
CacheMemory::isTagPresent(Addr address) const
|
||||||
|
|
|
@ -56,15 +56,6 @@ class CacheMemory : public SimObject
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
// Public Methods
|
|
||||||
// perform a cache access and see if we hit or not. Return true on a hit.
|
|
||||||
bool tryCacheAccess(Addr address, RubyRequestType type,
|
|
||||||
DataBlock*& data_ptr);
|
|
||||||
|
|
||||||
// similar to above, but doesn't require full access check
|
|
||||||
bool testCacheAccess(Addr address, RubyRequestType type,
|
|
||||||
DataBlock*& data_ptr);
|
|
||||||
|
|
||||||
// tests to see if an address is present in the cache
|
// tests to see if an address is present in the cache
|
||||||
bool isTagPresent(Addr address) const;
|
bool isTagPresent(Addr address) const;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue