“Nothing is a mistake. There is no win and no fail. There is only make.” – Immaculate Heart Art College, rule #6
In business, there’s the concept of creative destruction. Prof. Clayton Christensen argues about “the innovator’s dilemma” and disruption from below. In more prosaic terms, product companies must “watch their rearview mirrors” or else a competitor might come “roaring up their tailpipe.”
Getting your lunch eaten by a small and harmless-looking competitor is a time-honored tradition in this industry. We like to see the underdog take down the behemoth – so long as we’re employed by the underdog, that is. But you don’t often see sibling rivalry enter into the equation. This is less David and Goliath and more Cain and Abel.
ARM’s microprocessor architecture bestrides the microprocessor and microcontroller world. It’s the best-selling CPU design on the planet, powering everything from musical greeting cards, to industrial robots, to just about every mobile phone ever made. Part of ARM’s success is in its breadth of choice, with dozens of different CPU cores from fast to slow, big to little, old to new. There’s the multicore Cortex-A series at the top, and the low-end M-series at the bottom, with the little-noticed R-series standing in the middle keeping the other two product ranges from overlapping.
Longtime ARM licensee NXP has decided it’s time for Cortex-M to usurp the rights and privileges of Cortex-A. NXP wants its newest microcontroller to threaten A-series chips with its performance, its low cost, and its grown-up features. It’s jumping straight over the midrange R-series and nipping at the heels of the dominant Cortex-A.
NXP calls this pretender to the throne the i.MX RT1050, and it’s promised to be just the first in a long line of new microcontrollers with uppity intentions. Colloquially, the company calls this a “crossover” processor, in the automotive sense of a vehicle that’s neither fish nor fowl, but an amalgam of the two. To American ears, that’s probably a good thing, since crossover vehicles (aka, “cute-utes”) are inexplicably popular. Buyers in other countries, where they prefer normal cars, might be unconvinced.
The beating heart of the RT1050 is a Cortex-M7 processor core, a new CPU design for NXP. And beat it does: this CPU runs at up to 600 MHz, depending on the SKU you order and the voltage you apply to it. That pops out an EEMBC CoreMark score of 3036, which is about the same as a Pentium-M, an Atom N450, or even a 1.8-GHz 64-bit SPARC processor. If you do the arithmetic, that’s 5.06 CoreMark/MHz, nearly the same as a 2.5-GHz Intel Core i5 or an Atom D525. No slouch, this.
But the RT1050 is a microcontroller, not an outdated workstation processor, so the peripherals, the power, and the package are all important. On the I/O front, the chip boasts 10/100 Ethernet, USB OTG with PHY, CAN, SPI, I2C, UARTs, and other familiar serial interfaces; PWM and quadrature encoders for motor control; ADCs and DACs; its own DC/DC converter; and 2D graphics acceleration, audio outputs, and camera inputs for the fun stuff.
What it doesn’t have is any flash memory. This was, obviously, a deliberate decision on the part of NXP’s design team, and I got the sense that the company is a bit defensive about it. Certainly, most other MCUs have on-chip flash. Indeed, the Semiconductor Industry Association (SIA) treats on-chip flash as the very definition of a microcontroller; without it you’re a CPU, not an MCU. Great quantities of on-chip flash have become de rigueur for microcontrollers for many years. Why leave it off?
Cost and speed, to name two reasons. Flash manufacturing processes are a little different from pure-logic processes, so you wind up compromising processor speed and/or flash capacity when you mix the two. Flash-capable fab processes also cost more. A pure-logic process (in this case, its 40nm LP process) is well amortized, reliable, and cheap. That’s how you get a Cortex-M7 to run at 600 MHz. The company is already hinting strongly that 1-GHz versions aren’t far behind, once it jumps to the 28-nm node.
NXP also makes the case that its flash-less MCU costs less to operate, which seems a bit counterintuitive. After all, isn’t it cheaper to buy one chip than an MCU and a separate flash device? Nope, because discrete flash chips are cheap and plentiful, whereas flash-based MCUs bear the cost burden of the mixed fab process. You’re essentially paying a premium for engulfing the memory within your microcontroller, says NXP.
Besides, programming discrete off-chip flash is faster and cheaper than with an integrated device. Why? Because standard flash memories are just that: standard. Bulk-programming facilities are set up to program commodity flash devices efficiently. The chips have standard pinouts and follow standard programming timing and voltages. MCU-based devices are comparatively slow because they typically use the MCU to program itself, plus every MCU is different. NXP’s thesis is that if you want quick, cheap bulk programming, stick to commodity flash chips.
The price for all this? About $3 in quantities. An external flash memory will set you back a few pennies after that. But as the old saying goes, you’ll make it up in volume.
So, if NXP was so interested in performance, why didn’t it just pick a Cortex-A processor core like everybody else? As with comedy, the secret is timing. Interrupt latency is 10 times shorter in the M-series architecture, the company claims, and for real-time tasks, that’s a big deal. A fast and predictable M-series, with its minimal memory-protection unit, is better than a fast but over-provisioned A-series with its full MMU, multicore support, and larger instruction set. At least, it is for the market NXP is hoping to serve.
That market is for so-called edge devices, a catchall term for smart-but-previously-dumb gizmos that sit at the boundary between networks and real-life apparatus. With its basic graphics, audio, and networking features, the RT1050 would make a dandy controller for high-end commercial thermostats, industrial GUIs, consumer audio equipment, flying drones, and the other appurtenances of modern life. For three bucks, 600 megahertz, and the best-loved CPU instruction set the world as ever seen, that’s a pretty good deal.