【发布时间】:2019-01-07 21:06:27
【问题描述】:
我得到了一个具有 64 位虚拟地址空间的系统。页面大小为 2KB。 此外,物理内存的大小为 16GB。
我需要计算以下参数: 页条目数(页表中的行数),页偏移量需要多少位,虚拟页号(VPN)需要多少位,物理页号需要多少位( PPN)。
所以,首先我得出结论,虚拟内存的大小是 2^64 字节,这意味着页表中有 2^53 个条目。
从页面的大小我得出的结论是页面偏移需要 11 位。
从这里我不太确定。
由于每个虚拟地址的大小为 64 it,因此 VPN 的大小为 64 - 11 = 53 位。
由于物理内存大小为 2^34 字节,因此物理地址为 34 位。这意味着 PPN 的大小为 34 - 11 = 23 位。
我的计算是否正确?还有我的想法对吗?
我们将不胜感激
【问题讨论】:
-
你的计算对我来说看起来不错。
-
好的,谢谢!我只想再澄清一件事:vpn 的大小(以位为单位)是否总是与页表中的条目数相同? (当表格不是多级时)
-
不一定,尤其是当 TLB 未命中由操作系统而非硬件处理时。可以设计页表,以便多个 VPN 可以映射到页表中的同一条目。然后,一个条目将包含它映射的 VPN。本质上,该表的工作方式类似于直接映射缓存。但如果 TLB 未命中由硬件处理,那么通常是的,页表中的每个条目都对应一个唯一的 VPN。
标签: memory paging cpu-architecture