Classic Computer Magazine Archive COMPUTE! ISSUE 158 / NOVEMBER 1993 / PAGE 68

Infinite expansion. (computer buses)(includes glossary and related articles)
by Paul C. Schuytema, Robert Bixby

Open up nearly any PC. Chances are, the innards would bring a devilish smile to Dr. Victor Frankenstein's lips. Sound card here, fax/data modem there, SCSI controller over there. Dig through the jumble of ribbon cables, and what do you see? A cutting-edge, 24-bit graphics card chugging away on a slow, 8-MHz, 16-bit bus.

Of all of humankind's great creations, the PC must rank among the most haphazard. Take a poll of your friends. I'd bet that no two of them have even remotely the same setup. With the exception of the disks that we insert in the front and the power cord that we plug into the wall, our computers are as individual as we are. They're machines, yet they're an amalgam of parts and pieces reminiscent of the late-night works of Dr. Frankenstein. Like the good doctor, we must experiment and tweak to get our beasts to run and behave; but still, no matter how we try, they remain elusive, unpredictable, and frightening. Like the monster, who would flip out when a torch was waved in his face, our computers have equally potent, equally mysterious phobias. Close one application without saving, or launch a program in compressed form when it doesn't like being compressed, and your beast will turn against you.

How do the parts work together? How does your video card get information from your hard disk? How does your fax/data modem know what to send?

The answer is connectability. Parts connected to more parts, sharing information across standardized pathways called buses. Bus is a shortened version of omnibus connector, a term utilized in the Precambrian Era of personal computing, when connectability first became an issue and standardization had only begun to be a concern.

S-100

The first bus standard was known as the S-100, short for Standard 100 (so designated because it was the de facto standard and was based on a clip that had 100 pins). Back in 1975, when Popular Electronics and MITS (originally a model-rocketry company) decided that it would be a good idea to produce a kit for building a computer, they came up with the Altair 8800, a rather ignoble beast which sold beyond anyone's wildest expectations. Yet this primordial PC was nothing more than a glorified box, an energy leach which communicated through front-panel switches and lights.

To work, it needed connections. The designers thought that making these connections modular--in a bus--would be more efficient than having the connectors on the computer board itself. A bus would also allow third-party manufacturers to produce enhancements for the Altair that the user could simply plug in. So the S-100 bus was born.

Not much planning went into the S-100. In fact, it featured 100 pins simply because MITS happened to get a good deal on a surplus of 100-pin connector clips. Now, planning and forethought dominate the world of PC buses. Committees and manufacturing groups are constantly working on creating new bus standards. Yet, what, really, is a bus? In the simplest terms, a bus is a physical channel (wires, pins, or circuit board paths) between the CPU (Central Processing Unit) and the other components of a computer, such as a disk drive controller or video board.

The ISA Bus

While the S-100 remained the de facto standard for a number of years, and the IEEE (Institute of Electrical and Electronics Engineers) attempted to improve and refine it in 1983, the S-100 had the unfortunate luck to exist in the clam before the revolution. Not until IBM released the PC did the personal computer industry take off. The old PC (and the XT that followed) featured 62-line expansion slots which provided an 8-bit, 4-MHz data path to the CPU. This bus is commonly known as the 8-bit ISA (Industry Standard Architecture; pronounced "eye-sah") bus. It wasn't long before IBM upped the ante and introduced the 286-powered AT.

The 286 was a 16-bit CPU, and so the engineers at IBM developed a 16-bit expansion bus. Yet they didn't want to leave the PC users, or that established base of expansion boards, in the dust. So the new bus was an extension rather than a reworking of the old bus. An additional connector was added in line with the old connectors, so a user could plug in an XT board, or a newer AT board. The 16-bit ISA bus was born.

This bus was the data highway between the CPU and the peripheral components, and it provided a 16-bit-wide path that operated at 8 MHz. In the early days of the AT and clones, a speed of 8 MHz wasn't such a bad deal, since it was the speed of most processors. It's difficult to remember in this day and age that the 286 CPU of the original AT--for Advanced Technology--was an 8-MHz chip. Later, as CPUs gained speed, some manufacturers attempted to match the bus speed with the CPU, with unpredictable, even dangerous, results. Eventually, 8 MHz became the standard speed for the ISA bus. This speed is not much of a disadvantage for such things as modem boards, which operate at slow speeds anyway. Instead, the limitation is felt when a memory, video, or SCSI board, which has the potential to keep up with the processor, must be reined down to 8 MHz.

Darwinian Revolution

Currently, the ISA bus is the industry standard, based on sheer numbers alone. Yet this bus's limitations proved to be a turning point in the evolution of the PC.

