Automotive software systems need to be highly efficient, respect real-time requirements, and comply to high safety and resource constraints. Recently, new application scenarios, such as autonomous driving and all its implications, demand more and more computing power and were one of many reasons for the introduction of multi-/many-core microcontrollers in the automotive domain. Multi-core ECUs are more powerful, significantly cheaper as multiple ECUs, and even help to reduce weight and energy consumption. Additionally, it introduces real parallel processing to automotive systems - allowing for even more computation power. To harness all the advantages of multi-/many-core systems, engineers have to face additional challenges, like increased design space complexity in a highly collaborative and distributed development environment (i.e. AUTOSAR), as well as the application of non-parallel legacy software to a parallel real-time platform.
Mobile is everywhere! No other domain provides systems, which are such an integral part of our life. Mobile is also a complex event-driven embedded software on highly integrated multi-/ and many-core execution units with opposing requirements, like rigid energy efficiency and high performance needs. To manage those requirements, resulting in i.e. highly dynamic load scenarios with strong mode-dependency in applications, engineers can use the flexibility of global (energy frequency scaling) scheduling to balance between high computation power and energy efficiency.
Avionic software systems are driven by the highest quality and safety standards. In contrast to the automotive and mobile domain, which include big parts of event-driven applications, avionic systems often follow a time and a space partitioning scheme. With the introduction of multi-/ and many-core systems, the avionic industry is facing the challenge to guarantee the same rigid standards used with multi-processor systems and legacy software. Designing and analyzing the static and dynamic behavior of the (distributed) system and providing comprehensive reports demands a lot of additional effort from engineers in this domain.
Industrial & Medical Automation
The automation domain, regardless of its application, combines most of the requirements of the automotive, mobile, and avionic domain. The utmost safety and quality standards in medical applications with deterministic software systems or maximum throughput in the industrial automation, multi-core technology provides both with additional computation power for extra performance or even allows for additional measures on functional safety of the system. To harness the new possibilities of multi-core engineers in these domains need to meet the challenges on parallel computation and software design.