帳號:
密碼:
最新動態
產業快訊
CTIMES / 文章 /
挑戰CPU地位的繪圖晶片
 

【作者: Gandalf】   2004年01月15日 星期四

瀏覽人次:【7575】

自電腦有了顯示功能以後,其功能就愈來愈複雜。從最簡單的文字陣列顯示,進一步能顯示圖形,接著能處理平面2D的繪圖指令。發展到了今天,就算最入門的陽春機種,都會搭配能處理3D繪圖指令的顯示卡。大家對於nVidia、ATi等研發繪圖晶片大廠的名字耳熟能詳,但對於繪圖晶片中的功能、架構和發展過程,也許就有些陌生了。藉這個機會,我們來好好談談繪圖晶片吧。


顯示晶片和繪圖晶片

這兩個名詞,過去到現在都沒有一個很明確的定義,只是習慣性的稱過去顯示卡上的晶片為「顯示晶片」。現在的顯示卡不僅能顯示影像,也有了繪圖的功能,所以也被稱做「繪圖卡」。卡上所使用的晶片也被稱為「繪圖晶片」,或結合以上兩項功能,叫做「繪圖顯示晶片」。


繪圖和顯示到底有什麼差別?過去的顯示卡所用晶片,並不能叫做「繪圖晶片」,充其量只能叫做「顯示晶片」。因為其功能只是單純地把顯示記憶體中的資料,轉換成顯示器的訊號,讓顯示器可以顯示出來而已。使用這類顯示卡在做影像或圖形處理工作時,圖形或影像的內容都要由CPU處理完成,再把處理後的資料放到顯示記憶體中,讓顯示晶片上的RAMDAC(Random Access Memory Digital-to-Analog Converter)對顯示記憶體做一次由上到下的掃描,把這些數位資料一行一行的轉換成顯示器的類比訊號。


繪圖晶片除了有上述顯示晶片的功能外,本身就有能力可以處理圖形和影像。換言之,CPU可以不用費神在處理圖型和影像上,只需要指揮繪圖晶片做事,繪圖晶片便會把這些事情處理好,把結果放到顯示記憶體上。剩下的動作和一般顯示晶片並無二致,由RAMDAC把圖形資料輸出給顯示器便完成了。那些工作是可以由繪圖晶片代理,不需要CPU親自處理呢?這些工作包括了影像處理、解壓縮、影像資料搬移及2D的繪圖指令等。當然,現在最重要的就是要能處理3D的繪圖指令,如(圖一)所示。


《圖一 顯示卡和繪圖卡》
《圖一 顯示卡和繪圖卡》

因為CPU不需要處理這些繁雜,運算量又大的工作。大可以多花點時間去處理磁碟存取、使用者介面(User Interface;UI)上,將現今多媒體的系統效能大幅的提高。


更強大的影像處理功能

影像處理是現在繪圖晶片必備的功能,但因為每家廠商做出來的功能皆大同小異,一般人很少特別去注意。現在的繪圖晶片都能進行MPEG的即時解壓縮,用最簡單的話來說,就是能放映電影、動畫、VCD及DVD等等。這些影像資料都是以壓縮的方式存放在磁碟或光碟當中,當我們想要放映時就要做一個解壓縮的運算,還原壓縮前的影像才能放映出來。演算大量的影像資料當然不是輕鬆的工作,以前的CPU運算速度不夠,無法順暢的播放,所以那時會外接一張解壓縮卡來做這工作。現在則是把這個工作內建在繪圖晶片中。另外,有的繪圖晶片還能對顯示出來的畫面做反鋸齒(Anti Aliasing)、清晰(Sharp)、模糊(Blur)及色調的處理等,讓顯示出來的結果可以更加的美觀,符合顯示器及觀眾的需要。


3D處理能力

3D資料我們可以概略的分成兩個部份,一是圖形資料,另一個是材質資料。一張3D顯示卡處理的不外乎就是這些資料,所以一張3D顯示卡的性能如何,就看處理這些資料的能力了。


圖形資料

