在談過主機板的大部分解與各時代曾經稱霸一時的各類大小板型之後,主機板的鳥瞰介紹就到此告一段落,接下來我打算進入細部介紹的部分,從本節主要討論的擴充卡介面開始依序介紹主機板上的一些大大小小的元件。
Table of Contents
擴充介面卡的前世今生
延續上一節曾經談過的主機板板型標準,當年在 AT 與 Baby AT 時代中前期的時候,主機板本身其實是沒有 I/O 背板設計的,當時的主機板在蓋起機殼之後是不會有任何部份外露的 (如下圖中的 IBM PC/AT),所有的外部 I/O 介面其實都是由介面卡提供 (當時還不被稱為擴充介面卡,因為這些介面卡都很基本,例如滑鼠或鍵盤的連接埠之類的,這些都是必須的零組件,因此並不被視為額外的擴充,英文上稱之為 Interface Card)。
之後的主機板會把一些必備的外接界面做在緊貼機殼開口的位置使其直接外露,以節省主機板上的空間,而後來 IBM PS/1 更直接在機殼上規定了一個長方形的開口讓主機板能夠把對外的 I/O 介面全部集中設計於此 (而 ATX 標準則把這個區域改成較高但較短的長方形,以更加節省主機板的空間),從此主機板與晶片組 (南橋的部分) 廠商就開始逐步將許多使用上必備的界面 (例如滑鼠、鍵盤、印表機,後來還有 USB 等) 直接整合到主機板上而不再像古早時期那樣以可抽換的介面卡這樣的形式提供。
從此之後介面卡主要用於「額外擴充功能」的用途,例如顯示卡提供強大的 2D/3D 圖形輸出能力、網路卡提供較主機板內建晶片更強大或更多元的網路功能等,因此我們通常將這類介面卡稱之為擴充介面卡 (Expansion Card)。
歷代匯流排介面與擴充卡插槽種類介紹 (上)
歷史上曾經廣泛成為標準的擴充卡介面大致上有 ISA、PCI、AGP、PCI Express 這幾大家族的衍伸產品,而實際上這些擴充卡介面是由南橋晶片拉出的通道連線 (匯流排)、實體可見的擴充卡插槽、擴充介面卡本身用於連接主機板的界面 (俗稱金手指) 這三項共同成套組成的,因此介紹時我會一次說明。
按:雖然這裡稱之為擴充卡介面,但實際上現今的主機板上有許多整合的功能晶片會使用擴充卡的匯流排介面與南橋晶片連線,但實際外觀上看不到擴充卡插槽的作法,從軟體觀點來說這些設備晶片也會被視為擴充介面卡的一種。
遠古時代的 ISA 匯流排介面家族 (又被稱為 Legacy Bus)
1981 ~ 1993:傳統 ISA
最早被廣泛應用於電腦中的匯流排介面大概就是 ISA 了,全稱為工業標準結構 (Industry Standard Architecture),由 IBM 在 1981 年隨著 IBM PC/AT 一同發佈 (因此一開始是被稱為 AT-bus),大致上與第一代 IBM PC 使用的 8-bit 匯流排維持相容,是一款寬度為 8-bit,連接界面採 62-pin 設計的匯流排介面。
↑ 嗯,這是一張顯示卡 (基於 8-bit ISA 介面)。
之後 IBM 在 1984 年的 PC/AT 上發佈了第二代的 ISA 介面,將通道寬度由 8-bit 增加一倍為 16-bit,運作時脈也由原先的 4.77 MHz 提高一倍為 8.33 MHz (理論資料傳輸率 16.66 MB/s) ,連接界面也隨之拓增為 98-pin,由於當時的技術限制,金屬觸點之間還沒辦法像現在這樣做得如此密集,因此 ISA 插槽在主機板上可以說是占據了不小的位置 (下圖中較長的為 16-bit ISA 插槽,少掉最左邊一段的則是 8-bit ISA 插槽)。
後 ISA 時期:擴充卡介面大亂鬥開始
1987 ~ 1993:試圖取代 ISA 的 MCA 介面
前面提過一開始 ISA 介面是被稱為 AT-bus,那 ISA 這個名字是怎麼來的呢?實際上是由 IBM 當時的競爭對手 (以後來被 HP 吃掉的 COMPAQ 為首) 提出的,要談這中間發生的故事之前得先了解一下當時的時空背景,在 1987 年時,IBM 發展了新的匯流排介面-MCA (Micro Channel Architecture),通道寬度拓增到 16-bit、32-bit,運作時脈也拉高到 10 MHz (理論資料傳輸率高達 20~40 MB/s),用於自家的 PS/2 電腦上,希望能夠取代現有的 ISA 架構。
↑ 其實這是一張網路卡 XD (基於 MCA 介面)
而當時的 IBM 為了能夠重新奪回對市場上匯流排標準的主導權,MCA 被設計為與已經被廣泛應用的 ISA 不相容且大半專利均由 IBM 所把持,而當時 IBM 向製造商要求的授權金也相當高昂,但實際上在個人電腦方面 ISA 架構還屬堪用 (雖然 MCA 的進步不可謂不大,但對一般人來說其實還沒有升級的必要),在這樣的環境下其他電腦製造商並不願意向 IBM 低頭乖乖支付授權金,所以他們決定停留在 ISA 介面上而不升級到 MCA,並且為原本習慣稱為 AT-bus 的這款匯流排介面起名 ISA 以避開 IBM 持有的 “AT” 註冊商標。
↑ MCA 擴充卡插槽,其實長得蠻像倒過來的 PCI。
不過雖然在個人電腦市場中 ISA 大致上還算堪用,但在伺服器市場上就未必如此,伺服器市場期待有更高的匯流排資料傳輸速率、更寬的通道寬度,僅僅使用 ISA 介面並不足以滿足這樣的需求,此時市場開始分成許多不同的派別,包含以 IBM 為首的 MCA、由 COMPAQ 等競爭對手為首用於反制 MCA,並且以擴充現有 ISA 架構為目標的 E-ISA、同樣採擴充 ISA 架構而設計出來的 VESA Local Bus 等。
1988 ~ 1993:以 ISA 為基礎拓展為 32-bit 的 EISA
EISA 顧名思義就是擴充版的 ISA,在 1988 年由 COMPAQ 為首提出,作為對 MCA 的反制武器而生。EISA 最明顯的特色就是插槽外觀上與 16-bit 的 ISA 插槽非常相似,實質上則與 ISA 單向相容 (技術上是使用較小且上下交替排列的金屬接觸點來達成腳位與通道寬度的擴充),原有的 ISA 介面卡可以直接安裝在 EISA 插槽上,但 EISA 介面卡是不能用於 ISA 插槽的。
上圖當中三條棕色的插槽就是 EISA 插槽,可以很明顯發現金屬觸點部分的密度比最上、最下兩條 ISA 16-bit 插槽來得密集很多,而且長度與寬度都一模一樣,卡榫的設計位置也相同,至於看到介面卡本身的部分呢,我想以這張同時兼具 EISA 與 ISA 介面的顯示卡為例 (雖然長得很奇葩 XD):
從上圖中應該就可以很明顯看到 EISA 與 ISA 插槽在金屬觸點密度上的差異了,EISA 的金屬觸點多達 198-pin,理論資料傳輸率則可以提高到 33 MB/s,由於導入成本低 (得益於與 ISA 的向下相容與相對 MCA 而言極其低廉的授權費用),儘管性能受制於時脈無法提高而遜於 MCA,但 EISA 在市場上的能見度可以說是 ISA 家族各分支與同時期的 MCA 介面中最高的。
1992 ~ 1993:過渡色彩濃厚的 VESA Local Bus
在擴充介面卡中,通常對頻寬需求最大的就是顯示卡了,這點從古至今幾乎都沒有甚麼改變,當時間來到 1990 年代時,當時顯示卡的頻寬需求成長已經到了 ISA 匯流排遠遠無法滿足的地步,對於更高速的匯流排介面的需求開始浮上檯面,而眼下可用的替代方案- IBM 主導的 MCA 與其競爭對手 EISA 分別都有一些問題存在,前者的問題依然是高昂的授權費與專利,而後者的問題就是前面提過的性能問題,EISA 的資料傳輸率仍然不足以滿足顯示卡的需要,因此硬體製造商就決定發展另一套匯流排介面來解決這個問題,於是在 1992 年,VESA (Video Electronics Standards Association, 負責制定顯示相關標準規格的單位) 就發佈了 VESA Local Bus 標準。
VESA Local Bus 與 EISA 類似,同樣是 ISA 介面的延伸,實際上 VESA Local Bus 標準的擴充卡插槽本來就是由標準 16-bit ISA 插槽與後方延伸一組和 IBM MCA 相同物理結構的 116-pin 插槽組成 (這裡有個蠻有趣的事情,因為 MCA 介面並不受到市場歡迎,所以生產出來卻剩下一堆的插槽就被拿來做 VESA Local Bus 後面的延伸段插槽了,不過兩者之間並不相容哦),下圖當中三條橫橫跨整張主機板的就是 VESA Local Bus,其超長的長度導致甚至有人揶揄其縮寫 VLB 其實是 Very Long Bus 的意思。
前面談到過 VESA Local Bus 是一款過渡色彩很濃厚的匯流排介面,從設計特色就可以很容易看出這點,除了前面提到過的為了節約成本而拿 MCA 插槽來「廢物利用」之外,VESA Local Bus 有一項很重要的特性:為了實現高資料傳輸率,VESA Local Bus 運用了 DMA (直接記憶體存取) 和記憶體映射 I/O,這使得 VESA Local Bus 非常依賴記憶體匯流排,因為這個原因一旦晶片組上的記憶體匯流排設計發生大幅改變,VESA Local Bus 就幾乎完全無用武之地了,因此 VLB 雖然在 486 世代中期以後的電腦上被大量採用,卻在進入 Pentium 世代時瞬間就幾乎銷聲匿跡。
除此之外,由於有一大部分線路是從記憶體匯流排拉出來的,這導致 VLB 的數量上和穩定性上都受到很大的限制,一般而言主機板上最多只能設置三條 VLB 插槽,且如果主機板的設計不夠完善的話,VLB 介面卡和插槽所產生的干擾可以很容易使整台電腦變得不穩定甚至造成資料遺失,而且因為時脈是依據記憶體匯流排而來,隨著處理器時脈的提升 (當時處理器時脈與記憶體匯流排時脈是連動的),VLB 的穩定性問題也越發明顯,這某種程度上也促成了 Intel 開始在自家處理器上使用倍頻器。
歷代擴充介面標準比較 (1981 ~ 1992)
ISA | ISA | MCA | MCA | EISA | VLB | |
發佈年代 | 1981 | 1981 | 1987 | 1987 | 1988 | 1992 |
資料通道寬度 | 8-bit | 16-bit | 16-bit | 32-bit | 32-bit | 32-bit |
定址寬度 | 24-bit | 32-bit | 32-bit | 32-bit | 32-bit | 32-bit |
理論資料傳輸率 | 4.77 MB/s | 16.67 MB/s | 10 MB/s | 20MB/s | 33 MB/s | 200 MB/s |
運作時脈 | 4.77 MHz | 8.33 MHz | 10 MHz | 10 MHz | 8.33 MHz | 25 ~ 50 MHz |
制定者 | IBM | IBM | IBM | IBM | 九人幫 | VESA |
針腳數 | 62 | 98 | 116 | 116 | 198 | 112 + 98 |