Multi-Core Hard- and Software Technology Enhance Industrial Applications

Real-time virtualization drastically reduces total system costs.

By Christian Eder and Gerd Lammers

Microprocessor roadmaps clearly show a trend toward multiple-core central processing units (CPUs). Modern operating systems (OSs) already make use of these CPU architectures by distributing tasks between processing cores. In doing so, they increase system performance. The next logical step—not only from a performance but also from a cost standpoint—is virtualization in which multiple operating systems execute in parallel. They should execute both securely and independently on separate cores.

The execution of multiple operating systems on a single hardware platform is nothing new. In the information-technology (IT) or server domains, virtualization solutions like VM-Ware or Xen have been used successfully. New solutions are being introduced frequently and virtualization seems to be the industry buzzword. One case for virtualization is the possibility of safely distributing applications or data over separate, protected OS instances. Virtualization also makes perfect sense if different OSs are to be used in parallel—for example, Microsoft Windows and Linux. In many cases, only virtualization allows an intelligent utilization of the constantly increasing computing power of modern microprocessors.

Industrial controllers, medical devices, or test and measurement applications have very similar requirements to the server and IT domains. In each of these applications, the real-time data collection, processing, and control tasks should be separated from the non-time-critical tasks, such as the user interface, database communication, or an open Internet connection. Typically, this task separation is fulfilled using multiple OSs on separate, dedicated hardware platforms.

A microcontroller hosts the real-time operating system (RTOS). It also handles all real-time requirements. A PC-based system runs a general-purpose operating system (GPOS), such as Microsoft Windows or Linux, to take care of the graphical user interfaces (GUIs) and connectivity duties. In these applications, the GPOS rarely uses all of the available power of a modern x86 processor. Using virtualization would therefore be the natural choice—especially in this case, as the cost of additional microcontroller-based hardware could be eliminated.

So why hasn't virtualization been used in real-time and embedded applications? One of the main reasons is the real-time performance requirement. Traditionally, virtualization technology uses various "tricks" to simulate separate, virtual PCs for each operating system. Hardware is often at least partially emulated or given exclusively to a single OS to manage. Processing time is rotated, in turn, among individual OSs in the form of time-slicing. In contrast, an RTOS requires direct hardware access. In addition, the processing of interrupts must occur without added delays. Time-slicing would hinder the real-time performance just as much as emulating hardware or trapping and redirecting the processor's instructions.

For these reasons, specialized virtualization technology has been developed to address both the real-time and general-purpose requirements on multi-core processors. Dubbed Real-Time Hypervisors, this technology enables a combination of GPOSs and RTOSs as well as multiple instances of the same or different RTOSs. A Real-Time Hypervisor partitions a multi-core x86 system into individual and independent hardware platforms. Each OS exclusively owns one or multiple processor cores. If an OS supports symmetric multiprocessing (SMP), all allocated cores are utilized. A Real-Time Hypervisor also partitions available memory and assigns it to the individual OSs. Hardware devices, such as PCI or legacy devices, are individually configured. As a result, interrupts are routed directly to a specific operating system. With this technique, special or modified device drivers aren't necessary. Interrupts are individually assigned and direct hardware access is allowed. CPUs, devices, or memory that aren't assigned to an OS are completely hidden from that OS (see Figure 1).

A Real-Time Hypervisor OS boot sequence is specified beforehand. Individual processor cores or OSs can be rebooted while the remaining OSs continue to be fully operational. Each operating-system instance has to be fully independent from the others. Real-time applications also should isolate the functionality of the Real-Time Hypervisor so that it is independent from any of the OSs. As a result, safe operation will be guaranteed. Using shared memory areas is common practice in order to easily exchange data between OSs along with a virtual TCP/IP-based network for seamless socket-based communication.

The deployment of multiple operating systems on multi-core-processor platforms is a logical step in embedded-systems design. It reduces total hardware costs while increasing reliability and system performance.

