File tree Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Original file line number Diff line number Diff line change @@ -307,7 +307,7 @@ SV39 多级页表的硬件机制
307307
308308- 当 ``V `` 为 0 的时候,代表当前指针是一个空指针,无法走向下一级节点,即该页表项对应的虚拟地址范围是无效的;
309309- 只有当 ``V `` 为1 且 ``R/W/X `` 均为 0 时,表示是一个合法的页目录表项,其包含的指针会指向下一级的页表;
310- - 注意: 当``V`` 为1 且 ``R/W/X `` 不全为 0 时,表示是一个合法的页表项,其包含了虚地址对应的物理页号。
310+ - 注意: 当 ``V `` 为1 且 ``R/W/X `` 不全为 0 时,表示是一个合法的页表项,其包含了虚地址对应的物理页号。
311311
312312在这里我们给出 SV39 中的 ``R/W/X `` 组合的含义:
313313
@@ -384,4 +384,4 @@ SV39 地址转换过程
384384
385385但如果修改了 `satp ` 寄存器,说明内核切换到了一个与先前映射方式完全不同的页表。此时快表里面存储的映射已经失效了,这种情况下内核要在修改 `satp ` 的指令后面马上使用 `sfence.vma ` 指令刷新清空整个 TLB。
386386
387- 同样,我们手动修改一个页表项之后,也修改了映射,但 TLB 并不会自动刷新清空,我们也需要使用 `sfence.vma ` 指令刷新整个 TLB。注:可以在 `sfence.vma ` 指令后面加上一个虚拟地址,这样 `sfence.vma ` 只会刷新TLB中关于这个虚拟地址的单个映射项。
387+ 同样,我们手动修改一个页表项之后,也修改了映射,但 TLB 并不会自动刷新清空,我们也需要使用 `sfence.vma ` 指令刷新整个 TLB。注:可以在 `sfence.vma ` 指令后面加上一个虚拟地址,这样 `sfence.vma ` 只会刷新TLB中关于这个虚拟地址的单个映射项。
You can’t perform that action at this time.
0 commit comments