Unit - 5
Unit - 5
Overview of Hardware –
Software co design
Lecture By
Dr. Vikram Kulkarni
Syllabus
Introduction
Embedded computers are the processing devices.
Home appliances and entertainment units
Transportation including automobiles
Medical instrumentation
Wireless communication devices,
Jet engines and other aerospace/space application
Industrial control, nuclear systems and many more
Page: 4
Embedded System Architecture Design
• Real-time System Design
Performance analysis
Scheduling and allocation
• Accelerated systems
• Use additional computational unit dedicated to some
functions?
Hardwired Logic e.g., FPGA
Multiple processing elements (PEs) or an extra CPU
• Hardware/software co-design: a joint design of
hardware and software architectures of Embedded
System.
Page: 5
Traditional Design Practices
• Performance Requirements make it
impossible to execute entire application in
software
• Intensive portions are extracted and
realized as custom hardware
• Early Design Cycle Partitioning
Design Space is not fully Explored
High-Cost Design
Inefficient
Page: 6
Traditional Embedded System Design
• HW/SW Partitioning
performed at an early
stage.
• Design mistakes have
huge negative effect
• Inability to correct
mistakes performed at
the partitioning phase
Page: 7
Traditional Design Practice
Requirements Definition
6-12 Months
Architecture Definition
Interface
Design
25-49 Months
Hardware
Software Code and
Manufacture and
Test
Test
Hardware Software
Implementation and Test
Deliverables
Documentation
6-12 Months
Deployment Field Test
Page: 8
Advancements in HW- SW codesign
• VLSI Technology
Smaller, Faster IP Cores
Reconfigurable Logic
• Matured Hardware Design Methodology
• Matured Software Design Methodology
• Joint design – Still in Infancy but popular!
Page: 9
Hardware-Software Co-design
Page: 10
Codesign Methodology
Page: 11
Hardware-Software Codesign
• Functional exploration: Define a
System (Embedded)
desired product's requirements and
Functional Exploration produce a specification of the
system behavior.
Architectural Mapping • Map this specification onto various
hardware and software
Hardware-Software architectures.
Partitioning
• Partition the functions between
Hardware Software silicon and code; and map them
Implementation Implementation
directly to hardware or software
System Integration components.
• Integrate system for prototype test.
Page: 12
HW/SW-Codesign
Co-design of (embedded) computer systems
encompassing the following parts:
Page: 14
HW/SW Co-Specification
• Model the (embedded) system functionality from an
abstract level.
• Developing system specification that describes
hardware, software modules and relationship
(interface) between the hardware and software.
• No concept of hardware or software yet.
• Common environment
SystemC: based on C++.
• Specification is analyzed to generate a task graph
representation of the system functionality.
Page: 15
Hardware-Software Co-Synthesis
Four Principal Phases of Co-synthesis:
Partitioning
Dividing the functionality of an embedded system into units
of computation.
Scheduling
Choosing time at which various computation units will
occur.
Allocation
Determining the processing elements (PEs) on which
computations will occur.
Mapping
Choosing particular component types for the allocated units
(of computations).
Page: 16
HW/SW Co-Synthesis
Automatic and semi-automatic design of hardware and
software modules to meet the specification.
Automatically derive the system architecture.
Tightly coupled with HW/SW Partitioning along with:
• Allocation: select the number and type of communication links
and processing elements for the target system.
• Assignment (Mapping): Mapping tasks to processing elements.
• Scheduling: Timing of task execution and
communications.
Page: 17
Common Co-Synthesis Structure
Page: 18
System Partitioning
Introduces a design methodology that uses several
techniques:
Partition the system specification into processes/tasks
The best way to partition a specification depends on the
characteristics of the underlying hardware platform
Page: 19
HW/SW Partitioning
• An area of significant research
Page: 20
Hardware-Software Partitioning
For embedded systems, such partitioning represents a
physical partition of the system functionality into:
Hardware
Software executing on one or more CPUs
Various formation of the Partitioning Problem that
are based on:
Architectural Assumptions
Partitioning Goals
Solution Strategies
COWARE: A design environment for application specific
architectures targets telecom applications
Page: 21
Partitioning Techniques
Hardware-Software Homogeneous System Model =>
Task Graph
For each node of the task graph, determine implementation
choices (HW or SW):
Keep the scheduling of nodes at the same time
Meet real-time constraints
• There is intimate relationship between partitioning and
scheduling.
• Wide variation in timing properties of the hardware and
software implementation of a task.
That effects the overall latency significantly
Page: 22
What is an Embedded System ?
• Levels of Abstraction in Electronic System Design
• Typical Design Flow of Hardware-Software Systems
1. Choice of Right Platform
• Processor Less System
System Platform
PLC (Programmable logic unit) instead of Processor
System Platform Microprocessor or Microcontroller or DSP based system