summaryrefslogtreecommitdiff
path: root/src/mem/protocol/MESI_Three_Level-L1cache.sm
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/protocol/MESI_Three_Level-L1cache.sm')
-rw-r--r--src/mem/protocol/MESI_Three_Level-L1cache.sm42
1 files changed, 23 insertions, 19 deletions
diff --git a/src/mem/protocol/MESI_Three_Level-L1cache.sm b/src/mem/protocol/MESI_Three_Level-L1cache.sm
index 170599a51..59249d822 100644
--- a/src/mem/protocol/MESI_Three_Level-L1cache.sm
+++ b/src/mem/protocol/MESI_Three_Level-L1cache.sm
@@ -32,26 +32,30 @@ machine(L1Cache, "MESI Directory L1 Cache CMP")
Cycles l1_request_latency := 2;
Cycles l1_response_latency := 2;
Cycles to_l2_latency := 1;
-{
- // From this node's L1 cache TO the network
- // a local L1 -> this L2 bank, currently ordered with directory forwarded requests
- MessageBuffer requestToL2, network="To", virtual_network="0", ordered="false", vnet_type="request";
- // a local L1 -> this L2 bank
- MessageBuffer responseToL2, network="To", virtual_network="1", ordered="false", vnet_type="response";
- MessageBuffer unblockToL2, 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 requestFromL2, network="From", virtual_network="0", ordered="false", vnet_type="request";
- // a L2 bank -> this L1
- MessageBuffer responseFromL2, network="From", virtual_network="1", ordered="false", vnet_type="response";
-
- // Message Buffers between the L1 and the L0 Cache
- // From the L1 cache to the L0 cache
- MessageBuffer bufferToL0, network="To", physical_network="0", ordered="true";
- // From the L0 cache to the L1 cache
- MessageBuffer bufferFromL0, network="From", physical_network="0", ordered="true";
+ // Message Buffers between the L1 and the L0 Cache
+ // From the L1 cache to the L0 cache
+ MessageBuffer * bufferToL0, network="To", ordered="true";
+
+ // From the L0 cache to the L1 cache
+ MessageBuffer * bufferFromL0, network="From", ordered="true";
+
+ // Message queue from this L1 cache TO the network / L2
+ MessageBuffer * requestToL2, network="To", virtual_network="0",
+ ordered="false", vnet_type="request";
+
+ MessageBuffer * responseToL2, network="To", virtual_network="1",
+ ordered="false", vnet_type="response";
+ MessageBuffer * unblockToL2, network="To", virtual_network="2",
+ ordered="false", vnet_type="unblock";
+
+ // To this L1 cache FROM the network / L2
+ MessageBuffer * requestFromL2, network="From", virtual_network="2",
+ ordered="false", vnet_type="request";
+ MessageBuffer * responseFromL2, network="From", virtual_network="1",
+ ordered="false", vnet_type="response";
+
+{
// STATES
state_declaration(State, desc="Cache states", default="L1Cache_State_I") {
// Base states