0% found this document useful (0 votes)
16 views15 pages

Chap 05. IO

Chapter 5 discusses the role of Input/Output (I/O) modules in computer systems, highlighting their function in facilitating communication between external devices and the computer. It categorizes external devices into human-readable, machine-readable, and communication types, and explains various I/O operation techniques such as programmed I/O, interrupt-driven I/O, and Direct Memory Access (DMA). The chapter also covers device identification methods and the evolution of I/O functions from direct CPU control to advanced I/O modules with their own processing capabilities.

Uploaded by

leztwaper
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)
16 views15 pages

Chap 05. IO

Chapter 5 discusses the role of Input/Output (I/O) modules in computer systems, highlighting their function in facilitating communication between external devices and the computer. It categorizes external devices into human-readable, machine-readable, and communication types, and explains various I/O operation techniques such as programmed I/O, interrupt-driven I/O, and Direct Memory Access (DMA). The chapter also covers device identification methods and the evolution of I/O functions from direct CPU control to advanced I/O modules with their own processing capabilities.

Uploaded by

leztwaper
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/ 15

Chapter 5

Input/Output

1
External devices
› Provide a means of exchanging data between the
external environment and the computer
› Attach to the computer by a link to an I/O module
› Three categories:
▪ Human readable: Suitable for communicating with the computer user (e.g.
video display terminals, printers)
▪ Machine readable: Suitable for communicating with equipment (e.g. magnetic
disk and tape systems, sensors and actuator)
▪ Communication: Suitable for communicating with remote devices such as a
terminal, a machine readable device, or another computer

2
Keyboard/Monitor
› User provides input through the keyboard
› The monitor displays data provided by the computer
› The basic unit of exchange is the character; each
associated with a code, typically 7 or 8 bits in length.
› The most commonly used text code is the
International Reference Alphabet (IRA) in 7-bit
binary code
› Characters are of two types: printable and control

3
Why to use I/O modules?
› There are a wide variety of peripherals with various methods
of operation. It would be impractical to incorporate the
necessary logic within the processor to control a range of
devices.
› 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.
4
I/O modules
› What an I/O module is
used for?
▪ Interface to the processor and
memory via the system bus or
central switch
▪ Interface to one or more
peripheral devices by tailored
data links

5
I/O module functions
Control and
timing
• Coordinates the
flow of traffic
between internal
resources and
external devices

Error Processor
detection communication
•Involves command
• Detects and decoding, data, status
reports
The major reporting, address
transmission errors functions for an recognition
I/O module fall
into the following
categories:

Data buffering Device


•Performs the needed communication
buffering operation to •Involves commands,
balance device and status information,
memory speeds and data

6
I/O module structure

7
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:
▪ Control: used to activate a peripheral and tell it what to do
▪ Test: used to test various status conditions associated with an
I/O module and its peripherals
▪ Read: causes the I/O module to obtain an item of data from the
peripheral and place it in an internal buffer
▪ 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

8
I/O mapping
› 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
› Isolated I/O
▪ Separate address spaces
▪ Need I/O or memory select lines
▪ Special commands for I/O

9
I/O Operation Techniques
› 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
▪ The I/O module and main memory exchange data directly without
processor involvement
10
Drawbacks of Programmed and
Interrupt-Driven I/O
› The I/O transfer rate is limited by the speed with which the
processor can test and service a device
› The processor is tied up in managing an I/O transfer; a
number of instructions must be executed for each I/O
transfer
→ When large volumes of data are to be moved a more
efficient technique is direct memory access (DMA)

11
DMA Module

12
Device Identification
› Multiple interrupt lines
▪ Between the processor and the I/O modules
▪ Most straightforward approach to the problem
▪ Consequently even if multiple lines are used, it is likely that each line
will have multiple I/O modules attached to it
› Software poll
▪ When processor detects an interrupt it branches to an interrupt-
service routine whose job is to poll each I/O module to determine
which module caused the interrupt
▪ Time consuming

13
Device Identification (Cont’d)
› Daisy chain (hardware poll, vectored)
▪ The interrupt acknowledge line is daisy chained through the modules
▪ Vector – address of the I/O module or some other unique identifier
▪ Vectored interrupt – processor uses the vector as a pointer to the
appropriate device-service routine, avoiding the need to execute a
general interrupt-service routine first
› Bus arbitration (vectored)
▪ An I/O module must first gain control of the bus before it can raise the
interrupt request line
▪ When the processor detects the interrupt it responds on the interrupt
acknowledge line
▪ Then the requesting module places its vector on the data lines

14
Evolution of I/O function
1. The CPU directly controls a peripheral device. This is seen in
simple microprocessor-controlled devices.
2. A controller or I/O module is added. The CPU uses programmed
I/O without interrupts.
3. The same configuration as in step 2 is used, but now interrupts
are employed. The CPU need not spend time waiting for an I/O
operation to be performed, thus increasing efficiency.
4. The I/O module is given direct access to memory via DMA.
5. The I/O module is enhanced to become a processor in its own
right, with a specialized instruction set tailored for I/O.
6. The I/O module has a local memory of its own and is, in fact, a
computer in its own right.

15

You might also like