Accelerated Graphics Port (AGP) is a
parallel
Parallel is a geometric term of location which may refer to:
Computing
* Parallel algorithm
* Parallel computing
* Parallel metaheuristic
* Parallel (software), a UNIX utility for running programs in parallel
* Parallel Sysplex, a cluster of IBM ...
expansion card
In computing, an expansion card (also called an expansion board, adapter card, peripheral card or accessory card) is a printed circuit board that can be inserted into an electrical connector, or expansion slot (also referred to as a bus slo ...
standard, designed for attaching a
video card
A graphics card (also called a video card, display card, graphics adapter, VGA card/VGA, video adapter, display adapter, or mistakenly GPU) is an expansion card which generates a feed of output images to a display device, such as a computer moni ...
to a
computer
A computer is a machine that can be programmed to Execution (computing), carry out sequences of arithmetic or logical operations (computation) automatically. Modern digital electronic computers can perform generic sets of operations known as C ...
system to assist in the acceleration of
3D computer graphics
3D computer graphics, or “3D graphics,” sometimes called CGI, 3D-CGI or three-dimensional computer graphics are graphics that use a three-dimensional representation of geometric data (often Cartesian) that is stored in the computer for th ...
. It was originally designed as a successor to
PCI
PCI may refer to:
Business and economics
* Payment card industry, businesses associated with debit, credit, and other payment cards
** Payment Card Industry Data Security Standard, a set of security requirements for credit card processors
* Pro ...
-type connections for video cards. Since 2004, AGP was progressively phased out in favor of
PCI Express
PCI Express (Peripheral Component Interconnect Express), officially abbreviated as PCIe or PCI-e, is a high-speed serial computer expansion bus standard, designed to replace the older PCI, PCI-X and AGP bus standards. It is the common ...
(PCIe), which is
serial, as opposed to parallel; by mid-2008, PCI Express cards dominated the market and only a few AGP models were available, with GPU manufacturers and add-in board partners eventually dropping support for the interface in favor of PCI Express.
Advantages over PCI
AGP is a superset of the PCI standard, designed to overcome PCI's limitations in serving the requirements of the era's high-performance graphics cards.
The primary advantage of AGP is that it doesn't share the PCI
bus
A bus (contracted from omnibus, with variants multibus, motorbus, autobus, etc.) is a road vehicle that carries significantly more passengers than an average car or van. It is most commonly used in public transport, but is also in use for cha ...
, providing a dedicated,
point-to-point pathway between the expansion slot(s) and the motherboard chipset. The direct connection also allows for higher clock speeds.
The second major change is the use of split
transactions, wherein the address and data phases are separated. The card may send many address phases so the host can process them in order, avoiding any long delays caused by the bus being idle during read operations.
Third, PCI bus handshaking is simplified. Unlike PCI bus transactions whose length is negotiated on a cycle-by-cycle basis using the FRAME# and STOP# signals, AGP transfers are always a multiple of 8 bytes long, with the total length included in the request. Further, rather than using the IRDY# and TRDY# signals for each word, data is transferred in blocks of four clock cycles (32 words at AGP 8× speed), and pauses are allowed only between blocks.
Finally, AGP allows (mandatory only in AGP 3.0) ''sideband addressing'', meaning that the
address
An address is a collection of information, presented in a mostly fixed format, used to give the location of a building, apartment, or other structure or a plot of land, generally using political boundaries and street names as references, along w ...
and data buses are separated so the address phase does not use the main address/data (AD) lines at all. This is done by adding an extra 8-bit "SideBand Address"
bus
A bus (contracted from omnibus, with variants multibus, motorbus, autobus, etc.) is a road vehicle that carries significantly more passengers than an average car or van. It is most commonly used in public transport, but is also in use for cha ...
over which the graphics controller can issue new AGP requests while other AGP data is flowing over the main 32 address/data (AD) lines. This results in improved overall AGP data throughput.
This great improvement in memory read performance makes it practical for an AGP card to read
textures directly from system RAM, while a PCI graphics card must copy it from system RAM to the card's
video memory
Dynamic random-access memory (dynamic RAM or DRAM) is a type of random-access semiconductor memory that stores each bit of data in a memory cell, usually consisting of a tiny capacitor and a transistor, both typically based on metal-oxide ...
. System memory is made available using the
graphics address remapping table
The graphics address remapping table (GART), also known as the graphics aperture remapping table, or graphics translation table (GTT), is an I/O memory management unit (IOMMU) used by Accelerated Graphics Port (AGP) and PCI Express (PCIe) graphics ...
(GART), which apportions main memory as needed for texture storage. The maximum amount of system memory available to AGP is defined as the ''AGP
aperture
In optics, an aperture is a hole or an opening through which light travels. More specifically, the aperture and focal length of an optical system determine the cone angle of a bundle of rays that come to a focus in the image plane.
An opt ...
''.
History
The AGP slot first appeared on
x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was introd ...
-compatible system boards based on
Socket 7
Socket 7 is a physical and electrical specification for an x86-style CPU socket on a personal computer motherboard. It was released in June 1995. The socket supersedes the earlier Socket 5, and accepts P5 Pentium microprocessors manufactured by ...
Intel
P5 Pentium
Pentium is a brand used for a series of x86 architecture-compatible microprocessors produced by Intel. The original Pentium processor from which the brand took its name was first released on March 22, 1993. After that, the Pentium II and Pe ...
and
Slot 1
Slot 1 refers to the physical and electrical specification for the connector used by some of Intel's microprocessors, including the Pentium Pro, Celeron, Pentium II and the Pentium III. Both single and dual processor configurations were impleme ...
P6 Pentium II
The Pentium II brand refers to Intel's sixth-generation microarchitecture (" P6") and x86-compatible microprocessors introduced on May 7, 1997. Containing 7.5 million transistors (27.4 million in the case of the mobile Dixon with 256 KB ...
processors. Intel introduced AGP support with the i
440LX Slot 1 chipset on August 26, 1997, and a flood of products followed from all the major system board vendors.
The first Socket 7 chipsets to support AGP were the
VIA
Via or VIA may refer to the following:
Science and technology
* MOS Technology 6522, Versatile Interface Adapter
* ''Via'' (moth), a genus of moths in the family Noctuidae
* Via (electronics), a through-connection
* VIA Technologies, a Taiwan ...
Apollo VP3
Apollo VP3 (alias ETEQ 6628) is a x86 based Socket 7 chipset which was manufactured by VIA Technologieshttp://ftp.build.bg/Drivers/Via/vp3/597.pdf and was launched in 1997.
On its time Apollo VP3 was a high performance, cost effective, and energ ...
,
SiS 5591/5592, and the
ALI
ʿAlī ibn Abī Ṭālib ( ar, عَلِيّ بْن أَبِي طَالِب; 600 – 661 CE) was the last of four Rightly Guided Caliphs to rule Islam (r. 656 – 661) immediately after the death of Muhammad, and he was the first Shia Imam. ...
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.
Early video chipsets featuring AGP support included the
Rendition Vérité V2200,
3dfx
3dfx Interactive was an American technology company headquartered in San Jose, California, founded in 1994, that specialized in the manufacturing of 3D graphics processing units, and later, video cards. It was a pioneer in the field from the l ...
Voodoo Banshee
3dfx Interactive was an American technology company headquartered in San Jose, California, founded in 1994, that specialized in the manufacturing of 3D graphics processing units, and later, video cards. It was a pioneer in the field from the l ...
,
Nvidia
Nvidia CorporationOfficially written as NVIDIA and stylized in its logo as VIDIA with the lowercase "n" the same height as the uppercase "VIDIA"; formerly stylized as VIDIA with a large italicized lowercase "n" on products from the mid 1990s to ...
RIVA 128
Released in August 1997 by Nvidia, the RIVA 128, or "NV3", was one of the first consumer graphics processing units to integrate 3D acceleration in addition to traditional 2D and video acceleration. Its name is an acronym for ''Real-time Interactiv ...
,
3Dlabs
3Dlabs was a fabless semiconductor company. It was founded in 1994 with headquarters in San Jose, California. It originally developed the GLINT and PERMEDIA high-end graphics chip technology, that was used on many of the world's leading computer g ...
PERMEDIA 2,
Intel i740,
ATI Rage series
The ATI Rage (stylized as RAGE or rage) is a series of graphics chipsets developed by ATI Technologies offering graphical user interface (GUI) 2D acceleration, video acceleration, and 3D acceleration developed by ATI Technologies. It is the ...
,
Matrox
Matrox Graphics, Inc. is a producer of video card components and equipment for personal computers and workstations. Based in Dorval, Quebec, Canada, it was founded in 1976 by Lorne Trottier and Branko Matić. The name is derived from "Ma" in Mat ...
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
Windows 95 is a consumer-oriented operating system developed by Microsoft as part of its Windows 9x family of operating systems. The first operating system in the 9x family, it is the successor to Windows 3.1x, and was released to manufacturin ...
OEM Service Release 2'' (OSR2 version 1111 or 950B) via the ''USB SUPPLEMENT to OSR2'' patch. 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
Windows NT 4.0 is a major release of the Windows NT operating system developed by Microsoft and oriented towards businesses. It is the direct successor to Windows NT 3.51, which was released to manufacturing on July 31, 1996, and then to retail ...
with
Service Pack
In computing, a service pack comprises a collection of updates, fixes, or enhancements to a software program delivered in the form of a single installable package. Companies often release a service pack when the number of individual patches to a ...
3, introduced in 1997.
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
support for AGP enhanced fast data transfers was first added in 1999 with the implementation of the
AGPgart kernel module.
Later use
With the increasing adoption of PCIe, graphics cards manufacturers continued to produce AGP cards as the standard became obsolete. As GPUs began to be designed to connect to PCIe, an additional PCIe-to-AGP bridge-chip was required to create an AGP-compatible graphics card. The inclusion of a bridge, and the need for a separate AGP card design, incurred additional board costs.
The GeForce 6600 and ATI Radeon X800 XL, released during 2004–2005, were the first bridged cards. In 2009 AGP cards from Nvidia had a ceiling of the
GeForce 7 Series
The GeForce 7 series is the seventh generation of Nvidia's GeForce graphics processing units. This was the last series available on AGP cards.
A slightly modified GeForce 7-based card (more specifically based on the 7800GTX) is present as the ...
. In 2011
DirectX
Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct", ...
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 AMD 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; 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.
By 2010, no new motherboard chipsets supported AGP and few new motherboards had AGP slots, however some continued to be produced with older AGP-supporting chipsets.
In 2016, Windows 10 version 1607 dropped support for AGP. Possible future removal of support for AGP from open source Linux kernel drivers was considered in 2020.
Versions
Intel released "AGP specification 1.0" in 1997.
[ It specified 3.3 V signals and 1× and 2× speeds.] Specification 2.0 documented 1.5 V signaling, which could be used at 1×, 2× and the additional 4× speed and 3.0 added 0.8 V signaling, which could be operated at 4× and 8× speeds.[ (1× and 2× speeds are physically possible, but were not specified.)
Available versions are listed in the adjacent table.
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
Computer-aided design (CAD) is the use of computers (or ) to aid in the creation, modification, analysis, or optimization of a design. This software is used to increase the productivity of the designer, improve the quality of design, improve c ...
applications employed in the fields of architecture, machining, engineering, simulations, and similar fields.
64-bit AGP
A 64-bit
In computer architecture, 64-bit Integer (computer science), integers, memory addresses, or other Data (computing), data units are those that are 64 bits wide. Also, 64-bit central processing unit, CPUs and arithmetic logic unit, ALUs are those ...
channel was once proposed as an optional standard for AGP 3.0 in draft documents, 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
PCI may refer to:
Business and economics
* Payment card industry, businesses associated with debit, credit, and other payment cards
** Payment Card Industry Data Security Standard, a set of security requirements for credit card processors
* Prov ...
on a PCI Express
PCI Express (Peripheral Component Interconnect Express), officially abbreviated as PCIe or PCI-e, is a high-speed serial computer expansion bus standard, designed to replace the older PCI, PCI-X and AGP bus standards. It is the common ...
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 (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
Biostar Microtech International Corp. () is a Taiwanese company which designs and manufactures computer hardware products such as motherboards, video cards, expansion cards, thermal grease, headphones, home theater PCs, remote controls, desktops ...
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
The Advanced Graphics Riser is a variation of the Accelerated Graphics Port (AGP) used in some PCIe
PCI Express (Peripheral Component Interconnect Express), officially abbreviated as PCIe or PCI-e, is a high-speed serial computer expansi ...
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, but does not support all AGP cards; the manufacturer published a list of some cards and chipsets that work with the modified slot.
Compatibility
AGP cards are backward
Backward or Backwards is a relative direction.
Backwards or Sdrawkcab (the word "backwards" with its letters reversed) may also refer to:
* "Backwards" (''Red Dwarf''), episode of sci-fi TV sitcom ''Red Dwarf''
** ''Backwards'' (novel), a nov ...
and forward compatible
Forward compatibility or upward compatibility is a design characteristic that allows a system to accept input intended for a later version of itself. The concept can be applied to entire systems, electrical interface
Interface or interfacing may ...
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
The GeForce 6 series (codename NV40) is Nvidia's sixth generation of GeForce graphic processing units. Launched on April 14, 2004, the GeForce 6 family introduced PureVideo post-processing for video, '' SLI'' technology, and ''Shader Model 3.0 ...
series (except the 6200) or ATI's Radeon X800
The R420 Graphics processing unit, GPU, developed by ATI Technologies, was the company's basis for its 3rd-generation DirectX 9.0/OpenGL 2.0-capable graphics cards. Used first on the Radeon X800, the R420 was produced on a 0.13 micrometre, microm ...
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
The GeForce FX or "GeForce 5" series (codenamed NV30) is a line of graphics processing units from the manufacturer Nvidia.
Overview
Nvidia's GeForce FX series is the fifth generation of the GeForce line. With GeForce 3, the company introduced pr ...
series (FX 5200, FX 5500, FX 5700, some FX 5800, FX 5900 and some FX 5950), certain Geforce 6 Series and 7 series (few cards were made with 3.3v support except for 6200 where 3.3v support was common) and the ATI Radeon 9500/9700/9800 (R300/R350) (but not 9600/9800(R360/RV360)). Some Geforce 6200/6600/6800 and Geforce 7300/7600/7800/7900/7950 cards will function with AGP 1.0 (3.3v) slots, but those are really uncommon compared to their AGP 1.5v only versions.
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
An apple is an edible fruit produced by an apple tree (''Malus domestica''). Apple fruit tree, trees are agriculture, cultivated worldwide and are the most widely grown species in the genus ''Malus''. The tree originated in Central Asia, wh ...
Power Macintosh
The Power Macintosh, later Power Mac, is a family of personal computers designed, manufactured, and sold by Apple Computer as the core of the Macintosh brand from March 1994 until August 2006.
Described by ''MacWorld'' as "the most important te ...
computers with the Apple Display Connector
The Apple Display Connector (ADC) is a proprietary modification of the Digital video interface, DVI connector that combines analog and digital video signals, Universal Serial Bus, USB, and power all in one Electrical cable, cable. It was used in ...
(ADC) have an extra connector which delivers power to the attached display. Some cards designed to work with a specific CPU architecture
Processor design is a subfield of computer engineering and electronics engineering (fabrication) that deals with creating a processor, a key component of computer hardware.
The design process involves choosing an instruction set and a certain exec ...
(e.g., PC, Apple) may not work with others due to firmware
In computing, firmware is a specific class of computer software that provides the low-level control for a device's specific hardware. Firmware, such as the BIOS of a personal computer, may contain basic functions of a device, and may provide h ...
issues.
Mark Allen of Playtools.com made the following comments regarding Practical AGP Compatibility for AGP 3.0 and AGP 2.0:
Power consumption
Actual power supplied by an AGP slot depends upon the card used. The maximum current
Currents, Current or The Current may refer to:
Science and technology
* Current (fluid), the flow of a liquid or a gas
** Air current, a flow of air
** Ocean current, a current in the ocean
*** Rip current, a kind of water current
** Current (stre ...
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,[ an AGP 3.0 slot can supply up to 48.25 ]watt
The watt (symbol: W) is the unit of power or radiant flux in the International System of Units (SI), equal to 1 joule per second or 1 kg⋅m2⋅s−3. It is used to quantify the rate of energy transfer. The watt is named after James Wa ...
s; 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.
Protocol
An AGP bus is a superset of a 66 MHz conventional PCI
Peripheral Component Interconnect (PCI) is a local computer bus for attaching hardware devices in a computer and is part of the PCI Local Bus standard. The PCI bus supports the functions found on a processor bus but in a standardized format th ...
bus and, immediately after reset, follows the same protocol. The card must act as a PCI target, and optionally may act as a PCI master. (AGP 2.0 added a "fast writes" extension which allows PCI writes from the motherboard to the card to transfer data at higher speed.)
After the card is initialized using PCI transactions, AGP transactions are permitted. For these, the card is always the AGP master and the motherboard is always the AGP target. The card queues multiple requests which correspond to the PCI address phase, and the motherboard schedules the corresponding data phases later. An important part of initialization is telling the card the maximum number of outstanding AGP requests which may be queued at a given time.
AGP requests are similar to PCI memory read and write requests, but use a different encoding on command lines C/BE :0and are always 8-byte aligned; their starting address and length are always multiples of 8 bytes (64 bits). The three low-order bits of the address are used instead to communicate the length of the request.
Whenever the PCI GNT# signal is asserted, granting the bus to the card, three additional status bits ST :0indicate the type of transfer to be performed next. If the bits are 0xx
, a previously queued AGP transaction's data is to be transferred; if the three bits are 111
, the card may begin a PCI transaction or (if sideband addressing is not in use) queue a request in-band using PIPE#.
AGP command codes
Like PCI, each AGP transaction begins with an address phase, communicating an address and 4-bit command code. The possible commands are different from PCI, however:
; 000p: Read
: Read 8×(AD :01) = 8, 16, 24, ..., 64 bytes. The least significant bit p is 0 for low-priority, 1 for high.
; 001x: (reserved):
; 010p: Write
: Write 8×(AD :01) = 8–64 bytes.
; 011x: (reserved):
; 100p: Long read
: Read 32×(AD :01) = 32, 64, 96, ..., 256 bytes. This is the same as a read request, but the length is multiplied by four.
; 1010: Flush
: Force previously written data to memory, for synchronization. This acts as a low-priority read, taking a queue slot and returning 8 bytes of random data to indicate completion. The address and length supplied with this command are ignored.
; 1011: (reserved):
; 1100: Fence
: This acts as a memory fence
In computing, a memory barrier, also known as a membar, memory fence or fence instruction, is a type of barrier instruction that causes a central processing unit (CPU) or compiler to enforce an ordering constraint on memory operations issued be ...
, requiring that all earlier AGP requests complete before any following requests. Ordinarily, for increased performance, AGP uses a very weak consistency model
In computer science, a consistency model specifies a contract between the programmer and a system, wherein the system guarantees that if the programmer follows the rules for operations on memory, memory will be consistent and the results of readi ...
, and allows a later write to pass an earlier read. (E.g. after sending "write 1, write 2, read, write 3, write 4" requests, all to the same address, the read may return any value from 2 to 4. Only returning 1 is forbidden, as writes must complete before following reads.) This operation does not require any queue slots.
; 1101: Dual address cycle
: When making a request to an address above 232, this is used to indicate that a second address cycle will follow with additional address bits. This operates like a regular PCI dual address cycle; it is accompanied by the low-order 32 bits of the address (and the length), and the following cycle includes the high 32 address bits and the desired command. The two cycles make one request, and take only one slot in the request queue. This request code is not used with side-band addressing.
; 111x: (reserved):
AGP 3.0 dropped high-priority requests and the long read commands, as they were little used. It also mandated side-band addressing, thus dropping the dual address cycle, leaving only four request types: low-priority read (0000), low-priority write (0100), flush (1010) and fence (1100).
In-band AGP requests using PIPE#
To queue a request in-band, the card must request the bus using the standard PCI REQ# signal, and receive GNT# plus bus status ST :0equal to 111
. Then, instead of asserting FRAME# to begin a PCI transaction, the card asserts the PIPE# signal while driving the AGP command, address, and length on the C/BE :0 AD 1:3and AD :0lines, respectively. (If the address is 64 bits, a dual address cycle similar to PCI is used.) For every cycle that PIPE# is asserted, the card sends another request without waiting for acknowledgement from the motherboard, up to the configured maximum queue depth. The last cycle is marked by deasserting REQ#, and PIPE# is deasserted on the following idle cycle.
Side-band AGP requests using SBA :0/h2>
If side-band addressing is supported and configured, the PIPE# signal is not used. (And the signal is re-used for another purpose in the AGP 3.0 protocol, which requires side-band addressing.) Instead, requests are broken into 16-bit pieces which are sent as two bytes across the SBA bus. There is no need for the card to ask permission from the motherboard; a new request may be sent at any time as long as the number of outstanding requests is within the configured maximum queue depth. The possible values are:
; 0aaa aaaa aaaa alll
: Queue a request with the given low-order address bits A 4:3and length 8×(L :01). The command and high-order bits are as previously specified. Any number of requests may be queued by sending only this pattern, as long as the command and higher address bits remain the same.
; 10cc ccra aaaa aaaa
: Use command C :0and address bits A 3:15for future requests. (Bit R is reserved.) This does not queue a request, but sets values that will be used in all future queued requests.
; 110r aaaa aaaa aaaa
: Use address bits A 5:24for future requests.
; 1110 aaaa aaaa aaaa
: Use address bits A 7:36for future requests.
; 1111 0xxx
, 1111 10xx
, 1111 110x
: ''Reserved, do not use.''
; 1111 1110
: Synchronization pattern used when starting the SBA bus after an idle period.
; 1111 1111
: No operation
In computer science, a NOP, no-op, or NOOP (pronounced "no op"; short for no operation) is a machine code, machine language instruction and its assembly language mnemonic, programming language statement, or protocol (computing), computer protoc ...
; no request. At AGP 1× speed, this may be sent as a single byte and a following 16-bit side-band request started one cycle later. At AGP 2× and higher speeds, all side-band requests, including this NOP, are 16 bits long.
Sideband address bytes are sent at the same rate as data transfers, up to 8× the 66 MHz basic bus clock. Sideband addressing has the advantage that it mostly eliminates the need for turnaround cycles on the AD bus between transfers, in the usual case when read operations greatly outnumber writes.
AGP responses
While asserting GNT#, the motherboard may instead indicate via the ST bits that a data phase for a queued request will be performed next. There are four queues: two priorities (low- and high-priority) for each of reads and writes, and each is processed in order. Obviously, the motherboard will attempt to complete high-priority requests first, but there is no limit on the number of low-priority responses which may be delivered while the high-priority request is processed.
For each cycle when the GNT# is asserted and the status bits have the value 00p
, a read response of the indicated priority is scheduled to be returned. At the next available opportunity (typically the next clock cycle), the motherboard will assert TRDY# (target ready) and begin transferring the response to the oldest request in the indicated read queue. (Other PCI bus signals like FRAME#, DEVSEL# and IRDY# remain deasserted.) Up to four clock cycles worth of data (16 bytes at AGP 1× or 128 bytes at AGP 8×) are transferred without waiting for acknowledgement from the card. If the response is longer than that, both the card and motherboard must indicate their ability to continue on the third cycle by asserting IRDY# (initiator ready) and TRDY#, respectively. If either one does not, wait state
A wait state is a delay experienced by a computer processor when accessing external memory or another device that is slow to respond.
Computer microprocessors generally run much faster than the computer's other subsystems, which hold the data the ...
s will be inserted until two cycles after they both do. (The value of IRDY# and TRDY# at other times is irrelevant and they are usually deasserted.)
The C/BE# byte enable lines may be ignored during read responses, but are held asserted (all bytes valid) by the motherboard.
The card may also assert the RBF# (read buffer full) signal to indicate that it is temporarily unable to receive more low-priority read responses. The motherboard will refrain from scheduling any more low-priority read responses. The card must still be able to receive the end of the current response, and the first four-cycle block of the following one if scheduled, plus any high-priority responses it has requested.
For each cycle when GNT# is asserted and the status bits have the value 01p
, write data is scheduled to be sent across the bus. At the next available opportunity (typically the next clock cycle), the card will assert IRDY# (initiator ready) and begin transferring the data portion of the oldest request in the indicated write queue. If the data is longer than four clock cycles, the motherboard will indicate its ability to continue by asserting TRDY# on the third cycle. Unlike reads, there is no provision for the card to delay the write; if it didn't have the data ready to send, it shouldn't have queued the request.
The C/BE# lines ''are'' used with write data, and may be used by the card to select which bytes should be written to memory.
The multiplier in AGP 2×, 4× and 8× indicates the number of data transfers across the bus during each 66 MHz clock cycle. Such transfers use source synchronous Source-Synchronous clocking refers to a technique used for timing symbols on a digital interface. Specifically, it refers to the technique of having the transmitting device send a clock signal along with the data signals. The timing of the unidirec ...
clocking with a "strobe" signal (AD_STB AD_STB and SB_STB) generated by the data source. AGP 4× adds complementary strobe signals.
Because AGP transactions may be as short as two transfers, at AGP 4× and 8× speeds it is possible for a request to complete in the middle of a clock cycle. In such a case, the cycle is padded with dummy data transfers (with the C/BE# byte enable lines held deasserted).
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).
PCI signals omitted are:
* The −12 V supply
* The third and fourth interrupt requests (INTC#, INTD#)
* The JTAG
JTAG (named after the Joint Test Action Group which codified it) is an Technical standard, industry standard for verifying designs and testing printed circuit boards after manufacture.
JTAG implements standards for on-chip instrumentation in ele ...
pins (TRST#, TCK, TMS, TDI, TDO)
* The SMBus The System Management Bus (abbreviated to SMBus or SMB) is a single-ended simple two-wire bus for the purpose of lightweight communication. Most commonly it is found in computer motherboards for communication with the power source for ON/OFF instru ...
pins (SMBCLK, SMBDAT)
* The IDSEL pin; an AGP card connects AD 6to 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 :0(and AD_STB :0 in AGP 2.0)
* The sideband address bus SBA :0and SB_STB (and SB_STB# in AGP 2.0)
* The ST :0status 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
This is a list of interface bit rates, is a measure of information transfer rates, or digital bandwidth capacity, at which digital interfaces in a computer or network can communicate over various kinds of buses and channels. The distinction can ...
* Serial Digital Video Out for ADD DVI adapter cards
* AGP Inline Memory Module
AGP Inline Memory Module (AIMM) also known as Graphics Performance Accelerator (GPA) is an expansion card that fits in the AGP slot of PC motherboards based on Intel 815 chipsets with onboard graphics, like the ASUS CUSL-2 with an AGP Pro slot a ...
Notes
References
External links
Archived AGP Implementors Forum
* AGP specifications
1.0
2.0
3.0
Pro 1.0
Pro 1.1a
AGP pinout
(with pictures)
contains AGP specs.
Universal Accelerated Graphics Port (UAGP)
A discussion from 2003 of what AGP aperture is, how it works, and how much memory should be allocated to it.
{{Computer-bus
Macintosh internals
IBM PC compatibles
Intel graphics
Motherboard expansion slot
Peripheral Component Interconnect