The Gap – Part 2: MPUs versus MCUs
By Guest Blogger Sean Newton of STMicroelectronics
In “The Gap Part 1: General Versus Specific Computing Devices,” I discussed the differences between the first IBM PC, a general computing appliance, and the HP-11C handheld calculator, a specific computing appliance.
To me “The Gap” is divided into two categories of computing devices:
- Microprocessor-based computing devices, or MPUs
- Microcontroller-based computing devices, or MCUs
My intention with this terminology is not to split hairs or create a religious argument, but to show two different markets of base computing devices.
MPU based systems are those with a microprocessor and connect to large amounts of volatile and non-volatile memories used for running programs (think Gigabytes). They typically have high-end user interfaces (high-definition color displays, keyboards, touch and/or mice) with various digital subsystems used to connect to the external, analog world. The Apple II and then the IBM PC were my first MPU systems.
Microcontroller systems are typically self-contained single chip systems that have a CPU with internal volatile and non-volatile storage, from a few KBs up to a few MBs, with limited general functionality outside of their specific purpose. My HP 11C handheld calculator is a prime example.
The tide of connectivity rushed in for those standalone MPU-based systems, first with modems, then Ethernet, Wi-Fi and now a host of other wired and wireless connectivity choices. The same capability is now sweeping in to include MCU systems. Since most standalone specific information devices are MCU-based, there are lots of opportunities to add connectivity for both consumer and commercial purposes. Most standalone devices have a very limited user interface, but with connectivity, specific apps can be developed to further enhance their user interface capabilities.
Another area in which “The Gap” appears is how the two classes of devices are typically programmed. Microprocessor systems usually have a large, file-based OS such as Linux, Windows, or iOS. User applications are written in a wide variety of high-level programming languages, abstracted by the underlying OS. Microcontroller systems can run an RTOS or in native mode and are mostly based on the C or assembly language. Efforts exist to bring higher level programming languages such as Java and C++ into MCU systems, but the variety of programming languages available is very limited.
Surprisingly, the power differences between a general computing appliance and specific computing device are still with us today. Even modern day information appliances struggle to maintain useful operation longer than 24hrs without a recharge, especially small form factor devices like smartphones.
One of the more interesting debates of this gap is appearing in the advent of the wearables market, particularly in the form of the smart watch. I recall my first digital watch, a Casio with a red LED display, which had a battery life of about 1 year. It appears the best “smart watches” today have a battery life of about one week. Those smart watches running a full blown MPU architecture will suffer the same issue smartphones have today, constant need to recharge within a day or two. The most powerful MCU’s power profile is still, at worst, one order of magnitude less than the nearest MPU, without considering the power consumed by external RAM and non-volatile memory.
Regardless of power differences, the technology is available today for MCU-based standalone devices to connect to a variety of wireless technologies. This connectivity allows MCU-based systems to connect to their MPU-based general appliance cousins, ringing in a new era of innovation.
Welcome to the era of connected devices! Let the explosion begin!