Multicore for RealTime and Safety Critical Software: Avoid the Pitfalls

Dr. Fridtjof Siebert, Dr. James J. Hunt


3 May 2011
MultiCore Expo - The 6th Annual Multicore Developers Conference 2011, San Jose, CA, USA



The move towards multicores is so strong that real-time and safety-critical applications will make use of multicores and have to adapt to the rules dictated by multicore hardware, while off-the-shelf multicore hardware is optimized for average-case throughput. This talk focusses on the impact this move to multicores has on real-time and safety-critical code. The software developer has to be aware of the effects of cache structures and memory models to understand the consequences on performance and correctness of his code. The effects range from unpredictable performance degradation to severe software failures. Remedies presented include the usage of processor affinities and an in-depth understanding and use of the memory model of the selected programming language.

Multicore systems have become the norm for desktop computer systems. The percentage of multicore systems in the embedded domain is still marginal, but growing at an incredible pace such that multicore will become the norm in the embedded area as well. However, embedded systems have additional requirements with respect to safety, reliability, real-time behaviour, etc. The use of parallel multicore systems introduces new challenges to the embedded systems developers who has to fulfil these requirements when developing new software or porting existing code to multicore systems.

Download: PDF icon PDF