[小惡魔的電腦教室] 4-1.認識顯示卡

啊....顯示卡,一直是我最愛的零組件!自從在十年前買了第一代Voodoo卡,機械繼電器那「啪」的一聲進入GLQuake,看到水面的「灰色泥漿」變成半透明之後,我就知道自己踏上3D的不歸路了,自此之後我只買高階卡,因為我無法忍受遊戲特效不能全開的痛苦。十年之後,顯示卡的發展已經超乎我當初的想像,我相信也超乎絕大多數人的想像。

在電腦界,大家常會引用摩爾定律:每12~24個月,晶片的複雜度和效能就會成長一倍。但顯示晶片(Graphic Processing Unit,GPU)是少數能超越摩爾定律的零組件。若以浮點運算能力來評斷GPU的效能,GeForce 6800 Ultra是54 GFlops,GeForce 7800 GTX是165 GFlops,GeForce 8800 GTX就已經超過500 GFlops,在這三顆GPU所間隔的短短兩年半中,GPU效能就翻了將近10倍。附帶一提,現在蠻熱門的Intel Core 2 Duo Q6600的GFlops大約是30左右。

註:1 GFlops,就是每秒有10億的浮點運算指令,Giga Floation point Operation Per Second。

註:嚴格來說,Voodoo一代不能算是顯示卡,因為它沒有2D核心,只能顯示3D畫面,2D的部分必須還有另一張顯示卡,Voodoo1和Voodoo2都是3D附加卡的型態,但它們少數的特例,所以我不管了,也不去寫拗口的3D加速卡,通通都叫顯示卡吧!


當然,用GFlops來衡量CPU既不公平也不準確,因為CPU和GPU是完全相對的存在。在接下來的章節中,我們會仔細談顯示卡的架構,什麼是DirectX?Shader在幹嘛?遊戲和顯示卡怎麼相輔相成,擺脫十年以前的2D黑暗期,造就這十年來的3D爆炸性成長。我們先從最簡單的開始....


[小惡魔的電腦教室] 4-1.認識顯示卡[小惡魔的電腦教室] 4-1.認識顯示卡
這十年來顯示卡改變多大?1997年我們只能勉強跑GLQuake(Quake的OpenGL加速版,算是第一套展現Voodoo能力的遊戲。透明水,有看到嗎!?),2007年我們已經可以玩畫面接近相片擬真的Crysis。


顯示卡的外觀

顯示卡是一個小型的完整系統,它有自己核心晶片、記憶體、電源輸入和散熱模組,我們先以一般人最常用的顯示卡為例做介紹:


[小惡魔的電腦教室] 4-1.認識顯示卡
啊....拿錯了,一般人用這種卡就見鬼了。


[小惡魔的電腦教室] 4-1.認識顯示卡
一般用的顯示卡大約像這樣,我把幾個重點部分標號出來。


1.傳輸介面
[小惡魔的電腦教室] 4-1.認識顯示卡
這一長條金手指是顯示卡輸出輸入資料的地方,圖中的卡是PCI-Express x16介面,大家或許也有聽過AGP(Accelerated Graphics Port,加速繪圖埠),甚至現在還有人死不放棄。最早的3D卡是用PCI介面,但大量讀取的資料很快就撐爆PCI介面,當時只好先用AGP應急。但AGP是一對一的埠,而非通用的匯流排,限制頗多,所以在三四年前顯示卡開始轉換到PCI-Express 1.1,這是由數量不等的通道組合成的匯流排,PCI-E x16就表示組合16條通道,每一條的頻寬是雙向每秒500MB。在今年底,PCI-E 2.0的顯示卡將會出現,傳輸頻寬會加倍,這是為了把要運算的資料搬進顯示卡中,並把運算結果回傳出來。


2.視訊輸出
[小惡魔的電腦教室] 4-1.認識顯示卡

[小惡魔的電腦教室] 4-1.認識顯示卡
顯示卡是連接各種顯示器輸出畫面,位於顯示卡後端的就是這些輸出接頭,相信大家都分的出來DVI(白色)和D-Sub(藍色)接頭,這是電腦最常用的兩種接頭。其中DVI是純數位資料,比D-Sub的類比傳輸有更好的穩定性和清晰度,加上現在流行的LCD也是數位對應顯示,用DVI才能達到最佳效果。現在就算最差的顯示卡都至少有一個DVI,稍好一點的就會有兩個DVI,或是特殊的Dual-Link DVI。Dual-Link DVI可以輸出比一般Single-Link DVI更高的解析度,最高達3840x2400,一般DVI只到1920x1200。除了DVI,現在顯示卡也開始具備HDMI輸出,未來甚至有DisplayPort等更先進的輸出方式。