3D的圖形資料就是許多不同的立體幾何形狀。實際上在處理時,會被拆解成許多的三角形。繪圖晶片要做的事,用講的很簡單。把這些三角形按光線情況和角度等資料一一上色,轉換成我們螢幕的平面座標,就可以顯示出來了。這些工作又可以簡單的分成兩個部份,座標轉換(Transform)及上色(Lighting)。座標轉換及上色通常被合稱為T&L。因為T&L運算量龐大,需要大量電路來完成,所以早期的3D繪圖晶片並不實做這個部份,仍舊交給CPU來處理。但隨著現今對此運算速度的要求愈來愈高,於是大部份的繪圖卡都將此功能由硬體電路實做,內建在繪圖晶片中,如(圖二)所示。


《圖二 繪圖資料處理流程簡圖》
《圖二 繪圖資料處理流程簡圖》

座標轉換

想像你的手中有一片三角形的紙板,試著轉動它並觀察每一個角度的變化。我們可以發現隨著三角形面向的位置不同,投影到我們眼中的形狀也不一樣。在電腦的3D處理中,也有類似的動作。因為螢幕是平面的,3D的世界就要透過投影(Project)的動作,才能顯示在螢幕上。就像我們用眼睛觀察真實世界,最後投影在我們的視網膜上成像一樣。只不過眼睛看東西可以靠光投影的物理法則自然完成,但電腦在處理這些座標轉換的動作時,卻要使用著大量的數學運算。此外,3D虛擬世界中的物體在移動或轉彎時,也需要對應的數學運算來處理。一顆3D繪圖晶片每秒鐘要能處理數以千萬計的三角形,才能讓3D遊戲動作順暢。每秒鐘能畫多少三角形便成了繪圖晶片的性能指標之一。請參照(圖三)。


《圖三 三角型角度和投影的關係》
《圖三 三角型角度和投影的關係》

上色

一張色紙在一般情況下,怎麼轉動都會是同一種顏色。但若考慮燈光的效果時,就複雜得多了。例如色紙面光的角度不同,色紙的顏色就會有明暗的變化;如果還要考慮燈光的顏色不同,那就更複雜了。在3D虛擬世界中,電腦透過一連串模擬光學的公式,來運算出最後的顏色。


在螢幕上我們最後畫出的三角形,也是由一個一個的點構成。這些點依其所在位置不同,顏色也有可能會不一樣。座標轉換後的三角形,繪圖晶片會把上面每個點的顏色再一一計算出來,構成螢幕上最後色彩繽紛的圖案。


材質資料

很多時候運算出來的顏色並不能很好的表現真實的世界。很多真實世界的物體有其獨特的花紋。以一隻黑白相間的斑馬為例,若只用全黑或全白的三角形去拚組牠,都不會有很好的效果。當然,若這些全黑或全白的三角形十分細小,那麼可以拚組出我們想要的圖,卻會造成運算量的大幅增加。最理想的辦法,是把斑馬全身上下的斑紋全部照像拍下來,然後再貼到我們用三角形拚組出來的馬身上,就可以做出逼真的斑馬了。這些照片,就是我們所稱的材質(Texture)。


使用材質最大的問題就出在於這些材質影像體積都不小,每次要繪圖時再存取相當耗時間,所以都儘可能存在繪圖卡上的記憶體中,以便隨時存取。以前繪圖卡上的記憶體不大,若是要使用的材質不在繪圖卡的記憶體中,就要想辦法把原先佔用繪圖卡記憶體中不重要的材質先移出去,清出空間來放現在要用的材質。這些搬過來移過去的動作,佔用了大量記憶體的頻寬,令繪圖效能大打折扣。為了處理這個問題,AGP(Accelerated Graphics Port)這個規格便誕生了。AGP可以讓繪圖晶片用很快的速度直接讀取系統記憶體上的材質,而不需要經由原來PCI的方式搬移材質,讓繪圖的速度變快。這個規格現在有了2x、4x、8x等等版本,一代比一代快。現今新的繪圖卡幾乎都支援AGP 8x,解決讀寫材質時的頻寬問題。


在記憶體便宜了以後,稍微好一點的繪圖卡都配有128MB其至更高的記憶體,從根本解決材質記憶體不夠的問題,對3D遊戲來說,實在是綽綽有餘了。


