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.
This commit is contained in:
Nilay Vaish 2011-07-03 11:33:46 -05:00
parent 45b411fc5f
commit 5e0851d554
3 changed files with 15 additions and 5 deletions

View file

@ -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)

View file

@ -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

View file

@ -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) {