SV39地址映射
PTE
SV39是RV64支持的虚拟地址转换方式,其虚拟地址是39bit,可以映射的物理地址是56bit,页表entry格式如下,512GB地址空间被划分为512个1GB的吉页,每个吉页被进一步划分为512个2MB的兆页,每个兆页被进一步划分为512个4KB的基页:
satp
SV39页表的基地址由satp(Supervisor Address Translation and Protection)的PPN(physical page number)字段指定
地址翻译过程
地址翻译过程如下:
- satp.PPN 给出一级页表的基地址, VA[38:30] 给出一级索引,因此处理器将读取位于地址(satp.PPN×4096 + VA[38:30]×8,44bit+12bit共56bit)的 PTE;
- 如果该PTE是Leaf(即R/W/X非全0),即为1GB页,则LeafPTE 的 PPN 字段和页内偏移(原始虚拟地址的低 30 位)组成最终的物理地址,即PA=(LeafPTE.PPN{2}×1G + VA[29:0],26bit+20bit共56bit),否则
- 该 PTE 包含二级页表的基地址, VA[29:21] 给出二级索引,因此处理器将读取位于地址(PTE.PPN{2,1,0}×4096 + VA[29:21]×8,44bit+12bit共56bit)的 PTE;
- 如果给PTE是Leaf(即R/W/X非全0),即为2MB页,则LeafPTE的PPN字段和页内偏移(原始虚拟地址的低21位)组成最终的物理地址,即PA=(LeafPTE.PPN{2,1}*2M + VA[20:0],35bit+21bit共56bit),否则
- 该 PTE 包含三级页表的基地址, VA[20:12] 给出三级索引,因此处理器将读取位于地址(PTE.PPN{2,1,0}×4096 + VA[20:12]×8,44bit+12bit共56bit)的叶子 PTE;
- 叶子 PTE 的 PPN 字段和页内偏移(原始虚拟地址的低 12 位)组成最终的物理地址,即PA=(LeafPTE.PPN{2,1,0}×4096 + VA[11:0],44bit+12bit共56bit)。
标签:VA,SV39,PTE,PPN,RISC,地址映射,地址,56bit From: https://www.cnblogs.com/brianw/p/18052065