【发布时间】:2017-05-07 07:11:16
【问题描述】:
所以我刚刚读到虚拟地址分为 1 - 页码和 2 - 偏移量。
我还读到页码指示您能够找到正确的页面和偏移量以获取您想要获取物理内存的正确“字节”。
因此,例如在4KB 大小的页面中,我们将12bits 保留为自2^12 = 4096 以来的偏移量,即4KB。
我明白了这些概念。但我不明白使用页面背后的原因。
我的意思是,使用4KB 大小的页面或8KB 大小的页面,为什么我们不能使用1byte 大页面?
我想这可以使所有内容逐字节地读写,你可以说它会减慢速度。
但是我们不是已经在第一次查找页面并找到带有偏移量的正确字节时做同样的事情了吗?
提出比1byte 更大的页面的动机是什么?
我得到了使用虚拟内存背后的原因:避免交换。但是为什么我们不能用更小、更直接的一字节大小的页面来做到这一点呢?
【问题讨论】:
-
来自"Datacenter Computers modern challenges in CPU design. Dick Sites. Google Inc. February 2015":幻灯片 27“L1 缓存大小 = 关联性 * 页面大小 – 需要大于 4KB 的页面;256 x 4KB 的翻译缓冲区仅占用 1MB 的内存 – 需要大于 4KB 的页面;使用256GB 的 RAM @4KB:64M 页面 – 需要大于 4KB 的页面”,幻灯片 29“CPU 设计的现代挑战 • 大量内存 • 软件中的更多预取 • 更大的页面大小”
-
这很有帮助。谢谢!
-
更多关于 L1 大小 = 关联性 * 页面大小的细节:它允许缓存具有 VIPT 速度但没有同音词/同义词混叠,所以它也是 PIPT。 ece.cmu.edu/~ece447/s13/lib/exe/… 中的第 11 页。另见stackoverflow.com/questions/39436982/virtually-addressed-cache
标签: cpu-architecture virtual-memory