Unit I Part 1 Introduction Design Methodologies
Unit I Part 1 Introduction Design Methodologies
EMBEDDED COMPUTING
BY
T. RAMAKRISHNAIAH,
ASSOCIATE PROFESSOR,
DEPT OF ECE,VCE.
CONTENTS
Introduction
Complex systems and Microprocessor
Embedded System Design Process
Formalisms for System Design
Design Examples
Definition
Embedded System
A combination of hardware and software which together form
a component of a larger machine. An example of an embedded
system is a microprocessor that controls an automobile
engine.
***Source: www.computeruser.com/resources/dictionary
Why Embedded System ?
Performance
Technology Advances
CMOS VLSI dominates older technologies (TTL, ECL)
Computer architecture improvements
RISC, superscalar, RAID, …
Price
Simpler development
CMOS VLSI: smaller systems, fewer components
Higher volumes
CMOS VLSI : same device cost 10,000 vs. 10,000,000 units
Embedded system vs General Computer
Performs one or a few pre-defined tasks
Often mass-produced
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.
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.
A high-end automobile may have 100 microprocessors, but even
inexpensive cars today use 40 microprocessors. Some of these
microprocessors do very simple things such as detect whether seat
belts are in use. Others control critical functions such as the ignition
and braking systems.
Application
BMW 850i brake and stability control system
Controlling the wheels of the car.
Reduces skidding by pumping the brakes.
The purpose of an ABS is to temporarily release the brake on a
wheel when it rotates too slowly—when a wheel stops turning, the
car starts skidding and becomes hard to control. It sits between the
hydraulic pump, which provides power to the brakes.
The ABS system uses sensors on each wheel to measure the speed
of the wheel. The wheel speeds are used by the ABS system to
determine how to vary the hydraulic fluid pressure to prevent the
wheels from skidding.
The ASC+T system’s job is to control the engine power and
the brake to improve the car’s stability during maneuvers.
The ASC+T controls four different systems: throttle,
ignition timing, differential brake, and (on automatic
transmission cars) gear shifting. The ASC+T can be turned
off by the driver, which can be important when operating
with tire snow chains.
The engine and control management units include the
electronically controlled throttle, digital engine
management, and electronic transmission control. The
ASC+T control unit has two microprocessors on two
printed circuit boards, one of which concentrates on logic-
relevant components and the other on performance-
specific components.
Some of the main characteristics:
Why not use PCs for all embedded computing? Put another way, how
many different hardware platforms do we need for embedded
computing systems? PCs are widely used and provide a very flexible
programming environment. Components of PCs are, in fact, used in
many embedded computing systems. But several factors keep us from
using the stock PC as the universal Embedded computing platform.
THE PHYSICS OF S/W
Software performance and energy consumption are
very important properties when we are connecting
our embedded computers to the real world. We need
to understand the sources of performance and power
consumption if we are to be able to design programs
that meet our application’s goals.
Challenges in Embedded Computing System
Design
How much hardware do we need?
How do we meet deadlines?
How do we minimize power consumption?
How do we design for upgradability?
Does it really work?
■ Complex testing
■ Limited observability and controllability
■ Restricted development environments
Performance in Embedded Computing
Embedded system designers, in contrast, have a very
clear performance goal in mind—their program must
meet its deadline. At the heart of embedded
computing is real-time computing, which is the
science and art of programming to deadlines. The
program receives its input data; the deadline is the
time at which a computation must be finished.
■ CPU
■ Platform
■ Program
■ Task
■ Multiprocessor
THE EMBEDDED SYSTEM DESIGN PROCESS
Cont…
We need to consider the major goals of the design:
■ Manufacturing cost
■ Performance (both overall speed and deadlines)
■ Power consumption
We must also consider the tasks we need to perform at every
step in the design process. At each step in the design, we add
detail:
■ We must analyze the design at each step to determine how
we can meet the specifications.
■ We must then refine the design to add detail.
■ And we must verify the design to ensure that it still meets
all system goals, such as cost, speed, and so on.
Requirements
May be functional or
nonfunctional
■ Performance
■ Cost
■ Physical size and weight
■ Power consumption
EXAMPLE
Requirements analysis of a GPS moving
map
Requirements chart for our
moving map system:
Specification
The specification is more precise—it serves as the contract
between the customer and the architects.
A specification of the GPS system would include several
components:
■ Data received from the GPS satellite constellation.
■ Map data.
■ User interface.
■ Operations that must be performed to satisfy customer
requests.
■ Background actions required to keep the system
running, such as operating the GPS receiver.
NOTE-:UML, a language used for describing specifications
Architecture Design
The architecture is a plan for the overall
structure of the system that will be used later
to design the components that make up the
architecture.
The creation of the architecture is the first
phase of what many designers think of as
design.
A sample architecture for the moving
map
We need to search the
topographic database and to
render (i.e., draw) the results
for the display.
We have chosen to separate
those functions so that we can
potentially do them in parallel
—performing rendering
separately from searching the
database may help us update
the screen more fluidly.
The hardware block diagram
We have one central CPU
surrounded by memory and I/O
devices.
We have chosen to use two
memories: a frame buffer for
the pixels to be displayed and a
separate program/data
memory for general use by the
CPU.
The software block diagram
It is closely follows the system
block diagram, but we have
added a timer to control when
we read the buttons on the
user interface and render data
onto the screen.
Designing Hardware and Software
Components
The component design effort builds
those components in conformance to the
architecture and specification.
The components will in general include
both hardware—FPGAs, boards and so
on—and software modules.
Some of the components will be ready-
made.
Using standard software for these access
functions not only saves us design time, but it
may give us a faster implementation for
specialized functions such as the data
decompression phase.
We will have to design some components our
self. Even if we are using only standard
integrated circuits, we may have to design the
printed circuit board that connects them.
We will probably have to do a lot of custom
programming as well.
The power consumption of the moving
map software example is particularly
important.
We may need to be very careful about how
you read and write memory to minimize
power—for example, since memory
accesses are a major source of power
consumption, memory transactions must be
carefully planned to avoid reading the same
data several times.
System Integration
Only after the components are built do
we have the satisfaction of putting them
together and seeing a working system. Of
course, this phase usually consists of a lot
more than just plugging everything
together and standing back.
Bugs are typically found during system
integration, and good planning can help
us find the bugs quickly.
System integration is difficult because it usually
uncovers problems.
It is often hard to observe the system in sufficient detail
to determine exactly what is wrong—the debugging
facilities for embedded systems are usually much more
limited than what you would find on desktop systems.
As a result, determining why things do not set work
correctly and how they can be fixed is a challenge in
itself.
Careful attention to inserting appropriate debugging
facilities during design can help ease system integration
problems, but the nature of embedded computing
means that this phase will always be a challenge.