diff options
author | Nathan Binkert <binkertn@umich.edu> | 2005-06-29 01:20:41 -0400 |
---|---|---|
committer | Nathan Binkert <binkertn@umich.edu> | 2005-06-29 01:20:41 -0400 |
commit | 8a0bc840221cf7af4845f4ee44de11bc7271ff10 (patch) | |
tree | 96800ff9b98a6bc32bdb5a443974bb8c2994ebc4 /cpu/o3/alpha_cpu_builder.cc | |
parent | 036a8ceb8da8aff10b819b4aab32584d41282a64 (diff) | |
download | gem5-8a0bc840221cf7af4845f4ee44de11bc7271ff10.tar.xz |
Allow CPUs to specify their own CPU ids.
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
Diffstat (limited to 'cpu/o3/alpha_cpu_builder.cc')
-rw-r--r-- | cpu/o3/alpha_cpu_builder.cc | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/cpu/o3/alpha_cpu_builder.cc b/cpu/o3/alpha_cpu_builder.cc index 57061c052..57c567471 100644 --- a/cpu/o3/alpha_cpu_builder.cc +++ b/cpu/o3/alpha_cpu_builder.cc @@ -71,9 +71,9 @@ BEGIN_DECLARE_SIM_OBJECT_PARAMS(DerivAlphaFullCPU) #ifdef FULL_SYSTEM SimObjectParam<System *> system; +Param<int> cpu_id; SimObjectParam<AlphaITB *> itb; SimObjectParam<AlphaDTB *> dtb; -Param<int> mult; #else SimObjectVectorParam<Process *> workload; #endif // FULL_SYSTEM @@ -164,9 +164,9 @@ BEGIN_INIT_SIM_OBJECT_PARAMS(DerivAlphaFullCPU) #ifdef FULL_SYSTEM INIT_PARAM(system, "System object"), + INIT_PARAM(cpu_id, "processor ID"), INIT_PARAM(itb, "Instruction translation buffer"), INIT_PARAM(dtb, "Data translation buffer"), - INIT_PARAM(mult, "System clock multiplier"), #else INIT_PARAM(workload, "Processes to run"), #endif // FULL_SYSTEM @@ -274,9 +274,6 @@ CREATE_SIM_OBJECT(DerivAlphaFullCPU) DerivAlphaFullCPU *cpu; #ifdef FULL_SYSTEM - if (mult != 1) - panic("Processor clock multiplier must be 1?\n"); - // Full-system only supports a single thread for the moment. int actual_num_threads = 1; #else @@ -300,6 +297,7 @@ CREATE_SIM_OBJECT(DerivAlphaFullCPU) #ifdef FULL_SYSTEM params.system = system; + params.cpu_id = cpu_id; params.itb = itb; params.dtb = dtb; #else |