首页 文章

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

提问于
浏览
2

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

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

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

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

2 回答

  • 1

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

    (b)指令地址将在TLB中达到100% . 在程序移动到下一个数据页之前,数据页将具有100命中率 . 由于4 KB页面包含1,024个长整数,因此每1,024个数据引用将有一个TLB未命中和一个额外的内存访问 .

  • 2

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

    这是Tanenbaum的另一项任务:

    一台机器有48位虚拟地址和32位物理地址 . 页数为8 KB . 单级线性页表需要多少条目?

    答案(在同一本书中):

    对于8 KB页面和48位虚拟地址空间,虚拟页面的数量为2 ^ 48/2 ^ 13,即2 ^ 35(约340亿) .

相关问题