電腦達人養成計畫 5-18:NVIDIA 的首款統一渲染器架構-Tesla (上)

本篇由於篇幅過長因此將分上、下二篇,下篇預計明天發佈。

上篇看完 2006 年個人電腦 3D 圖形方面的巨大革新之後,接下來我打算回到產品的部分,不同於過去幾代廠商在命名上沒有太多同代產品改名甚至交錯的情況,從 2006 年開始每代 GPU 架構幾乎都還蠻長壽而且橫跨多個不同系列,所以沒辦法再繼續用系列當成產品之間的分界了,基於這樣的理由,從這篇開始我會改用「GPU 架構為單位」,一次介紹一間廠商的一代架構,並且輪流介紹 NVIDIA 與 AMD 的產品。

NVIDIA Tesla Microarchitecture

本篇要介紹的是 NVIDIA 的第一款基於統一渲染器架構的 GPU 架構設計,也就是在 2006 年推出的 Tesla 架構,從此代架構之後 NVIDIA 都使用歷代知名科學家的名字來做為架構的研發代號,這同時也是 NVIDIA 史上最為長壽的架構,從 2006 年開始一路到 2011 年都還能見到基於此架構的產品,Tesla 架構同時也是未來十年內 NVIDIA 所有 GPU 架構的基礎原型。

Tesla 架構由於生存年代很長,因此先後更換過許多次製程,也經歷的數次小幅的改版,因此大致上可以分為前期與後期,其中前期的部分由 G8x 與 G9x 兩個核心系列組成,後者則是由 GT200 系列核心所組成,接下來我打算以此為區分,將 Tesla 世代架構分成二代分別介紹。

第 1 代 Tesla 架構:G8x 系列核心

adk8988

還記得上一篇我們談了 DirectX 10.0 帶來的大量改變,這理所當然的意味著 GPU 廠商得對他們的架構進行一番大改造才能完整支援新一代的 DirectX,對 NVIDIA 來說,他們給出的答案就是 GeForce 8 系列 (2006 年 11 月就端出來了,AMD 陣營則是被上一代的 R500 拖累並且忙於合併事宜因此要等 2007 年才會端出這世代的產品)。

大幅翻新的架構規劃

由於前代產品 G70 已經是好一陣子之前介紹的了,所以在開始深入談這代架構之前,讓我們稍微先複習一下 G70 的架構規劃吧 (上圖),像是多達 8 組頂點渲染器、多達 6 x 4 組像素渲染器與底下的 16 組 ROUs 之類的,是典型的可程式化管線設計。

接下來讓我們回頭看看第一世代 Tesla 所帶來的全新架構設計吧,相信明眼人都能看得出來兩者之間差異非常的大,受到統一渲染架構的影響,Tesla 架構跟上一代幾乎沒有太多相似之處,除了中央繪圖管線的架構全部重新洗牌且看不出不同種類 Shader 的分別之外,連同快取記憶體的規劃也產生了巨大的變化,TMU 與 ROP 的部分也和以前大不相同了。

單從上面的架構圖,一般人應該除了發現中間多了一大堆的綠色方塊之外甚麼也看不出來吧?實際上這些五顏六色、各種大小的方塊就是 Tesla 架構最大的變革所在,NVIDIA 稱它們為 Texture Processor Cluster (材質處理單元叢集,TPC),這 8 大組 TPC 在這裡完整取代了以往的繪圖渲染管線成為 NVIDIA GPU 最重要的核心部分 (所以從 G80 開始我們就不討論 NVIDIA GPU 有幾條繪圖管線了),接下來讓我們拉近距離了解一組 TPC 當中到底有著哪些東西。

從上圖當中我們可以很明顯地注意到每組 TPC 當中都包含了兩大組稱之為 Streaming Multiprocessor (串流複合處理器,SM) 的運算單元與一大塊用於存放貼圖材質的 L1 快取 (在 Tesla 架構中每個 TPC 之間的 L1 快取是各自獨立的) 與貼圖單元,而每組 SM 單元之中都各自擁有一份 L1 指令快取與 L1 資料快取,在兩種快取之間有負責存取與解碼指令的單元。

至於實際負責運算工作的則是每組 SM 當中所包含的八個串流處理器 (Streaming Processor,SP,在 G80 當中最多有 128 組之多) 與兩組用於處理複雜數學函數 (例如指對數、三角函數等) 的特殊功能單元 (Special Function Unit,SFU),這十個運算單元彼此之間還設計了一小塊共享記憶體用於讓這些運算單元得以互相溝通、傳遞資料。

透過大量的通用浮點運算單元來取代以往具專用色彩的 Vertex Shader、Pixel Shader 與 Geometry Shader 實際上就是 NVIDIA 用來實作 Unified Shader Architecture 的基本精神。

