A low-latency vectored interrupt mode is available, which allows the Interrupt
Controller to directly supply the interrupt vector for each individual interrupt (using
the input port Interrupt_Address
). The address of each fast interrupt
handler must be passed to the Interrupt Controller when initializing the interrupt
system. When a particular interrupt occurs, this address is supplied by the Interrupt
Controller, which allows MicroBlaze to directly jump to the handler
code.
With this mode, MicroBlaze also directly sends the
appropriate interrupt acknowledge to the Interrupt Controller (using the
Interrupt_Ack
output port), although it is still the responsibility
of the Interrupt Service Routine to acknowledge level sensitive interrupts at the
source.
This information allows the Interrupt Controller to acknowledge interrupts appropriately, both for level-sensitive and edge-triggered interrupt.
To inform the Interrupt Controller of the interrupt handling events,
Interrupt_Ack
is set to:
- 01: When MicroBlaze jumps to the interrupt handler code
- 10: When the RTID instruction is executed to return from interrupt
- 11: When MSR[IE] is changed from 0 to 1, which enables interrupts again
The Interrupt_Ack
output port is active during one clock cycle, and is
then reset to 00.