Advertisement

Virtualization for embedded Power Architecture CPUs

Virtualization for embedded Power Architecture CPUs

High-performance applications are driving the need for multicore and virtualization

BY FAWZI BEHMANN
Power.org
http://www.power.org

Technology innovations are continuously impact the Internet, applications, and services. Internet traffic is rapidly expanding and becoming more varied and complex, with an explosion in voice and video applications. Corporations embrace video-conferencing/multimedia-type conferencing and telephony systems based on IP. Millions regularly use Skype to place calls and go to YouTube to share videos. People now stream content not only to their PCs, but also to smart phones, mobile Internet devices, and gaming consoles. Multimedia content creation is exploding and consequently so are the means and ways to store content at personal, business, enterprise, and community/governmental level.

Virtualization for embedded Power Architecture CPUs

The Freescale QorIQ communications platforms provide multicore virtualization.

The trend continues toward more powerful embedded systems with multicore processors and SoCs. The advent of the true parallel execution of software increases the complexity of porting existing applications and developing new ones. Optimizing software for multicore devices necessitates updating established software development practices and tools.

Virtualization presents opportunities to reduce hardware costs and power consumption while enabling new platform-level capabilities. It allows a device to run multiple operating environments, and share the underlying processing cores, memory, and other hardware resources.

The term “virtualization” is overused and needs to be broken down to hardware and software to clearly see which virtualization technologies are most relevant to embedded systems developers. Hardware and software virtualization are complementary. Hardware virtualization provides a more efficient mechanism for partition/OS switching and hardware resource allocation for a software virtualized environment. Software virtualization takes advantage of hardware mechanisms to provide a platform which enables embedded system designers to flexibly partition their systems and run a variety of operating systems. Combining multicore and virtualization, silicon suppliers and third parties have more options for enhancing platform performance, security, and usability.

Virtualization and hypervisor for Power Architecture

Power.org, the organization that promotes and develops standards for Power Architecture technology, announced in March the release of Power Instruction Set Architecture (ISA) Version 2.06, a major specification designed to enable silicon SoC vendors to develop hardware partitioning that enables virtualization and hypervisor use for embedded Power Architecture. The 1,336-page Power ISA 2.06 document is compromised of five books and a set of appendices and can be downloaded from www.power.org/resources/downloads.

The document provides support for virtualization and hypervisors including a new guest mode and memory management unit (MMU) extensions that enable the efficient implementation of hypervisors on the embedded Power Architecture platform. It allows a more efficient implementation of virtualization, partitioning of embedded systems, isolation of applications, and resource sharing, well-known techniques that previously were available only for the server market.

The Embedded Hypervisor category in the ISA changes the operating system programming model to allow for easier virtualization, while retaining a default backward compatible mode in which an operating system written for hardware not implementing this category will still operate as before without using the logical partitioning facilities.

The Embedded Hypervisor permits threads to be assigned to logical collections called partitions, such that a program executing in one partition cannot interfere with any other. This isolation can be provided for both problem-state and privileged-state programs by using a layer of trusted software, a hypervisor, and the resources provided by this facility to manage system resources. The collection of software that runs in a given partition and its associated resources is called a guest. The guest normally includes an operating system (or other system software) running in privileged state and its associated processes running in the problem state under hypervisor management. An embedded hypervisor privilege interrupt occurs when guest supervisor state attempts execution of a hypervisor privileged instruction or attempts to access a hypervisor privileged resource.

Usage scenarios

To realize the full potential of multicore systems, many usage scenarios require using multiple secure computing domains, often managed by different operating systems, on the same physical device. This can be accomplished by dividing the cores, memory, and I/O devices of a system into secure, logical partitions. The partitions operate independently of each other, and operating systems are able to access and manage the hardware resources belonging to the partition with little or no overhead.

A hypervisor facilitates secure partitioning and presents a virtual machine to each partition and allocates resources among the partitions. Each partition may be completely unaware of the other’s existence. The embedded hypervisor adopts the power.org ePAPR (Embedded Power Architecture Platform Requirements) architecture. This standard speeds software porting and reduces development costs for operating system and platform designers.

Freescale QorIQ platform

Freescale implemented ISA 2.06 in its new QorIQ multicore communications platforms (e500mc) with high-performance Power Architecture cores. The Freescale embedded hypervisor software enables the efficient and secure partitioning of a multi-core system. Key features of the Freescale architecture include the following:

• Virtualization support for mechanisms that enable partitions to share certain devices, such as the system interrupt controller.

• Partitioning of CPUs, memory, and I/O devices, where each partition is assigned one or more CPU cores and a private memory region.

• Complete partition isolation.

• Mechanisms to selectively enable partitions to share certain hardware resources, such as memory.

• Security and isolation with very low overhead.

• A combination of full emulation and para-virtualization to maintain high performance while minimizing guest OS changes when migrating code from an e500mc VPU to embedded hypervisor.

The platforms cover a wide range of applications and performance levels. For more information about Freescale QorIQ program, please check www.freescale.com/qoriq. ■

Advertisement



Learn more about Power.org

Leave a Reply