最主要的目的是提升TLB命中率
什么是超页?
由连续的物理页帧组成的集合,这些物理页帧对应着连续的虚拟页;
这些物理页有着相同的高位地址(超页地址);怎么实现超页?
在TLB条目里,有一个flag
,标记这个条目是一个普通页还是超级页。
对于一个2MB的超页,则共有2^11 (2^32B/2MB)个超页,即可用11位来表示超页,
21位来表示偏移位。
对于1GB的超页,则共有2^2 (2^32B/1GB)个超页,即可用2位来表示超页,
30位来表示偏移位。超页的好处有哪些?
显著减少用来映射较大的连续内存的TLB条目,如果使用了2MB的超页,就可以节省511(2^9-1)个TLB条目。超页的适用范围
不适用于小的程序,适用于较大的、需要连续内存的程序超页应用1:映射显示器的帧缓冲区
重绘屏幕时,处理器需要接触到每个像素。在一个高分辨率的显示器上,可能要接触到多达几MB的内存。假设每个TLB条目映射的是4KB的页面,即使是有256个条目的较大的TLB缓存也只能映射1MB的帧缓冲区。所以,当处理器要处理MB级别的内存时,TLB缓存就会重复的做页表查询和不断地拉取新的TLB条目。如果使用超页,将整个帧缓冲区就被映射为一个TLB条目,就可以留下其他条目用于一个应用的其他页。