diff options
Diffstat (limited to 'src/mem/protocol/MESI_Two_Level-dma.sm')
-rw-r--r-- | src/mem/protocol/MESI_Two_Level-dma.sm | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/mem/protocol/MESI_Two_Level-dma.sm b/src/mem/protocol/MESI_Two_Level-dma.sm index 80c70c80a..e31832620 100644 --- a/src/mem/protocol/MESI_Two_Level-dma.sm +++ b/src/mem/protocol/MESI_Two_Level-dma.sm @@ -30,11 +30,12 @@ machine(DMA, "DMA Controller") : DMASequencer * dma_sequencer; Cycles request_latency := 6; -{ - - MessageBuffer responseFromDir, network="From", virtual_network="1", ordered="true", vnet_type="response"; - MessageBuffer reqToDirectory, network="To", virtual_network="0", ordered="false", vnet_type="request"; + MessageBuffer * responseFromDir, network="From", virtual_network="1", + ordered="true", vnet_type="response"; + MessageBuffer * requestToDir, network="To", virtual_network="0", + ordered="false", vnet_type="request"; +{ state_declaration(State, desc="DMA states", default="DMA_State_READY") { READY, AccessPermission:Invalid, desc="Ready to accept a new request"; BUSY_RD, AccessPermission:Busy, desc="Busy: currently processing a request"; @@ -74,7 +75,7 @@ machine(DMA, "DMA Controller") error("DMA does not support get data block."); } - out_port(reqToDirectory_out, RequestMsg, reqToDirectory, desc="..."); + out_port(requestToDir_out, RequestMsg, requestToDir, desc="..."); in_port(dmaRequestQueue_in, SequencerMsg, mandatoryQueue, desc="...") { if (dmaRequestQueue_in.isReady()) { @@ -106,7 +107,7 @@ machine(DMA, "DMA Controller") action(s_sendReadRequest, "s", desc="Send a DMA read request to memory") { peek(dmaRequestQueue_in, SequencerMsg) { - enqueue(reqToDirectory_out, RequestMsg, request_latency) { + enqueue(requestToDir_out, RequestMsg, request_latency) { out_msg.Addr := in_msg.PhysicalAddress; out_msg.Type := CoherenceRequestType:DMA_READ; out_msg.DataBlk := in_msg.DataBlk; @@ -119,7 +120,7 @@ machine(DMA, "DMA Controller") action(s_sendWriteRequest, "\s", desc="Send a DMA write request to memory") { peek(dmaRequestQueue_in, SequencerMsg) { - enqueue(reqToDirectory_out, RequestMsg, request_latency) { + enqueue(requestToDir_out, RequestMsg, request_latency) { out_msg.Addr := in_msg.PhysicalAddress; out_msg.Type := CoherenceRequestType:DMA_WRITE; out_msg.DataBlk := in_msg.DataBlk; |