看完 AMD 陣營的 Terascale 架構之後,接下來我們是時候回到 NVIDIA 這邊了,如同在前兩篇談過的理由,之所以先介紹 Terascale 系列架構的原因其實是因為 NVIDIA 在 DirectX 11.0 世代慢了好幾個月的關係。
NVIDIA Fermi Microarchitecture
- 推出日期:2010 年 03 月 (GF100)
- 所屬系列編成:GeForce 400 系列、GeForce 500 系列、GeForce 600 系列、GeForce 700 系列
- API 支援:DirectX 11.0、OpenGL 4.5、OpenCL 1.1
- Shader Model 支援:SM 5.0
本篇要介紹的是 NVIDIA 第一款支援 DirectX 11 API 的 GPU 架構-Fermi,與上一代的 Tesla 相同是以歷史上的知名科學家命名的產品,是以 Tesla 架構為基礎改進而來的新架構。
Fermi 架構最早發佈於 2010 年,與 Tesla 架構一樣是一款相當長壽的架構,一路到五年後的 2014 年都還有基於 Fermi 架構的產品推出,但長達五年的生命週期當中並沒有推出世代中期改版與製程升級 (所有基於 Fermi 架構的桌上型電腦用 GPU 都是基於 40 奈米製程,只有筆記型電腦用的 Fermi 核心有推出 28 奈米製程版本)。
實際上雖然 Fermi 的生存年代很長,但作為當家旗艦的時間其實很短 (因為作為接任者的 Kepler 架構在 Fermi 架構上市兩年後的 2012 年就推出了),後面幾年基本上只出現於低階入門產品中。
遲來的 DirectX 11 產品
在 DirectX 11 這一世代,NVIDIA 的動作可以說是比競爭對手還要慢了很多,要一直等到 2010 年 03 月,也就是 AMD 推出首款相容 DirectX 11 的架構-Terascale 2 後又過了半年之後。
之所以會拖這麼久其實最主要的原因有二,首先 AMD 方面由於過去在發展路線上壓對寶,加上 AMD 很早就開始研究曲面細分 (Tessellation) 而這又正好是 DirectX 11 當中最鮮明的特色之一,以及後期與微軟的交好使其得以在小幅修改 Terascale 架構的狀況下迅速推出支援 DirectX 11 的新款產品,但 NVIDIA 方面卻不是如此,為了能夠充分體現 DirectX 11 的新功能,當初發展方向選擇不同的 NVIDIA 勢必得對 Tesla 架構進行一定程度的修改才行 (但這有利有弊,最後 NVIDIA 反而有更多時間對 DirectX 11 的新功能與新特性進行優化與除錯)。
而另一個原因 (實際上主要的原因是這個,因為 Fermi 的整體規劃甚至設計圖紙其實在 2009 年 09 月 Terascale 2 上市的時候就差不多已經完成了,甚至也對外放出許多消息了) 則是由於在 Fermi 這個世代 NVIDIA 正受到 AMD 奇襲戰術的困擾,而 NVIDIA 所選擇的應對方式也很直白,就是「造一個比 GT200 更大的核心」 (就是 AMD 希望的那樣),因此 NVIDIA 終於開始遭遇 (或者應該說終於肯面對並公開承認) 發展大核心時所會遇到的各種問題與困難了。
在處理 Fermi 旗艦版 GF100 核心的時候 NVIDIA 其實遇到了很多良率與功耗方面的問題,這也花了 NVIDIA 不少時間,甚至讓時任 NVIDIA 產品行銷副總裁的 Ujesh Desai 爆粗口說出「because designing GPUs this big is “fucking hard”」作為對 Fermi 延期理由的解釋。
更大、更多、更複雜的 Tesla
總體來說 NVIDIA 從 Tesla 架構以降的歷代 GPU 架構設計基本上都是從 Tesla 架構下去衍生、修改而來的,不論是 Fermi、Maxwell 甚至是目前最新的 Pascal 大抵上都是如此作法下的產物,因此在開始探究 Fermi 架構的規劃之前,讓我們稍微來複習一下 Tesla 的架構規劃吧。
上面這張圖就是 Tesla 架構最完整、規模最大的旗艦核心-GT200 的架構簡圖,當中最為顯眼的就是大量的記憶體控制器 (Memory Controller) 與中間藍色區塊的那一大排 TPC (Texture Processor Cluster),同時這兩大塊也是 Tesla 架構當中決定性能與位階的主要影響因素,而其中又以 TPC 的規劃最為重要。
Tesla 時代的 TPC 內部構造如上圖所示,由兩組 (第一代 Tesla 核心) 或三組 (第二代 Tesla 核心) 串流多重處理器 (Streaming Multiprocessor, SM) 群組與控制單元、材質單元與材質快取這幾大部分所組成,當時一組 SM 當中還包含了 8 個串流處理器 (SP),也就是後來我們熟知的 CUDA Core (實際上就是 ALU),回顧完 Tesla 架構之後,讓我們回來看 Fermi 架構到底是怎麼回事吧,下面這張龐然大物就是 Fermi 的架構圖了 (以 GF100 大核心為例)。
乍看之下好像跟 Tesla 架構不太一樣?但仔細看你就會發現其實 NVIDIA 只是把架構圖用另一種方式呈現而已 (剛好把他拼成一個大長方形,大多數的組成跟名詞其實都是同一套東西下去改進的結果),GF100 本身包含了四組 GPC (Graphics Processor Cluster, 圖形處理器叢集,其實就是從 Tesla 裡面的 TPC 演化來的,只是 GPC 更接近一個完整的 GPU,基本上只差 PCI Express 匯流排跟記憶體控制器了),而每組 GPC 當中包含的 SM 模組數量則從三組再次增加為四組之多。
至於圖中的 Polymorph Engine 與 Raster Engine 則分別是由 Tesla 架構中配置於 TPC 內的串流處理器控制器 (SMC) 與光柵輸出單元 (ROP) 發展而來 (主要是多了 DirectX 11.0 需要的曲面細分硬體電路等設計),每個 GPC 都有自己獨立的一組 Raster Engine,每個 SM 也都有各自獨立的一組 PolyMorph Engine。這同時也是 Fermi 當中重點強化性能的部分,據 NVIDIA 官方說法,GF100 的幾何運算性能 (例如曲面細分) 是 GT200 的八倍之多。
而 Fermi 架構實際上除了增加了 SM 模組的數量之外,同時也提升了每組 SM 模組當中所包含的 CUDA Core (ALU) 數量,從原來的 8 組一口氣增加到 32 組 (因此 GF100 可以有多達 512 個 CUDA Core,在數量上遠遠超越上一代產品 GT200 的 240 個),特殊功能單元 (SFU) 的數量也一併加倍為四組,並且首次引入了獨立的 Load/Store 單元設計 (因此 Fermi 核心每個時脈週期內可以計算 16 組讀/存操作之目標記憶體或快取位置),並且將原先獨立在外的材質貼圖單元整合到了 SM 模組裡面 (以前是放在 TPC 中,獨立於 SM 之外) 以降低延遲 (但同時脈週期下能處理的 texels 數量則從 GT200 的 80 個降為 64 個,但由於可以動態調用且延遲降低,因此最後在總效能表現上其實還是成長的)。
而負責掌管 SM 模組內部工作分派與排程的 Warp 排程器與指令發送單位 (Dispatch Unit) 也增加為二組,這使得 Fermi 架構的核心可以更加充分且高效率利用 SM 內所包含的大量 CUDA Core 來進行運算,這使得 Fermi 在每個時脈週期中可以派送兩次指令 (最高可以排程達 32 個執行緒)。
還記得我們曾說由高達 14 億個電晶體所組成的 GT200 核心很瘋狂嗎?在 Fermi 這一世代 NVIDIA 再次挑戰了更高的極限,由於加入大量提升雙精度浮點運算性能所需的電路與更多的 CUDA Core 數量,Fermi 架構當中最高階的 GF100 核心所包含的電晶體數量遠比 GT200 要來得多,足足超越了 GT200 的兩倍有餘,來到了高達 30 億個這樣恐怖的規模 (雖然製程從 55 奈米製造工藝升級到了 45 奈米製造工藝,但這還是非常讓人吃驚的提升,不過同時也造成晶片面積在用上新製程的狀況下還是比 GT200 的 55 奈米製程版還要大上不少 (從 470 平方公分增加到 529 平方公分,不過並沒有超越首批採 65 奈米製程的 GT200 的 576 平方公分,上圖左為 65nm 版 GT200,右為 GF100)。
統一記憶體階層體系
還記得談 CPU 跟記憶體的時候我曾經介紹過電腦的記憶體階層體系嗎?以往在 Tesla 架構當中雖然我們可以見到每組 SM 模組都有共享記憶體、每個 SM 模組中的材質單元也都有自己的材質 L1 快取、ROP 旁邊還設計了材質的 L2 快取,但這樣的設計會給快取記憶體的調度帶來很多限制也造成設置快取帶來的效益並沒有如預期般的明顯、在處理運算方面的時候效果不彰等問題。
為了解決這些問題,NVIDIA 在 Fermi 架構當中引入了 Parallel DataCache 技術,透過可配置式 L1 快取與統一 L2 快取兩種做法來重新確立 Fermi 架構中的記憶體階層體系,在 Fermi 當中每組 SM 模組都具備了 64 KB 的片上記憶體,而根據當下的需要 GPU 可以被配置為 16 KB 共享記憶體 + 48 KB L1 快取或是 48 KB 共享記憶體 + 16 KB L1 快取兩種模式,這使得在處理特定不需要經常存取顯示記憶體的運算操作可以跑得更快,而再經常需要存取記憶體的應用中也可以帶來更高的快取命中率。
除此之外還新增了在 GPC 之間可以扮演溝通橋梁並允許 GPU 內各個元件之間共享資料的 L2 快取記憶體,這與先前 Tesla 當中僅能處理材質貼圖的專用 L2 材質快取有很大的不同。
進一步朝通用運算發展
除了前面介紹的一些在數量和細部架構上的改進之外,實際上 Fermi 的新特性有很多是體現在功能方面的。從 Tesla 架構開始 NVIDIA 就已經明白揭示未來會逐步將 GPU 從「遊戲用品」逐漸往「超級電腦、高性能運算 (HPC)」領域發展,隨著 GPGPU 技術的發展,GPU 可以處理的內容早已不僅僅是遊戲內的運算,GPU 先天上就具備的強大並行處理能力應該被利用在更廣泛的用途上以創造更大的價值,而在 Fermi 架構這代當中,我們可以見到很多改進其實就是為了這樣的願景而發展的。
首先第一項新功能就是 ECC (Error Correction Code) 錯誤更正技術的支援,這項功能被包含在大多數型號的 Fermi 架構核心當中 (基本上只要有 Tesla 運算卡對應系列型號的核心都有),涵蓋的範圍則遍及暫存器、L1 快取、L2 快取與顯示記憶體。
這主要是為了讓商用市場採用 Tesla 運算卡的意願提高而做的改變,不過對於一般遊戲市場用的高階顯示卡而言,這些多出來的電路其實只有浪費面積跟額外耗電的功能,而且在 GeForce 系列中實際上是不允許開啟 ECC 功能的,從這點可以看出 NVIDIA 的重心逐漸倒向運算領域,而不再以遊戲體驗發展為第一優先 (某種程度上也跟 GF100 當時的良率實在太低,成本實在太高,拿來當消費性顯示卡賣根本賺不了錢有關)。
不過在 Fermi 上 ECC 的實作與一般電腦記憶體系統不太一樣,並沒有獨立出額外的記憶體晶片用以儲存 ECC 資訊,而是在 ECC 啟用時直接吃掉 1/8 的記憶體空間與頻寬用來處理 ECC 資訊,因此性能與記憶體空間利用率是比不上一般的 ECC 實作方式的。
另一項功能則是記憶體定址能力的拓展,與 CPU 的發展相似,NVIDIA 在 Fermi 架構之前的所有 GPU 都只能支援 32 位元寬度的記憶體定址,因此最高能支援的顯示記憶體容量大約落在 4 GB 附近,而 Fermi 架構則開始使用類似 AMD64 / EM64T 的設計來支援 64 位元記憶體定址 (但實際上只啟用其中的前 40 位元部分),因此理論上最多可以定址高達 1 TB 的顯示記憶體。
核心名稱 | G80 | GT200 | GF100 |
架構分代 | Tesla Gen 1 | Tesla Gen 2 | Fermi |
CUDA 核心數 | 128 | 240 | 512 |
雙精度浮點運算能力 (每時脈週期) | 不支援 | 30 個融合乘加運算 | 256 個融合乘加運算 |
單精度浮點運算能力 (每時脈週期) | 128 個乘加運算 | 240 個乘加運算 | 512 個融合乘加運算 |
Warp 排程器 | 1 | 1 | 2 |
特殊功能單元 (SFU per SM) | 2 | 2 | 4 |
共享記憶體 (per SM) | 16 KB | 16 KB | 48 KB + 16 KB 可互換配置 |
L1 快取 (per SM) | 無 | 無 | |
L2 快取 | 無 | 無 | 768 KB |
ECC 記憶體支援 | 不支援 | 不支援 | 支援 |
第三項特性則是 Fermi 架構的雙精度浮點運算能力有了非常明顯的成長,透過新的配置與調度方式使得 Fermi 在處理雙精度浮點樹運算的時候性能可以非常接近理論值 (也就是單精度浮點運算的一半性能),在過去 Tesla 時代基本上雙精度浮點運算的運算能力大約都只有單精度浮點運算的八分之一左右 (不過消費性 GeForce 系列 NVIDIA 有運用市場區隔手段限制雙精度浮點運算性能為單精度浮點運算的八分之一)。
GF100 核心-又吵又熱,性能提升卻不多
在稍微介紹過 Fermi 架構帶來的新特性之後,接下來照慣例我會逐個介紹這個世代的各款 GPU 核心,首先登場的是系列當中最為完整的大核心-GF100。
GF100 核心最早在 2010 年 03 月 26 日上市,被分為 GTX 480、GTX 470 與後來追加的 GTX 465 三個版本,在介紹這三款產品之前要特別提到的是其實 NVIDIA 直到 Fermi 最後要上市前都沒能徹底解決 Fermi 如此巨大 (高達三十億個電晶體) 晶片的良率與成本問題,即便 NVIDIA 已經跟隨 AMD 用上了新一代的 40 奈米製造工藝 (NVIDIA 在前幾代都沒有追製程,但 Fermi 的規模實在是太大了導致 NVIDIA 基本上不得不採用新的 40 奈米製程,若不是新製程的提升,GF110 很有可能再次突破 GT200 的紀錄成為 NVIDIA 有史以來面積最大的晶片) 仍然沒有辦法將真正的「完整版」GF100 核心發佈到市面上,因此即便是系列編成當中最高級的 GTX 480 (700/1401/3696 MHz + GDDR5) 也得屏蔽掉其中一組 SM 才行,這就是 GTX 480 的 CUDA Core 數量是 480 這樣奇怪數字的由來,同時材質單元也就跟著被下修為 60 組、渲染輸出單元亦只剩下 48 組了。
而 GF100 核心的耗電量與溫度依舊高低不下,其實在當時讓不少人想起當年曾經讓 NVIDIA 面臨創辦以來最大挫敗的 GeForce FX 系列產品,甚至有不少 YouTuber 還拍攝了使用 GTX 480 煎蛋或煮食的影片藉以嘲諷 GTX 480 的高耗電與高溫問題,然而更要命的是 Fermi 架構的提升過於聚焦於 GPGPU 通用運算,因此在遊戲用途上其實並沒有辦法佔到甚麼便宜,即便 NVIDIA 耗費了非常多心力在優化 DirectX 11 新功能上,使得 GF100 核心在吃重 DirectX 11 的測試項目中可以輕鬆輾過 AMD 的競爭產品,但實際上新版 DirectX 的採用率通常不會太快提升,導致在大多數人實際的遊戲體驗過程中並沒有辦法感受到 GTX 480 有比 AMD 的產品快上多少 (甚至在許多項目中其實還反而比 AMD 的 HD 5870 慢了不少),這使得 GF100 在市場上的反應其實並不成功。
至於稍低一階的 GTX 470 (607/1215/3348 MHz + GDDR5) 則是採用了與 GTX 480 非常相似的設計,同樣基於 GF100 核心但是 SM 模組的數量被進一步砍到剩下 14 組 (448 個 CUDA Core、56 組 TMU 與 40 組 ROP),記憶體控制器也少了一組 (因此記憶體頻寬只剩下 320 bit) 並且在節省成本與溫度及功耗表現較佳的考量下,散熱器方面取消了老大哥 GTX 480 的大型金屬散熱片與額外熱導管的設計,而是改為鋼琴烤漆塑料的配置。
而採用 GF100 核心的最後一款產品 GTX 465 (607/1215/3206 MHz + GDDR5) 則是在 GTX 480 與 GTX 470 上市之後一周才追加的型號,在 GTX 470 的基礎上再更進一步砍掉 3 組 SM 模組 (只剩下 11 組 SM 模組,因此 CUDA Core 也只剩下 352 個,TMU 則是 44 組,ROP 也只剩下 32 組),並且又拿掉一組記憶體控制器,使得記憶體頻寬只剩下 256-bit,與中階的 GTX 460 一致,由於時脈等參數大致上與 GTX 470 相同,加上有一批 GTX 465 基本上是採用與 GTX 470 相同的 GPU 核心 (GF100-275-A3),因此 GTX 465 曾經有出現過一批可以透過刷寫 BIOS 開核變成 GTX 470 的產品 (但是還要求記憶體部分的電路、電容 Layout 需與 GTX 470 一致,因此可以開核的產品數量並不多)。
GF110 核心-全方位優化,Fermi 的最終完全體
看過 Fermi 的第一款旗艦大核心之後,接下來要看的是另一款被命名為 GF110 的核心,與 GF100 核心同樣是完整版旗艦大核心配置,在 GF100 上市八、九個月之後推出 (2010/11/09 發佈)。
GF110 的規格參數基本上與 GF100 完全一致,有著一樣的最多 4 組 GPC、16 組 SM 模組、最高 384-bit 記憶體頻寬等規格設定,所以並不被視為第二代 Fermi 核心或是 Fermi 架構的後繼產品看待 (基本上比較像是 GF100 的成熟版本),基本上是以 GF100 為基礎下去進行電晶體層面的技術改進與漏電率優化,追求降低功耗與提高良率後的改進版本,不過除此之外 GF110 還加入了在 GF104 (稍後介紹) 當中引入的一些 Z 軸壓縮、材質過濾功能方面的性能優化。
基於 GF110 核心的產品主要有四款,雖然仍然是 Fermi 架構而且並不算二代改版 (不然就會被命名為 GF200 了) 但在市場名稱方面全數改稱為 GeForce 500 系列發售,而從最終的產品上可以發現 NVIDIA 在良率與功耗方面的改善應該是還蠻有成效的,畢竟 GeForce 500 系列終於有「真正的完整版大核心」產品推出 (其中最高階的 GeForce GTX 580 功率甚至還比先前基於 GF100 的 GTX 480 來得低,風扇看起來也比較像 GTX 470 的設計,而沒有 GTX 480 那麼誇張)。
首先介紹的是系列編成中性能最強的單卡單晶片產品-GeForce GTX 580 (上圖),新改良的散熱器在噪音表現上明顯比 GTX 480 還要好,而且不同於 GTX 480 身為旗艦卻被閹割過的尷尬狀況,GTX 580 使用的是貨真價實的完整版 GF110 核心,包含 16 組 SP 模組 (512 個 CUDA Core、64 組 TMUs 與 48 組 ROPs),時脈設定也比上一代的 GTX 480 還要來得更高 (772/1544/4008 MHz + GDDR5)。
而稍低一階的部分則是由 GTX 570 擔綱,基本上 GTX 570 的規格與 GTX 480 相仿,同樣是淹掉一組 SM 模組之後的結果 (480 個 CUDA Core、60 組 TMUs 與 40 組 ROPs),但是時脈設定也比 GTX 480 還要略高 (732/1464/3800 MHz + GDDR5),加上功耗與效率方面的優化,因此在性能表現方面實際上是可以超越 GTX 480 的。
而更低一階的 GTX 560 Ti 實際上是承接 GTX 465 的位置而來 (NVIDIA 從 GTX 500 世代開始再次重新啟用 Ti 字尾作為高階版本,通常慣例是採高階核心閹割後標低等級而來),歷史上曾經出現多個不同版本,有使用 GF110 核心閹割為 14 組或 11 組 SM 模組的版本,也有採用 GF114 小核心的版本,在不同版本之間的性能差異也不小因此在市場上造成了一些混亂。
然而比起前面這三款中規中矩的產品來說 (如果這些產品能夠早一年作為 400 系列推出其實 Fermi 大概就不至於那麼失敗了 XD),比較特別的是接下來要介紹的這款產品-GTX 590,這是 NVIDIA 久違的單卡雙晶片產品,同時也是 Fermi 世代的最高階旗艦。
其實一顆 GF110 看起來就很壯觀了,GTX 590 由兩顆完整毫無閹割的 GF110 核心組成,看起來真的只有嘆為觀止這四個字足以形容,這兩顆 GF110 之間使用 nForce 200 橋接晶片 (其實就是製程升級後的 BR04,架構上與前代 NVIDIA 單卡雙晶片產品很類似) 連結,運作時脈則比 GTX 580 要稍低一些,設定在 607/1215/3414 MHz,跟上一代的 GTX 470 設定基本上是一樣的。
GF104 核心
接下來要談的是中高階的部分,NVIDIA 針對中高階市場推出的 Fermi 核心代號為 GF104,比起 GF100 還要晚了四個月才推出,而且與以往的做法不同,GF104 並不是單純從 GF100 削減組件數量而來的產物,實際上在架構編排 (特別是 SM 模組內的配置方面),GF104 與 GF100 之間有著蠻明顯的不同 (雖然下面這張架構圖看起來很像半顆 GF100,但其實中間的方塊數量比例上是不一樣的),並且引入了一些 Z 軸壓縮、材質過濾功能方面的性能優化。
GF104 核心只由兩組 GPC 組成,每組 GPC 當中同樣包含了四個 SM 模組,當我們把目光拉近聚焦到 GF104 核心的 SM 模組上時,其實可以很容易發現 GF104 核心內的 SM 模組所包含的元件數量與密度其實是有大幅成長的,下圖左邊出現的是 GF100 當中的 SM 模組編排,由兩組 Warp 排程器、兩組指令分配單元、32 個 CUDA Core、16 組 Load/Store 單元、4 組特殊功能單元與四組材質單元所組成。
而在 GF104 核心當中的 SM 模組實際上規模擴增了將近一倍,CUDA Core 的數量增加為 48 個,特殊功能單元的數量直接翻倍為 8 個,Load/Store 單元、指令分派單元與材質單元的數量也都增加了一倍之多,記憶體頻寬的部分則是小砍為 256-bit,因此 GF104 核心的性能其實遠遠超過 GF100 的一半,實際上 GF104 相較於 GF100 而言被閹割的比較嚴重的部分其實是負責曲面細分等任務的 PolyMorph Engine,但這應該是 NVIDIA 考慮到當時大量採用曲面細分技術的遊戲仍不多,中階玩家使用到大量相關功能的機率不高的結果。
使用 GF104 核心的產品其實不算多,基本上只有 GTX 460 與 GTX 460 SE 兩款,而 GF100 上所遇到的良率問題基本上在 GF104 上也都有出現,因此 GF104 也與 GF100 一樣並不存在真正的完整核心版本,以 GTX 460 為例,實際上僅開啟了七組 SP 模組 (336 個 CUDA Core、56 個 TMU 與 32 或 24 組 ROP),運作時脈設定則介於 GTX 470 與 GTX 480 之間。
至於 GTX 460 SE 的部分則是以 GTX 460 為基礎進一步閹割到只剩下六組 SM 模組的版本 (288 個 CUDA Core、48 個 TMU 與 32 組 ROP),運作時脈設定基本上與 GTX 460 一致。
值得注意的是 GTX 460 的衍伸版本很多,甚至有採用我接下來才要介紹的 GF114 核心的版本,當中比較特別的是記憶體容量為 768 MB 的 GTX 460 記憶體控制器被多閹割了一組,因此記憶體通道寬度只剩下 192-bit,總頻寬就比 GTX 460 SE 還要來的小了 (同時也影響了 L2 快取的大小,大多數 GTX 460 的 L2 快取有 512 KB,但在這個版本則只剩下 384 KB)。
GF114 核心
接下來要介紹的則是作為 GF104 核心接班人的 GF114 核心,基本上 GF114 與 GF104 之間的關係與 GF100 和 GF110 之間的關係是一樣的,同樣是在電晶體與電路設計上進行優化與良率提升之後的版本,因此基於 GF114 核心也與 GF110 核心一樣有功能全開版本的完整版核心產品推出,而且與 GF110 一樣,GF114 的時脈也拉得比 GF104 要來得更高。
採用 GF114 核心的產品主要出現在 GeForce 500 系列 (除了剛剛有特別提到的 GTX 460 在 2011 年之後有出現換裝只具備 7 組 SM 模組之 GF114 核心的版本與之後 GeForce 600 系列中的一款中低階產品之外) 作為中階產品推出,然而其中只有 GTX 560 Ti (後期產品,前期以採用 GF110 閹割版為主,時脈設定為 822/1645/4008 MHz + 256-bit GDDR5) 有使用完整版的 GF114 核心。
而比較常見的則是較低一階的 GTX 560,採用閹割掉一組 SM 模組的 GF114 核心 (具備 384 個 CUDA Core、56 組 TMU 與 32 組 ROP,810/1620/4008 MHz),而後來 NVIDIA 又追加推出了更低一階的 GTX 560 SE,進一步再閹割了一組 SM 模組 (因此只剩下 288 個 CUDA Core、48 組 TMU 與 24 組 ROP,736/1472/3828 MHz,記憶體通道寬度也隨之縮減為 192-bit),站長還有印象當時似乎出現了不少搭載 GTX 560 SE 卻打著「高效遊戲機」招牌的品牌電腦。
而之後 NVIDIA 在 2012 年發布的 GeForce 600 系列當中再次使用 GF114 核心 (只剩 6 組 SM 模組的版本),並將其命名為 GT 645 發售,規格上與 GTX 560 SE 很接近但時脈設定略高了一些。
Table of Contents
GF106 核心
至於主流市場的部分 NVIDIA 則是準備了 GF106 核心,上市時間大抵上與 GF104 差不多,由於 GF104、GF106 面向的市場定位其實有很大一塊重疊,因此 GF106 核心採用的配置比較接近 GF104 核心的設計,從下面這張圖當中就可以看出這點,GF106 核心其實就跟半個 GF104 核心差不多。
由於特性上與 GF104 沒有太大的不同所以我就不再重述這部分內容了,直接從產品的部分開始講起,使用 GF106 核心的產品基本上只有 GTS 450 與 GT 440 兩款,絕大多數 GF106 核心也都屏蔽了其中一組 SM 模組 (只有第一批推出的 GTS 450 是完整版核心)。
其中較為高階的 GTS 450 先後出現過 3 組 SM 模組 (144 個 CUDA Core、24 組 TMU 與 24 組 ROP)、4 組 SM 模組 (192 個 CUDA Core、32 組 TMU 與 16 組 ROP) 兩種規格,乍看之下在規格方面差異頗大 (前者主要給零售市場,後者以 OEM 為主,推測是為了處理良率問題的手段),但 NVIDIA 給了前者 192-bit 的記憶體通道 (三組控制器),而後者則只有入門水準的 128-bit (兩組控制器),而且後者雖然有比較多的 CUDA Core,但是渲染輸出單元的數量卻少了很多,再加上前者 (790/1580/4000 MHz) 的時脈設定略高於後者 (783/1566/3608 MHz),因此其實很難直接從數字上去推算這兩種規格的性能差異,後期 NVIDIA 還使用等一下會介紹到的 GF116 核心來取代 GF106 核心用於 GTS 450 上,但是規格參數並沒有變化。
而較低階的 GT 440 則是由體質較差的 GF106 核心而來,基本上與具備 3 組 SM 模組的 GTS 450 有著非常相似的規格,但是時脈設定較低 (594/1189/1800 MHz) 並改搭配較差的 GDDR3 記憶體,而後來體質較差的 GF106 庫存銷得差不多、GF 108 的時脈拉得上來之後 NVIDIA 就改用成本更低 (面積更小)、良率更高的 GF108 核心來生產 GT 440 了。
GF116 核心
相信看過 GF110 vs GF100、GF114 vs GF104 的比較之後你應該也不難猜到 GF116 與 GF106 之間的關係了吧?的確,GF116 其實就是 GF106 的微幅改良版,然而由於 GF116 核心本身就不大,電晶體數也不多,耗電量與溫度問題也就不那麼重要,因此 GF116 的改良主要是體現在時脈提升空間上,在功耗方面的調整則不是那麼明顯。
相對於 GF106 來說,採用 GF116 的型號就比較多一些了,除了剛剛提到過 GTS 450 的晚期產品有使用到 GF116 之外,在 GeForce 500、600 系列當中都能見到 GF116 的蹤影,以 GeForce 500 系列為例,一共有 GeForce GT 545 與 GTX 550 Ti 兩個型號,其中定位較高的 GTX 550 Ti 其實位階並沒有高於 GTS 450 太多,並且與 GTS 450 一樣是同核心衍生產品中唯一使用完整版核心而無屏蔽 SM 模組的產品,之所以有機會冠上 GTX 而非 GTS 純粹是因為其設定的時脈 (900/1800/4104 MHz) 有了明顯的提高之故 (但其實一推出就被大家轟到體無完膚了,畢竟低於 GTX 460 的性能實在是不配 GTX 這名號啊)。
至於定位較低的 GT 545 則是閹割了一組 SM 模組,基本規格與 GT 440 很類似,但是時脈設定明顯高出許多 (720/1440/1800 MHz + DDR3 或 870/1740/1998 MHz + GDDR5),不過相較於 GT 440 而言在搭配 DDR3 記憶體時記憶體通道寬度反而被進一步閹割到只剩下 128-bit 了 (搭配 GF116 核心的 GT440 也只有 128-bit,但搭配 DDR3 時可以支援到 192-bit)。
而最後一款使用 GF116 核心的產品則是 GeForce GT 640,規格跟 GT 545 大抵上是一模一樣的,不過 GT 640 這款產品先後採用過非常多不同種的核心 (初次上市當天就直接混兩種了,同時有基於 GF116 跟基於 GK107 的版本被混和發售),其中採用 GF116 的數量應該不算多。
GF108 核心
至於最底端的入門市場則是由規模最小的 GF108 核心負責,由於 GF106/GF116 已經砍到只剩下一組 GPC 了,因此 GF108 只能進一步往 GPC 內部構造-SM 模組的數量來縮小規模,基本上可以將 GF108 視為將 GF106 僅剩的一組 GPC 內再切掉一半的結果。
由於 NVIDIA 在 Fermi 之後就很少對入門市場的產品多所著墨,因此 GF108 與其衍生型 (等一下最後會介紹的 GF119) 在 GPU 發展史上存留了很長的時間,而且推出了非常多種不同的型號,甚至也被更名重推了不少次,除了剛剛提到的 GT 440 在後來推出基於 GF108 核心的版本 (其實規模比 GF106 版砍了將近一半,但是時脈從 594/1189/1800 MHz 被一口氣拉高到 810/1620/1800 MHz + GDDR3 或 810/1620/3200 MHz + GDDR5) 之外,還有 GT 430 (時脈略低,降至 700/1400/1300 ~ 1800 MHz,並且有記憶體控制器被閹割到剩下一組的版本)、GT 420 (以 GT 430 為基礎再閹割掉一半的 SM 模組後得到的產物) 兩種。
剛剛提到 GF108 的衍生型 GF119,從名字上可以很容易看得出來相較於 GF104 vs GF114 在架構上毫無變更的關係而言,GF119 與 GF108 之間應該是有架構異動的 (否則會叫做 GF118),實際上也確實如此,GF119 原生就只有一組 SM 模組。
而基於 GF119 的型號就真的很多了,舉例來說在 GeForce 500 系列時有 510、GT 520 兩個版本 (都只能搭 64-bit 的 DDR3 記憶體,前者時脈只有後者的一半多一些),而後來在 GeForce 600 系列的時候也又被拿來出成 605、GT 610、GT 620、GT 625 四個型號,這四款基本上都只有時脈設定的差異,在規格配置上是差不多的。
而 GF119 核心的最後一次出現,同時也是 Fermi 架構正式退出歷史舞台的時間點則是要一路拖到 2014 年的 GeForce GT 705。