Head to head: x86 vs ARM
In this new monthly feature, Jeremy Laird pits two competing techs in a head-to-head battle to decide which one is superior.
Microsoft is at it again, rolling out an ARMcompatible version of Windows, this time with emulation capabilities to support legacy 32-bit x86 apps. How well that emulation works remains to be seen. But it begs the age-old question of how the rival CPU architectures compare, and what the future holds. Are ARM chips still the choice for mobile efficiency? Is x86 still the obvious performance play? Will the swarm of ARM chip makers devour every form factor currently dominated by x86? Or can Intel finally make a successful phone chip?
Round 1 RISC VS CISC
Remember when RISC versus CISC was the battle of the ages? Even today, Intel’s chips and the upstart battalions of ARM processors align according to this paradigm, with x86 CPUs still CISC (or complex instruction set computing), and ARM representing the vanguard of RISC (or reduced instruction set computing).
But, in practice, it’s a moot point. That’s because ever since the Pentium Pro (and AMD’s K5), x86 processors have really been RISC chips internally, and have relied upon a microcode translation layer to handle the x86 CISC instruction set. What’s more, over time, x86 coding has coalesced around a relatively small number of commonly used instructions. All of which means that the old divides that saw x86 chips require relatively complex compilers, along with complex instruction scheduling and decoding hardware, and thus a higher transistor count for a given theoretical performance capability, not to mention limitations on instruction pipelining, no longer fully apply. CISC architectures, such as ARM, have likewise become more complex, with support for floating point math, virtualisation and hardware cryptography. In short, RISC versus CISC is no longer the crucial question.
It simply doesn’t matter.
Round 2 PURE PERFORMANCE
If RISC versus CISC is no longer a crucial metric, there is still a divide between x86 and ARM that maps to similar territory: x86 remains a relatively complex instruction set; ARM relatively simple.
Take ARMv8, the latest ARM instruction set. All ARMv8 instructions are 32-bit (unless in 16-bit thumb mode), and with that comes the usual trade-off of fixed-length instruction encoding. On the other hand, x86 has variable length instructions and supports anywhere from 8 to 120 bits.
So x86 decoders are relatively big and complex, ARM decoders small and simple. That means x86 has an inherent advantage in terms of instruction density, while an arguably ‘purer’ CISC architecture like ARM runs up against instruction-dependent limitations when it comes to optimisations pertaining to pipelining and parallelisation.
In the end, it’s complexity versus simplicity, and complexity wins in the pure performance stakes, provided you have sufficient transistors and power. In a modern desktop or server context, where transistor counts now measure in billions, and supplying ongoing power isn’t a fundamental limitation, x86 still has a clear performance advantage.
x86, for now.
Round 3 MOBILE PERFORMANCE
What’s good for x86’s goose is also good for ARM’s gander. By that, we mean that very much the same attributes and qualities that give x86 CPUs the edge in terms of pure performance play to ARM’s strengths as a mobile processor.
Admittedly, x86 and ARM have converged quite dramatically. If you compare the likes of, say, Apple’s recent CPU cores (in iPads and iPhones) with those of Intel, they look remarkably similar from the proverbial 1,000 feet.
Thus, whether it’s x86 or ARM, you’ll see the boxes alongside out-oforder execution, 64-bit memory addressing and even 6-wide instruction issuing checked for both architectures. What’s more, in the real world, if you compare, for instance, the first Apple iPad Pro, with its dual-core ARM processor, to a 12-inch super-thin MacBook, and its dual-core x86 chip, you’ll find they trade blows in basic performance metrics.
Remember, however, that this particular comparison is at the margins where x86 and ARM overlap — the most powerful ARM architecture versus the weakest full-power Intel Core chip. The more mobility you require, the more ARM’s fundamental simplicity gives a power efficiency advantage.
ARM, with efficient ease.
“Support for legacy code is another x86 advantage. All x86 chips must support the original 16-bit registers and instructions.”
Round 4 SOFTWARE SUPPORT
Much of this comes down to what kind of software you run. In theory, pretty much any app can be coded for either architecture. However, there are differences that give x86 an advantage.
For starters, part of the complexity of x86 includes support for instruction extensions that improve performance in certain workloads. We’re dealing here with that middle ground between true general-purpose processing and fixed-function hardware accelerators.
Adding a small fixed-function engine to an ARM SoC, perhaps for video decoding, is simple. But the added complexity and transistor count of x86 processors allows for the addition of programmable vector instruction sets, such as MMX and AVX, that can be used for a broad range of workloads. It makes x86 more flexible for extracting a lot of performance from a wide range of code.
Support for legacy code is another x86 advantage. All x86 chips must support the original 16-bit registers and instructions. ARMv8 architectures, on the other hand, only support ARMv7 or AArch32 code across exception boundaries. Simply put, not only is there more existing x86 code to choose from, but x86 runs old code faster and better.
It’s x86’s greatest strength.
Round 5 FUTURE DOMINANCE
As things stand, neither x86 nor ARM dominates the whole landscape. For power, x86 has the edge, for efficiency and portability, ARM is the obvious choice. But will it always be this way?
For a while, it looked as though Intel wanted to insert x86 into every form factor and application. It created the Atom processor to take on ARM in phones and other ultramobile devices. Meanwhile, ARM chip makers, such as Qualcomm, have been increasing pure processing power and even creating products for server computers. Indeed, Microsoft ported Windows Server for ARM architectures, though it hasn’t yet been released for retail, and it’s having a second crack at supporting client ARM machines with a Windows OS.
That said, Intel has pulled out of the phone market, and narrowed its ambitions for Atom to highperformance tablet PCs. And ARM’s server strategy is far from proven, as are ARM client PCs. Who would have guessed that Intel would fail so miserably in its efforts to move into ARM’s territory? For the foreseeable future, the built-in advantages of x86 and ARM will make them very hard to budge from their respective strongholds.
A small edge to ARM.
“The more mobility you require, the more ARM’s fundamental simplicity gives a power efficiency advantage.”
For pure performance, x86 has a clear edge.
Apple’s latest ARM chips are more comparable to Intel’s Core M processors.