ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

附录 A 术语表

附录 A 术语表

附录 A 术语表

本附录汇总专栏中出现的主要术语,按英文名称或缩写的字母顺序排列,不区分大小写,忽略空格、连字符、斜线与下划线。只有中文名称的概念,按其通行的英文名称归入相应字母。同一术语在不同语境下含义不同时,释义中分别说明。

A

术语释义
ACE(AXI Coherency Extensions)Arm AMBA 总线的一致性扩展协议;其简化形式 ACE-Lite 用于只需侦听 CPU cache、自身不带一致性 cache 的 I/O 一致性主设备
Acquire / Release(获取 / 释放)内存模型中的同步操作:获取使本方此后的访问能看到他方已发布的数据,释放使本方此前的写入对他方可见;GPU 中由命令处理器在分派边界或屏障包中以 cache 失效与写回实现
ACS(Access Control Services,访问控制服务)PCIe 交换结构中控制点对点事务转发的能力,包括源验证(SV)、请求重定向(RR)、完成报文重定向(CR)与上游转发(UF);决定设备之间能否绕过 IOMMU 直接通信,进而影响 IOMMU group 的划分
AF_XDPLinux 的一种套接字类型,网卡驱动经 XDP 把数据包直接放入用户态注册的共享内存区域
Agent scope / System scope(设备范围 / 系统范围)HSA 内存模型中同步操作的作用范围:设备范围只保证 GPU 内部可见,系统范围还保证对 CPU 与其他设备可见
AMD-ViAMD 平台的 IOMMU 实现,以设备表、I/O 页表与命令缓冲区(Command Buffer)为主要结构
AQL(Architected Queuing Language)HSA 定义的用户态队列包格式,分派包与屏障包均以该格式写入队列,由命令处理器解析
ATC(Address Translation Cache,地址翻译缓存)设备一侧缓存 ATS 翻译结果的结构,内核中也称为设备 TLB
ATS(Address Translation Services,地址翻译服务)PCIe 定义的机制:设备向 IOMMU 请求翻译并缓存结果,之后发出标记为已翻译的请求,以减少 IOMMU 的翻译开销
Attach(挂接)在 IOMMU 中指把设备加入某个 domain,使其按该 domain 的页表翻译;在 dma-buf 中指导入方与缓冲区建立关联,之后才能映射

B

术语释义
BAR(Base Address Register,基址寄存器)PCIe 设备在配置空间中声明 MMIO 地址区间的寄存器;GPU 的显存经 BAR 窗口暴露给 CPU 与其他设备
BDF(Bus/Device/Function)PCIe 设备的总线号、设备号与功能号,作为请求者标识随事务发出,IOMMU 据此选择翻译上下文
Blit kernelROCm 中由计算单元执行的复制程序,是 SDMA 之外的另一种数据复制方式
BO(Buffer Object,缓冲区对象)DRM 与 amdgpu 中管理显存与 GTT 内存的基本单位,可在不同内存域之间迁移
Bounce buffer(反弹缓冲区)设备无法直接访问原缓冲区时使用的中转缓冲区,映射与同步时在两者之间复制数据;Linux 中的实现为 SWIOTLB
Buddy allocator(伙伴系统)内核按 2 的幂次管理物理页的分配器,能够提供的物理连续内存受碎片程度限制
Bus master(总线主控)能够主动发起总线事务的设备,是设备自行执行 DMA 的前提
Bus snooping(总线侦听)一致性互连监听其他主设备的访问,并相应地提供、更新或失效 cache 行的机制

C

