0% found this document useful (0 votes)
20 views45 pages

unit-3-io

Uploaded by

divyamaster63
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views45 pages

unit-3-io

Uploaded by

divyamaster63
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 45

Unit- 3

Chapter 7
Input/Output
Input/Output Problems
• Wide variety of peripherals
—Delivering different amounts of data
—At different speeds
—In different formats
• All slower than CPU and RAM
• Need I/O modules
Input/Output Module
• Interface to CPU and Memory
• Interface to one or more peripherals
Generic Model of I/O Module
External Devices
• Human readable
—Screen, printer, keyboard
• Machine readable
—Monitoring and control
• Communication
—Modem
—Network Interface Card (NIC)
External Device Block Diagram
I/O Module Function
• 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
• Variations for output, DMA, etc.
I/O Module Diagram
I/O Module Decisions
• Hide or reveal device properties to CPU
• Support multiple or single device
• Control device functions or leave for CPU
• Also O/S decisions
—e.g. Unix treats everything it can as a file
Input Output Techniques
• Programmed
• Interrupt driven
• Direct Memory Access (DMA)
Three Techniques for
Input of a Block of Data
Programmed I/O
• CPU has direct control over I/O
—Sensing status
—Read/write commands
—Transferring data
• CPU waits for I/O module to complete
operation
• Wastes CPU time
Programmed I/O - 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
• CPU issues address
—Identifies module (& device if >1 per module)
• CPU issues command
—Control - telling module what to do
– e.g. spin up disk
—Test - check status
– e.g. power? Error?
—Read/Write
– Module transfers data via buffer from/to device
Addressing I/O Devices
• Under programmed I/O data transfer is
very like memory access (CPU viewpoint)
• Each device given unique identifier
• CPU commands contain identifier
(address)
I/O Mapping
• Memory Mapped I/O and Isolated I/O are two
methods of performing input-output operations
between CPU and installed peripherals in the
system.
• Memory mapped I/O uses the same address bus
to connect both primary memory and memory of
hardware devices.
• Thus the instruction to address a section or
portion or segment of RAM can also be used to
address a memory location of a hardware device.
• Memory mapped I/O
— Devices and memory share an address space
— I/O looks just like memory read/write
— No special commands for I/O
– Large selection of memory access commands available
• isolated I/O uses separate instruction classes to
access primary memory and device memory.
• In this case, I/O devices have separate address
space either by separate I/O pin on CPU or by
entire separate bus.
• As it separates general memory addresses with
I/O devices, it is called isolated I/O.

• Isolated I/O
— Separate address spaces
— Need I/O or memory select lines
— Special commands for I/O
– Limited set
Difference of I/O Mapping technique
Interrupt Driven I/O
• Overcomes CPU waiting
• No repeated CPU checking of device
• I/O module interrupts when ready
Interrupt Driven I/O
Basic Operation
• CPU issues read command
• I/O module gets data from peripheral
whilst CPU does other work
• I/O module interrupts CPU
• CPU requests data
• I/O module transfers data
Simple Interrupt
Processing
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
• See Operating Systems notes
Changes in Memory and Registers
for an Interrupt
Design Issues
• How do you identify the module issuing
the interrupt?
• How do you deal with multiple interrupts?
—i.e. an interrupt handler being interrupted
Identifying Interrupting Module (1)
• Different line for each module
—PC
—Limits number of devices
• Software poll
—CPU asks each module in turn
—Slow
Identifying Interrupting Module (2)
• Daisy Chain or Hardware poll
—Interrupt Acknowledge sent down a chain
—Module responsible places vector on bus
—CPU uses vector to identify handler routine
• Bus Master
—Module must claim the bus before it can raise
interrupt
—e.g. PCI & SCSI
Multiple Interrupts
• Each interrupt line has a priority
• Higher priority lines can interrupt lower
priority lines
• If bus mastering only current master can
interrupt
The Evolution of I/O function
1. CPU Controlled I/O
2. Programmed Controlled I/O
3. Interrupt Driven I/O
4. DMA
5. I/O Channels
6. I/O Processor
I/O Channels
• I/O devices getting more sophisticated
• e.g. 3D graphics cards
• CPU instructs I/O controller to do transfer
• I/O controller does entire transfer
• Improves speed
—Takes load off CPU
—Dedicated processor is faster
I/O Channel Architecture
Interfacing
• Connecting devices together
• Bit of wire?
• Dedicated processor/memory/buses?
• E.g. FireWire, InfiniBand
IEEE 1394 FireWire
• High performance serial bus
• Fast
• Low cost
• Easy to implement
• Also being used in digital cameras, VCRs
and TV
FireWire Configuration
• Daisy chain
• Up to 63 devices on single port
—Really 64 of which one is the interface itself
• Up to 1022 buses can be connected with
bridges
• Automatic configuration
• No bus terminators
• May be tree structure
Simple FireWire Configuration
FireWire 3 Layer Stack
• Physical
—Transmission medium, electrical and signaling
characteristics
• Link
—Transmission of data in packets
• Transaction
—Request-response protocol
FireWire Protocol Stack
FireWire - Physical Layer
• Data rates from 25 to 400Mbps
• Two forms of arbitration
—Based on tree structure
—Root acts as arbiter
—First come first served
—Natural priority controls simultaneous requests
– i.e. who is nearest to root
—Fair arbitration
—Urgent arbitration
FireWire - Link Layer
• Two transmission types
—Asynchronous
– Variable amount of data and several bytes of
transaction data transferred as a packet
– To explicit address
– Acknowledgement returned
—Isochronous
– Variable amount of data in sequence of fixed size
packets at regular intervals
– Simplified addressing
– No acknowledgement
FireWire Subactions
InfiniBand
• I/O specification aimed at high end
servers
—Merger of Future I/O (Cisco, HP, Compaq,
IBM) and Next Generation I/O (Intel)
• Version 1 released early 2001
• Architecture and spec. for data flow
between processor and intelligent I/O
devices
• Intended to replace PCI in servers
• Increased capacity, expandability,
flexibility
InfiniBand Architecture
• Remote storage, networking and connection
between servers
• Attach servers, remote storage, network devices
to central fabric of switches and links
• Greater server density
• Scalable data centre
• Independent nodes added as required
• I/O distance from server up to
— 17m using copper
— 300m multimode fibre optic
— 10km single mode fibre
• Up to 30Gbps
InfiniBand Switch Fabric
InfiniBand Operation
• 16 logical channels (virtual lanes) per
physical link
• One lane for management, rest for data
• Data in stream of packets
• Virtual lane dedicated temporarily to end
to end transfer
• Switch maps traffic from incoming to
outgoing lane
Reference
• W. Stallings, ―Computer Organization and
Architecture: Designing for performance‖,
Pearson Education/ Prentice Hall of India,
2013, ISBN 978-93-317-3245-8, 8th
Edition.

You might also like