summaryrefslogtreecommitdiff
path: root/src/mem/protocol/MOESI_hammer-dir.sm
diff options
context:
space:
mode:
authorBrad Beckmann <Brad.Beckmann@amd.com>2011-07-06 18:44:42 -0700
committerBrad Beckmann <Brad.Beckmann@amd.com>2011-07-06 18:44:42 -0700
commit4f833907812b50e8c6cce761d2f3c1f6fd07ae7b (patch)
tree0378ee06206a3be2bbc9569d60e155e5e93dd8a2 /src/mem/protocol/MOESI_hammer-dir.sm
parentda1eaaca0ec7f65525dd2706f4b6b207bf9ee691 (diff)
downloadgem5-4f833907812b50e8c6cce761d2f3c1f6fd07ae7b.tar.xz
MOESI_hammer: Fixed uniprocessor DMA bug
Diffstat (limited to 'src/mem/protocol/MOESI_hammer-dir.sm')
-rw-r--r--src/mem/protocol/MOESI_hammer-dir.sm14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/mem/protocol/MOESI_hammer-dir.sm b/src/mem/protocol/MOESI_hammer-dir.sm
index bb0a97ac4..a4f4bf17a 100644
--- a/src/mem/protocol/MOESI_hammer-dir.sm
+++ b/src/mem/protocol/MOESI_hammer-dir.sm
@@ -951,6 +951,20 @@ machine(Directory, "AMD Hammer-like protocol")
}
}
}
+ } else {
+ peek(requestQueue_in, RequestMsg) {
+ enqueue(responseNetwork_out, ResponseMsg, latency="1") {
+ out_msg.Address := address;
+ out_msg.Type := CoherenceResponseType:ACK;
+ out_msg.Sender := machineID;
+ out_msg.Destination.add(in_msg.Requestor);
+ out_msg.Dirty := false; // By definition, the block is now clean
+ out_msg.Acks := 0;
+ out_msg.SilentAcks := 0;
+ DPRINTF(RubySlicc, "%d\n", out_msg.Acks);
+ out_msg.MessageSize := MessageSizeType:Response_Control;
+ }
+ }
}
}