虚拟TLB是什么?

时间:2013-03-26 08:27:39

标签: paging virtual-memory tlb kernel32 mmu

有人知道Virtual TLB是什么意思,这个VTLB与普通TLB有什么区别..我在Google上找不到明确的答案?

3 个答案:

答案 0 :(得分:0)

在模拟具有MMU的CPU时,逻辑到物理地址转换必须快速。为此,我们遵循硬件示例并在软件中模拟TLB。一种选择是明确模仿特定CPU架构的TLB的行为。不幸的是,TLB操作的细节通常没有完全公开,即使它们是,它们在软件中仿效也不是那么有效。 This may help you

答案 1 :(得分:0)

你在看kvm代码吗?

转换后备缓冲区(TLB)缓存从虚拟地址到物理地址的映射。虚拟TLB在软件中执行此操作。例如,如果物理地址的计算非常复杂,那么它很有用。

考虑在主机上运行的guestVM。如果guestVM访问虚拟内存地址A,则必须将其转换为来宾物理地址B,然后必须将此B转换为主机虚拟地址C(guestVM是主机上的一种进程)。然后将其转换为实际/主机物理地址D.

答案 2 :(得分:0)

vTLB由VMM(虚拟机管理器)管理。

客户操作系统可能会尝试写入CR3。对CR3的任何写入都意味着TLB刷新和可能的页表更改。执行以下步骤:

  1. VMM记录了新的CR3值(稍后用于遍历访客页表)并模拟写入。
  2. VMM分配一个新的PD页面,其中包含所有无效条目。
  3. VMM将实际处理器CR3寄存器设置为指向新的PD页面。 此时,出于性能原因,VMM可能会推测性地填写VTLB映射。