Various Bus Types
** Hardware Guide Home **
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.
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.
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
Micro Channel Architecture.
A proprietary standard established by IBM 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.
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. There
are two varieties:
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 salve 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). 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