SP 數量大增背後的涵義

在了解新的運算單元配置之後,或許你腦中會浮現這個疑問:我們以前說影響 GPU 性能最直接的指標就是繪圖管線 (或是 VS、PS) 的多寡,得益於 3D 圖形運算的高度平行性,我們幾乎可以認為在架構不變的狀況下繪圖管線 (或是 VS、PS) 的數量會與處理器的性能成正比成長,但上一代的 G70 只有 24 條像素管線,G80 的 128 個核心這數字是怎麼來的?難道 G80 一口氣比 G70 快了 5.33 倍嗎?顯然不可能嘛,其實問題的癥結點是在於 VS、PS、SP、繪圖管線這四個名詞所代表的東西,其實根本是完全不同的事情。

但要解答這個疑問之前,我們得先了解在過去幾代 GPU 當中,繪圖管線中的運算單元是怎麼運算傳進來的資訊的。實際上以往我們的 GPU 大致都是設計成能夠同步處理一個三維向量與一個純量,也就是一次最多能處理四個維度的意思,這被我們稱為「一組 ALU」,也就是過去我們所談的 Pixel Shader (PS) (上圖)。

不過在 G80 的架構中 NVIDIA 決定不這麼做,改成全部只使用「純量運算單元」,讓每個 SP 簡化成只由「一組純量乘加運算單元」與「一組純量乘法運算單元」組成,由於每個 SP 只能處理一個維度的資料,在理論值上只有過去的 1/4 (粗略而言你可以想像成 4 組 SP 才相當於一個 PS),因此才會發生 SP 數量突然暴增的情況 (其實 NVIDIA 應該也有意藉此讓用戶產生 G80 比起以往產品性能強大數倍的錯覺吧?)。

至於為什麼要這麼做呢?其實有很多理由,首先在以往的架構當中,由於繪圖管線本身是一個具有 4 個維度的運算單元,在單一周期內雖然可以同時處理一個三維度的向量與一個純量,但在實務上卻不是隨時都有這些資料能夠充分「餵飽」這些運算單元,在這種情況下就類似以往的非統一渲染器架構,會發生有些部分在納涼的資源閒置浪費情形。

而在新的架構當中,雖然每次都只能處理一個維度,在遇到向量指令的時候得「分次處理」,但由於 G80 架構當中本身有一堆 SP 可以做事,因此在效率上造成了不減反增的效果,而且還能解決過去在處理純量或低維度指令時的閒置問題,每分每秒都能完整利用所有的 SP,壓榨出 GPU 的性能極限。

而另一個重要的理由則是大幅簡化「單一 SP」的電路複雜度,這讓 NVIDIA 得以在 G80 架構當中運用分頻技術來讓 SP 運作於比 GPU 本身還要高上許多的時脈設定 (這點有點像 Pentium 4 的快速執行引擎,後面介紹 Tesla 架構產品的時候時脈數字有三個,第二個就是 SP 的時脈),更降低了 NVIDIA 在 GPU 當中塞入更多 SP 的困難度 (相較於以往增加 VS、PS 的難度而言)。

Lumenex Engine,TMU 一分為二並採不對稱設計

除了在運算單元的部分有著大幅度的調整之外,在 G80 架構當中 NVIDIA 還將原本的 TMU (Texture Mapping Unit,材質對應單元) 一分為二,分為 Texture Addressing Unit (TAU,材質尋址單元) 與 Texture Filtering Unit (TFU,雙線性材質過濾單元) 兩個部分。

而最特別的地方則是 TAU 與 TFU 的數量並不相等,G80 當中的 TFU 數量是 TAU 的兩倍,主要是基於當時預期 GPU 對記憶體索取紋理的機會變少,而處理 HDR 等操作時所需要的雙線性過濾操作頻率增加的考量。

至於要說到 Lumenex Engine 與前作在處理材質貼圖上的差異,其實主要只是體現 DirectX 10.0 當中關於 HDR 與反鋸齒的變更與新要求而已,從 Tesla 架構開始 NVIDIA 的 GPU 就不再有以往受制於 HDR 會占用 MSAA/FSAA 所需要的緩衝記憶體位置而無法同時處理 OpenEXR HDR 與多重採樣反鋸齒 (MSAA/FSAA) 的情況了。

Tesla 架構對平行化的要求與敏感度大增

看了前面的架構設計你應該可以很清楚的感受到 NVIDIA 在設計 Tesla 架構的時候完全是朝著為高度平行運算最佳化的方向進行的,花費了非常多的努力在降低可能導致 GPU 部分運算單元閒置情形的發生機率,這意味著對新的 Tesla 架構來說指令與運算操作的平行度與相依性就是影響性能的最大關鍵因素,因此在 Tesla 架構當中,下圖當中橘色的 Thread Execution Manager (後來被改稱為 GigaThread Technology) 扮演了非常重要的角色。

