gpt4 book ai didi

hardware - 为什么 RDTSC 是现代处理器上的虚拟化指令?

转载 作者:行者123 更新时间:2023-12-04 06:46:00 26 4
gpt4 key购买 nike

我正在研究 RDTSC 并了解它是如何为 VirtualBox 和 VMWare 等虚拟机进行虚拟化的。为什么英特尔/AMD 费尽心思虚拟化这条指令?

我觉得它可以很容易地用陷阱来模拟,而且它并不是一个 super 常见的指令(我测试过,在禁用了硬件 RDTSC 虚拟化的虚拟机中,一般使用没有明显的减速)。

但是,我知道英特尔/AMD 不会费尽心思将这条指令添加到虚拟化硬件中,除非能够非常快速地执行很重要。

有谁知道为什么?

最佳答案

通常使用 RDTSC 来获取细粒度的时序信息,其中虚拟化陷阱的开销将非常显着。最常见的用途是让两条 RDTSC 指令之间有少量代码,将时间差作为代码序列的耗时(周期数)。因此,即使是管道排水/冲洗的开销也相当大。

此外,由于所有指令所做的都是读取一个连续运行的计数器,因此对其进行虚拟化非常容易——硬件只需要允许在 VM 上下文切换时保存/重新加载计数器值,而不是对 RDTSC 指令本身进行任何特殊处理。

关于hardware - 为什么 RDTSC 是现代处理器上的虚拟化指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7745543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com