Currently there are two video card
interfaces on PCs: PCI and AGP. PCI (Peripheral Component Interconnect) is a
32-bit, 33MHz bus that has a maximum bandwidth of only 132 megabytes per second
(33 MHz x 32 bits / 8 bits per byte = 132 megabytes/second). Clearly, that's
very slow compared to the memory speed of today's video cards, some of which
have throughputs of over 2 gigabytes per second. In addition, the bandwidth of
the PCI bus is shared with other devices, so the disk controller(s), sound card,
and any other PCI devices all take a chunk out of
that number. That doesn't leave very much for the video card. For this reason, PCI
video cards are not common since most new motherboards have AGP slots. AGP (Accelerated Graphics
Port) is a dedicated video card interface that is actually a specialized version of
PCI. AGP has four speeds: 1x, 2x, and 4x. AGP 1x's base bandwidth is
twice that of PCI since it runs at 66MHz. AGP 2x and 4x use other
tricks (like sideband addressing) to increase bandwidth further.
The maximum theoretical bandwidth of AGP 4x is a
little over a gigabyte per second (4 x 66MHz x 32 bits / 8 bits per byte = 1,056
megabytes per second). That's respectable, but it's still less than half of the
speed of the fastest video cards' memory. AGP has some other selling points that
sound nice in theory but aren't so great in practice. One is known as DiME
(Direct Memory Execute), or simply AGP texturing. It allows a video chip to
render textures directly from system memory without having to go through the
video card's memory.
The idea behind this was that video cards would
need less video memory since cheaper main memory could be used for textures. In
practice, AGP texturing is quite slow. This is due partly to the lack of
bandwidth of the interface and mostly to the slowness of the system memory.
However, it does allow scenes with extremely large and/or numerous textures to
be used, where a PCI video card would be slowed to a crawl by all the texture
swapping between the video and system memory. AGP also allows for direct
communication with the CPU, which allows video data to go straight from the
processor to the video card, thereby bypassing main memory, saving bandwidth,
and increasing speed. Again, in practice this doesn't seem to make much of a
difference. Ultimately the main benefit of AGP over PCI is its
I have read recently that
Intel is working on a new 8x AGP implementation, but unless main memory speed
increases drastically in the near future, this won't be much more of a help than
AGP 4x is now. While the speed increase going from 1x to 2x AGP is significant,
there are few situations in which AGP 4x actually makes a difference, so I don't
expect 8x to be much of an improvement.
I'd like to see Intel make
a 64-bit AGP interface, but since main memory is still so slow in comparison to
video memory, I doubt it'd help either, and in the near future would probably
just add cost since it'd need a physically larger interface and more circuitry.
What I'd really like to see is better methods of connecting the video card to
the CPU, since the current ones don't help and main system memory is just too
slow. Overall I don't expect any significant improvements in interface
technology for a while.