在 Tesla 架構當中的很多地方都體現了充分運用多執行緒的特性,舉例來說我們剛剛提過的 SM 就是這樣的狀況,在 Multithreading 運作成功且高效的狀況下,可以弭平將運算單元全部拆分為純量單元所造成的額外延遲,但相對來說也讓 Tesla 架構對所執行的程式之平行化程度更加敏感。

所以在設計上 NVIDIA 是朝單一指令多執行緒 (SIMT) 的方向思考,透過讓每個 SM 都能高效執行大量的執行緒來弭平內部的各種延遲問題,這正是剛剛提到過的 TEM 所負責的重要工作,TEM 會將所有指令與數據拆分為數千個平行執行緒,使 GPU 能在其最適應的狀況下 (也就是高平行度運算) 來高速執行工作。

除此之外 TEM 還會隨時監測是否有閒置的運算單元出現,當發現這種情況時 TEM 就會立刻發出新的指令給閒置的運算單元處理,以求最大程度的降低硬體閒置發生的機率。

除此之外 NVIDIA 還給每個運算單元提供了暫存器,當 TEM 發現有運算單元因為在等待記憶體存取或其他相依指令的時候,會要求運算單元將目前準備執行但卡住的工作存到暫存器中,並直接指派新的工作給運算單元處理,直到剛剛卡住的指令所需要的資料或條件齊全之後,才會繼續把暫存器內保存的工作拿出來繼續完成,這使得 SP 幾乎不需要等待其他指令或是延遲解決,在運作過程當中可以持續以最高效率 (高平行度) 的狀況運轉,改進了過去繪圖管線可能經常會因延遲而整個停頓的狀況。

G80 核心

簡單看過第一代 Tesla 架構之後 (Tesla 的另一個重點-CUDA 通用運算技術在上一篇我們談過很多了所以在此不再贅述),讓我們回到實際的產品上,基於第一代 Tesla 架構的第一款產品是 G80 核心 (也就是剛剛在圖片中出現很多次的樣板,因為 G80 是最完整的第一代 Tesla 架構核心)。

跟上一代 G70 的情況一樣,NVIDIA 記取過去過於積極提升製程結果被良率整到產品出不來的教訓,因此 G80 並沒有急於採用更高階的製程,而是維持與上一代 G71 相同的 90 奈米製造工藝,不過由於全新的架構與大量的 Streaming Processor,G80 的電晶體數量非常驚人,來到了誇張的 6.81 億個,將近是上代產品 G71 2.78 億的 2.5 倍了,因此 G80 一舉突破了歷代 NVIDIA GPU 面積的最高紀錄 (也超越所有當代的頂級 CPU 了,同期的 Core 2 Duo 只有 2.3 億左右個電晶體)。

如果你夠眼尖的話應該會發現上圖當中 GPU 左邊還有一顆比較小的晶片,實際上它是 G80 的 RAMDAC 與 TMDS,由於 G80 的面積實在太大了,對於 NVIDIA 來說控制 G80 的功率與良率都是非常大的挑戰,因此 NVIDIA 只好想盡辦法把一些可以不放在核心內部的東西拉到外面去做,最後的結果就是這顆 NVIO-1 晶片。

G80 最在 2006 年 11 月被命名為 GeForce 8800 系列推出,最初有 8800 GTX 與 8800 GTS 兩個型號 (這是 NVIDIA 第一次使用 GTS 命名自家的 GPU),並在隔年追加了運作時脈提高的 8800 Ultra 做為旗艦產品,這一世代的顯示卡除了 GPU 面積突破紀錄之外,顯示卡本身的 PCB 長度也創下了歷史紀錄。

還記得當年我們曾經說 GeForce FX 占用雙槽的散熱器很糟、Flow FX 多麼的不堪、GeForce FX 的耗電量與發熱量超大嗎?NVIDIA 確實也因為這樣所以在 GeForce 6 系列與 GeForce 7 系列前期的產品上都只使用了單槽散熱器,而且極力控制功耗來避免 GeForce FX 的黑歷史重演,不過到了 GeForce 8 系列 (還有 7 系列後期的 7900 系列),為了追求性能而導致的龐大發熱量與晶片面積還是讓 NVIDIA 不得不再次拿出雙槽散熱器設計了。

除此之外 G80 的耗電量也不容小覷,如果站長沒記錯的話 8800 GTX (575/1350/1800 MHz) 應該是 NVIDIA 第一款需要兩組 6-pin 外接電源才足以驅動的顯示卡,甚至比上代由兩顆 GPU 組成的 7950 GX2 還要耗電 (8800 Ultra 的 TDP 高達 145 W,而 7950 GX2 反而只有 110 W),基本上 G80 顯示卡會這麼長,最大的功臣就是右邊那一大片的高階供電模組。

