diff options
author | Andrew Bardsley <Andrew.Bardsley@arm.com> | 2014-07-23 16:09:04 -0500 |
---|---|---|
committer | Andrew Bardsley <Andrew.Bardsley@arm.com> | 2014-07-23 16:09:04 -0500 |
commit | 0e8a90f06bd3db00f700891a33458353478cce76 (patch) | |
tree | 50742efcc18254a36e80029b522139e8bd601dc2 /configs | |
parent | 040fa23d01109c68d194d2517df777844e4e2f13 (diff) | |
download | gem5-0e8a90f06bd3db00f700891a33458353478cce76.tar.xz |
cpu: `Minor' in-order CPU model
This patch contains a new CPU model named `Minor'. Minor models a four
stage in-order execution pipeline (fetch lines, decompose into
macroops, decompose macroops into microops, execute).
The model was developed to support the ARM ISA but should be fixable
to support all the remaining gem5 ISAs. It currently also works for
Alpha, and regressions are included for ARM and Alpha (including Linux
boot).
Documentation for the model can be found in src/doc/inside-minor.doxygen and
its internal operations can be visualised using the Minorview tool
utils/minorview.py.
Minor was designed to be fairly simple and not to engage in a lot of
instruction annotation. As such, it currently has very few gathered
stats and may lack other gem5 features.
Minor is faster than the o3 model. Sample results:
Benchmark | Stat host_seconds (s)
---------------+--------v--------v--------
(on ARM, opt) | simple | o3 | minor
| timing | timing | timing
---------------+--------+--------+--------
10.linux-boot | 169 | 1883 | 1075
10.mcf | 117 | 967 | 491
20.parser | 668 | 6315 | 3146
30.eon | 542 | 3413 | 2414
40.perlbmk | 2339 | 20905 | 11532
50.vortex | 122 | 1094 | 588
60.bzip2 | 2045 | 18061 | 9662
70.twolf | 207 | 2736 | 1036
Diffstat (limited to 'configs')
-rw-r--r-- | configs/common/CpuConfig.py | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/configs/common/CpuConfig.py b/configs/common/CpuConfig.py index e12b646d8..c2663ee98 100644 --- a/configs/common/CpuConfig.py +++ b/configs/common/CpuConfig.py @@ -51,6 +51,7 @@ _cpu_aliases_all = [ ("timing", "TimingSimpleCPU"), ("atomic", "AtomicSimpleCPU"), ("inorder", "InOrderCPU"), + ("minor", "MinorCPU"), ("detailed", "DerivO3CPU"), ("kvm", ("ArmKvmCPU", "X86KvmCPU")), ] |