Hardware-Software Codesign
1. Introduction
Jan Beutel & Iuliana Bacivarov
based on material by Lothar Thiele
Swiss Federal
Institute of Technology
1-1
Computer Engineering
and Networks Laboratory
Contents
What is an Embedded System ?
Levels of Abstraction in Electronic System Design
Typical Design Flow of Hardware-Software Systems
Swiss Federal
Institute of Technology
1-2
Computer Engineering
and Networks Laboratory
Embedded Systems
Embedded systems (ES) = information processing
systems embedded into a larger product
Examples:
Main reason for buying is not information processing
Swiss Federal
Institute of Technology
1-3
Computer Engineering
and Networks Laboratory
Embedded Systems
external process
human interface
sensors, actuators
embedded system
Swiss Federal
Institute of Technology
1-4
Computer Engineering
and Networks Laboratory
Parallel and Distributed Target Platforms
ABS
ESP
ACC
engine
control
ASR
powertrain
control
Swiss Federal
Institute of Technology
1-5
Computer Engineering
and Networks Laboratory
Example: Cell Processor
Cell Processor (IBM) combines
general-purpose architecture core with
coprocessing elements which greatly accelerate multimedia
and vector processing applications, as well as many other
forms of dedicated computation.
Swiss Federal
Institute of Technology
1-6
Computer Engineering
and Networks Laboratory
Communicating Embedded Systems
sensor networks (civil engineering, buildings, environmental
monitoring, traffic, emergency situations)
smart products, wearable/ubiquitous computing
MICS
Swiss Federal
Institute of Technology
1-7
Computer Engineering
and Networks Laboratory
Trends in Information and Communication
Centralized
Systems
Networked
Systems
Large-scale
Distributed Systems
Internet
Swiss Federal
Institute of Technology
New Applications and
System Paradigms
1-8
Computer Engineering
and Networks Laboratory
Comparison
Embedded Systems
General Purpose Computing
Few applications that are
known at design-time.
Not programmable by end
user.
Fixed run-time requirements
(additional computing power
not useful).
Criteria:
cost
power consumption
predictability
meeting time bounds
Swiss Federal
Institute of Technology
Broad class of applications.
Programmable by end user.
Faster is better.
Criteria:
cost
average speed
1-9
Computer Engineering
and Networks Laboratory
Design Challenges
Challenges in the design of embedded systems
increasing application complexity even in standard and large
volume products
large systems with legacy functions
mixture of event driven and data flow tasks
examples: multimedia, automotive, mobile communication
increasing target system complexity
mixture of different technologies, processor types, and design styles
large systems-on-a-chip combining components from different
sources, distributed system implementations
numerous constraints and design objectives
examples: cost, power consumption, timing constraints, dependability
Swiss Federal
Institute of Technology
1 - 10
Computer Engineering
and Networks Laboratory
Implementation Alternatives
General-purpose processors
Performance
Power Efficiency
Application-specific instruction set processors
(ASIPs)
Microcontroller
DSPs (digital signal processors)
Flexibility
Programmable hardware
FPGA (field-programmable gate arrays)
Application-specific integrated circuits (ASICs)
Swiss Federal
Institute of Technology
1 - 11
Computer Engineering
and Networks Laboratory
Contents
What is an Embedded System ?
Levels of Abstraction in Electronic System Design
Typical Design Flow of Hardware-Software Systems
Swiss Federal
Institute of Technology
1 - 12
Computer Engineering
and Networks Laboratory
Abstraction, Models and Synthesis
Model
Formal description of selected properties of a system or subsystem
A model consists of data and associated methods
Classification of models
Degree of abstraction, granularity
hardwarre: system, architecture, logic, transistor,
software: module, block/class, function/method, ...
View
behavior, structural, physical
Synthesis
Linking adjacent levels of abstraction (refinement)
Stepwise adding of structural information
Swiss Federal
Institute of Technology
1 - 13
Computer Engineering
and Networks Laboratory
Levels of Abstractions
Behavior
System
Architecture
Process/Module
Function
SW
Object Code
Swiss Federal
Institute of Technology
HW
Gate-level models
Switch-level models
Circuit-level models
Device-level models
Layout models
1 - 14
RTL
Structure
Computer Engineering
and Networks Laboratory
Contents
What is an Embedded System ?
Levels of Abstraction in Electronic System Design
Typical Design Flow of Hardware-Software Systems
Swiss Federal
Institute of Technology
1 - 15
Computer Engineering
and Networks Laboratory
System Design
Specification
System Synthesis
SW-Compilation
Instruction Set
Estimation
HW-Synthesis
Intellectual
Prop. Code
Intellectual
Prop. Block
Machine Code
Swiss Federal
Institute of Technology
Net lists
1 - 16
Computer Engineering
and Networks Laboratory
Fixed Processor Architecture
Specification
System Synthesis
SW-Compilation
Instruction Set
Estimation
HW-Synthesis
Intellectual
Prop. Code
Intellectual
Prop. Block
Machine Code
Swiss Federal
Institute of Technology
Net lists
1 - 17
Computer Engineering
and Networks Laboratory
Application Specific HW Block
Specification
System Synthesis
SW-Compilation
Instruction Set
Estimation
HW-Synthesis
Intellectual
Prop. Code
Intellectual
Prop. Block
Machine Code
Swiss Federal
Institute of Technology
Net lists
1 - 18
Computer Engineering
and Networks Laboratory
Application-Specific Instruction Set Processor
Specification
System Synthesis
SW-Compilation
Instruction Set
Estimation
HW-Synthesis
Intellectual
Prop. Code
Intellectual
Prop. Block
Machine Code
Swiss Federal
Institute of Technology
Net lists
1 - 19
Computer Engineering
and Networks Laboratory
System-Level Design
System-level design is a complex synthesis tasks
software synthesis and code generation
hardware synthesis
interface and communication synthesis
hardware/software partitioning and component selection
hardware/software scheduling
Major Components:
application specification
design space exploration and system optimization
estimation
Swiss Federal
Institute of Technology
1 - 20
Computer Engineering
and Networks Laboratory
The Mapping Problem
Swiss Federal
Institute of Technology
1 - 21
Computer Engineering
and Networks Laboratory
HW/SW Mapping and Scheduling
Hardware/software mapping
Partitioning of system function to programmable components
(software), hard-wired or parameterized components (hardware)
or application specific instruction set processors.
Similarity to scheduling and load distribution problem in realtime operating systems
time constraints, context switch and context switch overhead,
process synchronization and communication
Differences to real-time operating systems
larger design space with very different solutions
high optimization requirements (motivation for hardware design)
underlying hardware is not fixed
Swiss Federal
Institute of Technology
1 - 22
Computer Engineering
and Networks Laboratory
HW/SW Mapping and Scheduling
Similarity to allocation (or load distribution) problem in highlevel synthesis (or real-time operating systems)
P2
P1
SW
(processors)
Swiss Federal
Institute of Technology
dedicated HW
components
P4
P3
1 - 23
Computer Engineering
and Networks Laboratory
Estimation
The principle of synthesis based on abstraction only makes
sense if there are powerful estimation methods available:
Estimate properties of the next layer(s) of abstraction.
Design decisions are based on these estimated properties: If
the estimation is not correct (or not accurate enough), the
design will be sub-optimal or even not working correctly.
Estimation of
lower layer
properties
Swiss Federal
Institute of Technology
Design Space
Exploration
high
abstraction
Design Space
Exploration
...
Design Space
Exploration
low
abstraction
1 - 24
Timeline
of
Design
Computer Engineering
and Networks Laboratory