The Intel x86 architecture has similar extensions. In addition, many SoC vendors have selected GPUs or added system-level components that facilitate virtualization of the on-chip devices.
This technology is already in production today. One prominent example is the so-called “Cockpit Controller” which is a domain controller driving many displays in the car and unifying infotainment functionality with a digital instrument cluster. In this case, the hypervisor makes it possible to run different software frameworks (e.g. Android for the infotainment, Linux for the instrument cluster, and a separate OS for safety-critical functions) on one SoC. The Cockpit Controller provides a more integrated user experience and is cheaper and more flexible compared to a multi-ECU approach.
VIRTUALIZATION ON MICROCONTROLLERS?
The need for virtualization on application processors, in domains such as infotainment, is due to the confluence of (1) the requirement to integrate applications with very different requirements modularly on a single processor with (2) a new generation of processors that have the computing power and hardware extensions to run these applications virtualized on a single processor using a hypervisor.
Now the same is happening in other vehicle domains relying more strongly on microcontrollers and real-time processors.
Domain controllers running on a microcontroller or real-time processor need to integrate an ever-increasing amount of software. This software is often developed according to different functional safety levels or sourced from different suppliers so that freedom from interference must be insured. In addition, as the amount of software increases, the modularity has to extend from the development process to software updates after the device has been produced: it must be possible to update one software function without the risk to affect others or the need to completely requalify the entire device.