I/O
MODULE FUNCTIONS
· Control & Timing.
· CPU Communication
· Device Communication
· Data Buffering
· Error Detection
I/O steps
•
CPU
checks I/O module device status
•
I/O
module returns status
•
If
ready, CPU requests data transfer
•
I/O
module gets data from device
•
I/O
module transfers data to CPU
A)
Input Output Techniques :
1)
Programmed I/O
2) Interrupt driven I/O
3)Direct Memory Access (DMA)
1)
Programmed I/O
· CPU has direct control over I/O for :
· Sensing status
· Read/write commands.
· Transferring data
·
CPU
waits for I/O module to complete
operation.
·
Wastes
CPU time.
-> Programmed I/O in detail
•
CPU
requests I/O operation
•
I/O
module performs operation
•
I/O
module sets status bits
•
CPU
checks status bits periodically
•
I/O
module does not inform CPU directly
•
I/O
module does not interrupt CPU
•
CPU
may wait or come back later
-> I/O Commands
· Control - telling module what to do.
(e.g. spin up disk)
· Test - check status
· Read/Write
2)
Interrupt Driven I/O
· Overcomes CPU waiting
· No repeated CPU checking of device
· I/O module interrupts when ready
-> Interrupt Driven I/O in detail
•
CPU
issues read command
•
I/O
module gets data from peripheral while CPU does other work
•
I/O
module interrupts CPU
•
CPU
requests data
•
I/O
module transfers data
CPU
Viewpoint
•
Issue read command
•
Do other work
•
Check for interrupt at end of each instruction
cycle
•
If interrupted:-
—
Save context (registers)
—
Process interrupt
– Fetch data & store
1)
Direct
Memory Access :
•
Interrupt
driven and programmed I/O require active CPU intervention , because
· Transfer rate
is limited
· CPU is tied up
DMA Function
•
Additional
Module (hardware) on bus.
•
DMA
controller takes over from CPU for I/O
DMA Operation
•
CPU
tells DMA controller:-
—
Read/Write
—
Device
address
—
Starting
address of memory block for data
—
Amount
of data to be transferred
•
CPU
carries on with other work
•
DMA
controller deals with transfer
•
DMA
controller sends interrupt when finished