03.01.2015 Views

80C186EC/80C188EC Microprocessor User's Manual

80C186EC/80C188EC Microprocessor User's Manual

80C186EC/80C188EC Microprocessor User's Manual

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

INTERRUPT CONTROL UNIT<br />

4. Fetches the new CS and IP for the interrupt vector routine from the Interrupt Vector Table<br />

and begins executing from that point.<br />

8.2 INTERRUPT PRIORITY AND NESTING<br />

The priority of certain interrupts may change during program execution, or the program may wish<br />

to ignore some interrupt sources entirely. The interrupt controller must offer the capability of<br />

modifying interrupt priorities on the fly and must allow for the masking of individual interrupt<br />

sources. The priority scheme used by a particular application is known as the interrupt structure.<br />

In many systems, it is possible that an interrupt handler may itself be interrupted by another device.<br />

This situation is known as interrupt nesting. Typically the system would want only higherpriority<br />

interrupt sources to interrupt a handler in process. For example, you would want your<br />

hard disk drive handler to be interrupted by an impending shut-down interrupt but not by a keyboard<br />

keystroke. Systems that allow only higher-priority interrupts to preempt handlers currently<br />

in service are called fully nested. Fully nested is the default interrupt structure used by the 8259A<br />

module.<br />

There are times when it is appropriate to use an interrupt structure other than fully nested. For<br />

example, during execution of an interrupt handler it may be necessary to temporarily enable interrupts<br />

from a lower-priority source. The 8259A has several alternate modes that allow modifications<br />

to the fully nested structure.<br />

It is important to define the interrupt structure early in the system design process. Interrupt priority<br />

is controlled by both the hardware and software design. It may not be possible to change the<br />

interrupt structure “in software” if the hardware is incorrectly designed. When developing an interrupt<br />

structure for your system, consider the effects of software interrupts, traps, exceptions and<br />

non-maskable hardware interrupts.<br />

8.3 OVERVIEW OF THE 8259A ARCHITECTURE<br />

The 8259A Programmable Interrupt Controller was first introduced as a peripheral chip for 8085<br />

and 8086/8088 microcomputer systems. The 8259A architecture has since been reimplemented<br />

as a CMOS module for inclusion in more highly integrated devices.<br />

The 8259A module (Figure 8-3) is divided into several functional blocks. The data bus buffer and<br />

read/write logic constitute the interface between the 8259A module and the CPU. The 8259A<br />

module’s internal control registers are accessed through this interface. This block drives the interrupt<br />

vector type on the bus during an INTA cycle.<br />

8-4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!