Optimized Buffering for Time-Triggered Automotive Software
The development of an automotive system involves the integration of many real-time software functionalities, and it is of utmost importance to guarantee strict timing requirements. However, the recent trend towards multi-core architectures poses significant challenges for the timely transfer of signals between processor cores so as to not violate data consistency. In this light, the automotive industry has shown great interest in using the Logical Execution Time (LET) task model for designing time-triggered multi-core systems.
The objective of this project has been to develop buffering optimisation algorithms and heuristics for LET-based automotive software on multi-core architectures that reduce the memory needed for buffering (memory utilisation), the overall time to execute all tasks (processor utilisation), and the time the system takes to respond to an input (response time). The project has delivered a comprehensive set of algorithms, optimisations, and heuristics, and a selection of these have been prototyped and evaluated. Our preliminary results suggest that the prototyped algorithms and heuristics are already enough to reduce the memory needed for the buffers without harming processor utilisation. The prototyping and extensive evaluation of the remaining optimisations is ongoing work.
A key step in achieving the project objective was the adaptation of the Dynamic Buffering Protocol (DBP), to satisfy the strict timing requirements of LET, resulting in our Static Buffering Protocol (SBP) that handles data with multiple writers, identifies data writes that can be skipped without violating data-age constraints, and merges buffers that are never needed at the same time. Well-known optimisation frameworks based on mixed-integer linear programming and genetic algorithms were used to allocate tasks to cores and buffers to memories, and to statically schedule the execution of task within their LET, such that the buffer access times and task execution times are minimised. Our optimisations support cores of different execution speeds, and checks that all memories have enough space for their allocated buffers. Moreover, either our SBP protocol or the traditional Point-to-Point (PTP) protocol can be chosen for each task communication. Lastly, we proposed an approach for reducing the response time of automotive software by successively scaling down the timing parameters of all tasks until a task deadline cannot be met.