You are on page 1of 57

Introduction

 What are embedded computing systems?


 Challenges in embedded computing
system design.
 Design methodologies.

04/02/24
Definition

 Embedded computing system: any device


that includes a programmable computer
but is not itself a general-purpose
computer.
 Take advantage of application
characteristics to optimize the design:
 don’t need all the general-purpose bells and
whistles.

04/02/24
Embedding a computer

output analog

input analog
CPU

mem
embedded
computer

04/02/24
Examples

 Cell phone.
 Printer.
 Automobile: engine, brakes, dash, etc.
 Airplane: engine, flight controls,
nav/comm.
 Digital television.
 Household appliances.

04/02/24
Microprocessor varieties

 Microcontroller: includes I/O devices, on-


board memory.
 Digital signal processor (DSP):
microprocessor optimized for digital signal
processing.
 Typical embedded word sizes: 8-bit, 16-
bit, 32-bit.

04/02/24
Application examples

 Simple control: front panel of microwave


oven, etc.
 Canon EOS 3 has three microprocessors.
 32-bit RISC CPU runs autofocus and eye
control systems.
 Digital TV: programmable CPUs +
hardwired logic for video/audio decode,
menus, etc.
04/02/24
Automotive embedded
systems

 Today’s high-end automobile may have


100 microprocessors:
 4-bit microcontroller checks seat belt;
 microcontrollers run dashboard devices;
 16/32-bit microprocessor controls engine.

04/02/24
BMW 850i brake and
stability control system

 Anti-lock brake system (ABS): pumps


brakes to reduce skidding.
 Automatic stability control (ASC+T):
controls engine to improve stability.
 ABS and ASC+T communicate.
 ABS was introduced first---needed to
interface to existing ABS module.

04/02/24
BMW 850i, cont’d.

sensor sensor

brake brake

hydraulic
ABS
pump

brake brake

sensor sensor

04/02/24
Characteristics of
embedded systems

 Sophisticated functionality.
 Real-time operation.
 Low manufacturing cost.
 Low power.
 Designed to tight deadlines by small
teams.

04/02/24
Functional complexity

 Often have to run sophisticated


algorithms or multiple algorithms.
 Cell phone, laser printer.
 Often provide sophisticated user
interfaces.

04/02/24
Real-time operation

 Must finish operations by deadlines.


 Hard real time: missing deadline causes
failure.
 Soft real time: missing deadline results in
degraded performance.
 Many systems are multi-rate: must handle
operations at widely varying rates.

04/02/24
Non-functional
requirements

 Many embedded systems are mass-


market items that must have low
manufacturing costs.
 Limited memory, microprocessor power, etc.
 Power consumption is critical in battery-
powered devices.
 Excessive power consumption increases
system cost even in wall-powered devices.

04/02/24
Why use microprocessors?

 Alternatives: field-programmable gate


arrays (FPGAs), custom logic, etc.
 Microprocessors are often very efficient:
can use same logic to perform many
different functions.
 Microprocessors simplify the design of
families of products.

04/02/24
The performance paradox

 Microprocessors use much more logic to


implement a function than does custom
logic.
 But microprocessors are often at least as
fast:
 heavily pipelined;
 large design teams;
 aggressive VLSI technology.

04/02/24
Power
 Custom logic uses less power, but CPUs have
advantages:
 Modern microprocessors offer features to
help control power consumption.
 Software design techniques can help reduce
power consumption.
 Heterogeneous systems: some custom logic for
well-defined functions, CPUs+software for
everything else.
04/02/24
Platforms

 Embedded computing platform: hardware


architecture + associated software.
 Many platforms are multiprocessors.
 Examples:
 Single-chip multiprocessors for cell phone
baseband.
 Automotive network + processors.

04/02/24
What does “performance”
mean?

 In general-purpose computing,
performance often means average-case,
may not be well-defined.
 In real-time systems, performance means
meeting deadlines.
 Missing the deadline by even a little is bad.
 Finishing ahead of the deadline may not help.

04/02/24
Characterizing
performance

 We need to analyze the system at several


levels of abstraction to understand
performance:
 CPU.
 Platform.
 Program.
 Task.
 Multiprocessor.
04/02/24
Challenges in embedded
system design

 How much hardware do we need?


 How big is the CPU? Memory?
 How do we meet our deadlines?
 Faster hardware or cleverer software?
 How do we minimize power?
 Turn off unnecessary logic? Reduce memory
accesses?

04/02/24
Challenges, etc.

 Does it really work?


 Is the specification correct?
 Does the implementation meet the spec?
 How do we test for real-time characteristics?
 How do we test on real data?
 How do we work on the system?
 Observability, controllability?
 What is our development platform?
04/02/24
Design methodologies

 A procedure for designing a system.


 Understanding your methodology helps
you ensure you didn’t skip anything.
 Compilers, software engineering tools,
computer-aided design (CAD) tools, etc.,
can be used to:
 help automate methodology steps;
 keep track of the methodology itself.
04/02/24
Design goals

 Performance.
 Overall speed, deadlines.
 Functionality and user interface.
 Manufacturing cost.
 Power consumption.
 Other requirements (physical size, etc.)

04/02/24
Levels of abstraction

04/02/24
Top-down vs. bottom-up

 Top-down design:
 start from most abstract description;
 work to most detailed.
 Bottom-up design:
 work from small components to big system.
 Real design uses both techniques.

04/02/24
Stepwise refinement

 At each level of abstraction, we must:


 analyze the design to determine
characteristics of the current state of the
design;
 refine the design to add detail.

04/02/24
Requirements

 Plain language description of what the


user wants and expects to get.
 May be developed in several ways:
 talking directly to customers;
 talking to marketing representatives;
 providing prototypes to users for comment.

