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