diff options
author | Nilay Vaish <nilay@cs.wisc.edu> | 2011-07-03 11:33:46 -0500 |
---|---|---|
committer | Nilay Vaish <nilay@cs.wisc.edu> | 2011-07-03 11:33:46 -0500 |
commit | 5e0851d554d55e4fa22240c803cc4b9ad5e293f5 (patch) | |
tree | 62867faac0a66e583cee531cd095fb7826baddad | |
parent | 45b411fc5f69c4c6bdc4b4e60d144d1e887a04cb (diff) | |
download | gem5-5e0851d554d55e4fa22240c803cc4b9ad5e293f5.tar.xz |
Network_test: Conform it with functional access changes in Ruby
Addition of functional access support to Ruby necessitated some changes to
the way coherence protocols are written. I had forgotten to update the
Network_test protocol. This patch makes those updates.
-rw-r--r-- | configs/ruby/Network_test.py | 11 | ||||
-rw-r--r-- | src/mem/protocol/Network_test-cache.sm | 3 | ||||
-rw-r--r-- | src/mem/protocol/Network_test-dir.sm | 6 |
3 files changed, 15 insertions, 5 deletions
diff --git a/configs/ruby/Network_test.py b/configs/ruby/Network_test.py index 308354f0f..0877ac00a 100644 --- a/configs/ruby/Network_test.py +++ b/configs/ruby/Network_test.py @@ -41,7 +41,7 @@ class Cache(RubyCache): def define_options(parser): return -def create_system(options, system, piobus, dma_devices): +def create_system(options, system, piobus, dma_devices, ruby_system): if buildEnv['PROTOCOL'] != 'Network_test': panic("This script requires the Network_test protocol to be built.") @@ -85,13 +85,15 @@ def create_system(options, system, piobus, dma_devices): # l1_cntrl = L1Cache_Controller(version = i, cntrl_id = cntrl_count, - cacheMemory = cache) + cacheMemory = cache, + ruby_system = ruby_system) cpu_seq = RubySequencer(icache = cache, dcache = cache, physMemPort = system.physmem.port, physmem = system.physmem, - using_network_tester = True) + using_network_tester = True, + ruby_system = ruby_system) l1_cntrl.sequencer = cpu_seq @@ -126,7 +128,8 @@ def create_system(options, system, piobus, dma_devices): directory = \ RubyDirectoryMemory(version = i, size = dir_size), - memBuffer = mem_cntrl) + memBuffer = mem_cntrl, + ruby_system = ruby_system) exec("system.dir_cntrl%d = dir_cntrl" % i) dir_cntrl_nodes.append(dir_cntrl) diff --git a/src/mem/protocol/Network_test-cache.sm b/src/mem/protocol/Network_test-cache.sm index b97819ca3..d3b649e89 100644 --- a/src/mem/protocol/Network_test-cache.sm +++ b/src/mem/protocol/Network_test-cache.sm @@ -131,6 +131,9 @@ machine(L1Cache, "Network_test L1 Cache") return OOD; } + DataBlock getDataBlock(Address addr), return_by_ref="yes" { + error("Network Test does not support get data block."); + } // NETWORK PORTS diff --git a/src/mem/protocol/Network_test-dir.sm b/src/mem/protocol/Network_test-dir.sm index 593a409d0..57736b66d 100644 --- a/src/mem/protocol/Network_test-dir.sm +++ b/src/mem/protocol/Network_test-dir.sm @@ -55,7 +55,7 @@ machine(Directory, "Network_test Directory") // TYPES // DirectoryEntry - structure(Entry, desc="...") { + structure(Entry, desc="...", interface="AbstractEntry") { State DirectoryState, desc="Directory state"; DataBlock DataBlk, desc="data for the block"; } @@ -76,6 +76,10 @@ machine(Directory, "Network_test Directory") void setAccessPermission(Address addr, State state) { } + DataBlock getDataBlock(Address addr), return_by_ref="yes" { + error("Network Test does not support get data block."); + } + // ** IN_PORTS ** in_port(requestQueue_in, RequestMsg, requestToDir) { |