Emad Jacob Maroun

Supervisor: Peter Puschner

Compiling for Time-Predictability and Performance

 

Real-time systems require great confidence in program execution times to avoid catastrophic failures from unexpectedly high latencies. Back when computers and architectures were very simple, time-predictability was a given. However, the simplicity was not conducive to high performance, resulting in progressively more complicated designs to squeeze out every last drop of performance. Often, techniques that make processors faster on average also make it much more difficult to figure out the execution time in a specific situation; predictability is therefore lost. Real-time systems have therefore been put in a dilemma: Stick with simple|and often old|designs and lose out on performance or jump into the belly of the beast (modern, high-performance architectures) and hope you can wrangle with their uncertainties.
This research proposal aims to unite time-predictability and performance through dedicated compiler techniques that remove the uncertainty without sacrificing performance. Techniques must be developed that lock down execution times while maximizing modern real-time architectures’ per-formance. The first is a new single-path code scheduler that can take advantage of multiple-issue, very-long instruction-word architectures. We will also develop techniques to remove execution time variability caused by accessing data on a wide range of memory systems. This research will re-sult in high-performance programs that have a constant execution time. These programs will be easier for real-time system developers to incorporate into their designs without having to reach for compensatory tooling like worst-case execution time analyzers.