Asynchronous Data Transfer Modes of Transfer Priority Interrupt Direct Memory Access Input-Output Processor Serial Communication

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 49

Input/Output Organization

Overview
Peripheral Devices
Input-Output Interface
Asynchronous Data Transfer
Modes of Transfer
Priority Interrupt
Direct Memory Access
Input-Output Processor
Serial Communication

Input/Output Organization

Input Output Organization


I/O Subsystem
Provides an efficient mode of communication between the
central system and the outside environment
Programs and data must be entered into computer memory for
processing and results obtained from computer must be
recorded and displayed to user.
When input transferred via slow keyboard processor will be idle
most of the time waiting for information to arrive
Magnetic tapes, disks

Input/Output Organization

Peripheral Devices

Devices that are under direct control of computer are said to be


connected on-line.

Input or output devices attached to the computer are also called


peripherals.

There are three types of peripherals :


Input peripherals
Output peripherals
Input-output peripherals
Peripheral (or I/O Device)
Monitor (Visual Output Device) : CRT, LCD
KeyBoard (Input Device) : light pen, mouse, touch screen, joy stick, digitizer
Printer (Hard Copy Device) : Daisy wheel, dot matrix and laser printer
Storage Device : Magnetic tape, magnetic disk, optical disk

Input/Output Organization

Peripheral Devices
Input Devices
Keyboard
Optical input devices
- Card Reader
- Paper Tape Reader
- Bar code reader
- Optical Mark Reader
Magnetic Input Devices
- Magnetic Stripe Reader
Screen Input Devices
- Touch Screen
- Light Pen
- Mouse

Output Devices
Card Puncher, Paper Tape Puncher
CRT
Printer (Daisy Wheel, Dot Matrix, Laser)
Plotter

Input/Output Organization

Input Output Organization


ASCII (American Standard Code for Information Interchange)
I/O communications usually involves transfer of alphanumeric
information from the device and the computer.
Standard binary code for alphanumeric character is ASCII
ASCII Code :
It uses 7 bits to code 128 characters (94 printable and 34 non printing)
7 bit 00 - 7F ( 0 - 127 )
ASCII is 7 bits but most computers manipulate 8 bit quantity as a
single unit called byte.
80 - FF ( 128 - 255 ) : Greek, Italic type font
Three types of control characters: Format effectors, Information
separators and communication control

Format Effectors: control the layout of


printing. They include familiar typewriter
controls, such as backspace (BS), horizontal
tabulation(HT), carriage return(CR).
Information separators: used to separate
data into divisions like paragraphs and
pages. They include characters such as
record separator (RS) and file separator(FS).
Communication Control characters: these
are useful during the transmission of text
between remote terminals. These include
STX(Start of text) and ETX(end of text)

Input/Output Organization

I/O Interface

Provides a method for transferring information between internal


storage (such as memory and CPU registers) and external I/O
devices
Resolves the differences between the computer and peripheral
devices
(1). Peripherals Electromechanical or Electromagnetic Devices
CPU or Memory - Electronic Device

Conversion of signal values required

(2). Data Transfer Rate


Peripherals - Usually slower
CPU or Memory - Usually faster than peripherals

Some kinds of Synchronization mechanism may be needed

(3). Data formats or Unit of Information


Peripherals Byte, Block,
CPU or Memory Word
(4). Operating modes of peripherals may differ
must be controlled so that not to disturbed other peripherals connected to CPU

Input/Output Organization

10

I/O Bus and Interface


I/O bus

Data
Address
Control

Processor

Interface

Interface

Interface

Interface

Keyboard
and
display
terminal

Printer

Magnetic
disk

Magnetic
tape

Interface :
- Decodes the device address (device code)
- Decodes the commands (operation)
- Provides signals for the peripheral controller
- Synchronizes the data flow and supervises
the transfer rate between peripheral and CPU or Memory

4 types of command interface can receive : control, status, data o/p and data i/p

Input/Output Organization

11

I/O Bus and Interface


Control command : is issued to activate peripheral and to inform what to do
Status command : used to test various status condition in the interface and
the peripherals
data o/p command : causes the interface to respond by transferring data from
the bus into one of its registers
data i/p command : interface receives an item of data from the peripheral and
places it in its buffer register.

