Multitasking Onboard System Interrupt Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Time-triggered systems face challenges in reducing processor load and ensuring real-time responsiveness due to delays in recognizing state changes of peripheral devices, particularly when managing multiple clock domains and asynchronous events, leading to increased costs and inefficiencies.
Innovation Solution
A method that enables deterministic or quasi-deterministic multitasking by using interrupt-driven processing operations across multiple clock domains, allowing for immediate execution of tasks based on interrupt occurrences and synchronization between tasks in different clock domains, while maintaining predictable computation load and data consistency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If polling method is used to observe peripheral device state changes, then real-time responsiveness is improved, but processor load increases
Solution Approach 1:
Instead of actively polling peripheral devices to detect state changes (traditional approach), the invention inverts the approach by having peripheral devices autonomously notify the processor when state changes occur through interrupt signals. This passive event-driven approach eliminates the need for continuous active polling, thereby reducing processor load while maintaining immediate responsiveness to state changes.
Solution Approach 2:
The peripheral devices are empowered to self-serve by autonomously generating interrupt signals when their state changes, without requiring the processor to continuously query them. This self-notification mechanism allows the system to respond immediately to events while freeing the processor from the burden of continuous polling operations.
2Speed
If polling frequency is increased to reduce delay, then responsiveness is improved, but processor load increases
Solution Approach 1:
The invention inverts the traditional polling approach by switching from processor-initiated active querying to peripheral-initiated passive notification. Interrupt-driven processing allows the system to achieve maximum responsiveness (instant response to state changes) without the need for increased polling frequency, as the processor is notified immediately when events occur rather than waiting for the next polling cycle.
Solution Approach 2:
The invention replaces periodic polling actions with event-triggered interrupt actions. Instead of the processor periodically querying peripheral devices at fixed intervals, the system transitions to an event-driven model where processing occurs only when necessary (when a state change actually happens), thereby eliminating wasted processing cycles during periods when no events occur.
3Adaptability or versatility
If multiple polling loops are used to manage multiple peripheral devices, then coverage is improved, but processor load increases
Solution Approach 1:
The invention implements a universal interrupt handling mechanism that can serve multiple peripheral devices through a common interrupt controller and standardized interrupt service routine framework. Instead of requiring separate polling loops for each device, the system uses a multi-functional interrupt system where a single interrupt controller manages notifications from multiple sources, and a unified interrupt handling architecture processes events from any peripheral device, thereby reducing the overall processor load while maintaining comprehensive device management capability.
Data Source
AI summary
A method for executing an application in a multitasking system is provided. The application is composed of at least one task for which the temporal triggering is specified in a first temporal reference frame that is asynchronous relative to the physical time, called first external clock domain, defined by a synchronous basic clock with changes of state of a peripheral device of the system. The method comprises a set of steps executed by the system upon reception of an occurrence of an interrupt in order to render the execution of the task deterministic or quasi-deterministic.


