I attended Embedded World in Nurnberg last week. The number one application I saw over and over again was for embedded devices based on multi-core processors. If you think of Microsoft’s entire range of embedded operating systems – Micro-framework at the low end, Windows CE (the only real-time OS (RTOS)), and Windows XP Embedded; I expect multi-core processors to target systems built for Windows XP Embedded (XPe) first. This is because the cost of a multi-core processor is higher than a single-core and at least for now more likely in systems that can absorb the cost of an XPe client. But the interesting twist is that the value of multiple cores is that you can run an RTOS in one or more cores and run XPe in other cores. XPe would be used to run Windows applications – say some kind of Human Machine interface (HMI), where the RTOS would run a factory control application that requires a guarantee of a processor’s time slice at some frequency that only Windows CE could deliver (or RTOS competitors like WindRiver’s VxWorks or a custom Linux solution).
In order to make this work, there has to be a piece of software that loads an OS into one or more cores and virtualizes hardware access of common components. This virtualization software is called a hypervisor and is often in the form of a boot loader. The boot loader would load one or more operating systems into cores and then leave its tiny run-time (as small as 20kbytes) to handle hardware interrupts to facilitate virtualization (sharing or multiplexing between cores). The effectiveness of a hypervisor is measured inversely by the size of its memory footprint and any latency it adds.
Although the systems we saw demoed in Embedded World were all Intel multi-core processors, SH and Arms (processors supported by Windows CE) are rumored to be working on multi-core products. I see the trend to multi-core processing and hypervisors a real opportunity for XPe and maybe later a Vista-based embedded OS as these can be paired with an RTOS to qualify them to a broader range of applications in manufacturing automation.
Hypervisors also play an important role in thin client strategies, but that discussion is for another blog post.