Input/Output Organization

12

I/O Bus and Memory Bus


Functions of Buses
MEMORY BUS is for information transfers between CPU and the MM
I/O BUS is for information transfers between CPUand I/O devices through
their I/O interface
3 ways to bus can communicate with memory and I/O :
(1). use two separate buses, one to communicate with memory and the
other with I/O interfaces
- Computer has independent set of data, address and control bus one for
accessing memory and another I/O.
- done in computers that have separate IOP other than CPU.

(2). Use one common bus for memory and I/O but separate control lines
for each
(3). Use one common bus for memory and I/O with common control
lines for both

Input/Output Organization

13

Isolated vs. Memory Mapped I/O


Isolated I/O
- Many computers use common bus to transfer information between
memory or I/O.
- The distinction between memory transfer and I/O transfer is made
through separate read and write line.
-In the isolated I/O configuration , the CPU has distinct input and output
instructions and each of these instruction is associated with the
address of an interface register.
- Distinct input and output instructions - each associated with address of interface
register

Memory-mapped I/O
- A single set of read/write control lines
(no distinction between memory and I/O transfer)
- Memory and I/O addresses share the common address space
-> reduces memory address range available
- No specific input or output instruction
-> The same memory reference instructions can
be used for I/O transfers
- Considerable flexibility in handling I/O operations

Input/Output Organization

14

I/O Interface
Bidirectional

Register select
Register select
I/O read
I/O write

Programmable Interface

CS
RS1
RS0
RD

Timing
and
Control

Internal bus

Chip select

I/O data

Port B
register

I/O data

Bus
buffers

data bus

CPU

Port A
register

Control
register
Status
register

WR
CS RS1 RS0
0
x
x
1
0
0
1
0
1
1
1
0
1
1
1

Control

I/O
Device

Status

Register selected
None - data bus in high-impedence
Port A register
Port B register
Control register
Status register

- Information in each port can be assigned a meaning depending on the mode of operation of the
I/O device Port A = Data; Port B = Command;
- CPU initializes(loads) each port by transferring a byte to the Control Register
Allows CPU can define the mode of operation of each port
Programmable Port: By changing the bits in the control register, it is possible to change the
interface characteristics

Input/Output Organization
Lecture 36

15

Peripheral Devices
Input-Output Interface
Asynchronous Data Transfer
Modes of Transfer
Priority Interrupt
Direct Memory Access
Input-Output Processor

11-3. Asynchronous Data Transfer


Synchronous Data Transfer: Clock pulses are applied to all
registers within a unit and all data transfer among internal
registers occur simultaneously during the occurrence of a clock
pulse. Two units such as CPU and I/O Interface are designed
independently of each other. If the registers in the interface
share a common clock with CPU registers, the transfer
between the two is said to be synchronous.
Asynchronous Data Transfer: Internal timing in each unit
(CPU and Interface) is independent. Each unit uses its own
private clock for internal registers. Asynchronous data transfer
between two independent units requires that control signals be
transmitted between the communicating units to indicate the
time at which data is being transmitted. One way of achieving
this is by means of STROBE(Control signal to indicate the time
at which data is being transmitted) pulse and other method is
HANDSHAKING(Agreement between two independent units).

Timeout : If the return handshake signal does not respond within a given time period,
the unit assumes that an error has occurred.

Asynchronous Serial Transfer

Synchronous transmission :
The two unit share a common clock frequency
Bits are transmitted continuously at the rate dictated
by the clock pulses

Asynchronous transmission :
Binary information sent only when it is available and
line remain idle otherwise
Special bits are inserted at both ends of the character
code
Each character consists of three parts :
1) start bit : always 0, indicate the beginning of
a character
2) character bits : data
3) stop bit : always 1
1

S ta rt
b it

C h a r a c te r b its

S to p
b it

Asynchronous transmission rules :


When

a character is not being sent, the line is kept


in the 1-state
The initiation of a character transmission is
detected from the start bit, which is always 0
The character bits always follow the start bit
After the last bit of the character is transmitted, a
stop bit is detected when the line returns to the 1state for at least one bit time

