Slot12 13 CH07 InputOutput 35 Slides
Slot12 13 CH07 InputOutput 35 Slides
Chapter 7 Input/Output
Objectives
Why are peripherals not connected directly to the system bus?
Why IO module is needed?
How to control IO devices?
How to increase IO operations?
Afterstudying this chapter, you should be able to:
Explain the use of I/O modules as part of a computer organization.
Understand the difference between programmed I/O and interrupt-
driven I/O and discuss their relative merits.
Present an overview of the operation of direct memory access
(DMA).
Explain the function and use of I/O channels.
+ 3
Contents
7.1 External Devices
7.2 I/O Modules
7.3 Programmed I/O
7.4 Interrupt-Driven I/O
7.5 Direct Memory Access
7.6 I/O Channels and Processors
+ 4
The data transfer rate of peripherals is often much slower than that of
the memory or processor. Thus, it is impractical to use the high-speed
system bus to communicate directly with a peripheral.
The data transfer rate of some peripherals can be faster than that of
the memory or processor. Again, the mismatch would lead to
inefficiencies if not managed properly.
Peripherals often use different data formats and word lengths than
the computer to which they are attached.
+ Generic
Model
of an I/O Module
Why an IO module is
needed?
• Interface to the
processor and memory
via the system bus or
central switch
timing
Module Functions • Coordinates the flow
of traffic between
internal resources
and external devices
Processor
Error detection communication
• Detects and reports • Involves command
transmission errors decoding, data, status
The major reporting, address
functions for an recognition
I/O module fall
into the
following
categories:
IO Module
+ 7.3- Programmed I/O 11
Programmed I/O
Data are exchanged between the processor and the I/O module
Processor executes a program that gives it direct control of the I/O operation
When the processor issues a command it must wait until the I/O operation is complete
If the processor is faster than the I/O module this is wasteful of processor time
Interrupt-driven I/O
Processor issues an I/O command, continues to execute other instructions, and is interrupted
by the I/O module when the latter has completed its work
Direct memory access (DMA)
The I/O module and main memory exchange data directly without processor involvement
+ 12
I/O Commands
There are four types of I/O commands that an I/O module may receive when
it is addressed by a processor:
1) Control
- used to activate a peripheral and tell it what to do
2) Test
- used to test various status conditions associated with an I/O module and its
peripherals
3) Read
- causes the I/O module to obtain an item of data from the peripheral and place
it in an internal buffer
4) Write
- causes the I/O module to take an item of data from the data bus and
subsequently transmit that data item to the peripheral
13
Three
Techniques
for Input of a
Block of Data
I/O Instructions
14
With programmed I/O there is a close correspondence between the I/O-related instructions
that the processor fetches from memory and the I/O commands that the processor issues to
an I/O module to execute the instructions
Isolated I/O
Separate address spaces 2 different system
buses for Memory
Need I/O or memory select lines and IO devices
Special commands for I/O MEM.
CPU
Limited set
Io module
16
Memory
Mapped
I/O
Isolated
I/O
Example
+
7.4- Interrupt-Driven I/O
17
The problem with programmed I/O is that the processor has to wait a
long time for the I/O module to be ready for either reception or
transmission of data
The I/O module will then interrupt the processor to request service when
it is ready to exchange data with the processor
The processor executes the data transfer and resumes its former processing
+
Simple Interrupt
Processing
READ BY YOURSELF
PSW: Process Status Word
+
Changes
in Memory
and Registers
for an
Interrupt
20
Design Issues
Intel
82C59A
Interrupt
Controller
READ BY YOURSELF
Intel 82C55A
+ 23
READ BY YOURSELF
+
Keyboard/
Display
Interfaces to
82C55A
READ BY YOURSELF
25
Drawbacks of Programmed and Interrupt-
Driven I/O
+
When large volumes of data are to be moved a more efficient
technique is direct memory access (DMA)
+
7.5- Direct
Memory Access
Typical DMA
Module Diagram
DMA Operation
Click icon to add picture 27
DMA
DMA
+ 7.12 shows where in the instruction cycle the processor may be suspended.
Figure
In each case, the processor is suspended just before it needs to use the bus.
The DMA module then transfers one word and returns control to the processor.
Note that this is not an interrupt; the processor does not save a context and do
something else. Rather, the processor pauses for one bus cycle. The overall effect
is to cause the processor to execute more slowly. Nevertheless, for a multiple-word
I/O transfer, DMA is far more efficient than interrupt-driven or programmed I/O.
+
Alternative
DMA
Configurations
8237 DMA Usage of System Bus
29
READ BY YOURSELF
E/D = enable/disable
TC = terminal count
+ 7.6- IO Channels and Processors 32
1. The CPU directly controls a 4. The I/O module is given direct access to
peripheral device. memory via DMA. It can now move a
block of data to or from memory
2. A controller or I/O module is without involving the CPU, except at the
added. The CPU uses beginning and end of the transfer.
programmed I/O without
interrupts. 5. The I/O module is enhanced to become
a processor in its own right, with a
3. Same configuration as in step 2 specialized instruction set tailored for
is used, but now interrupts are I/O
employed. The CPU need not
spend time waiting for an I/O 6. The I/O module has a local memory of
operation to be performed, thus its own and is, in fact, a computer in its
increasing efficiency.
own right. With this architecture a large
set of I/O devices can be controlled with
minimal CPU involvement.
+
I/O
Channel
Architecture
+ Exercises 34
Input/Output
Chapter 7
Direct memory access
External devices
Drawbacks of programmed and
interrupt-driven I/O
Keyboard/monitor DMA function
Disk drive Intel 8237A DMA controller
I/O modules
Module function I/O channels and processors
I/O module structure The evolution of the I/O function
Programmed I/O Characteristics of I/O channels
Overview of programmed I/O
I/O commands The external interface
I/O instructions Types of interfaces
Interrupt-driven I/O Point-to-point and multipoint
Interrupt processing
configurations
Thunderbolt
Design issues
InfiniBand
Intel 82C59A interrupt controller
Intel 82C55A programmable peripheral
interface