术语释义
Cache line(cache 行)cache 与内存之间交换数据的最小单位,常见为 64 字节;DMA 缓冲区与其他数据共享 cache 行会导致数据损坏
C-bitAMD SME 中物理地址的加密标志位,位置由 CPUID 报告;设备访问加密内存时 DMA 地址同样须带上该位,寻址位宽不足的设备需经 SWIOTLB 中转
CHI(Coherent Hub Interface)Arm AMBA 5 的一致性互连协议,面向大规模多核系统
CMA(Contiguous Memory Allocator,连续内存分配器)预留一段可供可移动页面临时使用的内存,需要时迁出其中的页面,以提供大块物理连续内存
Coarse-grained / Fine-grained memory(粗粒度 / 细粒度内存)ROCm 中按一致性粒度区分的内存:粗粒度内存只在分派边界等同步点保证一致,细粒度内存在核函数执行期间即可与 CPU 或其他设备一致地访问;二者由页表中的内存类型区分
Coherent mapping(一致性映射)以dma_alloc_coherent()建立的映射,CPU 与设备可随时访问而无须显式同步;在不具备硬件一致性的平台上,通常以不可缓存方式映射给 CPU
Command Queue(命令队列)IOMMU 接收软件命令的环形队列,主要用于下发失效命令;SMMUv3 称为命令队列,AMD-Vi 称为命令缓冲区,VT-d 中的对应结构为失效队列(Invalidation Queue)
Completer / Requester(完成者 / 请求者)PCIe 规范中事务的响应方与发起方
Completion(完成报文)PCIe 中响应读请求、携带数据返回的 TLP
Context cache(上下文缓存)VT-d 中缓存上下文表项的结构;修改设备与 domain 的关联之后需要失效
CP(Command Processor,命令处理器)GPU 中解析命令流、分派任务并执行同步与 cache 维护操作的单元
CQ / CQE(Completion Queue / Completion Queue Entry,完成队列 / 完成队列项)设备或内核写入完成信息的队列及其条目,NVMe、io_uring 与 RDMA 均采用这一结构
CU(Compute Unit,计算单元)GPU 中执行着色器程序的基本单元,各自带有一级 cache
CXL(Compute Express Link)基于 PCIe 物理层的互连协议,允许设备以一致的方式访问主机内存,或使主机访问设备内存

D

术语释义
DAC(Dual Address Cycle,双地址周期)PCI 总线以两个地址周期传送 64 位地址的方式;不支持该方式的设备只能访问低 4 GB
DDIO(Data Direct I/O)Intel 平台把设备写入的数据直接放入末级 cache 的机制
Descriptor ring(描述符环)驱动与设备共享的环形描述符数组,每个描述符给出一个缓冲区的 DMA 地址与长度
Device page fault(设备缺页)设备访问未映射或无权限的地址时产生的故障;在支持可重试缺页的设备上,驱动补齐映射后访问可重新执行
Directory(目录)记录各 cache 行由哪些 cache 持有的结构,用于代替广播式侦听
Dirty(脏)cache 行已被修改、尚未写回内存的状态
DMA(Direct Memory Access,直接内存访问)设备在不需要 CPU 逐字搬运的情况下直接读写内存的机制
DMA address(DMA 地址)设备访问内存时发出的地址;视平台不同,可能等于物理地址,也可能是带偏移或附加位的总线地址,或者是 IOVA
DMA-BUF(dma-buf)内核中跨驱动、跨设备共享缓冲区的框架,以文件描述符表示缓冲区,由导出方提供,各导入方分别映射
DMAC(DMA Controller,DMA 控制器)早期系统中独立于外设、代替外设执行数据搬运的第三方 DMA 控制器
dma-direct设备不经 IOMMU 翻译时的映射实现,DMA 地址由物理地址换算得到,超出掩码时转入 SWIOTLB
DMA direction(DMA 方向)映射时声明的数据流向,取值为DMA_TO_DEVICE、DMA_FROM_DEVICE与DMA_BIDIRECTIONAL,决定同步时执行的 cache 操作与反弹时的复制方向
dma_fence / dma_resvdma-buf 的同步对象:dma_fence表示一项异步操作的完成,dma_resv汇集缓冲区上的读写 fence
DMA-FQIOMMU domain 的一种类型,解除映射之后的 IOTLB 失效经刷新队列批量执行,以较短的隔离窗口换取性能
dma_map_ops由平台或总线为设备提供的映射操作集;设备未提供时,映射经直接映射路径处理
DMA mask(DMA 掩码)驱动以dma_set_mask()等接口声明的设备可寻址范围;超出范围的内存需经 IOMMU 或反弹缓冲区访问
Doorbell(门铃)设备的 MMIO 寄存器,驱动或应用写入它,通知设备有新的任务待处理
DPDK(Data Plane Development Kit)用户态网络数据面框架,经 VFIO 等接口驱动网卡,以轮询方式收发
DREQ / DACKISA 时代外设向 DMA 控制器请求传输、控制器应答的信号线
DSI / PSI(Domain / Page Selective Invalidation)VT-d 中按 domain 整体失效与按页范围失效 IOTLB 的两种方式

