int AckCount, default="0", desc="number of acks in this message";
MessageSizeType MessageSize, desc="size category of the message";
}
-
-
WRITEBACK, desc="Generic writeback (contains data)";
}
-// TriggerType
-enumeration(TriggerType, desc="...") {
- ALL_ACKS, desc="See corresponding event";
-}
-
-// TriggerMsg
-structure(TriggerMsg, desc="...", interface="Message") {
- Address Address, desc="Physical address for this request";
- TriggerType Type, desc="Type of trigger";
-}
-
// RequestMsg (and also forwarded requests)
structure(RequestMsg, desc="...", interface="NetworkMessage") {
Address Address, desc="Physical address for this request";
{
// ** IN QUEUES **
- MessageBuffer foo1, network="From", virtual_network="0", ordered="false", vnet_type="foo"; // a mod-L2 bank -> this Dir
MessageBuffer requestToDir, network="From", virtual_network="1", ordered="false", vnet_type="request"; // a mod-L2 bank -> this Dir
MessageBuffer responseToDir, network="From", virtual_network="2", ordered="false", vnet_type="response"; // a mod-L2 bank -> this Dir
- MessageBuffer goo1, network="To", virtual_network="0", ordered="false", vnet_type="goo";
MessageBuffer forwardFromDir, network="To", virtual_network="1", ordered="false", vnet_type="forward";
MessageBuffer responseFromDir, network="To", virtual_network="2", ordered="false", vnet_type="response"; // Dir -> mod-L2 bank
out_port(forwardNetwork_out, RequestMsg, forwardFromDir);
out_port(responseNetwork_out, ResponseMsg, responseFromDir);
// out_port(requestQueue_out, ResponseMsg, requestFromDir); // For recycling requests
- out_port(goo1_out, ResponseMsg, goo1);
out_port(memQueue_out, MemoryMsg, memBuffer);
// ** IN_PORTS **
- in_port(foo1_in, ResponseMsg, foo1) {
-
- }
-
- // in_port(unblockNetwork_in, ResponseMsg, unblockToDir) {
- // if (unblockNetwork_in.isReady()) {
in_port(unblockNetwork_in, ResponseMsg, responseToDir) {
if (unblockNetwork_in.isReady()) {
peek(unblockNetwork_in, ResponseMsg) {
int request_latency = 14,
int response_latency = 14
{
-
- MessageBuffer goo1, network="From", virtual_network="0", ordered="false", vnet_type="goo";
- MessageBuffer goo2, network="From", virtual_network="1", ordered="false", vnet_type="goo";
MessageBuffer responseFromDir, network="From", virtual_network="2", ordered="false", vnet_type="response";
- MessageBuffer foo1, network="To", virtual_network="0", ordered="false", vnet_type="foo";
MessageBuffer reqToDir, network="To", virtual_network="1", ordered="false", vnet_type="request";
MessageBuffer respToDir, network="To", virtual_network="2", ordered="false", vnet_type="dmaresponse";
out_port(reqToDirectory_out, RequestMsg, reqToDir, desc="...");
out_port(respToDirectory_out, ResponseMsg, respToDir, desc="...");
- out_port(foo1_out, ResponseMsg, foo1, desc="...");
out_port(triggerQueue_out, TriggerMsg, triggerQueue, desc="...");
- in_port(goo1_in, RequestMsg, goo1) {
- if (goo1_in.isReady()) {
- peek(goo1_in, RequestMsg) {
- assert(false);
- }
- }
- }
-
- in_port(goo2_in, RequestMsg, goo2) {
- if (goo2_in.isReady()) {
- peek(goo2_in, RequestMsg) {
- assert(false);
- }
- }
- }
-
in_port(dmaRequestQueue_in, SequencerMsg, mandatoryQueue, desc="...") {
if (dmaRequestQueue_in.isReady()) {
peek(dmaRequestQueue_in, SequencerMsg) {
int Acks, desc="How many acks to expect";
MessageSizeType MessageSize, desc="size category of the message";
}
-
-
INV, desc="L1 informing L2 of loss of all tokens";
}
-// TriggerType
-enumeration(TriggerType, desc="...") {
- REQUEST_TIMEOUT, desc="See corresponding event";
- USE_TIMEOUT, desc="See corresponding event";
- DATA, desc="data for dma read response";
- DATA_ALL_TOKENS, desc="data and all tokens for dma write response";
-}
-
-// TriggerMsg
-structure(TriggerMsg, desc="...", interface="Message") {
- Address Address, desc="Physical address for this request";
- TriggerType Type, desc="Type of trigger";
-}
-
// PersistentMsg
structure(PersistentMsg, desc="...", interface="NetworkMessage") {
Address Address, desc="Physical address for this request";
DataBlock DataBlk, desc="data for the cache line";
MessageSizeType MessageSize, desc="size category of the message";
}
-
-
-enumeration(DMARequestType, desc="...", default="DMARequestType_NULL") {
- READ, desc="Memory Read";
- WRITE, desc="Memory Write";
- NULL, desc="Invalid";
-}
-
-enumeration(DMAResponseType, desc="...", default="DMAResponseType_NULL") {
- DATA, desc="DATA read";
- ACK, desc="ACK write";
- NULL, desc="Invalid";
-}
-
-structure(DMARequestMsg, desc="...", interface="NetworkMessage") {
- DMARequestType Type, desc="Request type (read/write)";
- Address PhysicalAddress, desc="Physical address for this request";
- Address LineAddress, desc="Line address for this request";
- NetDest Destination, desc="Destination";
- DataBlock DataBlk, desc="DataBlk attached to this request";
- int Len, desc="The length of the request";
- MessageSizeType MessageSize, desc="size category of the message";
-}
-
-structure(DMAResponseMsg, desc="...", interface="NetworkMessage") {
- DMAResponseType Type, desc="Response type (DATA/ACK)";
- Address PhysicalAddress, desc="Physical address for this request";
- Address LineAddress, desc="Line address for this request";
- NetDest Destination, desc="Destination";
- DataBlock DataBlk, desc="DataBlk attached to this request";
- MessageSizeType MessageSize, desc="size category of the message";
-}
-
-