1 staunstrup and wolf ed. “hardware software codesign: principles and practice”, kluwer...
TRANSCRIPT
![Page 1: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/1.jpg)
1
Hardware Software
Co design
![Page 2: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/2.jpg)
2
Texts
Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997
Gajski, Vahid, Narayan and Gong, “Specification, Design of Embedded Systems”, Prentice Hall, 1994
Suggested papers in the class web
![Page 3: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/3.jpg)
3
Introduction
Digital systems designs consists of hardware components and software programs that execute on the hardware platforms
Hardware-Software Co design ?
![Page 4: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/4.jpg)
4
Microelectronics trends
Better device technology reduced in device sizes more on chip devices > higher density higher performances
![Page 5: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/5.jpg)
5
Microelectronics trends
Higher degree of integration increased device reliability inclusion of complex designs
![Page 6: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/6.jpg)
6
Digital Systems
Judged by its objectives in application domain
Performance Design and Manufacturing cost Ease of Programmability
![Page 7: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/7.jpg)
7
Digital Systems
Judged by its objectives in application domain
Performance Design and Manufacturing cost Ease of Programmability
It depends on both the hardware and software components
![Page 8: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/8.jpg)
8
Hardware/Software Codesign
Key concepts Concurrent: hardware and software
developed at the same time on parallel paths
Integrated: interaction between hardware and software developments to produce designs that meet performance criteria and functional specifications
The meeting of system-level objectives by exploiting the trade-offs between hardware and software in a system through their concurrent design
![Page 9: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/9.jpg)
9
Concurrent design
Traditional design flow
Concurrent (codesign) flow
HW SW
start
start
HW SWDesigned by independent groups of experts Designed by Same group of
experts with cooperation
![Page 10: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/10.jpg)
10
Co design motivation
Trend toward smaller mask-level geometries leads to:
Higher integration and cost of fabrication.
Suggestion: Use software as a means of
differentiating products based on the same hardware platform.
![Page 11: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/11.jpg)
11
Hardware ProgrammabilityTraditionally Hardware used to be configured at the time of
manufacturing Software is variant at run time
The Field Programmable Gate Arrays (FPGA)has blurred this distinction.
![Page 12: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/12.jpg)
12
FPGAs
FPGA circuits can be configured on-the-fly to implement a specific software function with better performance than on microprocessor.
![Page 13: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/13.jpg)
13
FPGAs
FPGA circuits can be configured on-the-fly to implement a specific software function with better performance than on microprocessor.
FPGA can be reprogrammed to perform another specific function without changing the underlying hardware.
![Page 14: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/14.jpg)
14
FPGAs
FPGA circuits can be configured on-the-fly to implement a specific software function with better performance than on microprocessor.
FPGA can be reprogrammed to perform another specific function without changing the underlying hardware.
This flexibility opens new applications of digital circuits.
![Page 15: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/15.jpg)
15
Why codesign?
Reduce time to market
![Page 16: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/16.jpg)
16
Why codesign?
Reduce time to market Achieve better design
▪ Explore alternative designs▪ Good design can be found by balancing the
HW/SW
![Page 17: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/17.jpg)
17
Why co design?
Reduce time to market Achieve better design
▪ Explore alternative designs▪ Good design can be found by balancing the
HW/SW To meet strict design constraint
▪ power, size, timing, and performance trade-offs
▪ safety and reliability▪ system on chip
![Page 18: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/18.jpg)
18
Distinguishing features of digital system
Interrelated criteria for a system design
HardwareTechnology
Level ofIntegration
Degree of Programmability
ApplicationDomain
![Page 19: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/19.jpg)
19
Application Domains
General purpose computing system▪ usually self contained and with peripherals▪ Information processing systems
![Page 20: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/20.jpg)
20
Application Domains
General purpose computing system▪ usually self contained and with peripherals▪ Information processing systems
Dedicated control system▪ part of the whole system, Ex: digital controller
in a manufacturing plant▪ also, known as embedded systems
![Page 21: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/21.jpg)
21
Embedded Systems
Uses as small computer to perform certain function
Conceived with specific application in mind
▪ examples: dash controller in autombiles, remote controller for robots, answering machines, etc.
User has limited access to system programming
▪ system is provided with system software during manufacturing
▪ not used as a computer
Application-specific systems which contain hardware and software tailored for a particular task and are generally part of a larger system (e.g., industrial controllers)
![Page 22: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/22.jpg)
Embedded Systems: Examples
Banking and transaction processing applications
Automobile engine control units
Signal processing applications
Home appliances (microwave ovens)
Industrial controllers in factories
Cellular communications
![Page 23: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/23.jpg)
23
Degree of Programmability
Most digital systems are programmed by some software programs for functionality.
Two important issues related to programming:
who has the access to programming? Level at which programming is
performed.
![Page 24: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/24.jpg)
24
Degree of Programmability: Accessibility
Understand the role of: End users, application developers, system integrator and component manufacturers.
![Page 25: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/25.jpg)
25
Degree of Programmability: Accessibility
Understand the role of: End users, application developers, system integrator and component manufacturers.
Application Developer: System to be retarget able.
![Page 26: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/26.jpg)
26
Degree of Programmability: Accessibility
Understand the role of: End users, application developers, system integrator and component manufacturers.
Application Developer: System to be retargetable.System Integrator: Ensure compatibility of system
components
![Page 27: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/27.jpg)
27
Degree of Programmability: Accessibility
Understand the role of: End users, application developers, system integrator and component manufacturers.
Application Developer: System to be retargetable.System Integrator: Ensure compatibility of system
componentsComponent Manufactures: Concerned with maximizing
product reuse
![Page 28: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/28.jpg)
28
Degree of Programmability
Example 1: Personal computerEnd User: Limited to application levelApplication Dev.: Language tools, Operating
System, high-level programming environment (off the self components)
Component Manf.: Drive by bus standards, protocols etc.
Observe that: coalescing the system components due to higher chip densityResult: Few but more versatile system hardware components
![Page 29: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/29.jpg)
29
Example 2.
Embedded Systems End user: Limited access to
programming Most software is already
provided by system integrator who could be application developer too!
![Page 30: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/30.jpg)
30
Level of Programmability
Systems can be programmed at application, instruction and hardware levels
Application Level: Allows users to specify “option of functionality” using special language.
Example: Programming VCR or automated steering control of a ship
![Page 31: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/31.jpg)
31
Level of programmability
Hardware level programmability
Example: Microprogramming (determine the behavior of control unit by microprogram)
configuring the hardware (after manufacturing) in the desired way.
![Page 32: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/32.jpg)
32
Programmability
Microprogramming Vrs. Reconfigurability
Microprogram allows to reconfigure the control unitwhereas Reconfigurable system can modify both
Data path and controller.
![Page 33: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/33.jpg)
33
Programmability
Microprogramming Vrs. Reconfigurability
Microprogram allows reconfigure the control unitversus Reconfigurable system can modify both
datapath and controller.
Reconfigurability increases usabilitybut not the performance of a system.
![Page 34: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/34.jpg)
A Model of the Current Hardware/Software Design Process
SystemConcepts
Sys/HWRequire.Analysis
Sys/SWRequire.Analysis
Operation.Testing and
Eval.
SoftwareRequire.Analysis Prelim.
Design DetailedDesign Coding,
Unit test.,Integ. testSW Development
HWCITesting
CSCITesting
SystemInteg. and
test
[Franke91]
HardwareRequire.Analysis
Prelim.Design
DetailedDesign
Fabric.HW Development
DOD-STD-2167A
© IEEE 1991
![Page 35: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/35.jpg)
Directions of the HW/SW Design Process
SystemConcepts
Sys/HWRequire.Analysis
Sys/SWRequire.Analysis
HardwareRequire.Analysis
SoftwareRequire.Analysis
Operation.Testing and Evaluation
SW Development
HW Development
SystemInteg. and test
HWCITesting
CSCITesting
[Franke91]
Integrated Modeling Substrate
Integrated Modeling Substrate
Prelim.Design
Prelim.Design
DetailedDesign
DetailedDesign
Fabric.
Coding,Unit test.,Integ. test
© IEEE 1991
![Page 36: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/36.jpg)
36
Typical codesign process
SystemDescription
HW/SWPartitioning
Softwaresynthesis
Interfacesynthesis
Hardwaresynthesis
Systemintegration
Modeling
Unified representation
Instruction set levelHW/SW evaluation
![Page 37: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/37.jpg)
37
Steps in Codesign
HW-SW system involvesspecificationmodeling design space exploration and
partitioning synthesis and optimizationvalidation implementation
![Page 38: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/38.jpg)
38
Steps in codesign
Specification▪ List the functions of a system that describe
the behavior of an abstraction clearly with out ambiguity.
Modeling:▪ Process of conceptualizing and refining the
specifications, and producing a hardware and software model.
![Page 39: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/39.jpg)
39
Modeling style
Homogeneous: a modeling language or a graphical formalism for presentation
▪ partitioning problem used by the designer Heterogeneous: multiple
presentations▪ partitioning is specified by the models
![Page 40: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/40.jpg)
40
Steps in codesign
Validation:Process of achieving a reasonable level of confidence that the system will work as designed.
![Page 41: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/41.jpg)
41
Steps in codesign
Implementation:Physical realization of the hardware (through synthesis) and of executable software (through compilation).
![Page 42: 1 Staunstrup and Wolf Ed. “Hardware Software codesign: principles and practice”, Kluwer Publication, 1997 Gajski, Vahid, Narayan and Gong, “Specification,](https://reader035.vdocuments.us/reader035/viewer/2022062421/56649dcd5503460f94ac1531/html5/thumbnails/42.jpg)
42
Partitioning and Scheduling (where and when)
A hardware/software partitioning represents a physical partition of system functionality into application-specific hardware and software.
Scheduling is to assign an execution start time to each task in a set, where tasks are linked by some relations.