E

术语释义
EAL(Environment Abstraction Layer,环境抽象层)DPDK 中负责大页内存、设备与 IOVA 模式初始化的层
Eviction(驱逐)显存不足时把缓冲区对象移出显存的操作;被驱逐的共享缓冲区需要通知导入方重新映射
Exporter / Importer(导出方 / 导入方)dma-buf 中提供缓冲区的驱动与使用缓冲区的驱动

F

术语释义
FOLL_LONGTERM页面固定的标志,表示固定的期限不确定,用于 VFIO、RDMA 等由设备长期访问的场合
Full coherency(完全一致性)设备与 CPU 相互侦听对方 cache 的一致性,与只由设备侦听 CPU 的 I/O 一致性相对

G

术语释义
GART(Graphics Address Remapping Table)GPU 中把一段地址区间映射到系统内存页的页表;amdgpu 中为 VMID 0 地址空间内的一段区间,供内核使用的引擎访问系统内存
GPUVMamdgpu 中 GPU 的多级页表机制,每个进程拥有独立的 GPU 虚拟地址空间,以 VMID 区分
Group(IOMMU group)IOMMU 能够相互隔离的最小设备集合;同一 group 中的设备必须属于同一个 domain,交给 VFIO 时须整体交出
GTT(Graphics Translation Table)amdgpu 中经 GPU 页表映射、供 GPU 访问的系统内存域
GUP(get_user_pages)内核获取用户虚拟地址所对应页面的接口族;pin_user_pages()是其固定页面的变体

H

术语释义
HDP(Host Data Path,主机数据路径)AMD GPU 中处理主机经 BAR 访问显存的通路,带有缓存,需要显式刷新与失效
HMM(Heterogeneous Memory Management)内核中让设备镜像进程页表,并在设备内存与系统内存之间迁移页面的框架
Host bridge(主桥)连接 CPU 与 PCI 层次结构的桥,负责 CPU 物理地址与总线地址之间的变换
HSA(Heterogeneous System Architecture)定义用户态队列、AQL 包格式与内存模型的异构计算规范,ROCm 以之为基础
Hugepage(大页)大于基本页的页面,如 2 MB 与 1 GB,可减少 TLB 与 IOTLB 的缺失

I

术语释义
IB(Indirect Buffer,间接缓冲区)存放 GPU 命令的缓冲区,环形缓冲区中只写入指向它的包
IH(Interrupt Handler,中断处理单元)AMD GPU 中收集中断与缺页信息、写入 IH 环的单元
Infinity Cache(MALL)AMD GPU 在存储器控制器一侧设置的末级 cache
Interrupt remapping(中断重映射)IOMMU 对设备发出的 MSI 进行校验与转换的功能,防止设备伪造中断;是用户态驱动安全性的必要条件
I/O coherency(I/O 一致性)设备的访问侦听 CPU cache、而 CPU 不侦听设备 cache 的单向一致性
IOMMU(I/O Memory Management Unit)位于设备与内存之间、对设备发出的地址进行翻译与权限检查的硬件
iommu-dmadma-mapping 中经 IOMMU 映射的实现,负责 IOVA 分配、I/O 页表的建立与 IOTLB 失效
IOMMUFD以独立字符设备管理 I/O 地址空间与设备挂接的用户态接口,是 VFIO container 的后继
IOTLBIOMMU 中缓存 IOVA 翻译结果的结构;解除映射之后必须失效相应条目
io_uringLinux 的异步 I/O 接口,以内核与应用共享的提交队列与完成队列交换请求,支持注册缓冲区与零拷贝收发
IOVA(I/O Virtual Address,I/O 虚拟地址)启用 IOMMU 翻译时设备使用的地址,由 IOMMU 翻译为物理地址

