ruby: single physical memory in fs mode
Both ruby and the system used to maintain memory copies. With the changes carried for programmed io accesses, only one single memory is required for fs simulations. This patch sets the copy of memory that used to reside with the system to null, so that no space is allocated, but address checks can still be carried out. All the memory accesses now source and sink values to the memory maintained by ruby.
This commit is contained in:
@@ -56,7 +56,7 @@ def define_options(parser):
|
||||
caches private to clusters")
|
||||
return
|
||||
|
||||
def create_system(options, system, dma_ports, ruby_system):
|
||||
def create_system(options, full_system, system, dma_ports, ruby_system):
|
||||
|
||||
if buildEnv['PROTOCOL'] != 'MESI_Three_Level':
|
||||
fatal("This script requires the MESI_Three_Level protocol to be built.")
|
||||
@@ -231,5 +231,20 @@ def create_system(options, system, dma_ports, ruby_system):
|
||||
dir_cntrl_nodes + \
|
||||
dma_cntrl_nodes
|
||||
|
||||
# Create the io controller and the sequencer
|
||||
if full_system:
|
||||
io_seq = DMASequencer(version=len(dma_ports), ruby_system=ruby_system)
|
||||
ruby_system._io_port = io_seq
|
||||
io_controller = DMA_Controller(version = len(dma_ports),
|
||||
dma_sequencer = io_seq,
|
||||
ruby_system = ruby_system)
|
||||
ruby_system.io_controller = io_controller
|
||||
|
||||
# Connect the dma controller to the network
|
||||
io_controller.responseFromDir = ruby_system.network.master
|
||||
io_controller.requestToDir = ruby_system.network.slave
|
||||
|
||||
all_cntrls = all_cntrls + [io_controller]
|
||||
|
||||
topology = create_topology(all_cntrls, options)
|
||||
return (cpu_sequencers, dir_cntrl_nodes, topology)
|
||||
|
||||
Reference in New Issue
Block a user