Opinions

How Full Windows 10 running on ARM CPU will affect computing future

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.

  1. Windows 10 Mobile Continuum
  2. Intel ending development of Atom SoC
  3. Qualcomm adding virtualisation support for SnapDragon SoC
  4. Various bridges for developers to easily port their apps to Windows 10
  5. Windows 10 Common Core (or why there’s no 64bit mobile Windows 10)
  6. Some special sauce from the brains @Xamarin
  7. 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.

How Windows Phone 8 & Windows 8 can share software

OEMs can’t do it, so Microsoft DID IT!

Samsung losing patent case is Good for consumers!

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.

Advertisements
Opinions

Samsung losing patent case is Good for consumers!

So the jury has ruled that Samsung has lost the patent case against Apple.

Apple, as expected, is on the victory march & Samsung has come out with a sourpuss respond that “consumers will be hurt.” Samsung lawyers are obviously misguided.

Firstly, I’m for innovation & being paid for my ideas. I used to develop software with GUI meant for people with zero computer experience. Thus, I do admire iOS simplicity despite the fact that I wouldn’t develop for it. (That’s another story).

I remember a time when Linux advocates are criticising MS OS/software as bloated. Many of these developers probably aren’t programming for ease-of-use. It was extremely tedious to develop a software that is intelligent enough to accept inconsistent user input or to accept errors & NOT crash. It takes a lot of error checking & data shaping at the point of user input & MS software does this very well. It also takes a lot of thought into how the user will interact with the GUI to ensure it’s not annoying to use due to constant error prompts ruining the experience. Having lots of graphics also make software bigger & somewhat slower.

Of course, these days, all these checking are abstracted into the background & developers don’t have to spend time doing human input checking anymore. It’s all automatic in MS & Apple software. Smartphones are also more powerful & have more memory than PCs 15-20 years ago so program size is no longer any issue. But for Google’s software, the GUI is less mature due to its reliant on Open Source Software, where developers are still not as concern about writing software for end-users.

Secondly, the Koreans are very good at copying others’ success stories & make themselves successful. They are also very aggressive when their neck is at stake. Just look at Korean car makers. They are out-competing Japanese car-makers by making cheaper cars with more features which also happen to look nicer (or at least unique.) Granted, the designers of these cars are usually Germans but consumers gain by having cars with near Japanese quality with more features at a lower price!

This will be the likely scenario now that Samsung & other Android phones are found to infringe on the patents that makes iOS unique. Google will have to make Android more unique & eventually, consumers win. Android makers like Samsung, LG, HTC, Motorola will have to improve their customizations, which only means better user experiences for those phone.

Nokia has shown that it’s possible to create a smartphone with a compelling user experience without copying iOS. Apple lawyer even showed a Nokia Lumia at one point as proof, there are good smartphone OS GUI that don’t infringe on any Apple patents.

Let this be a wake-up call to Google to stop ripping off other people’s ideas. It’s ok to copy & improve on the design & value-add to the consumers. Make the new design your own instead of doing a poor job plagiarizing prior art.