25
Hardware/Software Codesign Prof. Dr. Christian Plessl SS 2017 High-Performance IT Systems group Paderborn University Version 2.3.0 – 2017-04-23

Hardware/Software Codesign - uni-paderborn.de

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Hardware/Software Codesign

Prof. Dr. Christian Plessl

SS 2017

High-Performance IT Systems groupPaderborn University

Version 2.3.0 – 2017-04-23

Motivating Example

• how to design a "digital TV set top box"

• main functions– reception of (possibly encrypted) digital video data– decompression of video and forwarding to TV– enhancement of image quality– storing video to attached hard disk (re-compression)

• auxiliary functions– electronic program guide– digital teletext– multimedia hub for home network (video, music, photos, ...)– games– downloadable apps

2image: Wikimedia commons

Many Choices for Implementation

• how to chose the processing resources?– general purpose CPU– specialized processor (micro-controller, DSP, ...)– programmable logic (FPGA)– dedicated, fixed-function chip (ASIC)

• how to divide the processing among resources?– all processing on same resource (powerful CPU)– system built from dedicated processors (e.g. micro-controller for control

and user interface, ASIC accelerator for decompression and decryption)– build a highly integrated system-on-chip

• how to interface the processing resources?– point-to-point communication links– on-board/on-chip networks

3

Do Our Choices Matter? Example Decryption (1)

• performance of different target architectures varies widely• example

– soft- and hardware implementations of different cryptography algorithms– illustrates performance vs. complexity tradeoffs

4Schaumont 2012

Do Our Choices Matter? Example Decryption (2)

5

• the energy efficiency varies even more than performance• example: energy efficiency of AES encryption for different

architectures

Schaumont 2012

software on CPUmax flexibilitymin efficiency

special purpose hardwaremin flexibility

max efficiency

efficiencyencrypted bits/energy

Most Systems Use a Mix of Target Architectures

• economical and technological reasons prohibit a "one-size-fits-all" solution

– different user and application requirements (performance, power, cost)– cost savings through reuse of hard- and software implementations– need to amortize development cost over a variety of products

• most computer systems use a variety of HW and SW technologies– programmable processing cores (RISC, DSP, microcontroller, …)– fixed co-processors/accelerators (e.g., ASIC for cryptography, video, ...)– reconfigurable accelerators (FPGA, coarse-grained arrays)– integration of several technologies in system-on-chip (SoC)

• functional partitioning depending on requirements– fixed functions that are performance or power critical → specialized accelerators– variable or non-critical functions → programmable processors

6

Example: SoC for Mobile Computer System

7

TI OMAP 4430 system-on-chip

Texas Instruments

Example: SoC for Mobile Computer System

8

TI OMAP 4430 system-on-chip

dual core ARM embedded RISC

GPU

multimedia co-processor

DSP

security co-processor

memory controllers

memory controllers

inpu

t/out

put c

ontro

llers

display controllers

inpu

t/out

put c

ontro

llers

input/output controllers

Texas Instruments

HW/SW Codesign-related Questions

• hardware platform– what processing elements are available?– how to chose the ones that satisfy performance, cost, power budget, ... ?– what is the communication demand between components?

• software/application– how to decompose the application into different parts?– what parts shall be executed on which resource?

• tool support– how to build automated tools to support the system design process?– how to build development tools for generating software and hardware?

9

The goal of HW/SW codesign is to develop methods and tools to solve these questions in an integrated, systematic and computer supported way

General Approach in HW/SW Codesign

• abstract and model– treat design of HW/SW system as optimization problem– abstract and formalize problem and design options (e.g., using graph

problems, integer linear programing, dynamic programming, …)

• then optimize …– exact or heuristic methods– determine optimal parameter settings and their sensitivity

• … or explore– explore design space and trade-offs– computer aided design automation guided by human decisions

10

Example: System Design

11

SW synthesis HW synthesis

application specification

system synthesis

machine code net lists

estimation

I/F synthesis

exploration,optimization

Synthesis Process

• generally speaking: the synthesis process transforms a

behavioral description into a structural description

• synthesis is comprised of 3 tasks

– allocation: select components

– binding: assign functions to components

– scheduling: determine execution order

12

in the following: illustration of these steps in system-level design

Application Specification at the System Level

13

task graph

< 200 ms

constraints A

D

CB

E

Allocation at the System Level

