“?What is wanted is not the will to believe, but the wish to find out, which is the exact opposite.” — Bertrand Russell
There’s an old joke that goes something like this. An engineer and a scientist are standing together at the end of a long hallway. They notice two pretty girls standing at the other end, so the engineer turns to the scientist and says, “I’ll make you a wager. Let’s both walk down the hallway until we’re half the distance to those two girls. Then we’ll walk half of the remaining distance, then half the distance after that, and so on. First one to get there wins. Ready… Go!”
The engineer starts jogging down the hallway, but the scientist stands completely still.
“What’s the matter?” asks the engineer. “Didn’t you understand the rules?”
“Oh, I understand perfectly,” replies the scientist. “This is a classic case of Zeno’s Paradox. No matter how much we walk, we’ll never reach our destination. It’s mathematically impossible, so there’s no point in starting.”
“That may be true,” says the engineer, “but I’ll get close enough to make it worthwhile!”
Whether Zeno’s Paradox describes reality or not (and there’s some debate about that), it does seem to affect our electronics engineering. “Close enough” is a real thing, for all practical purposes, in most cases. The corollary joke is that there are no completed software projects, only abandoned ones.
Take microprocessors. We seem to be trending toward a bifurcated world, where most projects are based on either an x86 processor or an ARM processor. Yes, there are dozens of other 16-, 32-, and 64-bit CPU families to choose from, but if you round off the fractions, it’s effectively a two-horse race.
Yet these two processors couldn’t be more different. The x86 is more than 40 years old and bears the marks of a product that’s been through countless redesigns. The x86 architecture accumulates new features the way a Dubai hotel accumulates Lamborghinis. It’s complex, hot, and expensive.
ARM is about half as old, comparatively streamlined and unadorned, and has a reputation for being extremely power-efficient. It’s also offered by dozens of different companies (are we in the hundreds yet?) that fill the market with different choices and different prices.
Intel manufactures its own chips; ARM relies on third-party foundries and ODMs. Intel is sole-sourced; ARM is broadly licensed. Intel dominates the desktop and servers; ARM rules the mobile market. Intel is fundamentally a manufacturing business; ARM is a design firm. The two companies are polar opposites, no matter how you look at them.
Yet how many of these differences really matter anymore? Have they gotten “close enough to make it worthwhile?” Intel wants to edge into the mobile market (boy, does it want into the mobile market…), while ARM is working mightily to crack into servers.
Take the issue of power consumption and its inescapable consequence, heat. The fantastically complex x86 architecture has a built-in – and permanent – disadvantage here. You can’t manage x86 compatibility without either a lot of transistors or a lot of firmware, and both consume energy. ARM processors are far simpler internally, giving them an innate advantage.
But, on the flip side, Intel owns and operates some of the world’s best semiconductor fab lines. ARM – or more accurately, ARM’s licensees – make do with third-party foundries, mostly TSMC. As good as TSMC is, it and other third-party foundries generally lag one full generation behind Intel in terms of cutting-edge manufacturing technology.
So, does Intel’s manufacturing muscle trump its architectural disadvantage? Or is x86 cursed for life, with no hope of ever achieving ARM-like power efficiencies?
The scientist would ponder all the variables and come up with a scaling factor, a ratio, or a complex calculus for making a determination. The engineer, on the other hand, can just eyeball the situation and declare it “close enough.”
And that’s pretty much where we stand. Intel and ARM started out at opposite ends of the hallway, but have closed the distance to each other. They’re not standing toe to toe just yet, but they’re definitely in each other’s faces and close enough for most practical purposes. Intel chips are not the fire-breathing dragons they once were (well, not all of them, anyway), nor are ARM-based chips delicate little butterflies. Both companies produce a range of competent 32- and 64-bit processors that are within shouting distance of each other in terms of power efficiency, heat dissipation, and even price. It’s no longer black and white, night and day, up and down.
So why don’t we see these two titans battle it out more often? If their onetime differences have eroded to the point of near-irrelevance, why isn’t there more head-to-head competition between them?
For that answer, we turn to another universal constant, this one called inertia. We’re accustomed to x86 chips fulfilling a certain role in our mental model of the world, while ARM-based chips fill another, quite different, cubbyhole. It doesn’t matter that both CPU families have outgrown their adolescent identities. Like actors that have been typecast, they’re stuck with their habituated roles.
And then there’s the software. Forty years of dominating the “real computer” industry tends to generate a mountain of computer-oriented operating systems, tools, middleware, and applications. Likewise, for ARM and its mobile-centric library of code. There’s nothing technical to prevent ARM from running Windows (in fact, it already does), nor from booting iOS on a Pentium. But you’re left with the feeling of… why?
And that’s the paradox. These two chip families, once so different but now so alike, are so close together now that it’s not worth swapping one for the other. If you’re a current ARM user, there’s little inducement to switch to x86, or vice versa. If your ARM code already runs and you’re happy with the upgrade roadmap ahead of you, why jettison all of that for another CPU family that offers more of the same?
Differentiation works both ways. It can open the door to certain markets while also locking you out of others. But without that differentiation, there’s little reason for customers to choose you over your competitor. ARM and x86 are far from interchangeable, but they’re also not as far apart as they once were. This means that, for the first time, you legitimately could consider replacing one with the other. But it also means that you’re not likely to.
A paradox, indeed.