AGP

**AGP**，全稱為**加速影像處理埠**（英語：Accelerated Graphics Port），是電腦主機板上的一種高速點對點傳輸通道，供顯示卡使用，主要應用在三維電腦圖形的加速上。AGP 是在 1997 年由 Intel 提出，是從 PCI 標準上建立起來，是一種顯示卡專用介面。推出原因是為了消除 PCI 在處理 3D 圖形時的瓶頸。**AGP** 通常會被視為電腦匯流排的一種，但這樣的分法嚴格來說是錯誤的；因為一組匯流排可容許多個裝置共享，而 AGP 卻不是。AGP 不能多個插槽共享一組匯流排。一些主機板設有多條獨立的 AGP 埠，目前 AGP 已基本被 PCI Express 所取代。

## 歷史

AGP 插槽首次在 x86 相容系統出現，是在 Socket 7 Pentium 和 Slot 1 Pentium II 主機板上。1997 年 10 月中旬，Intel 於 i440LX Slot 1 晶片組上加入 AGP 的支援，其後主要主機板供應商也大量推出一系列相關的產品。

最早支援 AGP 的 Socket 7 晶片組是 VIA Apollo VP3、SiS 5591/5592、以及 ALi Aladdin V，而 Intel 從未發布配備 AGP 介面的 Socket 7 晶片組。1997 年 11 月，大眾電腦展示了首塊使用 VIA Apollo VP3 晶片組的 Socket 7 AGP 主機板，名為 FIC PA。1998 年，磐英科技的主機板 EPoX P55-VP3 也使用 VIA Apollo VP3 晶片組，是第一塊推出市場的相關主機板。

於早期支援 AGP 的視訊晶片包括 Rendition Vérité V2200、3dfx Voodoo Banshee、Nvidia RIVA 128、3Dlabs PERMEDIA 2、Intel i740、ATI Rage 系列、Matrox Millennium II、和 S3 ViRGE GX/2。一些早期 AGP 顯示卡使用 PCI 線路連接圖形處理器然後再橋接到 AGP，這導致新插槽對顯示卡的得益減少，剩下只有 66 MHz 的前端總線時脈，以及相倍 PCI 傳輸頻寬的改善。這些卡的例子有 Voodoo Banshee、Vérité V2200、Millennium II 和 S3 ViRGE GX/2。不過，Intel 的 i740 在設計上明確要使用新的 AGP 功能，因為它只能從 AGP 記憶體中處理紋理畫面，使 PCI 版本的顯示卡難以執行。

微軟首次推出 AGP 支援是在 Windows 95 OEM Service Release 2 版（OSR2 version 1111 或 950B）上，透過 USB 補充 OSR2 修補程式更新。安裝了該修補程式後，Windows 95 系統會升級為 Windows 95 版本 4.00.950。另外，首個支援 AGP 的 Windows NT 核心操作系統版本，是 1997 年發表的 Windows NT 4.0 Service Pack 3。而 Linux 於 1999 年透過 AGPgart 核心模組加入對 AGP 高速數據傳輸的支援。

## 相比起 PCI 的優勢

AGP 可把影格緩衝記憶體更有效地使用，除 3D 繪圖外，2D 繪圖的表現也得以加強。

 
隨著計算機越來越多地以圖形為導向，連續幾代的圖形適配器（graphics adapter）開始挑戰 PCI（一種共享頻寬的匯流排）的極限。這導致了 AGP 的發展，這是一種專門用於圖形適配器的 "匯流排"。

AGP 在很大程度上是基於 PCI 的，實際上 AGP 匯流排是傳統 PCI 匯流排的超集，AGP 卡必須作為 PCI 卡。

與 PCI 相比，AGP 的主要優勢在於它提供了**插槽**和**處理器**之間的**專用通道**，而**不是**共享 PCI 匯流排。除了沒有爭奪匯流排之外，直接連接還可以獲得更高的時鐘速度。

第二大變化是 AGP 使用了**分離式事務**（split transactions），即 PCI 事務的**位址**和**數據階段**是**分開**的。卡可以發送許多位址階段，主機按順序處理。這就避免了在讀操作過程中，匯流排空閒的情況下，出現長時間的延遲。

