Javier Cano-Cano has submitted this change and it was merged. (
https://gem5-review.googlesource.com/2380 )
Change subject: ruby: Fix MOESI_CMP_directory for new DMA status changes.
......................................................................
ruby: Fix MOESI_CMP_directory for 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]>
Reviewed-on: https://gem5-review.googlesource.com/2380
Reviewed-by: Jason Lowe-Power <[email protected]>
Reviewed-by: Michael LeBeane <[email protected]>
Maintainer: Jason Lowe-Power <[email protected]>
---
M src/mem/protocol/MOESI_CMP_directory-dma.sm
1 file changed, 15 insertions(+), 0 deletions(-)
Approvals:
Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved
Michael LeBeane: Looks good to me, but someone else must approve
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: merged
Gerrit-Change-Id: I700d441d76556b7e77e0d507904af6ec6ba59cc2
Gerrit-Change-Number: 2380
Gerrit-PatchSet: 4
Gerrit-Owner: Javier Cano-Cano <[email protected]>
Gerrit-Reviewer: Jason Lowe-Power <[email protected]>
Gerrit-Reviewer: Javier Cano-Cano <[email protected]>
Gerrit-Reviewer: Michael LeBeane <[email protected]>
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev