[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fSl2b8-IbHMK3OeXE0m-wyFLNFocsxi2e3kfbKm4bJfs":3},{"item":4,"related":44},{"id":5,"type":6,"title":7,"slug":8,"summary":9,"body":10,"coverUrl":11,"productScreenshots":12,"productLinks":13,"authorName":14,"authorUrl":15,"authorSubject":16,"category":17,"tags":22,"sourceLabel":35,"sourceName":36,"sourceUrl":37,"status":38,"seoTitle":7,"seoDescription":9,"canonicalUrl":35,"isFeatured":39,"sno":40,"sortOrder":41,"publishedAt":42,"updatedAt":43,"createdAt":43},"d4a1ef13-fa42-41f3-a9d2-635f47d801d0","article","RISC-V PMP：处理器怎样给不同特权级划出内存禁区？","riscv-pmp-physical-memory-protection","RISC-V PMP 由高特权级软件配置物理内存区域访问规则，并由处理器在较低权限代码访问时执行检查。本文区分 PMP 与虚拟内存，介绍它在固件和嵌入式安全中的作用及实现边界。","处理器执行程序时，最重要的安全问题之一是：低权限代码能不能读写不该碰的内存？虚拟内存和操作系统权限能解决很多问题，但在更底层的启动固件、微控制器或可信执行环境里，处理器还需要一种直接针对物理地址的防护机制。RISC-V 的 PMP（Physical Memory Protection，物理内存保护）就是这样的硬件能力。\n\nPMP 让机器模式（Machine mode，常写作 M-mode）的软件设置若干内存区域及其访问权限，例如某段物理地址可以读取、某段可以执行、另一段则对低特权级完全不可访问。随后处理器在执行较低特权级代码时，会依据这些规则检查访问。固件可以把启动代码、密钥区域或设备内存隔离出来，降低普通程序越界访问的风险。\n\n为什么要强调“物理地址”？虚拟内存会把程序看到的地址映射到实际内存位置，操作系统通常在页表层面对访问做控制。PMP 则在更靠近硬件的一层，对物理地址范围施加边界。它可以与分页机制配合：分页负责灵活的地址映射和进程隔离，PMP 提供平台级、区域式的底线约束。两者并非非此即彼。\n\n可以把 PMP 想成机房里的总门禁。操作系统给不同用户分配房间钥匙，而 PMP 则由更高权限的固件把“服务器机柜区”“固件存储区”等区域设为低权限人员无法进入。即使上层软件配置出错，硬件边界仍可能阻止部分访问。不过，门禁规则若设计不当，或者范围没有覆盖关键资源，依旧会留下漏洞。\n\nPMP 的能力也有边界：可配置区域数量有限，匹配粒度受实现影响；规则优先级和地址编码方式需要由固件仔细管理。更新保护设置时，还必须考虑多核处理器和正在进行的访问，避免一个核心已经采用新规则而另一个仍处于旧状态。具体行为依处理器实现及规范版本而异，系统软件不能想当然地假设所有 RISC-V 芯片都提供完全相同的配置能力。\n\n因此，PMP 不是“虚拟内存的另一个名字”，而是帮助平台固件在物理地址层建立访问边界的硬件机制。它常常藏在启动链条背后，却对可信启动、嵌入式设备和低特权代码隔离有重要作用。理解它时，记住这条主线就够了：由高特权软件设定区域规则，硬件在更低权限代码访问物理内存时执行检查。\n\n来源：[RISC-V 特权架构规范](https:\u002F\u002Fdocs.riscv.org\u002Freference\u002Fisa\u002F_attachments\u002Friscv-privileged.pdf)","\u002Fuploads\u002F2026-10-13\u002Fecfdd306-c8d2-4bfa-984e-7f579fd86f61.jpg",[],[],"Foundit","https:\u002F\u002Ffoundit.cn","foundit-ai-editorial",{"id":18,"name":19,"slug":20,"description":21},"6179d3b6-dc34-4483-9ded-3cd9f1b37a47","科普","abbreviation","介绍各领域新兴概念",[23,27,31],{"id":24,"name":25,"slug":26},"7c76bfc2-f80f-4ee0-a95d-27bd8708b434","技术","slug",{"id":28,"name":29,"slug":30},"8d35e42e-9f5b-4dd9-b30f-dc2c53d06096","硬件","hardware",{"id":32,"name":33,"slug":34},"4c2bbea6-eab7-40a8-8447-1de478ff7749","分析","analyse",null,"RISC-V International","https:\u002F\u002Fdocs.riscv.org\u002Freference\u002Fisa\u002F_attachments\u002Friscv-privileged.pdf","published",false,41,0,"2026-10-13T00:00:00.000Z","2026-10-13T02:13:39.212Z",[45,54,63],{"id":46,"type":6,"title":47,"slug":48,"summary":49,"coverUrl":50,"authorName":14,"sno":51,"publishedAt":52,"createdAt":53},"56b94746-1551-4111-a1e9-6dc7e62e1604","RDMA：两台机器能否让网卡直接搬运注册内存？","rdma-registered-memory-and-remote-access","RDMA 让网卡在授权和注册内存范围内处理远端数据搬运。本文解释内存注册、访问权限与完成队列，避免把它误解为完全没有 CPU 参与。","\u002Fuploads\u002F2026-10-06\u002F86d526f9-9a46-46aa-8c81-1efd4aae1284.jpg",49,"2026-10-06T00:00:00.000Z","2026-10-06T07:51:32.204Z",{"id":55,"type":6,"title":56,"slug":57,"summary":58,"coverUrl":59,"authorName":14,"sno":60,"publishedAt":61,"createdAt":62},"67ba2085-7ee6-4379-9d0c-6372fed783ae","Intel TDX：云服务器管理员也看不到虚拟机里的数据吗？","intel-tdx-confidential-vm-explained","Intel TDX 通过处理器支持的隔离机制，将虚拟机运行环境划成受保护的 Trust Domain，降低宿主软件直接读取或篡改其内存的机会。本文说明机密计算解决什么信任问题，也谈远程证明、侧信道和来宾系统自身的风险。","\u002Fuploads\u002F2026-10-17\u002Ff8891699-ca7f-4edb-b64d-1b4db6421b0e.jpg",50,"2026-10-17T00:00:00.000Z","2026-10-17T03:08:39.718Z",{"id":64,"type":6,"title":65,"slug":66,"summary":67,"coverUrl":68,"authorName":14,"sno":69,"publishedAt":52,"createdAt":70},"366cdfd1-a8d3-4be8-893a-a298f1a45d23","Erasure Coding：不用存三份完整副本，也能扛硬盘故障吗？","erasure-coding-data-resilience-storage","纠删码将数据与校验信息分片存储，在符合恢复条件时重建丢失数据，以存储效率换取额外计算和恢复成本。本文用 Ceph 说明关键取舍。","\u002Fuploads\u002F2026-10-06\u002Fb60f1262-88da-48f5-972d-075b96d0020a.jpg",54,"2026-10-06T07:51:46.328Z"]