第三，PCI 匯流排交握（PCI bus handshaking ）被簡化。與 PCI 匯流排事務的長度是利用 FRAME# 和 STOP# 訊號**逐週期協商（cycle-by-cycle basis ）** 的不同，AGP 傳輸總是 8 位元組長度的倍數，總長度包含在請求中。此外，不是對每個字使用 IRDY# 和 TRDY# 訊號，而是以 4 個時鐘週期為單位的數據塊進行傳輸（在 AGP 8× 速度下為 32 個字），並且只允許在數據塊之間暫停。

最後，AGP 允許**邊帶定址**（_sideband addressing_）（在 AGP 1.0 和 2.0 中是可選的，在 AGP 3.0 中是必須的），這意味著位址和數據匯流排是分開的，因此位址階段根本不使用主位址 / 數據 (AD) 線。這是通過增加一個額外的 8 位元 "邊帶位址"（SideBand Address）匯流排來實現的，當其他 AGP 數據通過 32 條主位址 / 數據 (AD) 線流動時，圖形控制器可以通過該匯流排發出新的 AGP 請求。這就提高了 AGP 數據的整體吞吐量。

這種對記憶體讀取效能的極大改善，使得 AGP 卡直接從系統記憶體讀取**紋理貼圖**（texture）變得實用，而 PCI 顯示卡則必須從系統記憶體複製到顯示卡的顯存。系統記憶體是通過**圖形位址重對映表**(Graphics address remapping table，GART) 來提供的，GART 根據紋理儲存的需要分配主記憶體，AGP 可用的最大系統記憶體量被定義為 **AGP 孔徑**（Aperture）。

## AGP 的版本

### 標準版本

1997 年，英特爾推出了首個 AGP 版本，名為「AGP 1.0 規格」，包括了 1 倍速（1x）和 2 倍速（2x）的速度。之後，又發佈了 2.0 規格的 4 倍速（4x）和 3.0 規格的 8 倍速（8x）速度的 AGP。其版本包括：

* AGP 1x：使用 32-bit 傳輸通道，時脈 66MHz，資料傳輸量為 266MB/s，訊號電壓 3.3V。
* AGP 2x：使用 32-bit 傳輸通道，時脈 66MHz，透過雙泵增至 133MHz，資料傳輸量為 533MB/s，訊號電壓與 AGP 1x 相同。
* AGP 4x：使用 32-bit 傳輸通道，時脈 66MHz，透過四泵增至 266MHz，資料傳輸量為 1066MB/s，訊號電壓 1.5V。
* AGP 8x：使用 32-bit 傳輸通道，時脈 66MHz，透過八泵增至 533MHz，資料傳輸量為 2133MB/s，訊號電壓 0.8V。

　
:

AGP 3.5 規格是指由微軟所提及的＂通用加速影像處理埠＂（Universal AGP，UAGP），當中強制了要支援在 AGP 3.0 規格中部分原本被視為可選擇性支援的暫存器。升級了的暫存器包括 PCISTS、CAPPTR、NCAPID, AGPSTAT、AGPCMD、NISTAT、NICMD。而新増的暫存器包括 APBASELO、APBASEHI、AGPCTRL、APSIZE、NEPG、GARTLO、GARTHI。

### 非標準版本

不少生產商也會製造一些非標準的 AGP 介面。

* 64-bit AGP：使用 64-bit 傳輸通道，用在高端的專業顯示卡。它曾在 AGP 3.0 的規格定義方案中被提議成為 AGP 的一個選擇性標準，但在最後議決中不受接納。
* Ultra-AGP、Ultra-AGPII：它是一種內部 AGP 介面標準，專用在 SiS 北橋控制器的整合圖像晶片上。原始版本的資料傳輸速度和 AGP 8X 的相同，而 Ultra-AGPII 的最高速度更高達 3.2GB/s。
* AGP Pro：由於需要較多的電力，這是一種很少使用的插槽，而亦因此需要額外的針腳，令插槽長度增加。AGP Pro 顯示卡通常是用於工作站上，以為專業計算機輔助設計的程式加速，當中包括建築、機械加工、工程設計、類比、以及類似領域的電腦會使用。

