gem5: summarize the differences between the main cores

This commit is contained in:
Ciro Santilli 六四事件 法轮功
2019-09-04 00:00:00 +00:00
parent b429dcee95
commit 7692bacc55

View File

@@ -12304,6 +12304,23 @@ In an Ubuntu 18.04 host where `python` is `python2` by default, build with Pytho
Python 3 is then automatically used when running if you use that build.
=== gem5 CPU types
gem5 has a few in tree CPU models for different purposes, here is an overview of the most interesting ones:
* `BaseSimpleCPU` descendants. Have no CPU pipeline.
** `AtomicSimpleCPU`: the default one. Memory accesses happen instantaneously. The fastest simulation except for KVM, but not realistic at all. Useful to <<gem5-restore-checkpoint-with-a-different-cpu>>.
** `TimingSimpleCPU: memory accesses are realistic, but the CPU has no pipeline. The simulation is faster than detailed models, but slower than `AtomicSimpleCPU`. TODO: application?
* `MinorCPU`: in-order core. Its 4 stage pipeline is described at the "MinorCPU" section of <<gem5-arm-rsk>>.
** `HPI`: derived from `MinorCPU` simply by parametrization. According to <<gem5-arm-rsk>>: "The HPI CPU timing model is tuned to be representative of a modern in-order Armv8-A implementation."
* `DerivO3CPU`: out-of-order core
==== gem5 ARM RSK
https://github.com/arm-university/arm-gem5-rsk/blob/aa3b51b175a0f3b6e75c9c856092ae0c8f2a7cdc/gem5_rsk.pdf
Dated 2017, it contains a good overview of gem5 CPUs.
=== gem5 ARM platforms
The gem5 platform is selectable with the `--machine` option, which is named after the analogous QEMU `-machine` option, and which sets the `--machine-type`.