Microsoft and Qualcomm Collaborate to Bring Windows 10 & x86 Emulation to Snapdragon Processors
by Matt Humrick & Brett Howse on December 7, 2016 10:00 PM EST- Posted in
- Microsoft
- Snapdragon
- Qualcomm
- Windows 10
Today at Microsoft’s WinHEC event in Shenzhen, China, the company announced that it’s working with Qualcomm to bring the full Windows 10 experience to future devices powered by Snapdragon processors. Terry Myerson, executive vice president of the Windows and Devices Group at Microsoft, is “excited to bring Windows 10 to the ARM ecosystem” and looks forward to bringing “Windows 10 to life with a range of thin, light, power-efficient and always-connected devices,” which may include anything from smartphones to tablets to ultraportable laptops to servers. These new Snapdragon-powered devices should support all things Microsoft, including Microsoft Office, Windows Hello, Windows Pen, and the Edge browser, alongside third-party Universal Windows Platform (UWP) apps and, most interestingly, x86 (32-bit) Win32 apps. They should even be able to play Crysis 2.
This announcement fits nicely with Microsoft’s “Windows Everywhere” doctrine and should come as no surprise. It’s not even the first time we’ve seen Windows running on ARM processors. Microsoft’s failed Windows RT operating system was a modified version of Windows 8 that targeted the ARMv7-A 32-bit architecture. It grew from Microsoft’s MinWin effort to make Windows more modular by reorganizing the operating system and cleaning up API dependencies.
This work first surfaced in Windows Server 2008, which could be installed with a stripped-down, command-line only interface that did not include components such as Internet Explorer that were not necessary for specific server roles. Windows RT also leveraged the newer Windows Runtime (WinRT) API that offered several new features such as digitally signed app packages distributed through the centralized Windows Store and the ability to run apps within a sandbox. It also made it easier for software developers to target multiple CPU architectures. However, Microsoft’s rework of Windows was not yet complete, leaving Windows RT with a bunch of legacy Win32 code that went unused. It also could not run Win32 desktop apps, severely limiting the number of available apps to only those using WinRT and distributed through the Windows Store.
MinWin and its derivatives have continued to evolve over the past few years after getting a major boost in 2013 when Microsoft reorganized its disparate software platforms into the singular Operating Systems Engineering Group. The end result is Windows 10, a modular OS that can run on anything from low-powered IoT devices to high-performing workstations and servers. Its foundation is OneCore, MinWin’s direct descendant, that includes only the operating system kernel and components essential for any hardware platform. OneCore UAP (Universal App Platform) is another major module for Windows 10 whose groundwork was laid during the creation of Windows Phone and Windows RT. It provides support for Universal Windows Apps and Drivers, along with more advanced features such as the Edge browser and DirectX. On top of these modules, Microsoft can add modules that target specific device families (desktop, mobile, Xbox, HoloLens, etc.) that provide specialized features and shells.
Also included in OneCore UAP is Universal Windows Platform (UWP). An extension of the WinRT API used in Windows 8, it allows developers to create universal apps that are CPU architecture agnostic and can run on multiple devices, seamlessly adapting their user interface and input methods to the hardware they’re running on. With UWP, the architecutre independence is achieved by having pre-compiled versions for each platform available from the Store, which will then download and install the correct version for the individual device. The major change with today's announcement over Windows RT and UWP is that x86 apps will be able to run on Qualcomm's ARM-based SoCs, along with support for all of the peripherals that are already supported with Windows 10. This alone is a huge change from Windows RT, which would only work with a small subset of peripherals.
Microsoft is also focusing on having these devices always connected through cellular, which is something that is not available for many PCs at the moment. Support will be available for eSIM to avoid having to find room in a cramped design to accomodate a physical SIM, and Microsoft is going so far as to call these "cellular PCs" meaning they are expecting broad support for this class of computer, rather than the handful available now with cellular connectivity.
The ability to run x86 Win32 apps on ARM will come through emulation, and to demonstrate the performance Microsoft has released a video of an ARM PC running Photoshop.
This of course raises several questions, few-if-any of which Microsoft is willing to answer. Intel has long exerted strong control over the x86 ISA, limiting or outright preventing competitors like NVIDIA from implementing x86 support. So how Microsoft and Qualcomm are able to (for lack of a better way to put it) get away with this is a big question. Certainly there's no indication right now that this has Intel's formal blessing.
The key points here are that this is a form of software emulation - Microsoft even calls it as much - and that only 32-bit x86 support is being offered. On the former, this means that there's no hardware execution of x86 instructions taking place - though Microsoft and Qualcomm are certainly lining up instructions as best they can - which avoids many of the obvious patent pitfalls of doing x86 in hardware, and puts it in the same category as other x86 emulation mechanisms like DOSBox and QEMU. Meanwhile only supporting 32-bit x86 code further rolls back the clock, as the most important of those instructions are by now quite old, x86 having made the jump to 64-bit x86-64 back in 2003. So it may very well be that it's easier to avoid any potential legal issues by sticking with 32-bit code, though that's supposition on our part. In any case it will be interesting to see what instructions Microsoft's emulator supports, and whether newer instructions and instruction set extensions (e.g SSE2) are supported in some fashion.
Of course, the performance of this solution remains to be seen. x86 is not easy or cheap to emulate, and an "emulator" as opposed to a Denver-like instruction translation makes that all the harder. On the other hand, while maximizing x86 compatibility is great for Microsoft and Qualcomm, what they really need x86 for is legacy applications, which broadly speaking aren't performance-critical. So while x86 on a phone/tablet ARM SoC may not be fast, it need only be "good enough."
In any case, Windows 10’s ability to scale and adapt to essentially any hardware platform is a remarkable feat of engineering, and it’s what makes today’s joint announcement with Qualcomm possible. The first devices with Snapdragon SoCs running the full Windows 10 experience should be available in the second half of 2017.
It will be interesting to see what shape these devices take and which companies produce them. Some new lower-cost, full-featured Windows 10 tablets would be a welcome addition, and Qualcomm has its eyes on the low-powered server market too with its Centriq product family. A Windows 10 smartphone with a Snapdragon SoC is also likely, but with Windows Phone 8 holding less than 1% global market share, according to Gartner, Microsoft is essentially starting from scratch. Will the benefits of universal apps be enough to lure software developers and users of other Windows products away from Android and iOS? Can Windows 10 reestablish Microsoft as a major player in the smartphone market, or is the hole it has dug over the past decade too deep?
117 Comments
View All Comments
Speedfriend - Friday, December 9, 2016 - link
name99An apple watch costs $299, a Surface costs $800-2000. Shifting 1m Surface units is doing well given Apple shifts only 3-4m MacBooks a quarter.
name99 - Thursday, December 8, 2016 - link
"but Intel has that market pretty much cornered already"This is not clear.
Obviously it is possible to ship an ARM core with better than Intel performance at Intel power levels and Intel MOBILE frequencies. (Apple is there with A10 and will be at about 1.25 Intel IPC at Intel mobile turbo frequencies with A10X).
OK, so that handles the single-threaded part of the equation.
Next we have power. Again Apple and the ARM world have both shown that using a low power companion core brings SUBSTANTIAL power advantages to mobile devices. I can't speak to Android, but in the case of Apple the win is most obvious in terms of "idle" time --- basically when the screen is off but the phone does occasional scheduled background tasks, handles notifications, etc --- all stuff that can clearly run only on the low power core. Intel does not provide anything like this, and one consequence is that we just expect our laptops to do very little when idle (ie closed/asleep), unlike our mobiles which we expect to remain clearly alive when idle/asleep. in other words Intel's continuing unwillingness to broaden its technology portfolio substantially limits what PCs/laptops can do compared to mobile.
Third we have multicore. Intel has basically limited mobile to 2 cores (plus the minor 25% boost that is hyperthreading) except if you want to get a substantially thicker/higher power laptop. One suspects part of this is that Intel is ultimately driven by what's good for server revenues --- they want to charge server folks a lot of money for lotsa cores, which means they can't ships lotsa cores to the mass market at mass market prices. QC and ARM generally aren't constrained in this way --- they can add new cores to their dies on a sorta engineering rationality rather than a market segmentation rationality. This is significant insofar as MS has tried really hard to get more of Windows, especially the newer APIs, to exploit more cores more-or-less transparently.
Finally we have GPUs where obviously (again Apple) it's possible to provide GPUs that operate at the performance level of Intel's inbuilt GPUs while on what appears to be a somewhat lower power budget.
I suspect that if there were a compelling reason to do so, one could create a substantially more interesting PC based on ARM technology --- a PC that incorporates features like GPS and cellular connectivity, attitude and acceleration sensing, and the full panoply of features we expect from mobile. What's been holding us back is Intel's ridiculous slowness.
Obviously all these things are principle in possible today. But they require extra non-standard HW so can't be relied upon.
People are calling this "making mobile more like PCs" but I think that's backwards --- the correct interpretation is making PCs more like mobile.
serendip - Thursday, December 8, 2016 - link
Well, Atom has quad core for mobile, but Atom is effectively dead with the cancellation of Broxton and Willow Trail.Intel tried giving away chips for free with their contra-revenue program to get OEMs to use Atom, and they ended up losing $3-4 billion annually for 2 years straight trying to get into the mobile segment. I think they gave up and ceded the entire low-power processor market to ARM while hoping to have something viable in the future.
If this W10 on ARM isn't a flash in the pan, it'll make Intel soil their pants. We're talking about very portable phones and tablets running a full Windows OS, with low power idle and always-connectivity for 4G and WiFi, something Intel has struggled with for a long time. This is Microsoft saying to Intel, "Shape up or ship out!"
doggface - Friday, December 9, 2016 - link
Sigh. Apple a10 /= intel m7.Sorry, but no. Keep dreaming on.
andrewaggb - Thursday, December 15, 2016 - link
Well if we had laptop caliber arm chips I don't see why an ARM laptop running windows with x86 emulation would be bad. It might have great battery life and be $100-300 cheaper than the intel equivalent. Core-m/5/7 chips aren't cheap. My main tools are microsoft anyways, so presumably visual studio, office, skype for business, etc would all have native versions. Not that any of them are particularly cpu intensive anyways.It would be really good news for ARM surface tablets and phones and whatnot as well. I think if you're app is really cpu heavy you'd want a native one but so many apps are more I/O bound than cpu bound that I think this could be pretty useful.
Arnulf - Thursday, December 8, 2016 - link
My my, what a catchy slogan. I think I've seen it before:http://www.ww2incolor.com/d/40488-5/grp202
darkich - Thursday, December 8, 2016 - link
So this is basically still emulation and not a full hardware support?Will OEM's actually sell laptops with Snapdragons and emulated windows ? Seems half baked to me..
Krysto - Thursday, December 8, 2016 - link
Only the Win32 programs will be emulated, not the OS, and not the majority (if any) of Microsoft's own apps - as well as none of the store apps.Duncan Macdonald - Thursday, December 8, 2016 - link
The critical bit is that OLD win32 apps can run - many businesses have orphan but critical programs (supplier ceased trading, source code lost etc) where moving to a more modern (win64) architecture is not an option due to cost and timescales. If the emulation runs with a typical 10 to 1 slowdown compared to native code, that is probably still faster than the systems that the code originally ran on. (Especially as the storage will be SSD instead of hard drives.)Nexing - Thursday, December 8, 2016 - link
Plus there is niche hardware interfaces that need x86 drivers, actually non-working on x64 systems. Not in W8,, neither in W10The Audio world has plenty of that gear.
My old -pristine sounding- portable DAC is one sad example:
http://tascam.com/product/fireone/specifications/
If this news is an indication that Windows 10 x64 PCs, at some near future are going to be able to run those, it could be the first real compelling argument I have seen to switch from a W7 x64 reliable (and relatively free of latency-inducing MSFT´s "ET phone home" messages) System to the MSFT's yet obscure future for W10 garden.