除了材質的移動外,繪圖晶片每畫一個點,都要到材質記憶體中存取對應的材質像素(Texel)。所以就算沒有材質搬來搬去,在繪圖的過程中,還是需要不斷地存取材質記憶體。解決的方法就是換用更好更快的記憶體,及加大記憶體的頻寬。有時同樣的繪圖晶片規格,卻有著相當大的價格差異時,多留意一下記憶體的規格,相信會有些線索。


《圖四 材質資料圖示》
《圖四 材質資料圖示》

繪圖晶片革命性功能 - 著色器

在Microsoft推出了DirectX 8.0以後,繪圖晶片可以說是跨入了另一個紀元。因為從那以後,繪圖晶片除了固定的繪圖管線(Rendering Pipeline)外,也可以用自訂的程式取代這些繪圖管線,做出以往很難達成的效果。這些自訂的程式,稱做著色器(Shader),請參考(圖五)。


《圖五 著色器與繪圖管線》
《圖五 著色器與繪圖管線》

著色器依其在繪圖管線的位置和功能,又分為頂點著色器(Vertex Shader)及像素著色器(Pixel Shader)。頂點著色器可以取代原先T&L部份的功能,影響3D物體的形狀、位置及顏色;而像素著色器則可以針對三角上的每個點做運算,改變每個點繪出的效果。這兩個技術已經廣泛的被運用,而且已經有遊戲的廠商使用這些技術設計遊戲特效,畫面效果亦遠比以往的遊戲更精緻;同樣的技術也已經應用在電影特效上,做出更逼真的特效片段。


因為繪圖晶片日新月異的強大功能,著色器也延伸出了另類的用法,反客為主地搶了CPU的工作,進行一些大量的數據分析運算,應用在天氣預報等等需要龐大複雜運算的事情上。


除了DirectX 8以外,3D繪圖介面的另一大老OpenGL也有對應的動作,推出了Vertex Program及Fragment Program分別對應DirectX的頂點著色器及像素著色器,收錄在1.5版的規格文件中。OpenGL在Fragment Program的要求較Pixel Shader來得高,於是支援DirectX 8 Pixel Shader的繪圖晶片未必支援OpenGL的Fragment Program。


在Vertex Program及Fragment Program之後,繪圖晶片的元老之一3DLabs又訂定了一套新的Shader語言,稱為GLSL(GL Shading Language)。本來要用在OpenGL 2.0上,但目前已經提前納入了1.5版的規格書中。GLSL的要求更高,幾乎可以把繪圖晶片拿來當CPU使用。目前除了3DLabs自家的頂級卡之外,還沒有發現有其他廠商支援。


展望未來

繪圖卡的未來並不難預見,因為很多規格已經是擺在眼前的事實,以下列舉幾項。


高階著色器

目前著色器的寫作語法,還是類似組合語言一般。但在nVidia提出的CG及3DLabs提出的GLSL等,都有偏向高階語言的趨勢。也就是說,將來我們可以用像C甚至C++的語言來寫作著色器。繪圖晶片的資源及功能也將更豐富,才能執行這樣高階的著色器。


PCI Express

AGP已經到了8x的規格,已經快到了極限的邊緣,而且一台主機只能有一個AGP更是麻煩。為了因應將來更廣泛的需求,更龐大的資料量,肯定需要一個更快的匯流排來承載這些資料。現今PC上的卡的界面,幾乎都是以PCI Bus來做溝通。大家也都很明白,PCI的頻寬已經不敷現在的要求,更別提將來更龐大的資料量。所以Intel提出了PCI Express做為將來的改善方向。


PCI Express在速度上有比AGP更大的發展潛力,也不需要在主機板上拉出密密麻麻的資料線,甚至連結的對象不必在同一張機板上。這表示以後繪圖晶片可能直接內建在顯示器上,而且可以連接超過一台以上的顯示器及繪圖晶片。同時這也代表了顯示器的廠商可以直接為繪圖晶片做最佳化,以後繪圖晶片的設定會更為簡單方便。


整合型繪圖晶片

許多的繪圖晶片是設計給獨立型的繪圖卡(Standalone Graphics Card),講求速度快,功能齊全,不太在乎耗電及高熱的問題。但辦公型及可攜式的電腦就不能這樣做,省電、省錢及低發熱都是重點問題;前面也提到繪圖晶片有著大量存取記憶體的需要,所以把繪圖晶片和控制記憶體的北橋晶片(North Bridge)做在一起,顯然是個不錯的主意。所以Intel、威盛、SiS、nVidia等等都推出了這樣的產品,既可以壓低成本,又能兼顧不錯的效能表現。


