Bus Operations
Bus Operations
and Architecture
Chapter 3
System Buses
Topics
• Computer Components
• Computer Function
• Interconnection Structures
• Bus Interconnection
• PC Buses
Interconnection Structures
• All the units must be connected
• Interconnection structure:
The collection of paths connecting system
modules
• Different type of connection for different
type of unit
—Memory
—Input/Output
—CPU
• Design depends on necessary exchanges
between modules
Data Transfer
• Memory CPU
• CPU Memory
• I/O CPU
• CPU I/O
• I/O Memory (?)
DMA: direct memory access
Computer Modules
Memory Connection
• Receives and sends data
• Receives addresses (of locations)
• Receives control signals
—Read
—Write
—Timing
Input/Output Connection(1)
• Similar to memory from computer’s
viewpoint
• Output
—Receive data from computer
—Send data to peripheral
• Input
—Receive data from peripheral
—Send data to computer
Input/Output Connection(2)
• Receive control signals from computer
• Send control signals to peripherals
—e.g. spin disk
• Receive addresses from computer
—e.g. port number to identify peripheral
• Send interrupt signals (control)
CPU Connection
• Reads instruction and data
• Writes out data (after processing)
• Sends control signals to other units
• Receives (& acts on) interrupts
Bus Interconnection (1)
• Bus:
—A communication pathway connecting two or
more devices
—Characteristics
– shared transmission medium
– Usually broadcast
– must ensure only one device transmitting at a time
—Often grouped
– A number of channels in one bus
– e.g. 32 bit data bus is 32 separate single bit channels
Buses Interconnection (2)
• There are a number of possible
interconnection systems
• Single and multiple BUS structures are
most common
—e.g. Control/Address/Data bus (PC)
—e.g. Unibus (DEC-PDP)
System Bus
• Bus that connects major computer
components
• Typically 50-100 separate lines
• Three functional groups of lines
—Data
—Address
—Control
• Misc. lines
—power
—ground
—clock
Data Bus
• Carries data
—I.e., moves data between system modules
—Remember that there is no difference between
“data” and “instruction” at this level
• Width is a key determinant of
performance
—Number of lines (1 bit carried by a line at a
time)
—Determines number of bits can be transferred
at a time
—8, 16, 32, 64 bit
Address bus
• Identify the source or destination of data
—e.g. CPU needs to read an instruction (data)
from a given location in memory or an I/O port
• Width determines maximum memory
capacity of system
—e.g. 8080 has 16 bit address bus giving 64k
address space
Control Bus
• Control and timing information
— Memory read/write signal
— Interrupt request
— Clock signals
— access/use of data/address lines
• Typical control lines include
• • Memory write: Causes data on the bus to be written into the addressed
location
• • Memory read: Causes data from the addressed location to be placed on the
bus
• • I/O write: Causes data on the bus to be output to the addressed I/O port
• • I/O read: Causes data from the addressed I/O port to be placed on the bus
• • Transfer ACK: Indicates that data have been accepted from or placed on
• the bus
• • Bus request: Indicates that a module needs to gain control of the bus
• • Bus grant: Indicates that a requesting module has been granted control of the
bus
• • Interrupt request: Indicates that an interrupt is pending
• • Interrupt ACK: Acknowledges that the pending interrupt has been recognized
• • Clock: Is used to synchronize operations
• • Reset: Initializes all modules
Bus Interconnection Scheme
Big and Yellow?
• What do buses look like?
—Parallel lines on circuit boards
—Ribbon cables
—Strip connectors on mother boards
– e.g. PCI
—Sets of wires
Bus Operation
• Module wishing to send
1. Obtain use of bus
2. Transfer data via bus
• The operation of the bus is as follows. If one module wishes to send data to
another,it must do two things: (1) obtain the use of the bus, and (2) transfer
data via the bus.
• If one module wishes to request data from another module, it must (1)
obtain the use of the bus, and (2) transfer a request to the other module
over the appropriate control and address lines. It must then wait for that
second module to send the data.
• Multiplexed
• • In a multiplexed bus, a bus can be used for both addresses
and data. In this case, an address valid control line is needed
to determine whether the data is an address or data. Time
multiplexing is using the same lines for multiple purposes.
—Advantage - fewer lines
—Disadvantages
– More complex control
– Potential reduction in performance
Bus Width and Data Transfer Type
• Bus width
—Data
—Address
• Data transfer type
—Read
—Write
—Read-modify-write: protecting shared memory
—Read-after-write: checking
—Block data transfer
Bus Arbitration
• Why arbitration?
—More than one module controlling the bus, e.g. CPU
and DMA controller
—We want to make sure that only one module can
successfully transmit over bus at a time
• Arbitration may be centralised or distributed
In a centralized scheme, a single hardware device, referred to as a bus
• controller or arbiter, is responsible for allocating time on the bus.The
device may be separate module or part of the processor.
• In a distributed scheme, there is no central controller. Rather, each
module contains access control logic and the modules act together to
share the bus.
• With both methods of arbitration, the purpose is to designate one device,
either the processor or an I/O module, as master.
• may then initiate a data transfer (e.g., read or write) with some other
device, which acts as slave for this particular exchange
Centralised Arbitration
• Single hardware device controlling bus
access
—Bus Controller
—Arbiter
• May be part of CPU or separate
Distributed Arbitration
• Each module may claim the bus
• Control logic on all modules
Bus Timing (1)
• Co-ordination of events on bus
—Synchronous (e.g., PCI)
—Asynchronous (e.g., Futurebus+)
• Synchronous
—Events determined by clock signals
—Control Bus includes clock line transmits a regular sequence of
alternating 1s and 0s of equal duration