Interrupt Controller Clustering for Low-Power Core Wake-Ups
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Interrupts and exceptions in processors continuously waking up processing cores to service individual events consume high power, particularly in low-power applications like cellular phones and IoT devices.
Innovation Solution
Implementing an interrupt controller that clusters interrupts and exceptions using external event groups, allowing for efficient power management by delaying or batching interrupts based on conditions and sleep states.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If interrupts are sent directly from the interrupt controller to processing cores, then interrupt response time is reduced, but power consumption increases due to continuous core wake-ups
Solution Approach 1:
The interrupt controller pre-processes and clusters multiple interrupt requests before forwarding them to the processing core. By accumulating interrupts in a buffer and evaluating clustering conditions (such as interrupt type, priority, and temporal patterns), the controller prepares grouped interrupt batches in advance, reducing the frequency of core wake-ups while maintaining acceptable response times for high-priority interrupts.
Solution Approach 2:
The interrupt controller acts as an intermediary between the interrupt sources and the processing core. It introduces a clustering mechanism that sits between the raw interrupt requests and the core, filtering and grouping interrupts based on predefined conditions. This intermediary layer allows the system to balance between rapid interrupt response and power savings by controlling when and how interrupts are forwarded to the sleeping core.
2Use of energy by moving object
If processing cores are placed in sleep state to improve power utilization, then power consumption is reduced, but interrupt handling latency increases
Solution Approach 1:
The system performs preliminary clustering of interrupt requests in the interrupt controller before the core needs to wake up. By pre-grouping interrupts that can be handled together and evaluating their urgency, the system minimizes the time the core needs to remain awake, thereby reducing overall latency while maintaining sleep state benefits.
Solution Approach 2:
The interrupt clustering mechanism operates periodically, accumulating interrupts over time windows and forwarding them in batches. This periodic operation allows the core to remain in sleep state for extended periods, waking up only when a cluster of interrupts reaches the forwarding threshold, thus balancing power savings with acceptable interrupt handling latency.
3Productivity
If individual interrupts are serviced immediately, then system responsiveness is improved, but power efficiency deteriorates in low-power applications
Solution Approach 1:
The interrupt controller merges multiple individual interrupt requests into clustered groups based on evaluation conditions such as interrupt priority, type, and temporal proximity. By combining several low-priority interrupts into a single clustered interrupt event, the system maintains productivity for critical functions while dramatically improving power efficiency by reducing the number of times the processing core must wake up from sleep state.
Data Source
Figure 1
Figure 2A~2B
Figure 3A~3B
AI summary
Systems or methods of the present disclosure may provide for interrupt clustering using a processor and/or system on a chip. An interrupt controller includes an input terminal configured to receive an interrupt request and an output terminal configured to output an interrupt based on the interrupt request. The interrupt controller also includes detection circuitry configured to detect whether a threshold number of interrupt requests have been received by the interrupt controller for an external event group. The interrupt controller also includes holding circuitry configured to hold release of the interrupt and to release the held interrupts after the external event has been received by the interrupt controller.