summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mem/protocol/MI_example-dir.sm12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/mem/protocol/MI_example-dir.sm b/src/mem/protocol/MI_example-dir.sm
index 9af1940f7..9502a40b4 100644
--- a/src/mem/protocol/MI_example-dir.sm
+++ b/src/mem/protocol/MI_example-dir.sm
@@ -361,6 +361,10 @@ machine(Directory, "Directory protocol")
requestQueue_in.recycle();
}
+ action(y_recycleDMARequestQueue, "y", desc="recycle dma request queue") {
+ dmaRequestQueue_in.recycle();
+ }
+
action(qf_queueMemoryFetchRequest, "qf", desc="Queue off-chip fetch request") {
peek(requestQueue_in, RequestMsg) {
@@ -449,14 +453,18 @@ machine(Directory, "Directory protocol")
// TRANSITIONS
- transition({M_DRD, M_DWR}, GETX) {
+ transition({M_DRD, M_DWR, M_DWRI}, GETX) {
z_recycleRequestQueue;
}
- transition({IM, MI, ID, ID_W}, {GETX, GETS, DMA_READ, DMA_WRITE, PUTX, PUTX_NotOwner} ) {
+ transition({IM, MI, ID, ID_W}, {GETX, GETS, PUTX, PUTX_NotOwner} ) {
z_recycleRequestQueue;
}
+ transition({IM, MI, ID, ID_W}, {DMA_READ, DMA_WRITE} ) {
+ y_recycleDMARequestQueue;
+ }
+
transition(I, GETX, IM) {
//d_sendData;
qf_queueMemoryFetchRequest;