IA家電

Microsoft急於發展Xbox,入軍遊戲機的市場,引用了PC上成功的經驗來發展遊戲機,其中很重要一點就是使用和個人電腦相近的繪圖晶片。PC的遊戲市場早已不輸給電視遊樂器,功能更是有過之而無不及。但不能馬上開機就馬上玩這點,直到今天還是PC的痛。但PC的技術成熟也是無庸置疑的,所以把PC發展成功的部份移往家電,是可行的方式。遊戲機只是一個開始,筆者相信將來還會有內建繪圖晶片的數位電視,或3D圖型操作界面的冰箱、微波爐等等。


結語

繪圖晶片在電腦中是個異數,古早的電腦中並沒有它的存在,現在卻幾乎成了電腦的第二顆心臟。在其發展史中,有一點很特別地是沒有能常久獨佔市場的廠商出現,執牛耳的廠商一直不斷輪替或併購,其原因主要也是在於繪圖晶片發展的未來動向不好掌握,一個決策上的小失誤,就可能失去市場先機。


這兩年來情況有了改變,主要還是因為Microsoft介入,統合了軟體業者及相關規格,讓所有人有可以依循的方向,未來發展的方向不再難以捉摸。但繪圖晶片的應用方向和範圍已經展開了,以往在PC上的主戰場現在被分散到各個層面,成為另一個變數。跳出現有的範圍再想想,也許還有很多繪圖晶片的應用方向,是現今還沒想到的呢。


<作者為電子產業研發工程師>


延 伸 閱 讀
Shader技術提供了繪圖系統或遊戲廠商一個標準,按這樣的標準就可以設計出一個繪圖系
統的「機器語言」。在不同的繪圖卡上執行時,就不需要考慮相容的問題,也能更貼近硬體層面,徹
底的利用GPU的每一分效能
,相關介紹請見「繪圖晶片的指令集」一文。
從NVIDIA 所推出的一系列產品當中,我們可以知道其產品開發是根據應用產品的效能需求
來做相應的產品規劃,從傳統PC類產品所需的繪圖晶片開始,到以包含大量圖形處理運算的非PC類應
用產品,如Xbox等電視遊樂器所需的繪圖處理器(Graphic Processor Unit;簡稱為GPU)產品;透
過更完備的圖形處理功能的提升,來大幅增加產品本身的附加價值
,你可在「繪圖卡產業之概況」一文中得到進一步的介紹。
繪圖處理器GPU的技術性定義為:整合了轉換、光效、三角構圖與著色引擎的單晶片處理器
,每秒可處理高1千萬個多邊形。簡單地說,GPU改變了您在電腦上所見過或是經驗過的所有事物。這
篇文章帶讀者進入3D的幻想世界
,在「第二代繪圖處理器顛覆傳統3D效能」一文為你做了相關的評析。
相關組織網站
3DGPU的新聞網站
nVidia技術官方網站
Intel AGP技術網站
相關文章
NVIDIA人工智慧專家看2024年
AI助攻晶片製造
新興處理核心 定義未來運算新面貌
[新聞十日談]NVIDIA GTC 2021是科幻,還是未來世界?
AI運算平台為醫療儀器和設備帶來即時感測
comments powered by Disqus
相關討論
  相關新聞
» 美光針對用戶端和資料中心等市場 推出232層QLC NAND
» 摩爾斯微電子在台灣設立新辦公室 為進軍亞太寫下新里程碑
» 愛德萬測試與東麗簽訂Micro LED顯示屏製造戰略夥伴關係
» 格斯科技攜手生態系夥伴 推出油電轉純電示範車
» Arm:因應AI永無止盡的能源需求 推動資料中心工作負載


刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 遠播資訊股份有限公司版權所有 Powered by O3  v3.20.2048.18.118.184.237
地址:台北數位產業園區(digiBlock Taipei) 103台北市大同區承德路三段287-2號A棟204室
電話 (02)2585-5526 #0 轉接至總機 /  E-Mail: webmaster@ctimes.com.tw