With multi-core technology like the Intel® Core™ Duo processor, which is now available on embedded computer modules, a new dimension in modularity and flexibility in industrial applications has been reached. While I/O interfaces are migrating from parallel to fast serial interfaces, microprocessor vendors are taking the opposite direction. Having reached 64-bit architectures, the potential of increasing performance appears to be reaching its limit. Although it is possible to simply increase processor clock speeds, this achievement comes at the cost of exponentially increased power consumption. In contrast, parallelization bears almost a linear performance increase.

Multi-processor solutions have been offered since the early '90s. Due to a lack of software support, however, they never flourished. Now, several OSs offer multi-processor support with minimal overhead. Furthermore, virtualization technology has been developed to support multiple OSs on a single processor.

Typically, industrial applications require specialized computer systems. Office computers don't offer industry-specific interfaces. Or they aren't designed to withstand a rugged industrial environment. As a result, custom embedded PCs are being specified that are tailored to meet the specific needs of the application. Computer-On-Modules (COMs) are one solution that has been designed to keep research and development efforts low while increasing flexibility. These standardized modules contain full PC functionality. They are installed on an application-specific carrier board with industrial board-to-board connectors. Specialized components that aren't normally found on a PC, such as motor-control devices, industrial I/O buses, special power supplies, or simply additional connectors, are now located on customized carrier boards (see Figure 2).

Due to the modular concept, an existing single-core solution can quickly be upgraded into a current dual-core system by simply replacing the module (see the Table). COMs are available for a wide range of performance requirements. Currently, the top-of-the-line COMs come with an Intel® Core™ 2 Duo processor T7400 with 2.16 GHz. This processor holds two 64-bit CPUs with a total of 4 MBytes of L2 cache. Compared to an Intel® Pentium® M processor with 2 GHz, the Intel Core 2 Duo processor T7400 is equipped with two cores and double the data bus width. Thanks to a 65-nm production technology, it could be said that this results in triple or even quadruple the performance at almost the same power-consumption level.

The COM Express module conga-B945 is an example of this high-performance processor combined with up to 4 GBytes of DDR2 667 dual-channel memory (see Figure 3). Using two memory modules doubles the bandwidth of the memory access. With the 64-bit support, both 64- and 32-bit applications and OSs are supported. This module utilizes the Mobile Intel® 945GME Express chipset.. It features numerous interfaces and choices for expansions. In addition, it provides 5x x1 PCI Express lanes, PCI Express graphics port (PEG 1x x16), 8x USB 2.0, HDA digital audio, 2x serial ATA, signals for 2x ExpressCard, and Gigabit Ethernet. To ease the system design, additional system extensions are implemented. They include ACPI battery management, a multi-stage watchdog timer, and a fast-mode multimaster I²C bus.

The Intel® Graphics Media Accelerator 950 is integrated in the chip set. It is able to drive two independent graphic channels using 2 x 24-bit LVDS, SDVO, TV-Out, or analog VGA. Flat-panel displays are automatically recognized and configured using Embedded Panel Interface (EPI). The combination of embedded computer modules and a Real-Time Hypervisor generates a universal platform that is applicable for almost every industrial use. The seamless integration of multiple OSs and applications on a single, multi-core computer system reduces cost while increasing flexibility.

With over 17 years in embedded systems technology marketing Christian Eder is worldwide marketing manager for Congatec. Previously he directed European and Middle East marketing communications for BMW subsidiary Kontron AG. Prior, he held a range of marketing positions with JUMPtec AG and Force Computers. He studied electronic engineering at the University of Applied Science in Regensburg, Germany.

Gerd Lammers is Owner, CEO, Real-Time Systems GmbH. He has nearly 20 years international experience in international distribution, sales and development of embedded development tools, industrial computers and real-time software. Previous he headed worldwide sales and marketing of real-time software products for the KUKA Robot Group, launched U.S. distribution of Kontron computer products and embedded development tools, and established the European subsidiary of Real-Time Innovations Inc.