如果我们有下面的配置例如,我们如何计算页表的大小
计算机使用 46 位虚拟地址、32 位物理地址和三级页表组织。页表基址寄存器存放的是一级表的基地址,它只占用一页。一级页表的每个条目都存储二级页表的一个页的基地址。二级页表的每个条目都存储了三级页表的基地址。第三级页表的每个条目都存储一个页表条目(PTE)。PTE 大小为 32 位。计算机中使用的处理器有一个 1 MB 的 16 路集关联虚拟索引物理标记高速缓存。缓存块大小为 64 字节。
如果我们有下面的配置例如,我们如何计算页表的大小
计算机使用 46 位虚拟地址、32 位物理地址和三级页表组织。页表基址寄存器存放的是一级表的基地址,它只占用一页。一级页表的每个条目都存储二级页表的一个页的基地址。二级页表的每个条目都存储了三级页表的基地址。第三级页表的每个条目都存储一个页表条目(PTE)。PTE 大小为 32 位。计算机中使用的处理器有一个 1 MB 的 16 路集关联虚拟索引物理标记高速缓存。缓存块大小为 64 字节。
首先找到页面大小。然后您可以从中计算页表大小。
所有页表都驻留在物理内存 (RAM) 中,因为物理地址是 32 位可寻址的,每个级别表都保存 RAM 的 32 位(4 字节)地址
假设一个页面的大小是 x 字节。(我们需要找到)
由于 1 级表的大小也是 x(如问题中给出的 1 级表正好容纳一个页面),它可以容纳 x/4 个 2 级表的 x/4 个基地址(也正好容纳一个页面)并且每个2 级表保存 x/4 个 3 级表的基地址。
3 级表的实体等于 2^46/x
IE。(x/4)(x/4)(x/4) = 2^46/x
关于解决 x=8192 以字节为单位的问题,因此 8192/1024 = 8 K 字节