Design Article
Comment
timemerchant
The original article was in 2010. It makes sense, but what was the impact two ...
Wiz
One of the major advantages of this approach in mobile handsetls will be in ...
Virtualization options for embedded multicore systems
Syed Shah
8/31/2010 10:17 PM EDT
Introduction: The proliferation of multicore processors and the desire to consolidate applications and functionality will push the embedded industry into embracing virtualization in much the same way it has been embraced in the server and compute-centric markets. However, there are many paths to virtualization for embedded systems. After a tour of those options and their pros and cons, Freescale Semiconductor’s Syed Shah shows why the bare metal hypervisor-based approach, coupled with hardware virtualization assists in the core, the memory subsystem and the I/O, offers the best performance.
Virtualization already has impacted the server and IT industries in a significant way. IT organizations are using it to reduce power consumption and building space, provide high availability for critical applications and streamline application deployment and migration. The trends to adopt virtualization in the server space also are being driven by the desire to support multiple OSes and consolidation of services on a single server by defining multiple virtual machines (VM). Each VM operates as a standalone device. Since multiple VMs can run on a single server provided the server has enough processing capacity, IT gains the advantage of reduced server inventory and better server utilization.
Although not mainstream, similar trends are trickling down into the embedded space as well. The concept of having a sea of processors and the associated processing capacity sliced and diced between applications and processes is not science fiction anymore. The challenge of extracting higher utilization on the processors and consolidation triggered by cost reduction are driving the adoption of virtualization in the embedded systems.
Case in-point is the merging of the control- and data-plane processing on to the same system-on-chip (SoC). Previous approaches used separate discrete devices for these functions. With multicore SoCs, given enough processing capacity and virtualization, control-plane applications and data-plane applications can be run without one impacting the other. Data-plane and control-plane applications, in most cases, will be mapped to different cores in the multicore SoC as shown in Figure 1.

Fig. 1: Control- and data-plane application consolidation in a virtualized multicore SoC
Control- and data-plane applications are not the only application-level consolidation that will occur. Virtualization and partitioning will allow OEMs to enable their customers to customize service offerings by adding their own applications/OSes to the base system on the same SoC, rather than have another discrete processor to handle it. Data or control traffic that is relevant to the customized application and OS can be directed to the appropriate virtualized core without impacting or compromising the rest of the system.
Another example of consolidation of functions is generally called board-level consolidation. Functions that were previously implemented on different boards now can be consolidated on to a single card and a single multicore SoC. Virtualization can present different virtual SoCs to the applications. With increasing SoC and application complexity, the probability of failures due to software bugs and SoC mis-configuration are greater than purely hardware- based failures. In such a paradigm, it may make sense to consolidate application level fault tolerance on to a single multicore SoC, where a fraction of the cores are set aside in hot standby mode. While such a scheme will save the cost of having to develop a standby board or at the very least another SoC, it would require the SoC to be able to virtualize not only the core complex but also the I/Os.
Virtualization also can help telecom service providers do in-service software upgrades. In traditional systems, software upgrades either completely bring down the embedded device (switch, router, set-top box) or at the very least slow its performance to the level where it becomes very noticeable. With live traffic running through the device, software upgrades can disrupt traffic flows and may cause potential revenue loss to the service provider. With virtualization enabled, the multicore SoC can be partitioned in such a way to allow one partition to continue to service traffic, while the other partition is upgraded. Once the upgrade is complete, traffic can be moved from the current partition over to the upgraded partition.
Although virtualization has its advantages, it comes with new challenges and considerations including partitioning, fair sharing and protection of resources between multiple/competing applications and OSes. In the sections to follow, we will discuss virtualization technology and how it addresses these challenges.
Virtualization already has impacted the server and IT industries in a significant way. IT organizations are using it to reduce power consumption and building space, provide high availability for critical applications and streamline application deployment and migration. The trends to adopt virtualization in the server space also are being driven by the desire to support multiple OSes and consolidation of services on a single server by defining multiple virtual machines (VM). Each VM operates as a standalone device. Since multiple VMs can run on a single server provided the server has enough processing capacity, IT gains the advantage of reduced server inventory and better server utilization.
Although not mainstream, similar trends are trickling down into the embedded space as well. The concept of having a sea of processors and the associated processing capacity sliced and diced between applications and processes is not science fiction anymore. The challenge of extracting higher utilization on the processors and consolidation triggered by cost reduction are driving the adoption of virtualization in the embedded systems.
Case in-point is the merging of the control- and data-plane processing on to the same system-on-chip (SoC). Previous approaches used separate discrete devices for these functions. With multicore SoCs, given enough processing capacity and virtualization, control-plane applications and data-plane applications can be run without one impacting the other. Data-plane and control-plane applications, in most cases, will be mapped to different cores in the multicore SoC as shown in Figure 1.

