changeset b6b4d41ba9b9 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=b6b4d41ba9b9
description:
        cache: don't allow dirty data in the i-cache

        removes the optimization that forwards an exclusive copy to a requester 
on a
        read, only for the i-cache. this optimization isn't necessary because we
        typically won't be writing to the i-cache.

diffstat:

 src/mem/cache/cache_impl.hh |  6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diffs (23 lines):

diff -r 8423aa8c2216 -r b6b4d41ba9b9 src/mem/cache/cache_impl.hh
--- a/src/mem/cache/cache_impl.hh       Fri Jul 27 16:08:04 2012 -0400
+++ b/src/mem/cache/cache_impl.hh       Fri Jul 27 16:08:04 2012 -0400
@@ -172,7 +172,7 @@
                 // on ReadExReq we give up our copy unconditionally
                 tags->invalidateBlk(blk);
             } else if (blk->isWritable() && !pending_downgrade
-                       && !pkt->sharedAsserted()) {
+                      && !pkt->sharedAsserted() && !pkt->req->isInstFetch()) {
                 // we can give the requester an exclusive copy (by not
                 // asserting shared line) on a read request if:
                 // - we have an exclusive copy at this level (& below)
@@ -180,7 +180,9 @@
                 //   signaling another read request
                 // - no other cache above has a copy (otherwise it
                 //   would have asseretd shared line on request)
-                
+                // - we are not satisfying an instruction fetch (this
+                //   prevents dirty data in the i-cache)
+
                 if (blk->isDirty()) {
                     // special considerations if we're owner:
                     if (!deferred_response && !isTopLevel) {
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to