drm/amdgpu - 圖形與計算 (GC)

CPU 和 GPU 之間的關係可以描述為生產者-消費者問題,其中 CPU 填充一個包含待由 GPU(消費者)執行的操作的緩衝區(生產者)。緩衝區中請求的操作被稱為命令包(Command Packets),可以概括為一種向圖形控制器傳輸命令資訊的壓縮方式。

作為 CPU 和 GPU 之間前端的元件稱為命令處理器(Command Processor,CP)。該元件負責為 GC 提供更大的靈活性,因為 CP 使得程式設計 GPU 流水線的各個方面成為可能。CP 還透過名為 環形緩衝區(Ring Buffers) 的機制協調 CPU 和 GPU 之間的通訊,其中 CPU 向緩衝區追加資訊,而 GPU 移除操作。值得強調的是,CPU 可以向環形緩衝區新增一個指向環形緩衝區外部另一記憶體區域的指標,CP 可以處理它;這種機制稱為 間接緩衝區(Indirect Buffer,IB)。CP 接收並解析命令流(Command Streams,CS),並將操作寫入正確的硬體塊。

圖形 (GFX) 和計算微控制器

GC 是一個大型模組,因此它關聯著多個韌體。其中一些是:

CP(命令處理器)

這是包含 GFX/計算流水線前端的硬體模組的名稱。主要由一堆微控制器(PFP、ME、CE、MEC)組成。在這些微控制器上執行的韌體提供了與 GFX/計算引擎互動的驅動程式介面。

MEC(微引擎計算)

這是控制 GFX/計算引擎上計算佇列的微控制器。

MES(微引擎排程器)

這是用於管理佇列的引擎。更多詳情請檢視 微引擎排程器 (MES)

RLC(執行列表控制器)

這是 GFX/計算引擎中的另一個微控制器。它處理 GFX/計算引擎內部與電源管理相關的功能。這個名稱是舊硬體的遺留,它最初是在那裡新增的,與該引擎現在的功能沒有太多關係。