Predictable Cache Coherence
Tasks on a multicore often need to share data, for example readings from the same sensors. Hardware cache coherence lets cores cache shared data privately and keeps the copies consistent, which gives high performance. For real-time and safety-critical systems, though, the coherence protocol has to come with a worst-case latency (WCL) bound for every memory request. Many earlier real-time approaches avoided the problem by not caching shared data, or by not running tasks that share data in parallel.
This project designs coherence protocols and hardware that allow simultaneous, predictable access to shared data, and analyzes their WCL.
- Predictable MSI (PMSI). Our first protocol augments the classic MSI protocol with transient states and minimal architectural changes, so that WCL bounds can be derived. The analysis shows that coherence latency grows quadratically with the number of cores, so coherence effects must be accounted for in latency bounds. A later journal article develops this design further.
- Mixed-criticality systems. HourGlass and PENDULUM are time-based coherence protocols that let tasks of different criticalities access shared data simultaneously and predictably. CARP is a criticality-aware protocol for communication between critical and non-critical tasks that keeps non-critical tasks from interfering with the safety requirements of critical ones.
- Tighter bounds. A formal framework captures why existing predictable coherence mechanisms have high WCL, and guides micro-architectural and protocol changes that achieve both tight WCL and high performance.
- Protocol synthesis. SYNTHIA is an open tool that automatically constructs predictable, high-performance snooping-bus protocols, including their transient states, from simple specifications of MSI, MESI and MOESI.
- Hardware. MapleBoard is a set of open-source hardware tools: a domain-specific language for specifying coherence protocols and synthesizing their hardware, and a real-time multicore platform that integrates them. It showed that a dedicated bidirectional data bus gives lower WCL bounds than prior predictable coherence protocols.
- Scaling up. Snooping-bus protocols are limited to about four or eight cores. Ditty is a predictable directory-based protocol whose WCL bounds are comparable to bus-based ones, prototyped on an FPGA and publicly released.
- Beyond the cores. PASoC extends predictable coherence to fully and one-way coherent hardware accelerators on a shared memory bus. PPP lets out-of-order cores keep multiple memory requests in flight while respecting the memory consistency model and preserving the WCL.
Coherence also shapes the design of the shared last-level cache; see Predictable Shared Last-level Caches.