Pages

Thursday 13 September 2012

Design challenge – optimizing design metrics



The embedded-system designer must of course construct an implementation that
fulfills desired functionality, but a difficult challenge is to construct an implementation
that simultaneously optimizes numerous design metrics. For our purposes, an
implementation consists of a software processor with an accompanying program, a
connection of digital gates, or some combination thereof. A design metric is a measurable
feature of a system’s implementation. Common relevant metrics include:
Unit cost: the monetary cost of manufacturing each copy of the system, excluding
NRE cost.
NRE cost (Non-Recurring Engineering cost): The monetary cost of designing the
system. Once the system is designed, any number of units can be manufactured
without incurring any additional design cost (hence the term “non-recurring”).
Size: the physical space required by the system, often measured in bytes for software,
and gates or transistors for hardware.
Performance: the execution time or throughput of the system.
Power: the amount of power consumed by the system, which determines the lifetime
of a battery, or the cooling requirements of the IC, since more power means more
heat.
Flexibility: the ability to change the functionality of the system without incurring
heavy NRE cost. Software is typically considered very flexible.
Time-to-market: The amount of time required to design and manufacture the system
to the point the system can be sold to customers.
Time-to-prototype: The amount of time to build a working version of the system,
which may be bigger or more expensive than the final system implementation, but
can be used to verify the system’s usefulness and correctness and to refine the
system's functionality.

Embedded systems overview



1 Embedded systems overview
Computing systems are everywhere. It’s probably no surprise that millions of
computing systems are built every year destined for desktop computers (Personal
Computers, or PC’s), workstations, mainframes and servers. What may be surprising is
that billions of computing systems are built every year for a very different purpose: they
are embedded within larger electronic devices, repeatedly carrying out a particular
function, often going completely unrecognized by the device’s user. Creating a precise
definition of such embedded computing systems, or simply embedded systems, is not an
easy task. We might try the following definition: An embedded system is nearly any
computing system other than a desktop, laptop, or mainframe computer. That definition
isn’t perfect, but it may be as close as we’ll get. We can better understand such systems
by examining common examples and common characteristics. Such examination will
reveal major challenges facing designers of such systems.