現(xiàn)代圖形處理器的發(fā)展始于1995年推出第一款3D附加卡,隨后廣泛應用于32位操作系統(tǒng)和價格合理的個人計算機。
在此之前存在的圖形卡行業(yè)主要由普通的2D非PC架構組成,圖形卡以其芯片的字母數(shù)字命名約定和巨大的價格標簽而聞名。3D游戲和虛擬化PC圖形最終融合了各種來源,如街機和控制臺游戲、軍事、機器人、太空模擬器以及醫(yī)學成像。
早期的消費級3D圖形卡是一個相互競爭的“狂野西部”。從如何實現(xiàn)硬件,到使用不同的渲染技術及其應用程序和數(shù)據(jù)接口,甚至夸張的命名。早期的圖形卡系統(tǒng)采用了固定的函數(shù)流水線(FFP),這是一種遵循非常嚴格的處理路徑的體系架構,它使用了幾乎與3D芯片制造商一樣多的圖形卡API。
雖然3D圖形卡將一個相當沉悶的PC行業(yè)變成了一場光彩奪目的表演,但它們的存在歸功于幾代人的創(chuàng)新努力。本文深入研究了GPU的歷史。從3D消費者圖形卡的早期發(fā)展到3Dfx Voodoo游戲改變者,世紀之交的行業(yè)整合以及當今的現(xiàn)代GPGPU。
消費級3D圖形卡的早期發(fā)展(1976-1995)
第一個真正的3D圖形卡始于早期的顯示控制器,即視頻移位器和視頻地址生成器。它們充當主處理器和顯示器之間的直通通道。輸入的數(shù)據(jù)流被轉換為串行位圖視頻輸出,例如亮度、顏色以及垂直和水平復合同步,這使像素行保持在顯示生成中,并同步每條連續(xù)行以及消隱間隔(時間間隔為結束一條掃描線并開始下一條掃描線)。
1970年代后半期出現(xiàn)了一系列設計,為我們所熟知的3D圖形卡奠定了基礎。例如,RCA的1976年“Pixie”視頻芯片(CDP1861)能夠輸出62x128分辨率或不適用于RCA Studio II控制臺的64x32的NTSC兼容視頻信號。
一年后,電視芯片之后是電視接口適配器(TIA)1A,該適配器已集成到Atari 2600中(圖一),用于生成屏幕顯示、聲音效果和讀取輸入控制器。TIA的開發(fā)由杰伊·邁納(Jay Miner)主導,他后來還主導了Commodore Amiga計算機的定制芯片設計。
圖一:1977年9月發(fā)布的Atari 2600
1978年,摩托羅拉推出了MC6845視頻地址發(fā)生器。這成為1981年IBM PC的單色(圖二)和彩色顯示適配器(MDA / CDA)卡的基礎,并且為Apple II提供了相同的功能。摩托羅拉于同年晚些時候添加了MC6847視頻顯示生成器,并將其引入了許多第一代個人計算機,包括Tandy TRS-80。
圖二:IBM PC 的單色顯示適配器
Commodore的MOS Tech子公司VIC的類似解決方案為1980-83老式Commodore家用電腦提供圖形卡輸出。
次年11月,LSI的ANTIC(字母數(shù)字電視接口控制器)和CTIA/GTIA協(xié)處理器(彩色或圖形電視接口適配器)在Atari 400中首次亮相。ANTIC使用直接內存訪問(DMA)處理2D 顯示指令。像大多數(shù)視頻協(xié)處理器一樣,它可以生成運動場圖形(背景、標題屏幕、得分顯示),而CTIA生成顏色和可移動對象。雅馬哈和德州儀器(TI)向各種早期的家用計算機供應商提供了類似的IC。
圖形卡演變的下一步主要是在專業(yè)領域
英特爾使用他們的82720圖形卡芯片作為1000美元的iSBX 275視頻圖形控制器多模式板的基礎。它能夠以256x256的分辨率(或512x512的單色)顯示八種顏色數(shù)據(jù)。它的32KB顯示內存足以繪制直線、圓弧、圓、矩形和字符位圖。該芯片還具有縮放、屏幕分區(qū)和滾動功能。
SGI很快推出了GR1.x圖形板,用于IRIS Graphics 工作站,提供了用于顏色選項,幾何圖形卡,Z緩沖區(qū)和覆蓋/底層的單獨的外接(子)板。
在當時,工業(yè)和軍用3D虛擬化相對發(fā)達。IBM、通用電氣和Martin Marietta(1992年收購通用電氣的航空航天部門),以及大量的軍事承包商、技術機構和美國國家航空航天局(NASA),開展了各種需要軍事和太空模擬技術的項目。1951年,美國海軍還使用麻省理工學院Whirlwind計算機的3D虛擬化技術開發(fā)了一種飛行模擬器。
除了國防承包商以外,還有一些公司用專業(yè)圖形卡跨越軍事市場。
Evans&Sutherland將提供Freedom和REALimage等專業(yè)顯卡系列,還為CT5飛行模擬器提供了圖形卡,該飛行模擬器是由DEC PDP-11大型機驅動的軟件包,價值2000萬美元。該公司的聯(lián)合創(chuàng)始人伊凡·薩瑟蘭(Ivan Sutherland)于1961年開發(fā)了一個名為Sketchpad的計算機程序,該程序可以使用光筆繪制幾何形狀并在CRT上實時顯示。
這是現(xiàn)代圖形卡用戶界面(GUI)的起源。
在個人計算機領域中,Chips and Technologies的82C43x系列EGA(擴展圖形卡適配器)為IBM適配器提供了競爭力,并且可以在1985年左右安裝在許多PC / AT克隆中。這一年Commodore Amiga也安裝了OCS芯片組。該芯片組由三個主要組件芯片組成,包括Agnus,Denise和Paula,它們不依賴CPU,允許一定數(shù)量的圖形卡和音頻計算。
1985年8月,三名香港移民Kwok Yuan Ho、Lee Lau和Benny Lau在加拿大成立了Array TechnologyInc。目前,公司名稱已更改為ATI TechnologiesInc。
次年,ATI推出了他們的第一款產品,即OEM顏色仿真卡。它用于通過9針DE-9連接器將黑色背景的單色綠色、琥珀色或白色磷光體文本輸出到TTL監(jiān)視器。該卡至少配備了16KB的內存,在ATI公司運營的第一年銷售額就占了ATI 1000萬加元的很大一部分。
這主要是通過一份每周向Commodore Computers供應約7000個芯片來完成的。
彩色監(jiān)視器的出現(xiàn)和眾多競爭對手之間缺乏標準最終導致了視頻電子標準協(xié)會(VESA)的成立,ATI是該協(xié)會的創(chuàng)始成員,此外還有NEC和其他六個圖形卡適配器制造商。
1987年,ATI在OEM產品線中增加了Graphics Solution Plus系列,該系列將IBM PC / XT ISA 8位總線用于基于Intel 8086/8088的IBM PC。該芯片通過DIP開關支持MDA、CGA和EGA圖形卡模式。它基本上是Plantronics Colorplus板的克隆,但有64kb的內存空間。1987年發(fā)布的Paradise Systems的PEGA1、1a和2a(256kB)也是Plantronics的克隆產品。
EGA Wonder 1-4系列于3月上市,售價399美元,具有256KB的DRAM和高達 640x350、16色的CGA、EGA和MDA仿真的兼容性。擴展EGA可用于2、3、4系列。
高端的是EGA Wonder 800(圖三),它具有16色VGA仿真和800x600分辨率支持,以及VGA改進性能(VIP)卡,它基本上是一個EGA Wonder,添加了數(shù)模(DAC)以提供有限的VGA兼容性。后者的價格為449美元,外加Compaq擴展模塊的99美元。
圖三:ATI EGA 800:16 色 VGA 仿真,支持 800x600
并非只有ATI帶動了消費者對個人計算需求的浪潮。
那年有許多新公司和產品問世。其中包括Trident、SiS、Tamerack、Realtek、Oak Technology、LSI的G-2 Inc.、Hualon、Cornerstone Imaging和Winbond都成立于1986-87年。與此同時,AMD、西部數(shù)據(jù)/天堂系統(tǒng)、Intergraph、Cirrus Logic、Texas Instruments、Gemini和Genoa等公司將在此期間生產首批圖形卡產品。
在接下來的幾年中,ATI的Wonder系列的更新速度也十分驚人。
1988年,帶有游戲控制器端口和復合輸出選項的Small Wonder圖形解決方案面世(用于CGA和MDA仿真),以及具有擴展EGA和16位VGA支持的EGA Wonder 480和800+,且VGA Wonder和Wonder 16添加了VGA和SVGA的支持。
Wonder 16配備256KB內存,零售價為499美元,而512KB版本售價為699美元。
更新的VGA Wonder/Wonder 16系列于1989年問世,包括降低成本的VGA Edge 16(Wonder1024系列)。新功能包括總線鼠標端口和對VESA功能連接器的支持。這是一個類似于縮短的數(shù)據(jù)總線插槽連接器的金手指連接器,它通過帶狀電纜連接到另一個視頻控制器以繞過擁塞的數(shù)據(jù)總線。
1991年,Wonder系列繼續(xù)快速更新。Wonder XL卡增加了VESA 32K顏色兼容性和 Sierra RAMDAC,將最大顯示分辨率提高到640x480@72Hz或800x600@60Hz。1MB RAM選項的價格范圍為249美元(256KB)、349美元(512KB)和399美元。還提供了基于前一年的Basic-16的低成本版本,稱為VGA充電器。
Mach系列于同年5月與Mach8一同推出。它以芯片或電路板的形式出售,允許通過編程接口(AI)卸載有限的2D繪圖操作,例如線條畫、顏色填充和位圖組合(Bit BLIT)。ATI添加了Wonder的一種變體XL在擴展PCB上集成了Creative Sound Blaster 1.5芯片。它被稱為VGA Stereo-F / X,它能夠模擬Sound Blaster單聲道文件中的立體聲,并且其質量接近FM廣播質量。
圖四:ATI Graphics Ultra ISA (Mach8 + VGA)
ATI VGAWonder GT之類的圖形卡板提供了2D + 3D選項,將Mach8與VGA Wonder +的圖形卡核心(28800-2)結合在一起以實現(xiàn)其3D功能。Wonder和Mach8推動ATI在這一年度實現(xiàn)了1億加元的銷售里程碑,這主要是由于Windows 3.0的采用以及可用于該平臺的2D工作量的增加。
S3 Graphics成立于1989年初,并在18個月后生產了其首個2D加速器芯片和一個圖形卡,即S3 911(或86C911)。后者的主要規(guī)格包括1MB的VRAM和16位色彩支持。
同年,S3 911被924所取代-基本上是24位色的911修訂版-次年又更新了928,增加了32位色,以及801和805加速器。801使用ISA接口,而805使用VLB。從911的問世到3D加速器的問世,市場上充斥著基于S3原始設計的2D GUI設計-特別是來自Tseng實驗室、Cirrus Logic、Trident、IIT、ATI的Mach32和Matrox的MAGIC RGB。
1992年1月,Silicon Graphics Inc(SGI)發(fā)布了OpenGL 1.0,這是一個針對2D和3D圖形卡的多平臺供應商不可知的應用程序編程接口(API)。
OpenGL從SGI的專有API演變而來,稱為IRIS GL(集成光柵成像系統(tǒng)圖形庫)。這是一項保留IRIS的非圖形功能并允許API在非SGI系統(tǒng)上運行的舉措,因為競爭對手的供應商開始以自己的專有API出現(xiàn)。
最初,OpenGL是針對基于UNIX的專業(yè)市場,但由于對擴展實現(xiàn)的開發(fā)人員友好支持,它很快被3D游戲采用。
微軟正在開發(fā)自己的競爭對手Direct3D API,并沒有確保OpenGL在Windows下也能正常運行。
幾年后,ID軟件公司的約翰·卡馬克(John Carmack)(之前發(fā)布的《毀滅戰(zhàn)士》(Doom)徹底改變了個人電腦游戲),將Quake移植到Windows上使用OpenGL并公開指責Direct3D時,事情出現(xiàn)了轉折。
圖五 快進:1997年發(fā)布的GLQuake與原始Quake
由于微軟拒絕在Windows 95上使用OpenGL的迷你客戶端驅動程序(MCD)的許可,微軟的頑固性增加,這將使供應商能夠選擇哪些功能可以使用硬件加速。SGI通過開發(fā)可安裝客戶端驅動程序(ICD)進行了答復,該功能不僅提供了相同的功能,而且做得更好,MCD僅覆蓋光柵化并且ICD添加了照明和變換功能(T&L)。
在OpenGL的興起,即最初在工作站領域引起關注期間,Microsoft忙于通過其專有API進行設計的新興游戲市場。他們于1995年2月收購了RenderMorphics,其Reality Lab API受到開發(fā)人員的青睞,并成為Direct3D的核心。
大約在同一時間,3dfx的Brian Hook正在編寫Glide API,該API將成為游戲的主要API。部分原因是微軟參與了Talisman項目(基于圖塊的渲染生態(tài)系統(tǒng)),該項目稀釋了DirectX的資源。
隨著Windows的普及,D3D變得廣泛可用,專有API諸如S3d(S3),Matrox Simple Interface,Creative圖形卡庫,C Interface(ATI),SGL(PowerVR),NVLIB(Nvidia),RRedline(Rendition)和Glide,開始受到開發(fā)人員的青睞。
將其中一些專有的API與電路板制造商結盟,以增加添加到快速擴展的功能列表的壓力越來越大,這無濟于事。需要更高的屏幕分辨率,增加的色彩深度(從16位增加到24位,然后是32位)以及圖形質量增強(例如抗鋸齒)。所有這些功能都要求增加帶寬,圖形卡效率和更快的產品周期。
到1993年,市場動蕩已經迫使許多圖形卡公司退出業(yè)務,或被競爭對手收購。
1993年迎來了一系列新的圖形卡競爭者,其中最著名的就是英偉達(Nvidia),該公司于當年1月由黃仁勛,Curtis Priem和Chris Malachowsky創(chuàng)立。Huang以前是LSI的核心軟件總監(jiān),而Priem和Malachowsky都來自Sun Microsystems,他們之前曾開發(fā)過基于SunSPARC的GX圖形卡架構。
此后不久,Dynamic Pictures,ARK Logic和Rendition也加入了英偉達。
市場動蕩已經迫使許多圖形卡公司退出業(yè)務,或被競爭對手收購。其中包括Tamerack,Gemini Technology,Genoa Systems,Hualon,Headland Technology(由SPEA收購),Acer,Motorola和Acumos(被Cirrus Logic收購)。
而ATI不斷發(fā)展壯大。
作為All-In-Wonder系列的先驅,ATI發(fā)布了在Video-It中首次亮相的68890 PC TV解碼芯片!借助板載Intel i750PD VCP(視頻壓縮處理器),該芯片能夠以320x240@15 fps或160x120 @ 30 fps捕獲視頻,并能夠實時壓縮/解壓縮。它還能夠通過數(shù)據(jù)總線與圖形卡板通信,從而無需使用加密狗或端口和帶狀電纜。
5個月后的3月,ATI推出了一款64位加速器——Mach64。
在激烈的市場競爭中,ATI虧損了270萬加元。競爭對手的主板包括許多主板供應商選擇的S3 Vision 968(圖六),它被許多主板供應商采用,以及Trio64,后者從戴爾(Dimension XPS),康柏(Presario 7170/7180),AT&T(Globalyst),惠普(Vectra VE 4)簽訂了OEM合同)和DEC(文丘里斯/ Celebris)。
圖六:Vision 968:S3 的第一款動態(tài)視頻加速器
Mach64(圖七)于1995年發(fā)布,創(chuàng)造了許多著名的首創(chuàng)。它成為第一個以Xclaim形式用于PC和Mac計算機上使用的圖形卡適配器,并且與S3的Trio一起提供了全動態(tài)視頻播放加速功能。
Mach64還迎來了ATI的第一款專業(yè)顯卡,即3D Pro Turbo和3D Pro Turbo + PC2TV,2MB選件售價599美元,4MB售價899美元。
圖七:ATI Mach64 VT 支持電視調諧器
接下來的一個月,一家名為3DLabs的技術初創(chuàng)公司嶄露頭角,該公司誕生于杜邦的Pixel圖形卡部門從其母公司手中收購了子公司,以及能夠進行OpenGL渲染、片段處理和光柵化的GLINT 300SX處理器。由于價格高昂,該公司的卡最初是針對專業(yè)市場的。富士通 Sapphire2SX 4MB的零售價為1600至2000美元,而8MB的ELSA GLoria 8為2600 至2850美元。然而,300SX是為游戲市場設計的。
1995年的游戲GLINT 300SX減少了2MB的內存。它為紋理和Z緩沖區(qū)使用了1MB,為幀緩沖區(qū)使用了1MB,但是還提供了一個選項來增加VRAM的Direct3D兼容性,較基本價格增加50美元。該卡未能在擁擠的市場中取得進展,但是3DLabs已經在Permedia系列的后續(xù)產品上進行開發(fā)。
S3當時似乎無處不在。該公司的Trio64芯片組主導了高端OEM廠商,該芯片組將DAC,圖形卡控制器和時鐘合成器集成到單個芯片中。他們還利用了統(tǒng)一的幀緩沖器和受支持的硬件視頻覆蓋(圖形卡存儲器的專用部分,用于根據(jù)應用程序的需要渲染視頻)。Trio64及其32位內存總線兄弟產品Trio32可作為OEM單元和獨立卡,從Diamond、ELSA、Sparkle、STB、Orchid、Hercules和Number Nine等供應商處獲得。Diamond Multimedia 的價格從基于ViRGE的卡的169美元到基于Trio64+的具有4MB VRAM的Diamond Stealth64視頻的569美元不等。
市場的主流終端還包括Trident的產品,Trident是一家長期提供簡潔2D圖形卡適配器的OEM供應商,最近又將9680芯片添加到其產品陣容中。該芯片擁有Trio64的大部分功能,主板的價格一般在170-200美元左右。他們在該支架中提供了可接受的3D性能,并具有良好的視頻播放功能。
主流市場上的其他新人包括Weitek的Power Player 9130和Alliance Semiconductor的ProMotion 6410(通常被視為Alaris Matinee或FIS的OptiViewPro)。兩者都提供了出色的縮放速度和CPU速度,而后者則將強大的縮放引擎與防阻塞電路相結合以獲得流暢的視頻播放,這比ATI Mach64,Matrox MGA 2064W和S3 Vision968等以前的芯片要好得多。
英偉達在5月推出了他們的第一款圖形芯片NV1(圖八),并成為第一款能夠進行3D渲染、視頻加速和集成GUI加速的商用圖形處理器。
圖八:英偉達的第一款圖形芯片NV1
他們與意法半導體(ST Microelectronic)合作,以其500nm工藝生產該芯片,后者還推廣了該芯片的STG2000版本。盡管這不是一個巨大的成功,但它確實代表了該公司的首次財務回報。對于英偉達而言不幸的是,就在9月份第一批供應商主板開始發(fā)售(特別是Diamond Edge 3D)時,Microsoft最終確定并發(fā)布了DirectX 1.0。
D3D圖形卡API確認它依賴于渲染三角形多邊形,而NV1則使用四邊形紋理映射。通過驅動程序添加了有限的D3D兼容性,以將三角形包裝為二次曲面,但缺乏對NV1量身定制的游戲,注定了這張卡成為各行各業(yè)的杰作,無所不能。
大多數(shù)游戲都是從世嘉土星移植的。帶有集成圖形端口的4MB NV1(每個擴展支架通過帶狀電纜連接到插卡兩個)在1995年9月的零售價約為450美元。
微軟的最新改動和DirectX SDK的發(fā)布使主板制造商無法直接訪問用于數(shù)字視頻播放的硬件。這意味著幾乎所有獨立顯卡在Windows 95中都存在功能問題。相比之下,來自各種公司的Win 3.1下的驅動程序通常都沒有問題。
它的第一次公開演示是在次年5月洛杉磯舉行的E3電子游戲大會上。該卡本身在一個月后可用。3D Rage將Mach64的2D核心與3D功能合并在一起。1995年11月,ATI宣布了他們的首個3D加速器芯片3D Rage(也稱為Mach 64 GT)。
對DirectX規(guī)范的最新修訂意味著3D Rage與許多使用該API的游戲存在兼容性問題——主要是缺乏深度緩沖。使用板載2MB EDO RAM幀緩沖區(qū)時,3D模態(tài)限制為640x480x16位或400x300x32位。在600x480上嘗試32位顏色通常會導致屏幕上的顏色損壞,并且2D分辨率達到1280x1024的峰值。如果游戲性能中等,則全屏MPEG播放功能至少可以平衡功能集。
ATI重新設計了芯片,并于9月發(fā)布了Rage II。除了增加了MPEG2播放支持外,它還糾正了第一款芯片的D3DX問題。然而,初始卡仍配備2MB的內存,影響性能并影響了透視/幾何轉換。隨著系列的擴展,包括Rage II + DVD和3D Xpression +,內存容量選項增加到8MB。
雖然 ATI 率先將3D圖形解決方案推向市場,但沒過多久,其他對3D實施有不同想法的競爭對手就出現(xiàn)了。即3dfx、Rendition和VideoLogic。
在向市場發(fā)布新產品的競賽中,3Dfx Interactive贏得了Rendition和VideoLogic的青睞。然而,性能競賽在開始之前就結束了,3Dfx Voodoo Graphics有效地消滅了所有競爭。