至於頻率更高的 8800 Ultra (612/1500/2160 MHz) 在耗電方面則是更加誇張,TDP 高達 175 W,甚至需要 6-pin + 8-pin 的外接電源接頭組合才足以推動 (其實會吃到 8-pin 插座的顯示卡並不多見),而且 NVIDIA 還特別設計了個長得很奇葩的散熱器給 8800 Ultra 用 (上圖)。

 

最後要提的是 GeForce 8800 GTS 雖然也是使用 G80 核心,但有兩組 TPC 是被屏蔽的,時脈也被降低到 513/1188/1600 MHz,記憶體控制器也被砍了一組,因此記憶體頻寬是 320-bit 而非 384-bit。

G84/G86 核心

接下來登場的則是面向中階市場的 G84 與面向入門市場的 G86 核心,NVIDIA 在 G80 上市之後花了將近半年的時間才把新的 Tesla 架構推向中、低階市場,相較於 G80 如此壯觀的電晶體數量與面積來說,G84、G86 就顯得正常許多了,除此之外 G84、G86 也是 NVIDIA 首次在自家產品中導入 80 奈米製程 (與 G70 時代的模式如出一轍)。

由於 G84 與 G86 核心基本上是由 G80 簡化而來,同樣都是基於第一代 Tesla 架構,因此在架構設計方面其實很相似,最主要的不同出現在 TPC 與記憶體控制器 (MC) 的數量上 (連帶影響了 SM、SP、SFU、Cache 的數量配置),這正好印證了我在前面曾經提過的,從 Tesla 架構開始的模組化觀點。

老實說 NVIDIA 在第一代 Tesla 世代內砍中階產品這一刀的時候下手真的很狠,上面這張圖可不是入門級的 G86,他其實是中階級的 G84!在 G84 這一級當中 NVIDIA 一口氣把原本的八組 TPC 砍到剩下兩組,所以 SP 的數量也連帶只剩下 32 個了,記憶體控制器的部分也砍掉了 2/3,所以記憶體頻寬從原本的 384-bit 一口氣跌到只剩下 128-bit。

至於 G86 的部分呢,其實已經沒剩下甚麼東西可以砍了,所以 G86 的規劃很簡單,就是把 G84 的 TPC 再閹掉一半,只剩下單獨一組 TPC (也就是 16 個 SP),從上面這些資訊你應該也能很容易得知 G84 與 G86 沒有面積過大的問題,甚至也不太有散熱問題,因此 G84 與 G86 是沒有把 RAMDAC 與 TMDS 拉出來外面的,在成卡上也就看不到 NVIO 這顆晶片。

不過可能是基於砍了太多良心發現吧?NVIDIA 在 G84 與 G86 當中針對 TMU 的規劃跟 G80 不一樣,G84 與 G86 當中的 TAU 與 TFU 數量是一致的,並沒有像 G80 一樣設定成 1:2。

G84 與 G86 這兩款晶片的生存年代都不算長 (最主要的原因是閹割太多導致性能根本沒競爭力),其中面向中階市場的 G84 就是後來的 GeForce 8600 系列,有較高階的 8600 GTS (675/1450/2000 MHz) 、降頻後的 8600 GT (540/1188/1400 MHz,亦有採用 800 MHz DDR2 記憶體的版本) 以及僅供 OEM 出貨用的 8600 GS (540/1180/800 MHz,搭配 DDR2 記憶體) 三個版本。

至於採用 G86 核心的顯示卡則是後來的 GeForce 8500、8400、8300 系列,是系列當中唯一可以製成半高卡的版本,型號有 8500 GT (450/900/800 MHz,128-bit DDR2 記憶體)、8400 GS (450/900/800 MHz,64-bit DDR2 記憶體) 與 8300 GS (450/900/800/64-bit DDR2 記憶體,只提供 OEM 出貨用) 三款,值得注意的是,只有後兩者沒有支援 SLI 技術 (不過會有人想拿 8500 GT 來做 SLI 嗎?)。

G84 與 G86 瑕疵,差點成為 NVIDIA 歷來最大危機

如果照當時的銷售情況與性能表現來說,G84 與 G86 應該是沒辦法給人們留下太多深刻印象的,不過這件事情卻在 2008 年 G9x 核心推出一段時間,正好是搭載 G84 與 G86 晶片的電腦服役約一年之後有了轉折。

