PMP 配置通过一组控制寄存器(PMPCSR)和地址寄存器(PMPADDR)来实现。每个 PMP 配置段由一个配置寄存器和一个地址寄存器组成。 PMP 配置寄存器(pmpcfg):用于配置内存区域的访问权限和模式。 PMP 地址寄存器(pmpaddr):用于定义内存区域的起始地址和大小。 PMP 配置寄存器(pmpcfg)的格式 每个PMP 配置寄存器包含 8 个 8...
1、PMP配置寄存器 如上图所示,一个寄存器可以放64bit,即可以配置8个地址范围,所以64bitRISCV需要8个reg,因为规定是reg名字只能是双数,所以就是0/2/4/6/8……/14 RISCV有三种特权模式:M、S、U RISC-V特权架构 - 特权模式与指令_riscv wfi指令-CSDN博客 这64个配置寄存器就分别表示了这64个地址范围的权限...
RISC-V的PMP功能介绍01R11W21X2A虽然每一个配置只有8bit,但是risc-v提供的pmpcfg寄存器在32bitCPU上是32bit的,为了充分利用每一个bit,一个32bit的pmpcfg寄存器包含4个pmpcfg配置,其结构如下:pmpctg=(pmp3cfg<<24)|(pmp2cfg<<16)I(pmpcfg=(pmp7cfg<<24)|(pmp6cfg<<16)I(pmpctgl=(pmp15ctg<<24)...
PMP 配置寄存器 对于RV64 架构,未实现 pmpcfg1 和 pmpcfg3。 这减少了占用空间,因为 pmpcfg2 已经包含 RV32 和 pmp11cfg 的配置字段 pmp8cfg 和 RV64。 pmpcfgY 和 pmpaddrX 寄存器只能通过 CSR 特定指令访问,例如用于读取的 csrr 和用于写入的 csrw。 复位后,PMP 寄存器字段 A 和 L 设置为 0。RISC...
PMP允许区域锁定,一旦一个区域被锁定,进一步对配置和地址寄存器的写入将被忽略。已锁定的PMP条目只能通过系统复位解锁。通过在pmpXcfg寄存器中设置L位可以锁定一个区域。 In addition to locking the PMP entry, the L bit indicates whether the R/W/X permissions are enforced on machine mode accesses. When th...
1. PMP的基本作用: 为了限制不可信代码只能访问自己特定的内存部分,RISCV处理器引入了PMP功能。2. PMP的实现方式: 通过设置两类寄存器实现PMP:配置寄存器和地址寄存器。 配置寄存器为8位,地址寄存器对于RV32为32位,RV64为64位。 一个PMP入口由一个配置寄存器和一个地址寄存器组成,它们都是CSR的一...
RISC-V通过设置两类寄存器实现PMP:配置寄存器和地址寄存器。配置寄存器为8位,地址寄存器对于RV32为32位,RV64为64位,通常记录为MXLEN位。一个PMP入口由配置寄存器和地址寄存器组成。配置寄存器和地址寄存器都是CSR(控制和状态寄存器)的一部分。地址寄存器通常包含8到16个,配置寄存器共16个。实际实现中...
PMP(Physical Memory Protection)是RISC-V架构中的一种内存保护机制,用于保护物理内存的访问权限。PMP允许程序员定义一组内存访问控制规则,以限制特定部分内存的访问权限。 在RISC-V架构中,PMP是通过PMP寄存器来配置的。PMP寄存器定义了一组PMP条目,每个PMP条目包含了一些字段,用于描述内存区域的基地址、访问权限等信息...
PMP机制的实现可以分为以下步骤: 第一步是设置权限位。在RISC-V架构中,每个物理内存页都有对应的4个权限位M、S、U、P,其中M是机器级别的,S是监管级别的,U是用户级别的,P是PMP保护级别。这4个权限位可以灵活配置,以满足特定的安全需求。例如,可以将某个权限位设置为只读,这意味着只有读取内存的权限而没有写...