Skip to main content

Continuous Observation of Embedded Multicore Systems

Periodic Reporting for period 2 - COEMS (Continuous Observation of Embedded Multicore Systems)

Reporting period: 2018-05-01 to 2020-04-30

"The main tool for understanding and controlling physical phenomena is observability. The invention of the telescope by Lipperhey and its reproduction by Galilei in the 17th century, for example, meant a revolution to astronomy. In medicine, the findings by Roentgen allow us to look into the human body, without affecting it, and thereby identifying many causes of medical problems. The list of such game-changing inventions and tools can be extended further by electron-scan microscopes, EEG, DNA analysis etc.

Likewise, the ability to observe the internals of an execution of a computer-based system is a fundamental requirement for ensuring correctness and safe behaviour. The goal of the COEMS project is to develop novel observation techniques for embedded multi-core systems that allow for the observation and simultaneous correctness checking of system internals at a level of detail that is orders of magnitude better than it is possible today. The main objective of the COEMS project is to build a novel observer platform with supporting verification methods for embedded multicore systems.

For verification of systems, static and dynamic techniques are used today. While static verification is extremely powerful dynamic analysis is a key technique as because a final analysis and verification on the target platform will always be necessary – and COEMS focuses on such (final) dynamic analysis and verification. The current practice for verifying system behaviour is to use both extensive logging annotations, and a step-by-step oriented debugger to check the execution of the system. Any kind of code annotation has an effect on the overall timing of the system and may thus influence also the
functional behaviour - hence its safety. In the space and railway industry, therefore, the rule ""run what you test and test what you run"" is strictly followed by leaving all code annotations in the final system. In many domains like the automotive domain, market constraints disallow, for performance reasons, log information to be present in the resulting system. Then, the tested system is not identical with the final product and especially timing bugs may abound in the final system that could not occur in the tested system. Especially when using multi-core systems as an underlying execution platform current verification techniques reach their limit."
The COEMS project is split into two phases. The first phase aimed at providing the basic technology, the second at completing the technology and making adaptions based on the gained experience.

During the first 18 months the following work items have been completed: Requirements for the COEMS hardware and tooling have been collected by the industrial partners and guidelines for tool qualification for the avionics and railway domain have been documented. A first estimation of the economic impact of the technology has been carried out. A first edition of the COEMS hardware has been designed and produced and the corresponding FPGA-designs have been developed. Furthermore, the monitoring specification language has been designed and respective tools, i.e. a compiler and interpreter, have been
developed and tested in combination with the hardware. A static analyzer that is required to support the more complex use-cases as race detection has been developed. The prototypes for demonstration of the COEMS technology for the avionics and railway domain have been defined. As the COEMS project aims to provide technology ready for industrial application, a first version of a training suite has been provided. The training suite comprises tutorials to apply the COEMS technology to solve practical problems an software engineer might encounter.

During the second half all components have been improved based on the gained experience. The feature set of the COEMS-hardware has been extended to allow tracing of processes in a full Linux operating system. Its event processing capabilities have been improved for more efficiency and larger specifications. The COEMS tools have been adapted to the hardware modifications and their efficiency and usability has been improved. The monitoring specification language has been extended by facilities to specify observable events of a program and a corresponding instrumentation tool has been developed.Furthermore the training material has been completed, now providing several practical tutorials on how to use the COEMS technology.

Multiple demonstrators have been built by the industrial partners covering different systems from the avionic and railway domain. The effectiveness of the COEMS technology has been validated using these demonstrators.

These results have been disseminated via scientific publications, newsletters, social media, press-releases and by presentation at various conferences and fairs. Industrial experts have directly been contacted via industrial presentations and inhouse workshops to disseminate the results of COEMS directly into the relevant European industries.
In COEMS an observation system for embedded multi/many-core computing systems has been developed. It provides a game changing tool that increases the productivity in developing and maintaining such systems. Hence, COEMS will foster European development and increase the competitiveness of European companies.

Scientific Impact: We see COEMS scientific impact in the area of Software tests, Debugging, Performance Optimization, Runtime Verification and Software Engineering Research.

Industrial Impcat: Because debugging and testing are the most time-consuming tasks, industry profits from the new observation capabilities provided by COEMS and its reduction or elimination of current limitations. The proposed approach will shorten development cycles, improves the chances of project success, lowers overall costs and is a contributing factor to a product’s reliability. Impact on safety-critical applications (avionics, railway, medical) Safety-critical applications in any field rely on arguments generated with a formal qualification process for its software to work predictably and robustly within their specified boundaries.

Economical Impact: Testing and debugging tasks accounts for 50 % or even more of development costs. Thus, any improvement of efficiency of developers directly translates into increased revenue. Additional costs will be caused by remedying issues that occur in the field, opportunity costs of software products that are delayed and/or cancelled due to bugs (40 % of all embedded software development projects are behind schedule), consequential damage to software companies' reputations due to bugs in released software and delays and cancellations of software projects.

Social Impact: From today's perspective, the step from single core to multi-core computing systems is the only solution to meet the demand for continuously increasing computing performance at decreasing power consumption. Furthermore, increasing embedded systems performance enables new or improved solutions for reducing fuel consumption, making home automation more efficient or decrease the power consumption of computing systems. As a fundamental building block in the process towards multi-core architectures, the COEMS approach is an indirect but fundamental contributor for reducing accidents and
CO2 emissions due to increased safety and efficiency, respectively.