Multicore and virtualization in automotive environments
New driver assistance systems, digital instrument clusters, and head units with infotainment all require advanced computing power inside the vehicle. The current generation of automotive CPUs is simply not up to the task anymore - the time has come for more powerful processors.
At the same time, the growing number of hardware components is at odds with the declared goal of the automotive industry to produce lighter, more fuel-efficient vehicles. In this context, high-performance multicore processors are becoming popular in the automotive industry. In order to unfold their full potential, however, multicore processors need to be accompanied by matching software concepts. One approach that has proven very successful in this regard is virtualization technology.
Multicore Systems in Computers
Automotive manufacturers are seeking to reduce the size, weight, and complexity of the hardware used in vehicles, but at the same time they want to offer more and more electronic features. Reconciling these diverging trends is one of the industry's most pressing challenges.
The most suitable solution concepts, perhaps, can be found in the areas of data processing and consumer electronics. Here, the ever-growing demand for more performance, lower costs, and more compact dimensions is being met through the use of multicore processors.
A multicore processor consists of a chip with several processing units (cores). The most common multicore systems employ either two or four cores, which make use of the same memory and peripheral devices (such as hardware-based graphics acceleration).
These processors were developed in response to the existing single-core processors having arrived at their physical limits. "The only way to increase a system's performance is therefore not to increase the maximum computing power as such, but rather to increase the processor's throughput by employing multiple independent cores." (Robert Hilbrich )
In consumer electronics, multicore systems have become commonplace. Advanced user interfaces with high-resolution graphics, 3D images and video content, as well as increasingly sophisticated applications, are requiring extreme amounts of computing power. Because of this, multicore development has been a top priority in this industry for some years now. Today's tablets and smartphones are also predominantly based on multicore processors.
Multicore Technology in Cars
As end users are becoming familiar with apps and performance offered to them by consumer electronics, automotive manufacturers need to provide the same experience. Advanced driver assistance systems, digital instrument clusters and head units therefore need to be based on very powerful processors.
Automotive platforms are increasingly starting to use highly-integrated Systems-on-Chips (SoCs) with integrated multicore processors. This trend is likely to increase in the future. The availability of extensive computing power, together with the ever-increasing affordability of such systems, is leading to conceptual shifts in the automotive applications universe. For the vehicles of the future, a fundamental rethink of domain architectures may be just around the corner.
The introduction of multicore processors into automotive electronics, then, seems inevitable. Of course, such a shift on the hardware level needs to be accompanied by matching software development. There are three main points to be taken into consideration in order for multicore architectures to be used efficiently in the future in the automotive sector:
- Separation of functions and mixed-criticality support: Different functions need to be able to run simultaneously (in so-called partitions) without affecting each other. In the case of functions that are safety critical, these need to be able to run alongside non-safety-critical functions without their safety characteristics being compromised.
- Multi-OS support and integration: Because different functions are best served by different operating systems (e.g., AUTOSAR (AUTomotive Open System ARchitecture) for safety-critical functions, GenIVI Linux for automotive infotainment, Android for user apps), the multicore system needs to be able to run multiple operating systems at the same time. The main considerations here are flexibility, and the ability to run widely different operating systems.
- Efficient shared use of SoC resources: Different functions make use of the same dedicated system resources. Examples for this include accelerated graphics from different integrated functions, or the shared use of communication channels. This requires the software design to facilitate efficient resource sharing.