Within COEMS (Continuous Observation of Embedded Multicore Systems) a novel platform for online monitoring of multicore systems is developed. It gives insight to the system’s behaviour without affecting it. This insight is crucial to detect non-deterministic failures as for example caused by race conditions and access to inconsistent data.
A system-on-chip is observed using the tracing capabilites available on many modern multi-core processors. They provide highly compressed tracing information over a separate tracing port. From this information the COEMS system reconstructs the sequence of instructions executed by the processor. This sequence can then be analysed online by a reconfigurable monitoring unit. Analyse are described in a highlevel temporal stream-based specification language (TeSSLa) that are compiled to configurations of the monitoring unit. To cope with the amount of tracing data generated by modern processors the
COEMS system is implemented in hardware using an FPGA.
In comparison with existing monitoring approaches COEMS provides several advantages. Most notably the behaviour of the observed system is not affected at all. This permits the reliable observation of multi-core systems and their timing behaviour. As no trace data has to be stored systems can be monitored autonomously for extended periods of time. Furthermore, results are availe immediately and the focus of observation can be changed during runtime.