RISC-V IOMMU 硬件设计学习计划|第 1 天:IOMMU 在 RISC-V SoC 中解决什么问题
RISC-V IOMMU 硬件设计学习计划第 1 天IOMMU 在 RISC-V SoC 中解决什么问题 计划日期2026-07-27。本系列基于官方 RISC-V IOMMU Architecture Specification 与官方 riscv-iommu/iommu_ref_model C 参考模型整理。本文自包含阅读不要求读者同时打开规范或代码仓库。当日主题今天建立全局视图IOMMU 位于 IO bridge 与系统内存之间拦截设备发出的 DMA、ATS 翻译请求、PRI Page Request 和 MSI 写请求。它的核心任务不是“让设备更快访问内存”而是在可控性能成本下把设备访问纳入和 CPU MMU 类似的地址翻译、权限检查、隔离、虚拟化与故障报告框架。核心概念与原理讲解没有 IOMMU 时DMA-capable 设备通常可以用总线地址直接访问内存。一旦设备固件、驱动或硬件出错就可能覆盖内核、其他进程或其他虚拟机的内存。RISC-V IOMMU 通过每个设备的 device_id 查找 Device ContextDC并按 DC 中的控制字段决定该设备的 IOVA 应怎样被翻译。四类典型模式1. Bare/Bare第一阶段和第二阶段都关闭IOVA 近似作为 SPA 使用主要用于早期启动或受信任设备。2. 第一阶段开启、第二阶段 Bare设备使用进程/内核虚拟地址IOMMU 执行 S-stage 翻译适合 native OS 下的 DMA remap 或 SVA。3. 第一阶段 Bare、第二阶段开启设备被直通给 VMguest 驱动看到 GPAIOMMU 用 G-stage 把 GPA 限制到该 VM 的 SPA。4. 两阶段都开启设备请求 VA先 VS/S-stage 得到 GPA再 G-stage 得到 SPA适合带 PASID/SVA 的虚拟化直通。设备侧有三类地址类型Untranslated、Translated、PCIe ATS Translation Request。Untranslated 表示设备提交的地址仍需 IOMMU 判断Translated 表示设备声称地址已由设备 ATC 缓存翻译ATS Translation Request 表示设备请求 IOMMU 返回翻译结果以填充 DevATC。关键流程与硬件行为分析一个普通 DMA 读写进入 IOMMU 后硬件可抽象为流水线textIO bridge request- 解析 device_id / process_id / transaction type- 检查 ddtp.iommu_mode- DDT walk 定位 Device Context- 如有 PASID/process_idPDT walk 定位 Process Context- 查询 IOATCmiss 时执行一阶段/二阶段 page-table walk- 可选 MSI 识别与 MSI page-table 翻译- 返回 SPA、权限、PBMT、MSI/MRIF 标志或报告 fault从硬件实现角度要把 IOMMU 看成一个带内存读端口的翻译协处理器。它不只处理设备请求还会主动发起隐式内存访问读取 DDT、PDT、页表、命令队列、故障队列、页请求队列和 MSI 表。这些访问需要 QoS、endianness、PMA/PMP/总线错误处理并且不能被原始设备请求阻塞到死锁。对应代码片段解读参考模型的请求结构浓缩了硬件输入面c// host bridge 输入到 IOMMU 的抽象请求参考 iommu_req_rsp.htypedef struct {uint32_t device_id; // 最多 24 位设备身份PCIe 可映射为 BDF/RIDDSEGuint8_t pid_valid; // 是否携带 process_id/PASIDuint32_t process_id; // 最多 20 位进程身份uint8_t no_write; // ATS translation request 可请求 no-writeuint8_t exec_req; // 读是否带 execute intentuint8_t priv_req; // 1Supervisor, 0Useriommu_trans_req_t tr; // 地址类型、IOVA、长度、读写属性} hb_to_iommu_req_t;主入口在 iommu_translate.c。它先统计请求类型再从 ddtp.iommu_mode 判断 Off/Bare/DDT 模式随后调用 locate_device_context()、locate_process_context()、lookup_ioatc_iotlb() 和 two_stage_address_translation()。这正好对应硬件中的配置检查、上下文缓存、TLB lookup 和 page-walk pipeline。当天掌握要点小结- IOMMU 的基本角色是把设备 DMA 纳入地址翻译、权限检查、隔离和虚拟化。- device_id 选择 DCprocess_id/PASID 选择 PC它们共同决定地址空间。- Untranslated、Translated、ATS Translation Request 是硬件入口分类的第一层。- 实现 IOMMU 时要同时考虑设备请求路径和 IOMMU 自身的隐式内存访问路径。

