By Jack Ganssle

Small is Beautiful

Published 3/05/2009

ARM Holdings announced that in the last quarter 1 billion ARM processors had been shipped. That's an astounding number of 32 bit CPUs. Presumably that means the year's figure is some three to four billion ARMs. The number of Pentium-class CPUs in the 250 million PCs shipped in the same period is in the noise compared to ARM sales.

More and more it's a 32 bit world.

But the low end thrives, too. Every day it seems there are more offerings from Microchip, Silabs, and other vendors. Just last week Atmel announced a new line of TinyAVR microcontrollers that need just 0.7 volts; they're optimized to run from a single AAA battery. The price: a buck in 10K lots.

They're wrong.

As 32 bit devices get cheaper, so do smaller ones. Tiny processors often make more efficient use of memory. And let's face it: An awful lot of control applications need just a tiny amount of smarts. A big CPU is overkill.

We have yet to see the dawn of the embedded revolution. Prices for the smallest devices will eventually fall to pennies. and then even further. At some point smart dust will be a reality. Ad hoc mesh networking, energy scavenging and other technologies will let us instrument the planet in ways no one has yet imagined.

Tom Cantrell's "Silicon Update" column in the March issue of Circuit Cellar (subscription only) describes a new offering from Freescale. The RS08 is a scaled-down version of their venerable 9508, which itself derives from the prehistoric 6800.

The RS08 has even fewer registers: There's an accumulator, PC, a shadow PC, and a two bit condition code register. That's it.

Want a call stack? Well, you could implement one in software, much as we did in the old 1802 days, but the RS08 is designed for simple applications that don't do much calling.

Need interrupts? Tough. The part doesn't support any. If a device wants attention it sets a bit in a register, and then it wakes up the CPU if asleep. That's it.

The DFN package makes a pencil eraser look huge. Sporting six to eight pins (two are dedicated to power, of course) it's clear the devices are aimed a simple control systems.

At the high end vendors are cramming in bigger multi-level caches, speculative execution, branch prediction and all sorts of nifty performance-enhancing extras. But cache remains problematic for deterministic embedded systems; the other features are nice, but performance remains stymied by clock rates/power issues and the memory bus bottleneck. It's refreshing to see smaller parts that embrace simplicity, that are designed to fit a particular niche really well.