Interrupt Concepts

Interrupts are asynchronous events that cause program execution to change to a specific location in the software application to handle the interrupting event. When processing of the interrupt is complete, program execution resumes back to the original program execution location. For example, a timer that triggers every 10 milliseconds will cause the CPU to branch to the interrupt handler, acknowledge the interrupt, and set the next 10 millisecond interval.

The interrupt controller processes incoming interrupts by masking and priority sorting to produce the interrupt signals for the processor to which it is attached.

CLINT

Core Local Interrupter (CLINT) is intended to be used to generate Machine-level timer and software interrupts for the targeted Harts in a pre-integrated core subsystem.

PLIC

Platform-Level Interrupt Controller (PLIC) is intended to be used to manage all global interrupt sources as External Interrupts to a pre-integrated core subsystem.