
Glossary
这里的 hardware block, IP (Intellectual Property) block, controller, processor, engine 基本上都是指一个具有相对独立功能的硬件处理单元。
Abbr. |
Stands for |
Description |
GMC |
Graphics Memory Controller |
管理 GPU 上不同 IP 如何获取内存 (VRAM) 的控制器,它也提供每进程 GPU 虚拟地址空间的支持(听起来有点像 MMU) |
IH |
Interrupt Handler |
GPU 上的中断控制器 |
PSP |
Platform Security Processor |
处理 SoC 上的安全策略,执行 trusted app, 为其它 IP 验证和加载固件程序 |
SMU |
System Management Unit |
SoC 的电源管理微控制器,驱动通过这个模块来控制芯片的时钟,电压域,电源轨等 |
DCN |
Display Controller Next |
显示控制器 |
SDMA |
System DMA |
多功能 DMA engine, KMD 利用它完成分页,GPU 页表更新,而且它通过 UMD 暴露给用户态使用 |
GC |
Graphics and Compute |
GFX/Compute engine, 这是 GPU 上最大的 IP, 它包含 3D pipeline 和 shader cores |
VCN |
Video Codec Next |
Multi-media engine,它处理视频和图像的编解码,通过 UMD 暴露给用户态使用 |
CP |
Command Processor |
包含 GFX/Compute engine 的前端,一批微控制器,包括 PFP,ME,CE,MEC,它们上面运行固件代码,为驱动提供与 GFX/Compute engine 进行交互的接口 |
CE |
Constant Engine |
GFX CP 里的一个小处理器,主要用来更新 buffer descriptor 以便异步地将 PFP/ME 使用的 buffer 加载进 cache |
PFP |
Pre-Fetch Parser |
GFX CP 里的一个小处理器,需要给它加载 µCode 去执行, 从名字能看出来它是预取 packets 的 |
ME |
MicroEngine |
GFX CP 里的一个小处理器,它和 PFP 组成一个 Drawing Engine,可以和 CE 异步执行 |
MEC |
MicroEngine Compute |
微控制器用来控制 GFX/Compute engine 上的 compute queues, Compute Engine 一般有 2 个 MEC, 而且每个 MEC 支持 32 个 HW ring(queue) |
MES |
MicroEngine Scheduler |
一个新的微控制器用来控制 queues, 估计既可以控制 compute queues, 也可以控制 gfx queues, 而且它上面运行的固件可能取代现有的内核 gpu scheduler, 而变成 firmware-based scheduling 😃 猜 |
RLC |
RunList Controller |
又一个 GFX/Compute engine 里的微控制器,用来处理 GFX/Compute engine 内部的电源管理,至于名字是历史遗留,与它的功能没有毛关系 |
Abbr. |
Stands for |
Description |
KIQ |
Kernel Interface Queue |
KMD 的一个控制队列,用来管理 GFX/Compute engine 上的其它队列 |
IB |
Indirect Buffer |
某个特定 engine 的 command buffer, 通常不是直接将命令写入硬件 queue 里,而是先将命令写入一块内存,然后再将内存的地址写入硬件 queue |
HQD |
Hardware Queue Descriptor |
kernel queues 或 user queues 将“映射”到一个 HQD, 一个 HQD 可能就是一个 MMIO 地址寄存器。kernel queues 和 user queues 映射的区别是, kernel queues 总是静态地映射到一个 HQD, 而 user queues 由 MES 动态地 映射到剩余的所有其它 HQDs |
MQD |
Memory Queue Descriptor |
定义 queue 的状态,包括 GPU virtual address, doorbell 等,驱动为每个它创建的 queue 设置一个 MQD, MQD 被交给 MES firmware 去映射 |
KFD |
Kernel Fusion Driver |
AMD APU 芯片的内核驱动, 主要用于 HSA 架构的芯片 |
KGD |
Kernel Graphics Driver |
AMD GPU 芯片的内核驱动, 主要用于独立显卡和 OEM 上的 GPU 芯片 |
RAS |
Reliability, Availability, Serviceability |
AMDGPU 驱动的一个功能特性,帮助错误检测上报,错误处理和调试 |
References