K

术语释义
KFD(Kernel Fusion Driver)amdgpu 中面向计算的内核接口,管理用户态队列、SVM 范围与设备缺页的处理

L

术语释义
lkey / rkey(本地键 / 远端键)RDMA 内存注册时生成的键:本地工作请求以 lkey 引用内存,远端以 rkey 访问内存;rkey 的分发即访问授权
LLC(Last Level Cache,末级 cache)多个 CPU 核心共享的最后一级 cache

M

术语释义
memseg(内存段)DPDK 中描述一段大页内存及其 IOVA 的结构
MESI以 Modified、Exclusive、Shared、Invalid 四种状态描述 cache 行的一致性协议
migrate_vma内核在系统内存与设备私有内存之间迁移页面的接口
MMIO(Memory-Mapped I/O,内存映射 I/O)把设备寄存器与设备内存映射到 CPU 物理地址空间,以普通的读写指令访问
mmu_interval_notifier进程页表发生变化时通知设备驱动的机制,驱动在回调中同步失效设备页表
MPS(Max Payload Size,最大载荷长度)PCIe 单个 TLP 可携带的最大数据量,常见为 256 字节
MR(Memory Region,内存区域)RDMA 中注册给网卡访问的一段内存
MSI(Message Signaled Interrupt)设备以内存写事务发出的中断
MTYPEAMD GPU 页表项中的内存类型字段,决定访问在各级 cache 中的缓存方式与一致性行为
MW(Memory Window,内存窗口)RDMA 中在已注册内存区域内动态授予远端访问某一子区间的对象

O

术语释义
ODP(On-Demand Paging,按需分页)RDMA 中不固定页面、由网卡缺页触发映射的内存注册方式
Ownership(所有权)流式映射中缓冲区在某一时刻由 CPU 或设备访问的约定,交接通过dma_sync_*完成

P

术语释义
P2P(Peer-to-Peer,点对点)两个 PCIe 设备之间直接进行的 DMA,数据不经系统内存中转;内核以 P2PDMA 框架判断其可行性并建立映射
page_pool网络驱动的页面池,复用已映射的页面,避免每次收包都映射与解除映射
PASID(Process Address Space ID)PCIe 请求中携带的地址空间标识,使 IOMMU 能够按进程选择页表
Passthrough(直通)IOMMU 不翻译设备地址、DMA 地址等于物理地址的模式,在内核中对应 identity 类型的 domain
PD(Protection Domain,保护域)RDMA 中把队列对与内存区域等对象归入同一隔离范围的对象
Pinning(页面固定)增加页面的固定计数,使其在设备访问期间不被换出或迁移,从而保持物理地址不变
PIO(Programmed I/O,程序化 I/O)由 CPU 逐字读写设备寄存器完成数据传输的方式
PMD(Poll Mode Driver,轮询模式驱动)DPDK 中以轮询代替中断的用户态网卡驱动
PoC(Point of Coherency,一致性点)Arm 架构中所有观察者看到同一份数据的位置,面向 DMA 的 cache 维护操作以 PoC 为目标
PRI(Page Request Interface,页请求接口)PCIe 定义的机制,设备在 ATS 翻译失败时请求系统建立映射
PRIMEDRM 中基于 dma-buf 的缓冲区共享机制

Q

术语释义
QP(Queue Pair,队列对)RDMA 的通信端点,由发送队列与接收队列组成

R

术语释义
RDMA(Remote Direct Memory Access)网卡直接读写远端主机已注册内存的技术,数据路径不经两端 CPU 的复制
Resizable BAR(可调整 BAR)允许在枚举时调整设备 BAR 的大小,使 CPU 与其他设备能够访问整个显存

S

