Classic Computer Magazine Archive COMPUTE! ISSUE 133 / SEPTEMBER 1991 / PAGE 76

Don't catch the wrong bus. (computer buses)
by Mark Minasi

In the past four years, there's been plenty of smoke (and mirrors) about computer buses. If you're like most people, you've heard of IBM's Micro Channel, and you may know of the clonemeisters' response, EISA. They're supposed to be better somehow -- aren't they?

Here's the straight and skinny on what these new buses offer and why you should care. In the process, I'll explain a whole bunch of things, including the horrifying DMA Speed Scandal.

First things first: What's a bus? Basically, a bus is the set of connectors -- the slots -- on your motherboard. It's the point from which your system can be expanded.

Fortunately, the buses in the PC are well documented. That means that anyone can design and sell an add-in-circuit card, and that's got a lot to do with why the PC is so popular in the first place. The entirely open nature of the PC -- its bus slots, its third-party operating system (you had a choice of buying DOS, CP/M, or the p-System from IBM in 1981) -- and its fully documented BIOS are the reasons why the PC is the market leader.

Ticket to Ride

The original PC had the bus that's still found on XT clones. If you count all the metal fingers in a PC bus slot, you'll find 62 -- and each of the 62 wires has a specific job. Some transmit data, while some communicate address information. Some warn the CPU of upcoming activity or ask the CPU to yield control of the PC, as when one circuit board talks directly to another (that's called DMA or bus mastering, and I'll discuss it soon).

On the original PC, 8 of the 62 wires transferred data. That's why the PC bus is called an 8-bit bus. The advent of the AT in 1984 saw a modification of the PC bus to double the width of the data path, leading to the so-called AT bus. This bus has a 16-bit data path, allowing it to transfer 16 bits in the time that the PC bus would take to transmit 8 bits. Data paths on computer buses are like lanes on highways; the more lanes you have, the more that can be transported (bits on buses, cars on highways). The AT bus became the standard for most clones and has been redubbed the Industry Standard Architecture, or ISA (pronounced ice-ah).

ISA has served us well to date, but it's limited in several ways. First, the 16-bit data path was nice in 1984, but it's less than optimal for 386DX and 486 computers. Both of those chips have the potential to do 32-bit data transfers, so a 32-bit bus would create a market for add-in boards that could more fully exploit the full power of those chips. Virtually all ISA machines run the bus slots at a mere 8 MHz, so even the fastest ISA machines must slow down to 8 MHz whenever communicating with an expansion board. Second, ISA uses edge-triggered interrupts. The alternative would be level-triggered interrupts. Edge-triggered interrupts are more noise-prone and so restrict how fast a PC's CPU can communicate with its expansion boards.

The DMA Scandal

IBM decided to scrap ISA altogether with its post-1987 PS/2 line of computers. The PS/2s use an entirely new bus called Micro Channel Architecture (MCA).

Working from a clean slate, IBM was free to add some nifty features to MCA. First, there's a 32-bit version of MCA as well as a 16-bit version, allowing greater speed in 386DX and 486 PS/2s than would be possible if they were ISA machines. Unfortunately, it's not much faster -- the maximum clock rate for MCA slots is only 10 MHz. It also uses the cleaner level-triggered interrupts.

But it doesn't stop there. DMA is faster under MCA than under ISA, and MCA offers bus mastering. DMA is short for Direct Memory Access, an interface method that allows peripheral devices (such as disk controllers or LAN boards) to transfer data to and from memory without having to first pass the data through the CPU.

Why's that good? Consider what happens when you ask your floppy disk to read a file. The CPU tells a board called the floppy disk controller to read a block of data from the floppy that block is 512 bytes long. Once the data has been read by the floppy controller, that 512 bytes must be moved into memory so that the floppy controller can get ready to read (or write) more data to (or from) the floppy. How does it get moved? The basic way is for the CPU to take each byte from the controller (one at a time), figure out where in memory to put that byte, and go on to the next byte. The buzzword for this kind of transfer is PIO, or Programmed Input/Output. PIO's fine, except for the fact that it's slow.

Enter DMA. With DMA, we eliminate the middleman. The floppy disk controller is temporarily empowered to talk directly to the CPU's memory -- hence the name Direct Memory Access. DMA is solely intended for speed.

