Premium Content

New Signal Chain Resources from Texas Instruments:

Virtualization Comes In Different Flavors

Date Posted: October 08, 2010 03:29 PM

The virtualization of computing environments is not a new concept. Back in the 1960s, IBM experimented with virtualization techniques called paravirtualization, and by the 1970s, the company had some implementations working on its mainframes. By definition (borrowed from Wikipedia), computer paravirtualization is a virtualization technique that presents a software interface to a virtual machine similar but not identical to that of the underlying hardware.

Recently, Intel released processors with VPro technology incorporating VT-x and VT-d extensions. These extensions replace some of the paravirtualization techniques with hardware, making it easier to implement processor-architecture virtualization. When using these techniques, different ways of implementing virtualization have emerged to address specific application needs. Today these can be broken into two classes: “server virtualization” and “embedded virtualization.”

Server and Embedded Virtualization
Server virtualization has been driven by the need to reduce the explosion of servers required to process the ever-increasing amount of data and applications. Usually, it means leveraging the additional processing power that can be stuffed into a 1U or 2U server module.

The ultimate goal is to consolidate applications onto one server. Traditionally, this requires porting more applications onto a server, which isn’t easy because applications generally run under different environments—e.g., different versions of operating systems (OSs), middleware, etc.

Porting them onto one OS means they must be modified and then revalidated and/or certified before deployment. With server virtualization, multiple environments like OSs, middleware, and application packages can be loaded as-is on the same server.

In contrast, embedded virtualization is driven by the need to combine a real-time operating system (RTOS) running a control application alongside a general-purpose operating system (GPOS) running an advanced human-machine interface (HMI) and/or data processing software. Embedded virtualization, like server virtualization, reduces costs. However, rather than eliminate the need for extra server computers, embedded virtualization can eradicate the cost of separate real-time computer modules.

Embedded virtualization enables the two OSs to run on the same platform without compromising the real-time deterministic requirements of the control application. In addition to its ability to consolidate two-box systems into one, it opens the door to the improvement of control applications: An advanced HMI can be added without requiring the OEM to use an expensive two-box solution.

The Need For Different VMMs
On the surface, server- and embedded-virtualization implementations are essentially the same (Figures 1 and 2). Both implementations need some form of virtual-machine manager (VMM), also called Hypervisor in certain circles (e.g., IBM), to load the individual OSs/applications and manage the memory, interrupts, I/Os, and other system elements.

Let’s refer to a general-purpose server application VMM as “VMM(G)” and one for a real-time embedded system version as “VMM(R).” A VMM(G) supporting virtualization for server applications is typically designed as an application running on a GPOS, such as Windows or Linux. Alternately, a VMM(R) supporting real-time control applications needs to be built on an RTOS.

Continue on next page

Intel VPro | multicore | Virtual Machine Manager | virtualization | VMM | VT-d | VT-x
Part Inventory
Go
powered by:
 

 
You must log on before posting a comment.

Are you a new visitor? Register Here
    There are no comments to display. Be the first one!