*** also see Microsoft's Bus Technologies page (tons of info !!)

As a user, you will never see or deal directly with a bus, but in order to understand how data flows within your PC, you need to know about these.  Each bus within your PC is an expressway for data to travel along.  A bus is a series of parallel electrical lines through which data flows.  It is different than the usual simple electrical circuit which consists of two leads . . . a positive and a ground.  A bus contains enough leads to allow an entire byte or multiple bytes to flow.  Therefore, a bus will be either 8 bits (the graphic above), 16 bits, or 32 bits wide.  As PC's progress, 64, 128, and 256-bit buses will become a reality as well.  This section deals with modern buses such as ISA, PCI, and AGP - and a brief statement on outdated buses such as MCA, EISA, and VESA.

Bus Overview

There are 5 modern buses which you should be familiar with.  ISA is fading away at this time, but is still found in many computers :

System Buses

I/O Buses

NOTE:  tech sources for the various buses all disagree with one another when it comes to the names for system buses.  In addition, I have yet to find a single source that spells out the exact connections of all the buses - we take care of that here with a comprehensive discussion of all the buses.  If you look around the Net - even the terms are all messed up.  For example, the Bus that extends from the CPU to the chipset, and then to the Memory, is called a frontside bus, a processor bus, a memory bus, and a system bus  -  depending on who you are listening to - four terms for one bus !!!  I plan to demystify all of this, and will take the time to show you the buses, and mention the various terms you may see.  I will also call this bus the "frontside bus" throughout, since that seems to be the most common.

A bus is named aptly - since it connects to multiple points, and picks up "passengers" (data) at each point.  The buses are the expressways of the PC.  A typical arrangement of buses is shown below.  Note that components such as the keyboard, parallel and serial ports - make their way to the CPU through the ISA bus and some chipset controllers.  On system that do not have ISA buses (only PCI), this is done via the PCI bus :

Data Buses vs Address Buses - here we will deal exclusively with Data buses, since when anyone talks about a bus - they are talking about a data bus.  The address bus is extremely important, since it supplies the addresses so that the exact location of the data can be found.  Nevertheless, since it is not really an issue when buying or understanding the basics of the PC - we will not go into any details as far as address buses are concerned.

System Buses vs I/O Buses  -  these are the two families of buses.  The system buses connect the processor to the rest of the system.  There are two system buses . . . the "BSB - BackSide Bus" which connects the CPU to the L2 cache, and the "FSB - FrontSide Bus - also called the Memory bus" which connects the CPU to the main memory (the RAM).

The I/O buses provide a conduit for data to flow in and out of the system.  There are a number of I/O buses, such as the expansion buses which connect the memory to the expansion cards (video, sound, modem, etc), the USB bus which connects the memory to the USB ports, etc.   

The following diagram is another generic overview.  Keep in mind that there are many variations of architecture out there - however, this diagram does apply to the vast majority of modern PC's. 


The Frontside Bus - note that I have shown the frontside bus as a combination of two buses.  It does pass through a motherboard controller, and then accesses RAM.  Some call this the "system bus", or the "memory bus" -  so just be aware of this confusing fact.  I will simply refer to it a the frontside bus, and it's function is twofold :

The "Expansion" Bus - "Expansion Card" Fiasco - in older PC's, the ISA bus was, and still is, called the "expansion bus", since it "expanded" the capabilities of the PC by allowing it to connect to peripherals.  At that time, all the cards were ISA cards, and were given the name "expansion cards".  Since the advent of newer, faster buses, such as the local bus (PCI) and the AGP bus, the cards, unfortunately - are all still called "expansion cards".  This is unfortunate and confusing, since only the ISA cards are actually plugged into an expansion bus.  They should have named all buses expansion buses, since they all perform that function - and simply differentiated the various types of expansion buses, but they didn't.  So just keep in mind that there is only one expansion bus, the ISA bus, but the cards connected to the to other buses are all called expansion cards.

NOTE:  the extinct MCA and EISA buses are also expansion buses, just as ISA

