Is PCI better than AGP

The Hardware Guide

AGP - PCI  Which is Better !!

Technical Background of AGP

AGP has several advantages over PCI. It offers a minor data transfer rate advantage when it comes to moving the geometry stream from the CPU to the graphics card. When it comes to managing large texture databases, AGP’s GART table allows the OS to manage textures in off screen memory as well as in system memory, and allows the graphics card to access them directly in either location. Prior to AGP, the game developer had three options for methods to manage textures:

  1. Limit the texture database to whatever would fit in off-screen memory only. This usually delivers outstanding frame rates, but memory size constraints can limit artistic creativity. Depending on the graphics card, texture space could be as low as only one megabyte or possibly as high as five or six megabytes.
  2. Use the OS to manage textures in main memory, and require the CPU to copy textures from main memory to graphics memory as needed. This is PAINFULLY slow. In order to make AGP look as good as possible, Intel likes to compare AGP to this mode. This is what DirectX Retained Mode does, but game developers do not generally use this method.
  3. Place the most frequently used textures in off screen memory (like #1 above), then lock down a few additional megabytes of system memory for the remainder of the texture database. If the graphics chip needs a texture that is not in graphics memory, then the accelerator must use PCI master mode (DMA) to copy the needed texture, on demand, into texture swap space in graphics memory. Performance is very good. This has been the preferred approach for game developers, and can be programmed under Direct X Immediate Mode.

AGP is a modified approach to option 3. Memory management is a little more flexible, and the data transfer rate is better because of AGP’s faster clock speed and bus pipelining.

Intel is always trying to stir up more ways to persuade users to dump their PCI Pentium 233 systems ASAP, and go buy a more costly P3 AGP system. Intel’s Mission is not to "Accelerate 3D Graphics", but rather to "Accelerate Obsolescence".

The other side of the performance equation is the CPU. What happens to the CPU when AGP texturing is activated? When AGP texturing is turned on, the graphics card takes control of the main memory bus in order to access texture data. When this happens, the CPU is locked out of main memory. If the CPU is not very busy, this may not be a problem. But if the CPU is engaged in a computationally challenging task (such as a game) it is highly possible that the CPU may stall, waiting for its turn to access main memory.  The main memory conflicts between the CPU and the graphics controller will result in a CPU performance reduction of more than 10%. This assumes the use of a Pentium II with the back side cache intact. The cacheless Covington would be brought to its knees under these circumstances.

The assumption that AGP is a little faster now, but will be a lot faster when it is "really turned on" is completely false. In fact the opposite is true. In most cases, system which actually use AGP for textures will be potentially 40% slower than systems which use local graphics memory for textures instead.


Is PCI better than AGP?

No. AGP is more powerful, more flexible, and has more potential than PCI. If you have the choice, and everything else is equal, AGP should be preferred. However, the power user must be made aware that this flexibility can be used to create resource conflicts that might be unfavorable for ultimate game performance. In contrast, these trade-offs may be perfectly acceptable for the mainstream user. On the whole, the urgency to invest in an upgrade to AGP is not all that it is cracked up to be.


Is AGP faster than PCI?

"Yes, but not by much."

AGP is definitely faster than PCI.  According to Read 3d ,   the theoretical bandwidths of AGP and PCI are 533 MB/sec and 133 MB/sec, respectively.  With existing systems, we can demonstrate greater than 330 MB/sec through AGP.  Due to contention with other devices on the PCI bus and the lack of pipelining, PCI offers roughly 80 MB/sec.  Even without using any of the extra features of AGP, the AGP bus runs at 66 MHz and the PCI bus runs at 33 MHz so AGP provides double the data rate.  HA HA HA                                                                           .......(from Intel docs)

Theoretical peak bandwidth numbers can easily be used for impressing people. However when it comes down to real world applications how much is left from this four time speed.


Does AGP enhance CPU performance?

"No.  When AGP texturing is used, CPU performance also decreases."

Accessing local card memory will always be faster, unless the local memory interface was designed very poorly. Local graphics memory gets more and more each year, 16 MB will soon be the rule. High end OpenGL cards use up to 64 MB and more, why would they do that if AGP was a real alternative? Memory gets cheaper by the hour. It's simply untrue to say that local memory will be a problem. It's cheap, it's available and the amount is increasing by 100% every year for the last 4 years. AGP is a *cost saving* solution, not a high end solution!!!! 


When that time comes, should I buy a faster CPU or more graphics memory?

Intel wants you to think that you need a faster CPU, when in fact all you may need is a few dollars worth of graphics memory…


Don’t I need AGP2x or 4x for the future?

All AGP4x does is allow the graphics controller to assert more of its texture bandwidth demand on main memory. This is the source of the performance conflict, and 4x allows it to become a bigger problem. But there are two sides to examine: Texture demand and geometry transfer rates. We will do that in a minute.

When it is all said and done, the central issue is about graphics memory. The AGP vs. PCI issue gets dragged in because AGP is proposed as an alternative way to access more memory. Let me re-summarize my philosophy on this matter.

RULE #1 - Make sure that you have adequate graphics memory. If you have adequate graphics memory, you will not observe much of a performance difference between AGP and PCI. If you do not have adequate graphics memory, you are eventually going to run into texture related performance problems with PCI or with AGP. There are MANY variables that determine how big those problems are, and how they should best be solved.

Though I don’t think AGP is bad, relying on AGP’s execute mode texturing to recover from breaking Rule#1, is a less than ideal solution. It may potentially sacrifice MIPS, sacrifice accelerator performance, or both. If you already paid for AGP, and you inadvertently violated rule #1 in the process, AGP becomes a convenient, "no additional cost" way to deal with the problem. Convenient it is, but performance is another matter, and performance is not "free".

So far, texture bandwidth demand has grown to become quite significant, but the future holds further astronomical growth in texture bandwidth requirements for the high performance gamer.

Today and in the future, high quality rendering modes use multitexturing, trilinear mip-mapped texturing, or anisotropic texturing. In these modes, the rendering engine must access 8 to 16 or more texels for each pixel that is created. At a depth complexity of three, the rendering engine will have to do this three times for each pixel on the display in every frame.

Using these assumptions, following is a table that shows the raw texture bandwidth required to deliver content at the resolutions and quality levels described below. The columns define the level of quality that the PC enthusiast expects (or expected) during that year.

It is not AGP or PCI that determines the performance of your 3D accelerator. Performance will be determined by the accelerator chip and its memory resources. The bottom line is, don’t choose your accelerator based on its bus interface. Choose it based on the chip that is on the board and by how its DRAM is configured.