The first things we need to understand is exactly what is a bus. To answer the question we need to separate the different types of busses that may exist in a computer. We have a processor bus and/or memory bus (some processor memory buses are one and the same), the i/o bus, which is probably the most important bus since all data will flow on this bus between CPU and i/o cards and devices.
We now know what a processor bus is but we have no way of comparing any processor buses. |To do this we can use an equation to calculate the transfer rate of the bus. We need to know what bandwidth is. This is the amount of data that can travel along the bus in one second. When we multiply the clock speed of the bus by the data width of the bus and divide by 8, we will get the bandwidth or transfer rate of the bus (where the 8 comes from I'm still not sure). This transfer rate represents the maximum value. As with any other formula for Comp Sci, this means that you will probably never see any machine run with that transfer rate on its processor bus (or any other bus!). The speed is limited by signal propagation, and how fast data gets on the bus.
All require a fast I/O bus. We have several, and they are listed in order of introduction to the world:
The ISA bus comes in two flavors, 8 and 16 bits. In most of today's, machines you will not see any 8 bit bus connections on any board since the 16 can handle the 8 bit data. The ISA bus is set to run at a rate of 8MHz. This yields a maximum theoretical speed of 8MHz x 16 bits = 128 megabits/second.
The 128 must be divide by 2 which is the least amount of clock cycles it will take data to travel on the bus, and again by 8 to give us 8 megabits/second.
This I very slow compared to the potential of the processor/memory bus
which can run more than 40 times as fast as the max for the ISA. This is
why faster buses needed to be developed, to help keep up with the speed
of the rest of the machine.
The biggest drawback to the MCA bus is it only can devices that are
designed for MCA buses. It does not support the ISA device (which is why
no one will ever buy a MCA bus machine again).
Micro Channel Architecture (MCA)
As CPU speeds and data widths increased buses needed to be developed to
handle them. The MCA was designed to replace the slower ISA bus. The
differences in the MCA are that the data width is 32 bits, the bus runs
asynchronous to the CPU, and it provides Bus Mastering. The asynchronous
bus means that the speed of the bus is independent of the CPU rate, which
lowers the timing problems but increases the level of hardware to support
communication with the CPU. Bus Mastering is a way to speed up the bus
by having an adapter that acts like a processor to speed up data. The
MCA is faster than the ISA but since the MCA has no clock speed, we
cannot use the formula we have been using to get its throughput. The
only way to get any measure is to use (arrrrrr!!!!) benchmarks.
EISA Extended Industry Standard Architecture
The development of the MCA by IBM led to the development of the EISA bus.
The MCA bus introduced a faster and advanced bus than the ISA bus, but
lacked any compatibility outside itself. The EISA was the answer to the
MCA. The EISA bus has all the features of the MCA and also can support
ISA devices. The EISA does run at a clock speed though. Its max
transfer rate is (8MHz x 32bits)/8= 33.32 megabits/second. But because
the EISA bus can support ISA devices, its full abilities are not
utilized. The max transfer rate is only when using a 32 bit device and
most machines were not using them at that time. Both MCA and EISA did
bring something to the table that gave rise to a popular technology of
today - plug and play. Both allowed for jumperless devices to be
inserted and the computer would be able to know a device existed, but
both require software support to recognize the device.
VESA Local Bus (VLB)
The idea of the VLB was to use a bus that was separate from the regular
I/O bus. The goal is to have some part of the bus that could run on part
of the processor bus and communicate with I/O devices. The benefits of
the local bus are that they allow for data transfers to occur at the same
speed as the CPU, faster communication with storage devices. Video and
storage device controller cards are greatly enhanced in the VLB form as
they can transfer data much faster. The VLB has the drawback that it is
limited to the 486 processor. Also while theoretically it can run as
fast as the CPU, circuitry problems limit it to a recommended speed of
33MHZ. The design of the VLB has a major problem dealing with more than
one device on the local bus. Timing problems will occur, and the problem
of the speed limitation doesn't help either. While the VLB introduced a
innovative way around the slow clock speeds of the ISA, EISA (and MCA is
not as fast as VLB), it suffered from a bad design.
Peripheral Component Interconnect (PCI)
The VLB idea lead to a more successful local bus, the PCI bus. The PCI
brought a new bus from the processor bus and bridges by control hardware
to the I/O (or device connection). The PCI used a bus that could run at
the clock speed of the CPU, but without having to deal with the timing
problems of the VLB because the PCI bus is not on the processor bus. The
"max" for both PCI (32 bit) and VLB transfer rates was (33MHZ x 32bits) /
8 =132 megabits/second. The PCI is now double that since the
implementation of 64 bit Pentium systems. The PCI bus has become the
choice of today's high end systems (until something else comes along).
As stated before this is a local bus, which means machines also will have
another I/O bus, typically the ISA bus. So while bus technology has
greatly improved its performance, it still is using an original idea as
part of its main feature.
What's next?
It is hard to say what the next step would be. I have not seen any
reports , but I assume that the next step would be to get an entire I/O
bus that can run at the same transfer rate as the processor bus.
What did we see?
Hopefully you could see that each type of bus brought some type of
innovation to the field and was later used to develop more advanced
ideas. In each of the three areas from the start of the page, we can see
that as CPUs got faster it was necessary to increase the bus speed. The
VLB helped with the video as does the PCI bus, and virtually all
improvements help with increased software demands. All this was done
with fairly simple ideas, increase data width, and get the bus speed to
that of the CPU. We also see there exists a formula we can use to
calculate the transfer rate (except MCA) to do some modest comparisons.
LINKS and Sources
This page was created by Kyle Chapman