在 2008 年許多電腦廠商 (特別是筆記型電腦的部分) 發現自家的產品返修率突然提高了許多,而且有很多案例的問題都是螢幕出現雪花紋、畫面無法正常顯示或是開機後沒畫面,後來在網路上有消息來源指出這些問題是由於 G84 與 G86 晶片所以用的黏著材料所具備的熱膨脹係數與晶片的其他部位並不相同,在經過長時間使用受熱之後就會逐漸發生晶片脫落甚至短路的情況,最終導致顯示卡完全失去作用,這問題在溫度經常變化的筆記型電腦上會更明顯且更易出現。

後來 NVIDIA 方面提列了兩億美元損失用於善後這次事件,而這次事件在後來也沒有越演越烈,且在桌上型電腦的部分 G84 與 G86 沒有獲得使用者太大的青睞而是以 OEM 出貨為主,因此在各大電腦廠商更新 BIOS 修改風扇運作邏輯與召回維修之後,這個問題沒有壓垮 NVIDIA (其實當時還一度傳出連 G9x 都有問題,NVIDIA 的股價跌了好幾天,市值瞬間蒸發了很多)。

第 1.5 代 Tesla 架構-G9x 系列核心

之後又過了半年,在 2007 年秋天 NVIDIA 端出了代號 G92 的核心,昭告了 G9x 世代的開始,然而相較於 G80 來說,G9x 的改變其實並不算多,因此還不足以被稱為第二代 Tesla 架構,更逞論被認為是下一世代的 GPU 架構了,但 G9x 世代絕對是重要的一代,理由很簡單,因為這代超級長壽,被 NVIDIA 改過 N 次名字 (看看上面精美的系列編成),所以能見度也超級高。

架構只有小幅改變,自打臉的 TMU 設計

G9x 系列核心與上一代的 G8x 系列核心基本上主要的不同出現在記憶體控制器、 PCI Express 介面與製程三個部分,以系列當中規模最完整的 G92 來說,上圖中的架構與 G80 的差異基本上只出現在記憶體控制器略有減少 (基本上這是為什麼要叫 G92 而不叫 G90 的原因),記憶體頻寬從 384-bit 降回 256-bit (為了降低成本,因為這跟記憶體顆粒晶片的數量需求有關係),從這裡可以看出 G92 一開始推出的目的並不是為了取代 G80 (G92 在理論上性能不會比 G80 強太多,甚至在某些時候是落後的)。

不過比較特別的地方是出現在 TMU 的部分,還記得 NVIDIA 曾經信誓旦旦的說 G80 裡面 TAU 與 TFU 的數量呈 1:2 是最有效率的比例嗎?在 G92 當中 NVIDIA 就自己打臉自己給大家看了,實際上 G92 與較晚推出的 G84、G86 一樣都是使用 1:1 對稱的 TMU 結構。

第二代 PureVideo HD 與取消 NVIO 晶片設定

在 G84、G86 與 G92 當中,PureVideo HD 技術的功能有獲得一些提升 (NVIDIA 其實常常這樣,最高階的核心反而缺掉這些額外功能,對,我就是在講 GTX 980),包含了新的 BSP 引擎,可以進行 H.264、VC-1 與 MPEG-2 格式影片的硬體解碼,並且在硬體上處理全部的 CAVLC 與 CABAC 解碼操作。

上面這張圖顯示了從 GeForce 6 系列到 G70、G80、G84、G86、G92 歷經三次變化的 PureVideo 技術,綠色方塊表示該部分在當時仍然需要交給 CPU 處理,而無法由 GPU 全權負責,除此之外 G9x 也跟 G84、G86 一樣,把 LVDS 與 RAMDAC 塞回 GPU 晶片裡了,因此不再有 NVIO 系列晶片的存在 (嗯,NVIDIA 當年死不承認把 NVIO 拉出來的理由,一直說是為了方便未來有新介面的時候可以快速引入,現在又自打臉了)。

PCI Express 2.0 支援

硬要說的話這是 G9x 系列晶片在架構上唯一帶來的新東西 (除此之外其實就像 G80 與 G84 加起來除以二的結果),透過將傳輸介面從 PCI Express 1.1a 升級到新的 PCI Express 2.0,頻寬加倍之後可以有效緩解 GPU 性能越來越強但傳輸介面的頻寬逐漸不敷使用的問題。

製程提升

G9x 系列核心的另一項重點就是製程提升,得益於 G9x 系列核心根本沒有甚麼太大的架構變革,加上市面上還有大量 G8x 系列核心產品、AMD 短期內還爬不起來等因素因此 NVIDIA 很放心的在 G92 上面使用了新的製程,一舉從原本的 90/80 奈米製造工藝跳到新的 65 奈米製程。

G92 核心-歷來最長壽的 NVIDIA 核心