Most 486 PCs still communicate with their components through an ISA bus. As a result, most boards will work on most computers, offering a myriad of choices for the user. Yet this standard forces a 50-MHz, or even 66-MHz, 486 to communicate with its expansion cards at 8 MHz. If Dr. Frankenstein were to look over our creation, he'd be shocked to see the equivalent of his giant's cardiopulmonary system fitted with the smallest of capillaries and nothing else.

The ISA bus is far from being ready for the charnel house, however. Recently, Microsoft and Intel announced a plug-and-play modification for the ISA bus specification. While not changing the speed of the bus, this enhancement will mean easier installation of components. When it comes time to install a new board, you won't have to fiddle with DIP switches, trying to find that combination of addresses that makes the card work in concert with other peripheral devices. Instead, you'll plug in a board and let software set it up. This type of autosensing is a key element of the more advanced expansion buses and has been employed for several years in the NuBus on Apple's Macintosh computers. These new plug-and-play boards should start popping up near the end of 1993.

The MCA Bus

IBM took notice of ISA's shortcomings. When the first of the 32-bit Intel CPUs--the 386--appeared, IBM incorporated a new 32-bit bus architecture into its PS/2 line of computers: the MCA (Micro Channel Architecture) bus.

The MCA bus is software-compatible with the ISA bus, but that's where the similarities end. IBM attempted to make a bus that would grow with the advances in hardware, featuring a tight bundle of specifications and the ability to perform bus mastering (an operation in which a component actually supersedes the CPU and has free rein of the bus for a time, greatly speeding up operations). The MCA bus also allows components to enjoy direct memory access instead of putting in requests for memory access via the CPU.

Yet for all its technological advancement, the MCA bus is already on its way out, atrophying in the high-speed world of computer advancements. The MCA bus is not physically compatible with any other bus; a board must be specifically designed for use with the bus. The MCA design specs are the property of IBM, which is not providing board manufacturers with easy access to the information. Basically, any third-party vendors who wish to manufacture MCA boards must re-create the bus themselves, spending precious R & D dollars, and then pay IBM a percentage of the gross sales of the board for the privilege of using the bus. As anyone who watches the PC market can tell you, that procedure is unlikely to gain the MCA bus any champions.

EISA Bus

The MCA bus was developed by IBM to speed up expansion bus operation and to bind developers to Big Blue (as IBM is known in the industry). But it caused resentment among other computer makers who objected to its nonstandard design and were rankled by the notion of paying IBM a premium. As a reaction to the MCA bus, a group of makers of PC clones and compatibles got together and developed a competing standard, one which was both hardware- and software-compatible with the ISA bus. They dubbed the new standard the EISA (Extended Industry Standard Architecture) bus.

Physically, an EISA (pronounced "ee-sah") expansion slot looks the same as an ISA slot, except that it's deeper. An ISA card will fit into the slot, connecting with one set of pins, while an EISA card will fit further into the slot, connecting with the EISA pins. The bus will allow quite a number of expansion cards to run concurrently on a system, like the ISA bus. The EISA bus is a 32-bit bus, meaning that it can transfer information in 32-bit chunks, matching the input/output (I/O) of the 386DX and 486 processors. The EISA standard, like MCA, also supports bus mastering.

EISA does have two inherent problems, however. To insure ISA compatibility, the bus must operate at 8 MHz. Also, since an EISA board fits into deeper slots, an EISA system cannot easily see differences between ISA and EISA boards on the same system--setting the user up for some potential addressing conflicts.

Local Bus

A local bus is a data path which is connected directly to the CPU's own data bus and operates at the speed of the CPU. When computer evolution was in its earliest stages, most buses were of the local variety. The data channels were purely proprietary in nature, designed for a particular version of a particular machine. As computers became more commonplace, and many manufacturers were creating all types of devices for them, this nonstandardized method fell by the wayside as manufacturers adopted buses such as the S-100 bus.

Recently, as the boom in graphical user interface (GUI) computing hit the industry, a performance bottleneck became increasingly apparent. The ISA bus's 8-MHz speed was simply too slow to handle the video demands of Windows, with its monstrously large, constantly changing bitmaps. The local bus seemed once again to be an answer.

Motherboard manufacturers developed proprietary buses designed to fit their own graphics accelerators, and local-bus video was born. Take a look at the mail-order computer ads from the summer of 1992. You'll find that ads for local-bus video systems abounded. (If you look very carefully, you'll find that perhaps one in ten of these systems--the most expensive ones--were touted as VESA local-bus systems. But more about this later.)

Basically, these local-bus systems were task-specific buses connected directly to the CPU's data bus before any of the other hard-wired connections or the ISA bus, thus improving performance.

