diff --git a/README.adoc b/README.adoc index a9a44c0..e9f6c39 100644 --- a/README.adoc +++ b/README.adoc @@ -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 <>. +** `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 <>. +** `HPI`: derived from `MinorCPU` simply by parametrization. According to <>: "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`.