看完 G9x 核心系列為數不多的改進之後,接下來是時候來看 NVIDIA 歷來最為長壽的一款晶片了,這款晶片真的可以說是 NVIDIA 前無古人後無來者的傳奇,到目前為止還沒有任何一款產品能夠在改名次數、橫跨年代方面擊敗 G92。

G92 這款晶片是整個 G9x 核心家族當中規模最大、最為完整的一款,具有 8 組 TPC 與 128 個 SP,基本配置與 G80 一模一樣 (除了記憶體控制器從六組被砍成四組之外),得益於採用了全新的 65 奈米製程,因此在電晶體數量又進一步成長到 7.54 億個的狀況下 (大部分應該是出自於補齊的 TMU 吧),晶片仍然比 G80 還要小上不少 (從 484 平方公分下降到 334 平方公分)。

為什麼我要一直強調 G92 這款核心是傳奇呢?這要從第一款採用 G92 核心的顯示卡開始說起,照理說從 G92 的命名來看這款產品應該是用於 GeForce 9 系列的東西,不過第一款基於 G92 的顯示卡其實是 GeForce 8800 GT,而且讓人匪夷所思的是,這款產品的 TPC 數量居然是奇數的七組,連帶的 SP 也就被刪減為 112 個了,顯然定位比 8800 GTX 還要來得低,更別提要上打 8800 Ultra 了 (而且當時 NVIDIA 並沒有透漏實際上完整版 G92 有 8 組 TPC 的事實,8800 GT 只給七組其實是良率考量下自主屏蔽的結果,所以推出的時候讓很多人摸不著頭緒)。

儘管推出時的奇怪規格讓大家感到無言,但 GeForce 8800 GT 應該無庸置疑是截至當時為止最強大的單槽顯示卡 (很特別吧?),而且應該也是單槽顯示卡當中散熱器看起來質感最高的 (整片鋼琴黑烤漆還帶銀色廠徽貼紙耶,這通常是頂級卡才有的待遇 XD),後來在 2007 年底 NVIDIA 才推出完整具有 8 組 TPC 的 G92 核心,並且將其命名為 GeForce 8800 GTS (嗯,這名字用過了,不過 NVIDIA 不 Care 這件事情,導致當時買這款顯示卡之前都還要先問是 G80 還是 G92,雖然有經驗的人可以從記憶體大小看出來就是了,因為記憶體控制器只有四組,所以容量是 512 MB 而不是過去的 640 MB 那種奇怪的數字,至於時脈的部分則是 600/1500/1800 MHz),不過看到這裡為止你應該會覺得 G92 實際的定位比 G80 低吧?這在之後的要介紹的 9800 GTX 會造成很詭異的現象 (9800 GTX 跑不贏 8800 Ultra)。

上面這張就是基於 G92 核心的 GeForce 8800 GTS「第二版」,由於多了一組 TPC 加上時脈設定較高 (650/1625/1940 MHz),因此採用了雙槽散熱器,不過由於加厚且變圓所以看起來質感沒有 8800 GT 好,在 2008 年初 NVIDIA 則又追加了一款較低階的 8800 GS (550/1375/160 MHz),不過又更進一步閹掉一組 TPC 與一組記憶體控制器,所以 TPC 只剩下六組,也就是 96 個 SP,記憶體頻寬也只剩下 192-bit。

至於 G92 上市時為什麼沒叫做 GeForce 9 系列呢?NVIDIA 的說法是當時他們還沒準備好其他等級的 GeForce 9 系列顯示卡,所以就把 G92 歸進 GeForce 8 系列裡了 (這理由有人相信?),後來在針對中階市場設計的 G94 核心 (稍後介紹) 上市之後,NVIDIA 才真正開始推出 GeForce 9 系列的產品,不過因為沒端出新的東西 (仍然是 G92 的無限重生),這正式揭開了 NVIDIA 又一次「大改名時代」的序幕,不過 NVIDIA 可能也怕 9 系列的第一款旗艦直接端出改名產品有點沒意思吧,所以第二款 GeForce 9 系列顯示卡是大有來頭的 9800 GX2。

還記得我們之前曾經介紹過 7950 GX2 跟 7900 GX2 嗎?9800 GX2 (600/1500/2000 MHz) 是 NVIDIA 的第三款單卡雙晶片顯示卡,由兩顆完整的 G92 核心組成,在很長的一段時間內我覺得 9800 GX2 是歷來「外型看起來最有質感、看起來最有份量」的顯示卡,正反面都採用了鋼琴烤漆,並且貼上了超大的燙銀類金屬廠徽當裝飾,同時它也是 NVIDIA 後來習慣用散熱器把整張卡包起來的始祖 (8800 GT 則是正面全包的始祖 XD),不過實際上這麼設計是因為 9800 GX2 的兩張 PCB 是採面對面的方式設計,因此從外面看來只有很複雜的電路與電容器而已,因此不得不用個外殼包起來以改進外觀和做絕緣處理。

