We conduct research on design and analysis problems at the boundary between hardware and software.

Our recent work focuses on the following topics:

Microarchitectural Security

Microarchitectural attacks compromise security by exploiting software-visible artifacts of microarchitectural optimizations like caches and speculative execution. To use modern hardware securely, programmers must be aware of how these optimizations impact the security of their code.

In this context, we work on

Timing Predictability

Real-time systems have to meet deadlines imposed by the physical environment. E.g. an airbag controller needs to detect a crash and decide to fire the appropriate airbags within a few milliseconds. For safety-critical real-time systems, we need to prove that all deadlines are guaranteed to be met. To this end, worst-case execution time (WCET) analysis [10] determines upper bounds on programs' execution times. In modern systems, the execution time of software heavily depends on the state of the underlying hardware. This means that caches, pipelining, speculative execution all need to be taken account in WCET analysis.

In this context, we work on

Performance Analysis and Understanding

Modern microarchitectures are some of the world's most complex man-made systems. As a consequence, it is increasingly difficult to predict, explain, let alone optimize the performance of software running on such microarchitectures.

In this context, we work on