了解 QEMU 时钟
Understanding QEMU clocks
我正在尝试了解 QEMU 时钟。有几个可用的参考时钟。最重要的是:
- QEMU_CLOCK_REALTIME 实际上是主机 OS 特定函数的包装器,例如 QueryPerformanceCounter() 或 clock_gettime(),然后转换为 ns 单位
- QEMU_CLOCK_VIRTUAL 仅在仿真期间运行。在icount模式下,虚拟时钟值是根据执行的指令数计算的。
好像默认使用QEMU_CLOCK_VIRTUAL。
所以我想知道 QEMU_CLOCK_VIRTUAL 是否与实时时钟同步?换句话说,从指令计数器获得的虚拟纳秒如何与真实纳秒相关,以便用户可以将模拟硬件的速度感知为原始硬件?
有人可以给我提示吗?
提前致谢!
In other words, how virtual nanoseconds obtained from instruction
counter are related to real nanoseconds
虚拟时间仅在 QEMU 以 -icount
选项运行时与指令计数器相关。在那种情况下,它与实时不匹配,其前进速度取决于主机 CPU 运行访客指令的速度。
当 -icount
未指定时,虚拟时间与实际时间同步。如果您尝试从来宾内部测量来宾指令时序,则结果可能不切实际。
我正在尝试了解 QEMU 时钟。有几个可用的参考时钟。最重要的是:
- QEMU_CLOCK_REALTIME 实际上是主机 OS 特定函数的包装器,例如 QueryPerformanceCounter() 或 clock_gettime(),然后转换为 ns 单位
- QEMU_CLOCK_VIRTUAL 仅在仿真期间运行。在icount模式下,虚拟时钟值是根据执行的指令数计算的。
好像默认使用QEMU_CLOCK_VIRTUAL。
所以我想知道 QEMU_CLOCK_VIRTUAL 是否与实时时钟同步?换句话说,从指令计数器获得的虚拟纳秒如何与真实纳秒相关,以便用户可以将模拟硬件的速度感知为原始硬件?
有人可以给我提示吗? 提前致谢!
In other words, how virtual nanoseconds obtained from instruction counter are related to real nanoseconds
虚拟时间仅在 QEMU 以 -icount
选项运行时与指令计数器相关。在那种情况下,它与实时不匹配,其前进速度取决于主机 CPU 运行访客指令的速度。
当 -icount
未指定时,虚拟时间与实际时间同步。如果您尝试从来宾内部测量来宾指令时序,则结果可能不切实际。