当前位置: 首页 > news >正文

SMMU 软件指南

目录

    • 1. 概述
      • 1.1 开始之前
    • 2. SMMU 的功能
    • 3. SMMU 的操作
      • 3.1 转换过程概述
      • 3.2 流安全
      • 3.3 流标识
        • 3.3.1 什么是 StreamID?
        • 3.3.2 SubstreamID 的作用
      • 3.4 故障模型
        • 3.4.1 终止模型
        • 3.4.2 停滞模型
      • 3.5 旁路
      • 3.6 地址转换服务 (ATS)
      • 3.7 页面请求接口 (PRI)
    • 4. 编程 SMMU
      • 4.1 SMMU 寄存器
      • 4.2 流表
        • 4.2.1 线性流表
        • 4.2.2 两级流表
      • 4.3 一级流表描述符 (L1STD)
      • 4.4 STE
      • 4.5 CD
        • 4.5.1 单个 CD
        • 4.5.2 单级 CD 表
        • 4.5.3 两级 CD 表
      • 4.6 虚拟机结构 (VMS)
      • 4.7 缓存
      • 4.8 命令队列
        • 4.8.1 命令
      • 4.9 事件队列
        • 4.9.1 事件记录
      • 4.10 全局错误
      • 4.11 最小配置
    • 5. 系统架构考虑
      • 5.1 I/O 一致性
      • 5.2 客户设备
        • 5.2.1 地址大小
        • 5.2.2 缓存
      • 5.3 PCIe 考虑
        • 5.3.1 点对点 (P2P)
        • 5.3.2 No_snoop
        • 5.3.3 ATS
      • 5.4 StreamID 分配
      • 5.5 MSI
    • 6. SMMU 使用案例
      • 6.1 第一阶段使用案例
        • 6.1.1 分散-集中 (Scatter-gather)
        • 6.1.2 64 位 OS 中的 32 位设备
        • 6.1.3 OS 设备隔离
        • 6.1.4 用户空间设备驱动程序
        • 6.1.5 用户空间共享虚拟地址 (SVA)
      • 6.2 第二阶段使用案例
        • 6.2.1 VM 设备分配
        • 6.2.2 带有客户 OS SMMU 使用的 VM 设备分配
        • 6.2.3 媒体保护
        • 6.2.4 主机隔离
    • 7. 相关信息

Learn the Architecture - SMMU Software Guide

1. 概述

本指南描述了 Arm 系统内存管理单元版本 3 (SMMUv3) 的基本操作和使用案例。内容包括:

  • SMMU 架构概念、术语和操作
  • 与 SMMU 功能相关的系统级考虑
  • 典型 SMMU 使用案例的知识

1.1 开始之前

本指南是对 Arm 系统内存管理单元架构规范版本 3 的补充,而非替代品。有关寄存器、数据结构和行为的详细描述,请参阅该规范。

本指南假设您熟悉 AArch64 虚拟内存系统架构 (VMSA)。如果您想了解 AArch64 VMSA,请参阅《学习架构 - AArch64
内存管理指南》和《学习架构 - AArch64 内存属性和特性指南》。

2. SMMU 的功能

SMMU 执行类似于 PE 中 MMU 的任务。它在系统 I/O 设备的 DMA 请求传递到系统互连之前转换地址。SMMU
仅为客户设备的事务提供转换服务,而不为到客户设备的事务提供服务。从系统或 PE 到客户设备的事务通过其他方式管理,例如 PE MMU。

SMMU 在系统中的角色示意图

http://www.dtcms.com/a/392034.html

相关文章:

  • [x-cmd] Windows 安装和使用 x-cmd 的方法
  • 17.渗透-.Linux基础命令(九)-Linux权限管理(chmod修改文件权限)
  • 测量交流电压,测量直流电压,兼容,ADC采样转换计算有效值
  • 红黑树封装实现map set
  • EMQX和MQTTX的安装
  • AI 大模型入门 四:检索增强生成(RAG),自动生成精准用例!
  • EDR与MITRE ATTCK 详解
  • 特征值和特征向量
  • Gridview:让 HPC 作业管理真正“看得见、点得着、跑得快”
  • C++/初识
  • 进一步理解自适应卡尔曼滤波(AKF)
  • 反馈循环的跨领域智慧:从控制工程到Pix2Pix
  • AI智能体如何开发工作流及注意事项
  • 电视插座工程量计算-图形识别秒计量
  • 1.1 进程与内存知识点总结
  • 深度学习-神经网络(下篇)
  • 检查 Nginx 是否启动的几种方法
  • CSS 创建漂亮的文字肖像
  • 37、RAG系统架构与实现:知识增强型AI的完整构建
  • 当贝桌面 4.1.6 | 支持文件快传(电脑传到TV),内存清理,海量4K壁纸,自定义应用和功能
  • 30-39、大模型实战构建完整技术手册:从0到1的工程化实现体系
  • 【Python】Tkinter库实现GUI界面计算器
  • 茶叶在线销售与文化交流平台的设计与实现(java)
  • 中电金信 :MCP在智能体应用中的挑战与对策
  • AI智能体开发目前主要基于哪些方面?
  • 8.2-spring 事务-声明式事务(@Transactional原理)
  • 数据分类分级:数据安全与治理的核心框架
  • STM32---看门狗
  • 标签肽V5 tag,V5 Tag Peptide
  • Hello Robot Stretch 3 技术解析(上):极简结构与全身力感知如何加速科研?