Safety and Multimedia Collide in Next

advertisement
Safety and Multimedia Collide in Next-Generation Automobiles
As experience-rich functionality proliferates in today’s automobiles so does complexity
and the likelihood that it could conflict with operation- and safety-critical software
systems. A sure means must be found to maintain secure separation and hypervisors offer
a solution.
David Kleidermacher, Green Hills Software
At last year’s CES trade show, I saw a snazzy car demo in which each rear-seat passenger
had a different high-definition movie playing on the two screens mounted on seat backs.
Neither display device had a connector – the movies were being received wirelessly.
Moreover, the movies were being streamed simultaneously from a 4G wireless
connection to the car’s internal ad-hoc wireless network. Cool stuff, especially if we
neglect the data plan bill!
Smartphones are being integrated into the car, not only for multimedia content, but also
for automotive-targeted application and services delivery and remote control. Yes, these
next-generation automotive multimedia applications are mind blowing. But they are not
limited to entertainment. Let’s have a look at what is new in the area of informatics and
safety.
My brother just bought a car with Surround View, which provides a virtual aerial display
of the car and its surroundings to aid in backing up and parking. A couple months ago,
BMW announced a new iDrive system that includes 3D mapping navigation. BMW also
recently introduced a heads-up display (HUD) with 3D augmented reality right on your
windshield.
Other Advanced Driver Assistance Systems (ADAS) include lane departure and blind
spot warnings, predictive forward sensing (a Nissan automobile looks two cars ahead for
collision avoidance), autonomous parking (after the car has dropped you off) – just to
name a few.
In a nutshell, multimedia sophistication is growing rapidly in cars, providing enhanced
user experiences - for entertainment, informatics, and safety. These electronic systems
run incredibly sophisticated software stacks, including GENIVI Linux, Android, and
Windows Car. While tremendously capable, we also know these environments represent
a world of rootkits, blue screens of death, and Patch Tuesdays.
Indeed, automotive safety applications have traditionally consisted of carefully coded
real-time software, developed to stringent quality standards and executed on simple, realtime kernels such as OSEK and AUTOSAR.
So how do automotive OEMs reconcile the need for safety with the desire for bells,
whistles, and app stores – where innovation is ultimately driven by consumer electronics
grade, rather than automotive grade, technology?
For years, automotive OEMs have sought to stovepipe and isolate the safety systems
from multimedia components and other non-safety related systems. In fact, the supply
chain in the automotive world encourages this: the OEM hires different Tier-1 suppliers
to build boxes for each individual function in the car and relies on in-car automotive
networks, such as CAN, to provide limited interactions between them. With high-end
cars reaching 100 such boxes, 200 discrete CPUs across all these boxes, and numerous
intra-vehicular networks connecting them all up, this trend has begun to reach the limit in
what can be practically developed and deployed. Electronics growth poses a significant
production cost, physical footprint, and time- to-market challenge for automotive
manufacturers.
There is another, perhaps less obvious, problem with the traditional stovepipe approach:
ultimately, it stifles the passenger experience. The cluster can only display navigation
information if the OEM’s RFPs for the cluster and navigation boxes included a specific
requirement for such an information flow. Once the boxes are deployed, other
interactions, potentially integrating and improving the overall experience of both
components, become difficult or impossible, both technically and financially.
The response to these efficiency challenges is to reverse the electronics growth trend and
instead merge disparate functions into a fewer number of electronic components. If
multiple functions can run on a single box, the physical wires become virtual wires;
software improvements affect only a single box instead of multiple boxes. The
performance and flexibility of communication within a single computer is far better than
across a vehicular network. The consolidation trend is aided by next-generation powerefficient multicore SoCs – based on ARM’s Cortex A9 and A15 - with gobs of integrated
I/O such as wireless networking and multicore GPU. Examples of these monsters include
the TI OMAP5, Freescale i.MX 6Quad, and Nvidia Tegra 3.
Processor consolidation is pushing the automotive world inexorably towards mixed
criticality systems in which safety, security, or real-time critical components must coexist
with less critical components. For example, consolidating the infotainment head-unit with
the real-time, safety-critical rear-view camera and/or driver information cluster
components can result in a mixed-criticality system, as shown in Figure 1. Nextgeneration infotainment system architecture must ensure that consolidated components
do not interact in unforeseen ways, posing a reliability risk to critical systems.
Solution: Hybrid Architecture
Open source operating systems such as GENIVI and Android are well regarded for their
adherence to the latest and greatest multimedia standards and availability of third party
applications. However, we cannot depend on the multimedia OS to control all aspects of
next-generation consolidated automotive systems. General-purpose operating systems
cannot boot fast enough, cannot guarantee real-time response, and are not reliable enough
for safety-critical functions. Therefore we need a hybrid architecture in which multimedia
operating systems and their applications can peacefully coexist with real-time, safetycritical applications. Virtualization is the obvious answer to this challenge.
Computer system virtualization was first introduced in mainframes during the 60s and
70s. Although virtualization remained a largely untapped facility during the 80s and 90s,
computer scientists have long understood many of the applications of virtualization,
including the ability to run distinct and legacy operating systems on a single hardware
platform.
At the start of the millennium, full system virtualization, hosting unmodified, general
purpose, “guest” operating systems such as Linux and Windows, was proven practical on
common PC platforms. Subsequently, hardware virtualization acceleration technologies
have become common in most major microprocessor architectures. While virtualization
may be best known for its application in data center server consolidation and
provisioning, the technology has proliferated across desktop and laptop-class systems,
and has most recently found its way into mobile and embedded environments.
The availability of virtualization technology across such a wide range of computing
platforms provides developers and technologists with the ultimate open platform: the
ability to run any flavor of operating system in any combination, creating an
unprecedented flexibility for deployment and usage.
Hypervisor Architectures
Hypervisors are found in a variety of flavors. Some are open source; others are
proprietary. Some use thin hypervisors augmented with specialized guest operating
systems. The goals of robust isolation between mixed criticality components within nextgeneration infotainment systems are achievable in Type-1 hypervisors that run on bare
metal. Type-2 hypervisors run atop a general-purpose operating system, such as
Windows or Linux, which provide I/O and other services on behalf of the hypervisor.
Because Type-2 hypervisors, fundamentally, can be no more robust than their underlying
host operating systems, which are well known to be vulnerable, they are not suitable for
safety-critical deployments and have historically been avoided in such environments.
Thus, Type-2 technology is omitted from this discussion.
Microkernels provide a superior architecture for safety than large, general-purpose
operating systems such as Linux, Android, and Windows. A microkernel runs only a
minimal set of critical system services, such as process management, exception handling,
and interprocess communication, in supervisor mode and provides an architecture that
enables complex system software to run in user mode where it is permitted access only to
the resources deemed appropriate by the system designer. A vulnerability or fault in one
component cannot cause damage to a critical component because the infected subsystem
simply does not have access to that resource. Because the microkernel is relatively
simple, it can be formally verified and certified by independent regulators to the highest
levels of safety. Microkernels can therefore be used to implement system virtualization.
The microkernel-based Type-1 hypervisor architecture is shown in Figure 2. Green Hills
Software’s INTEGRITY Multivisor is an example of this technology.
CPU hardware virtualization assistance has been a key factor in the growing adoption of
full virtualization throughout the computing world. Typical features include a true
hypervisor mode that enables unmodified guest operating systems to execute with
reduced privilege. For example, the CPU will prevent a guest operating system from
referencing physical memory beyond what has been allocated to the guest’s virtual
machine. In addition, hardware virtualization enables selective exception injection, so
that hypervisor-defined classes of exceptions can be handled directly by the guest
operating system without incurring the overhead of hypervisor software interposing. The
TI OMAP5 and its automotive derivatives are an example of multicore ARM processor
that includes hardware support for virtualization known as ARM VE—ARM
Virtualization Extensions .
The microkernel also provides an applications programming interface (API) and software
development kit (SDK), enabling the creation and deployment of safety-critical
applications (including those that follow automotive standards such as OSEK) that must
meet hard real-time, safety-critical, or other stringent requirements that cannot be
relegated to a general-purpose guest.
In many of the aforementioned next-generation multimedia-rich safety systems, the
microkernel must be capable of hosting its own sophisticated graphics environment,
distinct from the general purpose OS used for head unit activities. For example, 3D
graphics are required to implement high-end safety-critical applications in clusters and
heads-up displays. Therefore, the microkernel provides an OpenGL subsystem optimized
for the on-chip GPUs found in common multicore application processors.
The microkernel is the only software that runs in the microprocessor’s most privileged
mode (e.g. hypervisor mode). Guest operating systems and their constituent applications
execute in a de-privileged mode, untrusted from microkernel’s perspective.
Applying the microkernel Type-1 hypervisor architecture to the aforementioned mixed
criticality infotainment system consisting of the main infotainment OS, MeeGo, and
safety-critical applications for rear-view camera and driver information cluster results in
the architecture shown in Figure 3:
Next-generation system software architectures are required in order to ensure that future
multimedia-rich automotive systems are delivered with the reliability, safety, real-time
performance, and controlled footprint that the automotive industry and consumers alike
demand. Future in-car systems will see a convergence of safety-critical functionality with
traditional telematics and digital entertainment applications. Bringing these capabilities
onto a single compute platform is critical in order to minimize size, weight, power and
production cost and, ultimately, to deliver the best possible user experience. However,
doing this safely requires a new systems architectural approach, at the base of which is a
microkernel-based hypervisor that can isolate and manage real-time, safety, and securitycritical applications alongside powerful open source multimedia operating systems.
Green Hills Software, Santa Barbara, CA. (805) 965.6044. [www.ghs.com]
Download