04/02/24
Functional vs. non-
functional requirements

 Functional requirements:
 output as a function of input.
 Non-functional requirements:
 time required to compute output;
 size, weight, etc.;
 power consumption;
 reliability;
 etc.
04/02/24
Our requirements form
name
purpose
inputs
outputs
functions
performance
manufacturing cost
power
physical size/weight

04/02/24
Example: GPS moving map
requirements

 Moving map
obtains position I-78
from GPS, paints

Scotch Road
map from local
database.

lat: 40 13 lon: 32 19

04/02/24
GPS moving map needs
 Functionality: For automotive use. Show major
roads and landmarks.
 User interface: At least 400 x 600 pixel screen.
Three buttons max. Pop-up menu.
 Performance: Map should scroll smoothly. No
more than 1 sec power-up. Lock onto GPS
within 15 seconds.
 Cost: $120 street price = approx. $30 cost of
goods sold.
04/02/24
GPS moving map needs,
cont’d.

 Physical size/weight: Should fit in hand.


 Power consumption: Should run for 8
hours on four AA batteries.

04/02/24
GPS moving map
requirements form
name GPS moving map
purpose consumer-grade
moving map for driving
inputs power button, two
control buttons
outputs back-lit LCD 400 X 600
functions 5-receiver GPS; three
resolutions; displays
current lat/lon
performance updates screen within
0.25 sec of movement
manufacturing cost $100 cost-of-goods-
sold
power 100 mW
physical size/weight no more than 2: X 6:,
12 oz.

04/02/24
Specification

 A more precise description of the system:


 should not imply a particular architecture;
 provides input to the architecture design
process.
 May include functional and non-functional
elements.
 May be executable or may be in
mathematical form for proofs.
04/02/24
GPS specification

 Should include:
 What is received from GPS;
 map data;
 user interface;
 operations required to satisfy user requests;
 background operations needed to keep the
system running.

04/02/24
Architecture design

 What major components go satisfying the


specification?
 Hardware components:
 CPUs, peripherals, etc.
 Software components:
 major programs and their operations.
 Must take into account functional and non-
functional specifications.
04/02/24
GPS moving map block
diagram

GPS search display


renderer
receiver engine

user
database interface

04/02/24
GPS moving map hardware
architecture

display frame CPU


buffer
GPS
receiver

memory
panel I/O

04/02/24
GPS moving map software
architecture
A Renderer converts the internal representation of UI Component
into the output stream (or writer) associated with the response

position database pixels


renderer
search

user
timer
interface

04/02/24
Designing hardware and
software components

 Must spend time architecting the system


before you start coding.
 Some components are ready-made, some
can be modified from existing designs,
others must be designed from scratch.

04/02/24
System integration

 Put together the components.


 Many bugs appear only at this stage.
 Have a plan for integrating components to
uncover bugs quickly, test as much
functionality as early as possible.

04/02/24
Summary

 Embedded computers are all around us.


 Many systems have complex embedded
hardware and software.
 Embedded systems pose many design
challenges: design time, deadlines, power,
etc.
 Design methodologies help us manage the
design process.
04/02/24
System design techniques

 Design methodologies.
 Requirements and specification.

04/02/24
Design methodologies

 Process for creating a system.


 Many systems are complex:
 large specifications;
 multiple designers;
 interface to manufacturing.
 Proper processes improve:
 quality;
 cost of design and manufacture.
04/02/24
Product metrics

 Time-to-market:
 beat competitors to market;
 meet marketing window (back-to-school).
 Design cost.
 Manufacturing cost.
 Quality.

04/02/24
Mars Climate Observer

 Lost on Mars in September 1999.


 Requirements problem:
 Requirements did not specify units.
 Lockheed Martin used English; JPL wanted
metric.
 Not caught by manual inspections.

04/02/24
Design flow

 Design flow: sequence of steps in a


design methodology.
 May be partially or fully automated.
 Use tools to transform, verify design.
 Design flow is one component of
methodology. Methodology also includes
management organization, etc.

04/02/24
Waterfall model

 Early model for software development:

requirements

architecture

coding

testing

maintenance

04/02/24
Waterfall model steps

 Requirements: determine basic


characteristics.
 Architecture: decompose into basic
modules.
 Coding: implement and integrate.
 Testing: exercise and uncover bugs.
 Maintenance: deploy, fix bugs, upgrade.

04/02/24
Waterfall model critique

 Only local feedback---may need iterations


between coding and requirements, for
example.
 Doesn’t integrate top-down and bottom-
up design.
 Assumes hardware is given.

04/02/24
Spiral model
system feasibility

specification

prototype

initial system

enhanced system
requirements
design
test

04/02/24
Spiral model critique

 Successive refinement of system.


 Start with mock-ups, move through simple
systems to full-scale systems.
 Provides bottom-up feedback from
previous stages.
 Working through stages may take too
much time.

04/02/24
Successive refinement
model

specify specify
architect architect

design design
build build
test test

initial system refined system

04/02/24
Hardware/software design
flow
requirements and
specification

architecture

hardware design software design

integration

testing

04/02/24
Co-design methodology

 Must architect hardware and software


together:
 provide sufficient resources;
 avoid software bottlenecks.
 Can build pieces somewhat
independently, but integration is major
step.
 Also requires bottom-up feedback.
04/02/24
Hierarchical design flow

 Embedded systems must be designed


across multiple levels of abstraction:
 system architecture;
 hardware and software systems;
 hardware and software components.
 Often need design flows within design
flows.

04/02/24
Hierarchical HW/SW flow

spec spec
spec
architecture HWSW
architecture
architecture

HW SW detailed
detailed
design
design

integrate integration
integration

test testtest

system hardware
software

04/02/24

You might also like