29.01.2013 Views

Hardware/Software Codesign

Hardware/Software Codesign

Hardware/Software Codesign

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Hardware</strong>/<strong>Software</strong><br />

<strong>Codesign</strong><br />

SS 2012<br />

Jun.-Prof. Dr. Christian Plessl<br />

Custom Computing<br />

University of Paderborn<br />

Version 1.0.3 – 13.04.2012


• motivation and introduction<br />

– goals and main questions in HW/SW codesign<br />

• course synopsis<br />

• lecture organization<br />

Overview<br />

2


HW/SW codesign<br />

• what is HW/SW codesign?<br />

– integrated design of computer systems that consist of hardware and<br />

software components<br />

– supported by a systematic computer-aided design process<br />

• objectives<br />

– handle increasing complexity of computer systems<br />

– find better solutions than with a manual process<br />

– reduce design time and validation time/cost<br />

– explore design trade-offs (performance vs. energy efficiency vs. … )<br />

3


Performance vs. size trade-offs for cryptography<br />

• soft- and hardware implementations of different cryptography<br />

algorithms<br />

Schaumont 2010<br />

4


Power efficiency of AES encryption<br />

• same application / different implementations<br />

• vastly different power efficiency depending on specialization/<br />

generality<br />

Schaumont 2010<br />

5


performance<br />

energy efficiency<br />

RISC<br />

sweet<br />

spot<br />

DSP<br />

General purpose vs. application specific<br />

ASIP<br />

FPGA<br />

ASIC<br />

effort to change application<br />

development effort<br />

concerns<br />

extremely high NRE cost<br />

high volume/fixed function only<br />

high engineering effort<br />

high unit-cost<br />

high production cost<br />

competition from off-the-shelf SoC<br />

competition from RISC processors<br />

operating system support<br />

low energy efficiency<br />

IP protection<br />

6


Mix of technologies in most systems<br />

• no “one-size fits all” solution for economical and technological<br />

reasons<br />

– different requirements<br />

– reuse hard- and software implementations<br />

– distribute development cost over a variety of products<br />

• majority of computer systems use a variety of HW and SW<br />

technologies<br />

– programmable processing cores (RISC, DSP, uC, …)<br />

– fixed co-processors/accelerators (e.g., cryptography, multimedia, …)<br />

– reconfigurable accelerators (FPGA, coarse-grained arrays)<br />

• designing and programming such platforms is challenging<br />

– HW/SW codesign addresses this challenge in a systematic way<br />

– example: Texas Instruments OMAP processor (system on chip for mobile<br />

computing systems)<br />

7


Texas Instruments<br />

Example: SoC for mobile computer system<br />

TI OMAP 4430 system-on-chip<br />

8


Texas Instruments<br />

Example: SoC for mobile computer system<br />

input/output controllers<br />

memory<br />

controllers<br />

dual core ARM<br />

embedded RISC<br />

GPU<br />

memory<br />

controllers<br />

TI OMAP 4430 system-on-chip<br />

security co-processor<br />

input/output controllers<br />

multimedia<br />

co-processor<br />

DSP<br />

display controllers<br />

input/output controllers<br />

9


Texas Instruments<br />

Example: SoC for mobile computer system<br />

• HW/SW codesign issues:<br />

input/output controllers<br />

memory<br />

controllers<br />

GPU<br />

memory<br />

controllers<br />

TI OMAP 4430 system-on-chip<br />

security co-processor<br />

input/output controllers<br />

• how to design such a platform?<br />

• how to partition the application’s functionality to<br />

dual core ARM multimedia<br />

components? embedded RISC co-processor<br />

DSP<br />

• how to determine if a particular mapping is good?<br />

• how to generate tools that support such a platform?<br />

display controllers<br />

input/output controllers<br />

10


software<br />

platform<br />

programming<br />

hardware<br />

(platform)<br />

Schaumont 2010 (adapted)<br />

C<br />

RISC<br />

max flexibility<br />

min efficiency<br />

general<br />

purpose<br />

C/ASM<br />

DSP<br />

HW/SW codesign space<br />

Application<br />

C/HDL<br />

ASIP<br />

domain<br />

specific<br />

C/HDL<br />

FPGA<br />

platform<br />

selection<br />

application<br />

mapping<br />

HDL<br />

ASIC<br />

min flexibility<br />

max efficiency<br />

