implement software that performs the required processing. Computer engineering, such as
mechanical design or thermodynamics, is a fundamental discipline that can be applied in many
different domains. Of course, embedded computing system design does not stand alone. Many of
the challenges encountered in the design of an embedded computing system are not computer
engineering—for example, they may be mechanical or analog electrical problems. In this book we
are primarily interested in the embedded computer itself, so we will concentrate on the hardware
and software that enable the desired functions in the final product.
1.2.1. Embedding computers
Computers have been embedded into applications since the earliest days of computing. One
example is the Whirlwind, a computer designed at MIT in the late 1940s and early 1950s. Whirlwind
was also the first computer designed to support real-time operation and was originally conceived
as a mechanism for controlling an aircraft simulator. Even though it was extremely large physically
compared to today's computers (it contained over 4000 vacuum tubes, for example), its complete
design from components to system was attuned to the needs of real-time embedded computing.
The utility of computers in replacing mechanical or human controllers was evident from the very
beginning of the computer era—for example, computers were proposed to control chemical
processes in the late 1940s [Sto95].
A microprocessor is a single-chip CPU. VLSI (very large-scale integration) technology has
allowed us to put a complete CPU on a single chip since the 1970s, but those CPUs were very
simple. The first microprocessor, the Intel 4004, was designed for an embedded application, namely,
a calculator. The calculator was not a general-purpose computer—it merely provided basic
arithmetic functions. However, Ted Hoff of Intel realized that a general-purpose computer
programmed properly could implement the required function and that the computer-on-a-chip
could then be reprogrammed for use in other products as well. Because integrated circuit design
was (and still is) an expensive and time-consuming process, the ability to reuse the hardware design
by changing the software was a key breakthrough. The HP-35 was the first handheld calculator to
perform transcendental functions [Whi72]. It was introduced in 1972, so it used several chips to
implement the CPU, rather than a single-chip microprocessor. However, the ability to write
programs to perform math rather than having to design digital circuits to perform operations such
as trigonometric functions was critical to the successful design of the calculator.
Automobile designers started making use of the microprocessor soon after single-chip CPUs
became available. The most important and sophisticated use of microprocessors in automobiles was
to control the engine: determining when spark plugs fire, controlling the fuel/air mixture, and so on.
There was a trend toward electronics in automobiles in general—electronic devices could be used to
replace the mechanical distributor. But the big push toward microprocessor-based engine control
came from two nearly simultaneous developments: The oil shock of the 1970s caused consumers to
place much higher value on fuel economy and fears of pollution resulted in laws restricting
automobile engine emissions. The combination of low fuel consumption and low emissions is very
difficult to achieve; to meet these goals without compromising engine performance, automobile
manufacturers turned to sophisticated control algorithms that could be implemented only with
microprocessors.
Microprocessors come in many different levels of sophistication; they are usually classified by
their word size. An 8-bit microcontroller is designed for low-cost applications and includes on-
board memory and I/O devices; a 16-bit microcontroller is often used for more sophisticated
applications that may require either longer word lengths or off-chip I/O and memory; and a 32-bit
RISC microprocessor offers very high performance for computation-intensive applications.
Given the wide variety of microprocessor types available, it should be no surprise that
microprocessors are used in many ways. There are many household uses of microprocessors. The
typical microwave oven has at least one microprocessor to control oven operation. Many houses
have advanced thermostat systems, which change the temperature level at various times during the
day. The modern camera is a prime example of the powerful features that can be added under
microprocessor control.
Digital television makes extensive use of embedded processors. In some cases, specialized CPUs
are designed to execute important algorithms—an example is the CPU designed for audio
processing in the SGS Thomson chip set for DirecTV [Lie98]. This processor is designed to
efficiently implement programs for digital audio decoding. A programmable CPU was used rather