HDMI算是可以傳輸SPDIF音訊的DVI,在視訊方面幾乎跟DVI一模一樣(差別只在HDMI可以另外傳輸色差訊號),DisplayPort的話太新了,還沒有實際產品,我也不太了解,希望高手指教。除這些電腦用的端子,一般顯示卡還有九針的多功能視訊輸出(圓孔的那個),可轉接成AV、S、色差端子。


3.電源處理
[小惡魔的電腦教室] 4-1.認識顯示卡
這些柱狀物和線圈是電容和電感,顯示卡也是要吃電的,電容和電感可以穩定電源,避免突然過高或過低的電壓造成當機,甚至傷到硬體,跟主機板上的電容電感的用意是完全相同的。一般顯示卡都是由PCI-Express插槽直接供電,最高75W,這種卡的電源處理就會集中在插槽附近,但像上面那張圖的高階卡,耗電量超過75W就要另外插電,通常在卡的末端會有這種PCI-Express的6pin電源插孔,可額外再輸入75W。這種要外接電源的卡,電源模組的部分就會集中到電源插頭附近,在散熱器後面那一塊全部都是做電源處理的。

依卡的高中低階不同,低階的通常不用外接電源,最高階的則可能會有兩個6pin電源,甚至用上PCI-Express 2.0新規格的8pin電源,一個就可供電150W。當然,會吃到這麼多電的卡,在世代交替淘汰之前,價格絕不會低於一萬元。


4.散熱模組
[小惡魔的電腦教室] 4-1.認識顯示卡
就跟CPU一樣,GPU也會發熱,也有自己的TDP規範,要讓GPU能穩定運作,顯示卡上的散熱模組必須消散掉GPU所產生的廢熱。至於要怎麼把廢熱排掉就是各廠商的創意了,要用巨型風扇加鋁鰭導風罩散熱、或是純被動散熱片避免風扇噪音等等,只要符合TDP的規範就可以了。而GPU的高中低階就等於發熱量的多寡,也就等於散熱器的大小,加上高階卡的線路也比較複雜,因此顯示卡的高中低階通常會反應在外觀上,上圖就是四種常見的尺寸,從最長的10吋,到最小的Low Profile。


[小惡魔的電腦教室] 4-1.認識顯示卡
散熱器主要都是針對GPU,拆下來之後就會露出顯示卡的核心晶片GPU,旁邊八顆則是輔助GPU的顯示記憶體。他們的關係就跟CPU和系統記憶體一模一樣,GPU做運算,記憶體則儲存GPU所需的一切資料。看佈線就知道,所有的記憶體都通往GPU,所以GPU有內建記憶體控制器。


5.GPU核心
[小惡魔的電腦教室] 4-1.認識顯示卡
十年以前,顯示卡的核心都只負責2D顯示,但2D沒幾年就已經發展到頂點了,在那之後都是著重在3D運算能力,近幾年則另外再加上影片的解碼播放加速。GPU跟CPU一樣也是半導體製程,製程方式雖然不同,但同樣會隨著時代進步縮小製程以降低成本,目前最新的是65奈米,年底左右會有55奈米。GPU一樣是靠電晶體來運算3D,但因為CPU和GPU本質上差異極大,所以GPU很容易就出現超大量的電晶體,至少都是CPU的兩三倍以上,正中央那顆就是GPU的die晶粒,不過因為製程、晶片特性等種種因素,GPU的時脈不易拉高,今年大約可以突破800MHz而已。


6.顯示記憶體
[小惡魔的電腦教室] 4-1.認識顯示卡
做為GPU的暫存空間,儲存正要處理或已經處理完的資料。就跟系統記憶體一樣,容量和時脈也是影響效能的兩大因素,但這都已經無關2D顯示了,就像前面說的,2D顯示已經發展到頂點了,顯示記憶體早就遠遠超過2D顯示所需。現在容量和時脈完完全全是針對3D遊戲,遊戲的資料量愈大,顯示卡就需要愈大的記憶體來儲存資料;顯示晶片的處理速度愈快,就需要時脈愈高的記憶體來快速進出GPU。依顯示卡的高中低階不同,容量從32MB~768MB不等,突破1GB是遲早的事,時脈則從400MHz~2000MHz以上都有。


顯示卡的基本運作原理

現在顯示卡的玩家端應用不外兩大宗:3D遊戲和影片播放,3D繪圖和影片壓縮格式的專有名詞很多,乍看真的眼花撩亂,但這裡我們先把視角拉高一點,從最遠的地方來看顯示卡的運作,其實不管是3D繪圖、影片加速、甚至是更先進的GPGPU,都脫離不了以下要講的流程。


[小惡魔的電腦教室] 4-1.認識顯示卡
顯示卡的基本運作流程,直到驅動程式為止都是CPU在運算,因此CPU的效能也會影響顯示卡的效能,如果前端太慢,顯示卡都在等資料、餵不飽,就會造成效能瓶頸。


