summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNilay Vaish <nilay@cs.wisc.edu>2011-07-03 11:33:46 -0500
committerNilay Vaish <nilay@cs.wisc.edu>2011-07-03 11:33:46 -0500
commit5e0851d554d55e4fa22240c803cc4b9ad5e293f5 (patch)
tree62867faac0a66e583cee531cd095fb7826baddad
parent45b411fc5f69c4c6bdc4b4e60d144d1e887a04cb (diff)
downloadgem5-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.py11
-rw-r--r--src/mem/protocol/Network_test-cache.sm3
-rw-r--r--src/mem/protocol/Network_test-dir.sm6
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) {