虚拟内存中页面大小的关键点

虚拟内存中页面大小的关键点

问题描述:

所以我刚才读到虚拟地址被分成1页和2页偏移量。虚拟内存中页面大小的关键点

我也读过页码指示你能够找到正确的页面和偏移量来获得你想获得物理内存的正确的“字节”。 因此,例如在4KB大小的页面,我们有12bits保留作为偏移自2^12 = 4096,这是4KB

我明白了。但我不明白使用页面的原因。 我的意思是,使用4KB大小的页面或8KB大小的页面,为什么我们不能使用1byte大页面?

我想这可能会使所有的字节逐字节读写,你可以说它会减慢速度。

但是,我们不是已经做了同样的事情,首先找到页面并找到与偏移量正确的字节?

想出大于1byte的页面的动机是什么? 我得到使用虚拟内存的原因:避免交换。但为什么我们不能用更小,更直接的一个字节大小的页面来做到这一点?

+0

摘自[“数据中心计算机在CPU设计中的现代挑战.Dick Sites。Google Inc. February 2015”](http://www.pdl.cmu.edu/SDI/2015/slides/DatacenterComputers.pdf):slide 27 “L1缓存大小=关联性*页面大小 - 需要大于4KB的页面; 256 x 4KB的翻译缓冲区覆盖 仅1MB的内存 - 需要大于4KB的页面; 256KB的RAM @ 4KB:64M页面 - 需要大于4KB页面“,幻灯片29”CPU设计中的现代挑战•大量内存•更多软件预取•更大的页面大小“ – osgx

+0

这非常有帮助。谢谢! – Joseph

+0

有关L1大小=关联*页大小的更多详细信息:它允许缓存具有VIPT速度,但没有同名/同义词别名,因此它也是PIPT。请参阅https://www.ece.cmu.edu/~ece447/s13/lib/exe/fetch.php?media=onur-447-spring13-lecture24-advancedcaching-afterlecture.pdf。另请参阅https://stackoverflow.com/questions/39436982/virtually-addressed-cache –

这与磁盘上的簇大小相同。

较大的页面=>较低的开销(较小的页表)

较小的页面=>大开销

较大的页面=>浪费更多的内存和更多的磁盘读取/写入寻呼

较小的页=>减少内存浪费,减少分页读写磁盘

另外,页面大小往往比现在小得多(512字节是常见的)。随着内存的增长,浪费的内存分页问题减少了,而开销问题(由于更多的页面)增加了。因此我们有更大的页面大小。

一个字节的页面没有任何东西。您必须以完整的磁盘块(通常为512字节或更大)写入磁盘。分页单个字节将会非常慢。

现在添加页面保护和页面表。使用单字节页面时,会有比可用内存更多的页面表开销。

+0

这非常有帮助。谢谢! – Joseph