Ch 11 - Interrupt 2

advertisement
INPUT/OUTPUT ORGANIZATION:
Interrupts
CS 147
JOKO SUTOMO
1
Why we need Interrupts?



Input/output devices are slower
than memory and CPU.
Different device requires different
amount of time from CPU.
Uncertainty of when device will be
ready.
2
Modes of Data Transfer
• Polling
• Wait States
• Interrupts
3
Polling


Continuously checking the status
of a peripheral; e.g. read data
from an input keyboard.
Polling is relatively straightforward
in design and programming with
the sacrifice of system
performance.
4
Wait States

If a device assert wait signal, the
CPU:

stays in wait states

outputting the address of I/O device

outputting value of control signal.
5
Data Transfer With
Interrupt
1) When a peripheral is ready it sends an
interrupt signal the the CPU
2) The CPU stops execution of the program
3) Accepts data from peripheral
4) Returns to the interrupted program
6
Types of Interrupts
There are three types of interrupts,
each with several different uses:




External Interrupts
Internal Interrupts
Software Interrupts
Procedures for processing all types
of interrupts are almost identical
7
External Interrupts



Used by CPU to interact with input/output
devices;
e.g. the CPU requests a data transfer and in
input device asserts an interrupt when it is
ready.
Improve system performance by allowing the
CPU to execute instructions.
Also used to initiate transfers.
8
Internal Interrupts


Occurs entirely within the CPU
Used to handle exception that occur
during the execution of valid
instructions; e.g:




Divide by zero exception
Arithmetic overflow
Page faults
Invalid instruction codes
9
Software Interrupts


Generated by specific interrupt
instructions in the CPU’s instruction
set.
These interrupt act like subrutine
call statements except they always
go to a specific address.
10
Processing Interrupts



These events only occur if the interrupt
is enabled.
A handler (software to service the
interrupt) is executed.
CPU returns to where it left off in the
main program.
11
Classification

Maskable Interrupt


Can be ignored by the CPU
Non-maskable Interrupt



Cannot be disabled, always handled.
CPU responds immediately
Highest priority among interrupts
12
Handler


Handler is essentially a
subroutine.
There may be one handler
routine for each interrupt or
one unified handler routine for
all interrupts.
13
Handler

(cont.)
If handler routine is interrupted part
way through:


Save the contents of internal registers
of the CPU
Save the state information within
Control Unit
14
Handler
(cont.)
To illustrate, consider this execute routine for
the LDAC instruction for the Relatively Simple
CPU
LDAC1:
LDAC2:
LDAC3:
LDAC4:
LDAC5:
DR M, PCPC+1, ARAR+1
TR  DR, DR  M, PCPC+1
AR DR, TR
DR M
AC DR
15
Handler

(cont.)
When the CPU accesses the handler
routine, the following steps are
performed:
• CPU pushes the current value of the program counter
(PC) onto stack
•CPU loads the address of the handler routine into the PC.
•The handler routine then performs its tasks.
When it finished, it returns to the correct location by popping
the value of the PC off the stack

Getting the Address of the
Handler Routine

Vectored Interrupts

Non-vectored Interrupts
17
Vectored Interrupts


Vectored interrupts supply the CPU with
information, the interrupt vector, which is
used to generate the address of the
handler routine for the interrupt.
Useful for CPUs that receive interrupt
request from several devices via the same
control line.
18
Non-Vectored Interrupts


A non-vectored interrupt uses a
handler routine at a known
address.
CPU does not need any additional
information to generate this
address and access its handler
routine.
19
For Non-vectored Interrupt Request:




An external device sends an interrupt to
the CPU by asserting its IRQ signal.
When CPU is ready, it asserts its interrupt
acknowledge signal (IACK),
The device sets IRQ low, which cause CPU
to set IACK low.
Handler routine proceeds and starts
transferring data.
20
(a) Hardware and (b) timing for a nonvectored interrupt for a single device
21
For Vectored Interrupt Request:




External device sends interrupt to the CPU
by asserting its IRQ signal.
CPU inputs an interrupt vector from the
device and call an interrupt service
routine (handler)
The device sets IRQ low
Handler routine proceeds and starts
transferring data.
22
(A) Hardware and (B) Timing for a Vectored Interrupt for
a Single Device
23
Prioritizing Multiple Interrupts

Extension of the nonvectored interrupt
hardware

Daisy chaining

Parallel priority
24
Extension of the nonvectored
Interrupt
Hardware for multiple nonvectored interrupts
25
Priority of Multiple
nonvectored Interrupts

IRQn has the highest priority and IRQ0
has the lowest.

E.g. IRQ 7 Has higher priority than IRQ 5.
26
Extension of the nonvectored
Interrupt:
Implementation Issues


This method works well when there
are only a few IRQ/IACK pairs.
Number of pins needed by CPU to
accommodate signals become
prohibitive.
27
Handling Multiple Interrupt:
Daisy Chaining
28
Daisy Chaining:
Implementation Issues

Advantages:


Straightforward and easy to
implement.
Disadvantages:

Configuration is sequential, thus may
introduces hardware delays as chain
becomes longer.
29
Handling Multiple Interrupt:
Parallel Priority


Uses priority encoder.
Unlike daisy chaining, IACK signal
simply enables a priority encoder.
30
Parallel Priority
Implementing priority Interrutps in parallel
31
Parallel Priority

Advantage:



All interrupt requests require the same
amount of time.
Priority of the device does not determine the
time needed to acknowledge the interrupt.
Disadvantage:

The system is much more difficult to expand
than the daisy chain configuration.
32
Thank You
Joko Sutomo
CS 147
Prof. Sin-Min Lee
33
Download