protocol: made MI_example work with unordered networks
authorDerek Hower <drh5@cs.wisc.edu>
Fri, 11 Sep 2009 02:18:09 +0000 (21:18 -0500)
committerDerek Hower <drh5@cs.wisc.edu>
Fri, 11 Sep 2009 02:18:09 +0000 (21:18 -0500)
src/mem/protocol/MI_example-cache.sm

index 915a0eb999114ff891faffd1aa512ab02baf2db5..64771bac524bcb50f6a77bb5cdeb222b8bebc800 100644 (file)
@@ -17,6 +17,7 @@ machine(L1Cache, "MI Example L1 Cache")
     II, desc="Not Present/Invalid, issued PUT";
     M,  desc="Modified";
     MI,  desc="Modified, issued PUT";
+    MII, desc="Modified, issued PUTX, received nack";
 
     IS,  desc="Issued request for LOAD/IFETCH";
     IM,  desc="Issued request for STORE/ATOMIC";
@@ -388,6 +389,16 @@ machine(L1Cache, "MI Example L1 Cache")
     o_popForwardedRequestQueue;
   }
 
+  transition(MI, Writeback_Nack, MII) {
+    o_popForwardedRequestQueue;
+  }
+
+  transition(MII, Fwd_GETX, I) {
+    ee_sendDataFromTBE;
+    w_deallocateTBE;
+    o_popForwardedRequestQueue;
+  }
+
   transition(II, Writeback_Nack, I) {
     w_deallocateTBE;
     o_popForwardedRequestQueue;