Hardware/Software Co-design Design of Hardware/Software Systems

Download Report

Transcript Hardware/Software Co-design Design of Hardware/Software Systems

Hardware/Software Co-design
Design of Hardware/Software
Systems
A Class Presentation for VLSI Course by :
Akbar Sharifi
Based on the work presented in :
PROCEEDINGS OF THE IEEE
1997
GIOVANNI DE MICHELI, FELLOW IEEE
RAJESH K.GUPTA, MEMBER, IEEE
-----------------------------------------------------------------Some Slides From :
RASSP Education & Facilitation Program
Module 14
Outline





Typical Co-Design Process
Components of HS Problems
Partitioning
Scheduling
Co-Simulation
Typical Co-design Process
FSMdirected graphs
System
Description
(Functional)
Concurrent processes
Programming languages
Unified representation
(Data/control flow)
HW/SW
Partitioning
Another
HW/SW
partition
SW
Software
Synthesis
HW
Interface
Synthesis
System
Integration
Hardware
Synthesis
Instruction set level
HW/SW evaluation
Components of the Co-design
Problem
 Specification of the system
 Hardware/Software Partitioning
– Architectural assumptions - type of processor, interface style
between hardware and software, etc.
– Partitioning objectives - maximize speedup, latency requirements,
minimize size, cost, etc.
– Partitioning strategies - high level partitioning by hand, automated
partitioning using various techniques, etc.
 Scheduling
– operation scheduling in hardware
– Instruction scheduling in compilers
– Process scheduling in operating systems
 Modeling the hardware/software system during the design
process
Partitioning
 A first order of impact on the cost/performance of
the final design
 In embedded systems :
– Partition of system functionality into application-specific
hardware and software executing on processors
 In general purpose computing systems :
– Captured by instruction set
 In FPGAs :
– Performing technology mapping
Scheduling
 Hardware and software scheduling differ in
formulation and overall goals
 Assign an execution start time to each task in a set
 Tasks linked by some relations (e.g.
dependencies, priorities….)
 Important when several modules in the partition
share a single hw unit
 Tasks execution requires the use of resources that
can be limited in number
 Serialization of some task execution
Operation Scheduling in Hardware
 The techniques have been implemented in CAD
tools
 Operations are assumed to take a known, integer
number of cycles to execute
 Integer linear programming
 The usual goal : minimize the overall execution
latency
 Satisfying the precedence and resource constraints
 heuristic approaches:
– list scheduling,
– force directed scheduling
Scheduling
 Instruction scheduling in hardware
– define a linear order of instructions
– instruction selection and register allocation
– goal: minimize code size and spills to memory
 Coupling between scheduling
– Pipelined microprocessors
– Pipeline hazard avoidance
 Process scheduling in operating systems
– SJF
– Roundrobin
– FIFO
Co-simulation
 An HDL (VHDL or Verilog) simulation environment is used
to perform behavioral simulation of the system hardware
processes
 A Software environment (C or C++) is used to develop the
code
 SW and HW execute as separate processes linked through
UNIX IPC (interprocessor communications) mechanisms
(sockets)
Verilog Co-simulation Example
Verilog HW Simulator
Module: Application
specific hardware
HW
proc 1
HW
proc 2
SW
proc 1
Module: Bus Interface
UNIX
sockets
Verilog PLI
SW
proc 2
Software processes
communicate with
hardware simulator
via UNIX sockets
Verilog PLI (programming
language interface) serves as
translator, allowing hardware
simulation models to
communicate with software
processes.
VHDL Co-simulation Example
VHDL Simulator
Hardware Model in VHDL:
RS232
module
VME
module
VHDL Foreign Language
Interface
Software processes
communicate with
hardware simulator
via foreign language
interface
SW
proc 1
SW
proc 2
Allowing hardware
simulation models to
“cosimulate” with software
processes.
 Hardware/Software co-design is the key design
technology for digital systems
References
 Hardware/Software Co-Design, 1996. (Codes/CASHE
'96), Proceedings., Fourth International Workshop on
 Hardware/Software Codesign of Embedded Systems,
Design Modeling and Design Verification
UCSD computer science professor Rajesh Gupta and
Cal-(IT)² researcher Ingolf Krueger