summaryrefslogtreecommitdiff
path: root/src/mem/cache/tags/split_lru.cc
diff options
context:
space:
mode:
authorRon Dreslinski <rdreslin@umich.edu>2006-06-30 10:25:25 -0400
committerRon Dreslinski <rdreslin@umich.edu>2006-06-30 10:25:25 -0400
commit335fa4bde33f60bf61dceb04eb61aeade5cee76c (patch)
treeb6c498b7a30685110d14fc065c0689532090a7c8 /src/mem/cache/tags/split_lru.cc
parenteafb5c4936f7d3233c223d69b435c6be360bbfb2 (diff)
downloadgem5-335fa4bde33f60bf61dceb04eb61aeade5cee76c.tar.xz
All files compile in the mem directory except cache_builder
Missing some functionality (like split caches and copy support) src/SConscript: Typo src/mem/cache/prefetch/base_prefetcher.cc: src/mem/cache/prefetch/ghb_prefetcher.hh: src/mem/cache/prefetch/stride_prefetcher.hh: src/mem/cache/prefetch/tagged_prefetcher_impl.hh: src/mem/cache/tags/fa_lru.cc: src/mem/cache/tags/fa_lru.hh: src/mem/cache/tags/iic.cc: src/mem/cache/tags/iic.hh: src/mem/cache/tags/lru.cc: src/mem/cache/tags/lru.hh: src/mem/cache/tags/split.cc: src/mem/cache/tags/split.hh: src/mem/cache/tags/split_lifo.cc: src/mem/cache/tags/split_lifo.hh: src/mem/cache/tags/split_lru.cc: src/mem/cache/tags/split_lru.hh: src/mem/packet.hh: src/mem/request.hh: Fix so it compiles --HG-- extra : convert_revision : 0d87d84f6e9445bab655c0cb0f8541bbf6eab904
Diffstat (limited to 'src/mem/cache/tags/split_lru.cc')
-rw-r--r--src/mem/cache/tags/split_lru.cc18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/mem/cache/tags/split_lru.cc b/src/mem/cache/tags/split_lru.cc
index 4b7f4c114..7fc742001 100644
--- a/src/mem/cache/tags/split_lru.cc
+++ b/src/mem/cache/tags/split_lru.cc
@@ -135,7 +135,7 @@ SplitLRU::SplitLRU(int _numSets, int _blkSize, int _assoc, int _hit_latency, int
// table; won't matter because the block is invalid
blk->tag = j;
blk->whenReady = 0;
- blk->req->asid = -1;
+ blk->asid = -1;
blk->isTouched = false;
blk->size = blkSize;
sets[i].blks[j]=blk;
@@ -206,8 +206,8 @@ SplitLRU::findBlock(Addr addr, int asid, int &lat)
SplitBlk*
SplitLRU::findBlock(Packet * &pkt, int &lat)
{
- Addr addr = pkt->paddr;
- int asid = pkt->req->asid;
+ Addr addr = pkt->getAddr();
+ int asid = pkt->req->getAsid();
Addr tag = extractTag(addr);
unsigned set = extractSet(addr);
@@ -236,16 +236,15 @@ SplitLRU::findBlock(Addr addr, int asid) const
}
SplitBlk*
-SplitLRU::findReplacement(Packet * &pkt, PacketList* &writebacks,
+SplitLRU::findReplacement(Packet * &pkt, PacketList &writebacks,
BlkList &compress_blocks)
{
- unsigned set = extractSet(pkt->paddr);
+ unsigned set = extractSet(pkt->getAddr());
// grab a replacement candidate
SplitBlk *blk = sets[set].blks[assoc-1];
sets[set].moveToHead(blk);
if (blk->isValid()) {
- int req->setThreadNum() = (blk->xc) ? blk->xc->getThreadNum() : 0;
- replacements[req->getThreadNum()]++;
+ replacements[0]++;
totalRefs += blk->refCount;
++sampledRefs;
blk->refCount = 0;
@@ -275,8 +274,10 @@ SplitLRU::invalidateBlk(int asid, Addr addr)
}
void
-SplitLRU::doCopy(Addr source, Addr dest, int asid, PacketList* &writebacks)
+SplitLRU::doCopy(Addr source, Addr dest, int asid, PacketList &writebacks)
{
+//Copy not supported for now
+#if 0
assert(source == blkAlign(source));
assert(dest == blkAlign(dest));
SplitBlk *source_blk = findBlock(source, asid);
@@ -317,6 +318,7 @@ SplitLRU::doCopy(Addr source, Addr dest, int asid, PacketList* &writebacks)
if (cache->doData()) {
memcpy(dest_blk->data, source_blk->data, blkSize);
}
+#endif
}
void