application<br />

specific<br />

11


improve performance<br />

improve energy efficiency<br />

reduce power density<br />

implement more<br />

in hardware<br />

Schaumont 2010 (adapted)<br />

Driving factors in HW/SW codesign<br />

manage design complexity<br />

decrease time-to-market<br />

reduce design & verification cost<br />

implement more<br />

in software<br />

12


• hardware/software partitioning<br />

– what functionality should be programmable?<br />

Main questions in HW/SW codesign<br />

– what functionality should be implemented in fixed in hardware?<br />

– how to create tools (compilers) that can exploit fixed functions?<br />

• system partitioning<br />

– how to distribute functions to different components?<br />

• design space exploration<br />

– what system implementation alternatives exist?<br />

– what are their characteristics (performance, power, cost)<br />

• architecture synthesis<br />

– how to translate software to hardware?<br />

13


• abstract and model<br />

– treat design of HW/SW system as optimization problem<br />

General approach<br />

– abstract and formalize problem and design options (e.g., using graph<br />

problems, integer linear programing, dynamic programming, …)<br />

• optimize or …<br />

– exact or heuristic methods<br />

– determine optimal parameter settings and their sensitivity<br />

• … explore<br />

– explore design space and trade-offs<br />

– computer aided design automation guided by human decisions<br />

14


• introduction<br />

– target architectures<br />

– introduction to compilers<br />

Topics we will look at in this lecture<br />

• high-level hardware architecture synthesis<br />

• partitioning<br />

– hardware/software partitioning<br />

– system partitioning<br />

• design space exploration<br />

– estimation of design parameters<br />

• instruction set extension<br />

15


Relation to other lectures in CS curriculum<br />

• Bachelor level courses<br />

– GRA/GTI<br />

§� fundamentals of digital logic and computer architecture<br />

– Embedded processors<br />

§� architecture of embedded processors, micro controllers and DSPs<br />

§� compilers for special purpose processors<br />

– Embedded Systems<br />

§� modeling languages, hardware verification<br />

• Master level courses<br />

– Reconfigurable Computing<br />

§� FPGA technology (architecture, methods and applications)<br />

– Architektur Paralleler Rechnersysteme<br />

§� parallel programming models and languages, high-performance computing<br />

16


Benefits from attending this course<br />

• Learn about<br />

– challenges and approaches in modern system design<br />

– target architectures<br />

– useful optimization methods<br />

– a current and active research area<br />

17


• Lecture Friday, 11:15-12:45, O1.267<br />

• Exercises Friday, 13:15-14:00, O1.267<br />

– mix of pencil and paper and programming exercises<br />

– try to solve the problems yourself<br />

– discussion of the problems in the exercises<br />

• Contact: Christian Plessl<br />

Course Organization<br />

email: christian.plessl@uni-paderborn.de<br />

office: O3.110, phone: 60-5399<br />

• Web page<br />

http://homepages.uni-paderborn.de/plessl/lectures/2012-<strong>Codesign</strong><br />

• Course Materials on the web<br />

– lecture slides, exercise sheets, selected papers<br />

18


Literature and acknowledgements<br />

• this course is based on materials from the following books…<br />

– Patrick R. Schaumont, A practical Introduction to <strong>Hardware</strong>/<strong>Software</strong><br />

<strong>Codesign</strong>. Springer 2010. doi:10.1007/978-1-4419-6000-9<br />

(available in full text within UPB network)<br />

– Jürgen Teich and Christian Haubelt. Digitale <strong>Hardware</strong>/<strong>Software</strong>-Systeme.<br />

Synthese und Optimierung. Springer, 2007.<br />

doi:10.1007/978-3-540-46824-0<br />

(available in full text within UPB network)<br />

– Giovanni De Micheli, Synthesis and Optimization of Digital Circuits.<br />

McGraw-Hill, 1994.<br />

• … and on lecture materials from the Bachelor-level lecture “HW/<br />

SW <strong>Codesign</strong>”<br />

– taught by Christian Plessl (2009-2010) and previously by Marco Platzner<br />

19


• v1.0.3 (2012-04-14)<br />

– corrected minor typos<br />

• v1.0.2 (2012-04-10)<br />

– updated for SS2012<br />

• v1.0.1 (2011-04-01)<br />

– added more slides illustrating the FPGA toolflow<br />

Changes<br />

20

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!