Cache: Only invalidate a line in the cache when an uncacheable write is seen.

This commit is contained in:
Ali Saidi 2012-06-29 11:18:29 -04:00
parent 7e3496c78c
commit 8d1e56bdcd

View file

@ -275,7 +275,7 @@ Cache<TagStore>::access(PacketPtr pkt, BlkType *&blk,
if (pkt->req->isUncacheable()) { if (pkt->req->isUncacheable()) {
if (pkt->req->isClearLL()) { if (pkt->req->isClearLL()) {
tags->clearLocks(); tags->clearLocks();
} else { } else if (pkt->isWrite()) {
blk = tags->findBlock(pkt->getAddr()); blk = tags->findBlock(pkt->getAddr());
if (blk != NULL) { if (blk != NULL) {
tags->invalidateBlk(blk); tags->invalidateBlk(blk);
@ -439,7 +439,7 @@ Cache<TagStore>::timingAccess(PacketPtr pkt)
if (pkt->req->isUncacheable()) { if (pkt->req->isUncacheable()) {
if (pkt->req->isClearLL()) { if (pkt->req->isClearLL()) {
tags->clearLocks(); tags->clearLocks();
} else { } else if (pkt->isWrite()) {
BlkType *blk = tags->findBlock(pkt->getAddr()); BlkType *blk = tags->findBlock(pkt->getAddr());
if (blk != NULL) { if (blk != NULL) {
tags->invalidateBlk(blk); tags->invalidateBlk(blk);