Javier Cano-Cano has uploaded this change for review. (
https://gem5-review.googlesource.com/2380
Change subject: ruby: Fix MOESI_CMP_directory protocol to support the new
DMA status changes. Multiple outstanding DMA requests introduced new DMA
states that didn't be considered into slicc code. This patch implements the
missed DMA state changes on MOESI_CMP_directory protocol.
......................................................................
ruby: Fix MOESI_CMP_directory protocol to support the new DMA status
changes.
Multiple outstanding DMA requests introduced new DMA states that didn't
be considered into slicc code. This patch implements the missed DMA state
changes on MOESI_CMP_directory protocol.
Change-Id: I700d441d76556b7e77e0d507904af6ec6ba59cc2
Signed-off-by: Michael LeBeane <[email protected]>
---
M src/mem/protocol/MOESI_CMP_directory-dma.sm
1 file changed, 15 insertions(+), 0 deletions(-)
diff --git a/src/mem/protocol/MOESI_CMP_directory-dma.sm
b/src/mem/protocol/MOESI_CMP_directory-dma.sm
index ccc7f87..b9da0d0 100644
--- a/src/mem/protocol/MOESI_CMP_directory-dma.sm
+++ b/src/mem/protocol/MOESI_CMP_directory-dma.sm
@@ -77,6 +77,7 @@
Tick clockEdge();
void set_tbe(TBE b);
void unset_tbe();
+ void wakeUpAllBuffers();
State getState(TBE tbe, Addr addr) {
return cur_state;
@@ -249,6 +250,13 @@
unset_tbe();
}
+ action(zz_stallAndWaitRequestQueue, "zz", desc="...") {
+ stall_and_wait(dmaRequestQueue_in, address);
+ }
+
+ action(wkad_wakeUpAllDependents, "wkad", desc="wake-up all dependents") {
+ wakeUpAllBuffers();
+ }
transition(READY, ReadRequest, BUSY_RD) {
s_sendReadRequest;
@@ -269,6 +277,7 @@
//u_updateAckCount;
//o_checkForCompletion;
p_popResponseQueue;
+ wkad_wakeUpAllDependents;
}
transition(BUSY_RD, All_Acks, READY) {
@@ -276,6 +285,7 @@
//u_sendExclusiveUnblockToDir;
w_deallocateTBE;
p_popTriggerQueue;
+ wkad_wakeUpAllDependents;
}
transition(READY, WriteRequest, BUSY_WR) {
@@ -301,5 +311,10 @@
u_sendExclusiveUnblockToDir;
w_deallocateTBE;
p_popTriggerQueue;
+ wkad_wakeUpAllDependents;
+ }
+
+ transition({BUSY_RD,BUSY_WR}, {ReadRequest,WriteRequest}) {
+ zz_stallAndWaitRequestQueue;
}
}
--
To view, visit https://gem5-review.googlesource.com/2380
To unsubscribe, visit https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I700d441d76556b7e77e0d507904af6ec6ba59cc2
Gerrit-Change-Number: 2380
Gerrit-PatchSet: 1
Gerrit-Owner: Javier Cano-Cano <[email protected]>
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev