8a0bc84022
Make the AlphaConsole calculate the number of CPUs instead of passing that in as a parameter. cpu/base.cc: pass the desired cpu_id into registerExecContext, offsetting it by the thread number. a cpu_id of -1 means that it should be generated for you. cpu/base.hh: Take the cpu_id as a parameter cpu/o3/alpha_cpu_builder.cc: cpu/simple/cpu.cc: Accept the cpu_id as a parameter while we're here, let's remove the multiplier since it is not used. dev/alpha_console.cc: don't take the number of CPUs as a parameter. Calculate it from the system based on the number of CPUs that have been registered. move init() code to startup() to ensure that all CPUs are registerd. dev/alpha_console.hh: python/m5/objects/AlphaConsole.py: don't take the number of CPUs as a parameter. move init() code to startup() to ensure that all CPUs are registerd. python/m5/objects/BaseCPU.py: take the cpu_id as a parameter. Default it to -1 which means that it will be generated. sim/system.cc: allow the registerExecContext functioin to take a desired cpu_id as a parameter. Check to ensure that the id isn't already used. Accept -1 as a request to have an id assigned. sim/system.hh: keep track of the number of registered exec contexts. provide a function for accessing the number of exec contexts that checks to ensure that they are all registered correctly. --HG-- extra : convert_revision : 8e12f96ff8a49fa16cdbbdb4c05c651376c35788
29 lines
1.1 KiB
Python
29 lines
1.1 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")
|
|
|
|
defer_registration = Param.Bool(False,
|
|
"defer registration with system (for sampling)")
|
|
|
|
clock = Param.Clock(Parent.clock, "clock speed")
|