Computer Organization & I/O Interfaces
Computer Organization & I/O Interfaces
TECHNOLOGY , Ghaziabad
Computer Organization And Architecture
BCS-302
Unit: V
COA
4
O/I Bus and Interface Modules
• I/O bus consists of
– Data lines
– Control lines
– Address lines
• Each peripheral is associated with its interface unit
– Decode address and control received
– Interrupts for the device
– Provide signals for device
– Synchronize and supervise data flow
• I/O Bus configuration are of two Types
– Memory-mapped: Use common data, address, and control busses
for both memory and I/O
– Isolated: Share a common address and data but, but use different
control lines.
5
O/I Bus and Interface Modules
CPU Memory
Independent I/O Bus memory
bus
Peripheral Peripheral
7
I/O vs. Memory Bus
• 3 ways to communicate with I/O and memory
– Use two separate buses
• Uses separate I/O processor
• Memory communicate with both IOP and CPU via
memory bus
• IOP has separate set of data, address and control lines
with peripheral interfaces
– Use common bus but separate control lines
– Common bus and control lines
8
Isolated vs. Memory-Mapped I/O
• Uses common bus for data transfer
• Isolated I/O
– Uses separate Memory or I/O R/W lines
– Separate I/O instruction set
– Own address spaces for memory and I/O
– Complex but high flexible
• Memory mapped I/O
– Uses same address space with memory
– Only one set of R/W signals
– Interface registers considered as a part of memory system
– Reduces memory address space available
– Same instruction set
9
Example of I/O Interface (I/O port)
Internal bus
Register register
Timing
select
And Control Control
I/O Read control register
I/O Write
Status Status
register
10
Asynchronous Data Transfer
• Internal operations in a computer are synchronize with
internal clock pulse generator
– Applied to all registers
– All data transfer among registers happen at the same time with
the occurrence of the clock pulse
• But the CPU and I/O interfaces are independent
– They run on their own clocks
– If I/O shares common clock with CPU two units said to be
synchronize.
– Otherwise asynchronous
11
Asynchronous Data Transfer
• Asynchronous data transfer
– Requires control signals to indicate time at which
transmission occurs
• Main methods of indicate data transfer time
– Strobe - Giving a signal by one unit to indicate transfer
time
– Handshaking - Transfer on agreement
• Data transfer with a control signal indicating the presence of data
• Data receiver sends an acknowledge receipt of data
• Timing diagrams are commonly used to show the
relationship between control signals
• Sequence of control signals depends whether transfer
initiated by source or destination
12
Strobe Control
• Uses a control line to time each transfer
• Strobe is activated either by source or destination
• Strobe says when there is valid data on data bus
• Generally strobes activated by clock signals
• CPU is always in control of the transfer (i.e. strobe is
always from CPU)
• This method is mainly applicable in memory R/W
operations.
• Most of I/O operations use handshaking
13
Source initiated data transfer
• Source places data on the bus
• Have a brief delay to settle data on the bus
• Source activate the strobe pulse
• Then destination reads data to internal register (Often uses
falling edge)
• Source removes data after brief delay (Not necessary)
Data bus
Source Unit Strobe Destination Unit
Strobe
14
Destination initiated data transfer
• Initiated by destination
• Destination activates strobe
• Source places data on the bus
• Keeps data until accept them by destination
• Reads data to a register (Generally at falling edge of the strobe)
• Destination disable strobe
• Source removes data after predetermined time
Data bus
Source Unit Strobe Destination Unit
Strobe
15
Handshaking
• Strobe disadvantage
– In source initiation - Source doesn’t know whether
destination got the data
– In destination initiation – Destination doesn’t know
whether source has placed the data on the bus
• Handshaking introduce a reply method to solve
this problem
16
Two wired handshaking
• 1st control line
– Same direction as the data flow
– Use by the source
– Indicates whether it has valid data
• 2nd control line
– From destination to source
– Uses by the destination
– Indicates whether it can accept data
• Sequence of control used depends on the unit initiate
transfer
• In a fault at one end timeout uses to detect the error
17
Source Initiated Transfer
Data bus
Data valid Block
Source Unit Destination Unit Diagram
Data accepted
Data bus
Data accepted
Data bus
Data valid Block
Source Unit Destination Unit Diagram
Ready for data
Data bus
20
Asynchronous Serial Transfer
• Synchronous
– Uses common clock frequency
– Transmits bits continuously
– For long distance transmission
• Use separate clocks with same frequency
• Keep clocks in step via synchronization signals send periodically
– Periodic synchronization signals should transfer even no data
to transmit
• Asynchronous
– Transmits only when data available to transmit
– Otherwise keeps in idle
– Uses start and stop bits at the both ends of the character code
– Transmission line rests at state 1 while idle
– Start bit is always 0
– Stop bit can be 1 or more 1s
21
Transmission Rules
1. When a character is not send line keeps in 1 state
2. Start of transmission of a bit is determined by the
start bit (usually 0)
3. Character bits always follows start bit
4. After the last character bit stop bit is detected when
the line returns to the state 1 for at least one bit
time
22
How it works
• Using transmission rules receiver detects start bit when
line goes 1 to 0
• Receiver knows
– Bit transmission rate
– Number of bits in character
• After a character transmission line keeps at state 1 for at
least one or two bits for resynchronization at both
transmitter and receiver
• Ex: Transmission rate 10 characters/sec (at 1 start bit, 8
info bits and 2 stop bits) (1+8+2)*10 bit/s 110
bit/s
• i.e. baud rate 110 baud
23
Definitions
• Baud rate – Rate at which serial information is
transmitted and equivalent to the data transfer in
bits per second
• UART – Universal Asynchronous Receiver-
Transmitter (Asynchronous Communication
Interface)
– An interface which accept 8 bit character code from
a computer and forward corresponding 11 bit serial
code to the device or does the function other way
around
24
Asynchronous Communication Interface
Bidirectional
Data Bus Transmit Data
Transmitter
Bus Buffer Shift Register
Register
Transmitter
Clock
Chip Select Transmitter
CS Control Register
Control & clock
Internal Bus
Register Select
RS
Receiver Clock
Timing & Status Receiver
Controlling Register Control & Clock
I/O Read
RD
Receive Data
I/O Write Receiver
WR Shift Register
Register
25
Asynchronous Communication Interface
• Can function as both transmitter and receiver
• Initial mode is setup by control byte loaded to control
register
• CPU load and retrieve data via interface registers
while shift registers are used for data serialization
• Register selection function shows bellow
1 0 WR Transmitter Register
1 1 WR Control Register
1 0 RD Receiver register
1 1 RD Status register
26
Operation
• Start by CPU by sending a byte to control register
specifying
– Mode of operation
– Baud rate to use
– Bits in each character
– No of stops bits should append
– Whether to use parity check
• Status register
– 2 bit Flags
• Transmit register is empty
• Receiver register is full
27
Operation
• Transmitter
– CPU reads status register
– Check flag to know whether transmit register is empty
– If empty CPU transfer character to transmit register &
interface marks register full
– Set 1st bit of shift register to 0, transfer character there and
append appropriate no of stop bits
– Mark transmit register empty
– Character is transmitted bit at a time in specified baud rate
– CPU can load another character after checking flag
– This is a double buffered interface, since new character can
be loaded as soon as previous one start transmission
• Receiver ?
28
Operation
• Receiver
– Receive data input line is in state 1 when line is idle
– Receiver controller monitors input line for occurrence of a 0
– Once start bit detected incoming bits of character are shifted to
register at prescribed baud rate
– Then it checks for parity and stop bits
– Character without start and stop bits transfer in parallel to the
receiver register
– Flag in status register set to indicate receiver register is full
– CPU checks flag and if data available read data and clears
receiver register full flag
• Possible receiving error
– Parity error – Failure in parity bit checking
– Framing error – Invalid stop bits
– Overrun error – Write next character before read previous by
CPU
29
Modes of Transfer
30
Modes of Transfer
• CPU merely execute instruction and accept data
temporally from I/O devices
• Ultimate source and destination is memory
– Receiving data from input devices stores in memory
– Sending data to output devices from memory
• I/O handling modes
– Programmed I/O
– Interrupt-initiated I/O
– Direct Memory Access (DMA)
31
Programmed I/O
• I/O instructions are executed according to a program in
CPU
• I/O instruction transfers from and to CPU registers
• A memory load instruction used to load it memory
• Another instruction used to verify data and count the
number of words transferred
• Constant I/O monitoring is required by CPU
• CPU stays in a program loop until I/O unit indicate data
ready
• This waste CPU time
32
Programmed I/O – Input Device
Data bus
Data Register Data bus
Address bus
Interface
Data valid
CPU I/O Device
I/O Read
Status Data accepted
F
I/O Write Register
36
Priority Interrupts
37
Priority Interrupts
• Generally I/O data transfer is initiated by CPU
• But device must be ready first
• Device readiness for data transfer can be identify by the
interrupt signal
• How CPU responds to the interrupt request
– Push return address to the memory stack
– Branch to the interrupt service routing
• Priority Interrupt system
– Deals with simultaneous interrupts and determine which one to
serve first (critical situation / fast I/O)
– Determine in which conditions allow interrupting while
executing another interrupt service routing
38
Polling (Software)
• Priority identification mechanism in software
• For all interrupts has a common branch address
• Then polls the interrupt devices in sequence
• The order at which it polls determine the priority
– Higher priority device is tested first.
– If its interrupt signal is on serves the device
– Then test for the next device
– Proceed on until last device
• Disadvantage: When there are multiple interrupts polling
time might exceed time available to service the I/O
device
• Solution: Hardware priority interrupts unit
39
Hardware Priority Interrupt Units
• Accepts interrupts from many sources
• Determine which one has higher priority
• Issue interrupt accordingly to the CPU
• Further each interrupt source has its own interrupt
vector to access its own service routing directly
• No polling required
• 2 major establishments of hardware priority
function
– Serial Connection (Daisy-chain)
– Parallel Connection
40
Daisy Chain
INT
Interrupt request CPU
INTACK
Interrupt acknowledge
Interrupt to CPU
43
Priority Encoder
• Implements the priority function
Inputs Outputs
Boolean function
I0 I1 I2 I3 x y IST
1 x x x 0 0 1
0 1 x x 0 1 1
x = I0’ I1’
0 0 1 x 1 0 1 x = I0’ I1 + I0’ I2’
(IST) = I0 + I1 + I2 + I3
0 0 0 1 1 1 1
0 0 0 0 1 1 0
44
Interrupt Cycle
• IEN uses by the program to enable or disable interrupts
while running
• At the end of each instruction cycle CPU checks IEN and
if enabled checks IST
• Sequence of micro operations follows as receive an
interrupt:
– SP SP – 1
– M[SP] PC
– INTACK 1
– PC VAD
– IEN 0
– Go to fetch next instruction
45
Software Routing
• Priority interrupt system is a combination of Hardware and
Software techniques
• Computer has software routing to service interrupt requests and to
control interrupt hardware registers
48
Direct Memory Access - DMA
• CPU limits the data transfer speed for fast I/O devices
• DMA removes CPU and allow peripherals to handle
memory bus
• During the transfer CPU does not have the control over
the bus
• CPU idling the bus can be done through the control
signals “Bus Request” & “Bus Grant”
– DMA controller enables BR,
– then CPU finishes current operation and puts its address and
data buses in high impedance
– CPU sets BG line
– DMA transfers data and resets BR for the CPU to use the
memory bus
• DMA data transfer can either happen as
– Burst transfer or
49
– Cycle stealing
DMA Controller
Address bus
Data bus
Address bus buffers
buffer
Address Register
Internal bus
DMA select
Register select Word count register
Read
Write Control
logic Control register
Bus request
Bus grant DMA Request
Interrupt DMA Acknowledge To I/O device
50
DMA Controller
• Interfaces with CPU and I/O devices
• Further DMA controller has
– Address Register – used for direct communication with memory
– Set of Address Lines – used for direct communication with
memory
– Word Count Register – specifies the number of words to be
transferred
– Control register – Specifies the mode of transfer
• Data transfer is done directly between device and memory
under DMA control
• RD/WR signals are bidirectional
– When BG is set DMA can use them for memory RD/WR
– Otherwise CPU uses it DS and RS to write and read from DMA
• DMA uses Req and Ack signals with handshaking to
communicate with external peripheral devices
• CPU treat all DMA registers as I/O interface registers and
51
53
DMA Transfer
Interrupt
Random-access
BG CPU
Memory (RAM)
BR
RD WR Address Data RD WR Address Data
Read Control
Write Control
Address bus
Data Bus
Address
select
RD WR Address Data
DS
Direct memory DMA Acknowledge
RS I/O
Access (DMA)
BR Peripheral
controller DMA Request
BG device
Interrupt
54
DMA Transfer - Sequence
• Peripheral device sends DMA request
• DMA controller activates BR
• CPU finishes current bus cycle and grant the bus by
activating BG
• DMA puts current address to the address bus and
activate RD or WR accordingly
• And acknowledges peripheral
• Then peripheral puts data to (or reads data from) the bus
• Thus peripheral directly read or write memory
• For each word transferred DMA increment address and
decrement word count register
55
DMA Transfer – Sequence (Cont.)
• If word count is not zero DMA checks request line
coming from peripheral
– If active (fast devices) initiate the second transfer immediately
– Otherwise disable BR
• If word count is zero
– DMA stop transfer, disable BR and inform CPU the
termination of data transfer
• Zero value in word count indicates successful data
transfer
• DMA can have even more than one channel
• DMA commonly used in devices like magnetic disks
and screen display
56
I/O Processor (IOP)
57
I/O Processing
• Instead of each interface communicating with the CPU
• One or more external processors assigned to communicate
directly with I/O devices
• IOP has both direct memory access and I/O communication
capabilities
• IOP releases the CPU from the housekeeping the chores
involved in I/O transfer
• Processors handling serial communication with remote terminal
are called Data Communication Processors (DCP)
• IOP is similar to CPU except its handles only I/O processing
• Unlike DMA controller totally setup by the CPU, IOP can fetch
and executes its own instructions
• Additionally IOP can perform other tasks like arithmetic, logic,
branching and code translation
58
Computer with I/O Processor
Central
processing unit
(CPU)
Input-output
Processor
I/O bus
(IOP)
59
Responsibilities of IOP
• Memory at the centre can communicate with both processors
via DMA
• CPU responsible for data processing and computational tasks
• IOP transfers data between peripheral devices and memory
• CPU is usually assigned the task of initiating the I/O
program, there after IOP operates independently
• IOP take care of data format difference and structure
mapping between memory and various I/O devices
• Communication between CPU and IOP is similar to
programmed I/O
• Communication between Memory and IOP is done as DMA
• IOP can be independent or slave processors depending on the
sophistication of the system
• Instructions for IOP generally refers as commands
60
CPU-IOP Communication
IOP Operations
Conduct I/O transfers
CPU continues with
Using DMA; prepare
Another program
Status report
62
Data Communication Processor
• DCP distribute and collect data from remote
terminals
• Specialized I/O processor for communicating
with data communication network
• Network can have any device like printers,
interactive display devices, digital sensors,
remote computers
• Can serve many uses at a time using time-sharing
• Main difference with IOP is DCP uses single pair
of wires while IOP uses a common bus with
control lines 63
Connection Methods
• Commonly connected via telephone or other public communication
network
• Telephone network was originally designed for voice communication
and commuter uses modem for modulating and demodulating signals
• Communication line may connected to synchronous or asynchronous
interface depending on remote terminal
• Synchronous transmission
– doesn’t required start and stop bits
– more efficient in transmission
– uses by high speed devices (modems)
• Modem uses frequency synchronization
– i.e. extract clock signals from the communication line at both ends
– Modems transfers and receives data with the clock signals to keep the
synchronization at both ends
– Transmitter and receiver clocks are adjusted continuously according incoming
bit stream
• Asynchronous transmission
– sends each character and block separately with start and stop bits
64
– No need of continuous messages for synchronization
Error Detection
• Error detection is the one of functions in DCP
• Using parity bits – checks at each character
• echo character – prints to the terminal
• LRC – Longitudinal Redundancy Check
– LRC is one more characters with the party over the entire
block
– sends following each block
• CRC – Cyclic Redundancy Check
– A polynomial code
– Obtained by passing through a feedback register
– Suitable for detecting burst errors
65
Transmission Modes
• Simplex
– Line carry information in one direction only
– Receiver can not feedback or acknowledge
– Rarely used in data communication
• Half-duplex
– Used a single pair of wires
– Transmit data only one direction at a time
– In modems one act as the transmitter and other the receiver
– When transmission completed reverse the role
– Switching time is called turnaround time
• Full-duplex
– 2 pair of wires
– Even single pair can do full duplex transmission using frequency
spectrum
66
Protocols
• Data links – communication lines, modems and other
equipments used between two or more stations
• Protocol – set of rules followed by interconnected
computers and terminals
– Establish connection
– Identify sender and receiver
– Ensure error free transmission
– Handle all control functions
– Categorized according to the framing techniques
• Character oriented – based on binary code of
characters
• Bit oriented – do not use characters in control fields
67
Character Oriented Protocol
• Used ASCII
• Communication Control Characters – characters used for
transmission control
Code Symbol Meaning Function
0010110 SYN Synchronous idle Establishes synchronism
0000001 SOH Start of heading Heading of block message
0000010 STX Start of text Precedes block of text
0000011 ETX End of text Terminates block of text
0000100 EOT End of transmission Concludes transmission
0000110 ACK Acknowledge Affirmative acknowledgement
0010101 NAK Negative acknowledge Negative acknowledgement
0000101 ENQ Inquiry Inquire if terminal is on
0010111 ETB End of transmission block End of block of data
0010000 DLE Data link escape Special control character (binary transmission)
69
Bit-Oriented Protocol
• Do not use characters in control fields
• No character boundaries – any length of serial bits can transfer
• Messages are organized into frames
• Frame contains information field, address, control and error checking
• Primary station – has the control over the link and issues commands
• Secondary station – other stations (can have more than one)
• Zero insertion – transmitting additional 0 after every 5 transmission bits to
avoid occurring start/stop flag in the transmission data
• Examples
– SDLC – Synchronous Data Link Control (IBM)
– HDLC – High-level Data Link Control (International Standards Organization)
– ADCCP – Advanced Data Communication Control Procedure (American National
Standard Institution)
1 2 3 4 5 6 7 8
0 Ns P/F Nr Information transfer