________________________________
发件人: Sensen Hu - EWI
发送时间: 2015年2月22日 14:06
收件人: [email protected]
主题: how can I add cache in tgen-simple-mem

hi, all
I got a memory reference trace file from Pin-tools. Now I want to work out 
cache miss rate from the file.
I use GEM5's trafficgen (TraceGen) and modified tgen-simple-mem.py by adding 
two-level cache.
But I got a mistake diplaying by simerr.
Could you give my some guide, thanks a lot.

this is my command line:
build/ARM/gem5.opt -d 
build/ARM/tests/opt/quick/se/70.tgen/arm/linux/tgen-simple-mem -re 
--debug-flags=TrafficGen  tests/run.py 
build/ARM/tests/opt/quick/se/70.tgen/arm/linux/tgen-simple-mem

this is from simerr:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/ubuntu2e/gem5-stable/src/python/m5/main.py", line 388, in main
    exec filecode in scope
  File "tests/run.py", line 180, in <module>
    execfile(joinpath(tests_root, 'configs', test_filename + '.py'))
  File "tests/configs/tgen-simple-mem.py", line 93
    cpu.clk_domain = system.cpu_clk_domain
    ^
IndentationError: unexpected indent



the following is the modified tgen-simple-mem.py file.

system = System(cpu = cpu, funcmem = SimpleMemory(in_addr_map = False),
                funcbus = NoncoherentXBar(),
                physmem = SimpleMemory(),
                membus = CoherentXBar(width=16))
# Dummy voltage domain for all our clock domains
system.voltage_domain = VoltageDomain()
system.clk_domain = SrcClockDomain(clock = '1GHz',
                                   voltage_domain = system.voltage_domain)


#----------------------------------------------------------------------

# add a communication monitor, and also trace all the packets
system.monitor = CommMonitor(trace_file = "monitor.ptrc.gz",
                             trace_enable = True)

# connect the traffic generator to the bus via a communication monitor
system.cpu.port = system.monitor.slave

#---------------------------------------------------------------------
# Create a seperate clock domain for components that should run at
# CPUs frequency
system.cpu_clk_domain = SrcClockDomain(clock = '2GHz',
                                       voltage_domain = system.voltage_domain)

system.toL2Bus = CoherentXBar(clk_domain = system.cpu_clk_domain, width=16)
system.l2c = L2Cache(clk_domain = system.cpu_clk_domain, size='64kB', assoc=8)
system.l2c.cpu_side = system.toL2Bus.master

# connect l2c to membus
system.l2c.mem_side = system.membus.slave

# add L1 caches

    # All cpus are associated with cpu_clk_domain
    cpu.clk_domain = system.cpu_clk_domain
    cpu.l1c = L1Cache(size = '32kB', assoc = 4)
    #cpu.l1c.cpu_side = cpu.test
    cpu.l1c.mem_side = system.toL2Bus.slave
    system.monitor.master = cpu.l1c.cpu_side


    #system.funcbus.slave = cpu.functional

system.system_port = system.membus.slave

# connect reference memory to funcbus
#system.funcmem.port = system.funcbus.master


#---------------------------------------------------------------------

# connect the system port even if it is not used in this example
system.system_port = system.membus.slave

# connect memory to membus
system.physmem.port = system.membus.master


# -----------------------
# run simulation
# -----------------------

root = Root(full_system = False, system = system)
root.system.mem_mode = 'timing'

_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to