summaryrefslogtreecommitdiff
path: root/src/mem/cache/tags/lru.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/cache/tags/lru.hh')
-rw-r--r--src/mem/cache/tags/lru.hh48
1 files changed, 7 insertions, 41 deletions
diff --git a/src/mem/cache/tags/lru.hh b/src/mem/cache/tags/lru.hh
index ecd6e861f..be8d75b5a 100644
--- a/src/mem/cache/tags/lru.hh
+++ b/src/mem/cache/tags/lru.hh
@@ -45,42 +45,8 @@
#include "mem/packet.hh"
class BaseCache;
+class CacheSet;
-/**
- * LRU cache block.
- */
-class LRUBlk : public CacheBlk {
- public:
- /** Has this block been touched? Used to aid calculation of warmup time. */
- bool isTouched;
-};
-
-/**
- * An associative set of cache blocks.
- */
-class CacheSet
-{
- public:
- /** The associativity of this set. */
- int assoc;
-
- /** Cache blocks in this set, maintained in LRU order 0 = MRU. */
- LRUBlk **blks;
-
- /**
- * Find a block matching the tag in this set.
- * @param asid The address space ID.
- * @param tag The Tag to find.
- * @return Pointer to the block if found.
- */
- LRUBlk* findBlk(Addr tag) const;
-
- /**
- * Move the given block to the head of the list.
- * @param blk The block to move.
- */
- void moveToHead(LRUBlk *blk);
-};
/**
* A LRU cache tag store.
@@ -89,9 +55,9 @@ class LRU : public BaseTags
{
public:
/** Typedef the block type used in this tag store. */
- typedef LRUBlk BlkType;
+ typedef CacheBlk BlkType;
/** Typedef for a list of pointers to the local block class. */
- typedef std::list<LRUBlk*> BlkList;
+ typedef std::list<BlkType*> BlkList;
protected:
/** The number of sets in the cache. */
@@ -107,7 +73,7 @@ class LRU : public BaseTags
CacheSet *sets;
/** The cache blocks. */
- LRUBlk *blks;
+ BlkType *blks;
/** The data blocks, 1 per cache block. */
uint8_t *dataBlks;
@@ -172,7 +138,7 @@ public:
* @param lat The access latency.
* @return Pointer to the cache block if found.
*/
- LRUBlk* accessBlock(Addr addr, int &lat, int context_src);
+ BlkType* accessBlock(Addr addr, int &lat, int context_src);
/**
* Finds the given address in the cache, do not update replacement data.
@@ -181,7 +147,7 @@ public:
* @param asid The address space ID.
* @return Pointer to the cache block if found.
*/
- LRUBlk* findBlock(Addr addr) const;
+ BlkType* findBlock(Addr addr) const;
/**
* Find a block to evict for the address provided.
@@ -189,7 +155,7 @@ public:
* @param writebacks List for any writebacks to be performed.
* @return The candidate block.
*/
- LRUBlk* findVictim(Addr addr, PacketList &writebacks);
+ BlkType* findVictim(Addr addr, PacketList &writebacks);
/**
* Insert the new block into the cache. For LRU this means inserting into