Achieving its ambitious targets will grant HERCULES a unique position in the real-time embedded market, where most of the industrial players are struggling to enhance application functionalities without sacrificing predictability. Notably, no similar product or service is available in the market to achieve real-time capabilities on the cutting-edge hardware technologies addressed in this project. Only few RTOS’s claim an efficient support for multi-core systems. By using HERCULES programming model and underlying RTOS support, applications will be able to run on heterogeneous multi-core systems in a hardware-agnostic way, allowing a “write once, run anywhere” approach that maximizes code portability and reuse. This capability is key to reduce the time-to-market, reducing at the same time the occurrence of performance and implementation pitfalls in the application development.
The target of HERCULES is to realize a framework that brings to practice some of the most promising research methods and techniques to provide real-time guarantees to executing applications. The “hardness” of such guarantees will be established during the project execution, with the intention of achieving the highest possible integrity level, compatibly to the project timespan. In other words, HERCULES real-time systems will be as hard as possible, given the limits of the available technological solutions and selected hardware and software baselines based on using Linux, COTS platforms and standard programming models. The hardness of the guarantees provided will be established by means of a sound schedulability analysis, trading-off timing precision with performance if needed.
Typical certification requirements for the timing integrity of the system will be taken into account when establishing and implementing the adopted execution models, isolation mechanisms, RTOS’s, scheduling algorithms and related schedulability analysis. This will include:
1. bound and profile the memory- and communication-related interference among the cores;
2. reduce unpredictable mechanisms in the execution model and RTOS;
3. implement shared resource protocols that allow avoiding deadlocks and race conditions;
4. achieve a proper timing isolation among different sub-systems (host and accelerators);
5. design lightweight runtimes with bounded and predictable offloading overhead;
6. enforce execution mechanisms to guarantee a granted share of memory bandwidth to critical activities;
All above design guidelines will allow the framework implementation to lend itself to an easier timing and schedulability analysis. We believe that the proposed scheduling methods and execution models, along with the related schedulability analysis, will provide meaningful material and evidences to allow starting pre-certification activities for at least a restricted subset of time-critical applications running on HERCULES framework.