Part I Basic Concepts
1 The Nature of Hardware and Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Introducing Hardware/Software Codesign .. . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Hardware .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 Software .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.3 Hardware and Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.4 Defining Hardware/Software Codesign . . . . . . . . . . . . . . . . . . . . . 11
1.2 The Quest for Energy Efficiency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.1 Relative Performance .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.2 Energy Efficiency .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 The Driving Factors in Hardware/Software Codesign.. . . . . . . . . . . . . . . 15
1.4 The Hardware–Software Codesign Space. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4.1 The Platform Design Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4.2 Application Mapping .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.5 The Dualism of Hardware Design and Software Design .. . . . . . . . . . . . 20
1.6 More on Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.6.1 Abstraction Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.7 Concurrency and Parallelism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.8 Summary.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1