The Motorola Evoke QA4 - A Case Study in Mobile Virtualization continued

3 Architecture

The software architecture uses two virtual machines, one running Linux, the other BREW. The software architecture that was chosen for the Evoke is schematically shown in Figure 3.1: Two virtual machines, running on top of the OKL4 microvisor, interact via OKL4 message-passing IPC as well as shared memory.

The complete Linux system is de-privileged, executing in user mode. The complete AMSS/BREW baseband stack and OS also run in user mode. This is a no-compromises design using proper virtualization without shortcuts.

The virtualization overhead is kept to almost unnoticeable levels by the high-performance OKL4 Microvisor. In fact, in many respects it is better than what would be achievable with Linux running native.

This is made possible by the fast-context-switching technology [WTUH03, vSH07] that is unique to OK Labs products. Through smart management of the address space, and utilising every last feature of the ARM9’s MMU, OKL4 avoids flushing caches and TLBs on context switches, without sacrificing performance. This results in the seemingly paradoxical situation that virtualized Linux can outperform native Linux.

Figure 3.2 demonstrates how context-switching latencies in OK:Linux are dramatically reduced compared to native Linux. The improvement is particularly large if the number of presently active processes is small—a typical situation for mobile phones. The boost in context-switching performance especially benefits the Evoke’s user interface.

Download complete White Paper


More White Papers and Publications

▲ Back to Top