So it finally happened! I have been predicting x86 emulation on ARM CPU ever since Intel stopped product development for Atom for mobile SoC.
@WinHEC 2016, Microsoft showed Windows 10 running on ARM
A few major things happened over the year to make this happen.
- Windows 10 Mobile Continuum
- Intel ending development of Atom SoC
- Qualcomm adding virtualisation support for SnapDragon SoC
- Various bridges for developers to easily port their apps to Windows 10
- Windows 10 Common Core (or why there’s no 64bit mobile Windows 10)
- Some special sauce from the brains @Xamarin
- Microsoft letting go of the last vestiges of Nokia
Let’s look at this point by point.
First point. Windows 10 Mobile Continuum feature has always been this dream of making your smartphone act more like a PC when connected to a large display + keyboard/mouse. However, people quickly notice far too many icons don’t work because the developer hasn’t written their app in Universal Windows Platform (UWP) format or their mobile app isn’t optimised for a larger display yet.
Rather than waiting for mobile developers to get around to adding UWP support, why not ask PC developers to scale their apps down? And at the same time, support legacy Windows program through the Desktop to UWP bridge so it’s possible for Windows 10 to run these UWP on ARM64 SoC.
Second point. (This is my speculation.) Intel has made a terrible mistake in ending Atom SoC development. They pushed Microsoft to seek an alternate SoC and they are the probably the reason Qualcomm added virtualisation support. I don’t remember Google/Android asking for x86 capability.
Third Point. Despite how fast Snapdragon (SD) SoCs are, the Atom X7 can keep up with it easily & in fact outperform it, albeit using slightly more power. The reason is every core of Atom can process SIMD (DSP) SSE instructions which gives it an advantage in terms of mathematical calculations. The letdown of Atom is in the GPU. Unlike Qualcomm, Intel obviously doesn’t want to put a flagship class GPU to compete with their Core CPU.
Recently, Qualcomm announced DSP & Virtualisation support for their next-gen SD835 SoC with an even faster GPU. This allows Microsoft to enable many of the desktop class features that required DSP to accelerate their functions. Many of Windows 10 Mobile functions like its User Shell & Cellular functions will be integrated into full Desktop Windows 10 as shown in the video. Finally, full Windows 10 can compete with IOS & Android for Tablets.
Fourth point. Microsoft is a software company at its core. Their oldest and strongest products are their OS and Visual Studio development environment. It comes as no surprise they can create conversion tools to directly take other platform codes and make it work on theirs. It’s also no surprise when you consider the fact that Windows NT (which Windows 10 is based on) was created to run on multiple CPU architectures.
Fifth point. For the longest time, Windows Phone fans had been wondering why Microsoft refused to create a 64-bit version of Windows 10 Mobile. I have always argued that mobile platforms don’t need 64-bit at all because no single mobile app will ever use 4GB of memory. Now we know the reason is because Microsoft has been concentrating in making full Windows 10 even more mobile.
We already know that Windows 10 shares the same kernel & some of the hardware stacks between PC, Xbox, Mobile, Hololens and IoT. However, what most people don’t realise is Microsoft has been breaking their Service Stacks into smaller and smaller pieces with every new revision of Windows 10.
Just look at your Services manager in Computer Management, there’re more and more Services running in the background. However, RAM usage hardly increase. The reason is to allow more services to be compartmentalised so Microsoft developers can pick the services relevant to that particular platform and reuse as much code as possible. This isn’t possible if the services are large and monolithic in nature.
My prediction is, instead of emulation, Windows 10 will run natively in ARM64 mode. Not surprising since Surface RT IS running an ARM version of Windows 8. This means all (desktop) Windows 10 services AND first-party apps will run at full speed since they’re compiled for ARM64.
All UWP apps can run in either native ARM or virtualised x86 mode depending on the developer. Also not surprising because when you run a 32-bit program in 64-bit Windows, Windows will launch the program in Windows on Windows 64-bit mode (WoW64). So now, instead of apps running in an x64 sandbox, it’s a Windows app running in an ARM64 sandbox.
Sixth point. I bet the brilliant minds at Xamarin had been cross-pollinating with the minds at Visual Studio to create the most powerful x86/x64/ARM cross-compiling toolkit possible! I’m guessing these are the people convincing Qualcomm to add virtualisation support for the latest SD. The power of software!!!
Seventh point. I’m guessing former Microsoft staff of formerly Nokia mobile division still have a static mindset about the future of mobile and smartphones. It’s probably good they’re let go to work on other worthwhile projects like the new Nokia-branded smartphones ODM by the China firm that bought over from Microsoft, or SailFish for the Russian bloc.
However, we also know that certain key ex-Nokian went to work at Microsoft Research. I wouldn’t be surprised if these are expert in camera and cellular tech.
The future. This part is my speculation about Microsoft’s strategy moving forward.
If Intel had continue to invest in Atom SoC, we’ll probably have the mythical “Surface Phone” by now that can run UWP & Legacy programs through Continuum.
Qualcomm seem to have fill that gap but I’m still skeptical over the emulation performance. However, if the Adobe Photoshop presented by Terry Myerson in the video is running in emulation mode and the video wasn’t edited, then I’m cautiously optimistic. The “Surface Phone” can now get back on track but don’t expect it to ship until end of 2017.
This is also the first time desktop Windows 10 gain cellular radio stack and mobile-context specific features related to voice calls and sms. The Skype Preview app is already hinting at the direction Windows 10 is taking so it’s more proof of mobile features added to Windows 10, rather than more desktop features added to Windows 10 mobile. Microsoft is moving in the opposite direction as IOS & Android.
With a Cellular stack built into Windows 10, Windows will finally become a full fledge mobile OS. With ARM’s more simple RISC architecture, power management should be easier to manage and Windows 10 should have much better standby time. Intel Atom (Enhanced SpeedStep) has great running time but the standby time still lacks far behind Qualcomm’s Snapdragon high/low-power cores. It’ll be interesting to note how Windows 10 handles the ‘big.LITTLE’ Kryo 28x Cores.
Windows 10 Continuum will also have a combined dual-shell or a morphable shell (called CShell) that switches interface depending on the screen (not device) context. Maybe now we’ll finally have a Landscape mobile Start Screen, and of course, multi-screen is naturally supported. It better support dock-able Windows for larger 5-7″ screens too!
Ultimately, the “Surface Mobile” can be your only computing devices. So what kind of a device is this Surface Mobile? Well I think it’ll be running a SD835 clocked at 1.9Ghz on battery, and 2.45Ghz when plugged into the Microsoft Display Dock. It should have 4GB of RAM and has a 5.5″ – 6″ display to allow adequate space for heat spreading. A 1440P display is good enough, a 4K display will be a waste of battery and GPU cycles. Now, Windows 10 requires a lot of space, so 64GB of eMMC 5.1 Storage is required.
Where does that leave Intel or even AMD? Well, Intel has abandoned Atom because they have probably figured out how to make a Core series based SoC hit the 2W TDP but their 10nm fab is having yield issues, which is why CannonLake is postponed. AMD has also announced new APU that can step through the clock at 25Mhz increments thus providing more aggressive power management but being fab on a 28nm process, I reckon power consumption will be higher than KabyLake.
What this means is, Intel is trying to make their Core m CPU fit into a mobile environment so the CPU wouldn’t fry your smartphone. And AMD new Ryzen CPU isn’t ready for mobile.
Qualcomm just released information on their latest Snapdragon 835 SoC.
Based on the information released, SD835 supports new 3D audio processing and enhanced camera image processor. It looks like a future Microsoft Hololens 2 could be powered by the SD835! The Surface 4 could also be based on a SD835!
In the meantime, you can check up my past predictions which has come true below.
Update 03 Feb 2017: Updated with the product codenames for future Windows features I have corrected predicted, like CSHELL and clearer explanation of CPU terminology.