Update chapter1_riscv.md

pull/1/head
Zhiyuan Shao 4 years ago
parent f2b8c1b63e
commit dffe1ba4b7

@ -665,7 +665,7 @@ satp寄存器包含一个44位的PPN它指向了一个页表的根目录所
| ---- | -------- | ------------------------------ | | ---- | -------- | ------------------------------ |
| 0 | Bare | 不对虚地址进行转换和内存保护 | | 0 | Bare | 不对虚地址进行转换和内存保护 |
| 8 | Sv39 | 采用Sv39的方案对虚地址进行转换 | | 8 | Sv39 | 采用Sv39的方案对虚地址进行转换 |
| 9 | Sv48 | 采用Sv39的方案对虚地址进行转换 | | 9 | Sv48 | 采用Sv48的方案对虚地址进行转换 |
实际上除了Sv39和Sv48外系统在未来的扩展中还可能支持更多的扩展如Sv57以及Sv64见[RISC-V instruction set manual](#refenences)。从39、48以及57这几个数字我们可以发现的规律是它们之间两两的差是9结合图1.9中的地址翻译过程我们就很容易理解什么是Sv48了它在Sv39的基础上用上了虚地址中的39~47这9个位一共用了虚地址中的48个位作为第四级虚页号VPN[3]。这样做的结果是在进行地址翻译的时候新增了一级地址翻译。显然Sv48提供了比Sv39更大的虚拟地址空间2^48B=256TB>512GB从而能够支撑更大的应用程序的执行那么选择Sv48是不是比选择Sv39更具优势呢答案是取决于是否真的有必要支撑超过512GB虚地址空间的应用如果不需要则Sv39是更合理的选择。从图1.9中的地址翻译过程我们还可以看到一次虚地址va到实地址pa的转换涉及到4次根目录+页目录+页表+pa所在的页访问内存操作而相比于处理器内部进行的运算而言访存显然是更为耗时的操作。可以想象如果采用Sv48这个转换所需要的访存操作是5次比Sv39更多的。 实际上除了Sv39和Sv48外系统在未来的扩展中还可能支持更多的扩展如Sv57以及Sv64见[RISC-V instruction set manual](#refenences)。从39、48以及57这几个数字我们可以发现的规律是它们之间两两的差是9结合图1.9中的地址翻译过程我们就很容易理解什么是Sv48了它在Sv39的基础上用上了虚地址中的39~47这9个位一共用了虚地址中的48个位作为第四级虚页号VPN[3]。这样做的结果是在进行地址翻译的时候新增了一级地址翻译。显然Sv48提供了比Sv39更大的虚拟地址空间2^48B=256TB>512GB从而能够支撑更大的应用程序的执行那么选择Sv48是不是比选择Sv39更具优势呢答案是取决于是否真的有必要支撑超过512GB虚地址空间的应用如果不需要则Sv39是更合理的选择。从图1.9中的地址翻译过程我们还可以看到一次虚地址va到实地址pa的转换涉及到4次根目录+页目录+页表+pa所在的页访问内存操作而相比于处理器内部进行的运算而言访存显然是更为耗时的操作。可以想象如果采用Sv48这个转换所需要的访存操作是5次比Sv39更多的。

Loading…
Cancel
Save