相关新闻

财新圆桌-AI系列:智能体走向终端,个人AI时代正在到来

财新圆桌-AI系列:智能体走向终端,个人AI时代正在到来

7月27日下午,财新圆桌-AI系列活动“智能体时代终端产业的下一站”专题活动于北京举办。本次会议汇聚了经济学界、行业研究机构及产业专家等多方代表,围绕当前智能体技术对于终端产业的系统性重构、个人AI终端市场前景等话题展开交流与探讨。与会嘉宾从产…

2026/7/28 0:20:49阅读更多 →
OPPO 宣布启动小布Next计划,开放首个端侧Multi-Agent系统内测

OPPO 宣布启动小布Next计划,开放首个端侧Multi-Agent系统内测

2026年7月27日,深圳 —— OPPO 宣布启动「小布 Next 计划」,开放行业首个端侧Multi-Agent协同系统内测。「小布 Next」 搭载行业首个端侧全域记忆系统,提供全面强化的用户理解能力和超前的主动服务能力。通过小布 Next 计划,OPPO …

2026/7/28 0:20:49阅读更多 →
大模型多轮对话技巧

大模型多轮对话技巧

temperature 如果是0,每次返回的是增量代码temperature 如果是0.7,每次返回的是全部代码,没有多轮对话的效果。import urllib import json import requests import base64 from http.client import HTTPException from typing import List, D…

2026/7/28 0:20:49阅读更多 →
三步解锁B站大会员4K和充电专属视频下载:永久保存你的珍贵内容

三步解锁B站大会员4K和充电专属视频下载:永久保存你的珍贵内容

三步解锁B站大会员4K和充电专属视频下载:永久保存你的珍贵内容 【免费下载链接】bilibili-downloader B站视频下载,支持下载大会员清晰度4K,持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 想象一下&a…

2026/7/28 1:36:59阅读更多 →
异构无人机配送优化:多目标遗传算法实践

异构无人机配送优化:多目标遗传算法实践

1. 异构无人机配送问题的研究背景与挑战2024年发表在ESWA(Expert Systems With Applications)SCI一区顶刊的这篇论文,针对的是当前物流行业最前沿的异构无人机配送优化问题。我在实际参与某电商平台无人机配送项目时,深刻体会到这…

2026/7/28 1:36:59阅读更多 →
如何快速配置游戏MOD:虎符台一站式管理解决方案终极指南

如何快速配置游戏MOD:虎符台一站式管理解决方案终极指南

如何快速配置游戏MOD:虎符台一站式管理解决方案终极指南 【免费下载链接】legion-seal 虎符台/Legion Seal,全面战争游戏MOD管理器,技术栈:Tauri 2 Vue TailwindCSS 项目地址: https://gitcode.com/zeyl/legion-seal 全面…

2026/7/28 1:36:59阅读更多 →
AI应用开发实战:从零到工程化部署的完整学习路径解析

AI应用开发实战:从零到工程化部署的完整学习路径解析

如果你正在寻找一套能真正带你从零开始、系统掌握AI应用开发的实战教程,那么你很可能已经陷入了两个极端:要么是B站上那些看似“保姆级”实则东拼西凑、不成体系的零散视频,要么是动辄数千元、理论脱离实践的付费课程。前者让你学得一头雾水,后者则让你投入巨大却难以落地。…

2026/7/28 1:36:59阅读更多 →
SQL Server性能突降排查:从CPU飙高到执行计划分析实战

SQL Server性能突降排查:从CPU飙高到执行计划分析实战

1. 先确认问题:是SQL本身,还是环境或数据变了?面试官问“昨天50毫秒,今天5秒,CPU飙到90%”,这其实是在考察你面对线上突发性能问题的第一反应和排查思路。很多人一上来就埋头看SQL执行计划、加索引&#xf…

2026/7/28 1:36:59阅读更多 →
Tiny11Builder终极指南:快速打造精简版Windows 11系统镜像

Tiny11Builder终极指南:快速打造精简版Windows 11系统镜像

Tiny11Builder终极指南:快速打造精简版Windows 11系统镜像 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder Tiny11Builder是一款强大的PowerShell脚本工…

2026/7/28 1:34:59阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/27 1:14:34阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/27 1:14:52阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/27 1:14:56阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/27 16:57:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/26 19:05:21阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/26 19:05:21阅读更多 →