Thinking About x86 Emulation on ARM

Posted on November 21, 2016 by Paul Thurrott in Hardware, Mobile, Windows 10 with 69 Comments

Thinking About x86 Emulation on ARM

A new report about Microsoft working on x86 emulation for the ARM-based versions of Windows 10 has Windows enthusiasts justifiably excited for the future. Assuming, of course, that Microsoft and ARM can actually pull this off.

This one will of course require a bit of explanation.

To date, most Windows PCs have run on what we still call the Intel x86 architecture, while modern mobile platforms like Android and iOS run on ARM-based architectures. The two systems are incompatible, and are oriented for different workloads. That is, x86 provides far more performance—and performance scalability–than does ARM. But ARM works better on the mobile computing platforms that are the norm today, offering great performance on lightweight mobile OSes with excellent power management capabilities.

It’s easy to emulate ARM on x86: In fact, developers do this all the time when creating mobile apps in Visual Studio, Xamarin Studio, Android Studio, and Apple’s Xcode. Emulating x86 on ARM, alas, is a sort of holy grail: An as-yet unobtainable goal that would help us bridge the legacy PC past with the mobile/ARM future.

There have been many efforts to emulate x86 on less-capable platforms. One many might not remember was the Transmeta Crusoe processor, which came to life in an early HP Tablet PC called the Compaq TC1000. That pretty but woeful device offered decent battery life for the day, but Windows and its desktop applications ran horribly slowly, and it quickly disappeared from the market. As did Transmeta.

Companies like Connectix and Parallels also offered x86 compatibility virtually to PowerPC-based Mac computers years before Apple itself switched to x86. These solutions let enterprising users run Windows in a window on the Mac desktop so that they could access Windows applications that were not available on their own platform. Like the Crusoe processor, these solutions were slow for the most part, though I suspect some will insist to this day that they ran well. It was certainly better than nothing.

In any event, we’re about to try again.

With the personal computing market having moved into the “mobile first, cloud first” era, the PC is being left behind: Each year, the combination of ARM-based devices—mostly smartphones and tablets—has vastly outsold x86-based PCs. And the gap is getting bigger.

The problem, of course, is that many people still need to access their Windows-based applications. So we’ve come up with a variety of ways to make this happen. The most obvious is virtual access to Windows environments and applications in the cloud, similar to what HP is doing with its Workspace solution for the Elite x3 Windows phone. That Windows 10 Mobile device can’t run Windows desktop (x86) natively, of course. But if the apps run in the cloud and are transmitted to the device—which is connected to a keyboard, mouse, and display—the user gets a reasonable desktop PC experience. Assuming they have a great internet connection and are connecting to a physically close datacenter.

If only ARM could run x86 apps. Which it can’t.

But what if ARM could emulate the x86 instruction set, and thus run x86 apps?

What if, indeed.

According to Mary Jo Foley’s sources, this work is now underway. It requires a few things, of course: ARM chips that are powerful enough to emulate x86 and provide a reasonable level of performance. And an ARM-based operating system that would bring this capability to users.

ARM chipset makers such as Qualcomm will need to figure out the first part of that equation. But Foley says that Microsoft is indeed working on the second. It’s due in the “Redstone 3” release of Windows 10, which is currently scheduled for late 2017. (We’re currently testing “Redstone 2,” which will be called the Creator’s Update and is due in the first half of 2017.)

This capability would allow ARM-based versions of Windows 10—currently Windows 10 Mobile, though there’s no reason that Windows 10 Home or Pro couldn’t make the ride too, in something similar to Windows RT—to emulate x86 code and thus run Windows desktop applications locally on the device. It would make the most sense in Continuum situations, where the phone would just run UWP apps, but desktop apps would come to life when the phone was docked and connected to a keyboard, mouse and display.

This is exciting. But it’s also challenging because our experience with past solutions of this kind was lackluster. And there is every reason to believe that x86 apps will run slowly on ARM. It will likely work better for simple apps than it will for big/complex apps like Photoshop, iTunes, or even Chrome.

But what if it worked? Can you imagine such a thing?

Done correctly, ARM support for x86 could be the final nail in the Windows desktop coffin, the thing that moves us past the legacy code that is now holding us back. I literally just wrote about this problem in The Biggest Problem with Windows Today? The Past. Interesting timing, no?

I don’t want to get too far ahead of ourselves here. It may never happen. It may not happen in time for Redstone 3. It may happen so far out in the future that it doesn’t matter anymore. But if you’ve been pining away for Surface phone or something a bit more nebulous—like Microsoft having an in-house mobile strategy that actually makes sense—this is hopeful news. No promises, yet. But still, hopeful.

So we’ll see what happens.


Tagged with ,

Elevate the Conversation!

Join Thurrott Premium to enjoy our Premium comments.

Premium member comments on news posts will feature an elevated status that increases their visibility. This tab would allow you to participate in Premium comments with other premium members. Register to join the other Premium members in elevating the conversation!

Register or Subscribe

Join the discussion!


Don't have a login but want to join the conversation? Become a Thurrott Premium or Basic User to participate