假设一台机器有48位虚拟地址和32位物理地址

时间:2016-06-27 06:52:07

标签: paging tlb

假设一台机器有48位虚拟地址和32位物理地址。

(a)如果页面是4 KB,如果只有一个级别,页面表中有多少条目?

12位偏移所以2 ^ 36? 我觉得这是错的。有人可以向我解释一下吗?

(b)假设这个系统有一个带有32个条目的TLB(Translation Lookaside Buffer)。此外,假设一个程序包含适合一个页面的指令,并且它从一个跨越数千页的数组中顺序读取长整数元素。 TLB对于这种情况有多有效?

2 个答案:

答案 0 :(得分:3)

(a)我们每页需要一个条目,或者2 ^ 24 = 16×1024×1024条目,因为 页码字段中有36 = 48 - 12位。

(b)指令地址将在TLB中达到100%。数据页面将有一个 100点击率,直到程序移动到下一个数据页面。既然一个 4-KB页面包含1,024个长整数,将有一个TLB未命中和 每1,024个数据引用一次额外的内存访问。

答案 1 :(得分:1)

对于(a),是的,您是对的。是2 ^ 36。页面内的地址为12位,页码为36位。虚拟地址没有任何分配位的方法。 最初的解决方案在Tanenbaum的“现代操作系统,第4版,问题解决方案”中提出,我认为它包含一个错误。

这是Tanenbaum的另一项任务:

  

一台计算机具有48位虚拟地址和32位物理地址。页面为8 KB。   单级线性页表需要多少个条目?

和答案(在同一本书中):

  

具有 8 KB 页面和 48位虚拟地址空间,虚拟数量   页数是2 ^ 48/2 ^ 13,即2 ^ 35(约340亿)。