Baud Rate : Data transfer rate in bits per


second
10 character per second with 11 bit format = 110 bit
per second

Input/Output Organization

24

Universal Asynchronous Receiver


Transmitter
A typical asynchronous communication interface available as an IC
Bidirectional
data bus

Bus
buffers

CS
RS

I/O read
I/O write

RD
WR

Timing
and
Control

Internal Bus

Chip select

Transmitter
register

Control
register

Shift
register

Transmit
data

Transmitter Transmitter
clock
control
and clock

Status
register

Receiver
control
and clock

Receiver
register

Shift
register

Receiver
clock
Receive
data

CS
0
1
1
1
1

RS
x
0
1
0
1

Oper.
x
WR
WR
RD
RD

Register selected
None
Transmitter registe
Control register
Receiver register
Status register

Transmitter Register
- Accepts a data byte(from CPU) through the data bus
- Transferred to a shift register for serial transmission
Receiver Register
- Receives serial information into another shift register
- Complete data byte is sent to the receiver register
Status Register Bits
- Used for I/O flags and for recording errors
Control Register Bits
- Define baud rate, no. of bits in each character, whether to generate and
check parity, and no. of stop bits

Overview
Peripheral Devices
Input-Output Interface
Asynchronous Data Transfer
Modes of Transfer
Priority Interrupt
Direct Memory Access
Input-Output Processor

Modes of Transfer
Binary information received from external device is usually
stored in memory.
Information transferred from central computer into an external
device originates in the memory unit.
The CPU merely execute I/O instructions and may accept data
temporarily but ultimate source or destination is the Memory Unit.
Data transfer between central computer and I/O devices may be
handled in a variety of modes. Some modes use CPU as
intermediate path and others transfer data directly to and from
memory unit.
Data Transfer to or from peripheral can be handled in one of
three possible modes :
Programmed I/O
Interrupt-Initiated I/O
Direct Memory Access (DMA)

Input/output Organization

27

Modes of Transfer Programmed I/O


- Programmed I/O operations are the result of I/O Instructions written in computer program. Each
data item transfer is initiated by an instruction in the program.
- Usually, transfer is to and from a CPU register to peripheral
Other instructions are needed
to transfer
data
to and from CPU and Memory
Program-Controlled
I/O(Input
Dev to
CPU)
Interface

Data bus
Address bus
CPU

Data register

I/O read
I/O write

Status
register F

I/O bus
Data valid

I/O
device

Data accepted

Read status register


Check flag bit

flag

=0

=1
Read data register
Transfer data to memory

no

Operation
complete?
yes
Continue with
program

Polling or Status Checking

Continuous CPU involvement


CPU slowed down to I/O speed
Simple
Least hardware
useful in small low-speed comput

Programmed I/O
- Programmed I/O operations are the result of I/O
Instructions written in computer program. Each data item
transfer is initiated by an instruction in the program.
- Usually, transfer is to and from a CPU register to
peripheral. Other instructions are needed to transfer data
to and from CPU and Memory
- Transferring data under program control requires
constant monitoring of the peripheral by CPU.

In programmed I/O method, CPU stays


in a program loop until the I/O unit
indicated that it is ready for data
transfer. This is a time consuming
process since it keeps the processor
busy needlessly. It can be avoided by
using Interrupt facility and special
commands to inform the interface to
issue an interrupt request signal when
data are available for the device.

Interrupted I/O

DMA

Priority Interrupts
Priority
- Determines which interrupt is to be served first when two or more requests
are made simultaneously
- Also determines which interrupts are permitted to interrupt the computer while
another is being serviced
- Higher priority interrupts can make requests while servicing a lower priority
interrupt

A priority interrupt is a system that establishes priority over the


various sources to determine
- which condition is to serviced first when two or more requests
arrive simultaneously
-which conditions are permitted to interrupt the computer while
another request is being serviced

