在x86_64体系结构中使用多个页面大小的TLB

Ale*_*der 2 x86 x86-64 tlb mmu

有人知道TLB(L1和L2)是否支持现代x86_64微处理器(Intel SandyBridge,AMD Bulldozer)中多页大小的同时访问?x86核心管道是否向MMU提供有关页面大小的信息?

最好的祝福,

亚历克斯

Nat*_*man 5

这不是TLB允许的问题,而是架构允许的问题.该体系结构表明,您可以通过将PS页面目录条目中的位设置为适当的级别,在同一页面层次结构中混合使用小(4k),大(2M)和大(1G)页面.

并非所有级别的TLB都必须能够缓存所有大小的页面,但如果您愿意,这不应该阻止您混合页面.

现在,MMU之前的x86管道中没有任何内容实际上需要有关页面大小的数据.这都是在页面层次结构本身中编码的.


关于页面拆分,如果你在地址处有一个页面边界x,并且你有一个x - 1超过1个字节宽的内存访问,它将访问这两个页面.即使两个页面的大小不同,这也会起作用.