3.10. Virtualization

Virtualization is a concept whereby more than one Operating System is enabled to co-exist and operate on the same system. The ARM Virtualization Extensions make it possible to run multiple Operating Systems on the same system, while offering each Operating System an illusion of sole ownership.

ARMv7-A supports Virtualization extensions, but ARMv5 does not. Modern compute subsystems are powerful, but often under-utilized. The domains that these systems address increasingly require multiple software environments working simultaneously on the same physical processor systems. It might be necessary to separate software applications from their environments. This might be for reasons of robustness, or as a result of different requirements for real-time behavior, or it might simply be to isolate them from one another.

Hyp mode, with its associated banked registers, supports Virtualization extensions. Figure 3.18 shows that Hyp mode is added to existing privileged modes. This PL2 mode is even more privileged than PL1 mode. Hyp mode is expected to be occupied by Hypervisor software managing multiple guest operating systems occupying PL1 and PL0 modes. Hyp mode only exists in the Non-secure state.

Figure 3.18. Hyp mode and privileged levels

To view this graphic, your browser must support the SVG format. Either install a browser with native support, or install an appropriate plugin such as Adobe SVG Viewer.


Figure 3.19 introduces an additional memory translation called Stage 2. Previously, the PL1 and PL0 MMU translated the Virtual Address (VA) to Physical Address (PA). This translation is now known as Stage 1, and the old Physical Address is now called Intermediate Physical Address (IPA). The IPA is subject to another level of translation in Stage 2 to obtain the final PA that corresponds to the VA.

Figure 3.19. Two-stage memory translation

To view this graphic, your browser must support the SVG format. Either install a browser with native support, or install an appropriate plugin such as Adobe SVG Viewer.


You can configure interrupts to be taken to the Hypervisor. The Hypervisor then handles delivery of interrupts to the appropriate guest.

You can use a HVC instruction for guests to request Hypervisor services.

ARM Virtualization Extensions aim to run conventional Operating Systems as guests on a virtualized system with no or little modification.

Copyright © 2014 ARM. All rights reserved.ARM DAI0425
Non-ConfidentialID080414