首页 > 其他分享 >RISC-V SV39地址映射方式

RISC-V SV39地址映射方式

时间:2024-03-04 16:35:19浏览次数:22  
标签:VA SV39 PTE PPN RISC 地址映射 地址 56bit

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)字段指定 

 

地址翻译过程

地址翻译过程如下:

  1. satp.PPN 给出一级页表的基地址, VA[38:30] 给出一级索引,因此处理器将读取位于地址(satp.PPN×4096 + VA[38:30]×8,44bit+12bit共56bit)的 PTE;
    1. 如果该PTE是Leaf(即R/W/X非全0),即为1GB页,则LeafPTE 的 PPN 字段和页内偏移(原始虚拟地址的低 30 位)组成最终的物理地址,即PA=(LeafPTE.PPN{2}×1G + VA[29:0],26bit+20bit共56bit),否则
    2. 该 PTE 包含二级页表的基地址, VA[29:21] 给出二级索引,因此处理器将读取位于地址(PTE.PPN{2,1,0}×4096 + VA[29:21]×8,44bit+12bit共56bit)的 PTE;  
      1. 如果给PTE是Leaf(即R/W/X非全0),即为2MB页,则LeafPTE的PPN字段和页内偏移(原始虚拟地址的低21位)组成最终的物理地址,即PA=(LeafPTE.PPN{2,1}*2M + VA[20:0],35bit+21bit共56bit),否则
      2. 该 PTE 包含三级页表的基地址, VA[20:12] 给出三级索引,因此处理器将读取位于地址(PTE.PPN{2,1,0}×4096 + VA[20:12]×8,44bit+12bit共56bit)的叶子 PTE;
        1.  叶子 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

相关文章

  • Book-Riscv-XV6-Chap1
    操作系统接口–阅读xv6-riscv-bookXv6的时钟周期:定时器芯片两次中断之间的时间xv6作为一个简单的操作系统,利用一个“内核kernel”向其他运行中的程序提供服务的特殊程序,这个内核相当于连接了硬件和运行程序。每一个正在运行的程序可以称为进程,都拥有子集的包含指令、数据、......
  • riscv linker relaxations 是什么
    什么是linkerrelaxations由于链接时携带一些符号地址信息,可以执行一些编译时难以或者不大可能实现的优化。LinkerRelaxtion与传统编译时期的优化是不一样的,此优化发生在链接时。通常情况下,在链接时,改变代码的执行序列是有风险的,因为语义信息此时会丢失,链接器看到也仅是字节流......
  • 高性能、低功耗 基于8位AVR®RISC的ATMEGA328PB-MUR、ATMEGA328PB-ANR、ATMEGA328PB-A
    1、说明ATMEGA328PB是一款高性能、低功耗、基于8位AVR®RISC的微控制器,集成了具有读写功能的64kBISP闪存、2kBEEPROM、4kBSRAM、27条通用I/O线、32个通用工作寄存器、两个具有比较模式和PWM的灵活定时器/计数器、一个具有硬件Lin的UART、一个具有两个差分可编程增益输入级......
  • Linux内核在RISC-V架构下的spinlock实现
    riscv没有sev/wfe指令,当前无法在spinlock时省功耗,只能通过while循环不断检查条件。本文分析linux内核下对于spinlock的实现,具体到RISC-V体系结构。由于RISC-V体系结构下目前只是简单的实现了一个基于TAS的最基本的spinlock,本文的另一个附加任务就是分析Linux内核为各个平台下实......
  • RISC-V系列单片机快速入门指南
     如何获取芯片开发资料方法一:按型号选择我们更推荐采用按型号选择的方法,获取所对应型号芯片的开发资料,这能有效降低错误使用资料的风险!沁恒官网首页的产品中心,点击青稞RISC-V通用系列,可跳转至CH32V系列单片机的产品选型表。 以CH32V203C8T6为例,点击红色方框中的芯......
  • 产学研三界顶级大咖分享:RISC-V场景Show暨开源生态高级别论坛定档12/19
    12月19日,RISC-V场景Show暨开源生态高级别论坛即将开幕。本次论坛将邀请来自中科院计算技术研究所副所长包云岗、嘉楠科技AI软件总监张晓晶、阿里巴巴达摩院生态总监陈炜、清华大学长聘副教授陈渝和中科院软件研究所高级工程师于佳耕出席,现场为大家分享新一轮处理器技术突破、RISC-V......
  • 产学研三界顶级大咖分享:RISC-V场景Show暨开源生态高级别论坛定档12/19
    12月19日,RISC-V场景Show暨开源生态高级别论坛即将开幕。本次论坛将邀请来自中科院计算技术研究所副所长包云岗、嘉楠科技AI软件总监张晓晶、阿里巴巴达摩院生态总监陈炜、清华大学长聘副教授陈渝和中科院软件研究所高级工程师于佳耕出席,现场为大家分享新一轮处理器技术突破、RISC-......
  • Si24R03—低功耗 SOC 芯片(集成RISC-V内核+2.4GHz无线收发器)
    Si24R03是一款高度集成的低功耗SOC芯片,其集成了基于RISC-V核的低功耗MCU和工作在2.4GHzISM频段的无线收发器模块。MCU模块具有低功耗、LowPinCount、宽电压工作范围,集成了13/14/15/16位精度的ADC、LVD、UART、SPI、I2C、TIMER、WUP、IWDG、RTC等丰富的外设。内核采用RISC-VRV......
  • RISC-V 环境搭建问题----1
    在此记录一下搭建开源Vivado-risc-v项目时所遇到的一些问题本来已经弄好的差不多了,最后一看,下载的别人网盘的,版本落后了,只支持到vivado2022.1....只好重新拉一下最新的,又踩雷无数。1.wls2进行gitclone时连接拒绝原文:Ubuntu20.4WSL2无法访问github终极解决方案_ubuntug......
  • riscv gnu编译器
    官网https://github.com/riscv-collab/riscv-gnu-toolchain编译器基于RISC-V交叉编译器包括32bit和64bit两种类型,其中每种类型又包括裸机版本(newlib)和动态链接库版本(linuxglibc)newlib./configure--prefix=/opt/riscvmakeglibc#默认仅支持64位target./configure--......