Accelerated Graphics Port (AGP)
With the persistent advancement of PC hardware, it wasn't long before the video card was starved for bandwidth by other bandwidth-hungry PCI devices.
The idea behind AGP is very simple: make a fast, dedicated port just for the graphics card. In its essence, AGP is nothing more than a private PCI bus for the video card. AGP is based on the PCI 2.1specifcation (which was never fully implemented on PC's) and provides for several enhancements.
AGP is a 32-bit bus, which runs on a 66Mhz clock (twice as fast as the PCI bus).
The video has to share bandwidth here
AGP is private and dedicated to the video
AGP bandwidth can be increased, not by raising the clock speed, but by using a special "double clocking" technique (known as AGP 2X). This allows the AGP card to transfer information on both edges of the clock pulse, doubling bandwidth to 533MB/sec. AGP 4X goes even further by performing two transfers per clock edge, or 4 transfers per clock cycle.
4X mode is supported by many of the newer chipsets and graphics cards on the market, but thus far, no graphics card can truly take advantage of this massive amount of bandwidth, and as such, users will see little to no benefit in using AGP 4X. There have also been operational and compatibility problems experienced by users trying to run AGP 4X.
In its original incarnation, AGP was intended to cut down the requirement for local video memory by giving the AGP bus direct access to the system memory for the storage of textures. In a standard PCI graphics implementation, texture data has to be stored in both the local video memory and in the system memory (for the CPU to keep track of). This storage of the same information in two places wastes memory, which limits the size of the textures that can be stored.
When texture information is required, the system looks in the local video memory first. If the information is not there, the system will have to prefetch it from main memory. Or in other words, try to find the texture data it needs in the system memory, and copy it to the local video memory before the texture needs to be applied. If the texture cannot be fetched fast enough, the user will see a visible "stutter" or slow down in the display.