diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/MESI_CMP_directory-L1cache.sm --- a/src/mem/protocol/MESI_CMP_directory-L1cache.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/MESI_CMP_directory-L1cache.sm Sun May 08 23:41:33 2011 -0400 @@ -39,17 +39,17 @@ // NODE L1 CACHE // From this node's L1 cache TO the network // a local L1 -> this L2 bank, currently ordered with directory forwarded requests - MessageBuffer requestFromL1Cache, network="To", virtual_network="0", ordered="false"; + MessageBuffer requestFromL1Cache, network="To", virtual_network="0", ordered="false", vnet_type="request"; // a local L1 -> this L2 bank - MessageBuffer responseFromL1Cache, network="To", virtual_network="1", ordered="false"; - MessageBuffer unblockFromL1Cache, network="To", virtual_network="2", ordered="false"; + MessageBuffer responseFromL1Cache, network="To", virtual_network="1", ordered="false", vnet_type="response"; + MessageBuffer unblockFromL1Cache, network="To", virtual_network="2", ordered="false", vnet_type="unblock"; // To this node's L1 cache FROM the network // a L2 bank -> this L1 - MessageBuffer requestToL1Cache, network="From", virtual_network="0", ordered="false"; + MessageBuffer requestToL1Cache, network="From", virtual_network="0", ordered="false", vnet_type="request"; // a L2 bank -> this L1 - MessageBuffer responseToL1Cache, network="From", virtual_network="1", ordered="false"; + MessageBuffer responseToL1Cache, network="From", virtual_network="1", ordered="false", vnet_type="response"; // STATES state_declaration(State, desc="Cache states", default="L1Cache_State_I") { diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/MESI_CMP_directory-L2cache.sm --- a/src/mem/protocol/MESI_CMP_directory-L2cache.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/MESI_CMP_directory-L2cache.sm Sun May 08 23:41:33 2011 -0400 @@ -40,15 +40,15 @@ { // L2 BANK QUEUES // From local bank of L2 cache TO the network - MessageBuffer DirRequestFromL2Cache, network="To", virtual_network="0", ordered="false"; // this L2 bank -> Memory - MessageBuffer L1RequestFromL2Cache, network="To", virtual_network="0", ordered="false"; // this L2 bank -> a local L1 - MessageBuffer responseFromL2Cache, network="To", virtual_network="1", ordered="false"; // this L2 bank -> a local L1 || Memory + MessageBuffer DirRequestFromL2Cache, network="To", virtual_network="0", ordered="false", vnet_type="request"; // this L2 bank -> Memory + MessageBuffer L1RequestFromL2Cache, network="To", virtual_network="0", ordered="false", vnet_type="request"; // this L2 bank -> a local L1 + MessageBuffer responseFromL2Cache, network="To", virtual_network="1", ordered="false", vnet_type="response"; // this L2 bank -> a local L1 || Memory // FROM the network to this local bank of L2 cache - MessageBuffer unblockToL2Cache, network="From", virtual_network="2", ordered="false"; // a local L1 || Memory -> this L2 bank - MessageBuffer L1RequestToL2Cache, network="From", virtual_network="0", ordered="false"; // a local L1 -> this L2 bank - MessageBuffer responseToL2Cache, network="From", virtual_network="1", ordered="false"; // a local L1 || Memory -> this L2 bank -// MessageBuffer unblockToL2Cache, network="From", virtual_network="4", ordered="false"; // a local L1 || Memory -> this L2 bank + MessageBuffer unblockToL2Cache, network="From", virtual_network="2", ordered="false", vnet_type="unblock"; // a local L1 || Memory -> this L2 bank + MessageBuffer L1RequestToL2Cache, network="From", virtual_network="0", ordered="false", vnet_type="request"; // a local L1 -> this L2 bank + MessageBuffer responseToL2Cache, network="From", virtual_network="1", ordered="false", vnet_type="response"; // a local L1 || Memory -> this L2 bank +// MessageBuffer unblockToL2Cache, network="From", virtual_network="4", ordered="false", vnet_type="unblock"; // a local L1 || Memory -> this L2 bank // STATES state_declaration(State, desc="L2 Cache states", default="L2Cache_State_NP") { diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/MESI_CMP_directory-dir.sm --- a/src/mem/protocol/MESI_CMP_directory-dir.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/MESI_CMP_directory-dir.sm Sun May 08 23:41:33 2011 -0400 @@ -42,11 +42,11 @@ int directory_latency = 6 { - MessageBuffer requestToDir, network="From", virtual_network="0", ordered="false"; - MessageBuffer responseToDir, network="From", virtual_network="1", ordered="false"; + MessageBuffer requestToDir, network="From", virtual_network="0", ordered="false", vnet_type="request"; + MessageBuffer responseToDir, network="From", virtual_network="1", ordered="false", vnet_type="response"; - MessageBuffer requestFromDir, network="To", virtual_network="0", ordered="false"; - MessageBuffer responseFromDir, network="To", virtual_network="1", ordered="false"; + MessageBuffer requestFromDir, network="To", virtual_network="0", ordered="false", vnet_type="request"; + MessageBuffer responseFromDir, network="To", virtual_network="1", ordered="false", vnet_type="response"; // STATES state_declaration(State, desc="Directory states", default="Directory_State_I") { diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/MESI_CMP_directory-dma.sm --- a/src/mem/protocol/MESI_CMP_directory-dma.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/MESI_CMP_directory-dma.sm Sun May 08 23:41:33 2011 -0400 @@ -4,8 +4,8 @@ int request_latency = 6 { - MessageBuffer responseFromDir, network="From", virtual_network="1", ordered="true", no_vector="true"; - MessageBuffer reqToDirectory, network="To", virtual_network="0", ordered="false", no_vector="true"; + MessageBuffer responseFromDir, network="From", virtual_network="1", ordered="true", vnet_type="response", no_vector="true"; + MessageBuffer reqToDirectory, network="To", virtual_network="0", ordered="false", vnet_type="request", no_vector="true"; state_declaration(State, desc="DMA states", default="DMA_State_READY") { READY, AccessPermission:Invalid, desc="Ready to accept a new request"; diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/MOESI_CMP_directory-L1cache.sm --- a/src/mem/protocol/MOESI_CMP_directory-L1cache.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/MOESI_CMP_directory-L1cache.sm Sun May 08 23:41:33 2011 -0400 @@ -43,17 +43,17 @@ // NODE L1 CACHE // From this node's L1 cache TO the network // a local L1 -> this L2 bank, currently ordered with directory forwarded requests - MessageBuffer requestFromL1Cache, network="To", virtual_network="0", ordered="false"; + MessageBuffer requestFromL1Cache, network="To", virtual_network="0", ordered="false", vnet_type="request"; // a local L1 -> this L2 bank - MessageBuffer responseFromL1Cache, network="To", virtual_network="2", ordered="false"; -// MessageBuffer writebackFromL1Cache, network="To", virtual_network="3", ordered="false"; + MessageBuffer responseFromL1Cache, network="To", virtual_network="2", ordered="false", vnet_type="response"; +// MessageBuffer writebackFromL1Cache, network="To", virtual_network="3", ordered="false", vnet_type="writeback"; // To this node's L1 cache FROM the network // a L2 bank -> this L1 - MessageBuffer requestToL1Cache, network="From", virtual_network="0", ordered="false"; + MessageBuffer requestToL1Cache, network="From", virtual_network="0", ordered="false", vnet_type="request"; // a L2 bank -> this L1 - MessageBuffer responseToL1Cache, network="From", virtual_network="2", ordered="false"; + MessageBuffer responseToL1Cache, network="From", virtual_network="2", ordered="false", vnet_type="response"; diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/MOESI_CMP_directory-L2cache.sm --- a/src/mem/protocol/MOESI_CMP_directory-L2cache.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/MOESI_CMP_directory-L2cache.sm Sun May 08 23:41:33 2011 -0400 @@ -40,15 +40,15 @@ // L2 BANK QUEUES // From local bank of L2 cache TO the network - MessageBuffer L1RequestFromL2Cache, network="To", virtual_network="0", ordered="false"; // this L2 bank -> a local L1 - MessageBuffer GlobalRequestFromL2Cache, network="To", virtual_network="1", ordered="false"; // this L2 bank -> mod-directory - MessageBuffer responseFromL2Cache, network="To", virtual_network="2", ordered="false"; // this L2 bank -> a local L1 || mod-directory + MessageBuffer L1RequestFromL2Cache, network="To", virtual_network="0", ordered="false", vnet_type="request"; // this L2 bank -> a local L1 + MessageBuffer GlobalRequestFromL2Cache, network="To", virtual_network="1", ordered="false", vnet_type="request"; // this L2 bank -> mod-directory + MessageBuffer responseFromL2Cache, network="To", virtual_network="2", ordered="false", vnet_type="response"; // this L2 bank -> a local L1 || mod-directory // FROM the network to this local bank of L2 cache - MessageBuffer L1RequestToL2Cache, network="From", virtual_network="0", ordered="false"; // a local L1 -> this L2 bank, Lets try this??? - MessageBuffer GlobalRequestToL2Cache, network="From", virtual_network="1", ordered="false"; // mod-directory -> this L2 bank - MessageBuffer responseToL2Cache, network="From", virtual_network="2", ordered="false"; // a local L1 || mod-directory -> this L2 bank -// MessageBuffer L1WritebackToL2Cache, network="From", virtual_network="3", ordered="false"; + MessageBuffer L1RequestToL2Cache, network="From", virtual_network="0", ordered="false", vnet_type="request"; // a local L1 -> this L2 bank, Lets try this??? + MessageBuffer GlobalRequestToL2Cache, network="From", virtual_network="1", ordered="false", vnet_type="request"; // mod-directory -> this L2 bank + MessageBuffer responseToL2Cache, network="From", virtual_network="2", ordered="false", vnet_type="response"; // a local L1 || mod-directory -> this L2 bank +// MessageBuffer L1WritebackToL2Cache, network="From", virtual_network="3", ordered="false", vnet_type="writeback"; // STATES state_declaration(State, desc="L2 Cache states", default="L2Cache_State_I") { diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/MOESI_CMP_directory-dir.sm --- a/src/mem/protocol/MOESI_CMP_directory-dir.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/MOESI_CMP_directory-dir.sm Sun May 08 23:41:33 2011 -0400 @@ -38,13 +38,13 @@ { // ** IN QUEUES ** - MessageBuffer foo1, network="From", virtual_network="0", ordered="false"; // a mod-L2 bank -> this Dir - MessageBuffer requestToDir, network="From", virtual_network="1", ordered="false"; // a mod-L2 bank -> this Dir - MessageBuffer responseToDir, network="From", virtual_network="2", ordered="false"; // a mod-L2 bank -> this Dir + 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"; - MessageBuffer forwardFromDir, network="To", virtual_network="1", ordered="false"; - MessageBuffer responseFromDir, network="To", virtual_network="2", ordered="false"; // Dir -> mod-L2 bank + 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 // STATES diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/MOESI_CMP_directory-dma.sm --- a/src/mem/protocol/MOESI_CMP_directory-dma.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/MOESI_CMP_directory-dma.sm Sun May 08 23:41:33 2011 -0400 @@ -5,13 +5,13 @@ int response_latency = 14 { - MessageBuffer goo1, network="From", virtual_network="0", ordered="false"; - MessageBuffer goo2, network="From", virtual_network="1", ordered="false"; - MessageBuffer responseFromDir, network="From", virtual_network="2", ordered="false"; + 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"; - MessageBuffer reqToDir, network="To", virtual_network="1", ordered="false"; - MessageBuffer respToDir, network="To", virtual_network="2", ordered="false"; + 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"; state_declaration(State, desc="DMA states", default="DMA_State_READY") { READY, AccessPermission:Invalid, desc="Ready to accept a new request"; diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/MOESI_CMP_token-L1cache.sm --- a/src/mem/protocol/MOESI_CMP_token-L1cache.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/MOESI_CMP_token-L1cache.sm Sun May 08 23:41:33 2011 -0400 @@ -49,18 +49,18 @@ // From this node's L1 cache TO the network // a local L1 -> this L2 bank - MessageBuffer responseFromL1Cache, network="To", virtual_network="4", ordered="false"; - MessageBuffer persistentFromL1Cache, network="To", virtual_network="3", ordered="true"; + MessageBuffer responseFromL1Cache, network="To", virtual_network="4", ordered="false", vnet_type="response"; + MessageBuffer persistentFromL1Cache, network="To", virtual_network="3", ordered="true", vnet_type="persistent"; // a local L1 -> this L2 bank, currently ordered with directory forwarded requests - MessageBuffer requestFromL1Cache, network="To", virtual_network="1", ordered="false"; + MessageBuffer requestFromL1Cache, network="To", virtual_network="1", ordered="false", vnet_type="request"; // To this node's L1 cache FROM the network // a L2 bank -> this L1 - MessageBuffer responseToL1Cache, network="From", virtual_network="4", ordered="false"; - MessageBuffer persistentToL1Cache, network="From", virtual_network="3", ordered="true"; + MessageBuffer responseToL1Cache, network="From", virtual_network="4", ordered="false", vnet_type="response"; + MessageBuffer persistentToL1Cache, network="From", virtual_network="3", ordered="true", vnet_type="persistent"; // a L2 bank -> this L1 - MessageBuffer requestToL1Cache, network="From", virtual_network="1", ordered="false"; + MessageBuffer requestToL1Cache, network="From", virtual_network="1", ordered="false", vnet_type="request"; // STATES state_declaration(State, desc="Cache states", default="L1Cache_State_I") { diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/MOESI_CMP_token-L2cache.sm --- a/src/mem/protocol/MOESI_CMP_token-L2cache.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/MOESI_CMP_token-L2cache.sm Sun May 08 23:41:33 2011 -0400 @@ -44,22 +44,22 @@ // From local bank of L2 cache TO the network // this L2 bank -> a local L1 || mod-directory - MessageBuffer responseFromL2Cache, network="To", virtual_network="4", ordered="false"; + MessageBuffer responseFromL2Cache, network="To", virtual_network="4", ordered="false", vnet_type="response"; // this L2 bank -> mod-directory - MessageBuffer GlobalRequestFromL2Cache, network="To", virtual_network="2", ordered="false"; + MessageBuffer GlobalRequestFromL2Cache, network="To", virtual_network="2", ordered="false", vnet_type="request"; // this L2 bank -> a local L1 - MessageBuffer L1RequestFromL2Cache, network="To", virtual_network="1", ordered="false"; + MessageBuffer L1RequestFromL2Cache, network="To", virtual_network="1", ordered="false", vnet_type="request"; // FROM the network to this local bank of L2 cache // a local L1 || mod-directory -> this L2 bank - MessageBuffer responseToL2Cache, network="From", virtual_network="4", ordered="false"; - MessageBuffer persistentToL2Cache, network="From", virtual_network="3", ordered="true"; + MessageBuffer responseToL2Cache, network="From", virtual_network="4", ordered="false", vnet_type="response"; + MessageBuffer persistentToL2Cache, network="From", virtual_network="3", ordered="true", vnet_type="persistent"; // mod-directory -> this L2 bank - MessageBuffer GlobalRequestToL2Cache, network="From", virtual_network="2", ordered="false"; + MessageBuffer GlobalRequestToL2Cache, network="From", virtual_network="2", ordered="false", vnet_type="request"; // a local L1 -> this L2 bank - MessageBuffer L1RequestToL2Cache, network="From", virtual_network="1", ordered="false"; + MessageBuffer L1RequestToL2Cache, network="From", virtual_network="1", ordered="false", vnet_type="request"; // STATES state_declaration(State, desc="L2 Cache states", default="L2Cache_State_I") { diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/MOESI_CMP_token-dir.sm --- a/src/mem/protocol/MOESI_CMP_token-dir.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/MOESI_CMP_token-dir.sm Sun May 08 23:41:33 2011 -0400 @@ -41,15 +41,15 @@ int fixed_timeout_latency = 100 { - MessageBuffer dmaResponseFromDir, network="To", virtual_network="5", ordered="true"; - MessageBuffer responseFromDir, network="To", virtual_network="4", ordered="false"; - MessageBuffer persistentFromDir, network="To", virtual_network="3", ordered="true"; - MessageBuffer requestFromDir, network="To", virtual_network="1", ordered="false"; + MessageBuffer dmaResponseFromDir, network="To", virtual_network="5", ordered="true", vnet_type="response"; + MessageBuffer responseFromDir, network="To", virtual_network="4", ordered="false", vnet_type="response"; + MessageBuffer persistentFromDir, network="To", virtual_network="3", ordered="true", vnet_type="persistent"; + MessageBuffer requestFromDir, network="To", virtual_network="1", ordered="false", vnet_type="request"; - MessageBuffer responseToDir, network="From", virtual_network="4", ordered="false"; - MessageBuffer persistentToDir, network="From", virtual_network="3", ordered="true"; - MessageBuffer requestToDir, network="From", virtual_network="2", ordered="false"; - MessageBuffer dmaRequestToDir, network="From", virtual_network="0", ordered="true"; + MessageBuffer responseToDir, network="From", virtual_network="4", ordered="false", vnet_type="response"; + MessageBuffer persistentToDir, network="From", virtual_network="3", ordered="true", vnet_type="persistent"; + MessageBuffer requestToDir, network="From", virtual_network="2", ordered="false", vnet_type="request"; + MessageBuffer dmaRequestToDir, network="From", virtual_network="0", ordered="true", vnet_type="request"; // STATES state_declaration(State, desc="Directory states", default="Directory_State_O") { diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/MOESI_CMP_token-dma.sm --- a/src/mem/protocol/MOESI_CMP_token-dma.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/MOESI_CMP_token-dma.sm Sun May 08 23:41:33 2011 -0400 @@ -32,8 +32,8 @@ int request_latency = 6 { - MessageBuffer responseFromDir, network="From", virtual_network="5", ordered="true", no_vector="true"; - MessageBuffer reqToDirectory, network="To", virtual_network="0", ordered="false", no_vector="true"; + MessageBuffer responseFromDir, network="From", virtual_network="5", ordered="true", vnet_type="response", no_vector="true"; + MessageBuffer reqToDirectory, network="To", virtual_network="0", ordered="false", vnet_type="request", no_vector="true"; state_declaration(State, desc="DMA states", default="DMA_State_READY") { READY, AccessPermission:Invalid, desc="Ready to accept a new request"; diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/MOESI_hammer-cache.sm --- a/src/mem/protocol/MOESI_hammer-cache.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/MOESI_hammer-cache.sm Sun May 08 23:41:33 2011 -0400 @@ -45,12 +45,12 @@ { // NETWORK BUFFERS - MessageBuffer requestFromCache, network="To", virtual_network="2", ordered="false"; - MessageBuffer responseFromCache, network="To", virtual_network="4", ordered="false"; - MessageBuffer unblockFromCache, network="To", virtual_network="5", ordered="false"; + MessageBuffer requestFromCache, network="To", virtual_network="2", ordered="false", vnet_type="request"; + MessageBuffer responseFromCache, network="To", virtual_network="4", ordered="false", vnet_type="response"; + MessageBuffer unblockFromCache, network="To", virtual_network="5", ordered="false", vnet_type="unblock"; - MessageBuffer forwardToCache, network="From", virtual_network="3", ordered="false"; - MessageBuffer responseToCache, network="From", virtual_network="4", ordered="false"; + MessageBuffer forwardToCache, network="From", virtual_network="3", ordered="false", vnet_type="forward"; + MessageBuffer responseToCache, network="From", virtual_network="4", ordered="false", vnet_type="response"; // STATES diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/MOESI_hammer-dir.sm --- a/src/mem/protocol/MOESI_hammer-dir.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/MOESI_hammer-dir.sm Sun May 08 23:41:33 2011 -0400 @@ -42,19 +42,19 @@ bool full_bit_dir_enabled = false { - MessageBuffer forwardFromDir, network="To", virtual_network="3", ordered="false"; - MessageBuffer responseFromDir, network="To", virtual_network="4", ordered="false"; + MessageBuffer forwardFromDir, network="To", virtual_network="3", ordered="false", vnet_type="forward"; + MessageBuffer responseFromDir, network="To", virtual_network="4", ordered="false", vnet_type="response"; // // For a finite buffered network, note that the DMA response network only // works at this relatively lower numbered (lower priority) virtual network // because the trigger queue decouples cache responses from DMA responses. // - MessageBuffer dmaResponseFromDir, network="To", virtual_network="1", ordered="true"; + MessageBuffer dmaResponseFromDir, network="To", virtual_network="1", ordered="true", vnet_type="response"; - MessageBuffer unblockToDir, network="From", virtual_network="5", ordered="false"; - MessageBuffer responseToDir, network="From", virtual_network="4", ordered="false"; - MessageBuffer requestToDir, network="From", virtual_network="2", ordered="false", recycle_latency="1"; - MessageBuffer dmaRequestToDir, network="From", virtual_network="0", ordered="true"; + MessageBuffer unblockToDir, network="From", virtual_network="5", ordered="false", vnet_type="unblock"; + MessageBuffer responseToDir, network="From", virtual_network="4", ordered="false", vnet_type="response"; + MessageBuffer requestToDir, network="From", virtual_network="2", ordered="false", vnet_type="request", recycle_latency="1"; + MessageBuffer dmaRequestToDir, network="From", virtual_network="0", ordered="true", vnet_type="request"; // STATES state_declaration(State, desc="Directory states", default="Directory_State_E") { diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/MOESI_hammer-dma.sm --- a/src/mem/protocol/MOESI_hammer-dma.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/MOESI_hammer-dma.sm Sun May 08 23:41:33 2011 -0400 @@ -32,8 +32,8 @@ int request_latency = 6 { - MessageBuffer responseFromDir, network="From", virtual_network="1", ordered="true", no_vector="true"; - MessageBuffer reqToDirectory, network="To", virtual_network="0", ordered="false", no_vector="true"; + MessageBuffer responseFromDir, network="From", virtual_network="1", ordered="true", vnet_type="response", no_vector="true"; + MessageBuffer reqToDirectory, network="To", virtual_network="0", ordered="false", vnet_type="request", no_vector="true"; state_declaration(State, desc="DMA states", diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/Network_test-cache.sm --- a/src/mem/protocol/Network_test-cache.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/Network_test-cache.sm Sun May 08 23:41:33 2011 -0400 @@ -37,9 +37,9 @@ { // NETWORK BUFFERS - MessageBuffer requestFromCache, network="To", virtual_network="0", ordered="false"; - MessageBuffer forwardFromCache, network="To", virtual_network="1", ordered="false"; - MessageBuffer responseFromCache, network="To", virtual_network="2", ordered="false"; + MessageBuffer requestFromCache, network="To", virtual_network="0", ordered="false", vnet_type = "request"; + MessageBuffer forwardFromCache, network="To", virtual_network="1", ordered="false", vnet_type = "forward"; + MessageBuffer responseFromCache, network="To", virtual_network="2", ordered="false", vnet_type = "response"; // STATES state_declaration(State, desc="Cache states", default="L1Cache_State_I") { diff -r db269e704d07 -r 0a8d074c49e1 src/mem/protocol/Network_test-dir.sm --- a/src/mem/protocol/Network_test-dir.sm Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/protocol/Network_test-dir.sm Sun May 08 23:41:33 2011 -0400 @@ -35,9 +35,9 @@ : { - MessageBuffer requestToDir, network="From", virtual_network="0", ordered="false"; - MessageBuffer forwardToDir, network="From", virtual_network="1", ordered="false"; - MessageBuffer responseToDir, network="From", virtual_network="2", ordered="false"; + MessageBuffer requestToDir, network="From", virtual_network="0", ordered="false", vnet_type = "request"; + MessageBuffer forwardToDir, network="From", virtual_network="1", ordered="false", vnet_type = "forward"; + MessageBuffer responseToDir, network="From", virtual_network="2", ordered="false", vnet_type = "response"; // STATES state_declaration(State, desc="Directory states", default="Directory_State_I") { diff -r db269e704d07 -r 0a8d074c49e1 src/mem/ruby/network/Network.hh --- a/src/mem/ruby/network/Network.hh Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/ruby/network/Network.hh Sun May 08 23:41:33 2011 -0400 @@ -71,9 +71,9 @@ // returns the queue requested for the given component virtual MessageBuffer* getToNetQueue(NodeID id, bool ordered, - int netNumber) = 0; + int netNumber, std::string vnet_type) = 0; virtual MessageBuffer* getFromNetQueue(NodeID id, bool ordered, - int netNumber) = 0; + int netNumber, std::string vnet_type) = 0; virtual const std::vector* getThrottles(NodeID id) const; virtual int getNumNodes() {return 1;} diff -r db269e704d07 -r 0a8d074c49e1 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh --- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh Sun May 08 23:41:33 2011 -0400 @@ -60,8 +60,10 @@ int getNumNodes() { return m_nodes; } // returns the queue requested for the given component - MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num); - MessageBuffer* getFromNetQueue(NodeID id, bool ordered, int network_num); + MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num, + std::string vnet_type); + MessageBuffer* getFromNetQueue(NodeID id, bool ordered, int network_num, + std::string vnet_type); void clearStats(); void printStats(std::ostream& out) const; diff -r db269e704d07 -r 0a8d074c49e1 src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc --- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc Sun May 08 23:41:33 2011 -0400 @@ -224,14 +224,20 @@ } MessageBuffer* -GarnetNetwork_d::getToNetQueue(NodeID id, bool ordered, int network_num) +GarnetNetwork_d::getToNetQueue(NodeID id, bool ordered, int network_num, + std::string vnet_type) { + // TODO: + //if (vnet_type == "response") + // mark vnet as data vnet and use buffers_per_data_vc + checkNetworkAllocation(id, ordered, network_num); return m_toNetQueues[id][network_num]; } MessageBuffer* -GarnetNetwork_d::getFromNetQueue(NodeID id, bool ordered, int network_num) +GarnetNetwork_d::getFromNetQueue(NodeID id, bool ordered, int network_num, + std::string vnet_type) { checkNetworkAllocation(id, ordered, network_num); return m_fromNetQueues[id][network_num]; diff -r db269e704d07 -r 0a8d074c49e1 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh --- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh Sun May 08 23:41:33 2011 -0400 @@ -59,8 +59,10 @@ int getBufferSize() { return m_buffer_size; } // returns the queue requested for the given component - MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num); - MessageBuffer* getFromNetQueue(NodeID id, bool ordered, int network_num); + MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num, + std::string vnet_type); + MessageBuffer* getFromNetQueue(NodeID id, bool ordered, int network_num, + std::string vnet_type); void clearStats(); void printStats(std::ostream& out) const; diff -r db269e704d07 -r 0a8d074c49e1 src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc --- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc Sun May 08 23:41:33 2011 -0400 @@ -191,14 +191,16 @@ } MessageBuffer* -GarnetNetwork::getToNetQueue(NodeID id, bool ordered, int network_num) +GarnetNetwork::getToNetQueue(NodeID id, bool ordered, int network_num, + std::string vnet_type) { checkNetworkAllocation(id, ordered, network_num); return m_toNetQueues[id][network_num]; } MessageBuffer* -GarnetNetwork::getFromNetQueue(NodeID id, bool ordered, int network_num) +GarnetNetwork::getFromNetQueue(NodeID id, bool ordered, int network_num, + std::string vnet_type) { checkNetworkAllocation(id, ordered, network_num); return m_fromNetQueues[id][network_num]; diff -r db269e704d07 -r 0a8d074c49e1 src/mem/ruby/network/simple/SimpleNetwork.hh --- a/src/mem/ruby/network/simple/SimpleNetwork.hh Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/ruby/network/simple/SimpleNetwork.hh Sun May 08 23:41:33 2011 -0400 @@ -64,8 +64,8 @@ void reset(); // returns the queue requested for the given component - MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num); - MessageBuffer* getFromNetQueue(NodeID id, bool ordered, int network_num); + MessageBuffer* getToNetQueue(NodeID id, bool ordered, int network_num, std::string vnet_type); + MessageBuffer* getFromNetQueue(NodeID id, bool ordered, int network_num, std::string vnet_type); virtual const std::vector* getThrottles(NodeID id) const; bool isVNetOrdered(int vnet) { return m_ordered[vnet]; } diff -r db269e704d07 -r 0a8d074c49e1 src/mem/ruby/network/simple/SimpleNetwork.cc --- a/src/mem/ruby/network/simple/SimpleNetwork.cc Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/ruby/network/simple/SimpleNetwork.cc Sun May 08 23:41:33 2011 -0400 @@ -226,14 +226,16 @@ } MessageBuffer* -SimpleNetwork::getToNetQueue(NodeID id, bool ordered, int network_num) +SimpleNetwork::getToNetQueue(NodeID id, bool ordered, int network_num, + std::string vnet_type) { checkNetworkAllocation(id, ordered, network_num); return m_toNetQueues[id][network_num]; } MessageBuffer* -SimpleNetwork::getFromNetQueue(NodeID id, bool ordered, int network_num) +SimpleNetwork::getFromNetQueue(NodeID id, bool ordered, int network_num, + std::string vnet_type) { checkNetworkAllocation(id, ordered, network_num); return m_fromNetQueues[id][network_num]; diff -r db269e704d07 -r 0a8d074c49e1 src/mem/slicc/symbols/StateMachine.py --- a/src/mem/slicc/symbols/StateMachine.py Sat May 07 17:43:30 2011 -0400 +++ b/src/mem/slicc/symbols/StateMachine.py Sun May 08 23:41:33 2011 -0400 @@ -594,12 +594,13 @@ network = var["network"] ordered = var["ordered"] vnet = var["virtual_network"] + vnet_type = var["vnet_type"] assert var.machine is not None code(''' machine_type = string_to_MachineType("${{var.machine.ident}}"); base = MachineType_base_number(machine_type); -$vid = m_net_ptr->get${network}NetQueue(m_version + base, $ordered, $vnet); +$vid = m_net_ptr->get${network}NetQueue(m_version + base, $ordered, $vnet, "$vnet_type"); ''') code('assert($vid != NULL);')