As a result, the vehicle electronics architecture will be built from a diverse set of processor cores and hardware accelerators. Application processors, such as cores based on the ARM Cortex-A family or the Intel x86 architecture, are designed to run large operating systems and frameworks (including Linux, Android or adaptive AUTOSAR). Microcontrollers and real-time processors, based on the ARM Cortex-M or Cortex-R family, Renesas RH850, Infineon Tricore and others are designed to run real-time applications, handle high interrupt loads, start extremely quickly or achieve very high reliability, supporting ASIL levels that are difficult to achieve with large application processors. They will typically be used to run classic AUTOSAR-based systems or specialized real-time operating systems.
Many vehicle functions will distribute the software modules of which they consist, on several different kinds of processors and accelerators. An ADAS algorithm will do image processing on an application processor, supported by hardware accelerators, but might use a second microcontroller to supervise the execution and ensure that safety goals are achieved. In some cases, the companion microcontroller might be on a separate hardware device, in some cases it is integrated on the same SoC (System-on-Chip).
The hardware industry offers systems-on-chip combining processing cores and accelerators, targeting specific domain controllers. Many SoCs designed for infotainment or connectivity combine multi-core application processors (often based on ARM Cortex-A) with powerful GPUs (Graphic Processing Units) and a micro-controller (e.g. based on ARM Cortex-M or Cortex-R) to run safety functions or classic AUTOSAR. Similarly, new SoCs targeting domain controllers running many driver assistance systems integrate application processors, real-time processors, microcontrollers and specialized accelerators.
VIRTUALIZATION ON APPLICATION PROCESSORS
Embedded virtualization is a technology that makes it possible to divide the resources of a processor into safely separated “virtual machines” (VMs). Each VM can run its own operating system (called the “guest operating system”), framework and applications. The “Hypervisor” is the piece of software that manages the isolation (“freedom from interference”) and controlled communication between the VMs. Application processors using e.g. the ARMv8-A architecture have built-in extensions to ensure that a Hypervisor can run very effectively and largely transparently to the guest operating system: the processor architecture has an additional execution level for the hypervisor, has added “2-stage translation” in the MMU (Memory Management Unit) and additional facilities in the interrupt handler.