AGP

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

## 歷史

AGP 插槽首次出現在基於 Socket 7 Intel P5 Pentium 和 Slot 1 P6 Pentium II 處理器的 x86 兼容系統主板上。Intel 於 1997 年 8 月 26 日通過 i440LX Slot 1 晶片組引入了 AGP 支持，隨後各大系統主板廠商紛紛推出相關產品。AGP 由 Intel 獨立開發，未經 PCI 特別興趣小組審查或認可。

最早支持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 的主板版本難以實現（本地主板 RAM 必須模擬 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高速數據傳輸的支持。

### 後期使用情況

隨著 PCIe 的廣泛採用，顯卡製造商繼續生產 AGP 卡，儘管該標準已逐漸被淘汰。由於 GPU 開始設計為連接至 PCIe，因此需要額外的 PCIe 到 AGP 橋接晶片來製造兼容 AGP 的顯卡。橋接晶片的加入以及對獨立 AGP 卡設計的需要導致了額外的主板成本增加。

GeForce 6600 和 ATI Radeon X800 XL（發布於 2004–2005 年）是首批採用橋接技術的顯卡。到 2009 年，Nvidia 的 AGP 卡最高僅支持 GeForce 7 系列。2011 年，AMD 廠商（包括 Club 3D、HIS、Sapphire、Jaton、Visiontek、Diamond 等）推出的支持 DirectX 10 的 AGP 顯卡包括 Radeon HD 2400、3450、3650、3850、4350、4650 和 4670。AMD Catalyst 軟體中提及的 HD 5000 AGP 系列從未上市。在 Windows 7 系統下，使用 AMD Catalyst 11.2–11.6 版本的 AGP 熱修復驅動程序時，HD 4000 系列 AGP 顯卡存在諸多問題；改用 10.12 或 11.1 版本的 AGP 熱修復驅動程序可作為可能的解決方案。上述部分廠商仍提供過往版本的 AGP 驅動程序。

到 2010 年，已無新的主板晶片組支持 AGP，新主板上配備 AGP 插槽的也寥寥無幾，但仍有部分產品繼續使用舊款支持 AGP 的晶片組進行生產。

2016 年，Windows 10 版本 1607 停止了對 AGP 的支持。2020 年 Linux 也曾考慮過從開源內核驅動程序中移除對 AGP 的支持。

## 相比起PCI的優勢

AGP 標準建立在 PCI 架構之上，實質上是傳統 PCI 總線的超集，因此 AGP 顯卡在電氣特性上必須兼容 PCI 規範。然而，隨著電腦圖形界面和 3D 應用的普及，共享帶寬的 PCI 總線逐漸成為性能瓶頸。為了克服這些局限，AGP 引入了多項關鍵性的技術改進，旨在大幅提升圖形適配器與系統之間的數據傳輸效率。

### 專用的點對點連接

AGP 最核心的優勢在於其拓撲結構的改變。與 PCI 總線不同，AGP 並非由多個設備共享帶寬的公共通道，而是為顯卡提供了一條專用的點對點通路。這種直接連接不僅消除了與其他外設爭奪總線帶寬的競爭，還允許採用更激進的信號優化措施（如降低信號電壓），從而支持更高的時鐘頻率和數據傳輸速率。

### 拆分事務與流水線操作

AGP 採用了拆分事務機制（split transactions），將地址階段（請求）與數據階段（響應）分離開來。這意味著總線不必像處理 PCI 事務那樣，在等待讀取數據返回時處於空閒狀態（即避免了等待狀態）。AGP 允許在之前的請求尚未完成時就發送新的地址請求，使得多筆事務可以同時處於「飛行」狀態。通過高優先級和低優先級隊列的管理，AGP 實現了接近理論最大值的實際吞吐量，極大地改善了記憶體讀取性能。

### 邊帶尋址

為了進一步提升效率，AGP 引入了邊帶尋址技術（在 AGP 3.0 中為強制標準）（sideband addressing）。該技術增加了一條獨立的 8 位「邊帶地址」總線，將地址信號與主 32 位數據/地址線分離。這使得圖形控制器可以在主線路忙於傳輸數據的同時，通過邊帶線路並行發送新的請求指令。這種並行處理能力顯著提高了總線的整體利用率和數據傳輸吞吐量。

### 簡化的總線握手協議

相比 PCI 複雜的握手機制，AGP 對總線握手過程進行了簡化。PCI 事務的長度通常需要逐周期協商，而 AGP 傳輸總是以 8 字節為單位，且總長度包含在初始請求中。此外，AGP 不再對每個字使用就緒信號，而是以數據塊（例如每 4 個時鐘周期或 32 個字）為單位進行傳輸，暫停僅允許發生在數據塊之間。這種機制減少了協議開銷，提升了傳輸效率。

### 直接記憶體執行與紋理存儲

得益於上述對記憶體讀取性能的極大改善，AGP 使得顯卡直接從系統記憶體中讀取紋理貼圖成為可能，這一特性被稱為直接記憶體執行。相比之下，PCI 顯卡通常必須先將紋理數據從系統記憶體複製到顯存中才能處理。AGP 通過圖形地址重映射表按需分配主記憶體用於存儲紋理，系統可供 AGP 使用的最大記憶體量被稱為「AGP 孔徑」。這種機制允許硬體製造商在顯卡板載顯存容量與總線帶寬之間進行權衡，甚至支持極低顯存或無顯存的顯卡設計。

## AGP的版本

### 標準版本

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

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

速度｜規格｜傳輸通道｜有效時脈｜資料傳輸速度｜信號電壓｜註釋

AGP 1x｜1.0｜32 bit｜66 MHz｜266 MB/s｜3.3 V｜雙倍於PCI的資料傳輸速度

AGP 2x｜1.0｜32 bit｜133 MHz（雙泵）｜533 MB/s｜3.3 V｜雙倍於AGP 1x的資料傳輸速度

AGP 4x｜2.0｜32 bit｜266 MHz（四泵）｜1066 MB/s (1 GB/s)｜1.5 V｜雙倍於AGP 2x的資料傳輸速度

AGP 8x｜3.0｜32 bit｜533 MHz（八泵）｜2133 MB/s (2 GB/s)｜0.8 V｜雙倍於AGP 4x的資料傳輸速度

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）」插槽才能同時支援兩種類型的卡。有些顯示卡，如大部分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的凹口，將這些卡插入不支持正確信號電壓的插槽可能會造成損壞。

AGP Pro顯示卡不能裝進標準AGP插槽，但標準的AGP顯示卡卻能工作於AGP Pro插槽上。配備通用 AGP Pro 插槽的主板可接受在 AGP Pro 或標準 AGP 配置下的 1.5 V 或 3.3 V 卡、通用 AGP 卡或通用 AGP Pro 卡。

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

## 基本資料

- 英文全名：Accelerated Graphics Port
- 中文全名：加速影像處理埠
- 研發日期：1996年
- 發明者：Intel
- 替代介面：PCI Express
- 替代日期：2004年
- 最多連接：1
- 速度：最高達 2133 MB/s