While one problem was solved, however, another more serious problem surfaced. This bus had no true, binding standard. Local-bus cards bought from one company would not work on another company's computer. And in the fly-by-night world of PC clones, if a company went out of business, the consumer was out of luck in finding updated drivers to make the most of the high-speed video. I purchased a computer during that summer; it wasn't advertised as a local-bus system, but the motherboard does feature two local-bus slots. Unfortunately, the OEM company is now out of business, and the motherboard was manufactured in a faraway country, so the local bus is now only a vestigial organ on my machine, an appendix that does neither harm nor good.

VL-Bus

Fortunately, the local-bus concept met with enough support to necessitate the development of a standard bus configuration. Enter VESA (Video Electronics Standards Association), an organization which represents the interests of more than 60 computer and component manufacturers, and which is developing an industrywide implementation of the local bus.

Physically, the 112-pin connectors for the VL-Bus are placed in line with the EISA/ISA slots. The VL-Bus is a 32-bit bus which will run at the speed of the processor. Currently, the VL-Bus is optimized for 486 systems up to 66 MHz, but the standard will soon be expanded to support Pentium processors. By operating at the speed of the CPU, the VL-Bus can transfer information at a rate of over 100MB per second. The bus, like MCA, EISA, and PCI (see below), supports bus mastering.

The VL-Bus is designed primarily to provide a rabbit-quick connection for video cards, but it can also be used for other high-speed applications such as SCSI controllers or ultrafast ISDN devices. Only three components may use the VL-Bus on one computer--which is just as well, since running three devices will slow the system down considerably. This probably won't be much of a problem for single-station computers for several years, but it might be more limiting for a file server.

PCI Bus

The latest evolution of the PC bus is Intel's PCI (Peripheral Component Interconnect) bus. Like the VL-Bus, the PCI is a standard created by a group representing the computer industry, this time the PCI Special Interest Group, headed up by Intel.

PCI is an attempt to move bus technology forward in one large step. Instead of being a local bus, connected directly to the CPU's data bus (and being tied to the processor's generation), it's an intermediate bus, which is controlled by a dedicated buffering chip. The bus is still a full-featured 32-bit data path which can operate at 33 MHz and claims (on paper, as of this writing) a data throughput speed in excess of 130MB per second.

The bus is designed to connect a wide array of components and has been forward-engineered to take advantage of 64-bit processors (read Pentium), cranking the speed up to 264MB per second. The bus is also engineered to work at the 3.3-volt power level of today's power-savvy processors and notebooks. The PCI version of bus mastering allows a device to utilize the bus while the processor is still processing other data.

The PCI bus is designed for plug-and-play installation, meaning that no PCI board, whether video, HDTV, or SCSI, will have on-board jumpers to be set and reset. Everything is configured through software. The PCI bus will also allow shared slots, meaning that the PCI connector is placed in line with the ISA/EISA connectors, but it will not disable them. It is possible, then (for example), for a single board to contain a PCI video controller and an ISA sound device.

The PCI bus is designed to handle both motherboard-mounted devices (such as a single-chip VGA system) and expansion cards; a typical PCI bus could handle three cards and four motherboard-mounted devices before becoming overloaded.

Not only has PCI has made headway into the future of the PC, but Apple has committed to the PCI bus and has joined the Special Interest Group. Soon, Apple's Macintoshes will be featuring both NuBus and PCI capabilities. It's just another sign of the evolution toward a completely modular, standardized PC architecture.

Transit Authority

On the one hand, computer expansion buses are abstract concepts; on the other, they are horrendously technical conglomerations of voltage specifications and data paths. For an educated PC user, a knowledge of the basic differences and design concepts of the various buses can make that next board or computer purchase less of a mystery tour.

So, which bus is best? That's as loaded a question as you're likely to find. One thing is certain: You should stay away from proprietary local-bus systems. Their life expectancy is just too unpredictable. Is ISA dead? Not by a long shot--and the new plug-and-play standard should help it remain the de facto standard for several years to come. Even though the 8-MHz speed may seem ponderously slow when compared to VL-Bus or PCI performance, the ISA bus is a data highway that's more than wide enough for 90 percent of your computing needs. If you do a lot of graphics work, or if you're like me and live in Windows, either the VL-Bus or PCI bus would be a smart bet on your next system. The EISA bus probably fits into the smallest useful niche, as the bus of choice for LAN file servers. The 8-MHz speed is more than adequate, and the 32-bit-wide pathway will prevent bottlenecks.

As for the future of PCs, the one-system/one-bus approach will probably no longer hold. According to Mike Bailey, chairman of the PCI Special Interest Group steering committee, computers four to five years down the road will probably feature a mixture of three buses: an ISA or EISA bus for standard devices, a local or intermediate high-performance bus (either PCI or VL-Bus) for such things as display and SCSI controllers, and a PCMCIA bus for multisystem connections. For the moment, it might be best to wait and watch, and see which bus garners the most support in terms of products being produced.