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的版本

<image>

<image>

### 标准版本

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显卡，而制造商为此出版了不完整的显卡和芯片组兼容性列表。

## 兼容性

<image>

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