架構細究
就像 Nvidia,AMD 選擇改善先前架構,而非重頭再來。這情況相當類似 R600 的架構,而 RV670 也已重複使用過。
SIMD 核心
此架構首先出現在 Xbox 360 使用的相同 GPU Xenos 中,它是基於一組 SIMD 陣列的集合。Xenos 擁有三個 SIMD 陣列,R600 與 RV670 則擁有四個。RV770 更進一步提升到十個。
GPU 擁有 800 個 ALU,讀者或許已推論出每個 SIMD 陣列內含 80 個 ALU。事實也的確如此,但這是現實情況的簡化觀點。事實上,這 80 個 ALU 並非互相獨立。它們是以五路 VLIW 的單元群組化-每個 SIMD 陣列 16 個單元。這種組織方式會對執行的指令加諸特定限制;一個 VLIW 管束 (bundle) 的五個指令中的每一個都必須互相獨立。並由編譯器找出足夠的獨立指令來飽合 ALU 處理能力-不同於使用較為「硬體」方案的 G80。
以下是說明我們剛剛所述的範例:
- I1 FADD R1, R1, 3.14
- I2 FMUL R2, R1, 1.41
- I3 FMAD R3, R0, 0.5, 0.5
在此情況下,指令 1 與 3 可以共享相同管束,但依賴指令 1 結果的指令 2 就不行。如果編譯器無法其指令窗口中找到足夠的作業,就必須以什麼都不做的 NOP 指令填滿該管束,因而降低了晶片的效能。這種情況會造成 Nvidia ALU 因為較不依賴底層程式碼而提高了達到尖峰效能的機會;但缺點是必須較耗用電晶體數目。AMD 的單元強烈依賴編譯器的效能 (對驅動程式而言「內接」的編譯器,它會重新組織 HLSL 產生的組譯器指令),但 AMD 卻能夠在體積小了許多的裸晶上納入較多數目的電晶體。
VLIW 單元本身並未大量翻新;上面具有四個單元可以執行一個 FMAD 或一個整數加法,以及一個特殊單元可執行一個 FMAD 或一個整數乘法或一個超越函數 (正弦、餘弦、log、指數等)。唯一的改良就是整數的位元移位 (bit-shifting) 作業,這在五個單元中的任何一個都可以處理,而在 2900/3800 上只有上述的特殊單元可以執行這些作業。AMD 並未提升此設計的效能,而是將之優化,以降低在裸晶上的大小,藉以增加其數目。


