Transcript 1 - SKKU

Introduction to Embedded Systems
Introduction to Embedded Systems
1
Books
•
Recommended Textbook:
-
•
Embedded System Design: An Introduction to Processes, Tools, and Techniques, Arnold
Berger, CMP Books, ISBN # 1-57820-073-3
Suggested Textbooks:
-
An Embedded Software Primer, David Simon
-
The Art of Designing Embedded Systems, Jack Ganssle
-
Embedded Systems Firmware Demystified, Ed Sutter, CMP Books, ISBN 1-57820-099-7
-
Programming Embedded Systems in C and C ++, Michael Barr, O'Reilly, 1-56592-354-5
-
Building Embedded Linux Systems, Karim Yaghmour, O’Reilly
-
-
Addison-Wesley: ISBN #0-201-61653-X
Butterworth-Heinemann: ISBN #0-7506-9869
Introduction to Embedded Systems
2
Why study embedded systems?
• Embedded systems are key elements of our society today
- An adequate supply of competent designers is a rate limiting factor in
our economies ability to grow
• As processing power increases, we’ll be able to do incredible things
that we haven’t begun to imagine.
• It is a discipline of Computer Science that has traditionally been:
-
Ignored
Conceded to Electrical Engineering Departments
Treated as a cast-off because of its intimacy with “hardware”
Not well understood because of its special niche
• Engineers who are experienced embedded system designers are in
short supply and high demand
- Other countries, such as India, are filling the need
• It’s a really fun topic!
Introduction to Embedded Systems
3
What is an “Embedded System”
• Embedded System
- Any device, or collection of devices, that contain one or more
dedicated computers, microprocessors, or microcontrollers
- Device(s) may be local - Printer, automobile, etc.
- Devices may be distributed - Aircraft, ship, internet appliance
- A PC or workstation may be an embedded system
• Key point:
- Embedded computing devices have rigidly defined operational
bounds. Not general purpose computers ( PC, Unix workstation )
Introduction to Embedded Systems
4
Why are Embedded Systems Different
•
•
•
•
•
•
•
•
•
•
•
•
Dedicated to a specific task or tasks
Rich variety of microprocessors ( over 300 types )
Designs are cost-sensitive
Have real-time performance constraints
Used with Real-Time Operating Systems (RTOS)
Software failure can be life-threatening
May have constraints on power consumption
Operate over a wide-range of environmental conditions
Fewer system resources then a desktop system
All code might be stored in ROM
Require specialized design tools
May have on-chip debugging resources
Introduction to Embedded Systems
5
Characteristics of Embedded Systems
• In general, there is no architectural link to standard platforms
- PC ( Win9X, NT, XP, Linux), MAC, HP, Sun are considered the standard
platforms
- Almost every embedded design ( hardware and software ) is unique
- The hardware and software are highly integrated and interdependent
- ASICS, microcontrollers
• Typically, have moderate to severe real-time constraints
- Real-time means system must be able to respond to the outside world
• May or may not have Operating System ( O/S ) services available
- No printf() for debugging when there is no terminal!
• Tolerance for bugs is 1000X ( or more ) lower in embedded systems
then in desktop computers.
- May be life-threatening consequences if system fails
- Often engineered for the highest possible performance at the lowest cost
- Performance may not be an important consideration
• Most likely to have power constraints
Introduction to Embedded Systems
6
Let’s Define Some Terms
• Microprocessor
- An integrated circuit which forms the central processing unit for a
computer or embedded controller, but requires additional support
circuitry to function
- MC68000, 80486, Pentium, K6, etc.
• Microcontroller
- A microprocessor plus additional peripheral support devices integrated
into a single package
- Peripheral support devices may include:
- Serial ports ( COM ), Parallel ( Ports ), Ethernet ports, A/D & D/A
- Interval timers, watchdog timers, event counter/timers, real time clock ( RTC
)
- Other local processors ( DSP, numeric coprocessor, peripheral controller )
- ColdFIRE is a microcontroller
Introduction to Embedded Systems
7
Microprocessor and Microcontroller
A Microprocessor-Based Embedded System
A Microcontroller-Based Embedded System
Data
Storage
Program
Memory
Program
Memory
Data
Storage
I/O
I/O
Microprocessor
Microprocessor
Core
I/O
I/O
Real-time
Clock
I/O
I/O
Real-time
Clock
To outside world
To outside world
Introduction to Embedded Systems
8
A “Typical” Embedded System
Minimally Requirement for an Embedded System
Address Bus
NMI
Data Bus
Microprocessor
Other
Peripheral
Devices
Status Bus
Glue Logic and
Address Decode
To Outside World
Clock Generation
and Distribution
Random Access
Memory - RAM
I/O Interface
( D/A, A/D, Digital )
Read Only
Memory - ROM
( FLASH )
Watchdog Timer
Communications
Real Time Clock
Introduction to Embedded Systems
To outside world
To other devices
To host Computer
To User I/F
9
Common Embedded Microprocessors
•
•
4-bit Microcontrollers: PIC ($1.79)
8-bit Microprocessors and microcontrollers
-
•
16-bit Microprocessors and microcontrollers
-
•
Intel, AMD: 80186 families
Motorola: 68300 families
NEC, Hitachi, Phillips
32-bit Microprocessors and microcontrollers
-
•
Zilog: Z80 families ($1.39)
Intel: 8042, 8048, 8051 families ($4.95)
Motorola: 6805, 68HC11 families ($8.00)
Intel 80386, 80486, Pentium, PII, PIII,PIV, StrongARM, X-scale
ARM: ARM7TDMI, ARM9
AMD 486E, SC520 (Aspen)
Motorola 680X0, ColdFIRE, PowerPC
Intel X-Scale
64-bit Microprocessors and microcontrollers
-
MIPS family, Athlon 64
Introduction to Embedded Systems
10
“Simplified” diagram of 68HC11
Pulse Acc
Port A
ROM - 8kBytes
Timer
Periodic IRQ
RAM - 256 Bytes
Watchdog
A/D Converter
TxD
RxD
STRB
IRQ
XTAL
MODA
MODB
Oscillator
Mode
Select
Power
5V
Port B
68HC11 CPU Core
Interrupts
Handshake I/O
RESET
EXTAL
STRA
PD1
PD0
Port C
SCI
PD5
PD4
PD4
PD2
Address/Data Bus
Port E
PE7
PE6
PE5
PE4
PE3
PE2
PE1
PE0
Port D
SPI
EEPROM 512 Bytes
PA7
PA6
PA5
PA4
PA3
PA2
PA1
PA0
GND
Introduction to Embedded Systems
11
Recent developments
• Moore’s Law: the complexity of integrated circuits will double every
18 months
• Process technology able to put more and more functionality on the
same chip as the cpu
• Buzz Word: System on a Chip (SOC), or System on Silicon
• ColdFIRE is designed to keep the 68K family alive!
Introduction to Embedded Systems
12
Another Example (PalmPilot)
Motorola’s Dragonball Processor
•
•
The MC68328 was chosen for Palm Pilot because it is highly integrated
Performance is underwhelming ( 68000 core )
Introduction to Embedded Systems
13
ColdFire M5206e
• variable length RISC
- Denser binary code image than fixed-length RISC instructions
- targeted for cost sensitive embedded market
• Subset of 680X0 instruction set
• Multiply/Accumulate unit for simple DSP applications
- Supports 16x16 and 32x32 multiplies with 32-bit accumulate
• 4K Direct-mapped I-cache
• 8K On-chip SRAM
• Lot’s of on-chip peripherals
Introduction to Embedded Systems
14
5206e Block Diagram
DRAM Controller
Clock
JTAG
4KB I-Cache
8KB SRAM
Background
Debug Mode
(BDM) Interface
System Bus
Controller
Clock
Input
JTAG
Interface
Chip Selects
Interrupt Controller
External Bus Interface
DRAM
Control
Chip Selects
Interrupts
External Bus
Debug Module
Parallel Port
ColdFire Core
UARTs
Parallel
Interface
Serial
Interface
Multiply
Accumulator
(MAC)
Timers
Timer Support
M-Bus Interface
M-BUS
HW Divider
DMA Controller
DMA Control
Introduction to Embedded Systems
15
How do we use the on-chip peripherals?
• Setting up on-chip peripheral devices on a complex microcontroller
is one of the most daunting tasks for any embedded systems design
engineer
• Companies have created products based upon the “simple”
requirement of initializing the control registers of an embedded
microcontroller
- Driveway from Aisys Ltd. automatically generated initialization code
• Example: Program the address of the Vector Base Register (VBR)
- In the 68000, the vector table is located from 0x00000000 to
0x000003FF
- The ColdFire processor allows us to relocate the VBR to any 1M
boundary in the address space of the processor
- Assume <D0> = 0x03000000, MOVEC D0,VBR would locate the vector
table to the memory region 0x30000000..0x300003FF
Introduction to Embedded Systems
16
Let’s Define Some Terms - 2
• Target system
- The embedded system under development
• Host computer
- The standard platform being used to develop the software and link to
the target system for debugging
• Cross-development
- Using host-based tools to create a code image that will execute on a
different instruction set architecture
- Example:
- Write a C program on your PC
- Compile it to run on a PowerPC 603 using a Cross-compiler
- Create a runtime image for execution in the target system
Introduction to Embedded Systems
17
Let’s Define Some Terms - 3
• Time sensitive
- If a task or operation does not complete in the specified
amount of time, the embedded device will perform below
design requirements
- Example: A laser printer prints 8 pagers per minute instead of
10 ppm ( HP trumps Lexmark once again! )
- Device continues to function
• Time critical
- If a task or operation does not complete in the specified
amount of time, the embedded device will fail.
- Example: Flight control system on a fly-by-wire aircraft
- Device will not operate
Introduction to Embedded Systems
18
Trends in embedded systems
Processor plus ASIC
Embedded system on a board
0.35 u process technology > 106 gates
0.18 u process technology > 4x106 gates
0.12 u process technology > 9x106 gates
0.08 u process technology > 20.3x106 gates
System-on-Chip
20 million gates = 300, 68K microprocessors on one chip
Introduction to Embedded Systems
19
Embedded System - Circa 1985
DISCRETE LOGIC FOR “GLUE” FUNCTIONS
• 8-BIT MICROPROCESSOR ( Z80 )
• SOCKETED
• 40 PINS @ 0.100” SPACING
• DUAL IN-LINE PACKAGE ( DIP)
• 4 MHz CLOCK SPEED
CRYSTAL
OSCILLATOR
EPROMS
IN SOCKETS
2K bytes
RAM
Introduction to Embedded Systems
20
Embedded System - Circa 2000
• Surface Mount Components
• Fine pitch I/O pins
• 68360 microcontroller
• 16 - 25 MHz CLOCK SPEED
Crystal Oscillator
STATIC SENSITIVE
68040, 32-BIT
MICROPROCESSOR
ASIC
RAM
• Components on both sides
• 12 layer printed circuit board
Crystal
FLASH
MEMORY
16 MBytes
Introduction to Embedded Systems
21
Introduction to Embedded Systems
22
Intel PXA800F Cellular processor
Introduction to Embedded Systems
23
To Outside World
Elements of an embedded system
Peripheral Bus
Key Point: Although vastly different in complexity and design, common
architectural traits allow us to design and debug a wide variety of systems
DEBUG Port
Non-volatile memory
• EPROM, FLASH, DISK
Microprocessor
• 4, 8, 16, 32, 4 bit bus
• CISC, RISC, DSP
• Integrated peripherals
• Debug/Test Port
• Caches
• Pipeline
• Socketed
• Multiprocessing Systems
• Socketed
• Hybrid
Volatile Memory
• DRAM, SRAM
• Hybrid
• Driver Code / BIOS
• Real Time Operating System
• User Interface
• Communications Protocol Stacks
• C, C++, Assembly Language, ADA
• Legacy Code
• FPGA’s
• PAL
Standard Devices
• I/O Ports
• Peripheral Controllers
Communication Devices
• Ethernet
System Clocks
Software
• Application Code
Custom Devices
• ASIC’s
• RTC circuitry
• System clocks
• Integrated in uC
• Imported/Exported
Introduction to Embedded Systems
• RS-232
• SCSI
• Centronics
• Proprietary
Microprocessor Bus
• Custom
• PCI
• VME
• PC-102
24
The embedded lifecycle
The Project
Pre-Prototype
H/W Design Proto
Post-Prototype
Debug
Specification
RTOS Integration
Sys. Test
Mfg.
S/W Design
The Integration “Loop”
Start
Yes
New
Test?
Stop
Yes
Run Test
No
Pass
Test?
No
Debug
Re-design
physical h/w
and/or s/w
Introduction to Embedded Systems
25
A tools view of the lifecycle
Processor Selection Phase
Packaged benchmarks
Past Experience
Other Similar Designs
Applications support
Instruction Set Simulator
Benchmarking tools
Enter Here
Literature
Compiler Tool Chain
Architectural Simulator
Evaluation Board
Customer Benchmarks
Design Phase
Design Win
Hardware Designer(s)
Software Design Team
ASIC
Compiler Tool Chain
Instruction Set Simulator
Evaluation Board
Logic Simulator
Logic Analyzer
Out-of-Circuit Emulation
Oscilloscope
Initial hardware without
working memory system
Initial Software
In-Circuit Emulator
Logic Analyzer
Oscilloscope
Software running on
Hardware
Software Performance Analysis
In-Circuit Emulation
Logic Analyzer/Preprocessor
JTAG Emulation
ROM Emulation
MiniMON29K
SW/HW Integration Phase
Maintenance and upgrade of existing products
Introduction to Embedded Systems
Courtesy of
Daniel Mann
26
Common characteristics of ES
• Single-functioned
- Executes a single program, repeatedly
• Tightly-constrained
- Low cost, low power, small, fast, etc.
• Reactive and real-time
- Continually reacts to changes in the system’s environment
- Must compute certain results in real-time without delay
Introduction to Embedded Systems
27
example -- a digital camera
Digital camera chip
CCD
CCD preprocessor
Pixel coprocessor
D2A
A2D
lens
JPEG codec
Microcontroller
Multiplier/Accum
DMA controller
Memory controller
•
•
•
Display ctrl
ISA bus interface
UART
LCD ctrl
Single-functioned -- always a digital camera
Tightly-constrained -- Low cost, low power, small, fast
Reactive and real-time -- only to a small extent
Introduction to Embedded Systems
28
challenge – optimizing design metrics
• Obvious design goal:
- Construct an implementation with desired functionality
• Key design challenge:
- Simultaneously optimize numerous design metrics
• Design metric
- A measurable feature of a system’s implementation
- Optimizing design metrics is a key challenge
Introduction to Embedded Systems
29
challenge – optimizing design metrics
• Common metrics
- Unit cost:
the monetary cost of manufacturing each copy of the system,
excluding NRE cost
- NRE cost (Non-Recurring Engineering cost):
The one-time monetary
cost of designing the system
-
Size: the physical space required by the system
Performance: the execution time or throughput of the system
Power: the amount of power consumed by the system
Flexibility: the ability to change the functionality of the system without
incurring heavy NRE cost
Introduction to Embedded Systems
30
challenge – optimizing design metrics
• Common metrics (continued)
- Time-to-prototype: the time needed to build a working version of the
system
- Time-to-market: the time required to develop a system to the point that it
can be released and sold to customers
- Maintainability: the ability to modify the system after its initial release
- Correctness, safety, many more
Introduction to Embedded Systems
31
Design metric competition -- improving
one may worsen others
• Expertise with both software
and hardware is needed to
optimize design metrics
Power
Performance
- Not just a hardware or
software expert, as is common
- A designer must be
comfortable with various
technologies in order to choose
the best for a given application
and constraints
Size
NRE cost
CCD
Digital camera chip
A2D
CCD preprocessor
Pixel coprocessor
D2A
lens
JPEG codec
Microcontroller
Multiplier/Accum
DMA controller
Memory controller
Display ctrl
ISA bus interface
UART
LCD ctrl
Hardware
Software
Introduction to Embedded Systems
32
Time-to-market: a demanding
design metric
• Time required to develop a
product to the point it can be
sold to customers
• Market window
Revenues ($)
- Period during which the
product would have highest
sales
Time (months)
• Average time-to-market
constraint is about 8 months
• Delays can be costly
Introduction to Embedded Systems
33
Losses due to delayed market entry
• Simplified revenue model
Revenues ($)
Peak revenue
Peak revenue from
delayed entry
On-time
Market fall
Market rise
Delayed
D
On-time
entry
Delayed
entry
- Product life = 2W, peak at W
- Time of market entry defines
a triangle, representing
market penetration
- Triangle area equals revenue
• Loss
W
2W
Time
- The difference between the
on-time and delayed triangle
areas
Introduction to Embedded Systems
34
Losses due to delayed market entry
(cont.)
• Area = 1/2 * base * height
- On-time = 1/2 * 2W * W
- Delayed = 1/2 * (W-D+W)*(W-D)
Revenues ($)
Peak revenue
Peak revenue from
delayed entry
On-time
Market fall
Market rise
• Percentage revenue loss =
(D(3W-D)/2W2)*100%
• Try some examples
Delayed
D
On-time
entry
Delayed
entry
W
2W
Time
–
–
–
–
–
Lifetime 2W=52 wks, delay D=4 wks
(4*(3*26 –4)/2*26^2) = 22%
Lifetime 2W=52 wks, delay D=10 wks
(10*(3*26 –10)/2*26^2) = 50%
Delays are costly!
Introduction to Embedded Systems
35
NRE and unit cost metrics
•
Costs:
-
Unit cost: the monetary cost of manufacturing each copy of the system,
excluding NRE cost
NRE cost (Non-Recurring Engineering cost): The one-time monetary cost of
designing the system
total cost = NRE cost + unit cost * # of units
per-product cost
= total cost / # of units
= (NRE cost / # of units) + unit cost
• Example
– NRE=$2000, unit=$100
– For 10 units
– total cost = $2000 + 10*$100 = $3000
– per-product cost = $2000/10 + $100 = $300
Amortizing NRE cost over the units results in an
additional $200 per unit
Introduction to Embedded Systems
36
NRE and unit cost metrics
• Compare technologies by costs -- best depends on quantity
- Technology A: NRE=$2,000, unit=$100
- Technology B: NRE=$30,000, unit=$30
- Technology C: NRE=$100,000, unit=$2
$200,000
B
C
$120,000
$80,000
$0
$0
1600
2400
C
$80
$40
800
B
$120
$40,000
0
A
$160
p er p rod uc t c ost
$160,000
tota l c ost (x1000)
$200
A
0
Numb er of units (volume)
800
1600
2400
Numb er of units (volume)
• But, must also consider time-to-market
Introduction to Embedded Systems
37
The performance design metric
• Widely-used measure of system, widely-abused
-
Clock frequency, instructions per second – not good measures
Digital camera example – a user cares about how fast it processes images, not
clock speed or instructions per second
• Latency (response time)
-
Time between task start and end
e.g., Camera’s A and B process images in 0.25 seconds
• Throughput
-
Tasks per second, e.g. Camera A processes 4 images per second
Throughput can be more than latency seems to imply due to concurrency, e.g.
Camera B may process 8 images per second (by capturing a new image while
previous image is being stored).
• Speedup of B over S = B’s performance / A’s performance
-
Throughput speedup = 8/4 = 2
Introduction to Embedded Systems
38
Three key embedded system
technologies
• Technology
- A manner of accomplishing a task, especially using technical
processes, methods, or knowledge
• Three key technologies for embedded systems
- Processor technology
- IC technology
- Design technology
Introduction to Embedded Systems
39
Processor technology
• The architecture of the computation engine used to implement a
system’s desired functionality
• Processor does not have to be programmable
- “Processor” not equal to general-purpose processor
Controller
Datapath
Controller
Datapath
Controller
Datapath
Control
logic and
State register
Control logic
and State
register
Registers
Control
logic
index
Register
file
IR
PC
General
ALU
IR
Custom
ALU
Data
memory
+
PC
Data
memory
Program
memory
Assembly code
for:
State
register
total
Data
memory
Program memory
Assembly code
for:
total = 0
for i =1 to …
General-purpose (“software”)
total = 0
for i =1 to …
Application-specific
Introduction to Embedded Systems
Single-purpose (“hardware”)
40
Processor technology
•
Processors vary in their customization for the problem at hand
Desired
functionality
General-purpose
processor
total = 0
for i = 1 to N loop
total += M[i]
end loop
Application-specific
processor
Introduction to Embedded Systems
Single-purpose
processor
41
General-purpose processors
• Programmable device used in a variety of
applications
- Also known as “microprocessor”
• Features
- Program memory
- General datapath with large register file and
general ALU
Controller
Datapath
Control
logic and
State register
Register
file
IR
PC
General
ALU
• User benefits
- Low time-to-market and NRE costs
- High flexibility
• “Pentium” the most well-known, but there
are hundreds of others
Program
memory
Data
memory
Assembly code
for:
total = 0
for i =1 to …
Introduction to Embedded Systems
42
Single-purpose processors
• Digital circuit designed to execute exactly
one program
- a.k.a. coprocessor, accelerator or peripheral
Controller
Datapath
Control
logic
index
total
• Features
- Contains only the components needed to
execute a single program
- No program memory
• Benefits
State
register
+
Data
memory
- Fast
- Low power
- Small size
Introduction to Embedded Systems
43
Application-specific processors
• Programmable processor optimized for a
particular class of applications having
common characteristics
- Compromise between general-purpose and
single-purpose processors
• Features
Controller
Datapath
Control
logic and
State register
Registers
Custom
ALU
IR
- Program memory
- Optimized datapath
- Special functional units
• Benefits
- Some flexibility, good performance, size and
power
Introduction to Embedded Systems
PC
Program
memory
Data
memory
Assembly code
for:
total = 0
for i =1 to …
44
IC technology
• The manner in which a digital (gate-level)
implementation is mapped onto an IC
- IC: Integrated circuit, or “chip”
- IC technologies differ in their customization to a design
- IC’s consist of numerous layers (perhaps 10 or more)
- IC technologies differ with respect to who builds each layer and
when
IC package
IC
source
gate
oxide
channel
drain
Silicon substrate
Introduction to Embedded Systems
45
IC technology
• Three types of IC technologies
- Full-custom/VLSI
- Semi-custom ASIC (gate array and standard cell)
- PLD (Programmable Logic Device)
Introduction to Embedded Systems
46
Full-custom/VLSI
• All layers are optimized for an embedded system’s
particular digital implementation
- Placing transistors
- Sizing transistors
- Routing wires
• Benefits
- Excellent performance, small size, low power
• Drawbacks
- High NRE cost (e.g., $300k), long time-to-market
Introduction to Embedded Systems
47
Semi-custom
• Lower layers are fully or partially built
- Designers are left with routing of wires and maybe placing
some blocks
• Benefits
- Good performance, good size, less NRE cost than a full-custom
implementation (perhaps $10k to $100k)
• Drawbacks
- Still require weeks to months to develop
Introduction to Embedded Systems
48
PLD (Programmable Logic Device)
• All layers already exist
- Designers can purchase an IC
- Connections on the IC are either created or destroyed to
implement desired functionality
- Field-Programmable Gate Array (FPGA) very popular
• Benefits
- Low NRE costs, almost instant IC availability
• Drawbacks
- Bigger, expensive (perhaps $30 per unit), power hungry,
slower
Introduction to Embedded Systems
49
Moore’s law
• The most important trend in embedded systems
- Predicted in 1965 by Intel co-founder Gordon Moore
IC transistor capacity has doubled roughly every 18
months for the past several decades
10,000
1,000
Logic transistors
per chip
(in millions)
100
10
1
0.1
Note:
logarithmic scale
0.01
0.001
Introduction to Embedded Systems
50
Moore’s law
• Wow
- This growth rate is hard to imagine, most people underestimate
- How many ancestors do you have from 20 generations ago
- i.e., roughly how many people alive in the 1500’s did it take to
make you?
- 220 = more than 1 million people
- (This underestimation is the key to pyramid schemes!)
Introduction to Embedded Systems
51
Graphical illustration of Moore’s
law
1981
1984
1987
1990
1993
1996
1999
2002
10,000
transistors
150,000,000
transistors
Leading edge
chip in 1981
Leading edge
chip in 2002
• Something that doubles frequently grows more quickly
than most people realize!
- A 2002 chip can hold about 15,000 1981 chips inside itself
Introduction to Embedded Systems
52
Design Technology
•
The manner in which we convert our concept of desired system
functionality into an implementation
Compilation/
Synthesis
Compilation/Synthesis:
Automates exploration and
insertion of implementation
details for lower level.
Libraries/IP: Incorporates predesigned implementation from
lower abstraction level into
higher level.
Test/Verification: Ensures
correct functionality at each
level, thus reducing costly
iterations between levels.
Libraries/
IP
Test/
Verification
System
specification
System
synthesis
Hw/Sw/
OS
Model simulat./
checkers
Behavioral
specification
Behavior
synthesis
Cores
Hw-Sw
cosimulators
RT
specification
RT
synthesis
Logic
specification
Logic
synthesis
RT
HDL simulators
components
Gates/
Cells
Gate
simulators
To final implementation
Introduction to Embedded Systems
53
The co-design ladder
• In the past:
Sequential program code (e.g., C, VHDL)
- Hardware and software
design technologies were
very different
- Recent maturation of
synthesis enables a unified
view of hardware and
software
• Hardware/software “codesign”
Compilers
(1960's,1970's)
Behavioral synthesis
(1990's)
Register transfers
Assembly instructions
RT synthesis
(1980's, 1990's)
Assemblers, linkers
(1950's, 1960's)
Logic equations / FSM's
Machine instructions
Logic synthesis
(1970's, 1980's)
Logic gates
Implementation
Microprocessor plus
VLSI, ASIC, or PLD
program bits: “software”
implementation:
“hardware”
The choice of hardware versus software for a particular function is simply a tradeoff among various
design metrics, like performance, power, size, NRE cost, and especially flexibility; there is no
fundamental difference between what hardware or software can implement.
Introduction to Embedded Systems
54
Independence of processor and IC
technologies
• Basic tradeoff
- General vs. custom
- With respect to processor technology or IC technology
- The two technologies are independent
General,
providing improved:
Generalpurpose
processor
ASIP
Singlepurpose
processor
Flexibility
Maintainability
NRE cost
Time- to-prototype
Time-to-market
Cost (low volume)
Customized,
providing improved:
Power efficiency
Performance
Size
Cost (high volume)
PLD
Semi-custom
Full-custom
Introduction to Embedded Systems
55
Design productivity gap
• While designer productivity has grown at an impressive rate over
the past decades, the rate of improvement has not kept pace with
chip capacity
Logic transistors
per chip
(in millions)
10,000
100,000
1,000
10,000
100
10
1000
Gap
IC capacity
1
10
0.1
0.01
100
Productivity
(K) Trans./Staff-Mo.
1
productivity
0.001
0.1
0.01
Introduction to Embedded Systems
56
Design productivity gap
• 1981 leading edge chip required 100 designer months
- 10,000 transistors / 100 transistors/month
• 2002 leading edge chip requires 30,000 designer months
- 150,000,000 / 5000 transistors/month
• Designer cost increase from $1M to $300M
Logic transistors
per chip
(in millions)
10,000
100,000
1,000
10,000
100
10
1
0.1
0.01
Gap
IC capacity
productivity
0.001
1000
100
10
1
Productivity
(K) Trans./Staff-Mo.
0.1
0.01
Introduction to Embedded Systems
57
The mythical man-month
•
The situation is even worse than the productivity gap indicates
•
•
In theory, adding designers to team reduces project completion time
In reality, productivity per designer decreases due to complexities of team management
and communication
In the software community, known as “the mythical man-month” (Brooks 1975)
At some point, can actually lengthen project completion time! (“Too many cooks”)
•
•
•
•
•
1M transistors, 1
designer=5000 trans/month
Each additional designer
reduces for 100 trans/month
So 2 designers produce 4900
trans/month each
60000
50000
40000
30000
20000
10000
16
Team
15
16
19
18
23
24
Months until completion
43
Individual
0
10
20
30
Number of designers
Introduction to Embedded Systems
40
58
Summary
• Embedded systems are everywhere
• Key challenge: optimization of design metrics
- Design metrics compete with one another
• A unified view of hardware and software is necessary to improve
productivity
• Three key technologies
- Processor: general-purpose, application-specific, single-purpose
- IC: Full-custom, semi-custom, PLD
- Design: Compilation/synthesis, libraries/IP, test/verification
Introduction to Embedded Systems
59