diff options
author | Nilay Vaish <nilay@cs.wisc.edu> | 2015-09-05 09:34:24 -0500 |
---|---|---|
committer | Nilay Vaish <nilay@cs.wisc.edu> | 2015-09-05 09:34:24 -0500 |
commit | 7962a81148b5b38a32e12c4706ecb332c670e09b (patch) | |
tree | 11ef35d7f7bc332e2d12fa4feb00da5e2c2c9f29 /src/mem/protocol/MOESI_hammer-cache.sm | |
parent | 419d437385f65d031769136851232550e5b1ba5e (diff) | |
download | gem5-7962a81148b5b38a32e12c4706ecb332c670e09b.tar.xz |
ruby: declare all protocol message buffers as parameters
MessageBuffer is a SimObject now. There were protocols that still declared
some of the message buffers are variables of the controller, but not as input
parameters. Special handling was required for these variables in the SLICC
compiler. This patch changes this. Now all message buffers are declared as
input parameters.
Diffstat (limited to 'src/mem/protocol/MOESI_hammer-cache.sm')
-rw-r--r-- | src/mem/protocol/MOESI_hammer-cache.sm | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/mem/protocol/MOESI_hammer-cache.sm b/src/mem/protocol/MOESI_hammer-cache.sm index d5539e021..303bf1784 100644 --- a/src/mem/protocol/MOESI_hammer-cache.sm +++ b/src/mem/protocol/MOESI_hammer-cache.sm @@ -56,6 +56,10 @@ machine({L1Cache, L2Cache}, "AMD Hammer-like protocol") vnet_type="forward"; MessageBuffer * responseToCache, network="From", virtual_network="4", vnet_type="response"; + + MessageBuffer * mandatoryQueue; + + MessageBuffer * triggerQueue; { // STATES state_declaration(State, desc="Cache states", default="L1Cache_State_I") { @@ -139,12 +143,7 @@ machine({L1Cache, L2Cache}, "AMD Hammer-like protocol") Block_Ack, desc="the directory is blocked and ready for the flush"; } - // TYPES - // STRUCTURE DEFINITIONS - - MessageBuffer mandatoryQueue; - // CacheEntry structure(Entry, desc="...", interface="AbstractCacheEntry") { State CacheState, desc="cache state"; @@ -320,10 +319,7 @@ machine({L1Cache, L2Cache}, "AMD Hammer-like protocol") return cache_entry.AtomicAccessed; } - MessageBuffer triggerQueue; - // ** OUT_PORTS ** - out_port(requestNetwork_out, RequestMsg, requestFromCache); out_port(responseNetwork_out, ResponseMsg, responseFromCache); out_port(unblockNetwork_out, ResponseMsg, unblockFromCache); |