第一个问题:如果既不知道每条指令使用多少个周期,也不知道 CPU 分支预测逻辑,它们如何实现周期精度?
该模拟器确实为足够精确的 CPU 模型提供了周期精确的模拟,但没有为英特尔或 AMD 当前产品提供开箱即用的模型。Intel 或 AMD 的人员可以访问所需信息,可以创建 RTL 级模型并获得当前处理器的周期精确模拟。英特尔和 AMD 以外的人不能。您仍然可以将公开的信息提供给模拟器并获得合理的结果。这些结果与真实硬件不同。
如果您是软件开发人员并想对真实硬件进行基准测试,请使用真实硬件!像 PLTsim 这样的模拟器是为(学术)硬件开发人员设计的,他们希望在不花费数十万美元购买新芯片的情况下测试新硬件功能。
第二个问题:理论上是否可以在基于 x86 的硬件上实现硬 rtos?
当然理论上是可以的。您需要考虑所有情况下所有输入的每个代码段的绝对最坏情况。实际的问题是像Core 2这样的处理器非常复杂,处理器的状态是巨大的。此外,这些处理器并未设计为在时序方面具有确定性。一个非常硬的 RTOS 必须非常保守。最后,正如您正确观察到的那样,英特尔和 AMD 以外的人无法获得做出这些保守假设所需的所有信息。在实践中,传递最新和最好的 cpu 并使用具有确定性时序的较旧、更简单的 cpu 是合理的。
另一方面,如果 RTOS 不必真的很难实时,你总是可以只包括一些安全余量并希望最好。;-)