changeset 8c0870dbae5c in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=8c0870dbae5c
description:
ruby: slicc: change the way configurable members are specified
There are two changes this patch makes to the way configurable members
of a
state machine are specified in SLICC. The first change is that the data
member declarations will need to be separated by a semi-colon instead
of a
comma. Secondly, the default value to be assigned would now use SLICC's
assignment operator i.e. ':='.
diffstat:
src/mem/protocol/MESI_Three_Level-L0cache.sm | 12 ++++----
src/mem/protocol/MESI_Three_Level-L1cache.sm | 11 +++----
src/mem/protocol/MESI_Two_Level-L1cache.sm | 20 +++++++-------
src/mem/protocol/MESI_Two_Level-L2cache.sm | 8 ++--
src/mem/protocol/MESI_Two_Level-dir.sm | 8 ++--
src/mem/protocol/MESI_Two_Level-dma.sm | 4 +-
src/mem/protocol/MI_example-cache.sm | 10 +++---
src/mem/protocol/MI_example-dir.sm | 6 ++--
src/mem/protocol/MI_example-dma.sm | 4 +-
src/mem/protocol/MOESI_CMP_directory-L1cache.sm | 14 +++++-----
src/mem/protocol/MOESI_CMP_directory-L2cache.sm | 6 ++--
src/mem/protocol/MOESI_CMP_directory-dir.sm | 6 ++--
src/mem/protocol/MOESI_CMP_directory-dma.sm | 6 ++--
src/mem/protocol/MOESI_CMP_token-L1cache.sm | 29 ++++++++++----------
src/mem/protocol/MOESI_CMP_token-L2cache.sm | 10 +++---
src/mem/protocol/MOESI_CMP_token-dir.sm | 14 +++++-----
src/mem/protocol/MOESI_CMP_token-dma.sm | 4 +-
src/mem/protocol/MOESI_hammer-cache.sm | 18 ++++++------
src/mem/protocol/MOESI_hammer-dir.sm | 12 ++++----
src/mem/protocol/MOESI_hammer-dma.sm | 4 +-
src/mem/protocol/Network_test-cache.sm | 4 +-
src/mem/slicc/ast/FormalParamAST.py | 1 +
src/mem/slicc/ast/ObjDeclAST.py | 3 +-
src/mem/slicc/ast/StallAndWaitStatementAST.py | 2 +-
src/mem/slicc/parser.py | 30 ++++++++++++++-------
src/mem/slicc/symbols/StateMachine.py | 35 +++++++++++++++----------
26 files changed, 149 insertions(+), 132 deletions(-)
diffs (truncated from 639 to 300 lines):
diff -r 6df951dcd7d9 -r 8c0870dbae5c
src/mem/protocol/MESI_Three_Level-L0cache.sm
--- a/src/mem/protocol/MESI_Three_Level-L0cache.sm Mon Sep 01 16:55:44
2014 -0500
+++ b/src/mem/protocol/MESI_Three_Level-L0cache.sm Mon Sep 01 16:55:45
2014 -0500
@@ -27,12 +27,12 @@
*/
machine(L0Cache, "MESI Directory L0 Cache")
- : Sequencer * sequencer,
- CacheMemory * Icache,
- CacheMemory * Dcache,
- Cycles request_latency = 2,
- Cycles response_latency = 2,
- bool send_evictions,
+ : Sequencer * sequencer;
+ CacheMemory * Icache;
+ CacheMemory * Dcache;
+ Cycles request_latency := 2;
+ Cycles response_latency := 2;
+ bool send_evictions;
{
// NODE L0 CACHE
// From this node's L0 cache to the network
diff -r 6df951dcd7d9 -r 8c0870dbae5c
src/mem/protocol/MESI_Three_Level-L1cache.sm
--- a/src/mem/protocol/MESI_Three_Level-L1cache.sm Mon Sep 01 16:55:44
2014 -0500
+++ b/src/mem/protocol/MESI_Three_Level-L1cache.sm Mon Sep 01 16:55:45
2014 -0500
@@ -27,11 +27,11 @@
*/
machine(L1Cache, "MESI Directory L1 Cache CMP")
- : CacheMemory * cache,
- int l2_select_num_bits,
- Cycles l1_request_latency = 2,
- Cycles l1_response_latency = 2,
- Cycles to_l2_latency = 1,
+ : CacheMemory * cache;
+ int l2_select_num_bits;
+ 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
@@ -40,7 +40,6 @@
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";
diff -r 6df951dcd7d9 -r 8c0870dbae5c src/mem/protocol/MESI_Two_Level-L1cache.sm
--- a/src/mem/protocol/MESI_Two_Level-L1cache.sm Mon Sep 01 16:55:44
2014 -0500
+++ b/src/mem/protocol/MESI_Two_Level-L1cache.sm Mon Sep 01 16:55:45
2014 -0500
@@ -27,16 +27,16 @@
*/
machine(L1Cache, "MESI Directory L1 Cache CMP")
- : Sequencer * sequencer,
- CacheMemory * L1Icache,
- CacheMemory * L1Dcache,
- Prefetcher * prefetcher = 'NULL',
- int l2_select_num_bits,
- Cycles l1_request_latency = 2,
- Cycles l1_response_latency = 2,
- Cycles to_l2_latency = 1,
- bool send_evictions,
- bool enable_prefetch = "False"
+ : Sequencer * sequencer;
+ CacheMemory * L1Icache;
+ CacheMemory * L1Dcache;
+ Prefetcher * prefetcher;
+ int l2_select_num_bits;
+ Cycles l1_request_latency := 2;
+ Cycles l1_response_latency := 2;
+ Cycles to_l2_latency := 1;
+ bool send_evictions;
+ bool enable_prefetch := "False";
{
// NODE L1 CACHE
// From this node's L1 cache TO the network
diff -r 6df951dcd7d9 -r 8c0870dbae5c src/mem/protocol/MESI_Two_Level-L2cache.sm
--- a/src/mem/protocol/MESI_Two_Level-L2cache.sm Mon Sep 01 16:55:44
2014 -0500
+++ b/src/mem/protocol/MESI_Two_Level-L2cache.sm Mon Sep 01 16:55:45
2014 -0500
@@ -32,10 +32,10 @@
*/
machine(L2Cache, "MESI Directory L2 Cache CMP")
- : CacheMemory * L2cache,
- Cycles l2_request_latency = 2,
- Cycles l2_response_latency = 2,
- Cycles to_l1_latency = 1
+ : CacheMemory * L2cache;
+ Cycles l2_request_latency := 2;
+ Cycles l2_response_latency := 2;
+ Cycles to_l1_latency := 1;
{
// L2 BANK QUEUES
// From local bank of L2 cache TO the network
diff -r 6df951dcd7d9 -r 8c0870dbae5c src/mem/protocol/MESI_Two_Level-dir.sm
--- a/src/mem/protocol/MESI_Two_Level-dir.sm Mon Sep 01 16:55:44 2014 -0500
+++ b/src/mem/protocol/MESI_Two_Level-dir.sm Mon Sep 01 16:55:45 2014 -0500
@@ -35,10 +35,10 @@
machine(Directory, "MESI Two Level directory protocol")
- : DirectoryMemory * directory,
- MemoryControl * memBuffer,
- Cycles to_mem_ctrl_latency = 1,
- Cycles directory_latency = 6,
+ : DirectoryMemory * directory;
+ MemoryControl * memBuffer;
+ Cycles to_mem_ctrl_latency := 1;
+ Cycles directory_latency := 6;
{
MessageBuffer requestToDir, network="From", virtual_network="0",
ordered="false", vnet_type="request";
diff -r 6df951dcd7d9 -r 8c0870dbae5c src/mem/protocol/MESI_Two_Level-dma.sm
--- a/src/mem/protocol/MESI_Two_Level-dma.sm Mon Sep 01 16:55:44 2014 -0500
+++ b/src/mem/protocol/MESI_Two_Level-dma.sm Mon Sep 01 16:55:45 2014 -0500
@@ -28,8 +28,8 @@
*/
machine(DMA, "DMA Controller")
-: DMASequencer * dma_sequencer,
- Cycles request_latency = 6
+: DMASequencer * dma_sequencer;
+ Cycles request_latency := 6;
{
MessageBuffer responseFromDir, network="From", virtual_network="1",
ordered="true", vnet_type="response";
diff -r 6df951dcd7d9 -r 8c0870dbae5c src/mem/protocol/MI_example-cache.sm
--- a/src/mem/protocol/MI_example-cache.sm Mon Sep 01 16:55:44 2014 -0500
+++ b/src/mem/protocol/MI_example-cache.sm Mon Sep 01 16:55:45 2014 -0500
@@ -28,11 +28,11 @@
*/
machine(L1Cache, "MI Example L1 Cache")
-: Sequencer * sequencer,
- CacheMemory * cacheMemory,
- Cycles cache_response_latency = 12,
- Cycles issue_latency = 2,
- bool send_evictions
+: Sequencer * sequencer;
+ CacheMemory * cacheMemory;
+ Cycles cache_response_latency := 12;
+ Cycles issue_latency := 2;
+ bool send_evictions;
{
// NETWORK BUFFERS
diff -r 6df951dcd7d9 -r 8c0870dbae5c src/mem/protocol/MI_example-dir.sm
--- a/src/mem/protocol/MI_example-dir.sm Mon Sep 01 16:55:44 2014 -0500
+++ b/src/mem/protocol/MI_example-dir.sm Mon Sep 01 16:55:45 2014 -0500
@@ -28,9 +28,9 @@
*/
machine(Directory, "Directory protocol")
-: DirectoryMemory * directory,
- MemoryControl * memBuffer,
- Cycles directory_latency = 12
+: DirectoryMemory * directory;
+ MemoryControl * memBuffer;
+ Cycles directory_latency := 12;
{
MessageBuffer forwardFromDir, network="To", virtual_network="3",
ordered="false", vnet_type="forward";
diff -r 6df951dcd7d9 -r 8c0870dbae5c src/mem/protocol/MI_example-dma.sm
--- a/src/mem/protocol/MI_example-dma.sm Mon Sep 01 16:55:44 2014 -0500
+++ b/src/mem/protocol/MI_example-dma.sm Mon Sep 01 16:55:45 2014 -0500
@@ -28,8 +28,8 @@
*/
machine(DMA, "DMA Controller")
-: DMASequencer * dma_sequencer,
- Cycles request_latency = 6
+: DMASequencer * dma_sequencer;
+ Cycles request_latency := 6;
{
MessageBuffer responseFromDir, network="From", virtual_network="1",
ordered="true", vnet_type="response";
diff -r 6df951dcd7d9 -r 8c0870dbae5c
src/mem/protocol/MOESI_CMP_directory-L1cache.sm
--- a/src/mem/protocol/MOESI_CMP_directory-L1cache.sm Mon Sep 01 16:55:44
2014 -0500
+++ b/src/mem/protocol/MOESI_CMP_directory-L1cache.sm Mon Sep 01 16:55:45
2014 -0500
@@ -27,13 +27,13 @@
*/
machine(L1Cache, "Directory protocol")
- : Sequencer * sequencer,
- CacheMemory * L1Icache,
- CacheMemory * L1Dcache,
- int l2_select_num_bits,
- Cycles request_latency = 2,
- Cycles use_timeout_latency = 50,
- bool send_evictions
+ : Sequencer * sequencer;
+ CacheMemory * L1Icache;
+ CacheMemory * L1Dcache;
+ int l2_select_num_bits;
+ Cycles request_latency := 2;
+ Cycles use_timeout_latency := 50;
+ bool send_evictions;
{
// NODE L1 CACHE
diff -r 6df951dcd7d9 -r 8c0870dbae5c
src/mem/protocol/MOESI_CMP_directory-L2cache.sm
--- a/src/mem/protocol/MOESI_CMP_directory-L2cache.sm Mon Sep 01 16:55:44
2014 -0500
+++ b/src/mem/protocol/MOESI_CMP_directory-L2cache.sm Mon Sep 01 16:55:45
2014 -0500
@@ -27,9 +27,9 @@
*/
machine(L2Cache, "Token protocol")
-: CacheMemory * L2cache,
- Cycles response_latency = 2,
- Cycles request_latency = 2
+: CacheMemory * L2cache;
+ Cycles response_latency := 2;
+ Cycles request_latency := 2;
{
// L2 BANK QUEUES
diff -r 6df951dcd7d9 -r 8c0870dbae5c src/mem/protocol/MOESI_CMP_directory-dir.sm
--- a/src/mem/protocol/MOESI_CMP_directory-dir.sm Mon Sep 01 16:55:44
2014 -0500
+++ b/src/mem/protocol/MOESI_CMP_directory-dir.sm Mon Sep 01 16:55:45
2014 -0500
@@ -27,9 +27,9 @@
*/
machine(Directory, "Directory protocol")
-: DirectoryMemory * directory,
- MemoryControl * memBuffer,
- Cycles directory_latency = 6
+: DirectoryMemory * directory;
+ MemoryControl * memBuffer;
+ Cycles directory_latency := 6;
{
// ** IN QUEUES **
diff -r 6df951dcd7d9 -r 8c0870dbae5c src/mem/protocol/MOESI_CMP_directory-dma.sm
--- a/src/mem/protocol/MOESI_CMP_directory-dma.sm Mon Sep 01 16:55:44
2014 -0500
+++ b/src/mem/protocol/MOESI_CMP_directory-dma.sm Mon Sep 01 16:55:45
2014 -0500
@@ -28,9 +28,9 @@
*/
machine(DMA, "DMA Controller")
-: DMASequencer * dma_sequencer,
- Cycles request_latency = 14,
- Cycles response_latency = 14
+: DMASequencer * dma_sequencer;
+ Cycles request_latency := 14;
+ Cycles response_latency := 14;
{
MessageBuffer responseFromDir, network="From", virtual_network="2",
ordered="false", vnet_type="response";
diff -r 6df951dcd7d9 -r 8c0870dbae5c src/mem/protocol/MOESI_CMP_token-L1cache.sm
--- a/src/mem/protocol/MOESI_CMP_token-L1cache.sm Mon Sep 01 16:55:44
2014 -0500
+++ b/src/mem/protocol/MOESI_CMP_token-L1cache.sm Mon Sep 01 16:55:45
2014 -0500
@@ -32,22 +32,22 @@
*/
machine(L1Cache, "Token protocol")
- : Sequencer * sequencer,
- CacheMemory * L1Icache,
- CacheMemory * L1Dcache,
- int l2_select_num_bits,
- int N_tokens,
+ : Sequencer * sequencer;
+ CacheMemory * L1Icache;
+ CacheMemory * L1Dcache;
+ int l2_select_num_bits;
+ int N_tokens;
- Cycles l1_request_latency = 2,
- Cycles l1_response_latency = 2,
- int retry_threshold = 1,
- Cycles fixed_timeout_latency = 100,
- Cycles reissue_wakeup_latency = 10,
- Cycles use_timeout_latency = 50,
+ Cycles l1_request_latency := 2;
+ Cycles l1_response_latency := 2;
+ int retry_threshold := 1;
+ Cycles fixed_timeout_latency := 100;
+ Cycles reissue_wakeup_latency := 10;
+ Cycles use_timeout_latency := 50;
- bool dynamic_timeout_enabled = true,
- bool no_mig_atomic = true,
- bool send_evictions
+ bool dynamic_timeout_enabled := "True";
+ bool no_mig_atomic := "True";
+ bool send_evictions;
{
// From this node's L1 cache TO the network
@@ -206,7 +206,6 @@
Cycles averageLatencyEstimate() {
DPRINTF(RubySlicc, "%d\n",
(averageLatencyCounter >> averageLatencyHysteresis));
- //profile_average_latency_estimate( (averageLatencyCounter >>
averageLatencyHysteresis) );
return averageLatencyCounter >> averageLatencyHysteresis;
}
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev