從這節開始我們要回到顯示卡本身了,延續過去的慣例我會從最早的技術開始一路講到當代最新的產品,本篇所談的主要會是電腦開始能夠在平面上顯示立體圖形 (3D 繪圖技術) 開始發展以前的部分,這個時期的顯示卡主要分成純文字時期與 2D 圖形兩段,當時顯示卡的工作很單純,只是一套將電腦輸出的結果直接轉換成可以讓螢幕秀出文字或圖形的電路。
基本上這一段期間 (正好是整個 1980 年代) 可以先後分成三個時期:
- 顯示介面卡時期 (MDA、CGA、HGC、EGA)
這個時期裡顯示介面卡的用途很單純,唯一工作是用於將電腦計算的結果轉換成螢幕能讀懂的格式,本身幾乎不負責運算工作。 - 顯示子系統時期 (VGA 與各種相容品)
這個時期將前述的顯示介面卡直接整合建置到主機板中,同時顯示色彩的能力與解析度也都有所提升,這個顯示子系統在未來很長一段時間都成為電腦顯示的基礎。 - 2D 圖形加速卡時期 (IBM 8514/A 以後)
從這個時期開始顯示卡除了負責輸出與訊號轉換之外,本身也擔負了 2D 圖形演算的工作 (在以往這些事情是由 CPU 處理的),可以大幅分攤處理器要負擔的工作,因此連帶的也讓電腦整體的實際性能提高了。
MDA、CGA
發佈年代:1981 年
發佈公司:IBM
搭配系統:IBM PC (5150)
主要晶片:Motorola 6845 (MDA)、Motorola MC6845 (CGA)
MDA 是個人電腦歷史上第一張獨立顯示卡,在 1981 年隨 IBM PC (Model 5150,上圖這台就是第一台以「個人電腦」名義推出的民用電腦主機) 一同推出,全名則是 Monochrome Display Adapter,翻成中文是單色顯示介面卡的意思。
MDA 本身內建有 4 KB 的顯示記憶體,主要奠基於 Motorola 6845 CRT 控制器晶片,除此之外,比較特別的是當時的顯示卡居然是跟印表機介面做在同一張卡上的 (右下角比較大的接頭),此外,由名稱可以很容易的了解到 MDA 只能顯示黑白畫面 (嚴格說起來是 25 行 80 字元的黑底綠字,理論解析度則是 720×350,如下圖),而且由於 MDA 本身沒有能力進行像素定址與繪圖,因此也無法顯示任何圖形。
也許看了上圖之後,你會想問這個問題:如果 MDA 不支援顯示圖形,那上圖中的 IBM 標誌與框線要怎麼顯示出來?實際上 MDA 可以顯示的「字」有下面這些,上圖中的框線和 IBM 標誌都是用「符號字元」拼湊出來的 (Codepage 437)。
上面這些字型很眼熟吧?沒錯,這些字型從 MCA 開始就一路往下傳承,後續的所有顯示介面與子系統 (不論是 CGA、EGA、VGA、XGA) 內部都建有這套字型,用於在開機過程中未載入任何內容時用來顯示文字之用 (例如 UEFI 時代以前的 BIOS 與 POST 畫面大抵上都是這套字型,還有純 DOS 系統下的畫面也是,因此又被稱為 OEM 字型與 Extended ASCII)。
與 MDA 與 IBM PC 一同在 1981 年推出的還有全名為 IBM Color/Graphics Monitor Adapter (彩色圖形顯示器介面卡) 的 CGA,顧名思義這是一張可以顯示彩色畫面的顯示卡,解析度最高可以達到 640×200 (此時僅能顯示兩種顏色) 或 320×200 (此時僅能顯示四種顏色),在延伸圖形模式 EGM 下則可以顯示 160×100 16 色的畫面 (如下圖),同時也保留了與 MDA 相似的純文字模式,具備的顯示記憶體則提高為 16 KB。
不過 CGA 有個問題在於能處理的解析度比起 MDA 來得差,因此在顯示純文字畫面的時候 MDA 顯示的文字品質較佳,所以在當年選購電腦時,挑選搭配顯示卡的依據除了價格之外還有「使用純文字的時間佔多數」還是「使用圖形化面的時間佔多數」這一因素。
CGA 與 MDA 使用的螢幕接頭基本上都是採九針腳 D-Sub 接頭,其中第 3、4、5 針用於顯示紅藍綠 RGB 三原色,僅在 CGA 上使用,而第 7 針則是被 MDA 用於顯示影像之用。
Hercules Graphics Card
發佈年代:1982 年
發佈公司:Hercules Computer Technology, Inc.
搭配系統:IBM PC (5150)
主要晶片:Motorola 6845
發佈於 MDA 推出後一年的海克力斯圖形卡應該算是台灣開始有個人電腦之後第一款被廣泛運用的顯示卡吧?這張卡與 MDA 很像,要說它是以 MDA 為基礎開發出來的產品也不為過,與 MDA 一樣是單色顯示卡,但 HGC 卻有著類似 CGA 般,能夠繪製圖形與像素定址的能力,名稱中的 Graphics 基本上也是這麼來的。
HGC 這張顯示卡能夠支援的原生解析度為 720×348,比起 CGA 甚至是後來的 EGA 都還要來得高,也因此很適合在台灣發展的中文系統中使用 (拐個彎把寬度調回標準的 640 之後就可以把高增加到 408 用來容納中文輸入法需要的空間了)。
不過儘管 Hercules Graphics Card 這張卡把單色顯示發揮到非常完整,但往彩色顯示發展可以說是必然的趨勢,因此很快在 IBM 推出後續的 EGA、VGA 之後,Hercules Graphics Card 就被淘汰了,這家公司也因為在彩色顯示時代中推出的產品表現差強人意 (後來的 Hercules InColor Card 特性與 EGA 還蠻相似的) 而最終被 ELSA 收購。
EGA
發佈年代:1984 年
發佈公司:IBM
搭配系統:IBM PC (5150)、IBM PC/AT (5170)
主要晶片:Motorola 6845
EGA 的全名是 Enhanced Graphics Adapter (增強圖形介面卡),從名稱上不難看出這是 CGA 的後繼產品 (順便也取代了 MDA 與 HGC),在 1984 年隨 IBM 的第二代個人電腦系統 PC/AT 推出,具備 256 KB 的顯示記憶體。
EGA 的色彩顯示方面比起 CGA 來說可以說是強了不少,能夠支援的顏色有 64 種,最高可以在 640×350 解析度下同時正常顯示其中的 16 種顏色,在這樣的狀況下彩色畫面終於看起來有那麼點像回事了 (上圖與下圖分別是 EGA 模式下執行的遊戲與 Windows 1.01)。
在顯示器介面方面,EGA 使用的仍然是與 CGA、MDA 相同的 9 針腳 D-Sub 接頭,不過接腳定義則有所改變,第 2 ~ 7 針腳全部用於顯示色彩 (RGB 各 2 針),第 8 ~ 9 針腳則用於水平與垂直同步訊號。
Table of Contents
VGA、MCGA
發佈年代:1987 年
發佈公司:IBM
搭配系統:IBM PS/2
接下來就是大名鼎鼎的 VGA (Video Graphics Array) 了,在 1987 年隨著 IBM PS/2 電腦推出 (是的沒錯,又是 PS/2!),基本上可以視為 EGA 的後繼者,但在這裡要特別強調,VGA 並不是一款顯示卡,名稱中的 A 是 Array 而不是 Adapter,實際上 VGA 是一整套標準,涵蓋了硬體、解析度、輸出介面三者,硬體的部分在 IBM PS/2 (僅有高階款的 PS/2 支援 VGA) 上最初的產品也不是一張獨立的介面卡 (儘管後來確實有為早期舊款的 PS/2 推出 VGA 升級卡,如下圖),而是直接做在主機板上的一塊晶片。
最初 VGA 內建了 256 KB 的顯示記憶體,在標準狀況下主要提供對兩種解析度模式的支援,針對 640×480 (這解析度很眼熟吧?其實直到 UEFI 時代之前,電腦的開機畫面都還是這個解析度,因為那時候沒載入顯示卡的驅動程式) 可以支援 16 色、針對 320×200 解析度則可以支援 256 色 (總色域增加為 262,144 色,一次可以從中挑選 256 色顯示),而設計上的極限解析度則是 16 色 800×600 @ 70 Hz。
VGA 的彩色顯示功能相較於 EGA 又有了挺明顯的強化,彩色遊戲畫面的品質明顯比以往高出許多,2D 遊戲差不多就是在這個時期開始有大幅度進展的。
至於 MCGA (Multi-Color Graphics Array) 則是與 VGA 同期推出的技術,基本上可以視為增強版的 CGA,由於成本與價格較低,因此推出時主要是作為 VGA 以下的低階入門產品發佈,MCGA 內建的顯示記憶體僅有 64 KB,僅出現於 Model 25 與 Model 30 的 IBM PS/2 上,支援 CGA 的所有模式但無法與 EGA 的專有模式相容,雖然如同 VGA 一般加入了對 640×480 @ 60 Hz 解析度的支援但卻只支援單色模式,至於對 320×200 解析度的支援則與 VGA 一樣可以支援到 256 色。
至於顯示器介面方面 VGA 與 MCGA 所引入的新介面就是上節曾經介紹過,也為大家所熟知的 VGA (D-Sub 15 針)。
IBM Image Adapter/A
發佈年代:1987 年
發佈公司:IBM
搭配系統:IBM PS/2
這款產品比較廣為人知的名字是 IBM 8514,基本上是作為 PS/2 系統的選用升級配件發佈。值得注意的是,IBM 8514 並非僅是內建 VGA 影像子系統的顯示記憶體擴充卡,實際上 IBM 8514 本身具備了輔助運算的能力 (但 IBM 8514 僅能增強 VGA 影像子系統的功能而無法完全獨立運作),因此 IBM 8514 經常被視為是第一張進入個人電腦領域的 2D 圖形加速卡 (在此之前基本上 2D 圖形加速是工作站在玩的,價格極為昂貴),不過仍然與工作站使用的圖形協同處理器在功能上有一段差距 (IBM 8514 並非可程式化的加速系統)。
內建有 512 KB 顯示記憶體的 IBM 8514 的輸出能力比起 VGA 來說確實提高了不少,16 色顯示模式下的最高輸出解析度從 VGA 的 640×480 一舉提升到了 1024×768,而在安裝擴充記憶體模組 (可以提供額外 512 KB 的顯示記憶體) 之後,即使是在 1024×768 @ 43.5 Hz 解析度下仍然可以同時顯示 256 種顏色 (總色域仍然是 262,144 種顏色)。
由於上市時價格高達 1,300 美金 (還沒算上顯示記憶體擴充子卡呢,別忘了還得搭配好的螢幕才能發揮功能,當時 IBM 也推出了一款同樣名為 8514 的 CRT 螢幕,如上圖,光這螢幕就要價 1,550 美金) 加上只能搭配 MCA 介面使用,而不支援當時已蔚為主流的 ISA 介面等因素的影響,整體來說 IBM 8514 的銷售情況並不成功,但 IBM 8514 可以說是後來蓬勃發展的 2D 圖形加速卡市場的開山鼻祖。
XGA
發佈年代:1990 年
發佈公司:IBM
搭配系統:IBM PS/2
約莫在其他廠商開始製作 8514/A 相容卡時,IBM 又推出了 XGA (Extended Graphics Array),基本上最初的 XGA 可以被視為原本的 VGA 子系統的延伸 (在架構上也向下相容 VGA),主要是加上了 8514/A 所能提供的功能,初期同樣採用內建晶片的方式安裝於 IBM PS/2 Model 90 與 90XP 中,之後也依循與 MCGA 升級 VGA 相仿的作法推出了 IBM PS/2 XGA Display Adapter/A 可將舊款 PS/2 電腦升級為 XGA 等級。
XGA 的輸出能力比起 8514/A 又高出了不少,在安裝了顯示記憶體擴充子卡之後的 XGA 能夠在 1024×768 解析度下同時顯示高達 256 種顏色,在標準 VGA 解析度 (640×480) 下甚至可以同時顯示高達 65,536 種色彩。
值得注意的是,在 VGA 之後由於相容卡數量眾多,加上各種 IBM 相容 PC 的採用,VGA 顯示系統標準幾乎已經成為開放規範,而 XGA 則是 IBM 最後一次嘗試訂定自家的顯示系統標準,不過理所當然是失敗了,最後 XGA 只被認為是 Super VGA (VGA 的延伸) 中的一支。
基本上 XGA 升級卡的價格仍然相當昂貴,包含 512 KB 顯示記憶體的基本版就要價高達 1,100 美元,能提供額外 512 KB 顯示記憶體的擴充子卡也要價高達 350 美元,而且一開始還只支援 IBM 自家的 MCA 通道而無法搭配主流的 ISA 使用,除此之外還刻意不支援 800×600 這個常用解析度,直接跳到 1024×768 (當時 IBM 還很豪氣的表示因為 800×600 這解析度有其他人做了所以不需要我們出手),因此最後在消費市場上也是失敗收場。
IBM 後續在 1992 年推出的增強版 XGA-2 (內建顯示記憶體增加為 1 MB 並補上了在 800×600 解析度之下的 65,536 色彩顯示支援與 1024×768 @ 75 Hz 的支援,且大幅降價到 400 美金以下) 也未能挽回頹勢,於是在 XGA 之後 IBM 就沒有再自行設計顯示系統標準了,之後也在 1992 年推出了基於 SVGA 的圖形介面卡,此後 IBM 基本上也不再繼續生產與設計自家的個人電腦用顯示介面卡,轉為選擇搭載第三方廠商設計製造的顯示卡為主。
至於在顯示介面方面,由於 XGA 基本上可以大略視為 VGA 子系統 + 2D 圖形加速卡的結合,因此在顯示輸出的部分仍然維持 VGA 的設計,也就是 15 針的 D-Sub 接頭。
接下來的故事……1990 年代
1990 年代是個人電腦發展極為快速的十年,從 Windows 3.0 以上版本開始 Windows 系統逐漸獲得市場的青睞,越來越高的市場佔有率使得硬體開發商們開始意識到可以特別針對 Windows 強化顯示加速性能,這比起強化通用圖形加速晶片來得簡單又低成本得多。
而且在此時微軟又正巧在 Windows 系統內加入了通用繪圖 API 層,也就是名為 GDI 的圖形裝置介面 (Graphics Device Interface),解決了過去由於各家顯示介面 I/O 埠設計可能不同而衍生的許多問題 (原理上很簡單,就是在程式與硬體設備之間插入一層正好介於使用者層與系統核心層之間的 GDI 層,各家廠商就可以自行針對自家硬體來開發專屬驅動程式,並將其作為硬體與 GDI 層之間的溝通橋樑),因此從 1990 年代開始,基本上通用的圖形介面規格就停滯在以 VGA 為基礎而延伸而來的 Super VGA,而廠商的主要發展目標改為針對 Windows GDI 設計專用的 2D 圖形加速器。
由於開發難度相對而言比較簡單,很快的這些專門針對 Windows 而設計的加速器在性能上就超越以往所有的通用圖形加速器了,而且更重要的是,成本相較於那些天價級別的通用圖形加速器來說可說是超級便宜,關於 1990 年代所發生的事情,我將在下一節繼續介紹。