GeForce 6200 TurboCache的架構
GeForce 6200 TurboCache采用的GPU是NV44,采用臺積電110nm制造,以之前GeForce 6600具備強大的超頻空間來看,NVIDIA在110nm工藝上似乎掌握的不錯。GeForce 6200 TurboCache(以下簡稱GeForce 6200 TC)具備3組頂點著色器、4條像素著色器流水線、兩組光柵化操作處理器。
NV44的規格有些類似于GeForce 6200,但還是有一些差別,例如GeForce 6200的流水線是4條像素著色器流水線為一組(或者說一個Quad),而GeForce 6200TC則是兩條像素著色器流水線為一組(或者說一個Dyad)。這意味著什么呢?我們都知道基于NV40的GeForce 6800、基于NV43的GeForce 6200其實都是砍流水線方式"做"出來的產品,而砍像素流水線的時候是以Quad方式進行的,即每次把一組4條像素著色器流水線的組(quad)砍掉。
但是到了GeForce 6200TC的時候,如果想繼續"砍"的話,就不能以4條像素著色器流水線為單位了,這因為這樣一砍的話,就會變成徹底的廢品。因此,NVIDIA把GeForce 6200TC的流水線捆綁方式縮小為兩條,這樣要砍的話,也只是砍兩條而已,只不過未來是否會有GeForce 6200TC的削減流水線版,就有待觀察了。
需要注意的是,采用捆綁流水線組的方式不僅僅是為了能夠方便把存在瑕疵的次品重新利用,其實還有一個原因,那就是能夠減少GPU為實現并行處理像素時的晶體管數量。
除了流水線削減外,NVIDIA還把色彩緩存壓縮、深度緩存壓縮去掉,不過GeForce 6200 TurboCache針對的是低端PCI-XP顯卡市場,受色彩緩存壓縮影響性能的FSAA(全屏抗鋸齒)功能,只有兩組ROP的GeForce 6200TC在處理能力能力上并不能維持打開FSAA時候的像素填充速率需求,因此去掉色彩緩存壓縮來降低成本的做法是可以理解的。至于缺乏深度緩存壓縮的確會造成一定的性能影響,而不僅僅是FSAA。
NV44引入了獨特的緩存管理機制,實現了以較少的本地內存實現同價格檔次產品更高的性能,這個管理機制就被稱作Turbo Cache,也是GeForce 6200 TurboCache名字的由來。為了方便大家理解,我們先來說說傳統的渲染體系架構。
NV43:3VS+8PS+4ROP+2X64bitMC
上圖是GeForce 6600系列的3D渲染體系架構圖,從上到下,分別是頂點著色器(Vertex Shader,VS)、像素著色器(Pixel Shader,PS,包含算術運算單元和貼圖單元)、光柵化操作處理器(Raster Operation Processor,ROP,負責抗鋸齒、色彩混合等操作),最底下的則是兩個64位的內存控制器(Memory Controler,MC)。
如果屏蔽掉其中的4個PS和兩個ROP,我們就能得到GeForce 6200:
NV43V:3VS+4PS+2ROP+2*64bitMC
而GeForce 6200TC就是真真正正的4流水線產品:
NV44:3VS+4PS+2ROP+2*32bitMC
GeForce 6200TC新引入了內存管理單元(Memory Manage Unit,MMU,又被稱作TurboCache Manager,即TCM),能夠讓GPU透過PCI-Express(PCI-XP)總線直接對系統內存進行讀取和寫操作,自動把渲染結果和紋理分配在本地內存或者系統內存上,是一種以較少的本地內存實現比其它同價位不具備此能力的產品更高效率的內存管理機制。
在AGP/PCI時代,人們就已經利用系統內存來存放紋理,供GPU調用,但是32位 33MHz PCI總線的爆發傳輸(單地址,4個word)模式也不過是110MB/s,而且一般都還需要透過“總線橋”才能訪問到系統內存。
AGP總線比起PCI改進不少,帶寬增加到2.1GB/s(AGP 8X),新增了DIME模式,在DIME模式下能夠依靠主板北橋芯片組中的GART,直接往系統內存寫深度緩存和存取紋理,但是AGP總線不支持雙向同步傳輸,因此一旦真的跑到AGP上調用紋理和寫深度緩存的話,性能還是會大打折扣。
到了PCI-XP時代,每條PCI-XP通道能達到250MB/秒的傳輸帶寬(PCI-XP 1.0規格),并且能實現雙向同時傳輸,這樣每條PCI-XP通道的傳輸能力就達到了500MB/s。PCI-XP還可以根據滿足不同設備的需求,組合成更高帶寬的通道,例如把16條PCI-XP通道組合成PCI-XP 16X,這就是PCI-XP的圖形卡標準,即PCI-Express Graphics,簡稱PEG。
PEG能同時提供上下行各4GB/s的帶寬,共計8GB/s,但是PEG卻缺乏AGP總線的DIME傳輸模式,一般的基于PEG的GPU是不能直接向系統內存寫數據的,談不上直接利用系統內存。
NV44有了MMU后,就類似于把CPU的內存管理器搬到了NV44 GPU里,能夠把本地緩存和系統內存渾然視作一體,突破兩者的物理地址,以虛擬尋址方式自由地分配幀緩存、紋理緩存。不過,為了讓RAMDAC能高效地讀取幀緩存數據,NV44會永遠都把前臺幀緩存(Front Frame Buffer)存放在本地緩存里。也就是說,GeForce 6200TC必須有本地內存,而非完全依靠系統內存。
GeForce 6200 TC在處理3D渲染的時候,本地集成的內存中,存放的除了前臺幀緩存外,還會有紋理、深度緩存、渲染對象(Render-Target)等。有些紋理的尺寸可能有1024x1024甚至更大,由于具備虛擬定址能力,MMU可以只把所需的紋理的一部分或者較低分辨率的版本(mipmap)存放在本地,原紋理放在系統內存,從而讓本地緩存變成一個大型的cache,這樣的處理方式會比直接訪問原紋理更高效。