This work package establishes the necessary link between predictabilities at the hardware level and the source-code level. To reduce the variance of memory-access times, memory hierarchies with reduced access time variance will be supported by the compiler developed in this work package. In particular, compiler support for scratchpad memories and software-controlled caches will be implemented. The focus will be on exploring the combined effect of architectural, compiler and operating system techniques on predictability and efficiency. A tight integration of compiler, source-code analysis, and a timing analysis tool will perform multi-objective optimisation regarding several cost functions.
Fully dynamic memory hierarchy allocation very similar to today’s caches serves as the initial reference for a comparison. As a first step towards improving over this initial reference, support of scratchpad memories will be implemented. A fully static design fixed at compile-time that maps data and code to the scratchpad is expected to lead to high predictability. The support of dynamic decisions at runtime changing the memory allocation between statically precomputed Pareto-optimal design points will be realised in a next step. These concepts will be adapted to caches afterwards. Integration with the work in WP3 will be done since the scratchpad is part of the process context and must be saved/restored at context switching time.
WP2 will be evaluated using a demonstrator consisting of a typical single-task real-time application provided by one of the industrial partners. It will be passed through the compiler developed in this work package. First, the average and worst-case execution times of the application will be derived without applying any compiler optimisations. This data serves as a baseline for the optimisations applied in the following. After that, the compiler optimisations for timing predictability are applied for different memory hierarchies. To quantify the benefit of these optimisations, improvements in WCET and other criteria achieved by the optimisations will be measured and compared to the values generated without applying optimisations.