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 自身的隐式内存访问路径。

相关新闻

HarmonyOS应用开发实战:猫猫大作战-NavPathStack 的完整 API 方法、生命周期关联、参数传递技巧,以及基于 NavPathStack

HarmonyOS应用开发实战:猫猫大作战-NavPathStack 的完整 API 方法、生命周期关联、参数传递技巧,以及基于 NavPathStack

前言 NavPathStack 是 Navigation 路由体系的核心控制器——它封装了所有页面栈操作,包括压栈、弹栈、替换、查询、清空等能力。与传统的 router 函数式 API 不同,NavPathStack 以对象的形式持有页面栈状态,更加灵活、可控。 本文以「猫猫大…

2026/7/28 0:18:50 阅读更多 →
从“今日头条”商标案看品牌保护:大厂的商标布局有多重要?

从“今日头条”商标案看品牌保护:大厂的商标布局有多重要?

从“今日头条”商标案看品牌保护:大厂的商标布局有多重要?一个卖油条的早餐店,因为店名里带了“今日”两个字,被互联网大厂告上法庭索赔200万元——听起来像段子,但这是真实发生的“今日头条诉今日油条案”。更出人意料…

2026/7/28 0:18:50 阅读更多 →
中科复兴:城市生命线安全监测的感知、研判与协同处置技术路径

中科复兴:城市生命线安全监测的感知、研判与协同处置技术路径

当一座城市的体量突破千万人口、地下管网绵延数万公里、桥梁隧道等设施服役超过二十年,传统的安全监管模式便走到了必须变革的十字路口。这不仅是管理规模的量变挑战,更是一场关乎风险认知与治理能力的质变考验。如何让沉默的基础设施“开口说话”&#…

2026/7/28 0:18:50 阅读更多 →

最新新闻

Audio Slicer终极指南:如何用智能静音检测实现400倍音频处理效率

Audio Slicer终极指南:如何用智能静音检测实现400倍音频处理效率

Audio Slicer终极指南:如何用智能静音检测实现400倍音频处理效率 【免费下载链接】audio-slicer A simple GUI application that slices audio with silence detection 项目地址: https://gitcode.com/gh_mirrors/aud/audio-slicer 还在为手动剪辑音频的繁琐…

2026/7/28 0:31:53 阅读更多 →
MonitorControl:macOS外接显示器亮度控制的终极解决方案

MonitorControl:macOS外接显示器亮度控制的终极解决方案

MonitorControl:macOS外接显示器亮度控制的终极解决方案 【免费下载链接】MonitorControl 🖥 Control your displays brightness & volume on your Mac as if it was a native Apple Display. Use Apple Keyboard keys or custom shortcuts. Shows t…

2026/7/28 0:30:53 阅读更多 →
RealNoise™ TTS:动态声场合成技术突破恐怖谷效应

RealNoise™ TTS:动态声场合成技术突破恐怖谷效应

1. 项目概述:RealNoise™ TTS的技术突破在语音合成领域,恐怖谷效应长期困扰着技术发展——当合成语音接近真人但存在细微失真时,用户会产生强烈不适感。RTE开发者社区最新发布的RealNoise™ TTS通过创新性地引入动态声场合成技术,…

2026/7/28 0:30:53 阅读更多 →
本地AI会议记录工具Horch:隐私保护与自动化任务提取实战

本地AI会议记录工具Horch:隐私保护与自动化任务提取实战

1. 项目背景与核心价值在日常开发会议和团队协作中,我们经常面临一个共同痛点:会议记录分散、任务跟踪困难、关键信息容易遗漏。传统解决方案要么需要手动整理,要么依赖云端服务存在数据隐私风险。Horch 的出现正是为了解决这些问题——它是一…

2026/7/28 0:30:53 阅读更多 →
关于文献【动词分类理论】

关于文献【动词分类理论】

1、【我的问题】动词分类理论是什么意思?【deepseek】【我的总结】动词分类理论就是动词可以按有没有最终目的地来分类

2026/7/28 0:30:53 阅读更多 →
短剧配音代入感实测:AI能不能配出真情绪

短剧配音代入感实测:AI能不能配出真情绪

先说结论:AI已经能配出可感知、可复现的情绪,但“有情绪”不等于“有代入感”。真正决定观众会不会出戏的,是声音能否跟着剧情变化:同一句台词在试探、确认、崩溃三个阶段,音高、气息、语速和停顿都应改变。实测时应把…

2026/7/28 0:30:53 阅读更多 →

日新闻

告别臃肿!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:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

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

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

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

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

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

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