dou*_*gvk 11 memory 64-bit computer-architecture
我正在阅读有关 64 位计算的这篇文章,其中提到:
例如,截至 2011 年的 AMD64 架构允许物理内存为 52 位,虚拟内存为 48 位
我认为允许更多的虚拟内存比物理内存更有意义,那么为什么实际上相反呢?
额外问题:在 64 位架构上“允许”52 位或 48 位是什么意思?其他位是做什么用的?
Wan*_*gic 12
这是一张 AMD64 页表的图片(来自 AMD Architecture Programmer's Guide, Vol. 2, Rev 3.23, 2013, page 132)。

AMD64 架构中页面的“自然”大小是 2 12 =4096 字节。(有些模式可以有 2 21 = 2Mbyte 页,但我们现在将忽略它们。)
每个页表条目 (PTE)(或取决于称为 PDE、PDPE 或 PML4E 的级别)是 64 位 = 2 3字节。所以每页有 2 9个条目。因此,4 级页表为每个进程提供 4x9+12=48 位的虚拟地址。遍历页表很昂贵,因此除非/直到有消费者需求,否则它们不会扩展到 5 或 6 级。
我不确定他们为什么决定 52 位物理地址限制。这可以在未来扩展到 63 位。以 2013 年 10 月的价格(4Gbit 芯片约 1 美元/千兆),构建 2 52字节内存将花费超过 32,000,000.00 美元,因此需要一段时间才能有任何显着的增加物理地址限制的需求。您想要保持物理地址尽可能小的原因有很多:例如,TLB 和缓存标签必须保存物理地址。
物理内存多于虚拟内存并不一定会倒退。虚拟内存是每个进程的,而物理内存是由所有进程共享的。因此,具有 48 位虚拟地址和 2 52字节内存的服务器可以同时支持 16 个进程,并且仍然保证不需要交换。
| 归档时间: |
|
| 查看次数: |
2278 次 |
| 最近记录: |