Virtualization in embedded remains a hot topic. Many customers have a need to do more with their multi-core processors. They typically have a need for a real-time operating system, but they also want to run other operating systems next to it, be it MS Windows, Linux, Android or a 3rd party operating systems on processors from Freescale, ARM or Intel.
One of the things that stands out in many customer visits that I do is that embedded virtualization often enables possibilities that the customer never thought possible. This of course is a good thing, it may enable them to put a new product to market that the customer had never thought of. In a few cases I have seen customers use virtualization to shift their business models from shipping custom hardware to shipping software only using COTS boards. Virtualization in this case is used to provide the customization that they formerly needed hardware for.
Here is an interesting article, continuing a discussion thats has been going on for a long time on mobile virtualization. It argues the case that a single mobile phone can run multiple operating systems using virtualization. A bit of googling will show that this is indeed already the case. However, there is a big caveat typically that you do not see exposed.
So, let's assume that you are currently on a single-core board and you would like to explore the possibilities of delivering a next generation device using multi-core technologies. There are a lot of different ways to approach this. The most elaborate involve doing an architecture study into ways in which you could evolve your current device architecture. This study would need to be approached from both a technical, as well as a business level.
A few weeks ago I found myself in the Hard Rock Hotel in Las Vegas. My reason for being there was a seminar that Wind River was organizing together with Intel and AVNET specifically focussed on companies that build gaming. The main topics were graphics, manageability and of course, virtualization.
VDC has released another report showing that multi-core is making fast inroads in embedded systems and we are seeing that at Wind River as well. There are exciting new possibilities with these chips, we have never had this much processing power in such small packages.
That is what embedded systems is all about: handling devices. An embedded software system has input devices and output devices and some amount of software running on operating systems, running on hardware that turn input into output. The trick is to handle the input in a fast an deterministic way and generate output in a fast and deterministic way. Determinism is important all the way through the system, from the device, to the hardware, to the operating system to the software running on the operating system
Many telecom applications are actually built up from multiple smaller sub-applications, often running on their own server in a rack, ATCA or otherwise. These servers run on multi-core processors, depending on the age of the last refresh this could be a dual, quad core or more. This is of course nothing new, what's new is how virtualization can improve server utilization.
I have always found the difference between Type 1 vs Type 2 hypervisors rather uninteresting. In short, a type-1 hypervisor is a hypervisor that has direct access to the hardware, where a type-2 hypervisor executes inside an operating system. Most hypervisors are type-1 hypervisors, including IT hypervisors such as VMWare, Xen, KVM and such. Type-2 hypervisors are applications like VMWare Workstation (or Fusion), Parallels, .... The distinction between type-1 versus type-2 is really not as useful as most people think. There is a good blog article by Anthony Liguori that describes this as well, complete with references, the article is a bit old, but still correct.
Two good blog posts from some of my colleagues at Freescale. One on Heading Into Hyperspace: Hypervisor and Multi-core design by Jim Trudeau and one by Rob Oshana on the Top 3 Keys to Multi-core software development. Jim talks about the multi-core aspects mostly from Freescale's P4080 perspective, an elegant, powerful and very popular processor in the networking space. The P4080 has not only many processors, it is truly designed for multicore with multiple peripherals (multiple PCI hosts) and multiple memory controllers for example to reduce contention.
Mark is a senior product manager with Wind River focusing on multicore and virtualization solutions. Prior to joining Wind River Mark has helped development teams build embedded systems across Asia, Europe and North America in automotive, telecom, consumer electronics and defense industries.
The postings on this site are the views of the individual poster and do not represent Wind River's positions, strategies or opinions. Please review the Wind River Blogging Guidelines. We may be reached via email at blogs@windriver.com.