changeset 19a654839a04 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=19a654839a04
description:
        MOESI_hammer: minor fixes to full-bit dir

diffstat:

 src/mem/protocol/MOESI_hammer-dir.sm |  8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diffs (39 lines):

diff -r 5f69f1b0039e -r 19a654839a04 src/mem/protocol/MOESI_hammer-dir.sm
--- a/src/mem/protocol/MOESI_hammer-dir.sm      Sat Mar 19 14:17:48 2011 -0700
+++ b/src/mem/protocol/MOESI_hammer-dir.sm      Sat Mar 19 14:17:48 2011 -0700
@@ -186,7 +186,7 @@
   }
 
   PfEntry getProbeFilterEntry(Address addr), return_by_pointer="yes" {
-    if(probe_filter_enabled) {
+    if (probe_filter_enabled || full_bit_dir_enabled) {
       PfEntry pfEntry := static_cast(PfEntry, "pointer", 
probeFilter.lookup(addr));
       return pfEntry;
     }
@@ -200,8 +200,6 @@
       if (probe_filter_enabled || full_bit_dir_enabled) {
         if (is_valid(pf_entry)) {
           assert(pf_entry.PfState == getDirectoryEntry(addr).DirectoryState);
-        } else {
-          assert(getDirectoryEntry(addr).DirectoryState == State:E);
         }
       }
       return getDirectoryEntry(addr).DirectoryState;
@@ -219,6 +217,9 @@
       if (state == State:NX || state == State:NO || state == State:S || state 
== State:O) {
         assert(is_valid(pf_entry));
       }
+      if (state == State:E) {
+        assert(is_valid(pf_entry) == false);
+      }
     }
     if (state == State:E || state == State:NX || state == State:NO || state == 
State:S || 
         state == State:O) {
@@ -469,6 +470,7 @@
       peek(requestQueue_in, RequestMsg) {
         set_cache_entry(probeFilter.allocate(address, new PfEntry));
         cache_entry.Owner := in_msg.Requestor;
+        cache_entry.Sharers.setSize(machineCount(MachineType:L1Cache));
       }
     }
   }
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to