將 9800 GX2 拆開之後的畫面其實真的還蠻壯觀的,近幾年來說很少看過這麼複雜的電路板出現在電腦裡面 (當今的主流平台主機板上的零件密度都遠低於這個)。

兩顆 G92 核心之間就是靠著那條金色排線溝通的,之所以設計成這樣,其實充滿了巧思,如果你對 7950 GX2 的做法還有印象的話,當時 NVIDIA 將兩張 PCB 使用相同的方向疊起來,這意味著第二張 PCB 的散熱器必然會受到第一張 PCB 所發出熱量的影響,而造成子卡的散熱效果不彰,而且這種做法兩張卡之間的連線所需要的線路勢必得要更長,但對於這類雙層顯示卡來說最脆弱、最容易出錯卻也最為關鍵的正是那條連線。

至於這兩張卡之間的溝通則其實是由上面那張主卡 G92 核心的左下角那顆小晶片 (BR-04) 負責的,這顆晶片可以將 PCI Express 2.0 x16 通道拆分成兩條供兩個 G92 核心使用。

G92 開啟的「大改名時代」

看完比較特別的 9800 GX2 之後,我們接下來就要開始回顧 NVIDIA 那些年改過名字的顯示卡到底有多少了,有了 9800 GX2,那理所當然要有單晶片的 9800 GTX 對吧?沒錯,的確是有,在 9800 GX2 上市一個月之後 NVIDIA 就宣布推出 9800 GTX 作為「新世代單晶片旗艦」了。

不過聽到這消息之後第一個問題就是,9800 GX2 不是採用 G92 嗎?9800 GTX 應該不會採用更高級的「G90」之類的東西來僭越自家旗艦吧?但繼續用 G92 的話不是就跟 GeForce 8800 GTS 第二版一模一樣了嗎?

正當許多人覺得 NVIDIA 應該不至於這麼做的時候,NVIDIA 用身體力行的方式告訴大家它是不會輕易放棄改名戰法的,沒錯,9800 GTX 也是 G92,所以其實 9800 GTX 就只是 8800 GTS 第二版的超頻版而已 (時脈提高到 675/1688/2200 MHz),除此之外唯一的差別是新增對三路 SLI 的支援,更諷刺的是這張卡是在 2008 年 04 月 01 日上市的,也就是愚人節 XD。

而除了 9800 GTX 之外,NVIDIA 也一不做二不休把 8 系列當中曾經出現的閹割版 G92 也通通改名到 9 系列來了,舉例來說閹掉 1 組 TPC,只剩下 112 個 SP 的 8800 GT 就變成 9800 GT (600/1500/1800 MHz)、更進一步閹掉兩組 TPC,剩下 96 個 SP 的 8800 GS 就直接轉生成 9600 GSO (550/1375/1600 MHz),不過不要以為就這樣結束了,G92 的改名轉生次數還多著呢。

G92 製程升級版:繼續改名,一路改到掛!

在 2008 年 07 月,也就是 9800 GTX 上市三個月後,NVIDIA 為了進一步降低 G92 的生產成本,發佈了新版本的 G92 (稱為 G92b),在架構與內容上都與原本的 G92 完全一樣,但是製程進一步提升到 55 奈米製造工藝,這使得 G92 的成本實質上與過去的中階 GPU 來說已經沒有太大的差距 (種下了之後 G92 可以繼續玩改名的遠因)。

第一款基於 G92b 的產品就是 9800GTX+,得益於進步的製程,NVIDIA 得以將這款 GPU 的運作時脈進一步再拉高到 738/1836/2200 MHz,再次延續了老 G92 的生命,同時循往例有製程提升必然有良率不足導致閹割版的定律,推出了刪減 1 組 TPC 的 9800 GT (被標成第二版 600/1500/1800 Mhz 或「綠色版 GE」550/1375/1800 MHz,後者核心電壓略低)。

而 NVIDIA 的改名戰法依然沒有在此止步,而是繼續往下一代的 GeForce 100 系列和 GeForce 200 系列推進,熟悉 NVIDIA 的人會知道 GeForce 100 系列本來就是改名出給 OEM 廠商的因此 GeForce GTS 150 實際上就是 9800GTX+ (連時脈設定都一樣) 並不讓人意外,但 GeForce 200 系列的情況就讓人無言了。

