【发布时间】:2011-12-21 15:27:28
【问题描述】:
是否可以在 x86-64 架构上以长模式直接向 TLB 提供给定虚拟地址的物理地址?
例如,假设我在 PML4E 中设置了 0,因此会触发页面错误异常,因为会找到无效地址,在异常期间 CPU 可以通过使用某些指令告诉 TLB 该虚拟地址位于在 X 物理页框?
我想这样做是因为通过代码我可以很容易地判断物理地址在哪里,这样可以避免昂贵的页面遍历。
【问题讨论】:
-
您如何知道地址将在哪个框架中?不是每次都是随机的吗?
-
只有在软件而不是硬件 (TLB) 中执行它才会很昂贵,花费许多周期来保存和恢复 CPU 寄存器并在通往异常的过程中管理一些其他内核数据结构处理程序并返回。
标签: operating-system x86-64 tlb