Expansion Bus = SLOW -  unfortunately, expansion buses suffer from a serious drawback. In order to be compatible with older boards (called "legacy" boards), it was necessary to keep the speed of the bus down. Even in EISA systems, which were made to improve over ISA - the expansion bus speed is usually only half the main frontside bus. In other words, you could have the fastest processor available, but it essentially has to slow down to the slower speed of the external bus to talk to any cards.  PCI was able to get around this limitation, since it was made to accommodate faster devices.

The DMA Myth - a common myth is that DMA devices, such as the AGP device (which is always a video card, so far . . .) has a direct path to Memory.  It does not.  Just like PCI and ISA components, the AGP device has to pass through the computer's chipset in order to reach the main system meory (RAM). The difference, is that the AGP card can access memory without involving the CPU.  This is also called "DMA" (Direct Memory Access).  Remember, DMA is not actually "Direct" memory access - it still involves chipset components in between - it is more direct than standard memory access, done via the CPU.  DMA would be more accurate, if it were renamed to something like NCPUMA (Non CPU Memory Access).

Extinct Buses - MCA, EISA, VESA Local Bus (VL-Bus)

MCA - In the 1980's, IBM introduced a new bus called the MCA (Micro-Channel Architecture) bus, as an attempt to become proprietary, and fend off the makers of PC clones.  It failed miserably, since standard ISA components could not be used with the MCA bus.

EISA - another, old but briefly popular bus, was called an EISA bus (Extended Industry Standard Architecture) - which, like the PCI bus, was 32-bits wide, and ran at half the 66 MHz frontside bus speed, at 33 MHz..  

The principal difference between EISA and MCA is that EISA is backward compatible with the ISA bus (also
called the AT bus), while MCA is not. This means that computers with an EISA bus can use new EISA expansion
cards as well as old AT expansion cards. Computers with an MCA bus can use only MCA expansion cards. 

EISA and MCA are not compatible with each other. This means that the type of bus in your computer determines
which expansion cards you can install. 

Neither EISA nor MCA has been very successful. Instead, a new technology called local bus (PCI) is being used in
combination with the old ISA bus. 

VESA Local Bus (VL-Bus, or simply, VLB) - VESA is far from dead, only the VESA bus is gone - and was only used on 486 computers. The Pentium class PC's used either PCI or AGP for their Video - not VESA.  VESA stands for "Video Electronics Standards Association", and involves all sorts of video standards, including display standards that are on the cutting edge of technology today (see the VESA Homepage).  VESA bus, like the AGP bus, was created specifically for video cards.  It preceded the PCI bus, and in fact, the PCI bus architecture is simply a better version of VESA, and both are local buses.  In the VESA standard, it states that the local bus is NOT something that can be substituted for the conventional (ISA, EISA, MCA) expansion bus. It is physically designed as a connector in addition to the expansion connector. Its purpose is to allow certain functions, such as video, disk storage, and network interface, to benefit from the higher data transfer rates possible when these devices have a more or less direct connection to the processor.  The words show that the local bus IS NOT DIRECTLY CONNECTED TO THE PROCESSOR !!!  It still has to pass through chipset components on the motherboard.  This is a never-ending myth, nevertheless.  

Types of Buses 

BSB, FSB, ISA, PCI, PCI-e, AGP, USB, Firewire, CardBus, Express Card

*** this page details 5 of the 9 main types of buses.  I have not added the four more recent bus types yet - USB, IEEE1394 (Firewire), CarBus, and Express Card.  But you can read up on all of them at the Microsoft Bus page (incredibly detailed !!).

System Buses (Backside and Frontside)

Any bus that connects to the CPU is called a system bus, including the memory bus - which connect to the CPU indirectly (via the chipset bus controller).  There are three system buses, and two of those are usually combined and thought of as one bus.  The Backside bus, BSB, runs from the CPU to the L2 cache.  The Frontside Bus, FSB  runs from the CPU to the Chipset.  An extension of the FSB, the "Memory bus", runs from the chipset to the Memory. 

There is no bus that run directly from the CPU to Memory !!!  Yet another myth. 

NOTE:  for many - there are only two buses, since it is a common practice to combine the frontside and memory bus.  .  The path from the CPU to the chipset and then to memory is viewed as one path, and is called a number of names :  frontside bus, system bus, memory bus, etc.  It may be more accurate to look at each bus separately, since the memory bus is not dedicated to the CPU (some devices use DMA (Direct Memory Access) which means they use this bus, without ever communicating with the PC).  Nevertheless, I will stick to tradition, and combine the frontside and memory bus into one - and simply call it the "Frontside bus".

