PMA相关属性梳理

PMA全称为物理内存属性(Physical Memory Attributes)-3,它是RISC-V架构中的一个底层硬件机制,用于定义系统物理内存空间中,每个特定地址范围的固有特性与访问行为。

与同是内存管理的PMP(物理内存保护) 不同,PMA侧重于描述内存本身的属性 (如是否可缓存,是否用于I/O),在芯片设计阶段就已固化-14-2;而PMP则侧重于运行时配置的访问权限 (如读、写、执行),这是两者最根本的区别-14

内存属性

Normal Memory

系统中具备幂等性和弱一致性的大容量主存(如RAM),这是性能优化和缓存一致性发挥作用的主要区域

I/O Memory

用于映射外设寄存器等。通常不具备幂等性(Non-idempotent),即连续两次读同一地址可能得到不同结果,且要求强顺序性(Strongly-ordered)

Empty Region

没有任何设备或内存映射的物理地址空间。访问空区域应触发异常(如Load Access Fault)

缓存与排序

Cacheable/non-cacheable

决定对该区域的访问是否可以被CPU缓存。外设MMIO区域通常为 不可缓存

幂等 (Idempotent) / 非幂等 (Non-idempotent)

幂等 表示重复的读操作会返回相同的数据;非幂等 则表示重复读可能得到不同结果,常见于FIFO或中断状态寄存器.

弱一致性 / 强顺序性 (Weakly-ordered / Strongly-ordered)

描述该区域允许的访问重排程度。弱一致性 允许CPU优化指令顺序以提升性能;强顺序性 则禁止任何重排,必须按程序顺序执行

访问与操作

可读 (Readable) / 可写 (Writable)

基本访问权限,但相比PMP,PMA的权限属于硬件"硬连线",无法绕过.

可执行 (Executable) / 不可执行 (Non-Executable)

决定能否从此区域取出指令执行。为了防止代码注入攻击,数据区通常被标记为**不可执行**

原子操作支持 (Atomicity Support)

表明该内存区域是否支持LR/SC等原子操作。外设区域通常不支持,访问时可能导致异常;

相关推荐
newyork major13 小时前
aq/rl简介
riscv
GoCodingInMyWay2 个月前
Triton + RISC-V
pytorch·riscv·triton
inquisiter2 个月前
plic中断级联设计和使用
fpga开发·riscv
yao000373 个月前
基于QEMU+OpenSBI+edk2的riscv启动流程解析
qemu·riscv·uefi·bios·固件·opensbi
inquisiter4 个月前
openocd操作ku060板子记录
riscv
inquisiter5 个月前
cove-salus-tellus测试程序时序逻辑
linux·服务器·网络·riscv
inquisiter5 个月前
cove-salus 中断派发逻辑
riscv
乖乖是干饭王9 个月前
FreeRTOS源码分析二:task启动(RISCV架构)
架构·c·riscv·rtos
Hello Mr.Z1 年前
RISCV——内核及汇编
汇编·riscv