• components to be allocated– processors, dedicated hardware

– memory, I/O

– interconnection structures

14

MIPS DSP

ASIC

Mem

Mem

Binding at the System Level

15

MIPS DSP

ASIC

Mem

Mem

A

D

CB

E

Scheduling on the System Level

16

D

EASIC

ASIC

MIPS

DSP

MIPS

A

DSP MIPS ASIC

time

B

C

A

D

CB

E

Scheduling on the System Level

17

D

E

ASIC

ASIC

MIPS

DSP

MIPS

A

DSP MIPS ASIC

time

B

C

A

D

CB

Ealternative schedule, reducesexecution time

Optimal Design Points

18

cost

execution time

1

6

3

2

4 5

1, 2, 4, 6 are Pareto points

1 2 3 4 5 6

1

2

3

4

✎ Exercise 1.1: Design Space, Pareto Points

Course Synopsis

• introduction– target architectures– introduction to compilers

• high-level hardware architecture synthesis• partitioning

– hardware/software partitioning– system partitioning

• design space exploration– evolutionary algorithms– estimation of design parameters

• optional topics– instruction set extension– emulation– case studies

19

Relation to Other Lectures in CS/CE Curriculum

• Bachelor level courses– Foundations of Computer Architecture/ Engineering (GRA/GTI)

§ fundamentals of digital logic and computer architecture– Embedded processors

§ architecture of embedded processors, micro controllers and DSPs§ compilers for special purpose processors

• Master level courses– Advanced Computer Architecture

§ memory hierarchy design, instruction level parallelism, data-level parallelism, thread-level parallelism

– Architektur Paralleler Rechnersysteme§ shared and distributed memory systems, cache coherency, high-performance

interconnects– High-Performance Computing

§ programming of parallel computer systems (Pthreads, OpenMP, MPI), design patterns of parallel processing, practical exercises with HPC clusters

– Reconfigurable Computing§ FPGA technology (architecture, methods and applications)

20

Benefits From Attending This Course

• learn about– challenges and approaches in modern system design– target architectures– useful optimization methods– a current and active research area

• prerequisites, fundamentals of:– digital design (combinational and sequential logic, finite state machines)– computer architecture (CPU architecture, instruction sets)– graphs– C programming language

21

Course Organization

• lecture & exercises– Monday, 13:15-14:45, 15:00-15:45, room O1.258– exercises are integrated in lecture, your participation is expected– additional programming exercises

• lecturers– Prof. Dr. Christian Plessl ([email protected])

office: O2.167, phone 60-5399– Dr. Tobias Kenter ([email protected])

office: O2.161, phone 60-4340

• web page– http://cs.uni-paderborn.de/hit → Teaching → SS2017 → Codesign

• course Materials on the web– lecture slides, exercise sheets, selected papers– website is continuously updated with new materials

22

Literature and Acknowledgements

• this course is based on materials from the following books…– Patrick R. Schaumont, A practical Introduction to Hardware/Software

Codesign. 2nd edition. Springer 2012. doi:10.1007/978-1-4614-3737-6(available in full text within UPB network)

– Jürgen Teich and Christian Haubelt. Digitale Hardware/Software-Systeme. Synthese und Optimierung. Springer, 2007.doi:10.1007/978-3-540-46824-0(available in full text within UPB network)

– Giovanni De Micheli, Synthesis and Optimization of Digital Circuits. McGraw-Hill, 1994.

• … and on lecture materials from the Bachelor-level lecture “HW/SW Codesign”– taught by Christian Plessl (2009-2010) and previously by Marco Platzner

23

Changes

• v2.3.0 (2017-04-23)– updated for SS2017

• v2.2.0 (2016-04-08)– updated for SS2016

• v2.1.1 (2015-04-16)– updated after 1st lecture with concrete details of organization

24

Changes

• v2.1.0 (2015-04-13)– updated for SS2015, cosmetics

• v2.0.2 (2014-04-09)– updated for SS2014, minor additions

• v2.0.1 (2013-04-10)– cosmetics and minimal additions

• v2.0.0 (2013-04-10)– completely revised and updated for SS2013

• v1.0.3 (2012-04-14)– corrected minor typos

• v1.0.2 (2012-04-10)– updated for SS2012

• v1.0.1 (2011-04-01)– added more slides illustrating the FPGA toolflow

25