FSB - Frontside Bus - on all Intel motherboards, such as th 486, Pentium, PII, and PIII  -  the FSB runs at the clock speed.  This makes it slower than the backside bus, since it does not take advantage of the multiplier that the CPU and backside bus use.

BSB - Backside Bus - the older 386 and 486 PC's had no BSB, since they had no L2 cache.  On a Pentium 1 or II, the BSB runs at half the CPU speed.  The backside bus on a Pentium III runs at full CPU speed.  The backside bus has but one function - to connect the CPU to a small, high-speed memory chip called the L2 cache.

Examples :

450 MHz Pentium II (BSB, L2 Cache speed = 1/2 CPU speed) :

450 MHz Pentium III  (BSB, L2 Cache Speed = CPU Speed) :

The PIII, in doubling the L2 Cache speed to allow it to equal the full speed of the CPU, has dramatic improvements in speed over the PII.  The BSB is indeed important, since the CPU relies on it for high speed caching and retrievel of commonly used pieces of data.

Note about L1 and L2 Cache Memory - the L1 cache is called "primary" or "internal" cache because it sits inside the CPU chip - these are obsolete.  The L2 cache is a separate, external chip that sits outside the CPU chip - very close to the CPU to allow error-free, high-speed data transfer.  Every modern PC has an L2 cache.  For a brief time, the Intel Celeron CPU was made for motherboards with no L2 cache, but this was quickly changed since they were so slow. The amount of memory in a cache is rather small . . . 512k is the average, although 256k and 1 MB are common also.  See the memory section for more details.

I/O Buses (ISA, PCI, AGP)

I/O buses run along the bottom of the motherboard, underneath the slots, which allow data to travel between the cards and memory.  These lines are called a bus . . . or more accurately, "expansion bus", since there are so many types of buses on a PC.  Keep in mind that all the I/O buses use the FSB (Frontside bus) to access the CPU and Memory.  Therefore, many people mistakenly believe that it is the frontside bus that runs along the exapansion cards - this is a very common  misconception !!

There are three types of I/O buses which we will cover here - ISA, PCI, and AGP.  The others simply are not made any more.

First, a few common terms associated with I/O buses :

Bus Width - the number of bits, which is the same as the number of data wires, that the bus has.  As mentioned, a bus will be either 8 bits, 16 bits, or 32 bits wide.  

Bus Speed - the rate at which data flows through the bus.  Bus speed is always a factor of the clock speed, which is the speed at which the frontside bus (system bus) runs.  For example, my Dell 450 MHz PII has a 100 MHz bus speed.  The bus speed is the same as the clock speed, and to attain the CPU speed, a multiplier circuit is used, with a factor of 4.5  (4.5 x 100 = 450 MHz).  The 100 MHz bus was considered a godsend.  For years, buses ran at 66 MHz, and even though every other part of the PC was being perfected and improved - the 66 MHz frontside bus was a major bottleneck.  Shortly after, Intel came out with the 133 MHz bus.  Always remember - bus speed = clock speed, and when someone simply says "Bus" - they are usually talking the frontside bus, which runs at the clock speed.

ISA (Industry Standard Architecture) Bus

The ISA bus was initiated and used by IBM on the early XT and AT computers.  In fact, the AT version of the bus is called the AT bus and became a de facto industry standard.  Starting in the early 90s, ISA began to be replaced by the PCI local bus architecture. Until approximately 1999, most computers included both an ISA bus for slower devices such as Modems, and a PCI bus for faster devices, such as SCSI cards and network adapters.  ISA is not used for video - too slow, although old PC's had only ISA and therefore had no choice.


PCI (Peripheral Component Interconnect) Local Bus

