Hardware/Software Codesign
Hardware/Software Codesign
Hardware/Software Codesign
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