電腦達人養成計畫 5-12:硬體 T&L 的時代

在看過 3dfx 短短不到五年卻充滿起起伏伏的歷史之後,接下來我們要回頭看同一時間正在快速壯大勢力的 ATI 與 NVIDIA 所推出的產品,2000 年是一個在個人電腦世界裡極為重要的年份,除了是電腦問世以來的首個「千禧年」,人們突然意識到當年設計程式時沒把 2000 年後的世界考慮進去,在標示年份時只用了二位數字,導致很有可能發生 1900 年與 2000 年在紀錄上分不清楚的大問題 (不過其實最後證實還好,畢竟電腦也沒那麼早被發明出來) 之外,更重要的是這一年內有了很多突破性的發展,顯示晶片也不例外。

2000:硬體 T&L 時代

在 2000 年我們迎來了個人電腦用 3D 圖形晶片的第一次架構大改版,最主要的特性就是在顯示晶片中加入了硬體 T&L 機能,如同上一篇我們談過的,這也是最終導致 3dfx 被徹底淘汰的主要決定因素之一。

硬體 T&L 是甚麼?

相信看到這裡大家最想問的問題大概就是這個了吧?實際上硬體 T&L 中的 T&L 是 Transform & Lighting 的縮寫,包含了座標轉換與光源處理兩個主要部分,在 3D 圖形繪製的過程中這兩大部分是極為關鍵的,座標轉換決定了視角旋轉之後各多邊形的位置、形狀 (基本上是由大量的矩陣運算構成),而光源處理則影響了之後整個物體上所打的光線與背後陰影的分布、形狀等。

之所以我們在這裡特別強調「硬體」T&L,其實是指顯示晶片內建「T&L 硬體加速支援」的意思,在早期 T&L 操作是由中央處理器負責的,這意味著顯示晶片需要受制於處理器的成分較高,需要依賴處理器運算 T&L 資訊之後下達指令給顯示晶片,顯示晶片才能開始處理像素著色、多邊形生成、材質貼圖等複雜的 3D 圖形產生過程,這意味著會發生下面這堆問題:

要解決這些問題的方式其實很直覺 (不過並不簡單),從 2000 年開始 NVIDIA、ATI 與 S3 等公司就開始在自家的顯示晶片當中整合了專屬的 T&L 運算單元,從此顯示卡可以獨力完成絕大多數的操作,不再需要那麼大程度的受制於 CPU,也解決了性能受限於 CPU 的問題,這就是我們說的「硬體 T&L」。

NVIDIA GeForce256 (NV10)

發佈時間:1999 年 10 月 (SDR)、2000 年 02 月 (DDR)
API 支援:Direct3D 7.0 與 OpenGL 1.3
像素管線:4 條/材質對應單元 (TMUs):4 組/著色輸出單元 (ROUs):4 組

誕生於 1999 年的 GeForce256 是 NVIDIA 第一款以 GeForce 為名的產品,同時也是歷史上第一款能夠完整支援 Direct3D 7.0 API 的顯示晶片,儘管仍然是以前作 RIVA TNT2 為基礎修改而來,但在架構上還是有著不小的差別 (所以代號並沒有接續前作的 NV5、NV6,而是直接跳到 NV10 了)。

amu6521

首先,GeForce256 內建的像素管線數量一舉比 RIVA TNT2 又增加了一倍 (從兩條增加到四條),在理論像素填充率、理論材質填充率方面比起 RIVA TNT2 Ultra 來說提昇了 60% 左右,並加入了一組用於提升影片撥放品質的動態補償單元,除此之外,最重要的改進當然就是剛剛提到過的硬體 T&L 支援。

而 GeForce256 也讓 NVIDIA 成功擺脫了「只重視速度而不重視畫質」的標籤,透過支援 Cube Environment Mapping (方形環境映射,本來這項技術只在 Matrox 的產品上看得到),GeForce256 可以更妥善地處理各種會反射的表面 (像是水、金屬之類的物體表面),而不再需要靠各種折衷方案來「模擬」反射表面的樣式 (以往的顯示晶片是以球體空間的方式來處理反射面,不過只有在特定角度時才能夠直接產出高品質的反射表面,其他情況大多得用模擬的,不幸的是,基本上不管怎麼模擬看起來還是不夠真實)。

不過在商業上 GeForce256 並沒有想像中的成功,儘管透過剛剛提到的這些特性,確實是成功讓 GeForce256 成為當時數一數二先進的顯示晶片了沒錯,但由於 1999 年底到 2000 年初市場上支援硬體 T&L 的顯示晶片還很少,自然能夠搭配這些新特性的遊戲軟體也不會太多 (甚至當時還有些人主張硬體 T&L 無用論,不過後來真的不搞硬體 T&L 的廠商都化為灰燼了呢),因此 GeForce256 在大多數情況下並沒有辦法很好的發揮其所具備的性能,加上其昂貴的價格、早期驅動程式有許多相容性問題未解與初代硬體 T&L 在性能上的不足 (當時的頂級 CPU 是可以追過 GeForce256 的),所以在市場上並沒有得到太大的親睞 (不過整體來說成績也不算難看就是了),硬體 T&L 晶片的大行其市基本上要等到下一代的平民級晶片 GeForce2 MX 誕生才會開始。

