
本部分分为缩略语与术语两张表。缩略语表按缩写字母顺序排列供按缩写查阅其中的概念若需要进一步说明收录在术语表中。1. 缩略语缩写英文全称中文ABIApplication Binary Interface应用二进制接口ACSAccess Control Services访问控制服务PCIeATSAddress Translation Services地址翻译服务PCIeBARBase Address Register基址寄存器PCIe 设备的地址窗口BOBuffer Object缓冲区对象CMAContiguous Memory Allocator连续内存分配器CoWCopy-on-Write写时复制CPCommand Processor命令处理器CSCommand Submission命令提交CSFCommand Stream Frontend命令流前端Arm MaliDMADirect Memory Access直接内存访问DRMDirect Rendering Manager直接渲染管理器GARTGraphics Address Remapping Table图形地址重映射表GEMGraphics Execution Manager图形执行管理器GTTGraphics Translation Table图形翻译表本书指经 GART 映射的系统内存域GuCGraphics micro-Controller图形微控制器IntelHDPHost Data Path主机数据通路HMMHeterogeneous Memory Management异构内存管理HSAHeterogeneous System Architecture异构系统架构IBIndirect Buffer命令缓冲区IOMMUInput-Output Memory Management Unit输入输出内存管理单元IOVAI/O Virtual AddressIO 虚拟地址KFDKernel Fusion DriverAMD 计算驱动 amdkfdKMSKernel Mode Setting内核模式设置LLCLast-Level Cache末级缓存LRULeast Recently Used最近最少使用MESMicro Engine Scheduler微引擎调度器AMDMMIOMemory-Mapped I/O内存映射 IOMMUMemory Management Unit内存管理单元MQDMemory Queue Descriptor队列描述符NUMANon-Uniform Memory Access非一致内存访问OOMOut of Memory内存耗尽P2PPeer-to-Peer点对点访问PASIDProcess Address Space ID进程地址空间标识PATPage Attribute Table页属性表x86PCIePCI ExpressPCIe 总线RASReliability, Availability and Serviceability可靠性、可用性与可维护性SDMASystem DMA系统 DMA 引擎AMDSoCSystem on Chip片上系统SVMShared Virtual Memory共享虚拟内存TLBTranslation Lookaside Buffer地址翻译后备缓冲TLPTransaction Layer Packet事务层报文TTMTranslation Table ManagerTTM 内存管理器UCUncached非缓存UMAUnified Memory Architecture统一内存架构USMUnified Shared Memory统一共享内存SYCLVAVirtual Address虚拟地址VMVirtual Memory本书指 GPU 虚拟地址空间VMIDVirtual Memory ID地址空间标识VRAMVideo RAM显存WBWrite-Back回写WCWrite-Combining写合并WCBWrite-Combining Buffer写合并缓冲区2. 术语术语表按英文字母顺序排列。“本书译法”一栏给出书中采用的写法有通行中文译名的使用中文惯用英文的保留英文。“章”一栏给出主要讨论该术语的章。英文本书译法说明章acquire context获取上下文ww_mutex 一次多锁事务的上下文携带事务的票据7Address Translation ServicesATS地址翻译服务PCIe 特性允许设备在本地缓存 IOMMU 的翻译结果1attachattach导入方向 dma-buf 登记自己的设备此后才能 map6authentication认证primary 节点上的客户端经 master 认证后才能调用部分 ioctl2backing store后备存储为 BO 提供实际内存的方案如 shmem、CMA 与 TTM3、4、5Base Address RegisterBARBARPCIe 设备映射到 CPU 地址空间的地址窗口分为寄存器 BAR、门铃 BAR 与显存 BAR1bind绑定把 BO 的一段映射到 GPU 虚拟地址空间中的指定地址9bind queue绑定队列异步执行绑定作业的队列由驱动基于 GPU 调度器实现9BOOKKEEPBOOKKEEPdma_resv中最低的用途级别只供内存管理使用7Buffer ObjectBO缓冲区对象GPU 可访问的一块内存及描述它的内核对象1、3Command ProcessorCP命令处理器GPU 中从 ring 取包、解析并分发给执行引擎的部件1command submissionCS命令提交用户态经 ioctl 把命令、依赖与 BO 交给内核的过程10Contiguous Memory AllocatorCMA连续内存分配器内核为大块物理连续内存预留并按需分配的机制4credit额度GPU 调度器的流控单位作业下发前计入硬件 fence 就绪时归还8dependency依赖作业执行前必须等待就绪的 fence7、8device-private page设备私有页ZONE_DEVICE中代表设备内存、CPU 不能直接访问的页11DMA addressDMA 地址设备发出的访存地址存在 IOMMU 时由其翻译为物理地址又称总线地址1、6dma-bufdma-buf内核中跨设备、跨进程共享缓冲区的框架以文件描述符为载体6dma_fencefence表示一次异步操作完成的对象只能就绪一次7dma_resvresvBO 上由一把 ww_mutex 与一张 fence 表组成的对象承载隐式同步旧称预留对象7doorbell门铃每个硬件队列对应的地址写入即通知 GPU 该队列有新命令1、10dynamic importer动态导入方提供失效回调、允许导出方在共享期间迁移 buffer 的导入方6entity调度实体GPU 调度器中对应“上下文 × 硬件队列类型”的作业队列其作业按入队顺序下发8eviction驱逐内存域空间不足时把 BO 迁往降级内存域5eviction fence驱逐 fence用户态队列场景下供内存管理等待的 fence就绪表示相关队列已停止访问 BO10explicit synchronization显式同步由用户态以 sync_file 或 syncobj 显式传递依赖的同步方式7exporter导出方提供 buffer 及其访问方式的一方实现dma_buf_ops6external objectextobj外部对象在多个 VM 中使用或被导出、拥有独立 resv 的 BO9fake offset伪偏移设备文件中代表某个 BO 的 mmap 偏移区间3finished fencefinished fence调度 fence 的一部分作业完成时就绪8firmware scheduling固件调度由 GPU 固件在队列之间仲裁的调度方式1、8、10flink nameflink 全局名旧接口分配的设备级全局整数名仅为兼容保留3ghost objectghost 对象TTM 迁移时接管旧资源、待搬运完成后再释放的临时 BO5GPU schedulerGPU 调度器DRM 的公共作业调度框架drm_sched8Graphics Address Remapping TableGARTGART把一段连续的 GPU 地址映射到离散系统内存页的单级页表1、5Graphics Execution ManagerGEMGEMDRM 的缓冲区对象框架负责对象的身份、引用、CPU 映射、共享与同步3GTTGTT经 GART 映射、GPU 可以访问的系统内存所构成的内存域5handlehandle按drm_file隔离的整数用户态以它引用 BO3hardware fence硬件 fence驱动把作业交给硬件后返回、由硬件完成时就绪的 fence8headless无显示输出没有显示输出的 GPU 或加速卡1Heterogeneous Memory ManagementHMM异构内存管理使设备驱动可以镜像进程页表、迁移页面的内核机制11Host Data PathHDP主机数据通路GPU 中承载 CPU 经显存 BAR 访问 VRAM 的通路带有需显式刷新的缓冲1hot unplug热拔出设备在仍有打开文件时被移除2implicit synchronization隐式同步访问方经 BO 上的 resv 自动相互等待的同步方式7importer导入方使用其他设备导出的 buffer 的一方6in-fence / out-fence输入 fence / 输出 fence作业执行前等待的 fence / 作业完成时就绪的 fence7、8in-flight在途已下发到硬件而尚未完成8indefinite fence不定期 fence不能保证在有限时间内就绪的 fence10Indirect BufferIB命令缓冲区存放一项作业具体命令的内存由 ring 中的包引用1interval tree区间树以地址区间为键的增强红黑树drm_gpuvm以它索引映射9invalidation失效撤销缓存中的旧内容如 TLB 失效、映射失效1、9、11IOMMUIOMMU把设备 DMA 地址翻译为物理地址并检查权限的部件1、6Kernel Mode SettingKMSKMS内核中的显示模式设置与显示硬件建模1kernel scheduling内核调度由内核调度器在调度实体之间选择并写入共享 ring 的调度方式1、8long-running长时运行作业执行时间不受限、不使用常规 dma_fence 报告完成的工作模式10managed resource托管资源由 devres 或drmm_*按设备或drm_device生命期自动释放的资源2master主设备primary 节点上持有显示控制权的客户端2memory domain内存域BO 可以放置的内存类别如 VRAM、GTT 与系统内存5migration迁移在内存域之间或系统内存与设备内存之间搬运 BO 或页面5、11mirror镜像GPU 页表跟随 CPU 页表变化使 GPU 直接使用进程地址11MMIOMMIO设备寄存器映射到 CPU 地址空间后的访问方式1multihop多跳迁移无法直接搬运时经中转位置分两步完成的迁移5operation sequence操作序列drm_gpuvm把一次绑定请求拆分成的 UNMAP、REMAP、MAP 序列9owner属主fence 或设备内存的所属方用于决定是否需要等待或能否直接访问7、11page pool页池TTM 按缓存属性缓存系统内存页的分配器ttm_pool5PASID进程地址空间标识标识设备访问所属进程地址空间的编号1peer-to-peerP2P点对点访问一个设备直接访问另一设备 BAR 内存不经过系统内存1、6pending list在途作业列表调度器中已下发、尚未释放的作业列表pending_list8pin固定pin使 BO 或页面在一段时间内不被迁移或回收4、5、6placement放置为 BO 选择内存域并分配空间5preempt fence抢占 fence长时运行模式下供内存管理等待的 fence就绪表示队列已被抢占10primary nodeprimary 节点具有显示控制能力的设备节点/dev/dri/cardN2PRIMEPRIMEDRM 在 GEM handle 与 dma-buf fd 之间转换的机制6purgepurge丢弃用户态标记为可丢弃的 BO 的内容4recoverable page fault可恢复缺页GPU 访问无效地址时暂停并等待软件建立映射后重试1、11relocation重定位内核在提交时回填 BO 地址的旧寻址方式1、9render node渲染节点不涉及显示控制、无需认证的设备节点/dev/dri/renderDN2reservation object预留对象dma_resv的旧称1、7resource manager资源管理器TTM 中每个内存域的空间分配器ttm_resource_manager5revalidate重新校验提交前把被驱逐的 BO 放回并重建映射9、10ringring首尾相接的命令缓冲区命令处理器按读写指针依次取包1、8run queue运行队列调度器按优先级划分的调度实体队列8scatter-gather分散/聚集以多个不连续的段描述一块内存内核以sg_table表示4、6scheduled fencescheduled fence调度 fence 的一部分作业交给硬件后就绪8scheduler fence调度 fence调度器为每个作业创建的一对 fencescheduled 与 finished8seqno序号fence 在所属时间线上的编号1、7Shared Virtual MemorySVM共享虚拟内存CPU 与 GPU 使用同一进程虚拟地址空间11shrinkershrinker内存紧张时由内核回调、释放驱动缓存内存的接口4、5signal就绪fence 所表示的操作已完成7、8signalling path信号路径fence 就绪所依赖的执行路径其上不得分配可能触发回收的内存或等待回收路径的锁7、9snoop窥探设备访存时由一致性互连检查并处理 CPU 缓存中的副本1sparse binding稀疏绑定只把资源的部分区域绑定到内存9swap out换出把页面内容写入 swap 后释放页面4、5sync_filesync_file持有一个不可变 fence 的匿名文件7syncobj同步对象drm_syncobj设备文件中可替换 fence 的对象7ticket票据ww_mutex 事务的先后标记用于决定冲突时谁退让7timeline时间线按序号依次完成的一组 fence7timeline semaphore时间线信号量Vulkan 中以递增整数表示进度的信号量7TLB invalidationTLB 失效修改页表后使 TLB 中的旧翻译失效1、9Transaction Layer PacketTLP事务层报文PCIe 链路上传输的请求与完成报文1Translation Table ManagerTTMTTM管理多个内存域之间放置、迁移与驱逐的后备存储框架5UncachedUC非缓存不经 CPU 缓存、逐个发出的内存类型1Unified Memory ArchitectureUMA统一内存架构CPU 与 GPU 共享系统内存的结构1user queue用户态队列ring、指针与门铃映射到应用地址空间、提交不经过内核的队列1、10userptruserptr以进程已有的用户态内存作为 GPU 可访问内存5、9VM_BINDVM_BIND由用户态把 BO 绑定到指定 GPU 虚拟地址的接口形式9VMID地址空间标识GPU MMU 区分不同地址空间的硬件编号1VRAM显存独立 GPU 自带的本地内存1、5wait-before-signal先等待后就绪等待方先于被等待方提交时间线信号量允许的用法7Wait-Die / Wound-WaitWait-Die / Wound-Waitww_mutex 的两种冲突处理策略按票据先后决定谁退让7Write-BackWB回写经 CPU 缓存、延后写回内存的内存类型1Write-CombiningWC写合并不经 CPU 缓存、写入在写合并缓冲区中合并后发出的内存类型1ww_mutexww_mutex支持多锁事务、可检测并避免死锁的互斥锁7zero-copy零拷贝多个设备直接访问同一块内存不产生副本6ZONE_DEVICEZONE_DEVICE内核中以struct page描述设备内存的内存区11