Chapter7 Io Organization
Chapter7 Io Organization
Chapter7 Io Organization
Processor Memory
Bus
Multiple I/O devices may be connected to the processor and the memory via a b
Bus consists of three sets of lines to carry address, data and control signals.
Each I/O device is assigned an unique address.
To access an I/O device, the processor places the address on the address lines.
The device recognizes the address, and responds to the control signals.
Accessing I/O devices (contd..)
I/O devices and the memory may share the same
address space:
Memory-mapped I/O.
Any machine instruction that can access memory can be used to transfer
data to or from an I/O device.
Simpler software.
Input device
O device is connected to the bus using an I/O interface circuit which has:
- Address decoder, control circuit, and data and status registers.
ddress decoder decodes the address placed on the address lines thus enabling t
vice to recognize its address.
ata register holds the data being transferred to or from the processor.
atus register holds information necessary for the operation of the I/O device.
ata and status registers are connected to the data lines, and have unique addre
O interface circuit coordinates I/O transfers.
Accessing I/O devices (contd..)
Recall that the rate of transfer to and from I/O
devices is slower than the speed of the
processor. This creates the need for mechanisms
to synchronize data transfers between them.
Program-controlled I/O:
Processor repeatedly monitors a status flag to achieve the
necessary synchronization.
Processor polls the I/O device.
1
2
Interrupt
occurs i
here
i +1
INTA1 INTAp
Priority arbitration
Device Device
INTA1
Processor
INTR p
Device Device
INTAp
Priority arbitration
circuit
Devices are organized into groups.
Each group is assigned a different priority level.
All the devices within a single group share an interrupt-request line, and are
onnected to form a daisy chain.
Interrupts (contd..)
Only those devices that are being used in a
program should be allowed to generate interrupt
requests.
To control which devices are allowed to generate
interrupt requests, the interface circuit of each
I/O device has an interrupt-enable bit.
If the interrupt-enable bit in the device interface is set to 1, then
the device is allowed to generate an interrupt-request.
Interrupt-enable bit in the device’s interface
circuit determines whether the device is allowed
to generate an interrupt request.
Interrupt-enable bit in the processor status
register or the priority structure of the interrupts
determines whether a given interrupt will be
accepted.
Exceptions
Interrupts caused by interrupt-requests sent by
I/O devices.
Interrupts could be used in many other situations
where the execution of one program needs to be
suspended and execution of another program
needs to be started.
In general, the term exception is used to refer to
any event that causes an interruption.
Interrupt-requests from I/O devices is one type of an exception.
Trace mode:
Exception occurs after the execution of every instruction.
Debugging program is used as the exception-service routine.
Breakpoints:
Exception occurs only at specific points selected by the user.
Debugging program is used as the exception-service routine.
Exceptions (contd..)
Certain instructions can be executed only
when the processor is in the supervisor mode.
These are called privileged instructions.
If an attempt is made to execute a privileged
instruction in the user mode, a privilege
exception occurs.
Privilege exception causes:
Processor to switch to the supervisor mode,
Execution of an appropriate exception-servicing routine.
Direct Memory Access (contd..)
Direct Memory Access (DMA):
A special control unit may be provided to transfer a block of
data directly between an I/O device and the main memory,
without continuous intervention by the processor.
Control unit which performs these transfers is
a part of the I/O device’s interface circuit. This
control unit is called as a DMA controller.
DMA controller performs functions that would
be normally carried out by the processor:
For each word, it provides the memory address and all the
control signals.
To transfer a block of data, it increments the memory addresses
and keeps track of the number of transfers.
Direct Memory Access (contd..)
DMA controller can transfer a block of data from an
external device to the processor, without any
intervention from the processor.
However, the operation of the DMA controller must be under the control
of a program executed by the processor. That is, the processor must
initiate the DMA transfer.
To initiate the DMA transfer, the processor informs
the DMA controller of:
Starting address,
Number of words in the block.
Direction of transfer (I/O device to the memory, or memory to the I/O
device).
Once the DMA controller completes the DMA
transfer, it informs the processor by raising an
interrupt signal.
Main
Processor
memory
System bus
Distributed arbitration:
All devices participate in the selection of the next bus master.
Centralized Bus Arbitration
B BS Y
BR
Processor
DMA DMA
controller controller
BG1 1 BG2 2
Centralized Bus Arbitration(cont.,)
• Bus arbiter may be the processor or a separate unit
connected to the bus.
• Normally, the processor is the bus master, unless it
grants bus membership to one of the DMA controllers.
• DMA controller requests the control of the bus by
asserting the Bus Request (BR) line.
• In response, the processor activates the Bus-Grant1 (BG1)
line, indicating that the controller may use the bus when
it is free.
• BG1 signal is connected to all DMA controllers in a daisy
chain fashion.
• BBSY signal is 0, it indicates that the bus is busy. When
BBSY becomes 1, the DMA controller which asserted BR
can acquire control of the bus.
DMA controller 2
asserts the BR signal. Time
Processor asserts
BR
the BG1 signal
BBSY
Bus
master
Processor DMA controller 2 Processor
bitration process:
ach device compares the pattern that appears on the arbitration lines to its own
, starting with MSB.
it detects a difference, it transmits 0s on the arbitration lines for that and all lo
positions.
evice A compares its ID 5 with a pattern 0101 to pattern 0111.
detects a difference at bit position 0, as a result, it transmits a pattern 0100 on
bitration lines.
he pattern that appears on the arbitration lines is the logical-OR of 0100 and 01
hich is 0110.
his pattern is the same as the device ID of B, and hence B has won the arbitratio
Buses
Processor, main memory, and I/O devices are
interconnected by means of a bus.
Bus provides a communication path for the
transfer of data.
Bus also includes lines to support interrupts and arbitration.
Bus clock
Bus cycle
Time
Bus clock
Address and
command
Data
t0 t1 t2
Bus cycle
Master places the
device address and Addressed slave places
command on the bus, data on the data lines Master “strobes” the data
and indicates that on the data lines into its
it is a Read operation. input buffer, for a Read
operation.
n case of a Write operation, the master places the data on the bus along with th
ddress and commands at time t0.
he slave strobes the data into its input buffer at time t 2.
Synchronous bus (contd..)
Once the master places the device address and
command on the bus, it takes time for this
information to propagate to the devices:
This time depends on the physical and electrical characteristics of the
bus.
Also, all the devices have to be given enough time
to decode the address and control signals, so that
the addressed slave can place data on the bus.
Width of the pulse t1 - t0 depends on:
Maximum propagation delay between two devices connected to the
bus.
Time taken by all the devices to decode the address and control
signals, so that the addressed slave can respond at time t1.
Synchronous bus (contd..)
At the end of the clock cycle, at time t2, the
master strobes the data on the data lines into its
input buffer if it’s a Read operation.
“Strobe” means to capture the values of the data and store them
into a buffer.
When data are to be loaded into a storage buffer
register, the data should be available for a
period longer than the setup time of the device.
Width of the pulse t2 - t1 should be longer than:
Maximum propagation time of the bus plus
Set up time of the input buffer register of the master.
Time
Address & Bus clock
command Data reaches
Seen by
appear on the master t AM the master.
bus. Address and
command
Data
Address & t DM
command reach
Seen by slave
the slave. tAS
Address and Data appears
command on the bus.
Data
tDS
t0 t1 t
2
nals do not appear on the bus as soon as they are placed on the bus, due to the
pagation delay in the interface circuits.
nals reach the devices after a propagation delay which depends on the
racteristics of the bus.
a must remain on the bus for some time after t2 equal to the hold time of the bu
Synchronous bus (contd..)
Data transfer has to be completed within one
clock cycle.
Clock period t2 - t0 must be such that the longest propagation
delay on the bus and the slowest device interface must be
accommodated.
Forces all the devices to operate at the speed of the slowest
device.
Processor just assumes that the data are
available at t2 in case of a Read operation, or
are read by the device in case of a Write
operation.
What if the device is actually failed, and never really responded?
Synchronous bus (contd..)
Most buses have control signals to represent
a response from the slave.
Control signals serve two purposes:
Inform the master that the slave has recognized the address,
and is ready to participate in a data transfer operation.
Enable to adjust the duration of the data transfer operation
based on the speed of the participating slaves.
High-frequency bus clock is used:
Data transfer spans several clock cycles instead of just one
clock cycle as in the earlier case.
Address & command Time
requesting a Read
operation appear on 1 2 3 4
the bus.
Clock
Address
Command
Master strobes data
into the input buffer.
Data
Slave-ready
Slave places the data on the bus, Clock changes are seen by all the devices
and asserts Slave-ready signal. at the same time.
Asynchronous bus
Data transfers on the bus is controlled by a
handshake between the master and the slave.
Common clock in the synchronous bus case is
replaced by two timing control lines:
Master-ready,
Slave-ready.
Master-ready
Slave-ready
Data
t0 t1 t2 t3 t4 t5
Bus cycle
t0 - Master places the address and command information on the bus.
t1 - Master asserts the Master-ready signal. Master-ready signal is asserted
at t1 instead of t0
t2 - Addressed slave places the data on the bus and asserts the Slave-ready
signal.
t3 - Slave-ready signal arrives at the master.
t4 - Master removes the address and command information.
Asynchronous vs. Synchronous bus
Advantages of asynchronous bus:
Eliminates the need for synchronization between the sender
and the receiver.
Can accommodate varying delays automatically, using the
Slave-ready signal.
Disadvantages of asynchronous bus:
Data transfer rate with full handshake is limited by two-round
trip delays.
Data transfers using a synchronous bus involves only one
round trip delay, and hence a synchronous bus can achieve
faster rates.
Interface circuits
I/O interface consists of the circuitry required to
connect an I/O device to a computer bus.
Side of the interface which connects to the
computer has bus signals for:
Address,
Data
Control
Side of the interface which connects to the I/O
device has:
Datapath and associated controls to transfer data between the
interface and the I/O device.
This side is called as a “port”.
Ports can be classified into two:
Parallel port,
Serial port.
Interface circuits (contd..)
Parallel port transfers data in the form of a
number of bits, normally 8 or 16 to or from
the device.
Serial port transfers and receives data one
bit at a time.
Processor communicates with the bus in the
same way, whether it is a parallel port or a
serial port.
Conversion from the parallel to serial and vice versa takes
place inside the interface circuit.
Data
Address
DATAIN Data
Encoder
R /W and Keyboard
Processor SIN
debouncing switches
Master-ready circuit
Valid
Input
Slave-ready
interface
Address
DATAIN Data
Encoder
R /W and Keyboard
Processor SIN
debouncing switches
Master-ready circuit
Valid
Input
Slave-ready
interface
Processor
CPU R /W SOUT Printer
Valid
Master-ready
Output Idle
Slave-ready interface
Processor
CPU R /W SOUT Printer
Valid
Master-ready
Output Idle
Slave-ready interface
DATAIN
D1
D0 PA0
SIN
•Combined I/O interface circuit.
Input
status
•Address
CA bits A2 through A31, that is
30 bits are used to select the overall
PB7
interface.
DATAOUT •Address bits A1 through A0, that is, 2
bits
PB0 select one of the three registers,
SOUT
namely,
CB1
DATAIN, DATAOUT, and
Handshake
control
theCB2status register.
Slave-
Ready 1
•Status register contains the flags SIN an
SOUT in bits 0 and 1.
•Data lines PA0 through PA7 connect the
Master- input device to the DATAIN register.
Ready
R/ W
•DATAOUT register connects the data
A31 lines on the processor bus to lines PB0
Address
decoder
My-address
through PB7 which connect to the output
A2 device.
A1
RS1 •Separate input and output data lines for
connection to an I/O device.
RS0
A0
D7 P7
•Data lines to I/O device are bidirectional.
DATAIN •Data lines P7 through P0 can be used for
D0 bothP0
input, and output.
•In fact, some lines can be used for input &
some for output depending on the pattern
in the Data Direction Register (DDR).
DATAOUT •Processor places an 8-bit pattern into a D
•If a given bit position in the DDR is 1, the
corresponding data line acts as an output
line, otherwise it acts as an input line.
Data
•C1 and C2 control the interaction betwee
Direction the interface circuit and the I/O devices.
Register
•Ready and Accept lines are the handshak
control lines on the processor bus side, an
My-address
are connected to Master-ready & Slave-re
RS2 •Input signal My-address is connected to t
C1
RS1
Register Status output of an address decoder.
RS0 and
R/W
select control •Three register select lines that allow up t
Ready registers
C2 to be selected.
Accept
INTR
Serial port
Serial port is used to connect the processor
to I/O devices that require transmission of
data one bit at a time.
Serial port communicates in a bit-serial
fashion on the device side and bit parallel
fashion on the bus side.
Transformation between the parallel and serial formats is
achieved with shift registers that have parallel access
capability.
Input shift register Serial
input
•Input shift register accepts input one
at a time from the I/O device.
DATAIN •Once all the 8 bits are received, the
contents of the input shift register are
loaded in parallel into DATAIN register
•Output data in the DATAOUT register
are loaded into the output shift registe
D7 •Bits are shifted out of the output shift
register and sent out to the I/O device
D0 bit at a time.
•As soon as data from the input shift re
My-address DATAOUT are loaded into DATAIN, it can start
RS1 accepting another 8 bits of data.
RS0 •Input shift register and DATAIN regis
Chip and
R /W register Output shift re gister
are
Serialboth used at input so that the inpu
76
Main
Processor
memory
Bridge circuit translates
signals and protocols from
Processor bus
processor bus to PCI bus.
Bridge
PCI bus
Expansion bus on
the motherboard
Additional SCSI Ethernet USB ISA
memory controller Interface controller Interface
SCSI bus
IDE
disk
Video
Disk CD-ROM
controller controller
CD-
Disk 1 Disk 2 ROM K eyboard Game
PCI Bus
Peripheral Component Interconnect
Introduced in 1992
Low-cost bus
Processor independent
Plug-and-play capability
In today’s computers, most memory transfers involve a burst of data
rather than just one word. The PCI is designed primarily to support
this mode of operation.
The bus supports three independent address spaces: memory, I/O,
and configuration.
we assumed that the master maintains the address information on
the bus until data transfer is completed. But, the address is needed
only long enough for the slave to be selected. Thus, the address is
needed on the bus for one clock cycle only, freeing the address lines
to be used for sending data in subsequent clock cycles. The result is
a significant cost reduction.
A master is called an initiator in PCI terminology. The addressed
device that responds to read and write commands is called a target.
Data transfer signals on the PCI bus.
Name F
unction
C/BE# command/byte-enable
4 lines (8 for a 64-bit bus).
CLK
Frame#
AD Adress #1 #2 #3 #4
IRDY#
TRD Y#
DEVSEL#
– SEL Selection:Assertedduringselectionand
reselection
Category Name u
Fnction
– ACK Ackno
wledge:Assertedbytheinitiatorwhenit
hascompletedadatatransfer operation
DB 2
DB 5
DB 6
BS Y
S EL
Port Limitation
Device Characteristics
Plug-and-play
Universal Serial Bus tree structure
Host computer
Root
hub
Hub Hub
I/O I/O
de vice de vice
Universal Serial Bus tree structure
To accommodate a large number of devices that can be added
or removed at any time, the USB has the tree structure as
shown in the figure.
Each node of the tree has a device called a hub, which acts as
an intermediate control point between the host and the I/O
devices. At the root of the tree, a root hub connects the entire
tree to the host computer. The leaves of the tree are the I/O
devices being served (for example, keyboard, Internet
connection, speaker, or digital TV)
In normal operation, a hub copies a message that it receives
from its upstream connection to all its downstream ports. As a
result, a message sent by the host computer is broadcast to all
I/O devices, but only the addressed device will respond to that
message. However, a message from an I/O device is sent only
upstream towards the root of the tree and is not seen by other
devices. Hence, the USB enables the host to communicate
with the I/O devices, but it does not enable these devices to
communicate with each other.
Addressing
When a USB is connected to a host computer, its root hub is attached
to the processor bus, where it appears as a single device. The host
software communicates with individual devices attached to the USB
by sending packets of information, which the root hub forwards to
the appropriate device in the USB tree.
Each device on the USB, whether it is a hub or an I/O device, is
assigned a 7-bit address. This address is local to the USB tree and is
not related in any way to the addresses used on the processor bus.
A hub may have any number of devices or other hubs connected to it,
and addresses are assigned arbitrarily. When a device is first
connected to a hub, or when it is powered on, it has the address 0.
The hardware of the hub to which this device is connected is capable
of detecting that the device has been connected, and it records this
fact as part of its own status information. Periodically, the host polls
each hub to collect status information and learn about new devices
that may have been added or disconnected.
When the host is informed that a new device has been connected, it
uses a sequence of commands to send a reset signal on the
corresponding hub port, read information from the device about its
capabilities, send configuration information to the device, and assign
the device a unique USB address. Once this sequence is completed
the device begins normal operation and responds only to the new
address.
USB Protocols
All information transferred over the USB is organized in
packets, where a packet consists of one or more bytes of
information. There are many types of packets that perform a
variety of control functions.
The information transferred on the USB can be divided into two
broad categories: control and data.
Control packets perform such tasks as addressing a device to
initiate data transfer, acknowledging that data have been
received correctly, or indicating an error.
Data packets carry information that is delivered to a device.
A packet consists of one or more fields containing different
kinds of information. The first field of any packet is called the
packet identifier, PID, which identifies the type of that packet.
They are transmitted twice. The first time they are sent with
their true values, and the second time with each bit
complemented
The four PID bits identify one of 16 different packet types.
Some control packets, such as ACK (Acknowledge), consist only
of the PID byte.
PID0 PID1 PID2 PID3 PID0 PID1 PID2 PID3
Bits 8 7 4 5
Control packets used for
PID ADDR ENDP CRC16 controlling data transfer
operations are called
token packets.
(b) Token packet, IN or OUT
Bits 8 0 to 8192 16
Token
Data0
ACK
Time
Token
Data0
ACK
Token
Data1
Figure: An output
transfer
ACK
Token
Data1
ACK
Isochronous Traffic on USB
One of the key objectives of the USB is to support the transfer
of isochronous data.
Devices that generates or receives isochronous data require a
time reference to control the sampling process.
To provide this reference. Transmission over the USB is divided
into frames of equal length.
A frame is 1ms long for low-and full-speed data.
The root hub generates a Start of Frame control packet (SOF)
precisely once every 1 ms to mark the beginning of a new
frame.
The arrival of an SOF packet at any device constitutes a regular
clock signal that the device can use for its own purposes.
To assist devices that may need longer periods of time, the SOF
packet carries an 11-bit frame number.
Following each SOF packet, the host carries out input and
output transfers for isochronous devices.
This means that each device will have an opportunity for an
input or output transfer once every 1 ms.
Electrical Characteristics
The cables used for USB connections consist of four
wires.
Two are used to carry power, +5V and Ground.
Thus, a hub or an I/O device may be powered directly
from the bus, or it may have its own external power
connection.
The other two wires are used to carry data.
Different signaling schemes are used for different
speeds of transmission.
At low speed, 1s and 0s are transmitted by sending a
high voltage state (5V) on one or the other o the two
signal wires. For high-speed links, differential
transmission is used.