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;