9fef4d4630
cpu/base.cc: Be sure to deschedule the profile event so it doesn't take profiles while the CPU is switched out. Also include the option to reset stats at a specific instruction. cpu/base.hh: Include the option to reset stats at a specific instruction. cpu/checker/cpu_builder.cc: Handle stats reset inst. cpu/o3/alpha_cpu_builder.cc: Handle stats reset inst, allow for profiling. cpu/ozone/cpu_builder.cc: Handle profiling, stats reset event, slightly different parameters. python/m5/objects/BaseCPU.py: Add in stats reset. --HG-- extra : convert_revision : e27a78f7fb8fd19c53d9f2c1e6edce4a98cbafdb
32 lines
1.3 KiB
Python
32 lines
1.3 KiB
Python
from m5 import *
|
|
class BaseCPU(SimObject):
|
|
type = 'BaseCPU'
|
|
abstract = True
|
|
icache = Param.BaseMem(NULL, "L1 instruction cache object")
|
|
dcache = Param.BaseMem(NULL, "L1 data cache object")
|
|
|
|
if build_env['FULL_SYSTEM']:
|
|
dtb = Param.AlphaDTB("Data TLB")
|
|
itb = Param.AlphaITB("Instruction TLB")
|
|
mem = Param.FunctionalMemory("memory")
|
|
system = Param.System(Parent.any, "system object")
|
|
cpu_id = Param.Int(-1, "CPU identifier")
|
|
else:
|
|
workload = VectorParam.Process("processes to run")
|
|
|
|
max_insts_all_threads = Param.Counter(0,
|
|
"terminate when all threads have reached this inst count")
|
|
max_insts_any_thread = Param.Counter(0,
|
|
"terminate when any thread reaches this inst count")
|
|
max_loads_all_threads = Param.Counter(0,
|
|
"terminate when all threads have reached this load count")
|
|
max_loads_any_thread = Param.Counter(0,
|
|
"terminate when any thread reaches this load count")
|
|
stats_reset_inst = Param.Counter(0,
|
|
"reset stats once this many instructions are committed")
|
|
progress_interval = Param.Tick(0, "interval to print out the progress message")
|
|
|
|
defer_registration = Param.Bool(False,
|
|
"defer registration with system (for sampling)")
|
|
|
|
clock = Param.Clock(Parent.clock, "clock speed")
|