It’s a floor wax! It’s a dessert topping! It’s the Cortex-M4!
As if ARM’s pantry of microprocessors weren’t already well stocked, now there’s another tasty treat to squeeze on the shelf. The Cortex-M4, revealed just yesterday, combines ingredients from the popular M3 microcontroller with a helping of goodies from the ARM9 and ARM11. The resulting confection is a microcontroller/DSP combination that should suit the tastes of embedded designers the world over.
As its name suggests, the new M4 is part of ARM’s low-end microcontroller range of 32-bit CPU cores that run the new(-ish) Thumb2 instruction set. Like other M-series processors, the M4 is intended for fairly low-cost chips in the $2–$15 range. Indeed, the first M4-based chip from NXP is due out late this year and will likely be priced right around $5 in volume.
What makes the M4 unique is its DSP instructions, which turn it into a kind of MCU/DSP hybrid. That’s a pretty rare feature for ARM processors and a first for the Cortex M-series. As a “digital signal controller,” the M4 competes with roughly similar devices like Infineon’s C2000 family, Analog Devices’ Blackfin, or TI’s MSP430. Yet the M4 is distinctly different from all of these, as we shall see.
Multicore Is Like Cholesterol
The DSP features of the M4 are an intrinsic part of its instruction set; there is no coprocessor. Instead, the M4’s standard RISC repertoire is supplemented with about 80 signal-processing operations, more than doubling the size of its instruction set. It’s like a Cortex-M3 that speaks a second language. The basic M3-standard instructions aren’t changed in any way; the new DSP instructions are simply a superset of operations above and beyond the baseline features.
The M4’s new suite of instructions borrows heavily from similar DSP and SIMD operations in the older ARM9 and ARM11 chips. If you’re already familiar with those, you’ll be right at home with the M4. In the ARM9/11 these were called VFP operations, for vector floating-point, although on the M4 you have your choice of floating-point or integer-only versions.
With its new DSP extensions, the M4 enters an increasingly crowded and muddy market for mixed microcontroller/DSP chips. Some vendors juggle these tasks with a separate DSP coprocessor or accelerator; some with a combined RISC/DSP instruction set (like the M4), and some with completely separate processors cohabitating in the same device. Each philosophy has its adherents.
Multicore processors are like cholesterol: there’s the good kind and the bad kind. The good kind bring the benefits of two (or more) processors for attacking two (or more) different kinds of software problems. The bad kind just complicate software development by mixing up architectures, development tools, and debugging. There are good reasons for mixing different processor cores, but it’s usually an uneasy alliance.
On the other hand, using a single processor with an expanded instruction set, as with the M4, makes programming a whole lot easier. You may not get the finely tuned performance of a purpose-built DSP, but you’ll likely get your code done sooner. Which your boss will appreciate and show his appreciation by not firing you.
The Other Guys
When they arrive later this year, the new M4-based chips will compete a bit with devices from TI, Microchip, ADI, and others. There are some similarities with MSP430 family, but TI’s chips are generally slower, cheaper, and lower-power than the first M4 devices are likely to be. ARM itself portrays the MSP430 as a microcontroller with DSP aspirations and the M4 as more of a DSP with microcontroller ability. Outfitted with the optional floating-point unit, an M4-based chip would clearly have the performance lead, at least for applications that can benefit from FP.
Microchip’s dsPIC family is a weakling competitor, although it’s wildly popular for very low-cost applications. An M4-based chip will run rings around a dsPIC, partly on architectural merit and partly because of the latter’s modest double-digit clock speeds.
ADI’s Blackfin brackets the M4 at the other end. Blackfin chips are faster (200 MHz and up) than what today’s M4 licensees are planning (closer to 100 MHz). But, like the M4, Blackfin uses a unified instruction set with no coprocessor or outboard accelerators. That gives it the same simplified software model and the advantage of a few years’ head start in the market. Plus, ADI made its name in DSPs, so that company has some credibility that ARM lacks among signal-processing aficionados.
Which isn’t to say that ARM is an underdog here. Far from it; the company has blanketed the market with just about every variation on the 32-bit processor theme that you could imagine. The M4 is just the latest installment. ARM’s software and third-party support are second to none, and the company’s chips are built by nearly 100 different semiconductor vendors around the world. (Five have licensed the M4 so far.) In contrast, Blackfin chips are sole-sourced from ADI and nowhere else. That’s either a benefit or a detriment, depending on your technical desires and commercial concerns. For my money, either one is a very safe bet. I’d lean toward ARM if I already had ARM tools or expertise in-house, and favor Analog Devices if I needed the added performance and DSP proficiency.
So embedded designers, your choices just got more complicated. And isn’t that what we rely on our processor makes to do?