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.
Some of the more well-known buses used in a PC today are:
The original PCI bus 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).
PCI has evolved into the PCIe (express) bus:
|
This is what some PCIe slots look like:
PCI Express slots (from top to bottom: x4, x16, x1 and (another) x16), compared to a traditional 32-bit PCI slot (bottom)
Here is the homepage of the Special Interest group for PCI: click here
A bus protocol consists of:
|
The steps include timing relationships that must be followed to guarantee that a data transfer operation is successful
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
Basically:
|
The reverse is also true:
|
Bus protocol contains:
We will study a very simple bus protocols that distill the essence of communication techniques between automata (machines).
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
|
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.)
In essense:
|
|
|
The pitcher have remember where the catcher is and he can always aim the ball right at the catcher's chest.
The catcher can catch a ball as long as he has his mitten held to his chest.
However, the catcher cannot always keep his mitten held to his chest all the time.
Puzzle:
|
If you can solve this puzzle, you have discovered an asynchronous protocol to signal that the pitcher is ready !!!