Model Element Scheduler for Execution Time Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face challenges in optimizing execution times for embedded, real-time software models, leading to poor processor utilization, task overruns, and difficulties in visualizing sequencing, which can result in inefficient resource use and timing constraint violations.
Innovation Solution
A scheduler is introduced that optimizes the execution of model elements by offsetting their execution times, ensuring equivalent behavior across simulation, processor-in-the-loop, and real-time modes, maximizing processor utilization and preventing overruns, while avoiding preemptive multitasking to maintain predictability and integrity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If manual integration of model elements into a custom scheduler is used, then flexibility in scheduling is improved, but device complexity and difficulty of operation increase
Solution Approach 1:
The system automatically generates the custom scheduler code from the model elements without requiring manual programming. The scheduler generation process self-services by analyzing the model structure and producing optimized scheduling code, eliminating the need for engineers to manually integrate model elements while maintaining scheduling flexibility.
Solution Approach 2:
The manual mechanical process of integrating model elements into a scheduler is replaced by an automated code generation system. The system substitutes human effort with algorithmic processing that automatically analyzes model elements and generates optimized scheduler code, reducing complexity while maintaining adaptability.
2Productivity
If execution times are not optimized, then ease of operation is maintained, but productivity and reliability deteriorate due to poor processor utilization and task overruns
Solution Approach 1:
The system performs preliminary analysis of model elements and their execution requirements before generating the scheduler code. By pre-calculating execution times and dependencies during the model compilation phase, the system optimizes processor utilization without adding runtime complexity, preventing task overruns through advance planning.
Solution Approach 2:
The system automatically adjusts scheduling parameters such as execution time allocations and task priorities based on the analyzed model structure. By dynamically changing these parameters during code generation, the system optimizes productivity while keeping the operational interface simple, as the optimization occurs in the code generation phase rather than requiring complex user configuration.
3Productivity
If preemptive multitasking is used to improve processor utilization, then productivity increases, but reliability and predictability decrease
Solution Approach 1:
Instead of using preemptive multitasking to improve processor utilization, the system inverts the approach by generating optimized sequential or cooperative scheduling code that maintains predictability. The code generation process analyzes dependencies and schedules tasks to maximize utilization without preemption, achieving productivity gains through smarter scheduling logic rather than preemptive mechanisms.
4Loss of time
If maximum execution times are not constrained, then ease of operation is maintained, but loss of time increases due to inefficient resource use
Solution Approach 1:
The system performs preliminary calculation of maximum execution times during model compilation, establishing time constraints before runtime execution. By pre-determining execution time budgets for each task based on model analysis, the system eliminates time waste without requiring complex runtime monitoring, as the optimization is embedded in the generated code structure.
Data Source
AI summary
A device receives a model that includes model elements scheduled to execute in time slots on a hardware device. The device identifies time slots, of the time slots, that are unoccupied or underutilized by the model elements, and identifies a set of model elements that can be moved to the unoccupied time slots without affecting a behavior of the model. The device calculates a combined execution time of the model elements, determines whether the combined execution time of the model elements is less than or equal to a duration of a first time slot of the time slots, and schedules the model elements for execution in the first time slot when the combined execution time of the model elements is less than or equal to the duration of the first time slot.


