在gem5中运行仿真时,我可以使用fs.py --cpu-type
选择一个CPU。
如果我使用无效的CPU类型,例如fs.py --cpu-type
,则此选项还可以显示所有CPU类型的列表。
这些CPU类型之间有什么区别,我应该为实验选择哪种类型?
受https://www.mail-archive.com/gem5-users@gem5.org/msg16976.html启发的问题
答案 0 :(得分:1)
有关CPU类型的概述,请访问:https://cirosantilli.com/linux-kernel-module-cheat/#gem5-cpu-types
总结:
简化的CPU(源自BaseSimpleCPU
):例如AtomicSimpleCPU
(默认值)。它们没有CPU流水线,因此完全不现实。但是,它们的运行速度也快得多。因此,它们对于快速启动Linux然后检查点并切换到更详细的CPU很有用。
一种替代方法是,如果主机和来宾ISA相同,则使用KVM CPUs来加快启动速度,尽管从2019年开始,KVM的稳定性较差,因为它更难以实现和调试。
顺序CPU:通过参数化从通用MinorCPU
派生,Minor代表顺序:
HPI
由ARM制造,并为“(2017)现代有序Armv8-A实现”建模。这是您最好的有序ARM下注。DerivO3CPU
派生出来的乱序CPU,O3代表乱序:
ex5_big
,但您必须验证其作者对真实模型的建模程度的主张。核心A15核心。如果这些方法都不足够满足您的目的,则可以尝试通过像MinorCPU
一样设置DerivO3CPU
/ HPI
来建立自己的有序/无序模型。和ex5_big
可以做到,尽管这可能很难解决,因为在没有实验或逆向工程的情况下,非自由CPU上通常没有足够的公共信息来做到这一点。