不過儘管此時加入硬體 T&L 的功能帶來的效益還不明顯,但卻給 NVIDIA 創造了許多「附加價值」,首先,透過整合了硬體 T&L 單元,NVIDIA 終於得以跨足進入電腦輔助設計 (CAD) 領域了,透過發行特別版本的驅動程式,NVIDIA 得以將同樣的 NV10 晶片另外製作成 Quadro 專業繪圖卡,搶攻 CAD 領域的商機,除此之外,得益於硬體 T&L 支援,即便在 GeForce2 推出之後,GeForce256 仍然得以作為公司的入門產品生存好一陣子而不被停產。

另一件值得注意的事情是,GeForce256 是 NVIDIA 第一次以「GPU (Graphics Processing Unit)」來稱呼自家的圖形晶片,這個由 NVIDIA 首創的名詞某種程度上是想透過相似的命名來拉高圖形晶片在個人電腦當中的重要性 (目標是與 CPU 齊名),而在 NVIDIA 強大的行銷與推廣之下,現在我們也很習慣以 GPU 稱呼各種圖形晶片了 (在接下來的文章當中也會改用 GPU 一詞)。

最後要提的是 GeForce256 並未採用類似 RIVA TNT2 那種高中低階分別推出產品的模式,而是只有分成兩個版本,依照採用的記憶體為雙倍資料傳輸率 DDR SDRAM (GeForce256 是第一款使用這種記憶體的圖形晶片) 或一般 SDRAM/SGRAM 的不同可分為 SDR 與 DDR 兩個版本 (一般而言容量為 32 MB),不過在記憶體頻寬方面,即便是 DDR 版本仍然是嚴重不足的。

ATI Radeon R100 (7000 系列)

發佈時間:2000 年 04 月 (DDR)、2000 年 06 月 (SDR)
API 支援:Direct3D 7.0 與 OpenGL 1.3
像素管線:2 條/材質對應單元 (TMUs):6 組/著色輸出單元 (ROUs):2 組

還記得我們在前幾篇曾經談過由 Rage Pro 一脈相承演化而來的 Rage 128 家族嗎?家族內的最後一款產品 Rage Fury MAXX 近乎瘋狂的在單張顯示卡中塞入了兩顆 Rage 128 Pro,但最終這款有著「曙光女神」如此響亮名號搭配充分體現「大艦巨砲主義」豪邁設計的特別產品,由於嚴重的相容性問題與性能不彰的配合模式,加上並不支援硬體 T&L 而最終落得慘敗於 GeForce256 腳下的下場,因此 2000 年的 ATI 的核心主題其實很簡單,就是希望能夠一雪前恥而已。

整體來說其實 Radeon R100 與 Rage 128 Pro 之間的關係和 GeForce256 與 TNT2 之間的關係很類似,同樣是基於上代作品進行的大幅度改版,同樣強調加入了對硬體 T&L 的支援 (ATI 將其稱為 Charisma Engine),其實從原先 Radeon R100 最早的開發代號是 Rage 6C 這點來看,應該就可以很明顯知道它與前作的血緣關係了。

在像素管線的安排上,Radeon R100 與前作和競爭對手 GeForce256 與 GeForce2 有著很大的不同,Radeon R100 的像素管線依然維持在 2 條,但每條像素管線包含的紋理對應單元則一口氣從一組增加到三組以支援三重紋理貼圖技術 (不過不幸的是使用三重紋理貼圖技術的遊戲並不多,因此即便 Radeon R100 在理論性能上可以超越競爭對手,但在實際遊戲的過程當中,NVIDIA 產品的表現卻往往較佳)。

但由於 ATI 開發的 T&L 運算單元性能相當不錯,加上具備特有的 HyperZ 記憶體頻寬節省技術 (這是 GeForce256、GeForce2 等系列最大的問題與弱點),因此 Radeon R100 除了對付主要競爭對手 NVIDIA 的上一代產品-GeForce256 之外,對付同期推出的 GeForce2 甚至是 GeForce3 也能維持著互有勝負的局面,最終成為 ATI 歷史上相當長壽的一代產品,並且得以一路延續到 2002 年才徹底失去市場地位。

最後要提的是 Radeon R100 的版本區分與命名,由於歷經了不少次更名、重新編排系列編成因此顯得有點混亂,大致上有這些不同的版本先後出現:

NVIDIA GeForce2 (NV15、NV11、NV16/NV15BR)

