changeset 409a2692b8e6 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=409a2692b8e6
description:
        MOESI_hammer: fixed dir bug counting received acks

diffstat:

 src/mem/protocol/MOESI_hammer-dir.sm |  13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

diffs (30 lines):

diff -r d9afb18a5008 -r 409a2692b8e6 src/mem/protocol/MOESI_hammer-dir.sm
--- a/src/mem/protocol/MOESI_hammer-dir.sm      Sun Feb 06 22:14:19 2011 -0800
+++ b/src/mem/protocol/MOESI_hammer-dir.sm      Sun Feb 06 22:14:19 2011 -0800
@@ -581,7 +581,13 @@
       // directory DMA requests must wait for acks from all LLC caches, so 
       // only decrement by 1.
       //
-      tbe.NumPendingMsgs := tbe.NumPendingMsgs - 1;
+      if ((in_msg.Type == CoherenceResponseType:DATA_SHARED) ||
+          (in_msg.Type == CoherenceResponseType:DATA) ||
+          (in_msg.Type == CoherenceResponseType:DATA_EXCLUSIVE)) {
+        tbe.NumPendingMsgs := tbe.NumPendingMsgs - 1;
+      } else {
+        tbe.NumPendingMsgs := tbe.NumPendingMsgs - in_msg.Acks;
+      }
       DPRINTF(RubySlicc, "%d\n", tbe.NumPendingMsgs);
     }
   }
@@ -591,11 +597,6 @@
       assert(is_valid(tbe));
       assert(in_msg.Type == CoherenceResponseType:UNBLOCKS);
       DPRINTF(RubySlicc, "%d\n", tbe.NumPendingMsgs);
-      //
-      // Note that cache data responses will have an ack count of 2.  However, 
-      // directory DMA requests must wait for acks from all LLC caches, so 
-      // only decrement by 1.
-      //
       tbe.NumPendingMsgs := tbe.NumPendingMsgs - 1;
       DPRINTF(RubySlicc, "%d\n", tbe.NumPendingMsgs);
     }
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to