Bus Types
- The purpose of an expansion bus is to provide a way for
users to add hardware devices (slot-in
cards) to a PC using standardised connectors. The
advances of technology, especially advancements in
developing extremely fast micro- processors, has given
birth to more computer bus options than ever before. The
blame for not attaining high throughput levels no
longer lies with the processor, but rather with Input/Output
devices such as hard disks, LAN cards and video
cards. It is for this reason that manufacturers are
devising better and more efficient ways of interfacing
the expansion slots to the processor itself.
- The expansion bus (where expansion cards go) is an
extension of the Central Processor, so when adding cards
to it, you are extending the capabilities of the CPU
itself. The relevance of this regard to the BIOS is that
older cards are less able to cope with modern buses
running at higher speeds than the original design of 8 or
so MHz. Also, when the bus is accessed, the whole
computer slows down to the bus speed, so it's
often worth altering the speed of the bus or the wait
states between it and the CPU to speed things up. The PC
actually has four buses; the processor bus
connects the CPU to its support chips, the memory
bus connects it to its memory, the address
bus is part of both of them, and the I/O
(or expansion) bus is what concerns us here.
- Before the days of the original IBM PC, there were no
standards. The first agreed upon bus specification which
was drawn up was called the S-100. Steven Jobs and Steven
Wosniak, the originators of Apple computers, are
generally credited as been the first to implement
expansion slots to allow the possibility of adding
slot-in cards. This caught the attention of IBM and
produced the first IBM PC with expansion slots using the
8088 16 bit CPU. The 8088 had an external bus of 8 bits
running at 4.77 MHz. The expansion slots were connected
directly to the CPU and could therefore run at the full
CPU clock speed of 4.77 MHz.
- IBM then produced the AT computer which had an external
16 bit bus with a bus speed of 6 MHz and later 8 MHz. The
expansion slots were made to cope with the 16 bit bus. In
order to maintain compatibility with existing 8 bit
cards, the 16 bit slot was made to be backwards
compatible. IBM clone manufacturers then started pushing
the CPU speeds up and kept the expansion slots at the
same speed as the CPU. At a bus speed of 12 MHz, it was
found that expansion cards no longer functioned
correctly. Consensus was reached within the industry to
keep expansion slots at a speed of 8 MHz irrespective of
the CPU speed - the Industry Standard Architecture (ISA)
was born. It was at this time when expansion slots were
no longer directly connected to the CPU.
- The industry was at peace until Intel produced the 80386
processor with a 32 bit bus. IBM also announced its Micro
Channel Architecture for 32 bit bus data transfer running
at 10 MHz. In response to clone manufacturers, the
Extended Industry Standard Architecture (EISA) was born
in 1988 with a bus speed of 8.33 MHz. EISA and MCA was
considered too expensive for the average user so ISA
still remained as an alternative.
- The world is now sitting with 32 bit architecture with
video graphics cards and hard disk controller cards
plugged into ISA expansion slots trying to transfer many
megabytes of data per second down a 16 bit bus running at
8 MHz. This can be compared to a four lane high speed
highway suddenly coming down to two lanes and still
trying to cater for the same high volume of traffic.
- Industry Standard Architecture. The
8-bit version cane on the original PC and the AT, but the
latter uses an extension to make it 16-bit. It has a maximum
data transfer rate of about 8 megabits per second on an
AT, which is actually well above the capability of disk
drives, or most network and video cards. The average
data throughput is around a quarter of that. Its design
makes it difficult to mix 8- and 16-bit RAM or ROM within
the same 128K block of upper memory; an 8-bit VGA card
could force all other cards in the same (C000-DFFF) range
to use 8 bits as well, which was a common source of
inexplicable crashes where 16-bit network card were
involved.
System Attributes |
PC or XT |
AT Classic Bus |
Processor |
8088/8086 |
286 and higher |
CPU Modes |
Real |
Real/Protected |
Expansion Slot |
8 bit |
16 bit |
Slot Type |
ISA |
ISA |
Interrupts |
8 + NMI |
16 + NMI |
DMA Channels |
4 |
8 |
Maximum RAM |
1 MB |
16 MB |
Floppy Controller |
360K/720K |
1.2M/1.44M |
- Extended Industry Standard Architecture.
An evolution of ISA and (theoretically) backward
compatible with it, including the speed (8 MHz), so the
increased data throughput is mainly due to the bus
doubling in size-but you must use EISA expansion cards.
It has its own DMA arrangements, which can use the
complete address space. On advantage of EISA (and Micro
Channel) is the ease of setting up expansion cards-plus
them in and run the configuration software which will
automatically detect their settings.
System Attributes |
EISA |
ISA |
Memory Capacity |
4 GB |
16 MB |
Data bus width |
32 bit |
16 bit |
DMA Range |
4 GB |
16 MB |
DMA data path |
8/16/32 |
8/16 |
Maximum DMA Transfer |
33 MB/sec |
2 MB/sec |
Bus Arbitration |
6 Bus Masters |
Single |
Bus Master data path |
16/32 |
16 |
Synchronous clock rate |
8.33 MHz |
8.33 MHz |
- Micro Channel Architecture. A
proprietary standard established by IBM in 1987 to take
over from ISA, and therefore incompatible with anything
else. It comes in two versions, 16- and 32-bit and, in
practical terms, is capable of transferring around 20
MBps.
- It was found that poorly designed ISA bus machines did
have fairly high radio frequency emissions. Good ISA bus
designs complied with the basic FCC Class A regulations.
MCA, with its very strict FCC Class B certification, has
a distinct advantage over ISA and EISA as CPU clock
speeds go higher and higher. MCA is very well shielded
which makes it immune to electrical noise.
- MCA is designed to eliminate the hassle associated with
setting jumpers and DIP switches on adapter boards. The
adapter card booklet describing all possible settings
gets invariably lost, making the card unusable if the
card's environment changes. IBM's answer is called
Programmable Option Selection (POS) which is built into
MCA computers. The POS uses a special file called an
Adapter Description File (ADF) which is supplied with
each adapter board. This ADF contains all the possible
setting and configurations for the specific card. The POS
will also take care of any conflicting settings.
- MCA also corrects any potential timing problems which may
exist between adapter boards or even memory. Each
expansion slot is supposed to carry the same signals as
any other slot but this might not always happen. Effects
on the bus, such as capacitance and signal propagation
delays, can cause timing windows to appear differently in
different slots. These effects cause unexplained problems
to occur mostly in a random fashion. MCA has the ability
to wait for a response (automatic wait states) until the
adapter is ready to continue. This can slow the process
down but is considered more important than the
"ghost" symptoms found on ISA.
- The Video Electronics Standards Association (VESA) formed
a committee in June 1992 to study existing and certainly
emerging, local bus video systems in terms of connector
layout, signal and data structures. In September 1992
they finalised the VESA Local Bus connector which
connects devices directly to the local/host bus. There's
also an 'Opti local bus connector'. This connector
extends the EISA bus where the VLB connector extends the
ISA bus. The local bus is one more directly suited to the
CPU; it's next door (hence local), has the same bandwidth
and runs at the same speed, so the bottleneck is less
(ISA was local in the early days). Data is therefore
moved along the bus at processor speeds. VL-BUS,
a 32-bit bus which allows bus mastering, and uses two
cycles to transfers a 32-bit word, peaking at 66 Mb/sec.
It also supports burst mode, where a single address cycle
precedes four data cycles, meaning that 4 32-bit words
can move in only 5 cycles, as opposed to 8, giving 105
Mb/sec at 33 MHz. The speed is mainly obtained by
allowing VL-Bus adapter cards first choice at
intercepting CPU cycles. It's not designed to cope with
more than a certain number of cards at particular speeds;
e.g. 3 at 33, 2 at 40 and only 1 at 50 MHz, and even that
often needs a wait state inserted. VL-Bus 2 is 64-bit,
yielding 320 Mb/sec at 50 MHz. There are two types of
slot; Master and Slave. Master boards (e.g. SCSI
controllers) have their own CPUs which can do their own
things; slaves (i.e. video cards) don't. A slave board
will work on a master slot, but not vice versa.
- PCI, which is a mezzanine bus, divorced
from the CPU, giving it some independence and the ability
to cope with more devices, so it's more suited to
cross-platform work. It is time multiplexed, meaning that
address and data lines share connections. It has its own
burst mode that allows 1 address cycle to be followed by
as many data cycles as system overheads allow. At nearly
1 word per cycle, the potential is 264 Mb/sec. It can
operate up to 33 MHz, or 66 MHz with PCI 2.1 and can
transfer data at 32 bits per clock cycle so you can get
up to 132 Mbytes/sec (264 with 2.1). The PCI 2.1 specs
include a 64-bit 66MHz PCI bus. Each PCI card can perform
up to 8 functions, and you can have more than one
busmastering card on the bus. It should be noted, though,
that many functions are not available with PCI, such as
sound. Not yet, anyway. It is part of the plug and
play standard, assuming your operating system and
BIOS agree, so it is auto configuring (although some
cards use jumpers instead of storing information in a
chip); it will also share interrupts under the same
circumstances. The PCI chipset handles transactions
between cards and the rest of the system, and allows
other buses to be bridged to it (typically and ISA bus to
allow older cards to be used). Not all of them are equal,
though; certain features, such as byte merging,
may be absent. The connector may vary according to the
voltage the card uses (3.3 or 5v; some cards can cope
with both)