推出於 2009 年的 GeForce GTS 250 其實就是 GeForce 9800 GTX+ 的再改名版 (而且時脈反而調降了,只剩 702/1512/2000 MHz),而 GeForce GTS 240 則是 9800 GT 的再改名版 (時脈調高為 675/1620/2200 MHz),GTS 230 也有部分版本是基於 G92b (但是閹掉兩組 TPC 的版本,500/1242/100 MHz,而且只能搭 DDR2 記憶體),這意味著 G92 從 2007 年出生,一路到 2009 年都還作為新型號推出,在市面上至少生存到 2011 年為止!

G94/G96/G98 核心架構

實際上 GeForce 9 系列的首發是 G94 核心,這應該是 NVIDIA 有史以來第一次進入新系列時是以中階產品打頭陣吧,針對中階市場推出的 G94 核心其實本質上與 G92 很像,只是 TPC 的數量最多只有 4 組 (G92 的一半)。

至於 G96 則是更進一步砍到只剩下一組 TPC,因此 SP 的數量只剩下 32 個,G98 則是最為慘烈的版本,最多只有「半組 TPC」,TPC 當中只剩下一組 SM 的意思 (16 個 SP),最少則只剩下半組 SM (8 個 SP),記憶體控制器的部分理所當然砍到只剩下一組 (64-bit)。

基於 G98 的歷代入門產品

由於 G94/G96/G98 的型號同樣非常混亂且經歷無數次改名,所以我打算從狀況比較簡單的 G98 開始講起,作為第一代 Tesla 架構當中最低階的核心,G98 與 G92 一樣都是從 GeForce 8 系列就開始出現了,第一款產品是推出於 2007 年的 8300 GS (僅限 OEM 出貨,只有 8 個 SP,450/900/800 MHz,DDR2 記憶體) 與 8400 GS 第二版 (只有 8 個 SP,567/1400/800 MHz,DDR2 記憶體,說起來第一版明明是有 16 個 SP 的 G86 呢)。

在進入 GeForce 9 系列之後 G98 被改名為 GeForce 9300 系列重新發售,分成時脈為 540/1300/1000 MHz 的 9300 GE 與時脈為 567/1400/1000 MHz 的 9300 GS,同樣都採用 DDR2 記憶體,並且只有 8 個 SP。

G98 的最後一次登場則是在 GeForce 100 系列,最入門的 GeForce G 100 實際上就是 9300 GS 改名而來,僅針對 OEM 廠商發布。

基於 G96 的歷代低階產品

至於 G96 的部分,實際上性能跟 G98 差不了多少 (畢竟也是只剩下一組 TPC 了),因此主要仍然只見於低階產品,是 G9x 系列核心當中衍伸型號最少的一種。

G96 在 9 系列時期 (2008 年) 被命名為 9500 GT (具備 32 個 SP,550/1400/1600 MHz) 與 9400 GT (具備 16 個 SP,550/1400/1600 MHz) 發售,並在後來推出了移轉到 55 奈米製程的版本 (G96b),在市場中混和銷售。

後來的唯一一款衍生型則是 2009 年發布的 GeForce GT 120,與其他 100 系列相同是僅供 OEM 廠商出貨用的版本,是 9500 GT 的更名版本。

基於 G94 的歷代中階產品

G94 的架構基本上就是 G92 閹掉一半而來 (比較特別的是 G94 是 NVIDIA 少數封裝的時候裝斜 45 度角的晶片),因此在性能上還有做為中階產品的實力,在這樣的狀況底下 G94 先後的改名次數其實跟 G92 已經相去不遠了。

基於 G92 的首款產品-GeForce 9600 GT (650/1625/1800 MHz) 推出於 2008 年 02 月,實際上是 GeForce 9 系列的第一款產品,具備完整的四組 TPC (也就是 64 個 SP) 與 256-bit 的記憶體頻寬,由於是第一款導入 65 奈米製造工藝的型號,因此後來有又閹割掉一組 TPC (9600 GSO 512 MB,650/1625/1800 MHz,剩下 48 個 SP) 與進一步閹掉一組記憶體控制器 (因此頻寬剩下 192-bit) 的版本 (9600 GS,500/1250/1000 MHz)。

在上市幾個月後與 G92 一樣也推出了進一步升級到 55 奈米製程的版本-G94b,最初作為 9600 GSO 512 MB 第二版與 9600 GT 綠色版 GE (600/1500/1400 MHz) 推出,後來被改名為 GeForce 100 系列中的 GeForce GT 130 (類似 9600 GS) 與 GT 140 (類似 9600 GT),不過最特別且容易讓人混淆的還是 GeForce 200 系列當中的 GT 230,同時有基於 G94b (48 個 SP,650/1625/1800 MHz,GDDR3 記憶體) 與 G92b (96 個 SP,500/1242/1000 MHz,DDR2 記憶體) 兩個版本,幸好只供 OEM 出貨,否則低階入門市場鐵定大亂。

Exit mobile version