Interrupts belong to two classes:
- Program interrupts or traps result from exception conditions detected during fetching and execution of specific instructions
- illegal opcodes, numerical errors such as overflow, or
- part of normal execution, e.g., page faults.
- External interrupts are caused by sources outside of the currently executing instruction stream
- I/O interrupts and timer interrupts.
- For such interrupts restarting from a precise processor state should be made possible.
When an exception condition can be detected prior to issue, then instruction issuing is simply halted and the processor waits until all previous issued instructions are retired.
Processors often have two modes of operation:One mode guarantees precise exception and another mode, which is often 10 times faster, does not.