Hardware And O/S Virtualization, CPU Expansion: Delusions Amidst The Conceptions
Speaking of Android’s Dalvik virtual machine, the news coming out of the Mobile World Congress a month ago included the unveiling of a third-party enhanced Turbo ‘engine’ version developed by Swiss company Myriad. As I mentioned back in July of last year, Google consciously made the architectural decision to limit Dalvik’s virtualization performance in order to minimize power consumption and the required memory footprint. Myriad claims that its Dalvik Turbo alternative can run some applications 2-3x faster than Dalvik, at little to no memory usage or battery life impact. Thanks to Engadget for the heads-up on the below video clip demonstration:
If real-life testing by others bears out Myriad’s virtualization claims, that’ll be good news to MIPS and other non-ARM CPU architecture advocates. MIPS has been vigorously beating the Android drum for quite some time now, most recently last Friday. Although many folks might automatically equate the word ‘Android’ and ‘ARM’, by virtue of the latter’s dominance in mobile electronics devices such as cellular handsets and tablet computers, MIPS takes great pains to remind me each time we meet that the company has a notable presence in other technology sectors such as networking equipment.
And MIPS is right, at least when it comes to hardware that plugs into an AC outlet and is therefore relatively power consumption-insensitive. But where MIPS and I part ways is when the company tries to convince me that going forward, it’ll be able to gain credible market share in the portable equipment space at ARM’s expense. Bottom line, ARM and its licensees have a longstanding and solid track record of delivering credible performance and cost results while simultaneously balancing the need for long battery life. Intrinsity’s dynamic logic-based designs, which reportedly have found a home in the upcoming Apple iPad, are one recent example of this trend.
ARM’s licensees’ customers have benefited from, and therefore structured their businesses (including their code libraries and their hardware and software design expertise) around this successful balancing act. Therefore, once again quoting Drucker’s Law, "An emerging technology must be 10x better than the incumbent approach in order to have a reasonable likelihood of replacing that incumbent". Until MIPS can successfully hurdle that admittedly high bar, whether that be via power consumption, performance, price or some combination of these and other meaningful metrics, I don’t see the company meaningfully translating its aspirations into fiscal results. And the ARM licensees and customers I’ve spoken with in recent months, some of which are also MIPS licensees and implementers in various product line areas, seem to consistently agree with me.
Long-time readers of my print and online content already know that I’ve covered virtualization for quite some time now, both conceptually and from a hands-on standpoint. In fact, I’m typing this particular writeup on a first-generation Apple MacBook Air running Windows XP Professional and Microsoft Office 2000 virtualized on Mac OS 10.5 via VMware Fusion v2. And in the mobile electronics space, several virtualization case studies already exist; Microsoft’s .NET Compact Framework for Windows Mobile, for example, along with Sun’s (now Oracle’s) Java.
But virtualization’s inefficiencies are particularly problematic when every clock tick translates to incremental drain on a fixed-capacity per-charge battery. It’s why, with all due respect to MIPS’ Dalvik-fueled dreams, I feel compelled to point out that Google last summer supplemented its Android SDK with a NDK (Native Development Kit) that "lets Android application developers build performance-critical portions of their apps in native code." And it’s why I harbor little hope for the success of Adobe’s advocacy of AIR as the foundation of platform-independent mobile application development, no matter that I admire the company’s chutzpah at the attempt.
After all, Adobe AIR heavily leverages the company’s Flash technology, which isn’t exactly adored in the industry right now. Security shortcomings aside, Flash and AIR applications are well known for their performance setbacks versus natively compiled application alternatives, setbacks which are barely tolerable with AC-powered gear containing abundant DRAM and processing horsepower. Are the advantages of write-once/run-anywhere worth the speed, memory consumption and battery life shortcomings of a virtualization approach in the mobile application space, even if the virtualized code is partially hardware-accelerated by a multimedia co-processor? Java’s underwhelming-at-best success suggests that the answer’s ‘no’. Whether you agree or disagree, I welcome your thoughts.