發佈時間:2000 年 04 月 (NV15)、2000 年 06 月 (NV11)、2000 年 08 月 (NV16)
API 支援:Direct3D 7.0 與 OpenGL 1.3
像素管線:4 條/材質對應單元 (TMUs):8 組/著色輸出單元 (ROUs):4 組 (NV15/NV16)
像素管線:2 條/材質對應單元 (TMUs):4 組/著色輸出單元 (ROUs):2 組 (NV11)

當 ATI 蠢蠢欲動準備靠著 Radeon 抬頭時,NVIDIA 也沒有停下腳步,在差不多與 Radeon R100 相同的時間點推出了 NVIDIA 歷來最具代表性、最為長青的一代產品-GeForce2。

在 GeForce2 這一世代當中,NVIDIA 重啟了過去在 TNT2 時期曾經嘗試過的一口氣使用同代架構推出不同市場產品以擴張市佔率的做法 (畢竟在 GeForce256 世代雖然沒有推出對應的低階產品,但很自然而然的老款 TNT2 就自動補上了這個位置,證實確實是有這個市場需求存在的),因此 GeForce2 主要可分為面向中高階市場的 GTS 系列與面向入門市場的 MX 系列 (雖然上圖當中還有 TNT2 作為最入門,但實際上由於 MX 系列表現得太好,到最後低階市場也幾乎被 MX 系列吃光了)。

首先看到的是主掌中高階市場的 GeForce2 GTS 家族,GTS 實際上是 GigaTexture Shader 的意思,顧名思義在 GeForce2 GTS 這一世代 NVIDIA 成功讓旗下的 GPU 突破理論像素填充率高於每秒 10 億像素的關卡,之所以可以達到這一目標,主要是得益於 GeForce2 GTS 使用的 NV15 核心將每條像素管線包含的材質對應單元 (TMU) 增加為兩組 (意味著總共有八組 TMUs 可用) 與時脈大幅提升 (高達 200 MHz,主要得益於製造工藝由 220 奈米提高到 180 奈米) 而來。

而除了前面提的這些改進之外,GeForce2 GTS 主要的改進還有三點,分別是性能提升的第二代硬體 T&L 技術、內建用於處理高畫質影片的處理單元 (HDVP) 與被稱之為 NVIDIA 描影圖形預定器 (Shading Rasterizer, NSR) 的像素管線設計,這可以說是未來將成為主流的可程式化像素著色器的簡化前身 (此項技術的前身其實也在 GeForce256 當中出現,但並未獲得任何宣傳),不過並未解決 GeForce256 架構當中最大的問題-記憶體頻寬不足。

在 GeForce2 GTS (時脈設定為 200/332) 上市過後的幾個月內 NVIDIA 又陸續為其推出了數個改版,包含 2000 年 08 月推出的 GeForce2 Ultra (時脈拉高到 250/460)、2000 年 12 月推出的 GeForce2 Pro (時脈為 200/400)、隔年十月推出的 GeForce2 Ti (時脈設定為 250/400,主要用於填補 GeForce3 與 GeForce2 MX 之間的市場空隙) 三款。

至於面向中低階市場的 GeForce2 MX 家族則是基於 NV11 核心,雖然表面上型號比較接近 GeForce256 的 NV10,但實際上 NV11 其實是 NV15 的閹割版本,主要的差異是原本的兩條像素管線被砍掉了一半與本來就不夠用的記憶體頻寬再次被閹掉一半,其他特性則基本相同,比較奇怪的是 GeForce2 GTS 缺乏的雙螢幕支援反而有包含在 GeForce2 MX 中 (不知為何當年顯示卡廠商好像覺得只有用低階顯示卡的人才會搞雙螢幕,可能是認為雙螢幕是商務用途吧?)。

GeForce2 MX 家族可以說是 NVIDIA 歷來最為成功的系列之一,一方面當時的主要競爭對手 3dfx 沒能端出足夠便宜又能抵擋 GeForce2 MX 功能的產品,而 ATI 的 Radeon VE 雖然在雙螢幕支援度上比 GeForce2 MX 更好,但性能表現太差且不支援硬體 T&L、Radeon SDR 又太貴而且不支援雙螢幕輸出,於是 GeForce2 MX 在市場上可以說幾乎是沒有對手,而另一方面當時又有大量的 OEM 廠商基於低價與可接受的性能而選擇搭載 GeForce2 MX 顯示卡。 (站長我的第一台電腦就是搭配 GeForce2 MX 的品牌機)

GeForce2 MX 家族除了一開始在 2000 年 06 月推出的無印版 (時脈設定為 175/166) 之外,在隔年三月為了填補 GeForce3 系列沒有低階入門版而產生的市場空隙,推出了名為 MX200 (時脈設定同樣為 175/166,但記憶體頻寬閹掉一半,只剩下 64 bit) 的入門款與名為 MX400 (時脈小幅提升為 200/166,可以選擇是否搭載 DDR 記憶體,但在搭載 DDR 記憶體時記憶體頻寬要閹掉一半) 的進階版本兩者。

 

Exit mobile version