The Video Card Interface

Modern video systems involve a great deal of information that must be moved around, particularly between the video card, the processor and the system memory. The video system interface is the method by which the video coprocessor and video memory are connected to the rest of the computer.
The video card requires more I/O bandwidth to the processor and memory than any other device in the system. So much so, that video performance has traditionally been the driving factor for the creation of newer and faster system buses. Local buses were created to address the bottleneck in data transfer between the processor and video card that became acute when graphical operating systems became the standard. Since 1980 - date of birth of the PC - 4 differents kinds of connection were launched on the market. They are:



ISA bus

The ISA bus is the standard (slow) I/O bus still used since a few years ago in virtually all PCs for low-bandwidth peripherals such as modems. Older PCs, typically those from before 1993, used ISA-based video cards as well.
ISA video cards are totally obsolete. Due to the limitations of the ISA bus, they are extremely slow by today's standards, and not suited to the use of a graphical operating system like Windows. They also, due to their age, tend to be more limited in terms of acceleration functions, and have less memory on board as well. While it is possible that a high-end ISA card can be a decent performer if it has an advanced set of on-board acceleration features, in practice even a cheap PCI or AGP video card will generally outperform even a good ISA card, and by a lot. They are adequate for many DOS uses, character-based applications, and some very old games, but even there you're really stretching it.
ISA video cards still have one important use even today - they can be helpful if a serious system error occurs, like a corrupted BIOS. In fact, a wrong BIOS is flashed on the motherboard, or a power failure occurs during the flash operation, the system cannot even boot up. In some cases an emergency mini-BIOS is loaded, but it supports, for all I/O related operations, only the old ISA bus. So, if the motherboard supports it and an ISA video card is available, it can be used to boot the PC and flash the correct BIOS. If not, all this must be done without seeing anything.
top



VESA local bus

The VESA Local Bus, also called VL-Bus or more commonly VLB, was the first local bus used on PCs. Introduced in 1992, VLB video became very popular during the heyday of the 486, in particular 1993 to 1994. VLB cards can be easily identified by their longer connectors, compared to standard ISA card slots. See here for details on the VESA local bus.
VLB video cards provide, in general, much better performance than ISA cards. This is primarily due to the fact that the 32-bit local bus used by VLB cards allows for several times more data throughput between the card and the processor than ISA allows. VLB has however had its own share of problems. In particular, VLB video cards may cause reliability problems in motherboards running at 40 or 50 MHz.
Many VLB cards were very good performers, but were hampered by their general age, along with that of the motherboards they ran in.

Note: VESA Local Bus video is generally limited to 486 PCs (or other motherboards that use a fourth-generation processor). The vast majority of Pentiums and later PCs use PCI (or AGP) and do not support VLB at all, although there are some very old Pentium systems that are VLB-based.
top



PCI local bus

The most popular I/O interface used in current motherboards is the Peripheral Component Interconnect (PCI) bus, although in recent years the AGP port replaced it for video I/O. Developed by Intel and introduced in 1993, PCI became popular as the Pentium came to dominate the market, and is now the standard of choice in most systems.
Like the VESA Local Bus, PCI is a 32-bit bus that normally runs at a maximum of 33 MHz, but it provides superior performance to the VLB; in fact, PCI is the highest performance general I/O bus currently used on PCs. This is due to several factors:
top



AGP

Why a new standard?

Much as was the case with the ISA bus before it, during 1997 traffic on the PCI bus started to become heavy on high-end PCs, with video, hard disk and peripheral data all competing for the same I/O bandwidth. To combat the eventual saturation of the PCI bus with video information, a new interface has been pioneered by Intel, designed specifically for the video subsystem. It is called the Accelerated Graphics Port or AGP.
AGP was developed in response to the trend towards greater and greater performance requirements for video. As software evolves and computer use continues into previously unexplored areas such as 3D acceleration and full-motion video playback, both the processor and the video chipset need to process more and more information. The PCI bus is reaching its performance limits in these applications, especially with hard disks and other peripherals also in there fighting for the same bandwidth.
Another issue has been the increasing demands for video memory. As 3D computing becomes more mainstream, much larger amounts of memory become required, not just for the screen image but also for doing the 3D calculations. This traditionally has meant putting more memory on the video card for doing this work. There are two problems with this:

AGP gets around these problems by allowing the video processor to access the main system memory for doing its calculations. This is more efficient because this memory can be shared dynamically between the system processor and the video processor, depending on the needs of the system.

What AGP is?

