pmp 和 paging
物理内存保护机制旨在与 risc‑v 指令集手册,第二卷:特权架构,版本 1.10 中描述的基于页面的虚拟内存系统组合。启用分页后,访问虚拟内存的指令可能会导致多次物理内存访问,包括对页表的隐式引用。pmp 检查适用于所有这些访问。隐式页表访问的有效特权模式是管理员模式。
允许使用虚拟内存的实现以推测方式执行地址转换,并且比显式虚拟内存访问所需的时间更早。可以在地址转换和显式虚拟内存访问之间的任何时候检查结果物理地址的 pmp 设置。到不可执行地址范围的错误预测分支不会生成陷阱。因此,当以影响保存页表的物理内存或页表指向的物理内存的方式修改 pmp 设置时,m 模式软件必须将 pmp 设置与虚拟内存系统同步。这是通过在写入 pmp csr 后执行 rs1=x0 和 rs2=x0 的 sfence.vma 指令来实现的。
如果未实现基于页面的虚拟内存,或者当它被禁用时,内存访问会同步检查 pmp 设置,因此不需要 fence。
pmp 限制
在包含多个 hart 的系统中,每个 hart 都有自己的 pmp 设备。hart 上的 pmp 权限不能应用于多 hart 系统中其他 hart 的访问。此外, sifive 设计可能包含一个前端端口,以允许外部总线主控器访问系统的完整内存映射。pmp 无法阻止前端端口上的外部总线主控器的访问。
没有 pmp 保护的区域的行为
如果内存映射的非保留区域没有应用 pmp 权限,则默认情况下,管理员或用户模式访问将失败,而机器模式访问将被允许。
访问设备内存映射中的保留区域(例如中断控制器)读取时将返回 0x0,写入将被忽略。在没有 pmp 保护的情况下访问设备内存映射之外的保留区域将导致总线错误。总线错误可以使用总线错误单元 (beu) 对 hart 产生中断。
pmp 保护区的缓存刷新行为
当一条线被带入高速缓存并且 pmp 设置为断言锁定 (l) 位以保护该线的一部分时,数据高速缓存刷新指令将生成存储访问错误异常,如果冲洗包括受保护的线路的任何部分。缓存刷新指令执行无效和回写,因此它实际上是在尝试写回受保护的内存位置。
如果缓存刷新发生在未受保护的部分行上,刷新将成功并且不会产生异常。如果需要在没有回写的情况下刷新数据高速缓存,请改用高速缓存丢弃指令,因为这会使该行无效但不会回写。
联想zuk edge正式发布:颜值不输小米MIX,配置堪比华为mate9!
锂离子电池聚合物电解质导电机理
应用无处不在,发觉你身边的MEMS传感器
水下机器人如何构建精确的地图
详细介绍MySQL InnoDB存储引擎各种不同类型的锁
PMP物理内存保护介绍
英飞凌TRENCHSTOP™ IGBT6将紧凑型电机控制器总损耗减少20%以上
能为电子系统提供动力的电源模块介绍
QForm锻造、挤压、热处理仿真软件简析
运营商厂商等角力,NFC混战何时休?
【泵类维修】脱硫浆液循环泵防腐耐磨保护方案分享
美国空军大力部署5G网络
工控机的特点
Origin Q一周速览:希腊设立量子计算理学硕士学位
德承DX-1100 成功演绎自动驾驶汽车的核心运算角色
基于FP共振剪裁面板的屏障穿透超声成像
磐石测控:深圳插拔力试验机PS-1220S系列有哪些介绍?
笔记本电脑能上飞机吗?以后飞美国航班都将禁止使用笔记本
Amphenol Industrial LPT系列连接器在贸泽开售 为一般工业环境和恶劣环境而设
简述各类二极管的基本特性