接下來我打算接續上一篇的主題繼續介紹 Terascale 架構的後續衍伸型 (從 2007 年開始一路到在 2012 年推出 GCN 架構之前 AMD/ATI 的所有顯示晶片都是從 Terascale 架構發展出來的)。

Terascale 1.5

  • 推出日期:2008 年 06 月 (R700)
  • 所屬系列編成:Radeon HD 4000 系列
  • API 支援:DirectX 10.1、OpenGL 3.3、OpenCL 1.0
  • Shader Model 支援:SM 4.1

當功耗變成問題的時候…

還記得在上一篇談到 RV670 的時候,我曾經說過 RV670 是 AMD 接下來在產品開發策略上大幅轉變的預告嗎?從 R700 系列核心開始有許多方向上的轉變會開始很明顯地體現在 AMD 的圖形產品規劃上,為了瞭解這一點,我們得先回到 AMD 開始構想 RV670 的時候才行。

以往這些晶片廠商在設計新的晶片時思考的問題其實很單純,「怎麼樣的設計可以壓榨出更多的性能?」如同電腦玩家們經常抱持的性能至上論一般,設計晶片架構的人其實也是這麼想的 (畢竟這是營利事業不是慈善企業,本來企業在發展產品的時候想法與思維就不該偏離消費者太遠,除非你是蘋果有大把到花不完的資金跟足夠的「Courage」可以讓你挑戰消費者的耐性與腦波強度),NVIDIA 如此、Intel 亦如此,ATI 當然也不例外,因此過去這些年它們基本上都致力於發展「更複雜的架構」、「更龐大的晶片規模」、「塞入更多的電晶體」,這樣的狀況在高度平行化的 GPU 領域又尤其明顯,有很長一段時間 GPU 的性能提升其實是奠基於「把架構裡面的東西多複製幾組上去」。

amx8041

在這樣的思維底下,有很長一段時間 GPU 廠商設計產品的方式稱之為 Top-down Approach,也就是先設計出一款當下技術極限所能造出規模最大、最極致的產品,之後再用閹割的方式來設計出較低階的款式。

但是在 2006 年的時候,半導體產業的藍色巨人 Intel 第一個踢到鐵板了,Netburst 架構在不考慮功耗成長的情況下追尋性能不斷持續成長的目標,不顧架構效率只一味追求時脈數字的成長與管線深度的增加最終使得當初的 10 GHz 目標在 2006 年瞬間化為泡影,Intel 度過了公司創立以來數一數二艱難的一年,在這樣的背景之下 AMD 向另一個方向轉彎其實也不是甚麼奇怪的事情了。

當然從現在的角度來看可能會覺得當年人們設計晶片從不考慮功率問題是一件很 Ridiculous 的事情,不過實際上在物理的角度來看這樣的作法並不奇怪,在散熱器能解決的功耗範圍內不去考慮功耗其實是很自然也很符合人性的結果,畢竟在這種情況下直觀看起來就是溫度一樣壓得住而性能卻提升了,但一旦跨過了那道門檻之後,無法解決的功耗就會變成持續提升性能不得不突破的嚴重障礙了。

AMD 的新策略

在規劃 R700 系產品的時候 ATI 正好面臨了這個問題,R600 嚴重的延期與各種難解的問題都再再顯示了設計更大的晶片、更複雜的電路會造成許多更嚴重的問題與耗費更多的時間,但對 ATI 來說更大的問題是如果在與 NVIDIA 之間性能王座的爭奪戰上落敗,拱手把光環讓給對方會不會是一種自殺行為?這樣交迫的處境使得 ATI 走到了這個十字路口上:

  • A:堅持現有的發展策略
    努力造出比 NVIDIA 更強大的晶片、比 R600 規模更大、速度更快、塞入更多且更複雜的電路,力求搶回被 NVIDIA 奪走的性能王座,就像過去十年那樣。
  • B:既然硬拚沒用,就走自己的路吧
    放棄與 NVIDIA 之間的性能王座之爭,以將公司獲利最大化為目標,集中精力搞好市場規模最大、最多消費者可能購買的中階產品。

如果是你會選擇哪條道路呢?選 A 的話,ATI 當時的技術能力與手上的現金真的足夠支撐比 R600 規模更加激進的 R700 嗎?從 R500 以降的無限延期災難若持續到 R700 上,ATI 還有那麼多的體力可以消耗嗎?就算被 AMD 收購了,有那麼多錢可以燒嗎?

選 B 的話呢?NVIDIA 取得了性能王座的光環效應,在媒體上獲得了大量的曝光很有可能導致落敗的 ATI 被邊緣化而在銷售方面面臨困境,而且一旦脫離了戰場,很有可能 ATI 最後下場會是被邊緣化並且永遠沒有機會重返龍頭寶座。

