Visible to Intel only — GUID: how1741138431287
Ixiasoft
Visible to Intel only — GUID: how1741138431287
Ixiasoft
4.3.11.1.3.2. Machine Next Interrupt Handler Address and Interrupt Enable Register (mnxti)
The mnxti CSR improves the performance of handling back-to-back software vectored interrupts. It does this by avoiding the overhead of additional interrupt pipeline flushes and redundant context save/restores for these back-to-back software vectored interrupts. The mnxti CSR is intended to be used inside an interrupt handler after an initial interrupt has been taken and mcause and mepc registers have been updated with the interrupted context and the ID of the initial interrupt.
The value returned by a CSR read of mnxti is the non-zero address of the CLIC vector table entry when there is a suitable pending interrupt. Otherwise, zero is returned. For a pending back-to-back interrupt to be considered, it must fulfil the following conditions:
- It is a software vectored interrupt
- It has a level greater than the saved interrupt level (held in mcause.mpil)
- It has a level greater than the interrupt threshold (held in mintthresh)
Based on the CSR instruction, the processor behaves differently when assessing mnxti CSR.
Processor Behaviours | Condition | List of CSR Instructions |
---|---|---|
|
CSR instruction includes write |
|
Returns a pointer to the trap handler entry | CSR instruction does not include write | CSRR |
Reserved | N/A |
|