6

我需要在 multicoe x86-64 处理器中添加一些硬件并使用仿真对其进行测试,所以我正在考虑使用 QEMU。但我想知道在 qemu 中建模 CPU 的总体思路。任何关于这方面的好文件都会很棒。如果太难做,我可能会考虑只使用 PIN 工具进行简单的模拟。

此外,是否可以使用 QEMU 对非常规硬件进行建模,例如处理器不同内核之间的一些共享寄存器?当前实现的模型是否正确模拟了缓存访问之类的东西?qemu 模拟器是否精确测量模拟的经过时间?

4

1 回答 1

2

这里有很多问题。当您说“添加一些硬件”时,您是什么意思?协处理器还是一些额外的外围设备?

QEMU 是一个通用的翻译器,它的前端可以将各种架构转换成常见的 TCG 操作格式,然后可以为各种主机架构生成代码。它被设计为快速且语义准确(即指令的行为应该与真实硬件上的行为一样)。但是,它并非旨在模拟微架构,因此缓存建模之类的事情超出了它的范围。虽然 -icount 模式在翻译期间提供确定性时间,但它与实际处理器执行指令所需的时间没有任何关系。

如果您想对小型功能内核进行建模和试验,那么 PIN 可能是完成这项工作的更好工具。

于 2020-06-12T16:44:04.633 回答