hammer: fixed dma uniproc error
authorBrad Beckmann <Brad.Beckmann@amd.com>
Fri, 1 Apr 2011 22:50:23 +0000 (15:50 -0700)
committerBrad Beckmann <Brad.Beckmann@amd.com>
Fri, 1 Apr 2011 22:50:23 +0000 (15:50 -0700)
Fixed an error reguarding DMA for uninprocessor systems.  Basically removed an
overly agressive optimization that lead to inconsistent state between the
cache and the directory.

src/mem/protocol/MOESI_hammer-cache.sm

index 546160b734d87061bf93887694623d0c7469a8aa..06c9ea76b65be6995c5fe50af65cd4de4d332f6e 100644 (file)
@@ -1532,8 +1532,8 @@ machine(L1Cache, "AMD Hammer-like protocol")
     l_popForwardQueue;
   }
   
-  transition(MM, NC_DMA_GETS) {
-    c_sendExclusiveData;
+  transition(MM, NC_DMA_GETS, O) {
+    ee_sendDataShared;
     l_popForwardQueue;
   }
   
@@ -1575,7 +1575,7 @@ machine(L1Cache, "AMD Hammer-like protocol")
     l_popForwardQueue;
   }
 
-  transition(M, NC_DMA_GETS) {
+  transition(M, NC_DMA_GETS, O) {
     ee_sendDataShared;
     l_popForwardQueue;
   }
@@ -1933,8 +1933,8 @@ machine(L1Cache, "AMD Hammer-like protocol")
     l_popForwardQueue;
   }
 
-  transition(MM_F, NC_DMA_GETS) {
-    ct_sendExclusiveDataFromTBE;
+  transition(MM_F, NC_DMA_GETS, OM_F) {
+    sq_sendSharedDataFromTBEToCache;
     l_popForwardQueue;
   }