acx5011

當時 ATI 的管理階層就是面臨這樣的兩難,儘管現在看來當時選擇走了 B 路線的主管是做了明智的抉擇,才使得 AMD 的圖形部門得以繼續存活至今並且繼續維繫著 NVIDIA 與 AMD 兩強爭霸的局面,但對於過去十年都在致力於創造比 NVIDIA 產品更快、更先進、更龐大、更複雜的競爭產品的工程師來說,第一個想法大概是公司想投降,再來就是覺得主管腦袋壞掉了吧。

吹響反攻號角

相對於當年被寄予厚望但卻面臨漫長延期、實際性能遠不及理論性能而徹底失敗的 R600 來說,RV670 算是成功的一款產品,不過並沒有辦法從 NVIDIA 手中搶回過去幾年失去的市佔率,因此 R700 系列是否能夠創造更大的成功對於後來 AMD 圖形部門的命運來說至關重要,但要發展龐大的 R700 還是較小的 RV770?這是個很重要的問題,也曾經在 AMD 的開發團隊中引起熱烈的討論。

scs5052

由於 R600 的失敗與 RV670 相對而言的成功,因此當時 AMD 圖形部門的主管拍板定案全力發展 RV670 的後續產品做為次世代 GPU 的藍本,也就是後來的 RV770 (所以後來 R700 這核心並沒有出現),在市場上 AMD 決定放棄在頂級玩家市場中與 NVIDIA 正面衝突 (頂多用雙晶片的方式填補一下市場空缺),轉而以發展中高階市場的產品為主 (實際上絕大多數顯示卡消費都是落在這級距)。

dcs5088

實際上 AMD 希望 NVIDIA 繼續往更大、更複雜的方向前進,並暗自期待 NVIDIA 踢到鐵板的瞬間 (確實 NVIDIA 也真的這麼做了,所以 GT200 成效不彰),不過說起來也不知道 NVIDIA 與 AMD 是賭氣還是怎麼樣的,NVIDIA 此後還真的就一直繼續往超大核心邁進並且不斷突破極限 (看那精美的 GP100),而 AMD 還真的也就不太碰頂級消費群了。

emu8071

回到架構本身

看了 AMD 在發展策略上的轉變之後,接下來讓我們回到架構本身來看看 RV770 的技術特性吧,下面這張圖就是 RV770 的架構。

sxc5017

單看上面這張架構圖大概會覺得相較於 RV670 來說 RV770 的架構很壯觀吧?不過其實把方向稍微轉一下就會發現整體的架構其實沒有很大的改變,主要出現的差異是落在數量與編排方面,首先上半部的 Command Processor、Setup Engine 與 Ultra-Threaded Dispatch Processor 基本上沒有太大的變更,仍然不脫 R520、R580、R600、RV670 一路傳承下來的影子。

  • Windtmac

    讀完本篇後,有幾個問題想請問站長:

    1. 「SPU == SMU ???」
    SPUStream Processing Unit 的簡稱是顯而易懂的,不論是在架構圖,或是上篇的 5-20 論述皆可呼應;然 SMU 您僅於本篇 p2 使用(p3-4, 論及相關名稱時,又改成 SPU),請問兩詞是等義且能夠相互替換的嗎?其完整的詞組又為何?

    原文 = “(被 AMD 命名為 SMU)" —— SIMD Array 大擴編, p2, 等 7 處

    2. 「RV770 的每一 SIMDshader cores 應該沒有翻倍為 32 組,而是維持 16 組。」
    倘若翻倍,則 PSU 總數 = 10 SIMD cores x 32 shader cores x 5 ALUs = 1600, 然 RV770 只有 800 PSUs.
    (p2 第 2 張圖似乎支持 16 shader cores 的觀點, 只是與 p1 的 RV770 架構圖相悖就是?抑或架構圖有謬?)

    原文 = “而且每組當中的運算單元數量也從原來的 16 組翻倍變成高達 32 組" —— SIMD Array 大擴編, p2

    3. 「RV670 不是只有 4Texture Units?」
    然而您在文中確道:「由 RV670 演化至 RV770 時,Texture Units 竟是由 6 組升到 10 組」?

    原文 = “因此 RV770 的材質單元數量同樣從六組大幅增加為十組" —— 新的材質單元, p2

    4. 「HD 4650 誤植為 HD 4850」
    HD 4850 應該沒有被砍到只剩 64-bit 的記憶體位寬之慘況才是!?

    原文 = “但 HD 4850 魚目混珠的情況更嚴重,因為較差的 HD 4850 記憶體頻寬進一步被砍到只剩下 64-bit。" —— RV730 核心, p4