Two Bits, Four Bits, Thirty-Two Bits?
Right after I first got interested in computers, MITS introduced the Altair 8800. You could argue whether or not this really was the first "personal computer" but it certainly kicked off the chain of events that led to where we are today. Mind you, if you don't remember the Altair, it would hardly pass for a personal computer today. It was a box with a bunch of switches and LEDs on it. No keyboard. No terminal. Certainly no network, disk drives, or anything else.
White PapersMore >>
- Agile Desktop Infrastructures: You CAN Have It All
- Developing a User-Centric Secure Mobile Strategy: It's in Reach
What it did have was an 8-bit processor (an Intel 8080 to be exact) and I think the least expensive option was to buy it with 256 bytes of memory. No kilobytes. Certainly not megabytes. Bytes. At that time, the price of that little machine with 256 bytes of memory might as well have been a million dollars to me. I never did get my Altair. I built an 1802-based computer a few years later. It also started with 256 bytes of memory, but I added 4K afterwards. Recently, I built a replica Altair but it only looks like a shrunken Altair, none of the insides are the same.
However, I have been coding for a little single board module recently based on an ARM processor. It runs at 72MHz, has a 32-bit word, and not only does it have 64K of RAM (the most an 8080 could address) it also has 512K of flash memory. Besides that it sports a serial port and range of interesting I/O connections. How much did that cost me? About $25. That little board would have amazed me and my friends back in the days of the Altair. Adjusted for inflation, that $25 is probably about $5, the computer doesn't need a 50-pound power supply, and it is way more powerful than an Altair, even one tricked out to the max.
The cost of 32-bit processors is dropping like a rock. Development tools are available for cheap (I have a JTAG adapter that might have cost me $50 at the most). It is getting very hard to justify 8-bit CPUs anymore.
I was thinking about this lately because of the NXP800 family. I picked up an LPCXpresso board for it for $15. That includes an integrated debugger (not exactly JTAG) with a USB connection. You can snap the debugger off and use it with other projects. The toolset for the PC is free, too.
The LPC812 doesn't have quite the firepower that the other ARM chip (an STM32F103) has. It is an M0+ Cortex chip, less memory, and no analog inputs (it does have a comparator). What's interesting though is that the price of these chips will be in the $0.39 range and they will be available in 8-pin DIP and surface mount packages.
You might think that an 8-pin chip is limiting. It is, of course, to some degree. But the chip has a switch matrix that allows you to assign practically any of the chip's functions to any pin you want. You get a lot of choices, just not all at one time. Even more impressive is that UART, SPI, and I2C peripherals have built-in drivers (these don't consume your flash space).
If you really need more pins, you can get DIP packages for the LPC1114 (28 pins, but the price is around $2 each). Besides, other than for prototyping, I'd just as soon have surface mount anyway. Same for voltages. These chips are all 3.3V, but you must be getting used to that by now. Why else cling to 8-bit processors?
I suspect some of it is simple inertia. You know how to program a particular chip. You have the toolchain and the equipment. I imagine 8-bit will continue to attract people who need the lowest possible power consumption (although be careful, some 8-bit processors can eat a lot of power). The other caveat is that you have to consider total power consumption. Some phones, for example, consume less power at a higher frequency. The CPU draws more power when it is running, but at a faster clock, it can go to sleep earlier and save more power than a slower processor that sleeps less. So the power comparison is not always as easy as you think.
For some volume applications, even a few pennies difference in price can add up. Those applications will still hang on to 8-bit CPUs for awhile. I suspect many FPGA and ASIC designers will stick with 8-bit cores because they want a smaller area, leaving more room for the rest of their design.
Will you continue to use 8-bit CPUs in the next few years? Why? What will it take for you to move over to 32-bit? I'll have more to say about 32-bit CPUs in the weeks ahead. Meanwhile, leave a comment with your thoughts.