Priority Interrupts
Priority Interrupt by Software (Polling)
Polling procedure is used to identify highest priority source by software
means
- common branch address for all the interrupts
- Priority is established by the order of polling the devices(interrupt sources)
- highest priority device is tested first and if interrupt is on , control
branches to service routine for this source otherwise next lower priority
source is tested
- Flexible since it is established by software
- Low cost since it needs a very little hardware
- Very slow
- if there are many interrupt time required to poll may exceed time available to
service IO device

Priority Interrupts

Priority Interrupt by Hardware


- Require a priority interrupt manager which accepts all the interrupt requests
to determine the highest priority request
- Fast since identification of the highest priority interrupt request is identified by
the hardware
- Fast since each interrupt source has its own interrupt vector to access
directly to its own service routine
- Can be addressed using serial or parallel connection of interrupt lines.
Example of serial is Daisy chaining Priority

Hardware Priority Interrupts Daisy


Chain
VAD 2

VAD 1
Device 1
PI

PO

Device 2
PI

PO

VAD 3
Device 3
PI

PO

Interrupt request

To next
device

* Serial hardware priority functi


* Interrupt Request Line
- Single common line
* Interrupt Acknowledge Line
- Daisy-Chain

INT

CPU
Interrupt acknowledge

INTACK

-Serial connection of all device that request an interrupt


-Device with highest priority placed in first position followed by devices with lower
priority and so on.
-Interrupt generated by any device signals low state interrupt line
-CPU responds by enabling interrupt acknowledgement (INTACK) line.
- device receives PI=1 and passes to next only when not requesting else PI=0
-Thus device with PI=1 and PO=0 is one with highest priority requesting interrupt

Hardware Priority Interrupts Daisy


Chain
Example: Daisy chain working

Hardware Priority Interrupts Daisy


Chain

Parallel Priority Interrupts


Bus
Buffer

Interrupt register
Disk

I0

Printer

I1

Reader

Keyboard

0
Mask
register

1
2
3

Priority
I 2 encoder

I3

IEN

VAD
to CPU

0
IST

0
0
Enable
Interrupt
to CPU
INTACK
from CPU

IEN:
Set or Clear by instructions ION or IOF
IST:
Represents an unmasked interrupt has occurred. INTACK enables tristate
Bus Buffer to load VAD generated by the Priority Logic
Interrupt Register:
- Each bit is associated with an Interrupt Request from different Interrupt
Source - different priority level
- Each bit can be cleared by a program instruction
Mask Register:
- Mask Register is associated with Interrupt Register
- Each bit can be set or cleared by an Instruction

Priority Encoder
Determines the highest priority interrupt when
more than one interrupts take place
Priority Encoder Truth table
Inputs
I0 I1 I2
1 d
0 1
0 0
0 0
0 0

I3
d
d
1
0
0

Outputs
d
d
d
1
0

IST

Boolean functions

0
0
1
1
d

0
1
0
1
d

1
1
1
1
0

x = I0' I1'
y = I0' I1 + I0 I2
(IST) = I0 + I1 + I2 + I3

Interrupt Cycle
At the end of each Instruction cycle
- CPU checks IEN and IST
- If IEN IST = 1, CPU -> Interrupt Cycle
SP SP - 1
M[SP] PC
INTACK 1
PC VAD
IEN 0
Go To Fetch

Decrement stack pointer


Push PC into stack
Enable interrupt acknowledge
Transfer vector address to PC
Disable further interrupts
to execute the first instruction
in the interrupt service routine

Initial and Final Operations


3

VAD=00000011

KBD
interrupt

JMP DISK

JMP PTR

JMP RDR

JMP KBD
Main program

1
749
750
11
2

DISK
PTR

Program to service
line printer

RDR

Program to service
character reader

current instr.
Stack

KBD
5

256
750

Program to service
magnetic disk

Disk
interrupt

Program to service
keyboard
255
256
6

10

9
Initial and Final Operations
Each interrupt service routine must have an initial and final set of
operations for controlling the registers in the hardware interrupt system

Initial Sequence
Final Sequence
[1] Clear lower level Mask reg. bits [1] IEN <- 0
[2] IST <- 0
[2] Restore CPU registers
[3] Save contents of CPU registers
[3] Clear the bit in the Interrupt Reg
[4] IEN <- 1
[4] Set lower level Mask reg. bits
[5] Go to Interrupt Service Routine [5] Restore return address, IEN <- 1

