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.
For pure performance, x86 has a clear edge.
“Support for legacy code is another x86 advantage. Allx86 chips must support the original 16-bit registers and instructions.”
Microsoft is at it again, rolling out an ARM-compatible 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?
Table of Contents
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 pipe lining, no longer fully apply. CISC architectures, such as ARM, have likewise become more complex, with support for floating point math, virtualization and hardware cryptography. In short,
RISC versus CISC is no longer the crucial question.
It simply doesn’t matter.
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 ARM v8, 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 optimizations pertaining to pipe lining and parallelisation.
In the end, it’s complexity versussimplicity, and complexity wins in the pure performance stakes, provided youhave sufficient transistors and power. In a modern desktop or server context,where transistor counts now measure in billions, and supplying ongoing powerisn’t a fundamental limitation, x86 still has a clear performance advantage.
x86, for now.
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-of order 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.
“The more mobility you require, the more ARM’s fundamental simplicity gives a power efficiency advantage.”
Apple’s latest ARM chips are more comparable to Intel’s Core M processors.
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.
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 ARMin phones and other ultra mobile 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 high performance 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 strong holds.
And the winner is…
In the short to medium term, x86 remains the obvious pick for performance computing, while ARM is the easy mobility option.The further out you look, however, the less certain those assumptions seem. On the one hand, thanks to AMD’s recent revitalization with the new Ryzen processor range, the x86 landscape suddenly looks lively once more. Indeed, as we go to print, Intel has revealed an expansive range of additional Core i9 chips, with up to 18 CPU cores and 36 threads. That’s a little bit crazy and a whole lot exciting. On the other, you could argue that it’s a blip that goes against the general trend for more innovation and growth in the ARM market.
What’s more, thanks to ARM’s more open approach to licensing, there are far more companies creating ARM-based CPUs and SoCs than the mere pairing of Intel and AMD on the x86 side of the equation. In the very long run, then, the in evitable encroachment of ARM on traditional x86 territory seems irresistible. But for fans of high-performance personal computing, x86 will be the architecture of choice for a very long time to come.