Monday, April 6, 2009

Revolution in Smart Phone Design?

The new Motorola "Evoke" phone uses a single ARM processor, without a second processor (which is frequently a DSP, or digital signal processor). Typical smart phone designs use a two processor configuration. One processor (the ARM, frequently called the "application processor") runs a full-up operating system and general applications including the graphical user interface. This OS is typically WinCE, Symbian, Linux, Apple's OS-X, PalmOS, etc. The second processor runs s/w that is responsible for servicing the radio, including accepting/processing inbound calls, initiating outbound calls, etc. This s/w is called the "modem stack". The modem stacks requires real-time processing, meaning responses and transactions must occur within a deterministic period of time, frequently measured in the range of tens of micro-seconds. Longer delays can cause phone operation glitches and call failures.

By separating out the application OS and applications themselves from the modem s/w via separate processors, phone designs assure that the modem processing is not affected by the applications, and the phone (as a phone, vs. as a computer) operates correctly and reliably.

The Evoke phone merges these separate functions onto a single processor. It does this by utilizing a "micro-kernel". A micro-kernel virtualizes the hardware, giving each higher level OS the perception that it is running directly on the hardware, controlling and manipulationg hw resources, when in fact the micro-kernel is really doing that work. The micro-kernel can make decisions about which OS environment gets priority. By being extremely lightweight, the micro-kernel can add very little overhead to overall operations.

The OKL4 microkernel is a design based on the L4 microkernel design that originates from physics researchers in Germany. Researchers in Australia implemented their own version of the design, then created Open Kernel Labs to commercialize the technology, around 2002. While at MontaVista Software (an embedded Linux company which is a leader in providing Linux for cell phone designs), while I can't give specifics I'll say I was "aware of" OKL4 and it's slowly growing traction in the phone industry. The key work there is "slow".

Well, this "Evoke" phone shifts the gears up from slow to fast, in my opinion. The cost benefit of being able to use a much simpler, lower cost, and lower power core "system on a chip" is huge. Simply put, within 18 months, I would expect the majority of new smart phone product releases to have moved to this general architecture, using a variety of specific micro-kernels.

Who are those micro-kernel players? Open Kernel Labs, VMWare (who purchased Trango Virtual Processors a while back to broaden their portfolio and enter this market), Chorus produced by Jaluna in France, RTLinux now owned by Wind River, and probably others.

One interesting question to be answered is whether this integration of application and modem functions on a single processor overly compromises the user experience on the application side. My guess is "no", for the simple reason that when being used as a phone, application execution is not important!

The L4 design is considered to be extremely high performance relative to most micro-kernel designs, due to careful cache management to insure high performance low level IPC (inter-process communications) operations. Open Kernel Labs could end up being a big winner with this technology, and thereby a new significant player overall in the OS market. Before you discount this as a niche, yes it's a niche but consider the unit volumes, and remember that VMWare started with very similar technology for a market area with far smaller unit volumes (though obviously far larger budgets spent on the equipment overall).

VMWare is sure to be a player in this new market as well, though it's technology will tell, as marketing hype is not sufficient to win in this market!

It will be interesting to watch how this all develops.