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.

OVERVIEW OF THE 80C186 FAMILY ARCHITECTURE<br />

2.3.1.1 Non-Maskable Interrupts<br />

The Non-Maskable Interrupt (NMI) is the highest priority interrupt. It is usually reserved for a<br />

catastrophic event such as impending power failure. An NMI cannot be prevented (or masked)<br />

by software. When the NMI input is asserted, the interrupt processing sequence begins after execution<br />

of the current instruction completes (see “Interrupt Latency” on page 2-44). The CPU automatically<br />

generates a type 2 interrupt vector.<br />

The NMI input is asynchronous. Setup and hold times are given only to guarantee recognition on<br />

a specific clock edge. To be recognized, NMI must be asserted for at least one CLKOUT period<br />

and meet the correct setup and hold times. NMI is edge-triggered and level-latched. Multiple<br />

NMI requests cause multiple NMI service routines to be executed. NMI can be nested in this manner<br />

an infinite number of times.<br />

2.3.1.2 Maskable Interrupts<br />

Maskable interrupts are the most common way to service external hardware interrupts. Software<br />

can globally enable or disable maskable interrupts. This is done by setting or clearing the Interrupt<br />

Enable bit in the Processor Status Word.<br />

The Interrupt Control Unit processes the multiple sources of maskable interrupts and presents<br />

them to the core via a single maskable interrupt input. The Interrupt Control Unit provides the<br />

interrupt vector type to the 80C186 Modular Core. The Interrupt Control Unit differs among<br />

members of the 80C186 Modular Core family; see Chapter 7, “Interrupt Control Unit,” for information.<br />

2.3.1.3 Exceptions<br />

Exceptions occur when an unusual condition prevents further instruction processing until the exception<br />

is corrected. The CPU handles software interrupts and exceptions in the same way. The<br />

interrupt type for an exception is either predefined or supplied by the instruction.<br />

Exceptions are classified as either faults or traps, depending on when the exception is detected<br />

and whether the instruction that caused the exception can be restarted. Faults are detected and serviced<br />

before the faulting instruction can be executed. The return address pushed onto the stack<br />

in the interrupt processing instruction points to the beginning of the faulting instruction. This allows<br />

the instruction to be restarted. Traps are detected and serviced immediately after the instruction<br />

that caused the trap. The return address pushed onto the stack during the interrupt processing<br />

points to the instruction following the trapping instruction.<br />

Divide Error — Type 0<br />

A Divide Error trap is invoked when the quotient of an attempted division exceeds the maximum<br />

value of the destination. A divide-by-zero is a common example.<br />

2-42

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

Saved successfully!

Ooh no, something went wrong!