![]() | Background
![]() Introduction - An
overview of the bus
| ![]() The S-100
| ![]() S-100 / IEEE
696
| ![]() ISA
| ![]() MCA
| ![]() EISA
| ![]() MCA Vs
EISA
| ![]() Local Bus
| ![]() VL-Bus
| ![]() PCI
| ![]() VL Vs PCI bus
| ![]() Peripheral
buses
| ![]() SCSI
| ![]() IDE
| ![]() SCSI Vs EIDE
| ![]() Conclusions
| |
I finished a BSc in Industrial Biochemistry last year and wanted to extend my knowledge of computer software and hardware due to my career interests in Bioinformatics. Bioinformatics deals with storing and analysing the data generated by the various gene sequencing projects being carried out across the world. The ultimate goals of these gene sequencing projects is to make available the genetic blueprints of various living organisms ranging from bacteria and yeast to the genome of the human being. I find the module relevant in terms of the fact that the amount of work possible in bioinformatics is directly proportional to the processing power at hand and while much of the work done is conducted on high performance platforms such as DEC Alphas and SGIs, modern PCs are approaching the point of being applicable to the area of bioinformatics in the areas of analysis and modelling of data.
Prior to this year, my knowledge of microprocessors has been limited to any experience I have gained from hands-on work with my own PC, a 486DX2-66 with 3 ISA slots and an optional 2 shared VL-bus slots. It includes integrated video and an EIDE hard-drive controller.
A bus is basically a collection of wires which is responsible for
interconnecting the various components of a microcomputer together in order to
allow the exchange of data between these components and to provide power to
them. Early microcomputer systems possessed relatively simple bus systems which
were often adapted on the basis of their price and availability rather than for
any distinguishing technical features. Current state-of-the-art PC bus systems
are the product of a number of generations of bus technology and represent the
end-product of numerous manufacturers attempts to 'get it right' and establish a
particular standard as common to the industry and PC platform.
Backplane bus systems typically consist of a series of circuit boards mounted perpendicularly onto a motherboard via a series of slot connectors. This design allows for the exchange of bus devices and provides great flexibility in the range of devices a system can support (provided these devices adhere to the specific standard). Devices operating on a bus can be divided into two categories, bus masters and bus slaves. Bus masters are devices capable of initiating any bus cycle (memory read/write, port addressing, etc.) and bus slaves are devices which are not capable of initiating a bus cycle but merely responding to it. A third possible category are intelligent slaves which have their own intelligent controlling devices but do not assert control over the bus. A minimal bus has to feature three types of lines,
![]() | Control lines
![]() Address lines
| ![]() Data lines | |
The control lines are responsible for passing control signals across the bus
which instruct the devices when to read / write data. The address lines provide
the memory or I/O device addresses detailing what exact locations data is to be
read from / written to and the data lines provide a channel along which the
actual data is transferred.
Another important aspect of buses is their dependence on related hardware.
Some buses, for instance, are processor independent and can thus accommodate any
of a range of microprocessors while other bus systems are designed around
specific microprocessors or families or related microprocessors.
To illustrate typical bus operation, a generic PC-type bus consisting of a
minimal series of lines (address, data and control/strobe lines) will be used.
This illustration uses Programmed I/O to illustrate a typical bus operation
since PIO tends to be quite straightforward. The control lines are used to
synchronise data transfer by providing a series of pulses. Two possible schemes
of control involve providing separate READ and WRITE control lines or a STROBE
synchronising line and a READ/WRITE line with one state e.g. high denoting a
read and the other denoting a write e.g. low. The PC bus tends to use separate
READ and WRITE control lines (in fact 2 such lines for memory access and 2
additional lines for I/O access) so that scheme is adopted for the example - The
CPU is sending data to a peripheral attached to the bus. The CPU asserts a
strobe on the I/O write line. This pulse indicates that the preceding address on
the address line is good and the addressed peripheral begins reading data from
the data bus. The data write proceeds until such time as the strobe changes it
level, this signals the end of the I/O write and data ceases to be read by the
peripheral after a short period of time. There are other control signals
involved on real bus systems but example above illustrates the minimum signals
used on a system bus.
A small company called MITS unveiled an 8-bit microcomputer kit called the
Altair in 1975. Aimed at the computer hobbyist, the Altair was built around
Intel's 8080 microprocessor and included a backplane expansion bus with 100 pin
edge connector sockets. The particular socket design was apparently chosen
because of the availability of surplus stock from a supplier, indicating that
the first personal computer bus was chosen not for its technical excellence but
because it was economical and available in reasonable numbers. In the case of
the S-100 bus, many of the bus lines are signals which are actually generated by
the 8080 processor rather than being abstracted a level beyond the
microprocessor. Typical features of the S-100 board are listed in the
following,
Dimensions | 134mm x 254 mm |
Connector | 100 pin edge type
(50 on each side of the board, 3.17mm apart) |
Voltage Supply | Unregulated +8V,+16V |
In its time, the original S-100 bus was very popular with a large range of
peripheral boards being available for it including memory boards, serial and
parallel interface boards, floppy disk controller boards, video boards, music
synthesiser boards and speech recognition boards.
As noted in the above table , the voltage supply on the S-100 bus was
unregulated, this had both advantages and disadvantages. It made for a simpler
power distribution system on the bus and a reduction in electrical interference
between modules. On the other hand, this power distribution strategy required
that every board have its own regulator which increases the cost of individual
boards. A single, good regulator on the bus would have eliminated at least some
board reliability problems. The actual location of the power pins (1, 2, 51, 52)
was also questionable with any misalignment of cards leading to the possibility
of serious electrical damage to the board components. This could have been
prevented either by locating the pins such that no power flows if the board is
misaligned or by locating the power lines between grounding lines.
The position of the clock lines in the original S-100 was also potentially
problematic with the PHASE 2 CLOCK (2), PHASE 1 CLOCK (1) and 2 MHz clock
signals being located near to 9 other control signals. The clock signals tend to
occur continuously and have sharp rise and fall times. Unless they are shielded,
they can become coupled to the adjacent lines.
The S-100 provided 16 data lines, 16 address lines (providing an maximum
addressable space of 64k), 3 power-supply, 8 interrupt and 39 control lines. It
actually provided many more control lines than were necessary. The 16 lines of
the data bus provided 2 groups of unidirectional 8 bit lines (with one set
providing data input and the other providing data output). This configuration
was used as opposed to a bi-directional 8-bit group of lines, neither has any
great advantage over the other particularly when a lot of S-100 devices actually
recombined the signals on the boards.
Not all of the S-100 lines were clearly defined and since the S-100 could be used with a variety of processors including the Intel 8080, Zilog Z-80 and Motorola 6500 and 6800 microprocessors some lines were only generated by certain microprocessors. Also, the level of standardisation in the peripheral manufacturing industry was such that there was no specific agreement on what pins were for what. Most of the few hundred boards probably worked with most implementations of the S-100 but there was definitely some instances of conflict due to this lack of standardisation. In a nutshell, the S-100 bus became popular as manufacturers began to produce compatible boards in recognition of the popularity of the Altair. This, in turn, encouraged the makers of other microcomputers to incorporate the S-100 bus into their systems. A company called Cromemco actually coined the title S-100 (derived from 'Standard 100 bus') to give a common name to what
many manufacturers were claiming to be their own bus design.
A working party set up by the IEEE in 1983 forced a redesign and enhancement of the S-100 bus design. This was actually the first time the S-100 bus was formally specified. As well as ironing out ambiguities, the standard proposed a number of enhancements,
![]() | An additional 8 address lines, giving a total of 24 (capable of addressing
up to 16MB)
![]() Support for 16-bit microprocessors by way of a 16-bit data bus was added
(the original pair of 8-bit unidirectional data bus lines could be combined to
form a bi-directional 16-bit data bus). This extension was implemented with
the addition of 2 new signals, sixteen request (SXTRQ, line 58) and
sixteen acknowledge (SIXTN, line 60).
| ![]() 3 ground lines were added at lines 20, 53 and 70 to provide more signal
grounds
| ![]() Line 12 was standardised for the Non-maskable Interrupt (NMI) signal and 8
vectored interrupt signals are allocated such that an interrupt controller can
be used by devices on the bus. | |
Other improvements to the original bus included the precise specification of
all 100 lines, except 3 lines designated NDEFs (21, 65, 66) and 4 lines
designated RFUs (27, 28, 69, 71) - reserved for future use. The RFUs may not be
used by board makers but the NDEFs may be used as a manufacturer wishes provided
that their logical function is clearly specified. The data rate of any signal on
the bus was tied down to 6 MHz although in actual fact, boards capable of
running at speeds of up to 10Mhz were common.
The S-100/696 bus can support 1 permanent bus master and up to 16 temporary
bus masters, 4 DMA lines were designated for providing access to the temporary
bus masters. Priority is dependent on the particular DMA line being accessed. In
a step toward processor independence, some 8080-derived signals were deleted
from the new standard such as, the interrupt enable signal (PINTE) which
signalled the state of the interrupt enable flip-flop; the Wait command/control
signal which when high acknowledges that the processor is in wait state (PWAIT);
the Stack-status (SSTACK) output signal which, when high indicates that the
address bus holds the pushdown stack address.
Even this rudimentary set of rules made a relatively large impact on the status of the S-100. It was future-proofed in a number of ways,
![]() | It now had support for 16-bit microprocessors
![]() Due to the elimination of the 8080-specific signals, the S-100/696 fully
supported a range of other microprocessors and was relatively manufacturer
independent.
| ![]() The maximum addressable space of the bus had increased dramatically.
| ![]() Signal timings were clearly specified and the bus loading and termination
impedances were clearly specified eliminating many of the early compatibility
problems which were caused by signal reflection and crosstalk. | |
The S-100 was thus given a new lease of life with this standard and although
there were technically superior buses in existence at the time, the S-100 found
application in areas as diverse as small industrial control applications to
multi-user electronic office systems running proprietary database and
word-processing software. The two main reasons for its popularity were its price
and the large number of manufacturers that supported it. Also, as manufacturers
produce more and more boards to a certain bus specification, they tend to get
better at using that bus and gain experience of its quirks, thus any
manufacturer is understandably slow to migrate to other technology unless there
is significant market demand coupled with sound technical reason for doing so.
IBM introduced a new bus system in their XT personal computer in 1981. The
bus was of relatively simple design sporting 53 signal lines and 8 power/ground
lines. It was a synchronous 8-bit bus with parity protection and edge-triggered
interrupts. That is, the interrupt is signalled by the peripheral device
changing the voltage state on the IRQ line (from 0 to 1 or 1 to 0).
Edge-triggered interrupts can only be used by a single peripheral device i.e. a
number of installed peripherals cannot share the same IRQ.
The 62 pin XT bus did not support external bus masters with the only devices that could assert control over the bus being the CPU or the DMA controller on the motherboard. The key features of the XT bus are summarised below,
![]() | 20 address lines (A0-A19)
![]() 8 data lines (bi-directional)
| ![]() Maximum data transfer rate of 1.2MB/s
| ![]() 6 interrupt request lines (IRQ2-IRQ7)
| ![]() 3 DMA lines
| ![]() 4.77 MHz bus clock speed | |
The original XT bus was characterised by the simplicity of its design. It
didn't provide any particularly innovative features and in a lot of respects it
was limited by this simplicity (e.g. very limited number of Interrupt and DMA
channels; limited maximum addressable space; narrow 8-bit data path and lack of
bus master support), however it was well suited to the XT and performed quite
well with the 8-bit 8088 processor around which the XT was built.
An enhanced version of the XT bus was designed for use in the IBM-AT ('Advanced Technology') which was introduced in 1984. Importantly, while this bus provided significant enhancements to the original XT bus architecture, it retained backward compatibility with the original XT bus allowing old cards to be used in ATs using the new bus which was retrospectively described as ISA (Industry Standard Architecture). The major improvements to the XT bus that led to ISA are described below, most of these were implemented using an optional, additional connector (thus facilitating backwards compatibility).
![]() | A 16-bit data bus was implemented with the addition of 8 extra data lines.
![]() Maximum Addressable space was increased to 16MB with an additional 4
address lines (to give a total of 24).
| ![]() 5 additional edge-triggered IRQ lines were added.
| ![]() Partial support for multiple bus masters was provided with the
introduction of the signal.
| ![]() Maximum bandwidth of 5.3 MB/s
| ![]() 8 MHz bus clock speed. | |
The bus mastering was not a complete or perfect implementation due to certain
limitations such as a request by a Bus master for 'Bus hand-off' requiring
several cycles for completion and the master having to relinquish the bus
periodically to allow memory refresh (or do the refresh itself). It is important
to note that IBM made an effort to ensure backwards compatibility with the
XT-bus. As mentioned, most of the new features were implemented by adding on
another connector to the bus which allowed extra features to be added without
disrupting existing (XT) bus functions. The AT was built around the Intel 80286
which ran significantly faster than the original 8088 so a wait-state generator
was added to lengthen the bus cycle. A bypass was provided via one unused line
(pin 88) on the original bus (recalling that the XT bus used a 62 pin connector
but only had 53 signal lines and 8 power lines). This pin became the zero wait
state line (). When this line is being pulled low, some or all of the wait
states generated by the AT motherboard are removed. By putting this signal on
the 62-pin connector, IBM allowed manufacturers to make fast new 8-bit boards as
well as fast 16-bit boards.
The new connector added 4 new address lines (A20-A23), plus copies of three
lower address lines (LA17-LA19). This duplication was necessary because the
address lines on the XT bus were latched (the address signals were tied to
flip-flops which maintained the address lines logic level until explicitly set
to a different value) and this latching process caused propagation delays that
would slow down peripheral boards. By providing a duplicate set of these address
lines, the AT-bus allowed 16-bit boards to find out early in the cycle if they
were being addressed which allowed 16-bit cards to signal the bus that they
could accept a 16-bit cycle. This key feature of the AT buses backward
compatibility meant that if the 80286 attempted to perform 16-bit access to a
board, it would only do so if the correct signals were asserted by the addressed
peripheral, otherwise special hardware on the motherboard takes over and causes
two 8-bit cycles to be performed. Unfortunately, due to there being only 7
unlatched address lines as detailed above, this signal could only instruct the
board as to which 128K region of memory was being addressed, so a lot of memory
boards that didn't use a full 128K block of real-mode address space could not
activate the signal and thus were prevented from using 16-bit transfers, in
reality this included a lot of EMS boards and memory-mapped peripherals.
It is worth noting at this stage that the timings of the PC and AT backplanes
weren't formally specified by IBM at the time (clone-makers finally defined a
pseudo-standard for timings when developing the EISA bus).
There is no doubt that the ISA bus was not technically exceptional by today's
standards, however, it exceeded the requirements of most users in 1984 and IBM's
dominance of the mass computer market with the AT led to mass adoption of the
ISA bus by both peripheral board manufacturers and clone PC makers. This
popularity is attested by the continued inclusion of ISA slots in most modern
PCs (albeit in coexistence with faster local bus technologies). The
proliferation of many reliable 16-bit ISA bus cards for a variety of tasks that
do not require faster transfer speeds or wider data paths has led to its
continued use in PCs for tasks such as networking (Ethernet 3Com etherlink III
and Novell NE2000 ISA cards account for a large section of the LAN market).
Single user machines also typically provide services such as sound-cards and
hard-disk controllers through the ISA bus. Obviously, its popularity and
relative simplicity made it a good choice for both board and PC manufacturers
and it remains to suitable many roles.
Up to April 1st, 1987, life in the PC world had been very simple; there were eight bits in a byte and just one bus to run it down. Of course, there were two sizes of bus: The 8-bit version and the 16-bit AT version, but there was no doubt that it was the same bus. Then, just one day later, on April 2nd, 1987, it had all changed and things would never be as simple again ....
-Chris Long, PC User
IBM discontinued their PC/AT line in 1987 to make way for the PS/2 series of
"clone-killers". Amongst the many features of this new generation of PC was a
brand new system bus - Micro Channel Architecture (MCA). One of the most
important points to note regarding the MCA bus was that it was not backwards
compatible with the ISA bus (as the ISA bus had been with the XT bus). IBM had
designed a new bus architecture from scratch and for various reasons (some
engineering based and some competition based) the ISA bus was no longer
supported by IBM. Coupled with this was the fact that IBM set a large licensing
fee on the use of MCA technology (as opposed to encouraging or at least not
opposing the duplication of the ISA bus in clone-makers systems) for any
manufacturer who wished to incorporate the design into its clone. This licensing
fee including a retroactive fee for the use of the ISA bus technology.
MCA's key features are as follows,
![]() | 8/16/32 bit data transfer path
![]() 20 MB/s maximum bandwidth
| ![]() Multiple bus master support
| ![]() 11 Level-triggered interrupts as opposed to the ISA style edge-triggered
interrupts (Level triggered interrupts allow sharing of interrupt lines thus
eliminating one of the problems plaguing the original PC - a shortage of
interrupt request lines).
| ![]() 24 or 32 address lines (providing up to 4GB of addressable memory space).
| ![]() Automatic card configuration (rather than having hard-wired I/O port
addresses, the CPU assigns an address at system start-up based on information
from ROM on the cards).
| ![]() Asynchronous Data Protocol | |
Although MCA was technically capable, IBM's strong-arm tactics and the price
tag of MCA cards resulted in IBM only slowly developing a market for this bus
system. People who bought into MCA based systems were typically companies who
were 'buying IBM', rather than buying MCA. IBM also provided an extension to the
standard MCA slot by way of a video extension connector which was designed to
speed up the video subsystem. The connector utilises video circuitry built onto
MCA motherboards and allows added on boards to coexist with it and utilise its
features. This supposedly provided a basic video system which could be relied on
regardless of what add-on video card was present but in theory, the video
extension was as proprietary as the bus system that spawned it and it never
featured prominently in the video scene. In the two years following the
introduction of MCA, only a few of the large clone manufacturers released MCA
based machines, Apricot and Olivetti were two of the main supporters of IBM's
new bus technology (and even Olivetti turned out to be burning both ends of the
candle, playing an active role in the development of a competing bus standard,
EISA). In September 1988, a competing bus technology was introduced by Compaq,
dubbed EISA for Extended Industry Standard Architecture.
This architecture was the clone-makers response to IBM's proprietary, licensed MCA. Compaq, back by the 'Gang of Nine' - Wyse, AST Research, Tandy, Compaq, Hewlett-Packard, Zenith, Olivetti, NEC and Epson, announced a 32-bit bus extension to ISA which retained full compatibility with ISA. As with the XT to AT bus transition, extra functionality was provided by adding extra connectors to the AT bus. EISA features include,
![]() | 32-bit data transfers
![]() 33 MB maximum bandwidth
| ![]() 32-bit memory addressing, providing up to 4GB of addressable memory space
(as with the ISA extension, the extra address lines were not latched providing
for faster addressing).
| ![]() Multiple Bus masters
| ![]() Programmable level or edge-triggered interrupts (with a number of devices
being able to share the same interrupt in the case of level-triggered
interrupts).
| ![]() Automatic board configuration. | |
The new pins for the EISA bus were physically placed between the pins of the
ISA bus. The EISA connector/socket was designed so that ISA cards inserted rest
on a set of tabs which prevent ISA cards making any physical contact with EISA
lines (which could possibly have occurred due to misalignment or mis-insertion
of ISA cards otherwise). EISA cards carried a number of slots which allowed them
to descend and make contact with the EISA lines.
The main signal lines added to the ISA standard to create the EISA standard
are indicated below,
M-10 | Distinguishes between an EISA memory cycle and an EISA I/O cycle |
Indicates the start of an EISA bus cycle | |
Provides timing control within an EISA bus cycle | |
Indicates that a master is capable of performing burst cycles | |
Indicates that a slave is capable of accepting burst cycles. | |
EX32, EX16 | Indicate that a slave is an EISA board and can support a 32-bit or 16-bit cycle respectively. If neither of these signals is asserted at the beginning of a cycle, the bus falls back to an ISA compatible mode for that cycle. |
Asserted by potential master number n to request the bus | |
Indicates to master n that it has been granted the bus |
An important feature of the EISA bus is that the host or any bus master can
access any memory device or peripheral in the system, even if their bus widths
differ. As indicated in the features list, for sheer speed EISA excelled
providing a maximum 32-bit data transfer rate of 33 MB/s. While EISA supports
level-triggered interrupt lines, it is important to note that older ISA cards
cannot share interrupts even when plugged into an EISA connector, since they
rely on older edge-triggering.
Bus master support in the EISA could be described as complete as opposed to
that provided in the ISA bus. The memory refresh controller, the active DMA
channel with the highest priority and peripherals vying for bus control compete
for ownership of the bus by means of a three-way sharing scheme controlled by
the EISA arbitration unit, the Integrated System Peripheral chip. The scheme
ensures that no bus master is deprived access although it is possible for
low-priority DMA channels to suffer. An additional watchdog on the system is
provided by the Intel's Bus Master Interface Chip (BMIC) which ensures that no
one master remains in control of the bus for too long. After a certain time
period elapses, the master is removed from the bus and a non-maskable interrupt
is generated by the CPU.
In conclusion, with EISA and 32-bit microprocessors (Intel's 80386 and
80486), the PC had grown up. It was no longer confined to personal computing and
now provided the power to act as a workstation or a unix box running a few
hundred terminals.
MCA and EISA were effectively pitted against each other as soon as EISA was
announced (about 2 years after MCA's debut). This was to be a battle not only of
the bus but of IBM's control of the PC market. If a group of clone-makers could
successfully introduce a new bus standard (more appropriately, a new set of
extensions to an old standard) that thrived at the expense of IBM's proprietary
standard then the market could break free of IBM's dominance.
Technically, the MCA and EISA were both 32-bit buses and provided similar
maximum address space but there were important differences,
MCA | EISA | |
Raw Bandwidth | 20 MB/s | 33 MB/s |
Mode of communication | Asynchronous | Synchronous |
Physical Dimensions of cards (length x width) | 292.1mm x 88.2 mm | 333.5 mm x 127.0 mm |
One of the problems MCA would have given board-makers stemmed from its physical size. EISA cards provided nearly double the surface area afforded by MCA cards eliminating the need for expensive integration to build the same function in a smaller area. Power supply is also an important factor of comparison, an EISA adapter can use more than twice the power of an MCA adapter. This makes peripherals simpler and cheaper to implement in EISA.
EISA, in particular Intel's EISA chipset only supported the 80386 and 80486
chips in its own attempt to discourage the use of clone 286 processors in
advanced machines while MCA featured on some 80286 based PS/2's as well as 80386
and 80486 machines. At the end of the day however, IBM remained the main
supplier of both MCA cards and MCA-based PCs while EISA boxes could be bought
safely in the knowledge that older ISA cards could be installed in them until
faster cards became available. In general, EISA could have been said to have won
the war since in instances where speed was an issue, EISA was the 32-bit bus of
choice e.g. Graphics intensive systems. It's worth noting, however, that EISA
never achieved the kind of market penetration envisaged by Compaq where it would
replace ISA bus systems entirely, rather ISA continued to thrive in the low end
of the market. By the time standard PCs were reaching the limits of ISA bus
technology for tasks such as graphics, the local bus was beginning to show up
effectively allowing standard PCs to bypass EISA technology.
The Local bus architecture takes a slightly different approach to that used by System I/O buses such as ISA, MCA and EISA by taking cards off of the expansion bus and connecting them directly to the CPU or across a bridge (integrated circuits that serve as signal amplifiers and repeaters) to the CPU. This eliminates the bottleneck of data throughput which existed when everything sat on an 8MHz bus. While 8MHz was fast enough for some devices, the performance of peripherals such as video adapters and hard-disk controllers was suffering by the early nineties. The solution was to give speed and bandwidth critical devices better access to the CPU and memory while allowing slower and older peripherals to remain on the ISA expansion bus. This was implemented by placing the ISA bus controller itself onto the local bus thus bridging the divide between local bus and slow peripherals. This was important, as had been proved by previous efforts such as IBM with MCA which neglected backwards compatibility with subsequent consequences for its popularity. Thus, most local bus implementations officially supported the bridging of older buses via a buffering scheme of some type. The two main contenders for the local bus market were VL-bus and PCI. There also existed various non-standard local bus implementations and non-specified architectures. Its important to consider that the development of processor direct buses was motivated by two main factors,
![]() | The development of next-generation microprocessors i.e. Intel's 80486
which ran at speeds of up to 66MHz (on a clock doubled chip). These processors
ended up waiting for input from slow buses with older PCs, effectively
mitigating any additional performance afforded by these chips.
![]() The development of advanced graphics adapters which supported more colours
and higher resolutions (VGA and SVGA) and faster hard-disk controllers which
had to transfer much more information than the monochrome and character-based
adapters of previous generation PCs (the demand for these adapters in turn was
linked to the introduction and proliferation of graphical user interfaces such
as Windows and OS/2). | |
The first standard for local buses introduced in August, 1992 was the VESA
local bus (or VL-bus). VESA (Video Electronic Standards Association) represented
a group of over 100 companies who came up with a specification for a local bus
implementation. The key features of VL-bus are summarised below,
![]() | The Bus supports 386SX, 386DX and 486-type host CPUs. It is designed for
use with single processor systems (the nature of VL-bus implementation
wouldn't easily lend itself to working with multiple processor systems).
Support for non x86 CPUs is also included in the VL bus specification by means
of a bridge chip capable of abstracting the bus signals.
![]() There is a maximum of 3 bus masters supported on the VL bus system (this
is in addition to the local bus controller), but it is possible to include a
number of subsystems if additional masters need to be supported.
| ![]() Primarily developed to support high speed video controllers, although also
expected to support other items such as hard-disk controllers.
| ![]() Bus speeds of up to 66MHz are supported but the electrical characteristics
of the physical VL-bus connector limit the speed of devices operating across
the connector to 50MHz (slotless devices such as integrated graphics devices
would presumably not suffer from this limitation). In addition, clock doubled
chips e.g. 486DX2-66 must halve their CPU clock before driving the VL-bus
clock (this, in this instance, the bus speed would be 33MHz).
| ![]() Future compatibility for devices was included whereby all VESA-compatible
devices would function on current and future VL-bus implementations without
modification.
| ![]() The bi-directional data bus has a width of 32 bits but VL-bus also handles
16-bit transfers. The specification also reserves space on the board for a
future 64-bit capable version.
| ![]() Full DMA support is provided with the bus devices needing to be full bus
masters to take control, no DMA initiators are supported by the bus.
| ![]() Maximum theoretical bandwidth of 160 MB/s (this being on a 50MHz bus),
with typical bandwidths of 107MB/s being achievable on 33MHz buses.
| ![]() Burst mode transfers are supported by VL-bus for 486 motherboards that are
capable of burst transfer, with VL-bus using 5 identifier pins to identify the
type and speed of the host CPU. The Burst Last (BLAST#) signal is used to
activate burst capable systems. It is maintained low on non-capable systems.
| ![]() The bus sports a 58-pin MCA type connector. A maximum of 3 slots is
supported (and this decreasing to 1 on certain 50MHz buses).
| ![]() VL-bus is physically in-line with the ISA or EISA connector, thus all
(E)ISA signals are available to VL boards.
| ![]() Caching is supported for both CPU and motherboard caches.
| ![]() Power is provided in the form of 5 volt supply lines but devices that
output 3.3 volt logic are also supported provided they can tolerate 5 volt
input levels. | |
The VL bus was a long way from the decade old ISA bus, both in terms of its
performance and its design. Not only was it fully specified but it was designed
with the future in mind. The VL-bus 2.0 specification even outlined a 64-bit
data bus standard. When it was introduced, VL-bus was the system of choice for
premium graphics performance as was intended. Manufacturers had been slow to
support any of the proprietary local buses due to fears of investing heavily in
technologies that could become obsolete overnight. VL-bus provided a reliable
platform on which manufacturers could base their more advanced graphics
adapters.
One of the design intentions with VL-bus was to come up with a specification
that allowed for the design of boards which used existing chipsets and very
little glue logic chips which increase card costs. This was a bonus to
manufacturers and users alike in that as well as offering high performance
cards, they could offer them at a low price, lower in fact than similar EISA
cards.
Clearly VL-bus was a winner, at least in the short-term for this is how many
in the industry viewed it, particularly Intel who were working on their own
local bus implementation, PCI. VESA proposed that VL and PCI could live in
harmony with the bridging capabilities of VL allowing both buses to coexist in a
system. Intel agreed that this was possible but posed the rather obvious
question of why one would want both. Intel viewed the VL-bus as technology based
on 11 year old PC architecture. It was essentially a quick fix in their view, a
product of the compromise between different manufacturers. Another potential
problem with VL-bus is that the bus is driven directly by the CPU and Intel
discouraged the placing of cards directly on the CPU bus since the output
signals of the 80x86 are not designed to drive the heavy loads usually
associated with a bus and card structure. The VL-bus specification was designed
to ensure that no damage was possible but the argument existed that a
badly-designed card could damage a system.
In 1992, Intel announced its own local bus technology dubbed Peripheral
Component Interface (PCI) to challenge VESA's VL-bus. Intel had designed PCI
from the ground up rather than implementing it as an enhancement or quick fix to
the bandwidth problems occurring in the PC. Intel claimed they had spent over
2000 hours in simulations of the PCI bus on sophisticated SPICE software which
allowed them to analyse potential problems with the PCI signals and modify the
basic design to smooth out these flaws. The PCI standard was turned over to the
PCI Special Interest Group making it an open standard. One of PCI's features is
that of not being quite as local to the CPU as VL-bus, instead it operates over
a bridge to the CPU bus, this has the added advantage of making it totally
processor independent with a bridge chipset abstracting the CPU signals.
Nonetheless, PCI is a local bus implementation. Its key features are listed
below,
![]() | Synchronous 32-bit bus that carries both data and addresses.
![]() Capable of operation with 5 or 3.3 volt logic by means of separate keyed
power supplies for both voltages.
| ![]() Bus speeds of up to 33MHz (with provision for a future version supporting
speeds of 66MHz).
| ![]() Transfer rates as high as 132 MB/s using burst mode.
| ![]() Full multiple master capability e.g. several hard-disk controllers could
operate simultaneously on the bus.
| ![]() Write-back and write-through caching supported.
| ![]() Automatic configuration of PCI add-in cards at power-up.
| ![]() The PCI specification allows for up to 8 functions on a single card (e.g.
a combination of video, sound, etc.).
| ![]() PCI supports a maximum of 4 slots due to bus loading limitations but
multiple PCI subsystems can be used with bridging.
| ![]() PCI devices are equipped with a latency timer which is used to define the
maximum amount of time the device is allowed to use the bus. | |
The 66MHz bus speed has actually been implemented on some of Intel's newer
PCI chipsets (e.g. Triton II) but as per the PCI 2.1 specification, the bus will
only operate at 66MHz if all peripherals are operating at this rate, otherwise
it reverts to 33MHz operation. As with VL-bus, the system I/O bus can be bridged
to the PCI bus to include support for the older ISA and EISA card types. This
technology has even been used to implement VL to PCI bridging schemes which
provide both types of local bus on the same system.
The PCI bus defines three types of address space, the two usual ones of
memory and I/O and an additional space for configuration information. Each PCI
device is equipped with a 256-byte area, which includes details about the device
and it's type i.e. network adapter, disk-controller, graphics adapter. At system
start-up, this configuration area is scanned for each PCI device and each device
is assigned a unique base address and interrupt number. PCI uses the one bus for
both address and data signals by multiplexing them i.e. the same electrical
conducting paths are used to carry both signals although not at the same time.
An additional signal line indicates whether address or data information is on
the bus. This multiplexing allows the PCI board to have a relatively small
number of pin-outs, which decreases the size of the connector and also decreases
the area of the motherboard used by the card.
PCI was obviously designed to be future-proof with features such as 66MHz bus speed and 64-bit bus widths being assessable when the need arises and the computer industry in general has endorsed the design by supporting it. Companies has varied as Apple and Digital have plans to or already include PCI in their machines. (Apples latest generation of Power Macintoshes use PCI instead of NuBus and DEC has gone so far as to implement built in PCI support to some of its RISC chips).
In the end, there was no real competition. VL bus provided a great
improvement in video performance on 486 systems and provided manufacturers with
a convenient scheme for integrating their systems. PCI on the other hand was
always viewed as something that had been done right. It asserted itself as local
bus leader with the advent of the Pentium PC where it acted as the backbone of
the motherboard while VL-bus was slowly retired even though the VL 2.0
specification allowed for next generations processors, it just wasn't up to the
job. This, coupled with the fact that Intel are responsible for the Pentium
chipset gave them the opportunity to capture the market.
Traditionally, a bus was the hardware standard that governed how add-in
boards would connect to the CPU and described the physical connections or
connectors involved while an interface was a low-level description of the
electrical signals that each side of a connection expected to see and how the
hardware would interpret them. Peripheral buses can be found somewhere in the
gray area between the two in terms of definition. In terms of function,
peripheral bus generally describes a scheme for connecting peripherals such as
hard-drives, scanners, cd-roms and various other storage devices. Peripheral
buses are driven by a controller which typically resides on the local bus
although older ISA versions of most peripheral bus controllers also exist.
This is probably the oldest peripheral bus still in common use today. The
Small Computer Systems Interface provides a scheme for connecting devices such
as disk storage devices and scanners to small and medium-sized computers. The
SCSI specification is controlled by the American National Standards Institute
(ANSI) and allows the connection of up to 7 devices to a computer. It originally
became popular in Apple Macintoshes in 1984 but it is commonly found in IBM-PCs
today also. The SCSI specification has been revised twice with the introduction
of SCSI-2 and SCSI-3 as well as the original SCSI specification. SCSI-3 is still
not fully ratified however, and most available devices conform to SCSI, with
newer devices supporting subsets of the SCSI-2 standard.
The key features of SCSI are as follows,
![]() | 8-bit parallel I/O bus
![]() Each adapter can support up to 7 devices
| ![]() Various devices including cd-roms, tape drives, scanners and optical
storage devices (including magneto-optical drives) are supported.
| ![]() Cable lengths of up to 6 meters are supported allowing devices to reside
outside of the main computer case.
| ![]() Data transfer rates of up to 4MB/s are supported.
| ![]() Synchronous and asynchronous data transfer schemes are supported.
| ![]() Long cables require terminators to be placed on devices at the end of the
SCSI daisy-chain. | |
SCSI-2 improved on the original standard in a number of areas, giving an
improvement in flexibility and higher performance. The bus-width was increased
to include 16 and 32 bit buses. With a maximum speed of 10MB/s on the 8-bit bus,
speeds up to 40MB/s are supported on the 32-bit bus. The SCSI-2 specification
allows any of the above combinations thus giving rise to a number of different
subsets of SCSI-2,
Narrow SCSI | 8-bit version of SCSI |
Wide SCSI | 16 and 32 bit versions of SCSI-2 |
Fast SCSI | SCSI-2 that supports 10MB/s speed |
These implementations can be combined to give various different versions such
as Fast-Wide SCSI for instance. A SCSI-3 specification is currently under
development by ANSI, again including support for a faster bus. It will also
implement longer cables, possibly of different types (e.g. copper, optical
fibre, etc.). Support for a serial version of SCSI-3 is also being worked
on.
Integrated Drive Electronics or IDE was developed by Western Digital and Compaq as a disk interface. It was derived from older disk interface controllers. It is not strictly speaking, a bus architecture (although some features of EIDE make it as nearly as much bus as SCSI is), but it serves as an interesting comparison to SCSI. The two features which made it the most popular disk interface in PCs are its ease of use and its price. It's key features are listed below,
![]() | Transparent to applications software, IDE is defined in the PC BIOS and
IDE interface.
![]() Supports two magnetic media drives (thus excluding devices such as
cd-rom).
| ![]() As suggested by the name, all controller electronics are built into the
drive.
| ![]() Data transfers of up to 4.1 MB/s are supported.
| ![]() 40-pin connector interface.
| ![]() 528MB disk capacity limit (this limitation is linked to the implementation
of IDE through the BIOS).
| ![]() IDE interface can sit on either the system I/O bus such as ISA or on the
local bus. | |
1994 saw the introduction of Enhanced IDE (EIDE) which upgraded the standard to allow IDE to be used with current technologies and to improve its speed performance. Improvements include,
![]() | Increased data transfer rate of 10MB/s
![]() Drive capacities up to 8.4GB.
| ![]() Increased number of supported devices to 4 (with the addition of a second
channel, up to two EIDE controllers can be used on a bus).
| ![]() Support for optical devices and cd-rom is included in the enhanced
specification
| ![]() A maximum cable length of 18 inches is defined | |
SCSI is a powerful peripheral bus that allows for a large number and type of
devices and quite high transfer rates. But this performance is gained at a
price. Most typical PCs of today come with EIDE interfaces as standard on the
motherboard while SCSI requires the addition of a SCSI controller card. This
represents an additional expense which is incurred in obtaining higher
performance. SCSI drives typically cost significantly more than EIDE drives of
the same capacity. SCSI's main advantage lies in the number and types of devices
it can support (EIDE does not support the connection of devices such as
scanners). SCSI also wins out in situations where it is necessary to place
devices outside the computer case i.e. when all available drive bays are full.
SCSI is typically found in network servers and high-power machines where
additional features such as RAID (Redundant Array of Inexpensive Disks) which
provide greater data reliability are of us. Unless a user requires these
features however, (and todays typical PC user doesn't) EIDE is the peripheral
bus of choice for general use.
There is a large range of different PC bus systems found in todays PCs. These
bus systems have evolved from "one PC one bus" architectures which were
prevalent in the early PCs to systems today which are built around a number of
different buses, each of which is used for particular features it offers e.g. in
a typical PC on the market from a vendor such as Dell Computer Corporation
today, at least ISA and PCI will be supported with either an integrated EIDE
disk controller or a SCSI controller also being available. The ISA bus persists
in order to accommodate older cards and cards which do not require the advanced
features or speed of the PCI local bus. Typically, these buses will reside on
top of the PCI local bus.
An overview of the evolution of bus technologies leads to the conclusion that
we there have been a series of jumps in design. The first generation of PC's
used a badly defined bus standard (S-100) that was chosen more for convenience
than any distinguishing performance features. ISA was the next generation of PC
bus and represented a predefined (albeit loosely) bus scheme that was designed
to be used in the PC, rather than being adapted for use from another system.
EISA was effectively an enhanced version of ISA rather than a new generation.
MCA was a standard defined from the ground-up but never really gained popular
support due to the pricing and licensing strategy adopted by IBM. Thus, from an
evolutionary point of view, MCA could be seen to represent the third-generation
of PC bus architectures, however, given the similarities between MCA (in terms
of its physical design and the features it offered), it is preferable to view it
as a distant ancestor of third generation technologies which were introduced
with local bus. PCI is the definite winner in local bus stakes, providing a
standard that will probably see PCs well into the next decade. PCI was a
designed from the ground up bus that arrived on the market at a time when its
features were needed and appreciated and didn't represent a rehash of earlier
technologies.
Advances in bus design are intrinsically linked to two things,
![]() | Improvements in overall computer performance (including microprocessors,
graphics cards, etc.)
![]() Demand from users for higher performance machines due to advances in
Operating Systems and interfaces. | |
![]() | The S-100 & Other Micro buses, 2nd Ed., Elmer C. Poe and James C.
Goodwin
![]() Upgrading and Repairing PCs, 3rd Ed., QUE
| ![]() The Art of Electronics, Horowitze and Hill
| ![]() "Fast Transit", Byte, October 1992, p122-136
| ![]() "Inside the PCI Local Bus", Byte, February 1994, p177-180
| ![]() "S100 in commerical applications", Micro & Microsyst, vol 10 no
2,March 86
| ![]() "Inside EISA", Byte November 1989, p417-425
| ![]() "System Bus or Bottleneck", Byte March 1992, p131-138
| ![]() "Back of the bus", Byte August 1994, p109-116
| ![]() VESA 2.0 VL-bus specification
| ![]() "The EISA Story", PC User, 10-23 May 1989
| ![]() The PCI
faq
| ![]() Intel Support Web-site
| ![]() Bus
Systems | |