As multi-core processors become an integral part of the embedded landscape, designers of real-time systems are looking for the best way to take advantage of the improved performance and flexible architecture while minimizing software rework. Designers want to incorporate multi-core architecture to boost performance through parallel processing and to minimize hardware costs by combining platforms. Because of the long life cycle of many embedded applications, designers must also interact with multiple generations of technology and are often faced with combining legacy platforms with the latest high speed real-time applications. Although developers have access to multiple techniques to enable this performance gain, embedded virtualization offers the most flexibility by isolating and allocating system resources between operating environments so that real-time, general-purpose, and legacy software can be readily integrated. In embedded applications, virtualization software is widely used to combine a real-time, deterministic operating system with a high-level, interactive operating system such as Windows.
Virtualization is achieved by adding a virtual machine monitor (VMM) software layer that isolates individual partitions and manages the execution of guest operating systems. In order to speed up the interaction between virtual components, Intel has incorporated hardware-assisted virtualization in the latest processor architectures tailored for extended-lifecycle embedded applications. The 2nd generation Intel® Core™ processors support Intel® Virtualization Technology (Intel® VT) to improve the performance and security of software-based virtualization operations by offloading execution of certain VMM instructions to system hardware. In addition, specialized Intel® functions such as Extended Page Tables (EPT) and Page Attribute Table (PAT) provide a hardware- assist to the partitioning and allocation of physical memory among virtual machines.
In addition to memory and hardware device allocation, virtualization software allows the developer to join multiple, real-time processes without having to establish priorities between deterministic processes and to assign multiple cores to compute intensive applications as needed to maximize overall system performance. Taking advantage of the virtualization benefits of the 2nd generation Intel® Core™ architecture, TenAsys Corporation recently introduced a scalable, real-time operating system called INtime Distributed RTOS allowing programmers to write applications that run without modification on different system configurations ranging from single-core or multi-core processor systems to multi-platform systems with multi-core processors (See figure 1). This application scalability is made possible with the introduction of global objects and an underlying network called GOBSnet (Global Objects Network). This inter-process communications technology enables real-time embedded applications to leverage the performance potential of the new 2nd Generation Intel® processor family allowing performance-critical application code to be executed on dedicated cores, essentially eliminating the need to have separate, application-specific processors in a system.
The TenAsys INtime Distributed RTOS also targets another trend in the evolution of embedded systems: distributed computing. Designers can build scalable applications with the flexibility to leverage multi-core processing concentrated on one platform or by distributing application across a network in order to be closer to the control point. The built-in GOBSnet features allow processes running on different instances of the INtime RTOS kernel to intercommunicate as if they were running on the same kernel. This means that the same application can be run on adjacent cores of a multi-core processor or a core on another platform with no program changes. INtime Distributed RTOS applications are edited, compiled, and debugged using the same off-the-shelf Microsoft Visual Studio software that is used to build standard Windows applications.
Hardware assisted virtualization (Intel® VT) improves the flexibility and robustness of software based virtualization technology and offers the tools needed to isolate and secure critical applications. You can find more information and technical articles on Intel architecture and virtualization at the Intel® Embedded Community page on Virtualization. If you are starting a new virtualization project with multiple operating systems and you have security questions, please share your concerns with fellow followers of the Intel® Embedded Community. You can also keep up with the latest technical details and product announcements at the Embedded Computing Design archives on Virtualization.
To view other community content on virtualization, see “Virtualization - Top Picks”
OpenSystems Media®, by special arrangement with Intel® Embedded Alliance
Microsoft is an Associate member of the by Intel® Embedded Alliance. TenAsys is an Affiliate member of the Alliance.