Fig. 1: Control- and data-plane application consolidation in a virtualized multicore SoC
Control- and data-plane applications are not the only application-level consolidation that will occur. Virtualization and partitioning will allow OEMs to enable their customers to customize service offerings by adding their own applications/OSes to the base system on the same SoC, rather than have another discrete processor to handle it. Data or control traffic that is relevant to the customized application and OS can be directed to the appropriate virtualized core without impacting or compromising the rest of the system.
Another example of consolidation of functions is generally called board-level consolidation. Functions that were previously implemented on different boards now can be consolidated on to a single card and a single multicore SoC. Virtualization can present different virtual SoCs to the applications. With increasing SoC and application complexity, the probability of failures due to software bugs and SoC mis-configuration are greater than purely hardware- based failures. In such a paradigm, it may make sense to consolidate application level fault tolerance on to a single multicore SoC, where a fraction of the cores are set aside in hot standby mode. While such a scheme will save the cost of having to develop a standby board or at the very least another SoC, it would require the SoC to be able to virtualize not only the core complex but also the I/Os.
Virtualization also can help telecom service providers do in-service software upgrades. In traditional systems, software upgrades either completely bring down the embedded device (switch, router, set-top box) or at the very least slow its performance to the level where it becomes very noticeable. With live traffic running through the device, software upgrades can disrupt traffic flows and may cause potential revenue loss to the service provider. With virtualization enabled, the multicore SoC can be partitioned in such a way to allow one partition to continue to service traffic, while the other partition is upgraded. Once the upgrade is complete, traffic can be moved from the current partition over to the upgraded partition.
Although virtualization has its advantages, it comes with new challenges and considerations including partitioning, fair sharing and protection of resources between multiple/competing applications and OSes. In the sections to follow, we will discuss virtualization technology and how it addresses these challenges.
Navigate to related information


patrick.mannion
8/31/2010 10:28 PM EDT
Syed makes a good case for the bare-metal hypervisor approach to embedded virtualization. Have you tried it? What's your take?
Sign in to Reply
kinnar
9/11/2010 7:08 AM EDT
Virtualization for embedded systems?? seems something new, why an embedded system will need it, as an embedded system requires an RTOS and RTOS plus virtualization it is something confusing.
Sign in to Reply
docdivakar
9/21/2010 2:51 PM EDT
@Kinnar: it is actually a good idea from Syed Shah! I believe he has made a strong case for the SoC but the article does not go further demonstrating or describing the use cases for such a technology. I wonder if ARM is planning something similar to that of FreeScale's that Shah is describing here.
The article starts out on the premise of optimizing power consumption and then jumps to the SoC that integrates control and data planes. It doesn't fully explain how one can exploit its benefits at the physical layer. Reduction in power consumption can only be realized if the physical layer can effectively use the control plane's information through API's to make sure the hard assets are not over allocated or over used while some may remain unused.
Perhaps some app notes are forthcoming?
Dr. MP Divakar
Sign in to Reply
Wiz
10/15/2010 5:21 AM EDT
One of the major advantages of this approach in mobile handsetls will be in supporting rich media contents along with the strict RTOS functionality. The co-existance of an application OS and an RTOS has been explored successfully in the past (atleast experimentally).
Personally I feel this concept will be eolving rapidly in the near future
Sign in to Reply
timemerchant
6/19/2012 1:13 AM EDT
The original article was in 2010. It makes sense, but what was the impact two years down the line? I have yet to see a reasonably priced 4080 Freescale board, or a popular multi-core Linux port for it. It looks like X86 and possibly ARM will take this slot. As for virtualizing I/O? - why slow down something almost by a factor of 10 to 100 via emulation when the target is networking or packet inspection.
Sign in to Reply