|November 2028 is the 40th anniversary of ESD. Click here read other 2028 lookbacks.|
Looking back from the perspective of 2028, it surprises me that embedded systems are still defined the same way they were when they first emerged in the 1970s, 50 years ago.
Embedded systems as a specific market and technology emerged shortly after the invention of the microprocessor and microcontroller and before the emergence of the PC. Most electrical consumer devices became embedded systems, with microprocessors and microcontrollers providing built-in intelligence to washing machines, refrigerators, radios, VCRs, and so on.
In the 1970s through the 1990s, embedded systems were defined by what they did, not by how they did it: embedded is as embedded does. The common definition among the main players, such as Intel, Zilog, Motorola, Fairchild, AMD, and half a dozen smaller companies was that an embedded system was exactly what the name implied–a device or system, dedicated to one function, in which hidden or invisible microprocessors replaced much larger, bulky, and primitive mechanical and electromechanical subsystems.
While some of these embedded systems required response times in the microseconds, some didn't. Some were deterministic, others were not. But they were all dedicated to one or two functions and not modifiable by the end user.
By 2008, the number of dedicated function systems into which microprocessors and microcontrollers were embedded had expanded to include a wide range of multimedia-intensive consumer electronics and mobile devices. This led to some questioning of the original pragmatic definition–and there was considerable discussion on blogs and on Embedded.com. Embedded systems were in the midst of an identity crisis.
It was certainly not a crisis of confidence. At that time, embedded systems developers had everything to be confident about. With the maturing and resultant slowdown of the PC as the technology driver, electronics companies of all stripes were looking at embedded systems, and everything that used embedded system's technology tools and methods, as the market driver to give them back the growth they experienced in the late '80s and through the '90s.
Everywhere you looked, embedded systems developers and their skills were in demand: not just in traditional industrial, machine control, automotive, and network infrastructure systems, but in mobile phones, portable media devices, and even in the converged general-purpose devices such as Smartphones and iPhones.
To bring order out of this apparent lack of commonality, a variety of definitions of what constituted an embedded system emerged, most couched in terms of the specific hardware and software technologies used or specific performance features in particular application segments. There seemed to be as many definitions as there were markets and application segments.
But to define embedded systems in these ways was to make the same error as the six blind men of Indostan, who tried to determine what an elephant was by exploring it with their hands. One felt the elephant's trunk and declared the elephant was like a snake, another felt the tail and said the elephant was like a rope, still another felt its leg and said it was like a tree, and so on. The result, according to the 19th century American poet John Godfrey Saxe, was that they:
Disputed loud and long,
Each in his own opinion
Exceeding stiff and strong,
Though each was partly in the right,
All were in the wrong!
To get a true picture of the embedded systems elephant that included all the body parts, we had to look at the whole picture and not just a trunk or a tail or a leg. With the large variety of embedded devices, we needed to define clearly the unique characteristics of the niche in which they all fit.
Dedicated, fixed function, and customized
Intel's Max Domeika, in his 2008 book Software Development for Embedded Multicore Systems, tried to pin down the characteristics that defined an embedded system, no matter what its intended use was (from industrial to consumer).
Some of the defining characteristics he came up with were close to the ones Intel used when, after the introduction of the X86 architecture in the early 1970s, it found itself in the embedded systems business. Intel then defined the embedded system as a dedicated fixed-function, customized operating system in a customized form factor.
Using this as a working definition, then, the general-purpose iPhone (circa 2007), for example, would not be an embedded device but a wireless base station, which falls under the definition of embedded, as would the dedicated-function iPod music player.
It's clear that regardless of the hardware and software building blocks or the design parameters–real-time or not, deterministic or not–an embedded device is defined by what it does, not by how it does it. By this definition, a PC–designed as a general purpose “anything” machine–can be categorized as an embedded system if it has been adapted to serve a dedicated set of fixed functions, uses a customized operating system or uses a customized form factor, such as PC/104 module or some other single board computer configuration.
But the reverse is also true. A computing system that uses an RTOS, is built with hardware and software traditionally used in an embedded system, and which has real-time and deterministic capabilities may not be an embedded system, if it is not used in that way. (I have just described my first desktop computer, put together in the late 70s–before the advent of the IBM PC or Macintosh–from an embedded hardware platform based on the old S-100 bus, an RTOS and a text processor program normally used by software developers for writing code. It was definitely not an embedded system.)
As an analogy, just because a suburban urban vehicle (SUV) is built at a truck factory by truck builders and uses truck parts does not make it a truck. It is not a truck because it is not used as a truck but as an SUV.
By the same token, the iPhone–or any of the multifunction wireless appliances introduced by telephone companies starting in 2008–was not an embedded system, although it used many of the same software and hardware components as its special-purpose, dedicated-function iPoD predecessor because the iPhone and its clones were designed as “anything” machines, not dedicated function devices. They were programmable by the user to do a variety of tasks, such as telephony, music playing, video playing, text processing, and maintaining databases for information storage, such as contact lists.
In 2028, embedded systems are no longer defined by the computing hardware they use because they are processor-, memory-, peripheral-, and OS-agnostic. An embedded system can be designed to do any function, and today includes the technical accoutrements to achieve a dedicated goal, whether that compute engine is a microcontroller, general purpose processor, digital signal processor, programmable logic device, field programmable logic array, or application specific integrated circuit (ASIC).
Bernard Cole is the web editor of Embedded.com and aquisitions editor for Embedded Systems Design magazine. You may reach him at .