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

2 Device Requirements

The constraints imposed on the design can be summarised as:

  • in order to meet the targeted price point, the phone had to be a single-core design using an ARM9 core;
  • the phone had to run Linux as the operating system (OS) supporting the user interface (UI);
  • for a number of reasons, the baseband stack had to run outside Linux;
  • components from the BREW [Qua] UI framework, such as the media rendering engines, had to be reused, and porting them to Linux was out of the question.

Clearly, these requirements taken together can only be met using virtualization: Linux had to run (de-privileged) in a virtual machine (VM), with the baseband stack and BREW running in a different VM. And all this needed to be achieved with excellent performance in order to provide a good user experience.

However, the virtualization approach once faced much scepticism. I remember many discussions with actual or potential customers, who would doubt that an ARM9 core could provide enough grunt for a Linux-based UI, even when running Linux on a core of its own, let alone virtualized. The main reason is that the ARM9 has virtually-addressed caches and lacks an address-space ID (ASID) tag in the translation lookaside buffer (TLB). As a consequence, Linux (like most other OSes) on ARM9 flushes TLBs and caches on each context switch. This leads to poor performance on context-switch intensive workloads, such as a touchscreen-based UI.

Download complete White Paper


More White Papers and Publications

▲ Back to Top