- The new mantra for programming multicore CPUs is “partition where you can, virtualise where you have to.” RTS Hypervisor Technology gives you safe separation between CPU cores with all the advantages of partitioning, which you do not get when using virtualisation as in traditional systems, says Robert Helenius, Field Application Engineer in Data Respons Sweden.
VDC Research predicts a stark rise in the use of multicore CPUs over the next few years. Today a mere 6.3% of the projects use multicore, but this will soon rise to about 27.7% in new, coming projects. In order to take advantage of the performance in multicore CPUs, we need to focus on partitioning in order to obtain hard real-time performance and direct hardware access.
Hard real-time performance
Hypervisor provides hard real-time performance since the interrupt controller is not virtualised. Instead of virtualisation of an RTOS, Hypervisor uses system partitioning. This means that the “Host/Guest Concept” is eliminated, and all OS’s have instead “equal opportunity” to boot for example at any time.
At the same time, the system can run multiple operating systems concurrently, which means that RTOS and GPOS can run at the same time, multiple instances of RTOS can be executed simultaneously to allow for interrupt load balancing and modular system design (AMP) and the reboot of any OS during the undisturbed execution of others is enabled. Collectively, this greatly increases performance as you end up with parallel processing.
Direct hardware access
Following Hypervisor’s mantra, direct hardware access is granted for real-time applications. When the system is configured correctly, all interrupts are handled directly in hardware. This is highly recommendable, as it greatly minimises latencies in the embedded system.
Granting direct access to hardware should only be given to trusted code. RTOS code is thoroughly tested, and it is not possible for end users to create modifications. On the other hand, GPOS, like Windows XP, opens up the system to the end user, who may add applications and drivers to the system, making these systems much more prone to failure in the field.
Communication with 100% separation
The RTS Hypervisor allows for one or multiple shared memory areas to be configured. The size of the shared memory is only limited by the amount of memory available in the system. A simple API provides access to the shared memory from within each operating system, providing lock mechanisms and simple communication.
The hypervisor also provides network drivers for each operating system that reside directly on shared memory. Each processor core can have its own IP address and MAC address, and the system can communicate between cores using regular protocols like TCP, UDP, OPC, CORBA etc.
Advantages of partitioning
- Running multiple OS's on a x86 multicore or single-core processor with Hyper-Threading (e.g. Intel ATOM)
- Real-time performance without latency (if you use real-time OS's)
- Support for up to 255 Cores
- Direct HW access where you like and "isolate" the OS where you like
- No dependency between the OS's
- Use of standard OS's with standard drivers
- Allocation of resources and boot sequences as you wish
- Isolation of dangerous or unnecessary parts of the OS from HW access or for virus protection
- Use of "Shared Memory" or "Virtual Network" in order to communicate between OS's
- Booting or restarting OS's independently of each other