Flip a coin. Will it come up heads, tails, or edge?
Earlier we talked about how the CPU and MCU choices are boiling down to just two: ARM and x86. Lately it seems that most programmers and engineers are choosing one or the other for their next project, while perfectly good alternatives such as PowerPC, MIPS, AVR, and others fall by the wayside.
There are good reasons for this. Rallying around one architecture (or a very few) has its advantages, both for individual engineers and for engineering as a whole. Popular architectures get better development tools, more middleware, and broader support. Paradoxically, a lack of choice in CPU architecture leads to more choice in the surrounding ecosystem. If we all settle on ARM (or x86, or 8051, etc.) then we can all have our pick of compilers, debuggers, and operating systems. If 50 different chip families were equally popular, all that ecosystem support would be divided among them, and we’ve have fewer real choices. There’d be only one or two PowerPC compilers, a couple of x86 compilers, and so on.
The possible downside to this trend is that we might wind up with a microprocessor monoculture. That is, there’d be only one dominant CPU family for everything from cell phones to spacecraft, from video games to vending machines. What a sad, gray world that would be, at least from an engineering perspective.
We’re certainly not there yet, but we’re heading that way. And as we saw earlier, that’s not necessarily a bad thing. Removing one of the proverbial donkey’s two haystacks makes life easier for the donkey, who doesn’t have to choose between two equivalent options and wind up starving. Reducing our choice of processors means we get on to the work of programming, or UI design, or power management that much sooner.
But ARM presents an interesting option-within-an-option. ARM doesn’t make any chips of its own, of course. It just draws up the plans and licenses those designs to an expanding legion of chipmakers – over 100 at last count – who produce the actual chips that we buy. So for an engineer, it’s not enough to choose the ARM architecture; you have to pick out an individual chip. And so now we’re presented with options again.
ARM’s licensing model isn’t new, nor is it original to the company. Plenty of firms license semiconductor intellectual property (IP), but ARM is the shining example of how to be spectacularly successful at it. A number of factors led to ARM’s success (many of them involving chance and dumb luck, but there you go), but the point is it’s now the dominant 32-bit architecture on the planet, outselling x86 by at least 5-to-1 and all the others by a much bigger margin.
ARM’s broad – some would say promiscuous – licensing model encourages competition among its many vendors. Want a dual-core application processor for your next smartphone? Qualcomm, Texas Instruments, nVidia and others will be happy to supply you. Want an inexpensive little MCU based on the Cortex-M0? There are plenty to choose from. Dozens and dozens of chipmakers are collectively scrabbling to fill every little niche in the big CPU and MCU ecosystem. It doesn’t matter to ARM which company wins in which segment, so long as one of them does. The royalties back to ARM are the same either way.
At the microcontroller end of the spectrum, I think this strategy works particularly well. There are ARM-based MCUs selling for less than a dollar, with useful I/O and respectable clock speeds. There aren’t quite the hundreds of variations that we see with, say, 8051-based chips or Microchip PIC variants, but ARM is a relative newcomer to this market, so give ’em time.
Where ARM has the lead over PIC or AVR or 8051 is growth headroom. It’s the only family that spans the spectrum from four bits (i.e., $0.50) to 64-bits devices, with plenty of stops along the way. ColdFire/68K, MIPS, and x86 all have something like that, but not with the same conviction. Freescale’s beloved old CISC family is on its last legs, and MIPS has far fewer suppliers and seems to be circling the drain. Only x86 has the same product breadth, from the old 8086 at the low end to the fire-breathing (almost literally) Xeon processors at the high end, and there are even some licensable soft-core knockoffs available from third parties. But x86 has never really made a dent in anything outside of PCs and PC-centric devices, and there’s nothing available in the dollar-store price range. ARM and x86 may overlap in the midrange, but ARM has the low end of the market all to itself, and that’s where the volume is.
In coastal towns, visitors to the beach are cautioned to never turn their backs on the ocean, lest a big wave sneak up and carry them away. ARM’s waves of success threaten to carry away the flotsam, in the form of lesser MCU families. It also erodes and undermines seemingly permanent fixtures on the landscape, such as 8051, PIC, and 6805 families. It smoothens out the scenery while also carving new features.
ARM’s roadmap, from lowly MCU to 64-bit multicore server cluster, makes it an architecture that engineers can stay with for their entire careers. Of course, there was a time when we thought that was true of 68K, and MIPS, and SPARC, and other processor families, too. Today, ARM offers the right combination of limited choice (versus other architectures) and nearly unlimited choice (of development tools, software, and silicon suppliers). It’s a paradoxical offering that seems to work. Right up until the next big wave comes along…