The emergence and media domination of ARM technology could be a nail in the coffin for x86, but each has its own place and may continue to be useful in the future.
Though far away from the clever and polarizing subconscious marketing tactics of retail brands, a similar battle of “brandism” is paralleled in today’s embedded market in the long-fought architectural war between x86 and ARM.
There remain few who haven’t subconsciously succumbed to “fanboyism” themselves, or whilst not actually users of either, have a sufficiently vested interest in either technology that their impartiality itself is long since obsolete. Thankfully my role in the UK embedded industry enables me to analyze this question in depth, without the complication of any bias of my own.
Please note for the purposes of this article x86 refers to both 32-bit x86 and 64-bit x64, whilst ARM refers to all ARM derivatives.
The answer to the title question would vary wildly depending upon on which sector and within which market you asked. Most, I suspect, would also respond with an equally blinkered insistence of their view. We’ll begin with the two obvious polar opposites, which usefully highlight the key benefits of both architectures simultaneously.
The mobile/multimedia mogul would be astounded at any suggestion that x86 ever had, let alone deserves, any current or future place in his product line of, for example, smartphones and tablets. ARM’s low power has enabled battery life an x86 equivalent could merely dream of, whilst its built-in multimedia decoding capabilities enable even 1080p HD video playback in the tiniest of packages relative to the substantial real estate an x86 system would require. It’s easy to see how in this industry, yes, x86 would be dead – if it were ever really alive!
The scientific data processor, needing to process and analyze millions of pieces of data, would abhor replacing his blistering performance from x86 with an ARM equivalent. This industry cares little about low power beyond its general environmental credentials, and certainly not in trade off to processing performance. Whilst ARM may one day draw level, its disparate focus would suggest this is improbable.
In which direction the scales tip is dependent upon a number of factors, but those key in our industry today remain processing performance, power consumption, and quantity. The water is increasingly murkier as time progresses, but as a general rule, if production quantities are high and processing performance and power consumption requirements are minimal, ARM is likely to be the way forward.
If the opposite is true, x86 will almost certainly remain the most efficient route. Rarely will your application follow those rules precisely, and between lies a grey area. In these instances, do your research thoroughly, or contact an unbiased industry expert for advice – ensure they work with both architectures to ensure this impartiality.
A big problem for ARM initially was a lack of familiarity amongst programmers of x86 toolsets. Whilst ARM evidently offered huge advantages in power consumption and cost, the initial cost outlays in development tools and engineering learning curves left it the reserve of only the highest-quantity applications.
Even having overcome the initial development hurdles, the unfamiliarity of the technology with those further down the chain, such as system integrators, installers, and maintenance engineers, further increased overall cost due to their own learning curves. This was exacerbated by the typically less “layman friendly” operating systems that ARM technology at the time supported. For example, even the Microsoft ARM flavor, Windows CE, offers almost zero support for retrospective modification once the image has been built and deployed.
Initially, due to entire infrastructures being x86-based, it was difficult to integrate non-x86 equipment without expensive translation requirements – a barrier for truly connected systems, especially in an enterprise environment. Thankfully those lines have blurred so much since then that this is no longer considered an issue.
In fact, one begins to wonder, with the technological advancements that ARM technology has made to address every one of its historical shortfalls, whether x86 has only hung on this long in what appear to be heavily ARM suited applications due to engineering familiarity.
In these low-power, probably mobile applications, what has potentially held back its death, but could also end up being the nail in the coffin for it, is the new generation of engineers brought up on ARM; for them, x86 will be the unfamiliar, cumbersome, and inflexible architecture that ARM was for so many, for so long.