The Expansion Bus

The Expansion Bus

It is generally understood that the speed and capabilities of the CPU is directly related to the performance of the system as a whole. In fact, the CPU is a major selling point of PCs, especially among less-experienced users. One aspect of the machine that is less understood and therefore less likely to be an issue is the expansion bus.

The expansion bus, simply put, is the set of connections and slots that enable users to add to, or expand, their system. Although it’s not really an “expansion” of the system, you often find video cards and hard disk controllers attached to the “expansion” bus.

Anyone who has opened his or her machine has seen parts of the expansion bus. The slots used to connect cards to the system are part of this bus. Note that people will often refer to this bus as “the bus.” Though it will be understood what is meant, there are other buses on the system. Just keep this in mind as you go through this chapter.

Most people are aware of the differences in CPUs, whether the CPU is 16, 32 or 64-bit, what the speed of the processor is, whether there is a math co-processor, and so on. The concepts of BIOS and interrupts are also commonly understood.

One part of the machines hardware that is somewhat less known and often causes confusion is the bus architecture. This is the basic way in which the hardware components (usually on the motherboard) all fit together. Linux will run on several different kinds of buses. The most common are those in PCs, which I will talk about first. (Note: Here I am referring to the main system bus, although Linux can access devices on other buses.)

The three major types of bus architectures used are the Industry Standard Architecture (ISA), the Extended Industry Standard Architecture (EISA), and the Micro-Channel Architecture (MCA). Both ISA and EISA machines are manufactured by a wide range of companies, but only a few (primarily IBM) manufacture MCA machines. As of this writing, no commercial distributions are available for MCA, but a development project is underway.

In addition to these three architectures, a few other bus types can be used in conjunction with or to supplement the three, including the Small Computer System Interface (SCSI), Peripheral Component Interconnect (PCI), and the Video Electronics Standards Association Local Bus (VLB or VL-Bus).

Both PCI and VLB exist as separate buses on the computer motherboard. Expansion cards exist for both these types of buses. You will usually find either PCI or VLB in addition to either ISA or EISA. Sometimes, however, you can also find both PCI and VLB in addition to the primary bus. In addition, it is possible to have machines that only have PCI because it is a true system bus and not an expansion bus like VLB. Because of the advantages of the PCI-Bus, some manufacturers are beginning to manufacture machines with only the PCI-Bus. However, as of this writing, only a few machines provide PCI-only expansion buses.

SCSI, on the other hand, complements the existing bus architecture by adding an additional hardware controller to the system. There are SCSI controllers (more commonly referred to as host adapters) that fit in ISA, EISA, MCA, PCI, or VLB slots.