0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RISC-V PMP寄存器介绍

麦辣鸡腿堡 来源:嵌入式Linux充电站 作者: Vincent 2023-10-07 17:39 次阅读

每个 PMP 区域都由一个 8 位 pmpXcfg 字段描述,与一个 64 位 pmpaddrX寄存器结合使用,该寄存器保存受保护区域的基地址。每个区域的范围取决于下一节中描述的寻址 (A) 模式。pmpXcfg 字段位于 64 位 pmpcfgY CSR中。

每个 8 位 pmpXcfg 字段包括一个读、写和执行位,外加一个两位地址匹配字段 A 和一个锁定位 L。允许重叠区域,其中编号最小的 PMP条目胜出该区域。

PMP 配置寄存器

对于 RV64 架构,未实现 pmpcfg1 和 pmpcfg3。这减少了占用空间,因为 pmpcfg2 已经包含 RV32 和 pmp11cfg的配置字段 pmp8cfg 和 RV64。

图片

pmpcfgY 和 pmpaddrX 寄存器只能通过 CSR 特定指令访问,例如用于读取的 csrr 和用于写入的 csrw。

图片

复位后,PMP 寄存器字段 A 和 L 设置为 0。RISC‑V 指令集手册第 II 卷:特权架构版本 1.10 未指定所有其他 hart状态。

下面是一些使用 NAPOT 地址模式的例子。

图片

PMP 地址寄存器

PMP 有 8 个地址寄存器。每个地址寄存器 pmpaddrX 都与相应的 pmpXcfg字段相关联。每个地址寄存器都包含右移两位的受保护区域的基地址,以实现最小 4 字节对齐。

根据 RISC‑V 指令集手册,第二卷:特权架构,版本 1.10,最大编码地址位为 [55:2]

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5037

    浏览量

    117764
  • 内核
    +关注

    关注

    3

    文章

    1309

    浏览量

    39862
  • PMP
    PMP
    +关注

    关注

    0

    文章

    43

    浏览量

    18068
  • RISC
    +关注

    关注

    6

    文章

    431

    浏览量

    83250
  • 架构
    +关注

    关注

    1

    文章

    485

    浏览量

    25200
  • sifive
    +关注

    关注

    0

    文章

    34

    浏览量

    9423
收藏 人收藏

    评论

    相关推荐

    RISC-V PMP调试

    RISC-V PMP调试
    的头像 发表于 06-08 11:52 1310次阅读
    <b class='flag-5'>RISC-V</b> <b class='flag-5'>PMP</b>调试

    RISC-V开放架构设计之道|阅读体验】RISC-V基础整数指令集

    第2章 RV32I:RISC-V基础整数指令集 本章重点讲解构成RISC-V基础整数指令集的基本指令和指令格式。主要包含寄存器间操作的R型,用于短立即数和取数操作的I型,用于存数操作的S型,用于条件
    发表于 01-31 21:10

    RISC-V 基础学习:RISC-V 基础介绍

    缩写 [###] 用于标识处理位宽,取值[32, 64,128],也就是处理寄存器位宽 [abc...xyz] 标识该处理支持的指令模块集合 比如:RV64IMAC, 表示6
    发表于 03-12 10:25

    RISC-V工作模式及寄存器基本知识

    RISC-V Linux为例,Linux应用程序处于U模式,Linux内核/uboot处于S模式,M模式则是OpenSBI。M模式拥有最高访问权限,Linux内核如果要访问CSR寄存器,则必须由S模式切换
    发表于 04-12 14:06

    为何什么risc-v芯片比arm的效率高

    免费使用和修改其指令集,这促进了RISC-V生态系统的快速发展。随着越来越多的公司和开发者参与到RISC-V的开发和优化中来,RISC-V芯片的性能和效率得到了不断提升。 此外,RISC-V
    发表于 04-28 09:38

    如何在RISC-V处理上使用FreeRTOS?

    RISC-V实现共有的寄存器的基本移植,以及一组macros,实现硬件特定的特性和扩展。1. 快速入门为RISC-V内核构建FreeRTOS,步骤如下:1包含FreeRTOS内核源代码及RIS
    发表于 11-29 15:54

    简单就是美——RISC-V架构的设计哲学

    寄存器RISC-V架构支持32位或者64位的架构,32位架构由RV32表示,其每个通用寄存器的宽度为32比特;64位架构由RV64表示,其每个通用寄存器的宽度为64比特。
    发表于 07-27 17:47

    RISC-V开源处理介绍

    本期文章目录一个小型RISC-V开源处理介绍!#SOC#FPGA#RISC-V点击阅读数字积木从零开始写RISC-V处理
    发表于 07-23 09:42

    玄铁VirtualZone:基于RISC-V架构的安全扩展

    (PMP)RISC-V架构提供了一种PMP物理内存保护机制,用于隔离M模式与S/U模式下的内存访问。只有M模式才有权限配置PMPPMP包含
    发表于 09-01 14:38

    RISC-V ISA是怎样进行命名的

    RISC-V ISA 命名规范RISC-V ISA 采用模块化的方式进行组织,每一个模块使用一个英文字母表示,其命名格式可以参考如下:RV[字宽][指令集模块]RV:RISC-V字宽(处理
    发表于 12-09 06:31

    RISC-V基础知识:模块化开放式的ISA CISC和RISC代码区别

    一些寄存器应该保存临时或已保存的数据、指针、返回地址等。表 2.RV32I寄存器文件显示RISC-V应用二进制接口中指定的硬件寄存器名称及其分配的功能。
    发表于 12-23 17:51

    初探RISC-V—《RISC-V体系结构编程与实践》

    最近有幸读了一本介绍RISC-V的书籍《RISC-V体系结构编程与实践》,这是一本非常有价值的书籍,它介绍RISC-V体系结构的各个方面,
    发表于 03-28 11:41

    RISC-V 发展

    通用寄存器,每个通用寄存器都有各自的用途。例如x2是作为sp栈指针、a0-a1用来保存函数参数或返回值。x0寄存器被硬编码为了0,就是个0值寄存器。ABI名称相当于这些通用
    发表于 04-14 10:18

    RISC-V gp全局指针寄存器说明

    RISC-V 32个寄存器之一,为了优化±2KB内全局变量的访问。 gp寄存器在启动代码中加载为__global_pointer$的地址,并且之后不能被改变。 linker时使用__global_pointer
    发表于 09-11 16:57

    RISC-V CSR寄存器介绍

    RISC-V CSR寄存器 CSR是控制状态寄存器RISC-V中CSR寄存器,需要使用csrr、csrw、csrrw等特定指令进行访问。
    的头像 发表于 10-08 14:53 2715次阅读
    <b class='flag-5'>RISC-V</b> CSR<b class='flag-5'>寄存器</b><b class='flag-5'>介绍</b>