Microsoft’s Surface Pro X, announced in New York at its Surface launch event last week and landing in stores on Nov. 5, is supported by the Microsoft SQ1 system-on-chip (SoC). Its release marked the first time in seven years that an ARM processor has appeared in a Surface device.
The SQ1 is the birthchild of a multi-year relationship between Microsoft and Qualcomm. So what’s the secret behind their investment?
Feels like the first time
Make no mistake, the Surface Pro X can handle the full desktop version of Windows 10 Pro and is also compatible with desktop applications. This is in stark contrast to Microsoft’s initial take on an ARM-powered Surface in 2012.
In October 2012, Microsoft officially initiated the Surface series with the Surface RT as a vanguard device. At its centre was the ARM-based Nvidia Tegra 3 chip. Back then, Microsoft was hell-bent on creating a tablet experience and, more importantly, its Windows Store to contend against Apple’s iPad dominance.
Its idea was sound: ARM chipsets were renowned for their power efficiency, which provided longer battery life. Touting excellent graphics performance for its time, the Nvidia’s Tegra 3 chipset was a perfect candidate for the Surface RT.
Given the ideal cohort of technology and timing, it was regrettable to see the Surface RT fail spectacularly due in equal parts to a restrictive system and middling performance. Back then, the Surface RT wouldn’t operate desktop apps on an ARM processor.
Furthermore, it struggled in demanding apps, a perplexing flaw considering its capable chipset. Compounded by a barren Windows Store, the Surface RT was quickly dumped to the wayside. Consumers instead redirected their focus to the Surface 1, which used an Intel processor and ran Windows 8 desktop.
Forgotten and neglected, Surface RT was the first and only time Microsoft used an ARM chip for either of its Surface devices. But in 2019, Microsoft has turned to ARM once more.
The Windows on ARM program
Microsoft’s devotion to ARM isn’t a spur-of-the-moment move. The company has been preparing Windows 10 for ARM for years. Finally, in late 2017, Microsoft exhibited Windows 10 running on Qualcomm’s then-flagship Snapdragon 835 chipset, materializing its vision for the first time to the public.
Later, Qualcomm worked with UL Benchmarks to demonstrate that the Qualcomm Snapdragon 8cx would hold its own against Intel’s Core i5-8250U quad-core mobile processor, addressing the performance concern.
During the development process, Microsoft also attempted to entice developers to create apps for ARM by providing capabilities and an initiative called the Universal Windows Platform, a project that began during the Windows Phone days. It assumed a “code once, deploy for all” approach that eliminated the complications in developing for several platforms.
When it first emerged, only a handful of apps in the Windows Store were built natively for ARM; the remainder were forced through a translation layer. There were clearly wrinkles in its performance, but the demo sent a clear message: Windows is coming to ARM.
Arming ARM with Windows 10
Bringing Windows to ARM demanded a concerted effort from Qualcomm and Microsoft. Qualcomm needed to build a chip that could handle Windows, while Microsoft needed to tweak Windows 10 to support ARM processors. But before we look at the results of their labour, lets first understand why Windows apps don’t work on ARM.
Programming languages are designed for human understanding. Their syntax usually resembles a familiar spoken language (most commonly English). In contrast, computers can only process machine languages that resemble garbled numbers and letters. These cryptic strings are incomprehensible to humans but are easy for computers to process.
When a developer creates an app in a programming language like C++ or Java, the processor can’t directly know what it does. Before a program can operate, it needs to be converted — or compiled — from a programmer’s code to machine language. A standardized collection of processor-specific instructions is called an instruction set architecture (ISA).
During the development process, programmers generally decide on a targeted ISA. Desktop and laptop processors today mostly use the x86 and x86_64 (or x64 for short) ISAs. Their commands are different from the ones used for ARM processors. Therefore, code compiled for x86 and x64 processors are incompatible with ARM processors. There are a lot more nuances than what’s written here, but for the purpose of this article, that’s about the gist of it.
That all changed with Windows 10’s 2018 Fall Creator’s upgrade. Among its plethora of feature enhancements included support for the ARM ISA for Pro and S versions of Windows 10. Through it, unmodified versions of desktop apps would run on ARM processors.
Windows 10 treats the different ISAs in two ways. Apps that are made for ARM32 and ARM64 ISAs run natively — that is, they communicate directly with the ARM chipset. For x86 apps, Windows would place them through an emulation layer that compiles x86 instructions into ARM64 instructions. The instructions are then optimized and cached so they don’t need to be recompiled the next time the app is deployed. Furthermore, the compiled instructions may be shared by other apps to help speed up the initial release.
Enabling Windows on ARM could potentially see Windows flourish in low-powered devices like the Raspberry Pi. Moreover, it provides opportunities for device manufacturers to create always-on, always-connected devices that boast multi-day battery life. The Samsung Galaxy Book S, for instance, is powered by the Qualcomm Snapdragon 8cx processor and lasts up to 20 hours on a single charge. And this is only the tip of the iceberg; expect new devices from familiar manufacturers like HP and ASUS.
Microsoft SQ1 vs Qualcomm chipsets
To understand what distinguishes the SQ1 apart from the Qualcomm Snapdragon 855 and the Snapdragon 8cx, we spoke with Philip Barnes, Microsoft principal architect for Surface devices.
Barnes revealed that Microsoft’s SQ1 is basically a higher tier version of the Snapdragon 855 chipset.
“If you look at the processor configurations, it’s the same architecture in the CPUs as you find in the phones. But it’s a different physical design so that you get higher operating frequencies. And then the cache memories are much larger than what you find on the phone.”
With that said, Barnes made a clear distinction between the Snapdragon 855 processor used in the demo in 2018 and the Microsoft SQ1 in the Surface Pro X.
“The previous Snapdragon PCs that shipped with the 835 and the 850. That was just a reuse of the phone chip in a PC configuration. Where’s this chip is, is designed specifically for the computer workspace. So it’s got significantly broader IO (input and output), it’s got nine lanes of PCIe, it was designed to be able to make a PC.”
Delving further, Barnes alluded to Apple’s mobile chipset performance tiers.
“Just like as Apple has an A12, where a 12 was born with memory on top, a 12X is bigger, more memory on the board. This is like the X version of the [Snapdragon] 855. It’s got twice as much GPU, it’s got the DRAM down on the board, it has a 128-bit wide memory interface, then the thermal envelope has gone from a phone size – two to three watts – out to an eight with the peak of about 20W.”
Current limitations
As with any software, Windows 10 on ARM is an on-going development endeavor and isn’t without caveats. For starters, drivers will only work if they’re designed for a Windows 10 ARM-based PC. Certain games that use newer versions of the OpenGL graphics library won’t run, either. Certain third-party antiviruses are also incompatible. Perhaps the most crippling is that 64-bit apps won’t work, a problem that will probably be addressed in the future.