Cache: Only invalidate a line in the cache when an uncacheable write is seen.
This commit is contained in:
parent
7e3496c78c
commit
8d1e56bdcd
1 changed files with 2 additions and 2 deletions
4
src/mem/cache/cache_impl.hh
vendored
4
src/mem/cache/cache_impl.hh
vendored
|
@ -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);
|
||||||
|
|
Loading…
Reference in a new issue