The idea behind AGP is simple: create a faster, dedicated interface between the video chipset and the system processor. The interface is only between these two devices; this has three major advantages: it makes it easier to implement the port, makes it easier to increase AGP in speed, and makes it possible to put enhancements into the design that are specific to video.
AGP is considered a port, and not a bus, because it only involves two devices (the processor and video card) and is not expandable. One of the great advantages of AGP is that it isolates the video subsystem from the rest of the PC so there isn't nearly as much contention over I/O bandwidth as there is with PCI. With the video card removed from the PCI bus, other PCI devices will also benefit from improved bandwidth.

AGP performances:

The AGP bus is 32 bits wide, just the same as PCI is, but runs at doubled speed. This of course immediately doubles the bandwidth of the port; instead of the limit of 133 MB/s as with PCI, AGP in its lowest speed mode has a bandwidth of 266 MB/s. Plus of course the benefits of not having to share bandwidth with other PCI devices.
In addition to doubling the speed of the bus, AGP has defined a 2X mode, which uses special signaling to allow twice as much data to be sent over the port at the same clock speed. What the hardware does is to send information on both the rising and falling edges of the clock signal. Each cycle, the clock signal transitions from "0", to "1" ("rising edge"), and back to "0" ("falling edge"). While PCI for example only transfers data on one of these transitions each cycle, AGP transfers data on both. The result is that the performance doubles again, to 533 MB/s theoretical bandwidth. Nowadays a further implementation is used, the 4X mode, which performs four transfers per clock cycle and grants 1,066 MB/s of bandwidth, while the recently introducted AGP 8x allows to reach 2,133 MB/s.
But how can AGP sustain and achieve such high transfer rates? This is possible because AGP fully supports pipelining operations. For this reason, it can process data much faster and in a much more efficient manner than PCI can, in addition to that AGP also incorporates a special organization process for all pending and processing requests. For example, you have a request being processed, lets call it request x, and the following requests x + 1 and x + 2 are currently pending in memory. AGP allows you to complete request x while receiving and transmitting data necessary to complete requests x + 1 and x + 2 which allows much more to be accomplished in a shorter amount of time, this is a HUGE advantage over the standard PCI architecture and is exactly why AGP is being implemented mainly as a 3D solution.
As mentioned before AGP allows the graphics card to access your system's main memory, therefore AGP memory is simply dynamically-allocated portions of your system's main memory. Meaning that AGP provides a fast access path to your system memory which is provided by some integrated functions in the chipset which allows the AGP card and the software using AGP to access the same memory addresses. This process allows the graphics hardware to address large texture maps as single data objects. The hardware that provides this support is referred to as the Graphics Address Remapping Table, or GART for short.

Problems:

This is certainly very interesting, but there's only one problem: this can be more than the bandwidth of the entire system bus of a modern PC! In this table there is a summary of the system bandwith for PCs sold in the next 5 years:

CPU Intel PentiumII / PentiumIII Intel Pentium 4 AMD K6-2 / K6-III AMD Athlon
Bus width 64 bits 64 bits 64 bits 64 bits
Bus Frequency 66 / 100 / 133 MHz 400 / 533 MHz (800 MHz upcoming) 66 / 100 MHz 200 / 266 / 333 MHz (400 MHz upcoming?)
Bus bandwidth 533 / 800 / 1,066 MB/s 3,200 / 4,266 MB/s (6,400) 533 / 800 MB/s 1,600 / 2,133 / 2700 MB/s (3,200?)

XXXX: like AGP 2x or better
XXXX: like AGP 4x or better
XXXX: like AGP 8x or better

As we can see, only the most recent PCs have a system bandwidth equal or higher than the AGP one; also worth remembering is that the CPU also needs to have access to the system memory, not just the video subsystem. If all of system bandwidth is taken up by video over AGP, what is the processor going to do? Again here, going to higher system speed helps immensely. In practical terms, the jury is still out on AGP and will be for a while, though there can be no denying its tremendous promise.
Another big problem dealing with AGP is that, although AGP bus is very fast (as fast as the system bus, in some cases), the RAM - usually DDR-SDRAM - used in recent video cards is even faster, much more than system RAM is: in recent boards, it can reach frequencies of 300 MHz and more (that become 600, thanks to DDR technology), with a 128 or even 256 bits-wide bus, while the RAM bus is only 64 bits wide! Moreover, today's 3D video cards are sold with huge quantities of memory on board, usually from 32 to 128 MB (but even 256, on high-end professional cards). This means two things:

Conclusions:

So, can we say that AGP is useless? This is not true: first of all, a low bandwidth is better that no bandwidth at all. If the data had to pass through PCI, if would be MUCH worse; furthermore, having a dedicated connection for the video card is a good thing, because it discharges the PCI bus from an always bandwidth-hungry device: in this way the limited bandwidth of PCI can be entirely shared among IDE drives (hard disks, DVD players and so on) and slow peripherals, like internal modems and sound cards, without damaging their performances.
top