ARM-chips en Windows: waarom doet Microsoft de moeite?

Microsoft lanceert een Surface 2-in-1 aangedreven door een op maat gebouwde ARM-chip. Windows is al een tijdje compatibel met ARM-hardware, al kan je Windows op ARM nog niet rechtstreeks tegenover Windows op klassieke x86-chips plaatsen. Wat is het verschil?

Eind 2017 lanceerde Microsoft Windows op ARM (WoA). ARM is een processorarchitectuur die naast x86 staat. Mobiele telefoons maken gebruik van chips gebaseerd op ARM van bijvoorbeeld Qualcomm, MediaTek of Samsung, terwijl laptops, pc’s en servers in de regel op x86-cpu’s van Intel en AMD draaien. Software wordt geschreven voor een gegeven chip-architectuur. Een x86-programma werkt in de regel dus niet op ARM en omgekeerd.

Windows op ARM

Met WoA bracht Microsoft daar verandering in. De Windows-bouwer rolde plots een versie van Windows 10 uit die wel compatibel is met ARM-hardware. De broncode werd aangepast om op ARM-chips te werken, zodat Windows-gebruikers op laptops met ARM-processors in theorie de volledige Windows-ervaring krijgen. Dat is wat Microsoft ook wil bieden met de nieuwe ARM-gebaseerde Surface Pro X.

Surface ARM
Microsoft lanceert een door ARM aangedreven Surface.

Waarom doet Microsoft nu moeite om ARM te ondersteunen met x86 als geliefde standaard? ARM komt zoals gezegd van de mobiele wereld, waar energie-efficiëntie centraal staat. x86 wordt in contrast ontwikkeld met prestaties als prioriteit. Op het vlak van capaciteiten groeiden beide architecturen de laatste jaren naar elkaar toe, maar in de regel blijft ARM het efficiëntst. ARM-laptops moeten zo in principe rekenkracht bieden vergelijkbaar aan een ultrabook met Core i3 of Core i5, maar dan met een batterijleven dat ongeëvenaard is. Bovendien belooft ARM-hardware betere ingebouwde 4G- en 5G-connectiviteit te hebben.

Snapdragon 8cx en Microsoft SQ1

Met mooie, dunne laptops met een knappe autonomie in het vooruitzicht, bouwde Microsoft dus aan compatibiliteit met ARM. Qualcomm ontwikkelde van zijn kant de Snapdragon 8cx Die chip is speciaal ontwikkeld voor gebruik in Windows-laptops. We zagen de afgelopen maanden al enkele ARM-laptops verschijnen, onder andere van Lenovo, maar die draaiden op SoC’s ontwikkeld voor smartphones, zoals de Snapdragon 850.

Microsoft werkte samen met Qualcomm om in de marge van de Snapdragon 8cx een eigen afgeleide chip te ontwikkelen: de Microsoft SQ1. Die SoC is gebaseerd op de 8cx, maar heeft extra functionaliteit aan boord en presteert over de hele lijn iets beter. Het ding is speciaal gebouwd voor de Surface Pro X.

Het lijkt dus alsof we naar een mooi liefdesverhaal kijken: Microsoft en Qualcomm groeiden naar elkaar toe en de nieuwe Surface is de perfecte baby. Uiteraard is de werkelijkheid genuanceerder. Het is immers niet omdat Windows 10 op ARM draait, dat Windows 10-compatibele software ook op de architectuur werkt. Sterker: out of the box werken x86-programma’s niet op ARM. Dat wist Microsoft natuurlijk bij aanvang van het project. WoA is daarom voorzien van een emulator. Niet ARM-compatibele x86-software wordt in een soort gevirtualiseerde x86-omgeving op ARM gedraaid, zodat de programma’s toch werken. De software zelf beseft niet dat er iets aan de hand is. Concreet worden blokken van x86-instructies on the fly omgezet naar equivalente ARM64-instructies.

De Lenovo Yoga C630 is één van de eerste Windowslaptops met een ARM-hart, al gaat het nog niet om de Snapdragon 8cx.

Emulatie vreet processorkracht en RAM. Wie al aan de slag ging met de eerste ARM-laptops op basis van eerdere chips, merkte dan ook meteen dat de gebruikservaring niet meteen was om over naar huis te schrijven. Geëmuleerde software draait, maar niet vlot. Bovendien vreet de emulatie batterij, zodat de ARM-laptops het in de praktijk niet meer beter deden dan premium x86-concurrenten.

Software hercompileren

De oplossing: x86-applicaties herwerken naar ARM-versies. Dat geen enkele softwarebouwer daar veel moeite in wil steken, mag intussen duidelijk zijn. Microsoft experimenteert al sinds 2013 met Windows op ARM. Windows RT heette de eerste poging. Het OS zag eruit als Windows, maar emulatie ontbrak. Microsoft dacht dat ontwikkelaars naar het platform zouden stromen met compatibele software, maar die stormloop bleef uit. Daar kwam nog bij dat Windows RT er vooral uitzag als Windows 8, maar in de praktijk een stuk minder functionaliteit had. Het OS stierf een snelle dood.

Windows RT stierf een snelle dood.

Microsoft beseft dat emulatie voor x86 slechts een pleister op de wonde is en dat ontwikkelaars die x86-apps bouwen niet wakker liggen van Microsofts ARM-ambities. De oplossing: eenvoudige hercompilatie van bestaande code naar ARM. Bij de lancering van Windows 10 voor ARM bestond die oplossing enkel voor 32 bit-applicaties, maar sinds vorig jaar kunnen ontwikkelaars ook 64 bit-applicaties pijnloos compileren naar 64 bit-ARM.

Beperkingen

Tot slot zijn er nog een aantal beperkingen die momenteel inherent zijn aan ARM-laptops. Virtualisatie is bijvoorbeeld geen optie. Ook hardware-acceleratie behoort niet tot de mogelijkheden, waardoor gaming in het gedrang komt. Dat is in beide gevallen niet zo’n ramp, aangezien ARM-toestellen bedoeld zijn als mobiele laptops, niet als krachtige werkpaarden. Heel nauw in Windows geïntegreerde applicaties zoals Dropbox blijven ook problematisch.

Het succes van ARM-aangedreven Windows-laptops zal uiteindelijk afhangen van het enthousiasme van ontwikkelaars. Wie een ARM-Surface koopt, wil dat het toestel werkt zonder technische euvels, apps die niet beschikbaar zijn of emulatieproblemen die de batterij leegzuigen. Microsoft is op de goede weg door Windows architectuur-agnostisch te maken, maar een flexibel OS staat niet gelijk aan flexibele software. Nu de ARM Surface Pro X met zijn SQ1-SoC een feit is, zal blijken of Windows 10 op ARM ook echt een toekomst heeft.