术语释义
Scalable mode(可扩展模式)VT-d 中支持按 PASID 选择翻译结构的模式
Scatter-gather(分散 / 聚集,SG)设备以多个地址与长度对描述一次传输,使物理上分散的内存能够在一次 DMA 中访问
scatterlist / sg_table内核描述分散内存的数据结构:sg_table由若干scatterlist条目组成,映射之后每个条目另行记录 DMA 地址与长度
SDMA(System DMA)AMD GPU 中的 DMA 引擎,负责主机内存与显存之间以及显存内部的复制与填充
SME(Secure Memory Encryption,安全内存加密)AMD 平台以物理地址中的 C-bit 控制的内存加密功能
SMMU(System MMU)Arm 平台的 IOMMU;SMMUv3 以 StreamID 标识设备,以命令队列下发失效
Snoop filter(侦听过滤器)记录哪些 cache 可能持有某一行的结构,用于减少不必要的侦听
SQ / SQE(Submission Queue / Submission Queue Entry,提交队列 / 提交队列项)驱动或应用写入请求的队列及其条目
Streaming mapping(流式映射)以dma_map_single()、dma_map_sg()等接口建立的映射,CPU 与设备之间通过dma_sync_*交接所有权
Strict mode(严格模式)IOMMU 在每次解除映射时立即失效 IOTLB 的模式,与批量失效(DMA-FQ)相对
SVA(Shared Virtual Addressing,共享虚拟寻址)设备经 PASID 与 IOMMU 直接使用进程页表访问内存的机制
SVM(Shared Virtual Memory,共享虚拟内存)CPU 与 GPU 以同一虚拟地址访问同一数据的编程模型;amdgpu 中由 KFD 的 SVM 范围管理实现
SWIOTLB(Software I/O TLB)内核的反弹缓冲区实现,在设备可寻址范围内预留缓冲池,映射与同步时在原缓冲区与缓冲池之间复制数据

T

术语释义
TLP(Transaction Layer Packet,事务层包)PCIe 事务层传送的数据包,DMA 读写以存储器读写请求 TLP 进行
TTM(Translation Table Maps)DRM 中管理缓冲区在显存与系统内存之间放置与迁移的内存管理器

U

术语释义
UC(Uncached,不可缓存)CPU 访问不经过 cache 的内存类型,Arm 架构中对应 Normal-NC 等属性
userptramdgpu 把用户态普通内存映射给 GPU 访问的方式
UTCL2AMD GPU 内部承担地址翻译的二级翻译缓存,翻译失败时向 IH 环报告缺页

V

术语释义
VFIO(Virtual Function I/O)内核把设备安全地交给用户态的框架,以 IOMMU 隔离设备的 DMA
VFIO containerVFIO 传统接口中代表一个 I/O 地址空间的对象,可容纳多个 group
VMIDAMD GPU 中区分各 GPU 虚拟地址空间的标识,VMID 0 供内核使用
VT-d(Virtualization Technology for Directed I/O)Intel 平台的 IOMMU 实现

W

术语释义
WB / WT(Write-back / Write-through,写回 / 写直通)cache 的两种写策略:写回只在 cache 行被替换或显式写回时更新内存,写直通在每次写入时同时更新内存
WC(Write-Combining,写合并)CPU 把多次写入合并为较大事务发出的内存类型,常用于设备的 BAR 区间
WQE(Work Queue Element,工作请求)RDMA 中写入发送队列或接收队列的请求条目

X

术语释义
XDP(eXpress Data Path)网卡驱动在分配套接字缓冲区之前运行 eBPF 程序处理数据包的机制
XNACKAMD GPU 从缺页中恢复的能力:启用时翻译失败的访存请求被否定应答,发出请求的 wavefront 暂停并在驱动处理之后重试

Z

术语释义
zcrxio_uring 的零拷贝接收,Linux 6.15 引入,网卡把数据直接写入应用提供的内存区域
Zero-copy(零拷贝)数据在设备与最终使用者之间传递时不经 CPU 复制的传输方式
Zone(内存区域)内核按物理地址划分的内存区域,如ZONE_DMA、ZONE_DMA32与ZONE_NORMAL,分配时以 GFP 标志选择
ZONE_DEVICE描述设备内存的特殊区域;设备私有内存(MEMORY_DEVICE_PRIVATE)以此纳入页面管理,供 HMM 迁移使用

系列导航:

  • 上一篇[《第 25 篇 性能与可移植性检查清单》]审核中…
  • 下一篇《附录 B DMA 接口汇总表》
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进