Introduction to the I/O busses
We have seen before, that the PC's busses are the fundamental data "highways" on the system
board. The "first" bus is the system bus, which connects the CPU with RAM. It is also called the
local bus. Its speed and width depends on the type CPU installed on the system board.
Typically, the system bus will be 64 bits wide and run at 66 MHz. That high speed creates
some electrical noise and other problems. Therefore, the speed must be reduced when we
need to reach the expansion cards and some other components. Very few expansion cards can
operate at more than 40 MHZ. Then the electronics shut down. The chips can just not react
faster. Therefore, the modern PC has additional busses.
However, the first PC's had only one bus, which was common for the CPU, RAM and I/O
The older first and second generation CPU's ran at relatively low clock frequencies, and all
system components could keep up with those speeds. Among other things, that allowed
additional RAM to be installed in expansion slots in the PC, by installing an adapter in a vacant
expansion slot. An adapter, where RAM was mounted. That would be unthinkable today.
First in 1987, Compaq figured how to separate system bus from I/O bus, so they could run at
different speeds.. This multi-bus architecture has been industry standard ever since. Modern
PC's also have more than one I/O bus.
What does an I/O bus do?
I/O busses connect the CPU to all other components, except RAM. Data are moved on the
busses from one component to another, and data from other components to the CPU and
RAM. The I/O busses differ from the system bus in speed. Their speed will always be lower
than the system bus speed. Over the years, different I/O busses have been developed. On
modern Pentium PC's, you will find at least two significant busses, and one less significant:
● The ISA bus, which is an older low speed bus.
● The PCI bus, which is a new high speed bus.
● The USB bus (Universal Serial Bus), which is a new low speed bus.
As mentioned earlier, I/O busses are really derivatives from the system bus. On the system
board it ends in a controller chip, which forms a bridge to the two other busses.
The essential in modern PC's is fast busses. Let us compare the two primary I/O busses:
Clearly, there is a vast difference between the capacity of the two busses.
All in all, the busses have a very central placement in the PC's data exchange. Actually, all
components except the CPU communicate with each other and with RAM via the different I/O
busses. Here you see a demonstration of this logic:
The physical aspects of the I/O busses
Physically, the I/O bus consists of one or more tracks on the printed circuit board. These tracks
are used as:
● Data tracks, which each can move one bit at a time
● Address tracks, which identify where data should be sent to
● Other tracks for clock ticks, voltage, verification signals, etc.
Wen data are sent on the bus, they must be supplied with a receiver. Therefore, each device
on the bus has an address. Similarly, the RAM is divided in sections, each having its address.
Prior to sending data, a number is sent on the address track, to identify where the data should
be sent to.
The bus width. The number of data tracks determine the data transfer capacity. The ISA bus is
slow, partly because it only has 16 data tracks. The modern PC's send 32 bits per clock tick.
On the ISA bus, 32 bits must be divided in two packages of 16 bits. This delays the data
transfer. Another I/O bus concept is wait states.
Wait states are small pauses. If an ISA adapter can not keep up with the incoming data flow,
its controller tends wait states to the CPU. Those are signals to the CPU to "hold on for a sec." A wait state is a wasted clock tick. The CPU skips a clock tick, when not occupied. Thus the old
and slow ISA adapter can significantly reduce the operating speed of a modern computer.
Another aspect is the IRQ signals, which the components use to attract attention from the CPU.
Technical and historical background for the I/O
In modern PC's you only find the PCI and ISA busses (besides USB, which we do not know much about yet). But, over the years, there have been other busses. Here is a diagram of the
various I/O busses. Then comes a more detailed description of each of the busses:
The ISA bus
Since about 1984, standard bus for PC I/O functions has been named ISA (Industry Standard Architecture). It is still used in all PC's to maintain backwards compatibility. In that way modern
PC's can accept expansion cards of the old ISA type.
● ISA was an improvement over the original IBM XT bus, which was only 8 bit wide. IBM's
trademark is AT bus. Usually, it is just referred to as ISA bus.
● ISA is 16 bit wide and runs at a maximum of 8 MHz. However, it requires 2-3 clock ticks
to move 16 bits of data.
● The ISA bus has an theoretical transmission capacity of about 8 MBps. However, the
actual speed does not exceed 1-2 MBps, and it soon became too slow.
The ISA bus has two "faces" in the modern PC:
● The internal ISA bus, which is used on the simple ports, like keyboard and serial or
● As external expansion bus, which can be connected with 16 bit ISA adapters. ISA-slots
is especially used with the common 16 bit sound boards.
The problem with the ISA bus is partly its narrow width. It can not transfer enough bits at a time,
and partly its lack of "intelligence." The lack of intelligence means that the CPU controls the data transfer across the bus. The CPU
can not start a new assignment, until the transfer is completed. You can observe that, when
your PC communicates with the floppy drive (the LED on the floppy drive drive goes on), while
the rest of the PC is waiting. That is the fault of the ISA bus.
The ISA bus can be a tease, when you install new expansion cards (for example a sound card).
Many of these problems derive from the tuning of IRQ and DMA, which must be done manually
on the old ISA-bus. Every component occupies a specific IRQ and possibly a DMA channel.
That can create conflict with existing components. Read module 5 about expansion cards and these problems.
MCA, EISA and VLB
In the 80's, a demand developed for busses more powerful than the ISA. IBM developed the MCA bus and Compaq and others responded with the EISA bus. None of those were
particularly fast, and they never became particularly successful outside the server market.
IBM's top of the line bus from 1987 is named Micro Channel Architecture. Contrary to ISA, MCA
is patented, and IBM demanded high royalty fees, when other PC manufacturers wanted to use
it. Thus it never became a great success, despite its advanced design. It was a classic example
of poor marketing strategy.
The MCA bus is 32 bit wide and "intelligent." The cards configure themselves with respect to
IRQ. Thus, they can be installed without adjustments of jumper switches or other features. The
MCA bus is also relatively fast with transfer rates of up to 40 MBps in 32 bit mode at 10,33
MHz. MCA requires special adapters. There have never been too many adapters developed,
since this bus is by and large used only in IBM's own PC's.
EISA is a bus from 1988-89. It is designed by the "Gang of Nine:" the companies AST,
Compaq, Epson, Hewlett-Packard, NEC, Olivetti, Tandy, Wyse and Zenith. It came in response
to IBM's patented MCA bus.
EISA is intelligent with bus mastering, divided interrupts and self configuration. It is 32 bit wide,
and runs at 8 MHZ. But, like the MCA, it did not have great success. EISA is compatible with
ISA in the sense that ISA adapters can be installed in EISA slots. The EISA bus is still used in
Vesa Local Bus
This Bus called VLB for short. It is an inexpensive and simple technology. This bus only
achieved status as an interim phenomenon (in 1993-94). VLB was widely used on 486 system
boards, where the system bus runs at 33 MHZ. VLB runs directly with the system bus.
Therefore, data transfer is at CPU speed, synchronous and in width. The problem with VLB
was compatibility. Adapters and system system boards would not always work together. Vesa
is an organization with about 120 members, mostly monitor and graphics card manufacturers.
Therefore, most VLB cards were video cards.
The PCI bus
The PCI is the nineties high speed bus for PC's. PCI stands for Peripheral Component Interconnect. This bus is made by Intel. It is used today in all PC's and other computers.
The PCI is actually 32 bit wide, but in practice it functions like a 64 bit bus. It has a maximum
transmission capacity of 132 MBps. PCI is the most advanced (and, most expensive) bus.
According to the specifications - not in practice, it can have up to 8 units with a speed up to 200
MHZ . The bus is processor independent. Therefore, it can be used with all 32 or 64-bit
processors, and it is found also on other computers than PC's. It is also compatible with the ISA
bus, in that the PCI bus can react on ISA bus signals, create the same IRQ's, etc.
The PCI bus is buffered in relation to the CPU and the peripheral components. This means,
that the CPU can deliver its data to the buffer, and then proceed with other tasks. The bus
handles the further transmission in its own tempo. Conversely, the PCI adapters can also
transmit data to the buffer, regardless of whether the CPU is free to process then. They are
placed in a queue, until the system bus can forward them to the CPU. Under optimal
conditions, the PCI bus transmits 32 bits per clock tick. Sometimes, it requires two clock ticks.
Because of this, the peripheral PCI units operate asynchronous . Therefore, the PCI (contrary
to the VL bus) is not a local bus in a strict sense. Finally, the PCI bus is intelligent relative to the
peripheral components, in that Plug and Play is included in the PCI specifications. All adapter
cards for the PCI configure themselves. Plug and Play is abbreviated PnP. On modern system boards, the PCI bus (like ISA) has two "faces:"
● Internal PCI bus, which connects to EIDE channels on the system board.
● The PCI expansion bus, which typically has 3-4 slots for PCI adapters.
The PCI bus is continuously being developed further. There is a PCI Special Interest Group,
consisting of the most significant companies (Intel, IBM, Apple, and others), which coordinate
and standardize the development. It has been announced, that PCI should be developed with a
higher bus speed (66 MHZ) and greater width (64 bit). At the moment, it looks like alternative
busses will be marketed. An example is the high speed AGP video bus (Accelerated Graphics Port).