在DOS之後,應用軟體就很少再直接存取硬體,因為直接存取硬體會影響作業系統的穩定性,在多工OS下尤其重要,便免使用者手賤把系統搞掛。而且直接存取的話,軟體和硬體的設計都很不方便,因為軟體得想辦法支援個別硬體,就像早期的DOS遊戲那樣,每套遊戲都得手動針對不同的硬體做支援,顯示卡、搖桿、音效卡什麼的,硬體一多就快起笑了。業界急需一個共通的中介標準,於是微軟制定了第一代DirectX,這是一種「應用程式介面」(API,Application Programming Interface)夾在軟硬體之間,雖然多了第三者會減損效能,但換來的方便性是絕對值得的,其中Direct3D是針對顯示卡的3D繪圖API,是DirectX最重要的一部分,其他還有DirectSound、DirectInput負責聲音和週邊。

DirectX
DirectX是顯示卡和遊戲共同支援的標準,遊戲以DirectX的語法來寫,顯示卡將DirectX的語法轉變成3D畫面,兩者就有統一的標準,不再需要個別支援,可降低開發難度,而且執行結果有一致性,不管用什麼硬體,只要都支援DirectX,跑出來的畫面理論上都要一樣。除了DirectX之外,OpenGL也是另一個繪圖API,通常用於專業的3D繪圖領域,但也有少部分PC遊戲使用(遊樂器則除了Xbox,大多是用OpenGL),OpenGL的歷史比DirectX久,但因為Windows的內建優勢、原生支援硬體加速、更新速度快,在遊戲應用上DirectX比OpenGL強勢多了。

雖然顯示卡一定得支援DirectX,但實際GPU晶片線路要怎麼設計則是各家廠商的創意,就像x86 CPU不能直接執行x86指令,得透過內部的解碼器轉換,GPU也不能直接執行DirectX的指令,中間還得透過驅動程式,這也是為什麼顯示卡的驅動程式超級重要,因為它得解譯DirectX的指令,轉換成GPU看得懂的機器語言(Machine Code),驅動程式會直接影響顯示卡的效能和功能。

DXVA
影片的部分也就不難懂了,API換成DXVA(DirectX Video Acceleration),播放軟體的影片解碼器下達DXVA指令,再透過驅動程式解譯交給GPU運算,我們就有了影片硬體加速。跟DirectX相同的道理,要支援硬體加速,解碼器、驅動程式和顯示晶片都要支援DXVA才能啟動,缺一不可。

以上就是GPU非常基本的運作原理,詳細的3D運作流程、宣傳過度的DirectX 10、GPU硬體規格、影片加速的原理、驅動程式等等,會在後面的文章中一一介紹,歡迎來到華麗又迷人的電腦影像世界!
謝謝版大的教學~

版大提到顯卡的驅動程式超級重要,是不是表示只要有新的驅動更新,

最好都要下載安裝?

請知道的人指導一下。
ya~~~好耶!終於到GF大的拿手菜:顯示卡了 期待ING..
另外 還沒回國你怎麼發的阿?好奇中...
最後我依然死守在AGP的四行倉庫~~~咬我阿
E115 敗家的開始..... CASIO 給我回來啊~~~~~~~~
我跟大大正好相反,最沒興趣的就是顯示卡,玩遊戲最喜歡好的劇情,對畫面比較沒感覺,所以完全不懂顯示卡,也因為這樣,看大大的教學收穫最多,請大家多多支持01吧
驅動程式「理論上」都是愈新愈好,廠商會不斷的去修正硬體的效能與相容性,但「實際上」卻不一定如此。
bpalan wrote:
謝謝版大的教學~版大...(恕刪)


我個人是更新狂,所以有出新的就會換,不過現在顯示卡的驅動都太複雜了

通常是新driver修正舊問題,但順便帶來新問題。即使如此,我還是會建議盡量裝最新的WHQL驅動
感謝樓主詳細的解說,不過小弟有個問題,現在新的顯卡好像都有支援硬體解碼(如H.264),如果像是規格沒支援H.264解碼的顯卡,不知道實際看影片的時候是否真的有差異嗎?
mac69696 wrote:
感謝樓主詳細的解說,...(恕刪)


要看影片的流量和你所用的CPU等級,如果流量不高(像Quicktime的,10mbps以下),那就都沒差了。如果是Blu-Ray那種30mbps以上,CPU等級又不夠的話(低於C2D E6400),那就會看到明顯的掉格,這時顯示卡有沒有支援H.264就「差非常多」了。
老大,你沒有寫顯示卡記憶體的bit?
LJS23 wrote:
老大,你沒有寫顯示卡...(恕刪)

大概是這篇還在認識階段吧!?

最近真的看到顯卡愈來愈強大
回想生平第一款打的FPS -地下德軍總部(而且那時還不見天日咧
再看現在的隨便一款3D遊戲…
真是令人期待未來擬真的程度

另外
愈來愈期待超頻那章節了
星塵 http://askeing.blogspot.com/
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!