Input/Output Organization

42

Overview
Peripheral Devices
Input-Output Interface
Asynchronous Data Transfer
Modes of Transfer
Priority Interrupt
Direct Memory Access
Input-Output Processor

Input/Output Organization

44

Direct Memory Access


* Block of data transfer between high speed devices like Disk and Memory
* DMA controller - Interface which takes over the buses to manage the transfer directly between
Memory and I/O Device, freeing CPU for other tasks
* CPU initializes DMA Controller by sending memory address and the block size (number of
words)

Fig 1: CPU bus signals for DMA transfer


BR

Bus granted

BG

CPU

Address bus
Data bus
Read
Write

Data bus

Address register:
Contains an address to specify
Desired location in memory DMA select
Word count register
Read
Holds no. of words to be transferred
Write
Control register
Bus request
Specifies the mode of transfer
Bus grant

Interrupt

Fig 2: Block diagram of DMA controll

Data bus
buffers

DS
RS
RD

WR Control
logic
BR

Address bus
buffers
Internal Bus

Bus request

ABUS
DBUS
RD
WR

Address register
Word count register
Control register

BG
Interrupt

DMA request
DMA acknowledge

to I/O device

Input/Output Organization

45

Direct Memory Access


RD and WR is bidirectional
When BG=0 CPU can communicate with DMA Register
When BG=1 CPU left the buses and DMA can communicate directly with memory
DMA Transfer can be made in several ways
(1)Burst Transfer : a block sequence consisting of memory words is transferred
in continuous burst while the DMA controller is master of memory
bus
- This mode of transfer is needed for fast devices such as magnetic
disk where data transmission cannot be stopped or slowed down
until an entire block is transferred
(2) Cycle stealing : Alternative technique called cycle stealing allows DMA controller to
transfer one data word at time after which it must return control of
the buses to the CPU.
- CPU merely delays its operation for one memory cycle to allow the
direct memory I/O transfer to steal one memory cycle

Input/Output Organization

46

DMA I/O Operation


DMA is first initialized by CPU. After that DMA starts and continues to transfer data
between memory and peripheral unit until an entire block is transferred.

CPU initializes the DMA by sending following information through data bus:
(1) Starting address of the memory block (for read/write)
(2) Word Count (no. of words in memory block)
(3) Control to specify mode of transfer (E.g. read/write)
(4) A control to start DMA Transfer

Input/Output Organization

48

DMA Transfer
Interrupt
BG

Random-access
memory unit (RAM)

CPU

BR
RD

WR

Addr

Data

RD

WR

Addr

Data

Read control
Write control
Data bus
Address bus
Address
select
RD

WR

Addr

DMA ack.

DS
RS
BR
BG
Interrupt

Data

I/O
Peripheral
device

DMA
Controller
DMA request

Input/Output Organization

49

I/O Processor - Channel


Channel
- Processor with direct memory access capability that
communicates with I/O devices
- Channel accesses memory by cycle stealing
- Unlike DMA Controller, IOP can fetch and execute its own
instruction
- IOP Instructions (Commands) specially designed to facilitate
I/O transfer.

Memory Bus

- Data gathered in IOP at device rate and bit capacity while


CPU executing own program
- Transfer between IOP and Device similar to Programmed I/O
and
Central
transfer between IOPprocessing
and Memory similar to DMA
- CPU is master while IOP
slave processor
unitis
(CPU)
- CPU initiates the channel by executing aPeripheral
channeldevices
I/O class
Memory
instruction unit
and once initiated, channel PD
operates
independent
of
PD
PD
PD
the CPU
Input-output
processor
(IOP)

I/O bus

Input/Output Organization

50

Channel CPU Communication


CPU operations
Send instruction
to test IOP.path
If status OK, then send
start I/O instruction
to IOP.
CPU continues with
another program

Request IOP status

Check status word


for correct transfer.
Continue

IOP operations

Transfer status word


to memory

Access memory
for IOP program
Conduct I/O transfers
using DMA;
Prepare status report.
I/O transfer completed;
Interrupt CPU

Transfer status word


to memory location

You might also like