ARM’s Cortex-M0 processor – how it works
ARM has introduced its smallest Cortex processor yet. At 12,000 gates, the firm sees the Cortex-M0 displacing 8 and 16bit processors in low-power applications, particularly where protocol stacks are required or wide data is manipulated.
The core is considerably simpler than the Cortex-M3 – the embedded microcontroller core that was the first ARM to be widely adopted in standalone microcontrollers.
“The M0 is a third of the size of the M3 in its minimal configuration,” ARM CPU product manager Dr Dominic Pajak told EW – 12,000 against 43,000 gates. Both are three-stage pipeline cores with 32bit data paths.
Gate count has been cut by choosing a basic architecture and a no-frills instruction set.
M0 is a von Neumann design executing a modified form of the Thumb instruction set made popular by the ARM7TDMI, compared with the M3’s Harvard architecture executing the full Thumb-2 instruction set.
According to Pajak, the M0 executes at 0.9Dmips/MHz, compared with 1.25Dmips/MHz from the M3 and 0.7Dmips/MHz from the ARM7TDMI.
The M0 consumes 85µW/MHz on a 180nm process, compared with 210µW/MHz from the M3. According to Pajak, power efficiency from a 180nm M0 is 10Dmips/mW, compared with 6Dmips/mW for the M3.
A handful of Thumb-2 instructions have been incorporated into the M0 to ease programming. “You can work 100% in C – even the interrupt handler and the reset handler,” said Richard York, ARM’s director of product marketing. “You could not do that with the ARM7TDMI. You need never write a line of assembler again.”
Despite the instruction set difference, York claims code size is similar. “Almost always the M0 is within a few per cent of the M3 because the M0 needs a pair of 16bit instructions where the M3 has one 32bit,” he said.
Other differences between the M0 and M3 include 32 versus 240 interrupts, and 4 versus 256 interrupt priorities.
Development tools include ARM’s full-blown tool suite and several options more suited to the thrifty world of microcontrollers.
“The Keil tools are focused on microcontrollers, and we are happy to support the GNU tool chain,” said York. “Code Red is building a low-cost tool chain based on the GNU tools. There are other tools coming up later this year that I cannot discuss. We want to do things that fit into the MPU world.”
Asked when someone might need to move to 32bit from 8 or 16bit, York said, “The protocol stack for ZigBee is atrocious on an 8bit core. It is the same with USB and Bluetooth, and if an ADC is 16bit, you are going to want 32bits to manipulate the data without overflowing.”
ARM worked with several lead partners, including NXP, to develop the M0.
“One of our lead partners designed two or three generations of touch screen controller with an 8051,” said York. “When they went to larger displays and wanted multiple touch, the ADC went from 12 to 16bits and the 8051 ran out of steam.”
ARM expects the core to be designed into medical devices, e-metering, lighting, motor control, gaming accessories and power supplies, as well as ZigBee and Z-Wave systems.
It is also looking at programmable mixed-signal asics for sensors and actuators.
Triad Semiconductor is another early adopter. “Smart sensors are an ever growing requirement,” said CTO Jim Kemerling. “Combining the Cortex-M0 processor with our configurable analogue and digital technology will provide customers with a fast cost-effective way to produce mixed-signal Asics.”Tags: ARM, Cortex-M0