Ever since Microsoft released the Surface RT, people have wondered whether the company would build an x86 emulator to allow ARM chips to run x86 Win32 applications. One of the reasons why the Surface RT and Surface 2 tablet families ultimately failed in the market is because they could run so little software. Decades of legacy x86 support had made Windows and x86 synonymous in many people’s minds, and a Windows tablet that couldn’t actually run what people thought of as “Windows” software wasn’t terribly useful.
Over the past few years, Microsoft’s mobile business has collapsed to the point of being all but dead. But the firm continues working on Windows 10 Mobile, despite a general dearth of devices that run it. Continuum, a feature that allows Windows 10 devices to connect to external displays and keyboards, essentially functioning like a PC, is still said to be key to any potential uptake of the operating system, but there’s been a major catch – Continuum hardware can’t run Win32 applications and is limited to UWP (Universal Windows Platform) apps.
According to Mary J. Foley, that could change by the fall of 2017 with the Redstone 3 update for Windows 10. The discovery was kicked off by this Tweet, from WalkingCat, who found evidence that Microsoft might be working on a hybrid x86-64-on-ARM implementation (Foley confirms that the technology’s codename is Cobalt).
Bringing x86 emulation to ARM shouldn’t be a huge problem, for several reasons. ARM processors have continued to improve since the Surface RT launched. Back then, Microsoft relied on a quad-core Tegra 3 solution from Nvidia based on the Cortex-A9 CPU, while the later Surface 2 relied on Tegra 4 and the Cortex-A15. As this graph from ARM shows, both of those CPUs have been surpassed by the latest Cortex-A72 solutions, and the Snapdragon 835 (available next year, by the time Redstone 3 ships), should be even faster. Emulation always incurs a penalty, but the latest ARM processors may be fast enough to overcome it while still offering an acceptable user experience.
It also helps that ARM and x86 aren’t all that different, in absolute terms. That’s not to say there are no differences between the two – there are plenty, and a deep dive into them and their various impacts on performance and power consumption is well beyond the scope of this article. Still, at a high level, x86-64 and ARM have far more similarities than, say, x86-64 versus Cell, or x86-64 versus Itanium. This makes emulation somewhat easier and should reduce the performance impact.
The larger question, of course, is whether anyone wants Windows 10 Mobile hardware at all. Microsoft has maintained that it is pushing into businesses via targeted customers, but the company has laid off most of the people that used to build its smartphones. Microsoft hasn’t completely thrown the towel in on the idea of a Surface phone, apparently, but waiting another year for this capability to appear just increases the chance that most users will find solutions elsewhere. The ability to plug a phone in and use it as a desktop might have won enormous market share five years ago, but that ship may have sailed already.