DirectX支配游戲!歷代GPU架構(gòu)全解析
★ 首款DX10顯卡——GeForce 8800
無論從哪個方面來看,GeForce 8800與DX9時代的Radeon 9700都非常相似,微軟的新一代API尚未正式發(fā)布,而新顯卡居然開賣了大半年,雖然沒有新游戲的支持,但在老游戲下的性能依然非常完美。因此每一代成功的顯卡最關(guān)鍵的還不是API,還是核心架構(gòu)。DX10是API的又一次革命,而G80則是GPU架構(gòu)的一次偉大革命:
如果說R580像素與紋理3:1的比例讓人很費解的話,那么G80的流處理器設(shè)計則讓用戶們一頭霧水:從G71的24條像素管線一下變成了128個流處理器,哪來的這么多?

傳統(tǒng)的GPU Shader架構(gòu)
傳統(tǒng)的Shader不管是像素還是頂點,其實都是SIMD(單指令多數(shù)據(jù)流)結(jié)構(gòu),就是個4D矢量處理器,可以一次性的改變像素的RGBA數(shù)據(jù)或者頂點的XYZW數(shù)據(jù)。而G80的流處理器則是1D標量處理器,它一次只能計算像素和頂點4個數(shù)據(jù)中的1個,如此說來效率豈不是很低?
當然不是,因為隨著游戲的發(fā)展,GPU所要處理的指令已經(jīng)不是4D這種常規(guī)數(shù)據(jù)流了,進入DX10時代后Z緩沖區(qū)(1D)或紋理存?。?D)等非4D指令所占比重越來越多,此時傳統(tǒng)的Shader單元在執(zhí)行此類指令時的效率會降至1/2甚至1/4,即便有Co-issue技術(shù)的支持效率改進也十分有限。
G80的SP
而G80 1D標量流處理器執(zhí)行各種類型指令時的效率都能達到100%,這也就是NVIDIA對于GPU架構(gòu)大換血的主要目的。G80的這種架構(gòu)被稱為MIMD(多指令多數(shù)據(jù)流),其特色就是執(zhí)行效率非常高,但也不是沒有缺點,理論運算能力偏低、晶體管消耗較大,當然由于對手產(chǎn)品實力不行,這些缺點在很長一段時間內(nèi)都沒有被發(fā)現(xiàn)。
而且NVIDIA的1D標量流處理器還可以異步工作在超高頻率之下,一般是GPU核心頻率的兩倍,由此大幅提升了渲染能力。這一技術(shù)ATI至今都未能實現(xiàn)。
★ ATI的DX10圖形架構(gòu)——R600
與革命性的G80架構(gòu)不同,R600身上有很多傳統(tǒng)GPU的影子,其Stream Processing Units很像上代的Shader Units,它依然是傳統(tǒng)的SIMD架構(gòu)。
R600擁有4個SIMD陣列,每個SIMD陣列包括了16個Stream Processing Units,這樣總共就是64個,但不能簡單地認為它擁有64個流處理器,因為R600的每個Units內(nèi)部包含了5個ALU:
我們來仔細看看R600的流處理器架構(gòu):Branch Execution Unit(分歧執(zhí)行單元)就是指令發(fā)射和控制器,它獲得指令包后將會安排至它管轄下5個ALU,進行流控制和條件運算。General Purpose Registers(通用寄存器)存儲輸入數(shù)據(jù)、臨時數(shù)值和輸出數(shù)據(jù),并不存放指令。
由于內(nèi)部的5個1D ALU共享同一個指令發(fā)射端口,因此宏觀上R600應(yīng)該算是SIMD(單指令多數(shù)據(jù)流)的5D矢量架構(gòu)。但是R600內(nèi)部的這5個ALU與傳統(tǒng)GPU的ALU有所不同,它們是各自獨立能夠處理任意組合的1D/2D/3D/4D/5D指令,完美支持Co-issue(矢量指令和標量指令并行執(zhí)行),因此微觀上可以將其稱為5D Superscalar超標量架構(gòu)。
通過上圖就可以清楚的看到,單指令多數(shù)據(jù)流的超標量架構(gòu)可以執(zhí)行任意組合形式的混合指令,在一個Stream Processing Units內(nèi)部的5個ALU可以在單時鐘周期內(nèi)進行5次MAD(Multiply-Add,乘加)運算,其中比較“胖”的ALU除了MAD之外還能執(zhí)行一些函數(shù)(SIN、COS、LOG、EXP等)運算,在特殊條件下提高運算效率!
現(xiàn)在我們就知道R600確實擁有64x5=320個流處理器。R600的流處理器之所以能比G80多好幾倍就是得益于SIMD架構(gòu),可以用較少的晶體管堆積出龐大規(guī)模的流處理器。但是在指令執(zhí)行效率方面,SIMD架構(gòu)非常依賴于將離散指令重新打包組合的算法和效率,正所謂有得必有失。
★ 總結(jié):DX10架構(gòu)G80笑到了最后
通過前面的分析我們可以初步得出這樣的結(jié)論:G80的MIMD標量架構(gòu)需要占用額外的晶體管數(shù),在流處理器數(shù)量和理論運算能力方面比較吃虧,但卻能保證超高的執(zhí)行效率;而R600的SIMD超標量架構(gòu)可以用較少的晶體管數(shù)獲得很多的流處理器數(shù)量和理論運算能力,但執(zhí)行效率方面卻不如人意。
G80的架構(gòu)顯然要比R600改進更為徹底,所以打從一開始G80/G92就遙遙領(lǐng)先與R600/RV670,其后續(xù)產(chǎn)品GT200一如既往的保持領(lǐng)先優(yōu)勢,但幅度沒有G80那么大了,因為R600的架構(gòu)的特性就是通過數(shù)量彌補效率的不足。
關(guān)注我們


