From 8d1e56bdcd673fd3b1ddfd9ac82f7c1ded3110c4 Mon Sep 17 00:00:00 2001 From: Ali Saidi Date: Fri, 29 Jun 2012 11:18:29 -0400 Subject: Cache: Only invalidate a line in the cache when an uncacheable write is seen. --- src/mem/cache/cache_impl.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/mem/cache/cache_impl.hh b/src/mem/cache/cache_impl.hh index fec0a6222..2329b2ea6 100644 --- a/src/mem/cache/cache_impl.hh +++ b/src/mem/cache/cache_impl.hh @@ -275,7 +275,7 @@ Cache::access(PacketPtr pkt, BlkType *&blk, if (pkt->req->isUncacheable()) { if (pkt->req->isClearLL()) { tags->clearLocks(); - } else { + } else if (pkt->isWrite()) { blk = tags->findBlock(pkt->getAddr()); if (blk != NULL) { tags->invalidateBlk(blk); @@ -439,7 +439,7 @@ Cache::timingAccess(PacketPtr pkt) if (pkt->req->isUncacheable()) { if (pkt->req->isClearLL()) { tags->clearLocks(); - } else { + } else if (pkt->isWrite()) { BlkType *blk = tags->findBlock(pkt->getAddr()); if (blk != NULL) { tags->invalidateBlk(blk); -- cgit v1.2.3