【发布时间】:2013-10-03 01:45:36
【问题描述】:
x86/x86_64 处理器中使用哪种寻址方式在 L1、L2 和 L3(LLC) 中进行缓存 - 物理或虚拟(使用 PT/PTE 和 TLB),PAT(page attribute table) 会以某种方式对其产生影响?
p>在这种情况下,驱动程序(内核空间)和应用程序(用户空间)之间有区别吗?
简答 - 英特尔使用 虚拟索引、物理标记 (VIPT) L1 缓存:What will be used for data exchange between threads are executing on one Core with HT?
- L1 - 虚拟寻址(在
8-way缓存中定义Set需要低12 bits这在 virt 和 phys 中相同) - L2 - 物理寻址(需要访问 TLB 以获得 Virt-2-Phys)
- L3 - 物理寻址(需要访问 TLB 以获得 Virt-2-Phys)
【问题讨论】:
-
您无法寻址缓存。您只能寻址内存。缓存由 CPU 私下处理。
-
@Kerrek SB 是的,我知道,但是 CPU 缓存是否使用 TLB 和虚拟寻址的所有开销?
-
L1 仍然是物理标记的,正如您所说,索引获得了虚拟的速度,但也没有物理的别名。所以它真的是L1 - 物理;它的行为与 PIPT 完全相同,但延迟时间降低了几个周期。在 Intel CPU 中只有 uop-cache 是虚拟寻址的。请不要在您的问题中编辑答案。
标签: caching x86 virtual-memory tlb virtual-address-space