Accelerated Graphics Port
Accelerated Graphics Port | |
Universal AGP slot (brown, top) and PCI 2.2 slot (white beige, bottom) | |
Year created | 1996 |
---|---|
Created by | Intel |
Superseded by | PCI Express (2004) |
Width in bits | 32 |
Number of devices | One device per slot |
Speed | Up to 2133 MB/s |
Style | Parallel |
The Accelerated Graphics Port (often shortened to AGP) is a high-speed point-to-point channel for attaching a video card to a computer system, primarily to assist in the acceleration of 3D computer graphics. It was originally designed as a successor to PCI-type connections for video cards. Since 2004, AGP has been progressively phased out in favor of PCI Express (PCIe); by mid-2008, PCI Express cards dominated the market and only a few AGP models were available.[1]
Advantages over PCI
As computers increasingly became graphically oriented, successive generations of graphics adapters began to push the limits of PCI, a bus with shared bandwidth. This led to the development of AGP, a "bus" dedicated to graphics adapters.
The primary advantage of AGP over PCI is that it provides a dedicated pathway between the slot and the processor rather than sharing the PCI bus. In addition to a lack of contention for the bus, the direct connection allows for higher clock speeds. AGP also uses sideband addressing, meaning that the address and data buses are separated so the entire packet does not need to be read to get addressing information. This is done by adding an extra 8-bit "SideBand Address" bus that allows the graphics controller to issue new AGP requests and commands at the same time other AGP data is flowing through the main 32 address/data (AD) lines. This results in improved overall AGP data throughput.
In addition, to load a texture, a PCI graphics card must copy it from the system's RAM into the card's video memory, whereas an AGP card is capable of reading textures directly from system RAM using the graphics address remapping table (GART), which reapportions main memory as needed for texture storage, allowing the graphics card to access them directly.[2] The maximum amount of system memory available to AGP is defined as the AGP aperture.
History
The AGP slot first appeared on x86-compatible system boards based on Socket 7 Intel P5 Pentium and Slot 1 P6 Pentium II processors. Intel introduced AGP support with the i440LX Slot 1 chipset on August 26, 1997, and a flood of products followed from all the major system board vendors.[3]
The first Socket 7 chipsets to support AGP were the VIA Apollo VP3, SiS 5591/5592, and the ALI Aladdin V. Intel never released an AGP-equipped Socket 7 chipset. FIC demonstrated the first Socket 7 AGP system board in November 1997 as the FIC PA-2012 based on the VIA Apollo VP3 chipset, followed very quickly by the EPoX P55-VP3 also based on the VIA VP3 chipset which was first to market.[4]
Early video chipsets featuring AGP support included the Rendition Vérité V2200, 3dfx Voodoo Banshee, Nvidia RIVA 128, 3Dlabs PERMEDIA 2, Intel i740, ATI Rage series, Matrox Millennium II, and S3 ViRGE GX/2. Some early AGP boards used graphics processors built around PCI and were simply bridged to AGP. This resulted in the cards benefiting little from the new bus, with the only improvement used being the 66 MHz bus clock, with its resulting doubled bandwidth over PCI, and bus exclusivity. Examples of such cards were the Voodoo Banshee, Vérité V2200, Millennium II, and S3 ViRGE GX/2. Intel's i740 was explicitly designed to exploit the new AGP feature set. In fact it was designed to texture only from AGP memory, making PCI versions of the board difficult to implement (local board RAM had to emulate AGP memory.)
Microsoft first introduced AGP support into Windows 95 OEM Service Release 2 (OSR2 version 1111 or 950B) via the USB SUPPLEMENT to OSR2 patch.[5] After applying the patch the Windows 95 system became Windows 95 version 4.00.950 B. The first Windows NT-based operating system to receive AGP support was Windows NT 4.0 with Service Pack 3, introduced in 1997. Linux support for AGP enhanced fast data transfers was first added in 1999 with the implementation of the AGPgart kernel module.
Versions
Specification | Voltage | Clock | Speed | Transfers/clock | Rate (MB/s) |
---|---|---|---|---|---|
PCI | 3.3/5 V | 33 MHz | — | 1 | 133 |
PCI 2.1 | 3.3/5 V | 33/66 MHz | — | 1 | 266 |
AGP 1.0 | 3.3 V | 66 MHz | 1× | 1 | 266 |
AGP 1.0 | 3.3 V | 66 MHz | 2× | 2 | 533 |
AGP 2.0 | 1.5 V | 66 MHz | 4× | 4 | 1066 |
AGP 3.0 | 0.8 V | 66 MHz | 8× | 8 | 2133 |
AGP 3.5* | 0.8 V | 66 MHz | 8× | 8 | 2133 |
Intel released "AGP specification 1.0" in 1997.[6] It specified 3.3 V signals and 1× and 2× speeds.[3] Specification 2.0 documented 1.5 V signaling, which could be used at 1×, 2× and the additional 4× speed[7][8] and 3.0 added 0.8 V signaling, which could be operated at 4× and 8× speeds.[9] (1× and 2× speeds are physically possible, but were not specified.)
Available versions are listed in the table on the right.
AGP version 3.5 is only publicly mentioned by Microsoft under Universal Accelerated Graphics Port (UAGP), which specifies mandatory supports of extra registers once marked optional under AGP 3.0. Upgraded registers include PCISTS, CAPPTR, NCAPID, AGPSTAT, AGPCMD, NISTAT, NICMD. New required registers include APBASELO, APBASEHI, AGPCTRL, APSIZE, NEPG, GARTLO, GARTHI.
There are various physical interfaces (connectors); see the Compatibility section.
Official extensions
AGP Pro
An official extension for cards that required more electrical power, with a longer slot with additional pins for that purpose. AGP Pro cards were usually workstation-class cards used to accelerate professional computer-aided design applications employed in the fields of architecture, machining, engineering, simulations, and similar fields.[10]
64-bit AGP
A 64-bit channel was once proposed as an optional standard for AGP 3.0 in draft documents,[11] but it was dropped in the final version of the standard.
The standard allows 64-bit transfer for AGP8× reads, writes, and fast writes; 32-bit transfer for PCI operations.
Unofficial variations
A number of non-standard variations of the AGP interface have been produced by manufacturers.
Internal AGP interface
- Ultra-AGP, Ultra-AGPII
- It is an internal AGP interface standard used by SiS for the north bridge controllers with integrated graphics. The original version supports same bandwidth as AGP 8×, while Ultra-AGPII has maximum 3.2GB/s bandwidth.
PCI-based AGP ports
- AGP Express
- Not a true AGP interface, but allows an AGP card to be connected over the legacy PCI bus on a PCI Express motherboard. It is a technology used on motherboards made by ECS, intended to allow an existing AGP card to be used in a new motherboard instead of requiring a PCIe card to be obtained (since the introduction of PCIe graphics cards few motherboards provide AGP slots). An "AGP Express" slot is basically a PCI slot (with twice the electrical power) with an AGP connector. It offers backward compatibility with AGP cards, but provides incomplete support[12] (some AGP cards do not work with AGP Express) and reduced performance—the card is forced to use the shared PCI bus at its lower bandwidth, rather than having exclusive use of the faster AGP.
- AGI
- The ASRock Graphics Interface (AGI) is a proprietary variant of the Accelerated Graphics Port (AGP) standard. Its purpose is to provide AGP-support for ASRock motherboards that use chipsets lacking native AGP support. However, it is not fully compatible with AGP, and several video card chipsets are known not to be supported.
- AGX
- The EpoX Advanced Graphics eXtended (AGX) is another proprietary AGP variant with the same advantages and disadvantages as AGI. User manuals recommend not using AGP 8× ATI cards with AGX slots.
- XGP
- The Biostar Xtreme Graphics Port is another AGP variant, also with the same advantages and disadvantages as AGI and AGX.
PCIe based AGP ports
- AGR
- The Advanced Graphics Riser is a variation of the AGP port used in some PCIe motherboards made by MSI to offer limited backwards compatibility with AGP. It is, effectively, a modified PCIe slot allowing for performance comparable to an AGP 4×/8× slot,[13] but does not support all AGP cards; the manufacturer published a list of some cards and chipsets that work with the modified slot.[14]
Compatibility
AGP cards are backward and forward compatible within limits. 1.5 V-only keyed cards will not go into 3.3 V slots and vice versa, though "Universal" cards exist which will fit into either type of slot. There are also unkeyed "Universal" slots that will accept either type of card. When an AGP Universal card is plugged-into an AGP Universal slot, only the 1.5 V portion of the card is used. Some cards, like Nvidia's GeForce 6 series (except the 6200) or ATI's Radeon X800 series, only have keys for 1.5 V to prevent them from being installed in older mainboards without 1.5 V support. Some of the last modern cards with 3.3 V support were the Nvidia GeForce FX series (FX 5200, FX 5500, FX 5700, some FX 5800, FX 5900 and some FX 5950), Geforce 6 Series (6200, 6600/6600 LE/6600 GT only) and the ATI Radeon 9500/9700/9800(R350) (but not 9600/9800(R360)). Some Geforce 6200 and Geforce 6600 cards will function with AGP 1.0 (3.3v) slots.
AGP Pro cards will not fit into standard slots, but standard AGP cards will work in a Pro slot. Motherboards equipped with a Universal AGP Pro slot will accept a 1.5 V or 3.3 V card in either the AGP Pro or standard AGP configuration, a Universal AGP card, or a Universal AGP Pro card.
Some cards incorrectly have dual notches, and some motherboards incorrectly have fully open slots, allowing a card to be plugged into a slot that does not support the correct signaling voltage, which may damage card or motherboard. Some incorrectly designed older 3.3 V cards have the 1.5 V key.
There are some proprietary systems incompatible with standard AGP; for example, Apple Power Macintosh computers with the Apple Display Connector (ADC) have an extra connector which delivers power to the attached display. Some cards designed to work with a specific CPU architecture (e.g., PC, Apple) may not work with others due to firmware issues.
Mark Allen of Playtools.com made the following comments regarding Practical AGP Compatibility for AGP 3.0 and AGP 2.0:[15]
"...nobody makes AGP 3.0 cards, and nobody makes AGP 3.0 motherboards. At least not any manufacturers I can find. Every single video card I could find which claimed to be an AGP 3.0 card was actually a universal 1.5V AGP 3.0 card. And every motherboard which claimed to be an AGP 3.0 motherboard turned out to be a universal 1.5V AGP 3.0 motherboard. It makes sense, if you think about it, because if anyone actually shipped a consumer-oriented product which supported only 0.8 volts, they would end up with lots of confused customers and a support nightmare. In the consumer market, you'd have to be crazy to ship a 0.8 volt only product."
Power consumption
Slot Type | 3.3 V | 5 V | 12 V | 3.3 V Aux | 1.5 V | 3.3 V[lower-alpha 1] | 12 V[lower-alpha 1] | Total power |
---|---|---|---|---|---|---|---|---|
AGP | 6 A | 2 A | 1 A | 0.375 mA | 2 A | - | - | 48.25 W[lower-alpha 2] |
AGP Pro110 | 7.6 A | 9.2 A | 50 to 110 W | |||||
AGP Pro50 | 7.6 A | 4.17 A | 25 to 50 W |
Actual power supplied by an AGP slot depends upon the card used. The maximum current drawn from the various rails is given in the specifications for the various versions. For example, if maximum current is drawn from all supplies and all voltages are at their specified upper limits,[9]:95 an AGP 3.0 slot can supply up to 48.25 watts; this figure can be used to specify a power supply conservatively, but in practice a card is unlikely ever to draw more than 40 W from the slot, with many using less. AGP Pro provides additional power up to 110 W. Many AGP cards had additional power connectors to supply them with more power than the slot could provide.
Legacy use
By 2010 few new motherboards had AGP slots. No new motherboard chipsets were equipped with AGP support, but motherboards continued to be produced with older chipsets with support for AGP.
Graphics processors of this period use PCI-Express, a general-purpose (not restricted to graphics) standard that supports higher data transfer rates and full-duplex. To create AGP-compatible graphics cards, those chips require an additional PCIe-to-AGP bridge-chip to convert PCIe signals to and from AGP signals. This incurs additional board costs due to the need for the additional bridge chip and for a separate AGP-designed circuit board.
Various manufacturers of graphics cards continued to produce AGP cards for the shrinking AGP user-base. The first bridged cards were the GeForce 6600 and ATI Radeon X800 XL boards, released during 2004-5.[16][17] In 2009 AGP cards from Nvidia had a ceiling of the GeForce 7 Series. In 2011 DirectX 10-capable AGP cards from AMD vendors (Club 3D, HIS, Sapphire, Jaton, Visiontek, Diamond, etc.) included the Radeon HD 2400, 3450, 3650, 3850, 4350, 4650, and 4670. The HD 5000 AGP series mentioned in the catalyst software was never available. There were many problems with the AMD Catalyst 11.2 - 11.6 AGP hotfix drivers under Windows 7 with the HD 4000 series AGP video cards;[18] use of 10.12 or 11.1 AGP hotfix drivers is the recommended workaround. Several of the vendors listed above make available past versions of the AGP drivers.
Connector pinout
The AGP connector contains almost all PCI signals, plus several additions. The connector has 66 contacts on each side, although 4 are removed for each keying notch. Pin 1 is closest to the I/O bracket, and the B and A sides are as in the table, looking down at the motherboard connector.
Contacts are spaced at 1 mm intervals, however they are arranged in two staggered vertical rows so that there is 2 mm space between pins in each row. Odd-numbered A-side contacts, and even-numbered B-side contacts are in the lower row (1.0 to 3.5 mm from the card edge). The others are in the upper row (3.7 to 6.0 mm from the card edge).
Pin | Side B | Side A | Comments | |
---|---|---|---|---|
1 | OVERCNT# | +12 V | USB port overcurrent warning | |
2 | +5 V | TYPEDET# | Pulled low to by card indicate 1.5 V (AGP 2.0 4x) ability | |
3 | +5 V | GC_DET# | Pulled low to by card indicate 0.8 V (AGP 3.0 8x) ability | |
4 | USB+ | USB− | USB pins for pass through to monitor | |
5 | Ground | Ground | ||
6 | INTB# | INTA# | Interrupt lines (open-drain) | |
7 | CLK | RST# | 66 MHz clock, Bus reset | |
8 | REQ# | GNT# | Bus request from card, and grant from motherboard | |
9 | +3.3 V | +3.3 V | ||
10 | ST[0] | ST[1] | AGP status (valid while GNT# low) | |
11 | ST[2] | MB_DET# | Pulled low by motherboard to indicate 0.8 V (AGP 3.0 8x) ability | |
12 | RBF# | PIPE# | DBI_HI | Read buffer full, Pipeline request, Data bus inversion[31:16] |
13 | Ground | Ground | ||
14 | DBI_LO | WBF# | Data bus inversion [15:0], Write buffer full | |
15 | SBA[0] | SBA[1] | Sideband address bus | |
16 | +3.3 V | +3.3 V | ||
17 | SBA[2] | SBA[3] | ||
18 | SB_STB | SB_STB# | ||
19 | Ground | Ground | ||
20 | SBA[4] | SBA[5] | ||
21 | SBA[6] | SBA[7] | ||
22 | Reserved | Reserved | Key notch for 3.3 V AGP cards | |
23 | Ground | Ground | ||
24 | +3.3 V aux | Reserved | ||
25 | +3.3 V | +3.3 V | ||
26 | AD[31] | AD[30] | Address/data bus (upper half) | |
27 | AD[29] | AD[28] | ||
28 | +3.3 V | +3.3 V | ||
29 | AD[27] | AD[26] | ||
30 | AD[25] | AD[24] | ||
31 | Ground | Ground | ||
32 | AD_STB[1] | AD_STB[1]# | ||
33 | AD[23] | C/BE[3]# | ||
34 | Vddq | Vddq | ||
35 | AD[21] | AD[22] | ||
36 | AD[19] | AD[20] | ||
37 | Ground | Ground | ||
38 | AD[17] | AD[18] | ||
39 | C/BE[2]# | AD[16] | ||
40 | Vddq | Vddq | 3.3 or 1.5 V | |
41 | IRDY# | FRAME# | Initiator ready, Transfer in progress | |
42 | +3.3 V aux | Reserved | Key notch for 1.5 V AGP cards | |
43 | Ground | Ground | ||
44 | Reserved | Reserved | ||
45 | +3.3 V | +3.3 V | ||
46 | DEVSEL# | TRDY# | Target selected, Target ready | |
47 | Vddq | STOP# | Target requests halt | |
48 | PERR# | PME# | Parity error, Power management event (optional) | |
49 | Ground | Ground | ||
50 | SERR# | PAR | System error, Even parity for (1x) PCI transactions only | |
51 | C/BE[1]# | AD[15] | Address/data bus (lower half) | |
52 | Vddq | Vddq | ||
53 | AD[14] | AD[13] | ||
54 | AD[12] | AD[11] | ||
55 | Ground | Ground | ||
56 | AD[10] | AD[9] | ||
57 | AD[8] | C/BE[0]# | ||
58 | Vddq | Vddq | ||
59 | AD_STB[0] | AD_STB[0]# | ||
60 | AD[7] | AD[6] | ||
61 | Ground | Ground | ||
62 | AD[5] | AD[4] | ||
63 | AD[3] | AD[2] | ||
64 | Vddq | Vddq | ||
65 | AD[1] | AD[0] | ||
66 | Vregcg | Vrefgc | I/O reference voltages |
Ground pin | Zero volt reference |
---|---|
Power pin | Supplies power to the AGP card |
Output pin | Driven by the AGP card, received by the motherboard |
Initiator output | Driven by the master/initiator, received by the target |
I/O signal | May be driven by initiator or target, depending on operation |
Target output | Driven by the target, received by the initiator/master |
Input | Driven by the motherboard, received by the AGP card |
Open drain | May be pulled low and/or sensed by card or motherboard |
Reserved | Not presently used, do not connect |
PCI signals omitted are:
- The −12 V supply
- The third and fourth interrupt requests (INTC#, INTD#)
- The JTAG pins (TRST#, TCK, TMS, TDI, TDO)
- The SMBus pins (SMBCLK, SMBDAT)
- The IDSEL pin; an AGP card connects AD[16] to IDSEL internally
- The 64-bit extension (REQ64#, ACK64#) and 66 MHz (M66EN) pins
- The LOCK# pin for locked transaction support
Signals added are:
- Data strobes AD_STB[1:0] (and AD_STB[1:0]# in AGP 2.0)
- The sideband address bus SBA[7:0] and SB_STB (and SB_STB# in AGP 2.0)
- The ST[2:0] status signals
- USB+ and USB− (and OVERCNT# in AGP 2.0)
- The PIPE# signal (removed in AGP 3.0 for 0.8 V signaling)
- The RBF# signal
- The TYPEDET#, Vregcg and Vreggc pins (AGP 2.0 for 1.5V signaling)
- The DBI_HI and DBI_LO signals (AGP 3.0 for 0.8 V signaling only)
- The GC_DET# and MB_DET# pins (AGP 3.0 for 0.8V signaling)
- The WBF# signal (AGP 3.0 fast write extension)
See also
- List of device bandwidths
- Serial Digital Video Out for ADD DVI adapter cards
Notes
References
- ↑ "AGP almost at the end, Softpedia". 5 June 2008. Retrieved 15 September 2014.
- ↑ "What is AGP?". Retrieved 15 September 2014.
- 1 2 "Intel 440LX AGPset". Retrieved 15 September 2014.
- ↑ Lal Shimpi, Anand (August 1, 1997). "Chipset Guide". AnandTech. Retrieved 2015-03-03.
- ↑ "Which version of Windows 95 supports AGP?". Retrieved 15 September 2014.
- 1 2 Intel (July 31, 1996), Accelerated Graphics Port Interface Specification Revision 1.0 (PDF), retrieved 2007-10-18
- ↑ "AGP 4×: Faster Data Transfer & Better-Quality Images". Retrieved 15 September 2014.
- 1 2 Intel (May 4, 1998), Accelerated Graphics Port Interface Specification Revision 2.0 (PDF), retrieved 2014-09-15
- 1 2 3 Intel (September 2002), AGP V3.0 Interface Specification (PDF), retrieved 2011-10-09
- ↑ AGP Pro 1.1a specification
- ↑ Draft AGP8× Interface Specification Rev. 0.91R
- ↑ "ECS Web Site". Retrieved 15 September 2014.
- ↑ "MSI K8N Neo3-F Motherboard Review—What's an AGR video slot?". Retrieved 15 September 2014.
- ↑ "List of cards and chipsets that work with the MSI AGR port" (PDF). Archived from the original (PDF) on March 8, 2007. Retrieved 15 September 2014.
- ↑ Allen, Mark (2006). "AGP compatibility for sticklers". Video card information. PlayTool.com.
- ↑ Gasior, Geoff. Nvidia's GeForce 6600 GT AGP graphics card: Bridging backwards, Tech Report, November 16, 2004.
- ↑ Gasior, Geoff. ATI's new AGP Radeons: A bridge is born, Tech Report, May 20, 2005.
- ↑ "AMD community forums". Retrieved 15 September 2014.
This article is based on material taken from the Free On-line Dictionary of Computing prior to 1 November 2008 and incorporated under the "relicensing" terms of the GFDL, version 1.3 or later.
External links
Wikimedia Commons has media related to AGP. |
- Archived AGP Implementors Forum
- AGP specifications: 1.0, 2.0, 3.0, Pro 1.0, Pro 1.1a
- AGP Compatibility For Sticklers
- AGP pinout
- AGP expansion slots
- AGP compatibility (with pictures)
- PCI Specifications Documents contains AGP specs.
- Universal Accelerated Graphics Port (UAGP)
- How Stuff Works - AGP
- A discussion from 2003 of what AGP aperture is, how it works, and how much memory should be allocated to it.