奔腾寻呼

在开发 Pentium 时,内存大小以及运行它们的程序越来越大。操作系统必须做更多的工作来维护分页子系统,只需要在使用大型程序或数据集时需要更新的页面索引数量。

因此,Pentium 设计人员添加了一个简单的技巧:他们在页面目录的条目中添加了一个额外的位,指示下一级是否是页面表(如前所述) - 或直接转到 4 MB 页面! 通过具有 4 MB 页面的概念,操作系统不必创建页面表并填充 1,024 个条目,这些条目基本上将地址索引 4K 比前一个更高。

地址布局

+-----------+----------------------+
| Dir Index | 4MB Byte Index       |
+-----------+----------------------+
 3         2 2                    0   Bit
 1         2 1                    0   number

目录条目布局

+-----------+----+---+------+-----+---+---+
| Page Addr | OS | S | Used | Sup | W | P |
+-----------+----+---+------+-----+---+---+
Page Addr = Top 20 bits of Page Table or Page address
OS        = Available for OS use
S         = Size of Next Level: 0 = Page Table, 1 = 4 MB Page
Used      = Whether this page has been accessed or written to
Sup       = Whether this page is Supervisory - onlly accessible by the OS
W         = Whether this page is allowed to be Written
P         = Whether this page is even Present

当然,这有一些后果:

  • 4 MB 页面必须从 4 MB 地址边界开始,就像 4K 页面必须从 4K 地址边界开始一样。
  • 所有 4 MB 必须属于一个程序 - 或由多个程序共享。

这非常适合用于大内存外围设备,例如图形适配器,它具有需要映射以供操作系统使用的大型地址空间窗口。