*** also see PCI & PCI Express Detailed (Microsoft - tones of info !!_

The PCI bus runs at half the frontside "base" bus speed (not the quad FSB speed), which is half the clock speed.  

The PCI local bus was developed in 1993 by Intel, and replaced the maligned VESA local bus.  The PCI Standards are maintained and distributed by PCISIG.com to about 60 corporate members - the fee is too high for individuals (several $$$ thousand), and therefore the standards documents are hard to come by.  Here is the computers logical data flow, with the PCI cards feeding into an I/O bridge.

Today's aging Peripheral Component Interconnect (PCI) bus typically offers a paltry 128 megabytes per second throughput. Because hardware such as graphics cards have evolved to require faster throughput than PCI could offer, new bus technologies such as the Accelerated Graphics Port (AGP) evolved. PCI Express should help eliminate the need for some hardware-specific buses. That said, CPU, memory, and hard drive-specific buses will remain.

Note on PCI vs ISA Sound Cards : if you use a lot of older software, especially any that is DOS or Windows 3.1- based, you will not want a PCI sound card. Most older software will have problems working with these cards since they don't use ISA DMA channels like ISA cards do. If you use only Windows 95 or later software, then you shouldn't have any problems.

PCI-X (the -X is often ommited) builds on the industry-standard PCI foundation, adding greater performance for today's demands. PCI-X is currently available in two versions: PCI-X 1.0b and PCI-X 2.0. Both are backward compatible with PCI standards.

PCI-X 2.0

With the release of three new specifications, PCI Express, PCI-X 2.0 and PCI 2.3, the I/O environment as we know it will be radically changed.

PCI Steering

PCI bus IRQ steering gives OSR2 and Windows 98 the flexibility to reprogram PCI interrupts when rebalancing Plug and Play PCI and ISA resources around non-Plug and Play ISA devices. Windows 95 (retail release) and OSR1 cannot rebalance PCI and ISA IRQs for Plug and Play devices around non-Plug and Play ISA devices to solve resource conflicts.

For example, if your computer's BIOS is unaware of non-Plug and Play ISA cards, the operating system does not have PCI bus IRQ steering, and the BIOS has set a PCI device to IRQ 10, you may have a resource conflict when you add a non-Plug and Play ISA device that is configured for IRQ 10.

However, with PCI bus IRQ steering the operating system can resolve this IRQ resource conflict. To do so, the operating system:

  1. Disables the PCI device.
  2. Reprograms a free IRQ to a PCI IRQ, for example IRQ 11.
  3. Assigns an IRQ holder to IRQ 11.
  4. Moves the PCI device to IRQ 11.
  5. Reprograms IRQ 10 to be an ISA IRQ.
  6. Removes the IRQ holder for IRQ 10.

PCI Steering IRQ Holder - an IRQ Holder for PCI Steering may be displayed when you view the System Devices branch of Device Manager. An IRQ Holder for PCI Steering indicates that an IRQ has been programmed to PCI mode and is unavailable for ISA devices, even if no PCI devices are currently using the IRQ. To view IRQs that are programmed for PCI-mode, follow these steps:

  1. Click Start, point to Settings, click Control Panel, and then double-click System.
  2. Click the Device Manager tab.
  3. Double-click the System Devices branch.
  4. Double-click the IRQ Holder for PCI Steering you want to view, and then click the Resources tab.

How to Determine if Your Computer Is Using IRQ Steering

To determine if your computer is using IRQ Steering, follow these steps:

  1. Click Start, point to Settings, click Control Panel, and then double-click System.
  2. Click the Device Manager tab.
  3. Double-click the System Devices branch.
  4. Double-click PCI Bus, and then click the IRQ Steering tab. You should see one of the following settings:


PCI 1.0b

Revision 1.0 of the PCI-X specification defined PCI-X 66 and PCI-X 133 devices that transferred data up to 133 MTS, or over 1Gbyte per second for a 64-bit device.

PCI 2.0

PCI 2.0 White Paper

(see also http://www.pcisig.com/specifications/pcix_20/#overview and
     http://www.pcisig.com/specifications/pcix_20/technical_library/ )

A new, higher speed version of the conventional PCI standard, which supported signaling speeds up to 533 megatransfers per second (MTS).

adds two new speed grades: PCI-X 266 and PCI-X 533, offering up to 4.3 gigabytes per second of bandwidth, 32 times faster than the first generation of PCI. Another major feature of the PCI-X 2.0 specification is enhanced system reliability. ECC support has been added both for the header and payload, providing automatic single-bit error recovery and double-bit error detection. These new standards keep pace with upcoming advances in high-bandwidth business-critical applications such as Fibre Channel, RAID, networking, InfiniBand Architecture, SCSI, and iSCSI.

PCI-X 2.0 is built upon the same architecture, protocols, signals, and connector as traditional PCI. The reuse of many of the design elements from the conventional PCI and PCI-X1.0b standards eases design and implementation migration. Migration to PCI-X 266 and PCI-X 533 is further simplified by retaining hardware and software compatibility with previous generations of PCI and PCI-X. As a result, new designs can immediately connect with hundreds of PCI and PCI-X products that are currently available. The combination of backwards compatibility and ease of migration provides investment protection for customers, developers, and manufacturers of existing PCI and PCI-X technologies as they migrate to PCI-X 266 and PCI-X 533.

PCI-X 2.0 also includes new features that will enhance applications in the future. It defines a new 16-bit interface width specifically designed for those applications that are constrained by space, such as embedded RAID controllers, or portable applications. PCI-X 2.0 also expands the device configuration space for each device-function to 4Kbytes, and defines a new Device ID Message transaction to enable simplified peer-topeer transactions for applications such as streaming-media.

For over ten years, the PCI-SIG has been developing the worlds most popular bus technology. The PCI-X 2.0 266 MHz and 533 MHz standards lay the groundwork for the next decade, and further backwards-compatible extensions are planned beyond 533 MHz.

Summary of PCI-X 2.0 Features

PCI 2.1

PCI 2.1 adds concurrent processing (the ability for PCI to transfer while the CPU bus and/or ISA bus are also transferring), a couple of new card ID data elements added, and a few other minor changes, including some things which were optional in PCI 2.0 made mandatory in 2.1. For the most part these changes were very minor, and most PCI 2.1-compliant cards will work in PCI 2.0 systems.

To find out for certain if a particular PCI 2.1 card will work in a PCI 2.0-compliant system, check with the card manufacturer. I know that many newer video cards do require PCI 2.1, and will not work in older 2.0 systems.

Another issue is that with the older PCI 2.0 standard is that most systems had only one busmaster slot. PCI 2.1 systems feature all busmaster slots, and some cards require a busmaster slot to work. Consult your motherboard documentation to see if one or more of your PCI slots have busmaster capabilities.

PCI 2.2

PCI 2.2 defines the PCI hardware environment including the protocol, electrical, mechanical and configuration specifications for the PCI interconnect components and expansion boards. Conventional PCI specification rev. 2.2 supersedes rev. 2.1. Seventeen ECRs were incorporated into the specification, including six mechanical ECRs, 3.3 aux, Message Signaled Interrupt, and Spread Spectrum Clock. All cache support was removed and the specification was edited for readability. 

This document explains the differences between 2.1 and 2.2 PCI specifications.

PCI 2.3

PCI Revision 2.3 is an evolutionary change to the PCI Local Bus Specification. Revision 2.3 makes a significant step in migrating the PCI bus from the original 5.0 volt signaling to a 3.3 volt signaling bus. Revision 2.3 supports the 5V and 3.3V keyed system board connectors (as did revision 2.2) but revision 2.3 supports only the 3.3V and Universal keyed add-in cards. The 5V keyed add-in card is not supported in revision 2.3. PCI 66, PCI-X, Mini PCI, and Low Profile PCI support only 3.3 volt signaling on 3.3V keyed system board connectors and 3.3V and Universal keyed add-in cards.

High performance technologies power the logic within the chips with 3.3 or lower voltages. The newer high performance technologies cannot support 5 volt compatible signaling on the off-chip drivers. As a result, the host bridge needs to migrate to 3.3 volt signaling with 3.3V keyed system board connectors. Removing support for 5V keyed add-in cards is the first step in the migration to 3.3 volt signaling systems and ensures revision 2.3 compliant add-in cards will be usable in 3.3V keyed system board connectors.

PCI 3.0

Revision 3.0 completes the evolutionary migration plan for the PCI Local Bus Specification, migrating the PCI bus from the original 5.0V signaling to a 3.3V signaling bus. Revision 2.3 began that evolution by removing support for the 5V keyed add-in card, while providing support for both the 5V and 3.3V keyed system board connectors. Revision 3.0 takes the next step of removing support for the 5V keyed system board connector. Revision 3.0 continues support for the 3.3V keyed system board connector, which supports the 3.3V and Universal keyed add-in cards. PCI 66, PCI-X, Mini PCI, and Low Profile PCI also support only 3.3 volt signaling on 3.3V keyed system board connectors and 3.3V and Universal keyed add-in cards.

High performance technologies power the logic within the chips with 3.3 or lower voltages. The newer high performance technologies cannot support 5 volt compatible signaling on the off-chip drivers. As a result, the host bridge needs to migrate to 3.3 volt signaling with 3.3V keyed system board connectors. Removing support for the 5V keyed system board connector completes the steps in the migration to 3.3 volt signaling systems and ensures revision 3.0 compliant add-in cards will be usable in 3.3V keyed system board connectors.

In addition to the changes described above, Revision 3.0 also incorporates the Revision 2.3 errata and ECNs.

Conventional PCI Revision 2.3
Revision 2.3 is an evolutionary change to the PCI Local Bus Specification. Revision 2.3 makes a significant step in migrating the PCI bus from the original 5.0 volt signaling to a 3.3 volt signaling bus. Revision 2.3 supports the 5V and 3.3V keyed system board connectors (as did revision 2.2) but revision 2.3 supports only the 3.3V and Universal keyed add-in cards. The 5V keyed add-in card is not supported in revision 2.3. PCI 66, PCI-X, Mini PCI, and Low Profile PCI support only 3.3 volt signaling on 3.3V keyed system board connectors and 3.3V and Universal keyed add-in cards.

High performance technologies power the logic within the chips with 3.3 or lower voltages. The newer high performance technologies cannot support 5 volt compatible signaling on the off-chip drivers. As a result, the host bridge needs to migrate to 3.3 volt signaling with 3.3V keyed system board connectors. Removing support for 5V keyed add-in cards is the first step in the migration to 3.3 volt signaling systems and ensures revision 2.3 compliant add-in cards will be usable in 3.3V keyed system board connectors.

PCI Express

PCI Express Primer

PCI & PCI Express Detailed (Microsoft - tones of info !!_     Intel's PCI Express Page

PCI vs PCI Express


PCI Express Slot types
x1 is for sound cards, scanners, ect   -   x4 and x8 are not being made today   -   x16 is for Video Cards)

A PCI Express multi-drop, parallel bus topology contains a Host Bridge and several endpoints (the I/O devices) as shown in Figure 3. Multiple point-to-point connections introduce a new element, the switch, into the I/O system topology also shown in Figure 3. The switch replaces the multi-drop bus and is used to provide fan-out for the I/O bus. A switch may provide peer-to-peer communication between different endpoints and this traffic, if it does not involve cache-coherent memory transfers, need not be forwarded to the host bridge. The switch is shown as a separate logical element but it could be integrated into a host bridge component.

Figure 3

The low signal-count, point-to-point connections may be constructed with connectors and cables.

PCI Express will offer blazing throughputs of 2.5 gigabits per second. That kind of speed is ideal for next-generation graphics cards, ethernet cards, and other high-speed hardware, say the developers.  The PCI Express technology can keep up with CPUs running in excess of 10 GHz.  

The second-generation PCI Express will support throughput of 5 gbps; a third generation could offer up to 12 gbps.

Graphics Standards

Possible Bandwidth

16-bit ISA








AGP 1x


AGP 2x


AGP 4x


AGP 8x


PCI-e x1

500MB/s ( Single Data Lane - Both Directions)

PCI-e x2

1000MB/s ( Dual Data Lane - Both Directions)

PCI-e x4

2000MB/s ( Quadruple Data Lane - Both Directions)

PCI-e x8

4000MB/s ( Eight Data Lane - Both Directions)

PCI-e x12

6000MB/s ( Twelve Data Lane - Both Directions)

PCI-e x16

8000MB/s (4000MB/s Per Direction (Two Directions))


Backwards Compatibility - like all good PC industry standards, PC Express is a technological leap forward, but doesn't leave behind existing hardware. The new specification will continue to support today's PCI. In PCs, support will likely appear in the form of both PCI Express and PCI slots.


AGP (Accelerated Graphics Port) Bus

AGP [Accelerated Graphics Port] is a Point-to-Point [Chip-to-Chip] bus using 1.5 Volt or 3.3V signaling. The main use of the AGP bus is as a Local Video bus in IBM compatible Personal Computers [PCs]. The AGP bus is based on the PCI [Peripheral Component Interface] spec, using the PCI specification as an operational baseline. The AGP specification adds 20 additional signals not included in the PCI bus. The AGP specification defines the Protocol, Electrical and Mechanical aspects of the bus. 

The AGP bus runs at the same speed as the base FSB bus speed (which equals the clock speed).  

The AGP version vs AGP speed confusion  - the version numbers of AGP differ from the "x" speed factor, and this has confused so many people !!! Each standard was backwards compatible, and therefore defined a new, faster speed - but also redefined the previous slower speeds.  When buying an AGP card for your system, just remember the following:   AGP 1.0 = AGP 2x     AGP 2.0 = AGP 4x     AGP 3.0 = AGP 8x

AGP Version    Speeds Defined    Speed used in the Industry
AGP 1.0    1x, 2x    AGP 2x
AGP 2.0    1x, 2x, 4x    AGP 4x
AGP 3.0    1x, 2x, 4x, 8x    AGP 8x

To add more confusion, the motherboard manufacturers call the versions "AGP 1.5, AGP 3.0. and AGP 3.3".  They also use the terms "AGP Universal and Universal AGP 3.0" - so confusing !!!  Well, the following table should help you to make sure you do not buy the wrong card:

  AGP 2.0 Cards AGP 3.0 Cards
MotherBoard 3.3 Connector 1.5 Connector Universal Connector Universal AGP3.0 Connector AGP3.3 Connector
AGP 3.3 Works Keyed Wrong Works Keyed Wrong Keyed Wrong
AGP 1.5 Keyed Wrong Works Works Works No Function
AGP Universal Works Works Works Works No Function
Universal AGP 3.0 Keyed Wrong Works Works Works Works
AGP3.0 Keyed Wrong No Function No Function Works Works


Full Speed Bus !!  the AGP bus is 32 bits wide, just the same as PCI is, but instead of running at half of the system (memory) bus speed the way PCI does, it runs at full bus speed. This means that on a standard Pentium II motherboard AGP runs at 66 MHz instead of the PCI bus's 33 MHz. In addition, unlike PCE, AGP has the benefits of not having to share bandwidth with other devices,

Compare a PCI-bus that is 32-bit wide and is clocked at 66 MHz. Thus it can offer a maximum bandwidth of 33 * 4 byte/s = 266 MB/s.  Similarly, AGP 1x is clocked at 66 MHz and it is 32-bit wide, and therefore offers a maximal bandwidth of 266 MB/s.  But no one uses AGP 1x, where data is transferred the common way, at the 'falling edge' of each clock. AGP2x offers 533 MB/s, by transferring data at the rising as well as the falling edge of the clock. AGP4x doubles this bandwidth another time to 1066 MB/s, and 8x doubles it yet again.

The Card sizes and 1.5v and 3.3v connectors are also defined with in the spec. There are five connectors defined: AGP 3.3v, AGP 1.5v, AGP Universal, AGP Pro Universal, AGP Pro 3.3v, and AGP Pro 1.5v. PCI and AGP boards are not mechanically interchangeable.

In addition, AGP Pro cards (rare) of various types exist. They require more power and are often longer than standard AGP card (though they only connect to one AGP slot). These cards are usually used to accelerate the professional computer-aided design applications employed in the fields of architecture, machining, engineering, and similar fields.

The Cards and Slots (1.5 vs 3.3 volts) - there are two voltages used for AGP slots and cards.  The edge of the card has a cutout, or "key", which matches the slot.  This will prevent the wrong type of card being inserted.  Newer machines have a "universal" AGP slot, which allows any ABP card to be inserted, and the motherboard will auto-detect what type it is and supply the correct voltage.


AGP 2.0 card (AGP 4x)

AGP Versions

NOTE:  each version up-grade is a supper-set of the 1x mode, so 4x will also support 1x. The base clock rate is 66MHz, but to achieve to 2x, 4x, and 8x speeds the clock is doubled each time. AGP uses both edges of the clock to transfer data.

AGP Speeds

The AGP data bus may be 8, 16, 24, 32, or 64 bits. Due to timing requirements the maximum bus length is 9". The trace impedance is specified as 65 ohms +/- 15 ohms (no termination resistor is specified). For the 8x speed the bus requires a parallel termination.

AGP pin out, 2 rows of 66 finger [pins]

AGP will soon be Extinct in all new Systems - replaced by PCI Express

Starting in 2004 Many Mother Boards began shipping with a PCI Express card slot instead of an AGP card slot. So, many of the web links offered by companies will point to PCI Express instead of the AGP bus, which in this case will be obsolete very soon.

Bus-to-Memory Data Transfer

Normal ISA Operation

The architecture allowed data to flow between memory and ISA cards, but it required the CPU to perform the transfers, and to control them as well.  It was thought that this was best, since only the CPU could figure out what needed to be moved, and when.  Unfortunately, it also wastes a lot of CPU cycles, as it fetches data from memory, sends it out the frontside bus to the ISA bus to be delivered to the card. 

DMA (Direct Memory Access)

Standard DMA, on chipset - is only used by ISA, EISA, and VESA Local Bus !!

Bus Mastering DMA - DMA on the Expansion Card - used by ISA and PCI

Standard DMA (Third Party DMA - DMA that resides within the Motherboard chipset) - to get around the CPU wasted cycles syndrome, a method was developed that allowed certain ISA cards to speak "directly" to memory, called DMA (Direct Memory Access).  This freed up the CPU to do other things.  The data still had to flow through a bus controller on the chipset, but this was simply a conduit, and therefore the transfers were considered "direct".  DMA is actually an old technology, and is only used by ISA cards - not PCI cards.  

Standard DMA is very complex, and could take up an entire section.  Since the ISA cards are a dying breed, and EISA and VLB (VESA Local Bus) are dead  -  I will keep the discussion to a minimum.  

DMA uses two separate controllers with 4 channels each - for a total of eight channels on the chipset of the motherboard, to control the transfer of data.  The channels are numbered 0 to 7 (sound familiar?  SCSI uses eight ID's numbered 0 to 7).  Channel 4 is assigned the function of cascading the two controllers together, so it is not usable, leaving us with 7 usable DMA channels.  The two DMA sets of channels, "cascade" much in the same way that the two sets of hardware  interrupts do.  Don't worry about that - too complex.

The DMA channels use requests (DRQ) and acknowledgements (DACK), just as so many other communication devices do.  

Standard DMA is a separate circuit within the motherboard chipset, and is not part of the ISA device (the ISA card) - nor is it part of the memory.  Some call this "third party DMA", since a third party is controlling the DMA transfers, not the two first parties - the Card and RAM.

Bus Mastering DMA (First Party DMA - DMA that resides on the expansion card) - Bus mastering is where the DMA circuitry is placed on the card itself, and is therefore called "First Party DMA".  Bus mastering can be used by ISA or PCI cards, but is much more prevalent on PCI cards.

Bus Mastering

Bus mastering is a bus design that allows a peripheral (plug-in board) to access the computer's memory independently of the CPU. This allows data transfer between the peripheral and the main system memory while the CPU is being used by other devices. Bus mastering usually requires that the adapter or peripheral have its own
built-in processor so that it can operate independently of the CPU. A bus-mastering peripheral can control the bus and act as if it were the entire computer system.

The most common bus-mastering devices are hard drive controllers (IDE, SCSI), video adapters, and network interface cards. Bus mastering is a concept that can function independently of the bus architecture. Bus mastering adapters can be ISA, EISA, VLB, PCI, AGP, USB, or FireWire. Currently most bus mastering on
PCs is done on the PCI bus. In addition, support has been added for IDE/ATA hard disk drives to do bus mastering on PCI under certain conditions.

While in theory bus mastering can allow the processor to do other work simultaneously, in practice there can be some complications. In order to do bus mastering properly, a facility to arbitrate between requests to "take over the bus" must exist. This ability to properly handle these requests is controlled by the system chipset.  Bus mastering is also known as "first party" DMA (Direct Memory Access), since the work is controlled by the device doing the transfer.