File tree Expand file tree Collapse file tree 1 file changed +1
-1
lines changed Expand file tree Collapse file tree 1 file changed +1
-1
lines changed Original file line number Diff line number Diff line change @@ -334,7 +334,7 @@ SV39 多级页表的硬件机制
334334
335335 在 SV39 中,如果使用了一级页索引就停下来,则它可以涵盖虚拟页号的高 :math: `9 ` 位为某一固定值的所有虚拟地址,对应于一个 :math: `1 \text {GiB}` 的大页;如果使用了二级页索引就停下来,则它可以涵盖虚拟页号的高 :math: `18 ` 位为某一固定值的所有虚拟地址,对应于一个 :math: `2 \text {MiB}` 的大页。以同样的视角,如果使用了所有三级页索引才停下来,它可以涵盖虚拟页号的高 :math: `27 ` 位为某一个固定值的所有虚拟地址,自然也就对应于一个大小为 :math: `4 \text {KiB}` 的虚拟页面。
336336
337- 使用大页的优点在于,当地址空间的大块连续区域的访问权限均相同的时候,可以直接映射一个大页,从时间上避免了大量页表项的读写开销,从空间上降低了所需节点的数目 。但是,从内存分配算法的角度,这需要内核支持从物理内存上分配三种不同大小的连续区域( :math: `4 \text {KiB}` 或是另外两种大页),便不能使用更为简单的插槽式管理。权衡利弊之后,本书全程只会以 :math: `4 \text {KiB}` 为单位进行页表映射而不会使用大页特性。
337+ 使用大页的优点在于,当地址空间的大块连续区域的访问权限均相同的时候,可以直接映射一个大页,从时间上避免了大量页表项的读写开销,从空间上降低了所需页表节点的数目。更为重要的是,使用大页可以显著减轻 TLB 的压力,提升 TLB 命中率,因为现在 TLB 中一个表项可以覆盖更大的内存空间了。这可以从整体上提高访存指令的执行速度,进而提升整体的 IPC 。但是,从内存分配算法的角度,这需要内核支持从物理内存上分配三种不同大小的连续区域( :math: `4 \text {KiB}` 或是另外两种大页),便不能使用更为简单的插槽式管理。权衡利弊之后,本书全程只会以 :math: `4 \text {KiB}` 为单位进行页表映射而不会使用大页特性。
338338
339339那么 SV39 多级页表相比线性表到底能节省多少内存呢?这里直接给出结论:设某个应用地址空间实际用到的区域总大小为 :math: `S` 字节,则地址空间对应的多级页表消耗内存为 :math: `\frac {S}{512 }` 左右。下面给出了详细分析,对此不感兴趣的同学可以直接跳过。
340340
You can’t perform that action at this time.
0 commit comments