summaryrefslogtreecommitdiff
path: root/src/mem/protocol/MOESI_hammer-dir.sm
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/protocol/MOESI_hammer-dir.sm')
-rw-r--r--src/mem/protocol/MOESI_hammer-dir.sm47
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