Which brings us to what I call the DMA Scandal. For purposes of total backward compatibility, IBM ran the DMA on its 8-MHz AT at 4.77 MHz -- the speed of the PC! Following IBM's lead, the makers of virtually all ISA machines to this day run their DMAs at 4.77 MHz. That means that when your 33-MHz ISA 386 is doing DMA, it slows down to the speed of the original IBM PC. A few no-name cloners run DMA at 10 MHz, but they're few and far between. Incredible, ain't it?

Micro Channel improves on ISA by running DMA at half the processor speed, so a 10-MHz PS/2 runs DMA at 5 MHz - basically the same as an ISA machine, but a 20-MHz PS/2 runs DMA at a more acceptable 10 MHz.

Switch Flipping

Perhaps the nicest feature of MCA is Programmable Option Select (POS). Anyone who's ever had to flip switches and move jumpers on an expansion board will appreciate this feature. When installing an expansion board, you often have to configure the board. For example, when installing an internal modem, you must set it as either COM1 or COM2. You set it by moving a jumper or flipping a DIP switch. That's annoying because it means that every time you want to reconfigure a board, you've got to pop the top on your computer, remove the circuit board, make the change, and replace it. MCA (and EISA, for that matter) allow all of these choices to be made with software -- a real timesaver.

Even better, an expansion board whose configuration is software adjustable means automatic configuration. Rather than your setting the modem to COM2 because you have a mouse on COM1, why not just let the MCA configuration software sense the conflict and resolve it automatically? That's just what the PS/2 Reference Disk does (or tries to do, but that's for another column). EISA, again, shares this capability.

The Empire Strikes Back

Nice as these MCA features are, they come at a terrible price: ISA-compatible boards don't work in MCA machines, and MCA boards don't work in ISA machines. Further, IBM wrapped up MCA in enough legal red tape that it became quite unattractive for third-party PC vendors to clone the new bus. To legally offer an MCA clone, vendors must pay IBM a royalty equal to 5 percent of their gross sales on the machines. Five percent is usually the total profit for most makers of compatibles -- as Big Blue well knows.

So Compaq and a number of other vendors (Wyse, AST, Tandy, Hewlett-Packard, Zenith, Olivetti, NEC, and Epson -- the initials spell watchzone when you include Compaq) designed an alternative bus with features similar to MCA's: software-setup bus mastering, faster DMA, and 32-bit width. They call it EISA (pronounced ease-ah), for Extended Industry Standard Architecture.

Then they went IBM a hair better. They designed EISA to be backward compatible with ISA. Every EISA slot has a double-decker connector. The top part is the ISA circuitry, and the bottom part has the EISA lines. Only EISA boards have connectors that can extend down to the EISA part. (I wonder if that's where the Extended in Extended Industry Standard Architecture came from.)

EISA has a few other leads on MCA. An EISA machine can have up to 16 slots; MCA, 8. EISA can allow an existing ISA board to run its DMA at twice normal speed with no hardware changes to the ISA board (there must be some new software, however). The speed of EISA itself is, unfortunately, stuck at 8 MHz.

The EISA specification allows boards to be physically larger and draw more power than MCA. That's important because it means that EISA boards are cheaper and easier to design, and so presumably will cost less.

All Aboard

So what's the right bus for you? Well, the vast majority of the boards out there are ISA compatible, despite the fact that the PS/2 has been around for four years. EISA boards are as scarce as hen's teeth, so even if you did buy an EISA machine, you'd have to wait for boards that exploit EISA's capabilities.

Further, 90 percent of the expansion boards wouldn't benefit from the improved throughput of MCA or EISA -- talking to my printer or 9600-bps modem at 8 MHz is hardly what I'd call useful. The boards that really would benefit from better throughput are VGA boards, hard disk controllers, and LAN cards. EISA and MCA versions of these are appearing, but slowly.

So buying an ISA machine today still isn't a bad idea, particularly when you consider the cost.

On the other hand, an EISA machine has ISA compatibility. And when the EISA boards do appear, you'll be ready. And just to make things complicated, one vendor even sells a reasonably priced EISA machine -- the ALR Business VEISA. It won't be the only low-price EISA seller for long.

Heck, maybe it is time to upgrade . . .