- A bus is a set of wires used to transfer
data between different devices in a computer
A bus is akin to a "pneumatic tube" used in drive-up banking
locations to transport "item" from the client to
the bank-representative and back.
- So in other words: a bus is used to make
communication possible between different devices
that are connected to the bus
- There are many different types of buses used inside a computer.
Some of the more well-known buses used in a PC today are:
- the ISA bus (developed by IBM)
- the PCI bus (developed by Intel)
- The PCI bus:
Currently by far the most popular I/O bus is the Peripheral Component
Interconnect (PCI) bus was developed by Intel and introduced in 1993.
PCI is a 32-bit bus that normally runs at a
maximum of 33 MHz (this is the clock rate, so the PCI is
an example of a synchronous bus protocol - see later).
Here is the homepage of the Special Interest group for PCI:
click here
- Every type of bus has its own bus protocol
A bus protocol consists of:
- A specification of the bus signals (wires) and how to use each signal
- The steps that devices must follow
to perform a transfer operation
The steps include timing relationships that must be followed
to guarantee that a data transfer operation is successful
- A bus protocol contains a sequence of clear and rigid
steps that communicating devices must follow to
complete a data transfer operation.
The rigid steps is necessary to enable machines to communicate with
each other... machines are not as flexible as humans
and must follow a very rigid course to make a (complex) task
(such as data transfer) successful
- So summary:
Bus protocol contains:
- Specification for each signal and its meaning
- A timing diagram that specify the steps that
communicating devices must follow
See for an example the specification of the PCI bus:
click here
We will study a much more simple bus protocol that
distills the essence of communication techniques
between automata (machines).
- Bus protocol are often proprietary or open (international)
standards.
The reason to standardize a bus protocol is:
In order to connect a device on, say a PCI bus, the device must
implement the PCI bus protocol to the letter
On the other hand, any device that implements
the PCI bus protocol to the letter, can be connected
to a PCI bus.
Here is a little secret: most bus protocols that are
economically successful are/were open standards,
i.e., manufacturers do not need to pay royalty to the developer of
the bus protocol in order to manufacture devices that implements
that bus protocol
PCI is such open standard.
With an open standard, manufacturers of computer devices can compete
fairly, for example,
each manufacturer of network card can compete in the PC market by
making sure that their network cards implement the
PCI bus protocol (to the letter).
They will be certain that their network card will work when
it is inserted into any PC
- The are two type of bus protocols:
- Synchronous bus protocols:
- The bus signals include a "CLOCK" signal
(a clock signal is used to pace events, see:
click here
- events on a synchronous bus are paced
by the "CLOCK" signal of the bus
- Asynchronous bus protocols:
- The bus signals include a "Master Sync" and a "Slave Sync" signals
- Events on a synchronous bus are paced
by the master and slave signaling each other's readiness.
To understand the operations of these two type of protocols,
you have to consider the capabilities of the devices inside
a computer...
All that these devices (CPU, memory, IO device....) can do is sense....
They cannot use sight to make preparations to communicate
(e.g., when you see the teacher walk to the black board, you may start
picking up your pen and paper and prepare to write down any notes).
So you need to take explicit steps to ensure that
the devices are "ready" when the communication occurs.
These "extra steps" are synchronization steps.
An example of an "extra step" in communication is:
before saying something to someone,
tell that someone that you are gonna say something to him.
(That may sound dumb in human communication, but that's what computers
(dumb machines :-)) have to do first.)