Click to view the RadiSys Guide in Flash

Create Hybrid Real-Time and General Purpose Multi-Core Systems

Virtualization brings exceptional advantages to real-time systems. The capabilities that are evident in the general computing world, including the ability to consolidate servers and support heterogeneous environments on a single machine, are all the more compelling on embedded servers. This white paper provides insight about how virtualized solutions based on Microware OS-9 can make the most of modern embedded server hardware.
Download

standard diagram
Virtualization for Embedded Systems


Medical Imaging Spotlight

From the 3-D ultrasound that shows the first glimpse of a new life to the C-arm X-ray used in life-saving procedures, real-time medical imaging becomes more prevalent and advanced each year. Read More

article overview
  • Virtualization allows a single piece of hardware to host multiple, otherwise-incompatible operating environments
  • A Virtual Machine (VM) has its own applications, memory space, and virtual processor(s), and can even be powered up and down independently of one another
Adjust font size:
Tools: Bookmark | Print | E-mail

1 | 2 | 3 | 4 | 5 | 6 |

The need to support growing requirements with fewer resources is a key ongoing challenge in the computing industry. As hardware becomes more advanced, smaller systems handle more advanced workloads. At the same time, increased specialization often leads to a proliferation of hardware for dedicated functions. This trend increases overall solution complexity and cost.

Virtualization addresses these issues by allowing a single piece of hardware to host multiple, otherwise-incompatible operating environments. As a result, a single piece of hardware can now handle the diversity and volume of tasks that previously required several. Using multi-core processors, virtualization can be adapted to the specific needs of embedded systems, allowing the general advantages of virtualization to apply to new markets.

As a result, real-time systems can now deliver better performance at lower cost and with higher reliability than ever before. The opportunity is clear for providers of embedded hardware/ software solutions to achieve a competitive advantage by using these advances to deliver innovative, cost-effective solutions.

Continue →

The Need to Make Better Use of Embedded Hardware

In the context of embedded systems, the tendency toward increased system requirements has often taken the form of multiple pieces of hardware in a single solution.

Specifically, separate physical resources are often used to support real-time and non-real-time operations, using RTOSs (Real-Time Operating Systems) and general-purpose OSs, respectively. However, because processor performance has increased dramatically in the past months, this duplication of processors tends to under-utilize resources. That shortcoming equates to a missed opportunity to take full advantage of hardware capabilities, resulting in resource and cost inefficiencies.

The presence of additional hardware also creates a more complex system, meaning that there are more points of potential failure, which leads to unfavorable MTBF (Mean Time Between Failures). This combination of factors creates an undesirable trade-off, where providers of embedded hardware/ software solutions are able to provide increased performance and functionality, but to do so, they often must accept compromises in terms of highercost, less reliable systems.

Using Virtualization to Combine Incompatible Environments

Using a variety of techniques based on both hardware and software, virtualization allows more than one OS to run simultaneously on a single processor or multi-core platform.

Continue →

Each OS runs on a VM (Virtual Machine) that is independent from the others in most respects and does not even need to be aware of the others.

Each VM has its own applications, memory space, and virtual processor(s), and VMs can even be powered up and down independently of one another. Requests by VMs for system and network resources are centrally managed by a VMM (Virtual Machine Monitor) that runs directly on the hardware. Notably, any combination of Guest OSs can run on separate VMs on the same system, creating tremendous flexibility.

Because many VMs can be installed on a single piece of hardware, virtualization supports consolidation of systems (See Figure 1). That advantage helps to overcome the cost and complexity issues described above. Putting larger, combined workloads onto a single processor also allows solutions to take better advantage of the performance overhead provided by dramatic recent improvements in processor performance as enabled by multi-core processing and other architectural advances.

Many current processors also incorporate a hardware assist for virtualization, provided in the form of features like Intel® Virtualization Technology (Intel® VT) and AMT Virtualization.™ These capabilities enable Guest OSs to run directly on the VMM, without need for softwarebased translation, removing substantial overhead and increasing performance.

Continue →

Finding a Way to Exploit Hardware Parallelism

Recent order-of-magnitude gains in processor performance have a number of architectural sources, but the single most significant of these is increased hardware parallelism.

Multi-core processors offer multiple execution engines within a single processor, each of which is analogous to a separate single-core processor. In fact, with the first generation of dual-core processors in 2006, increasing numbers of execution cores immediately supplanted increases in clock speed as the means of increasing system performance. This change effectively solves issues of increasing power requirements and waste-heat production that occurred as previous generations of processors grew in clock speed. Current multi-core processors achieve dramatic performance increases at lower clock speeds, lower input power, and less waste heat than their single-core predecessors.

The downside to the multi-core opportunity is that software must typically be multithreaded in order to effectively divide work among the cores; single-threaded code can only utilize a single core. Threading software is a complex undertaking that requires added time and expense. It also carries with it the risk of introducing difficult-to-detect errors that produce unpredictable results, and inefficient threading can bring performance to a crawl. While successful threading may be worth the investment, it adds complexity, time, and expense to the development effort.

Continue →

Bringing it All Together: A Virtualization Stack for Real-Time Systems

This discussion has identified a number of challenges and opportunities not just associated with real-time systems. It has identified the desirability of consolidating RTOSs and generalpurpose OSs within embedded solutions onto a single piece of hardware, as well as showing the promise of virtualization, especially when aided by a hardware assist, as a means of performing that consolidation. It has also shown both the opportunity presented by multi-core processing and the complexity of multi-threading that is typically required to take advantage of it.

RadiSys has collaborated with VirtualLogix to create a virtualization stack that allows both RadiSys Microware® OS-9 RTOS and a generalpurpose Linux OS to co-exist on the same multi-core processor-based piece of hardware. This arrangement allows real-time and non-realtime applications to execute simultaneously, with each functioning under an optimally chosen OS. Hardware-assisted virtualization ensures that both operating systems can run directly on the VMM, without need for modification (See Figure 2).

Continue →

Adding to the value of this topology, each VM may be associated with a specific processor core, allowing single-threaded applications to take advantage of the performance increases of multi-core processors, without leaving idle resources. Hardware-based isolation between the VMs is also inherent in this solution, helping to protect the system in cases of hardware failure or security breach. The VMs can be allowed to interact as much or as little as the solution requires, for enhanced flexibility.

This virtualization stack allows a single piece of computer hardware to support an entire, multi-part embedded solution. In addition to lower equipment and support costs, reduced complexity tends to provide improved reliability, enabling providers of embedded solutions to deliver superior products at lower cost, for a competitive advantage within their market segments.