Professional Documents
Culture Documents
Lecture #15
Interconnections Structures
• Memory
o Consists of N words of equal length
o Each word assigned a unique numerical address (0, 1, …, N-1)
o A word of data can be read or written
o Operation specified by control signals
o Location specified by address signals
• I/O Module
o Similar to memory from computers viewpoint
o Consists of M external device ports (0, 1, …, M-1)
o External data paths for input and output
o Sends interrupt signal to the processor
• Processor
o Reads in instructions and data
o Writes out data after processing
o Uses control signals to control overall operation of the system
o Receives interrupt signals
The preceding list defines the data to be exchanged. The interconnection structure
must support the following types of transfers:
Over the years, a number of interconnection structures have been tried. By far the
most common is the bus and various multiple-bus structures.
Bus Interconnection
Typically, a bus consists of 50 to hundreds of separate lines. On any bus the lines
are grouped into three main function groups: data, address, and control. There may
also be power distribution lines for attached modules.
• Data lines
o Path for moving data and instructions between modules.
o Collectively are called the data bus.
o Consists of: 8, 16, 32, 64, etc… bits – key factor in overall system
performance
• Address lines
o Identifies the source or destination of the data on the data bus.
CPU needs to read an instruction or data from a given memory
location.
o Bus width determines the maximum possible memory capacity for the
system.
8080 has 16 bit addresses giving access to 64K address
• Control lines
o Used to control the access to and the use of the data and address lines.
o Transmits command and timing information between modules.
• Memory write: causes data on the bus to be written to the addressed memory
location.
• Memory read: causes data from the addressed memory 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 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: indicates that the pending interrupt has been recognized.
• Clock: used to synchronize operations.
• Reset: initializes all modules.
Multiple-Bus Hierarchies
If a great number of devices are connected to the bus, performance will suffer.
• Propagation delays
o Long data paths mean that coordination of the bus use can adversely
affect performance.
• If aggregate data transfer approaches capacity
o Increasing data rate or making the bus wider may help.
Most computer systems use multiple buses, generally laid out in a hierarchy.
The traditional bus architecture shown in the previous figure is reasonably efficient
but begins to break down as higher and higher performance is seen in the I/O
devices. In response to these growing demands, a common approach taken by
industry is to build a high-speed bus that is closely integrated with the rest of the
system, requiring only a bridge between the processor’s bus and the high-speed
bus. This arrangement is sometimes known as a mezzanine architecture. The figure
below shows an example of using this approach:
Bus Type
• Dedicated
o Separate data and address lines
• Multiplexed
o Shared lines
o Address valid or data valid control line
o Advantage
Fewer lines – saves space, lower cost
o Disadvantage
More complex control
Potential reduction in performance
Method of Arbitration
Because only one unit at a time can successfully transmit over the bus, some
method of arbitration is needed.
• Centralized
o Bus controller of arbiter is responsible for allocating time on the bus
o May be part of processor or may be separate
• Distributed
o Each module may claim control of the bus
o Each module contains access control logic
Timing
Timing refers to the way in which events are coordinated of the bus.
• Synchronous
o Events determined by clock signals
o Control bus includes a clock line
o A single 1-0 is a bus cycle
o Usually synched on leading edge
o Usually a single cycle for an event
• Asynchronous
o One event on a bus follows and depends on the occurrence of a previous
event
Bus width
The width of the data bus has an impact on system performance: The wider the
data bus, the greater the number of bits transferred at one time.
The width of the address bus has an impact on system capacity: The wider the
address bus, the greater the range of locations that can be referenced.
• Multiplexed
o Single shared bus for both addresses and data
o Bus first used to specify an address
o Bus then used to transfer data
• Dedicated
o Separate buses for both address and data
o The address is specified on the address bus and remains while data
transferred
o The data is transferred on the data bus
PCI
Figure (a) shows a typical use of PCI in a single-processor system. Figure (b)
shows a typical use of PCI in a multiprocessor system. Notice that more than one
PCI configuration may be used.
Bus Structure
PCI Commands
Data Transfers
Every data transfer on the PCI bus is a single transaction consisting of one address
phase and one or more data phases.
Shown below is the timing for the read transaction.
• Centralized
• Synchronous
Shown below is an example where devices A and B are arbitrating for the bus.
a) A asserts REQ-A.
b) B asserts REQ-B.
c) The arbiter asserts GNT-A to grant A bus access.
d) Master A finds IRDY and TRDY deasserted, indicating that the bus is idle.
Master A asserts FRAME and places the address information on the bus. It
continues to assert REQ-A, because it has a second transaction to perform.
e) The arbiter samples all REQ lines and grants the bus to B. The arbiter asserts
GNT-B and deasserts GNT-A. B waits until the bus is idle before it can use it.
f) A deasserts FRAME to indicate that the last data transfer is in progress. A puts
data on the bus and signals the target with IRDY. The target then reads the data.
g) B finds IRDY and FRAME deasserted and takes control of the bus by asserting
FRAME. B deasserts REQ-B, because it will only perform one transfer.
Notice that arbitration can take place at the same time that the current bus master is
performing a data transfer. Therefore, no bus cycles are lost in performing
arbitration. This is referred to as hidden arbitration.