Computer buses and bus protocols
 

  • A bus consists of a set of wires used to transfer data between different devices inside a computer

  • A bus has:

      • A standardized connector (a physical property) used to connect a device onto the bus

      • A standardized communication protocol (specifing events and the chronological timing) used by all deviced connected onto the bus to ensure that the data communication proceeds correctly

  • There are many different kinds of buses inside a computer !!!

Buses inside a typical PC

A typical PC (around the year 1990) has 3 buses:

(1): a very high speed memory bus

Buses inside a typical PC

A typical PC (around the year 1990) has 3 buses:

(2): a high speed PCI (Peripheral Component Interconnect) bus --- click here

Buses inside a typical PC

A typical PC (around the year 1990) has 3 buses:

(3): a low speed ISA (Industry Standard Architecture) bus - click here (ISA is now deprecated)

Connectors (slots) of buses
 

Each type of bus has a standard that specifies the shape and pin assignment of its connector

Example: the PCI connectors (a.k.a. slots) on a PC looks like this:

Good YouTube video on peripheral buses: click here

Communication protocols (in general)  
 

From Wikipedia: ( click here)

  • A communication protocol is a system of rules that:

      • allow two or more entities of a communications system to transmit information (data) to each other.

  • The communication protocol defines:

      • the rules, syntax, semantics and synchronization of communication

      • possible (= optional) error recovery methods

  • A communication protocols may be implemented by hardware, software, or a combination of both.

Communication protocol used in computer buses  
 

  • Each type of computer bus has a standardized communication protocol called: a bus protocol

  • A bus protocol consists of specification on

      • what/which bus signal to send and

      • when to send the signal

  • The " what/which and when to send signals" constitutes of a set of standardized steps (= protocol) that devices on the bus must follow in order to perform data transfer between each other

So what exactly does a communication protocol look like ?

  • Sample human communication protocol: (computer's protocol is similar)

      • A: "Hi B, how are you"
      • B: "Hi A, I'm fine. What can I do for you today"            
      • A: "B, I like to get C's phone number from you"
      • B: "A, please wait while I look it up"
      • .... (waiting...) ....
      • B: "A, it's 123-4567". Did you get that ?
      • A: "B, thank, I got it" (acknowledge for correctness) - Have a good day (= end)
      • B: "A, have a good day" (= end)

  • Bus protocl:

      • A bus protocol prescribes a sequence of rigid (= fixed) steps that communicating devices must follow to perform a data transfer operation.

Communication protocols "signalling" used by electronic devices
 

  • Electronical devices do not "talk" like humans to each other

  • Electronical devices uses electical signals to send command/request and responses to each other

  • A typical protocol exchange steps like this:

      • When CPU sends some signals which indicates some request address to some device

      • The communication protocol will specify how a devcie must reply to the request (signal)

Specifying a communication protocol

  • A communication protocol is specified using a timing diagram that describes the steps in the communication protocol

  • Example: timing diagram of a reliable message exchange protocol

    The timing diagram describes these steps:

    • Sender sends a message must wait for an Acknowledgement
      When the Acknowledgement is not received within a timeout period, the sender retransmits the message

    • Receiver must transmit an Acknowledgement when it receives a message

Implementing a communication protocol

  • A communication protocol is implemented as finite state machines:

      1. The Sender/Requester protocol FSM           
      2. The Receiver/Responder protocol FSM

  • Example: a FSM for the reliable message exchange protocol

    (Message "a" is an acknowledgement of the reception of message "m").

Why use standardized buses ?

  • Short answer: economy...

  • Any device that comply to the bus protocol standard can be plugged in on to the bus !!!

  • A standardized bus protocol will allow any manufacturer of computer equipment to make devices that comply to the bus protocol standard

  • Case in point:

    Wikipedia: Apple wishing to maintain control over supply chain of accessories and the ability to charge a licensing fee...

    PS: the above statement has been removed from the Wikipedia page - it was there....

Types of bus protocols

  • The bus protocols can be broadly devided into 2 categories:

    • Synchronous bus protocols:

      • The synchronous bus include a "CLOCK" signal used to pace events in the bus protocol

      • Events (= state transitions in the protocol FSM) on a synchronous bus are scheduled using the "CLOCK" signal

    • Asynchronous bus protocols:

      • The asynchronous bus does not use a "CLOCK" signal

      • The asynchronous bus contains the "Master Sync" and the "Slave Sync" signals to synchronize (= schedule) between the master device and the slave device