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

A typical sequence takes place as follows:<br />

1. A low-to-high transition on IR4 sets bit 4 in the Interrupt Request Register.<br />

2. The Priority Resolver checks whether any bits are set in the Interrupt Request Register<br />

that are of a higher priority than IR4. There are none.<br />

3. Because the 8259A module is in Fully Nested Mode, the Priority Resolver checks whether<br />

any bits are set in the In-Service Register that have priority greater than or equal to IR4.<br />

There are none. This step prevents the interruption of higher-priority interrupt handlers by<br />

lower-priority sources.<br />

4. At this point, the Priority Resolver has determined that IR4 has sufficient priority to<br />

interrupt the CPU. The interrupt request line to the CPU is asserted to signal an external<br />

interrupt request.<br />

5. The CPU signals acknowledgment of the interrupt by initiating an interrupt acknowledge<br />

cycle.<br />

6. On the first falling edge of INTA, the 8259A module sets the In-Service Bit for IR4.<br />

Simultaneously, the Interrupt Request Bit is reset. The 8259A module is not driving the<br />

data bus during this phase of the cycle.<br />

7. On the second falling edge of INTA, the 8259A module drives the interrupt type corresponding<br />

to IR4 on the data bus. The 8259A module floats its data bus when INTA goes<br />

high. The interrupt request signal to the CPU is deasserted.<br />

8. The CPU executes the interrupt processing sequence and begins to execute the interrupt<br />

handler for IR4.<br />

9. During execution of the IR4 handler, IR6 goes high, setting bit 6 in the Interrupt Request<br />

Register.<br />

10. The Priority Resolver sees that IR6 is of lower priority than IR4, which is currently being<br />

serviced (IR4’s In-Service bit is set). Because IR6 is of lower priority than IR4, no<br />

interrupt request is sent to the CPU. If IR6 were set to a higher priority than IR4, the IR4<br />

handler would be interrupted.<br />

11. The IR4 handler completes execution. The final instructions of the handler issue an Endof-Interrupt<br />

(EOI) command to the 8259A module. The EOI command clears the In-<br />

Service bit IR4. This completes the servicing of IR4.<br />

12. The Priority Resolver now sees that IR6 is still pending and that no other higher-priority<br />

interrupts are pending or in-service. The 8259A module raises the interrupt request line<br />

again, starting another INTA cycle.<br />

8-8

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

Saved successfully!

Ooh no, something went wrong!