Adapting an Embedded Systems Framework to Provide Virtualization

Embedded systems, critical and non-critical, have increasingly become part of people’s lives being present in day-by-day life issues, like health-care electronics, automotive industry and entertainment devices. Over the years, Multiprocessors System- on-Chip (MPSoC) have become the most viable choice to implement them

This trend combined with the growing complexity of real-time (RT) constrained embedded systems, has a major impact in the entire design and implementation of embedded systems.

Additionally, characteristics present earlier only in general- purpose systems are each more common in embedded systems, which affects directly their design. In this context, we can highlight their growing functionality as the greatest change, affecting dramatically their design and increasing the complexity of their software.

Nowadays, it is even common to run general purpose applications in some embedded systems as well as to use applications written by developers that have little or no knowledge at all about the embedded systems constraints.

On the other hand, some typical embedded systems’ constraints persist and need to be considered. For example, timing constrained MPSoCs with short energy consumption budgets and strict time-to-market need software deployment and test on the target hardware architecture to be performed but this usually is a difficult and time consuming approach.

Ergo, what is needed are alternative methodologies where the final hardware prototype has equivalence of the code with system’s hardware and software simulator and emulator.

Aiming to improve the software design quality, we propose in this paper the use of embedded virtualization, which has gained attention over the last few year. Specifically we present adaption possibilities of the Hellfire Framework (HellfireFW) to allow embedded virtualization to be better explored.

HellfireFW is an environment for the design of embedded systems’ applications which follows its own design flow where an MPSoC emulator is employed and over which a specific RTOS solution – the HellfireOS – is executed.

The Hellfire Framework (HFFW) allows a complete deployment and test of parallel embedded applications, defining the HW/SW architecture to be employed by the designer. In addition to the Hellfire OS, the HFFW also includes a N-MIPS MPSoC Simulator, and an architecture builder.

Based on HelfireOS, we propose the Virtual-Hellfire Hypervisor (VHH) architecture which has the following advantages:

1) temporal and spatial isolation among domains (each domain contains its own OS);
2) real-time scheduling policy for domain scheduling;
3) deterministic hypervisor system calls (hypercalls).

The hardware continues to provide the basic services as timer and interrupt but they are managed by the hypervisor, which provides hypercalls for the different domains, allowing them to perform privileged instructions.

In terms of memory management in MMU-less processors a possible choice is to implement a software virtual memory management. Another viable strategy is to use a fixed partition memory scheme. In this case, the required amount of memory is allocated to each domain at boot (or load) time, meaning that its size cannot grow or shrink at run time.

If the application code of the guest OS of a given domain requires dynamic memory (such as with malloc or free C primitives), the heap needs to be managed by the domain’s code itself. For now, VHH uses this second option (fixed partition memory).

The internal architecture of HellfireOS had to be modified to guarantee the use of virtualization. As a matter of fact, we kept some of the original features and took advantage of its highly modular implementation by adding the necessary modules to provide virtualization.

Our solution provides an easy way to develop and validate embedded soft- ware in a given platform and also to perform HW/SW design space exploration allowing the designer to combine different SW mapping possibilities onto several HW platform architec- tures, as well as several OS configurations to analyze different aspects of the system.

To read this external content in full, download the complete paper from the online author archives at

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.