Real World Multicore Embedded Systems || System Virtualization in Multicore Systems

Download Real World Multicore Embedded Systems || System Virtualization in Multicore Systems

Post on 08-Dec-2016

218 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • CHAPTER 7

    System Virtualization in MulticoreSystems

    David KleidermacherChief Technology Officer, Green Hills Software, Inc., Santa Barbara, CA, USA

    Chapter OutlineWhat is virtualization? 228

    A brief retrospective 230

    Applications of system virtualization 231Environment sandboxing 231

    Virtual appliances 232

    Workload consolidation 232

    Operating system portability 233

    Mixed-criticality systems 233

    Maximizing multicore processing resources 233

    Improved user experience 233

    Hypervisor architectures 234Type 2 234

    Type 1 235

    Paravirtualization 236

    Monolithic hypervisor 237

    Console guest hypervisor 237

    Microkernel-based hypervisor 238

    Core partitioning architectures 239

    Leveraging hardware assists for virtualization 241Mode hierarchy 241

    Intel VT 242

    Power architecture ISA 2.06 embedded hypervisor extensions 243

    ARM TrustZone 244

    ARM Virtualization Extensions 246

    Hypervisor robustness 246SubVirt 247

    Blue pill 247

    Ormandy 247

    Xen owning trilogy 247

    VMwares security certification 248

    227Real World Multicore Embedded Systems.

    DOI: http://dx.doi.org/10.1016/B978-0-12-416018-7.00007-9

    2013 Elsevier Inc. All rights reserved.

  • I/O Virtualization 249Peripheral virtualization architectures 249

    Emulation 249

    Pass-through 250

    Mediated pass-through 253

    Peripheral sharing architectures 253

    Hardware multiplexing 253

    Hypervisor software multiplexing 254

    Bridging 254

    Dom0/console guest 255

    Combinations of I/O virtualization approaches 255

    I/O virtualization within microkernels 255

    Case study: power architecture virtualization and the freescale P4080 257Power architecture hardware hypervisor features 257

    Power architecture virtualized memory management 260

    Freescale P4080 IOMMU 261

    Hardware support for I/O sharing in the P4080 262

    Virtual machine configuration in power architecture 263

    Example use cases for system virtualization 263Telecom blade consolidation 264

    Electronic flight bag 264

    Intelligent Munitions System 264

    Automotive infotainment 265

    Medical imaging system 266

    Conclusion 266

    References 267

    What is virtualization?

    With respect to computers, virtualization refers to the abstraction of

    computing resources. Operating systems offer virtualization services by

    abstracting the details of hard disks, Ethernet controllers, CPU cores, and

    graphics processing units with convenient developer APIs and interface,

    for example file systems, network sockets, SMP thread scheduling, and

    OpenGL. An operating system simplifies the life of electronic product

    developers, freeing them to focus on differentiation.

    Of course, this environment has grown dramatically up the stack. Instead

    of just providing a TCP/IP stack, embedded operating systems are

    increasingly called on to provide a full suite of web protocols, remote

    management functions, and other middleware algorithms and protocols.

    228 Chapter 7

  • Furthermore, as multicore SoCs become more widespread, application

    and real-time workloads are being consolidated so the operatingsystem must support general-purpose applications while responding

    instantly to real-time events and protecting sensitive communications

    interfaces from corruption.

    In essence, the typical operating system abstractions files, devices,network communication, graphics, and threads are proving insufficientfor emerging multicore embedded applications. In particular, developers

    need the flexibility of abstracting the operating system itself. The

    networking example of control- and data-plane workload consolidation,

    with a Linux-based control plane and a real-time data plane, is but one

    use case. Mixed criticality applications are becoming the norm; a

    general-purpose operating system with its sophisticated middleware and

    open source software availability is being combined with safety,

    availability, security, and/or real-time critical applications that benefit

    from isolation from the general-purpose environment.

    System virtualization refers specifically to the abstraction of an entire

    computer (machine), including its memory architecture, peripherals,

    multiple CPU cores, etc. The machine abstraction enables the execution

    of complete general-purpose guest operating systems. A hypervisor is the

    low-level software program that presents and manages the virtual

    machines, scheduling them across the available cores. The hypervisor

    appropriates the role of SoC hardware management traditionally

    relegated to the operating system and pushes the operating system up

    into the virtual machine. The guest operating systems are permitted to

    access resources at the behest of the hosting hypervisor.

    This chapter is dedicated to the discussion of system virtualization in

    embedded systems, with an emphasis on modern multicore platforms. To

    capture theoretical multicore processor performance gains, the first

    obvious approach is to use fine-grained instruction-level or thread-level

    parallelism. The approach has been the subject of research and

    investment for years with parallelizing compilers, parallelprogramming languages (and language extensions, such as OpenMP),

    and common operating system multithreading. These fine-grained

    parallelization approaches have achieved limited success in unlocking

    System Virtualization in Multicore Systems 229

  • the full potential of multicore horsepower. However, it has been realized

    that embedded system architectures in the telecommunication,

    networking, and industrial control and automation segments are already

    naturally partitioned into data, control, and management planes. This

    separation has driven strong interest amongst original equipment

    manufacturers (OEMs) to map the entire system to a multicore system-

    on-chip (SoC) in a manner that simply integrates the previously stand-

    alone functions onto a single device. System virtualization is the obvious

    mechanism to realize this mapping.

    A brief retrospective

    Computer system virtualization was first introduced in mainframes

    during the 1960 s and 70 s. Although virtualization remained a largely

    untapped facility during the 80 s and 90 s, computer scientists have

    long understood many of the applications of system virtualization,

    including the ability to run distinct and legacy operating systems on a

    single hardware platform.

    At the start of the millennium, VMware proved the practicality of full

    system virtualization, hosting unmodified, general-purpose guest

    operating systems, such as Windows, on common Intel Architecture

    (IA)-based hardware platforms.

    In 2005, Intel launched its Virtualization Technology (Intels VT), which

    both simplified and accelerated virtualization. Consequently, a number of

    virtualization software products have emerged, alternatively called virtual

    machine monitors or hypervisors, with varying characteristics and goals.

    Similar hardware assists for system virtualization have emerged in other

    popular embedded CPU architectures, including ARM and Power.

    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. This evolution is no

    different from, and is related to, the migration of multicore processors

    into the embedded and mobile space. System virtualization enables

    developers to make better use of multicore processors by enabling the

    hosting of a wider range of concurrent workloads.

    230 Chapter 7

  • Similarly, multicore processors enable virtualization to be more practical

    to implement from a performance efficiency perspective. Multicore and

    virtualization are certainly symbiotic technologies. The availability of

    system virtualization technology across 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.

    Yet embedded multicore systems often have drastically different

    performance and reliability constraints as compared to multicore server

    computing. We will also focus on the impact of hypervisor architecture

    upon these constraints.

    Applications of system virtualization

    Mainframe virtualization was driven by some of the same applications

    found in todays enterprise systems. Initially, virtualization was used for

    time-sharing multiple single-user operating systems, similar to the

    improved hardware utilization driving modern data center server

    consolidation. Another important usage involved testing and exploring

    new operating system architectures. Virtualization was also used to

    maintain backwards compatibility of legacy versions of operating

    systems.

    Environment sandboxing

    Implicit in the concept of consolidation is the premise that independent

    virtual machines are kept reliably separated from each other (also

    referred to as virtual machine isolation). The ability to guarantee

    separation is highly dependent upon the robustness of the underlying

    hypervisor software. As we will

Recommended

View more >