AGP is built on the idea of improving the ways that PCI transports data to the CPU. Intel achieved this by addressing all of the areas where PCI transfers were causing data bottlenecks in the system. By clearing the traffic jams of data, AGP increases the speed at which machines can render graphics while using the system's resources more efficiently to reduce overall drag. Here's how:
- Dedicated Port - There are no other devices connected to the AGP other than the graphics card. With a dedicated path to the CPU, the graphics card can always operate at the maximum capacity of the connection.
- Pipelining - This method of data organization allows the graphics card to receive and respond to multiple packets of data in a single request. Here's a simplified example of this: With AGP, the graphics card can receive a request for all of the information needed to render a particular image and send it out all at once. With PCI, the graphics card would receive information on the height of the image and wait... then the length of the image, and wait... then the width of the image, and wait... combine the data, and then send it out.
- Sideband addressing - Like a letter, all requests and information sent from one part of your computer to the next must have an address containing "To" and "From." The problem with PCI is that this "To" and "From" information is sent with the working data all together in one packet. This is the equivalent of including an address card inside the envelope when you send a letter to a friend: Now the post office has to open the envelope to see the address in order to know where to send it. This takes up the post office's time. In addition, the address card itself takes up room in the envelope, reducing the total amount of stuff you can send to your friend. With sideband addressing, the AGP issues eight additional lines on the data packet just for addressing. This puts the address on the outside of the envelope, so to speak, freeing up the total bandwidth of the data path used to transfer information back and forth. In addition, it unclogs system resources that were previously used to open the packet to read the addresses.