Arm Based PCs
Posted on December 8th, 2016
I had previously read some rumors about Microsoft running x86 emulation on the phone platform. With their recent announcement, It is interesting that they are going to try and do it with PCs first.
I read a few articles on this, and it appears that the OS and all related components will be compiled to run native ARM 64. They will probably ship their own apps as native ARM 64 as well. The OS will run pretty much all Windows store apps since they can cross compile. So far this is just like Windows RT. They then added support to run Win 32 apps - that is new. So it can run Win 32 apps compiled for ARM. And finally they can run x86 32bit code under emulation.
I wonder if the x86 support will end up being like Apple's PPC emulation - a temporary stop gap until the app developers get around to re-compiling their apps. Or will it be good enough that the app makers don't feel like they need to bother. Will Microsoft eventually try and phase out the x86 support? It is hard to predict, the Microsoft ecosystem is not like Apple's. MS probably won't be able to dictate a strategy here, even if they want to. A lot of this will depend on if these ARM based PC's are popular or not.
This brings us back to Apple. There have been rumors of an ARM based MacBook floating around for long time now. It makes some sense given how advanced Apple's own Ax CPUs are getting. The reasons for doing it are mostly the same and Microsoft's - to build super battery efficient mobile computers. Apple would get the additional benefit of not having to share profit with Intel. Even if they had to drop a couple of A10 chips on the board to make it powerful enough, they would probably still come out ahead. They wouldn't get close to the power of a core i5, but it might be powerful enough for the low end MacBook. At least in theory.
On the MacOS architecture side things would be be similar to Microsoft's approach. The entire OS + components and all Apple programs would be compiled for native ARM 64. On the 3rd party app front they could also emulate x86 apps. But unlike Microsoft, they would not be able to get away with just 32 bit support since the whole Mac ecosystem is now on 64bit. Apple is in pretty good shape to coax app developers to support native ARM since they already have a development environment in place with XCode for cross compiling between the two architectures (for iOS). They also have experience with an app distribution system that can strip the un-needed parts out of a fat binary package before downloading (new features in the iOS AppStore). They could also 'force' ARM / x86 compatibily as a requirement to distribute apps through the Mac AppStore. And unlike Microsoft they could just phase out the x86 emulation after a few years when the ecosystem has gotten used to building the fat binaries. They have done this sort of thing many times before. The developers and consumers alike will just shrug and adapt - it's Apple, what are you going to do?
So will Apple build an ARM Macbook? I have no idea. I personally have no interest in trying to develop code on an underpowered, ARM based Mac. But there are plenty of use cases where an ARM CPU might be just fine. After all, the current Macbook is not exactly a powerhouse. In one sense Apple slowly moving off of Intel would be a good strategic decision given Intel's problems delivering on their roadmap lately. It has to be frustrating for Apple to hold off updating products (and getting pounded in the press) due to Intel not delivering the chips they need. - (Yes Haswell based 15" MBP and 16GB Ram limited 2016 MBP I'm talking about you.) As good as Apple's Ax chips are however, I doubt that ARM will ever replace X86 on the Pro line of products. I think a better approach to this problem would be for Apple to buy AMD and apply its CPU design skills there to build some killer x86 chips with integrated GPUs to finally cut the Intel cord and finally control everything from top to bottom. - But that is a post for a different day.