diff options
Diffstat (limited to 'src/mem/protocol/MOESI_hammer-dir.sm')
-rw-r--r-- | src/mem/protocol/MOESI_hammer-dir.sm | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/src/mem/protocol/MOESI_hammer-dir.sm b/src/mem/protocol/MOESI_hammer-dir.sm index 4e2f846e2..db11b290f 100644 --- a/src/mem/protocol/MOESI_hammer-dir.sm +++ b/src/mem/protocol/MOESI_hammer-dir.sm @@ -34,28 +34,37 @@ */ machine(Directory, "AMD Hammer-like protocol") -: DirectoryMemory * directory; - CacheMemory * probeFilter; - MemoryControl * memBuffer; - Cycles memory_controller_latency := 2; - bool probe_filter_enabled := "False"; - bool full_bit_dir_enabled := "False"; -{ + : DirectoryMemory * directory; + CacheMemory * probeFilter; + MemoryControl * memBuffer; + Cycles memory_controller_latency := 2; + bool probe_filter_enabled := "False"; + bool full_bit_dir_enabled := "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", vnet_type="response"; + MessageBuffer * forwardFromDir, network="To", virtual_network="3", + ordered="false", vnet_type="forward"; + + MessageBuffer * responseFromDir, network="To", virtual_network="4", + ordered="false", vnet_type="response"; - 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"; + // 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", vnet_type="response"; + 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") { // Base states |