#### PCI 修改成 AGP

* AGP Express：它不是真正的 AGP 介面，而是以一種方式讓 AGP 顯示卡透過傳統的 PCI 總線連接擁有 PCI Express 的主機板。它是一種出現於 ECS 主機板的技術，及被用來作為賣點，以吸引想要更換新主機板，但又不願意另外買一張 PCI-E 顯示卡（因為新型號的主機板並沒有提供 AGP 顯示卡插槽，只有唯一的 PCI-E 插槽）的舊 AGP 顯示卡使用者。AGP Express 基本上是一條 PCI 插槽（不過用上雙倍電力）。雖然它提供 AGP 顯示卡向下相容，但其缺點包括不完整的相容性（某些 AGP 顯示卡不能在 AGP Express 上運作）和會降低顯示卡效能，因為顯示卡要被迫使用頻寬較低及共享的 PCI 總線，而不是使用較快的 AGP 插槽。
* AGI：英文全名為 ASRock Graphics Interface（AGI），是一種由華擎科技（ASRock）推出的專有 AGP 衍生標準。其被產生的目的是為缺乏原生 AGP 介面支援的 ASRock 主機板晶片組提供 AGP 的支援。然而，它的相容性不是太高，有幾款顯示卡是已知的不支援它。
* AGX: Advanced Graphics eXtended，也是一種專有的 AGP 衍生標準，由磐英科技（EPoX）所推出。它擁有和上述 AGI 介面一樣的問題，使用者手冊甚至建議不要和 ATI AGP 8X 顯示卡一同使用。
* XGP: Biostar Xtreme Graphics Port（XGP）也是一種衍生 AGP 的標準，由映泰集團（Biostar）推出。它類似於上述兩個標準，為不支援 AGP 顯示卡的晶片組增加 AGP 支援，也同時存在許多相容性的問題。

#### PCI-E 修改成 AGP

* AGR: Advanced Graphics Riser（AGR）是用於微星科技某些 PCI-E 主機板上的 AGP 衍生插槽。它是修改至 PCI Express 介面的，效能上可比擬 4x/8x AGP 插槽，不過僅支援有限的 AGP 顯示卡，而製造商為此出版了不完整的顯示卡和晶片組相容性列表。

## 相容性

AGP 顯示卡是支援向上和向下相容的。不過，訊號電壓為 1.5V 的顯示卡不能插入 3.3V 的插槽，反之亦然，只有「通用（Universal）」插槽才能同時支援兩種類型的卡。AGP Pro 顯示卡不能裝進標準 AGP 插槽，但標準的 AGP 顯示卡卻能工作於 AGP Pro 插槽上。有些顯示卡，如大部分 Nvidia 的 GeForce 6 系列或 ATI 的 Radeon X800 系列，只有 1.5V 的凹口（key），以防止它們被安裝在不支援 1.5V 的舊型號主機板上。而最後一代支援 3.3V 的顯示卡有 Nvidia 的 GeForce FX 系列，GeForce 6 系列（僅限 NV44，NV44A）和 ATI 的 Radeon R300 系列（僅限 R300，而不是 R350，R360，RV350，RV360）。

安裝顯示卡前，檢查電壓相容性是相當重要的，因為一些顯示卡會錯誤地擁有雙凹口和一些不正確的主機板會有全開放插槽。此外，一些設計不佳的舊式 3.3V 顯示卡會不當地有 1.5V 的凹口，將這些卡插入不支援正確訊號電壓的插槽可能會造成損壞。

不過，也有一些獨有的例外，例如蘋果 Macintosh 電腦的 Apple Display Connector（ADC）介面有一個額外的連接器可為連接的顯示提供電源。此外，由於韌體上的問題，顯示卡不能由一種 CPU 架構的電腦移動到另一種的電腦上。

## 參見

* PCI
* PCI Express
* 電腦裝置頻寬列表

## 參考資料