The term embedded system refers to the use of electronics and software within a

product, as opposed to a general-purpose computer, such as a laptop or desktop sys-
tem. Millions of computers are sold every year, including laptops, personal comput-
ers, workstations, servers, mainframes, and supercomputers. In contrast, billions of

computer systems are produced each year that are embedded within larger devices.

Today, many, perhaps most, devices that use electric power have an embedded com-
puting system. It is likely that in the near future virtually all such devices will have

embedded computing systems.
Types of devices with embedded systems are almost too numerous to list.

Examples include cell phones, digital cameras, video cameras, calculators, micro-
wave ovens, home security systems, washing machines, lighting systems, ther-
mostats, printers, various automotive systems (e.g., transmission control, cruise

control, fuel injection, anti-​­lock brakes, and suspension systems), tennis rack-
ets, toothbrushes, and numerous types of sensors and actuators in automated

systems.
Often, embedded systems are tightly coupled to their environment. This can

give rise to real-time constraints imposed by the need to interact with the environ-
ment. Constraints, such as required speeds of motion, required precision of meas-
urement, and required time durations, dictate the timing of software operations. If

multiple activities must be managed simultaneously, this imposes more complex
real-time constraints.

Figure 1.14 shows in general terms an embedded system organization. In addi-
tion to the processor and memory, there are a number of elements that differ from

the typical desktop or laptop computer:

■ There may be a variety of interfaces that enable the system to measure, manip-
ulate, and otherwise interact with the external environment. Embedded sys-
tems often interact (sense, manipulate, and communicate) with external world

through sensors and actuators and hence are typically reactive systems; a

30 Chapter 1 / Basic Concepts and Computer Evolution

reactive system is in continual interaction with the environment and executes
at a pace determined by that environment.
■ The human interface may be as simple as a flashing light or as complicated as
real-time robotic vision. In many cases, there is no human interface.
■ The diagnostic port may be used for diagnosing the system that is being
controlled—not just for diagnosing the computer.
■ Special-purpose field programmable (FPGA), application-specific (ASIC), or
even nondigital hardware may be used to increase performance or reliability.
■ Software often has a fixed function and is specific to the application.

■ Efficiency is of paramount importance for embedded systems. They are opti-
mized for energy, code size, execution time, weight and dimensions, and cost.

There are several noteworthy areas of similarity to general-purpose computer
systems as well:
■ Even with nominally fixed function software, the ability to field upgrade to fix
bugs, to improve security, and to add functionality, has become very important
for embedded systems, and not just in consumer devices.

■ One comparatively recent development has been of embedded system plat-
forms that support a wide variety of apps. Good examples of this are smart-
phones and audio/visual devices, such as smart TVs.