The move from Intel
It's true to say that over the last few months, particularly thanks to Apple, the number of ARM-based computers with ARM CPUs, GPUs and SoCs has increased considerably.
The world has begun the shift away from old and slow x86 CPUs to the more power-efficient ARM architecture. And what Apple has shown is that these ARM-based CPUs/SoCs are actually not pushovers. The Apple M1, which is an ARM-based SoC absolutely destroys the Intel-based MacBook Pros which feel very outdated now (so much so that I actually look at them as being very out of date).
There's a tremendous shift towards ARM that everyone seems to want to cash in on. For example, HP's Elite Folio 2-in-1 is powered by a Qualcomm Snapdragon 8cx. This is a new 2-in-1 that comes from HP, a company that ten years ago I would never have expected to be manufacturing their mainstream products with ARM SoCs.
HP 2-in-1 Elite Folio. Picture from manufacturer's website
Further to all of this, you may remember the catastrophe that was Windows 10 RT. This was Microsoft's first attempt at an ARM-based version of their operating system. It was a colossal failure. But then slowly but surely Microsoft could see what their competition was taking away from them, in particular Apple, who have developed several extremely powerful ARM CPUs for their iPad range (and do not forget that Apple used to boast that their iPad Pros were more powerful than most Windows-based laptops).
Microsoft's latest attempt at Windows 10 for ARM is so much better, in fact, it's taken the first step towards an x86-free world. Currently, support for applications on Windows 10 for ARM is nowhere near macOS - the world's most advanced desktop operating system. Simply put, half of them do not work. That's because x86 64 bit (aka x86-64 or amd64) applications are compiled very differently. Unfortunately for Microsoft, this means that their operating system is still pretty useless for anything but productivity applications designed specifically for ARM-based systems (I'm talking about Microsoft Office applications here by the way!).
RISC vs CISC
This is a very topically area of discussion at present and may provide a building block for the future of the CPU/SoC designs.
If you know anything about machine code (I've had the joy of writing the stuff in the past) and the way it works, then you'd know that an Intel CPU can quickly add two registers like this:
add r1 r2
Whereas with MIPS based machine code, a RISC machine code, I had to write something like:
add $s0, $t0, $t1
mov $a, $0
Apple took the gamble of moving away from Intel's CISC based CPUs to move to their own RISC based CPUs. Now while, RISC or Reduced Instruction Set Computer, might sound like it's worse than a Complex Instruction Set Computer, it doesn't always have to be.
Since the advent of the multi-core CPUs back in 2006, Intel has been redesigning their CPUs to work better in parallel constantly. Apple, with a clean slate, built their CPUs from the ground up. Whilst Intel's CPUs have concurrency/parallelism as an afterthought, Apple has built it as a fundamental.
Another major area that they have been able to win over Intel is because of the inherent nature of RISC being simple. By having simple commands things become easier to modify later on. This is much like when I designed ZPE, concurrency was an additional feature that came later, as a result, I had to rewrite parts of the compiler and interpreter from the ground up to support it. Had I designed the environment to be concurrent from day one, it would have been much easier for me to do and not require the rewrite of several components.
In this machine code, $a0 is the output, or where the result is to be put. It required a few more instructions.
So how can it be faster? Well, this article is not going to explain this, as the main discussion in the article is about the number of new ARM-based computers out there, but if you want to know more visit this website.