Microsoft Adds 64-bit x86 Emulation to Windows on ARM
Microsoft announced today that the expected support for 64-bit x86 emulation on Windows on ARM devices has arrived, provided you are running Build 21277. You’ll need to be part of Microsoft’s Windows Insider program to test the build. Instructions for installing the software, provided you’re a member, are available here.
According to Microsoft, when it launched Windows on ARM back in 2017, it made the most sense to focus on 32-bit x86 emulation support. Three years later, with more applications moving to 64-bit and customers have begun requesting 64-bit support, Microsoft thinks it makes more sense to add the feature. The fact that ARM CPUs have also gotten more powerful and capable also probably helps; the emulation overhead from 64-bit x86 could be larger than Microsoft’s 32-bit solution.
A deep dive published a bit over a year ago by Blackberry(!) goes into some detail about how Microsoft’s 32-bit emulation works. It’s not required reading by any measure, but if you want to peek under the software hood and see examples of how x86 instructions are translated into their ARM counterparts, check it out.
The 64-bit support baked into Build 21277 can run native x86-64 applications or take 32-bit applications like Chrome for Windows on ARM and run them in 64-bit mode. Microsoft notes that some 32-bit apps may benefit from having more RAM available if run in this mode.
The emulation performance hit for running 64-bit x86 applications on ARM cores has been a topic of some discussion following the launch of Apple’s M1 chips. Early benchmarks have shown that it’s possible to get Windows 10 running on Apple silicon via virtualization and that the M1 is much faster than the hardware in systems like the Surface Pro X, even when its OS and benchmarks are running inside a VM.
Where’s the Windows on ARM Platform Refresh?
The launch of Apple’s M1 gave Microsoft fresh reason to be interested in beefing up Windows on ARM performance, but Qualcomm doesn’t seem to be on board with the idea. When asked about the M1 during a recent conference call, Qualcomm brushed off the question and claimed that the M1 represented “great validation of what we’ve been doing for the past few years,” rather than pivoting to the question of how they’d respond to the chip.
The current Qualcomm laptop, the Qualcomm 8cx, is based on a quad of Cortex-A55 cores and a quad of Cortex-A76 cores. Qualcomm’s just-announced Snapdragon 888 SoC is two years newer and uses a Cortex-X1 CPU core, three Cortex-A78 cores, and four Cortex-A55 cores.
The Cortex-X1 CPU is a Cortex-A78 that’s been optimized for maximum performance rather than die area or power. It runs at 2.84GHz, while the three A78 cores clock at 2.42GHz and the A55 at 1.8GHz.
Since the original 8cx uses a Cortex-A76, a modernized chip would definitely help future Windows on ARM systems compete more effectively against chips like the M1. I’m not going to even speculate on how such a match-up would fare, but it does seem as though the market is ripe for a refresh, especially since the Snapdragon 888 integrates a 5G modem. While not a particular feature that I’d personally be interested in, a 5G modem would give a future Windows on ARM device meaningful differentiation compared with an Apple M1. To date, Apple has not introduced a system with cellular connectivity.
Bringing 64-bit x86 emulation support to Windows on ARM improves its overall ability to function as a true replacement for conventional Windows 10. A new SoC platform that reduced the gap between ARM and x86 devices in the Windows ecosystem would give Microsoft and its partners a way to showcase that support with accompanying performance improvements.