Gaspard tutorial

Preview:

Citation preview

Gaspard2 Tutorial

Rabie Ben Atitalah, Jean-Luc Dekeyser andPierre Boulet

24 September 2008

Overview

Overview

High Performance ApplicationDevelopment: MPSoC

VerificationSimulationSynthesis

Multiple languagesMultiple abst. levels

Application Domain of Gaspard2:intensive signal processing

"Gaspard" stands for

Graphical array specification for parallel anddistributed computing

Hypotheses

É component-basedÉ massive

parallelismÉ regular

applications andhardware

É no complex flow ofcontrol

É static scheduling,no RTOS

MARTE packages used in Gaspard2É Foundations

É Non Functional PropertiesÉ Generic Component Model

É Flow portsÉ Allocation

É Detailed Resource ModelingÉ Hardware Resource Modeling::HwLogical

É Repetitive Structure Modeling

���������������

����������� ������� ������� ����������������������������� � �������������� ���!

�� �� �������

"#$%&'$()*#+*,+-$.&/$0,12345$)1$+565410$75*4893:5$*#+$;:<5++5+$(=()5:(

>

��?������@��������� �A����� ������AB������C!C

>

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

������������

� �������������������������������������������������������� ������������������ �� �!!�� "����������!���#���$���������%&���%''(

� �������������������������������������������)�� �!!����*�������������)����++���������������� D))0-EEFFFGH*,,1448,5(5*,HDG1,IE

� "������������������,����������������������������� J;"$/KL9$M$H1#)*H)-$(5<*()35#GI5,*,+NH5*G2,O

� PQ*(H*,$;(03#1R*S$LT<*()35#$'T,*,+S$L*21Q*#$9*D*$*#+$U,T+T,3H$9D1:*(G$$

� KV7K"$MH1#)*H)-$71<5,)GW5X(3:1#5N(10D3*G3#,3*G2,O� JD*,45($"#+,TS$71<5,)$+5$L3:1#5S$Y35,,5$Z1Q45)

� 9D*45($979$MH1#)*H)-$/*Q,5#)G,31Q[N)D*45(I,1Q0GH1:O� &*+5453#5$U*QI\,5S$/*Q,5#)$731Q[S$L5<*()35#$W5:*)D35Q

]

��?������@��������� �A����� ������AB������C!C

]

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-�����������������������

� .���������������$�������������������������������,���

����������������.�������������������,��������������������

����������

� U1,$W1:*3#$^35F$45654

� U1,$.&/$Y,12345$^35F$/5654

� U1,$.(5,$&1+54$^35F$/5654

e_

��?������@��������� �A����� ������AB������C!C

e_

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

�����

� �����/

� K#),1+QH)31#$)1$&WW$21,$79E;$(=()5:(${$&"79;$3#$*$#Q)(D544

� �����%

� V1#82Q#H)31#*4$0,105,)35($:1+543#I

� %Q)43#5$12$)D5$^*4Q5$L05H323H*)31#$/*#IQ*I5$M^L/O$

� �����3

� 9D5$)3:3#I$:1+54

� �����4

� ��������������������� 1�

� �����5

� Y4*)21,:$:1+543#I$

� �����6

� 7505)3)365$(),QH)Q,5$:1+543#I

� �����(

� &1+548<*(5+$*#*4=(3($21,$79E;$

� �����&

� &"79;$*#+$""W/$

� �����7

� J1#H4Q(31#(

e`

��?������@��������� �A����� ������AB������C!C

e`

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

)�������8���������������������

� ��������

� )������������������������������������������� ����������

���������

� V55+$21,$:*#*I5*<45$*#+$,5Q(*<45$035H5($12$(12)F*,5

� u5=$5[*:045(-$/3ID)F53ID)8JJ&S$LJ"S$"Q)1(*,

� )���������������������������������������!�����1�!�������

����������������

� ;#)3)35($Q#+5,$*#*4=(3(E+5(3I#$<,1l5#$+1F#$3#)1$*$(5,35($12$H1:01#5#)(

� "0043H*<45$*)$+3225,5#)$()*I5($12$)D5$0,1H5((

� W3225,5#)$l3#+-$*H)365$6(G$0*((365$M5GIGS$.&/$*H)365$H4*((5(O

� ;[*:045($12$,54*)5+$4*#IQ*I5(-$L=(&/S$""W/

9D5,5$3($*$#55+$)1$0,163+5$:1+543#I$H1#(),QH)($)1$(Q001,)$)D5(5$H1#H50)($*)$+3225,5#)$45654($12$*<(),*H)31#

ea

��?������@��������� �A����� ������AB������C!C

ea

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

.���������������������?+:

� ?+��������������������������������������������������������

� 9D5$l5,#54$12$)D5$4*#IQ*I5$+523#5($�����$*#+$�������

� !���������������$+523#5($"���$*#+$������$*#+$0,163+5$)D5$*<343)=$)1$+5(H,3<5$*$�����$*($*#$*((5:<4=$12$0*,)(

� #����*#+$"�$�%�%�������$+523#5$)D5$#1)31#$12$H1:01#5#)$,5*43R*)31#$*#+$*++($0*Hl*I3#I$H*0*<343)35(

� K#$*#=$H*(5S$#1$(Q001,)$21,$241F81,35#)5+$H1::Q#3H*)31#(

eb

��?������@��������� �A����� ������AB������C!C

eb

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

�����)�����������

� 0���������������������,���������������8����������

� L=(&/S$L03,3)S$""W/S$/3ID)F53ID)8JJ&S$;"L98"W/>S$"Q)1(*,

� #��������������������������������������������

� ���������������?+�����������������$�������������������������������

!��+�������������������

� ")1:3H$*#+$#1#8*)1:3H$241F$01,)(

� U41F$0,105,)35($*#+$241F$(05H323H*)31#(

� @�����������,��������������������+���������8))$���#+�������! 8

�#+%$�!�����������������

ed

��?������@��������� �A����� ������AB������C!C

ed

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

���� �� )����������

ee

��?������@��������� �A����� ������AB������C!C

ee

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

����������������������������

L)*#+*,+$.&/$01,)$)=05+$<=$*$H4*(($)D*)$Q(5($)D5$/1H*)31#"HH5(($3#)5,2*H5

")1:3H$241F$01,)$)=05+$<=$*$J4*((3235,

J1:045[$241F$01,)$)=05+$<=$*$241F$(05H323H*)31#

fgg

��?������@��������� �A����� ������AB������C!C

fgg

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

�����������������������

.&/$+545I*)31#$H1##5H)1,$Q(5+$F3)D$*#$*)1:3H$241F$01,)

%Q)I13#I$*)1:3H$241F$01,)

K#H1:3#I$*)1:3H$241F$01,)

.&/$+545I*)31#$H1##5H)1,$Q(5+$F3)D$*$#1#8*)1:3H$241F$01,)

fge

��?������@��������� �A����� ������AB������C!C

fge

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

�����

� �����/

� K#),1+QH)31#$)1$&WW$21,$79E;$(=()5:(${$&"79;$3#$*$#Q)(D544

� �����%

� V1#82Q#H)31#*4$0,105,)35($:1+543#I

� %Q)43#5$12$)D5$^*4Q5$L05H323H*)31#$/*#IQ*I5$M^L/O$

� �����3

� 9D5$)3:3#I$:1+54

� �����4

� "$H1:01#5#)$:1+54$21,$79E;

� �����5

� ����������������$

� �����6

� 7505)3)365$(),QH)Q,5$:1+543#I

� �����(

� &1+548<*(5+$*#*4=(3($21,$79E;$

� �����&

� &"79;$*#+$""W/$

� �����7

� J1#H4Q(31#(

ff`

��?������@��������� �A����� ������AB������C!C

ff`

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

�����������2��������

� @���������

� "441H*)5$*#$*0043H*)31#$545:5#)$)1$*#$0,1H5((3#I$04*)21,:$545:5#)

� 7523#5$*$I5#5,*4$545:5#)$3#)1$1#5$1,$(565,*4$:1,5$(05H323H$545:5#)($

� 0�������������!��+������������ J*#$1#4=$*441H*)5$*0043H*)31#$)1$5[5HQ)31#$04*)21,:

� J*#$*))*HD$VUY$H1#(),*3#)($)1$)D5$*441H*)31#

ffa

��?������@��������� �A����� ������AB������C!C

ffa

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

���������������������������������������

� 0�����������������������������������������������

� #������������������������������������������

vD*)$H*#$(5,65$*($*$)*,I5)$12$*#$*441H*)31#S$)D5$0D=(3H*4$635F-�$*$,5(1Q,H5$1,$*$(5,63H5G

vD*)$H*#$<5$*441H*)5+S$)D5$41I3H*4$635F-�$(),QH)Q,5$1,$<5D*631,

f_b

��?������@��������� �A����� ������AB������C!C

f_b

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-���������

!��������,�����

&"79;

!�������������

�����;�

��������

����������

P7&

#������-.

�������

!������;��-.�

�������

-�����,��-.�

�������

-.�������

������������

�������

p 3#H4Q+5 q

p 5[)5#+ q

p 3#H4Q+5 q

p 3#H4Q+5 q

p 3#H4Q+5 q

]$Q(5$H*(5($t$]$45654($12$+5)*34(

f_d

��?������@��������� �A����� ������AB������C!C

f_d

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-����������88�-�����,�����������������

� -��:

� P3ID$45654$12$�����������

� ������������$635F$12$)D5$Pv$04*)21,:

� v3)D$l5=$0,105,)35(-

� ;GIGS$3#(),QH)31#$(5)$*#+$:5:1,=$(3R5G

� "$21,:*4$635F$12$Q(Q*4$��������������$

� "��

� P3ID$45654$+5(H,30)31#$12$5[3()3#I$*#+$)*,I5)5+$Pv$04*)21,:

� U3,()$()50($12$+5(3I#$12$#5F$Pv$*,HD3)5H)Q,5

� @�

� L=()5:$*,HD3)5H)(

� L12)F*,5$+5654105,(

f_e

��?������@��������� �A����� ������AB������C!C

f_e

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-����������88�!������;�����������������

� -��:

� L05H3*43R5+$Pv$����������$:1+54

� V*)Q,5$12$+5)*34($+505#+($1#$)D5$���������,��

� ;[f$-$*Q)1#1:=$*#*4=(3($,5kQ3,5($01F5,$H1#(Q:0)31#$:1+543#I

� ;[>$-$vJ;9$*#*4=(3($#55+$+5)*34($1#$0,1H5((1,$(055+S$H1::Q#3H*)31#$<*#+F3+)D$*#+$:5:1,=$1,I*#3R*)31#m

� "������������������

� @�������;��

f`g

��?������@��������� �A����� ������AB������C!C

f`g

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-����������88�#���������������������

� -��:

� P7&$3($*$+5)*345+$Pv$*,HD3)5H)Q,5$+5(3I#$4*#IQ*I5

� /5654$12$+5)*34($+505#+($1#$)D5$+5(H,30)31#$��������

� ;[f-$UQ#H)31#*4$(3:Q4*)1,$12$*$0,1H5((1,$1#4=$,5kQ3,5($3)($3#(),QH)31#$(5)$2*:34=

� ;[>-$Y5,21,:*#H5$(3:Q4*)31#$#55+$*$23#5$+5(H,30)31#$12$0,1H5((1,($:3H,18*,HD3)5H)Q,5G

� "��

� &1+548<*(5+$+*)*(D55)($+5(H,30)31#

� L3:Q4*)31#

� I5#5,*)31#$12$H1#23IQ,*)31#($21,$(3:Q4*)31#$)114(

� @�

� Pv$+5(3I#5,(

f`f

��?������@��������� �A����� ������AB������C!C

f`f

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-����������

� -��������������������������������������

� LQHH5((365$���������$4*=5,(

� "���$I5#5,3H$H1#H50)($M'7&843l5O

� ,)�������%�������-�,)'����*-�,)�����������������.

� �$(05H323H$*#+$+5)*345+$,5(1Q,H5(

� ,)"�������-�,)#���"�������-�,)����-�,)''/-�,)#��-�,)#���%�-�,)�'�.

� "44$P7&$H1#H50)($*,5$,)�������0�1

� 9F1���������635F(������������������

+�������1���������

F �������G

-�������gGGw

gGGf

1F#5+75(1Q,H5(

F �������G

-�������!�,��

0,163+5+L5,63H5(

fGGw,5kQ3,5+L5,63H5(

gGGw

f`>

��?������@��������� �A����� ������AB������C!C

f`>

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-�����������88�+��������������

� ���,������2Q#H)31#*4�����������

� @�����������������������������������������������������=

p PFY,1H5((1, qS$p PFY/W qSp PF"LKJq

p PFJ*HD5 qS$p PF7"&qS$p PF7%&qS$p PFW,365q

p PF&&. qSp PFW&" q

p PF",<3)5, q

p PFZ,3+I5 q

p PF&5+3* qS$p PFZQ( q

p PFW563H5 qS

p PFLQ001,) q

p PFKE% qp PFJ41Hl qSp PF93:5, q

G$$$$$$PFJ1:0Q)3#I$$$$$$ G$$$$$ G$$$$$$PFL)1,*I5$$$$$$ G$$$$$

G$$$$$$PFW563H5$$$$$$ G$$$$$

G$$$$$$PFJ1::Q#3H*)31#$$$$$$ G$$$$$

G$$$$$$PF93:3#I$$$$$$ G$$$$$

f`]

��?������@��������� �A����� ������AB������C!C

f`]

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-�����������88�����������������

� ���,������0D=(3H*4��������������������

� @�����������������������������

� PF/*=1Q)

� U1,:(-$JD30S$J*,+S$JD*##54m

� W3:5#(31#(S$*,5*$*#+$*,,*#I5:5#)$:5HD*#3(:$F3)D3#$,5H)343#5*,$I,3+(

� ;#63,1#:5#)*4$H1#+3)31#(-$5GIG$)5:05,*)Q,5S$63<,*)31#S$DQ:3+3)=m

� PFY1F5,

� Y1F5,$H1#(Q:0)31#$*#+$D5*)$+3((30*)31#

G$$$$$$PF/*=1Q)$$$$$$ G$$$$$ G$$$$$$PFY1F5,$$$$$$ G$$$$$

p PFJ1:01#5#) ql3#+$-$xJ*,+S$JD*##54S$JD30S$Y1,)y

p PFJ1143#ILQ004=qp PFY1F5,LQ004=q

f`_

��?������@��������� �A����� ������AB������C!C

f`_

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-����������,�,��

F ������ G

-�

F ������G

-�+������

F ������G

-���������

-�)��������-�!�����

-�)������������

-� �����

-�+�����

-�!����������

-�#,��

F ������G

�� �== ��

p 3:01,) q

-�����

-� ����� -� �����

F ����+������ G

�� �==+������==@����9"�K ���

p 3:01,) q

-�����

f``

��?������@��������� �A����� ������AB������C!C

f``

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-���������88�-�����

F ������ G

-�

F ������G

-�+������

F ������G

-���������

-�)��������-�!�����

-�)������������

-� �����

-�+�����

-�!����������

-�#,��

F ������G

�� �== ��

p 3:01,) q

-�����

-� ����� -� �����

F ����+������ G

�� �==+������==@����9"�K ���

p 3:01,) q

-�����

f`a

��?������@��������� �A����� ������AB������C!C

f`a

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-���������88�-�����

:5:1,=L3R5$-$VUYXW*)*L3R5*++,5((L3R5$-$VUYXW*)*L3R5)3:3#I($-$93:3#I$rws

F �������G

-�����

F �������G�� �== �==!�����

F �������G-�������

45654$-$VUYXV*)Q,*4$t$f)=05$-$J*HD59=05(),QH)Q,5$-$J*HD5L),QH)Q,5,504XY143H=$-$7504XY143H=F,3)5Y143H=$-$v,3)5Y143H=

F �������G-�)���

1,I*#3R*)31#$-$&5:1,=%,I*#3R*)31#3(L=#HD,1#1Q($-$VUYXZ1145*#3(L)*)3H$ -VUYXZ1145*#3(V1#^14*)345$ -$VUYXZ1145*#,504XY143H=$ -$7504XY143H=F,3)5Y143H=$-$v,3)5Y143H=

F �������G-���

W*)*K#(),QH)31#.#3235+%)D5,.#+523#5+

p5#Q:5,*)31# q)��� ��

#1)*)31#$-$VUYXL),3#I+5(H,30)31#$-$VUYXL),3#I6*4Q5$-$VUYXWQ,*)31#

p +*)*9=05 q �����

#<71F($-$VUYXV*)Q,*4#<J14Q:#($-$VUYXV*)Q,*4#<Z*#l($-$VUYXV*)Q,*4F1,+L3R5$-$VUYXW*)*L3R5

p +*)*9=05q����������;�����

#<L5)($-$VUYXV*)Q,*4<41HL3R5$-$VUYXW*)*L3R5*((1H3*)363)=$ -$VUYXV*)Q,*4

p +*)*9=05 q)���!�������

v,3)5Z*Hlv,3)59D,1QID%)D5,.#+523#5+

p 5#Q:5,*)31# q.���������

/7.VU.UKU%7*#+1:%)D5,.#+523#5+

p 5#Q:5,*)31# q���K������

)=05$-$7%&X9=051,I*#3R*)31#$-$&5:1,=%,I*#3R*)31#

F �������G-���

&*(l5+7%&;Y7%&%9YX;Y7%&;;Y7%&U4*(D%)D5,.#+523#5+

p 5#Q:5,*)31#q��K ��

(5H)1,L3R5$-$VUYXW*)*L3R5

F �������G-�#��,

<Q225,x(Q<(5)($1F#5+Pvy

gGGf

-�����

f`b

��?������@��������� �A����� ������AB������C!C

f`b

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-���������88�-������88�-�)���

W*)*K#(),QH)31#.#3235+%)D5,.#+523#5+

p5#Q:5,*)31# q)��� ��

#<L5)($-$VUYXV*)Q,*4<41HL3R5$ -$VUYXW*)*L3R5*((1H3*)363)=$ -$VUYXV*)Q,*4

p +*)*9=05q)���!�������

v,3)5Z*Hlv,3)59D,1QID%)D5,.#+523#5+

p5#Q:5,*)31# q.���������

/7.VU.UKU%7*#+1:%)D5,.#+523#5+

p5#Q:5,*)31# q���K������

45654$-$VUYXV*)Q,*4$t$f)=05$-$J*HD59=05(),QH)Q,5$-$J*HD5L),QH)Q,5,504XY143H=$-$7504XY143H=F,3)5Y143H=$-$v,3)5Y143H=

F �������G-�)���

� PFJ*HD5$3($*$0,1H5((3#I$:5:1,=$FD5,5$2,5kQ5#)4=$Q(5+$+*)*$H*#$<5$()1,5+$21,$,*03+$*HH5((

� W5)*345+$+5(H,30)31#$12$)D5$PFJ*HD5$3($#5H5((*,=$21,$05,21,:*#H5$*#*4=(3($*#+$(3:Q4*)31#$

f`d

��?������@��������� �A����� ������AB������C!C

f`d

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-���������88�-������88�-�)���

W*)*K#(),QH)31#.#3235+%)D5,.#+523#5+

p 5#Q:5,*)31# q)��� ��

#<L5)($-$VUYXV*)Q,*4<41HL3R5$-$VUYXW*)*L3R5*((1H3*)363)=$ -$VUYXV*)Q,*4

p +*)*9=05 q)���!�������

v,3)5Z*Hlv,3)59D,1QID%)D5,.#+523#5+

p 5#Q:5,*)31# q.���������

/7.VU.UKU%7*#+1:%)D5,.#+523#5+

p 5#Q:5,*)31# q���K������

45654$-$VUYXV*)Q,*4$t$f)=05$-$J*HD59=05(),QH)Q,5$-$J*HD5L),QH)Q,5,504XY143H=$-$7504XY143H=F,3)5Y143H=$-$v,3)5Y143H=

F �������G-�)���

� L05H3235($)D5$H*HD5$45654G� W52*Q4)$6*4Q5$3($f

f`e

��?������@��������� �A����� ������AB������C!C

f`e

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-���������88�-������88�-�)���

W*)*K#(),QH)31#.#3235+%)D5,.#+523#5+

p5#Q:5,*)31# q)��� ��

#<L5)($-$VUYXV*)Q,*4<41HL3R5$ -$VUYXW*)*L3R5*((1H3*)363)=$ -$VUYXV*)Q,*4

p +*)*9=05q)���!�������

v,3)5Z*Hlv,3)59D,1QID%)D5,.#+523#5+

p5#Q:5,*)31# q.���������

/7.VU.UKU%7*#+1:%)D5,.#+523#5+

p5#Q:5,*)31# q���K������

45654$-$VUYXV*)Q,*4$t$f)=05$-$J*HD59=05(),QH)Q,5$-$J*HD5L),QH)Q,5,504XY143H=$-$7504XY143H=F,3)5Y143H=$-$v,3)5Y143H=

F �������G-�)���

� L05H3235($)D5$PFJ*HD5$(),QH)Q,5

� PFJ*HD5$3($1,I*#3R5+$Q#+5,$(5)($12$<41Hl(G

� "((1H3*)363)=$3($)D5$#Q:<5,$12$<41Hl($F3)D3#$5*HD$(5)G

� K2$*((1H3*)363)=$t$fS$H*HD5$3($+3,5H)$:*005+

� K2$#<L5)($t$fS$H*HD5$3($2Q44=$*((1H3*)365G

� %J/$,Q45

� �����*!�+��2��!���������!�+������������ ��*

fag

��?������@��������� �A����� ������AB������C!C

fag

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-���������88�-������88�-�)���

W*)*K#(),QH)31#.#3235+%)D5,.#+523#5+

p5#Q:5,*)31# q)��� ��

#<L5)($-$VUYXV*)Q,*4<41HL3R5$ -$VUYXW*)*L3R5*((1H3*)363)=$ -$VUYXV*)Q,*4

p +*)*9=05q)���!�������

v,3)5Z*Hlv,3)59D,1QID%)D5,.#+523#5+

p5#Q:5,*)31# q.���������

/7.VU.UKU%7*#+1:%)D5,.#+523#5+

p5#Q:5,*)31# q���K������

45654$-$VUYXV*)Q,*4$t$f)=05$-$J*HD59=05(),QH)Q,5$-$J*HD5L),QH)Q,5,504XY143H=$-$7504XY143H=F,3)5Y143H=$-$v,3)5Y143H=

F �������G-�)���

� L05H3235($)D5$H*HD5$F,3)5$0143H=$� v,3)5Z*Hl-$J*HD5$F,3)5$3($#1)$3::5+3*)54=$

,5245H)5+$)1$)D5$<*Hl3#I$:5:1,=G

� v,3)59D,1QID-$v,3)5($*,5$3::5+3*)54=$:3,,1,5+G

fb]

��?������@��������� �A����� ������AB������C!C

fb]

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

�����

� �����/

� K#),1+QH)31#$)1$&WW$21,$79E;$(=()5:(${$&"79;$3#$*$#Q)(D544

� �����%

� V1#82Q#H)31#*4$0,105,)35($:1+543#I

� %Q)43#5$12$)D5$^*4Q5$L05H323H*)31#$/*#IQ*I5$M^L/O$

� �����3

� 9D5$)3:3#I$:1+54

� �����4

� "$H1:01#5#)$:1+54$21,$79E;

� �����5

� Y4*)21,:$:1+543#I$

� �����6

� ������,�����������������

� �����(

� &1+548<*(5+$*#*4=(3($21,$79E;$

� �����&

� &"79;$*#+$""W/$

� �����7

� J1#H4Q(31#(

fba

��?������@��������� �A����� ������AB������C!C

fba

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

������,�!��������������

� ���,�����

� %������������������ ���������������

� V5()5+$4110(

� &Q4)30,1H5((1,$L=()5:(

� ���� ���������������

� "0043H*)31#

� P*,+F*,5$04*)21,:

� "((1H3*)31#

� "���

� V5F$#1)*)31#$E$()5,51)=05(

fbb

��?������@��������� �A����� ������AB������C!C

fbb

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

)����������������,�!��������������

� @��������=��� ���������� ����

��������������������������

�������������������8������

� 75IQ4*,$(0*H3#I$12$013#)($3#(3+5$*$)345

� 75IQ4*,$(0*H3#I$12$)345(

� K#D5,3)($2,1:$)D5$",,*=8%/$4*#IQ*I5

� J1#H50)(� !���$M5[)5#(31#$12$����������*O

� 91$:1+54$:Q4)3+3:5#(31#*4$*,,*=(

� +������������$M5[)5#(31#$12$�����$*#+$�������O

� 91$:1+54$)D5$)10141I=$12$)D5$43#l($<5)F55#$:Q4)3+3:5#(31#*4$*,,*=(

� Y*))5,#8<*(5+$,5IQ4*,$)10141I35(

fbd

��?������@��������� �A����� ������AB������C!C

fbd

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

!����������

� 9����������� 7523#5:5#)$12$)D5$:Q4)3043H3)=$

#1)*)31#

� ^5H)1,$12$.#43:3)5+V*)Q,*4(

� �������� fa$�$x_S_y

� w$�$x`f>Sf>dSwy

F����������G?+==����������������

F��������G�!

F���������G

!����

(D*05$-$LD*05L05H323H*)31#$rfs

F ���� ��G

F���������� ���G

xH1445H)31#")),3<$t$(3R5y!���!�����������

(3R5$-$.#43:3)5+V*)Q,*4$rgGGws

fbe

��?������@��������� �A����� ������AB������C!C

fbe

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

F����������G

?+==)����������

F����������G

?+==)�������

F���������G

*���!���� �

F���������G#�����+���

F��������G�!

F���������G

0�����������

,505)3)31#L0*H5W505#+5#H5$-$K#)5I5,^5H)1,$rfs3(&1+Q41$-$Z1145*#$t$2*4(5

F���������G ���

1,3I3#$-$K#)5I5,^5H)1,0*63#I$-$K#)5I5,&*),3[23))3#I$-$K#)5I5,&*),3[)345,$-$9345,L05H323H*)31#

0*))5,#LD*05$-$LD*05L05H323H*)31#$rfs,505)3)31#L0*H5$-$LD*05L05H323H*)31#$rfs

F���������G

�����

+���� ��������������

fdg

��?������@��������� �A����� ������AB������C!C

fdg

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

-����������������������

� !0#������ fa$0,1H5((1,(

� �������� 91,13+*4$_�_$I,3+

� Z3+3,5H)31#*4$H1##5H)31#(

� V1,)D8L1Q)D

� ;*()8v5()

p$PFKL"$q$x)=05$t$LK&Wy!0#?���

p$PFJ1:0Q)3#I75(1Q,H5$q0$-$;45:5#)*,=Y,1H$rx_S_ys

F 5

(

#

p$3#)5,7505)3)31#$qx,505)3)31#L0*H5W505#+5#H5$txfSgyS

:1+Q41$t$),Q5y

p$3#)5,7505)3)31#$qx,505)3)31#L0*H5W505#+5#H5$txgSfyS

:1+Q41t),Q5y

0g 0f 0> 0]

0_ 0` 0a 0b

0d 0e 0fg 0ff

0f> 0f] 0f_ 0f`

fdf

��?������@��������� �A����� ������AB������C!C

fdf

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

��������������

� 9��������� ",,*=$(D*05

� Y*))5,#$(D*05

� 7505)3)31#$(0*H5$(D*05

� ���� 3����%-$,5IQ4*,$(0*H3#I$12$)D5$013#)($12$

)D5$)345(

� K#+5[$�

� LH*##3#I$)D5$0*))5,#

� "� �%-$,5IQ4*,$(0*H3#I$12$)D5$)345(

� K#+5[$�

� LH*##3#I$)D5$,505)3)31#$(0*H5

F���������G

���

1,3I3#$-$K#)5I5,^5H)1,0*63#I$-$K#)5I5,&*),3[23))3#I$-$K#)5I5,&*),3[)345,$-$9345,L05H323H*)31#

F ���� ��G

F����� ���G ���!�����������

1,3I3#$-$K#)5I5,^5H)1,0*63#I$-$K#)5I5,&*),3[$rfs23))3#I$-$K#)5I5,&*),3[

1,3I3#�M0*63#I$23))3#IOGM$O���$*,,*=G(D*05��

fd>

��?������@��������� �A����� ������AB������C!C

fd>

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

���������0����������������� ����B/1%C

� "������

� J14Q:#$65H)1,(

� Z*(3($12$)D5$)345

� Y*))5,#$(D*05

� Z1Q#+($12$)D5$23))3#I

� ��,���

� J14Q:#$65H)1,(

� Z*(3($12$)D5$04*H5:5#)$12$)D5$)345(

� 7505)3)31#$(0*H5

� Z1Q#+($12$)D5$0*63#I

� %,3I3#

� J11,+3#*)5($12$)D5$,525,5#H5$013#)$12$)D5$,525,5#H5$)345

fd]

��?������@��������� �A����� ������AB������C!C

fd]

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

���������0����������������� ����B%1%C

� "������

� J14Q:#$65H)1,(

� Z*(3($12$)D5$)345

� Y*))5,#$(D*05

� Z1Q#+($12$)D5$23))3#I

� ��,���

� J14Q:#$65H)1,(

� Z*(3($12$)D5$04*H5:5#)$12$)D5$)345(

� 7505)3)31#$(0*H5

� Z1Q#+($12$)D5$0*63#I

� %,3I3#

� J11,+3#*)5($12$)D5$,525,5#H5$013#)$12$)D5$,525,5#H5$)345

fd_

��?������@��������� �A����� ������AB������C!C

fd_

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

������������������

� !�����������5/%������������������������������ LD*05$12$)D5$3#0Q)$+*)*$t$`f>��

� ������������"" ��� U1,$5*HD$D=+,10D1#5

� L43+3#I$F3#+1F$12$f>d$(*:045($565,=$]>$)3:5$()50(

"��!���

rx`f>Swys2$-$UU9$rx̀ f>Swys

rx`f>Sf>dSwys

p$)345,$qx1,3I3#txgSgyS23))3#ItxxgSfyyS

0*63#ItxxfSgySxgS]>yy

p$)345,$qx1,3I3#txgSgSgyS23))3#ItxxgSfSgyyS

0*63#ItxxfSgSgySxgSgSfyyy

rxf>dys

rxf>dys

fd`

��?������@��������� �A����� ������AB������C!C

fd`

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

#�����������

� ���������������������

� !�������������������

��������������

���������

� ��������� 9343#I$<1)D$5#+(

� 9F1$)345,(

� v3)D$)D5$(*:5$)345(

� %#5$0*))5,#$(D*05

� %#5$,505)3)31#$(0*H5

� ����������������� ")$45*()$*44$PYU$+*)*$

+3(),3<Q)31#(

F���������G�����==�������

F��������G�!

F���������G

#��������

0*))5,#LD*05$-$LD*05L05H323H*)31#$rfs,505)3)31#L0*H5$-$LD*05L05H323H*)31#$rfs2,1:9345,$-$9345,L05H323H*)31#$rfs)19345,$-$9345,L05H323H*)31#$ rfs

fda

��?������@��������� �A����� ������AB������C!C

fda

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

#������������������

� #������������������"" ��������������������!0#������ V1$(0*)3*4$+3(),3<Q)31#$12$)D5$3#23#3)5$+3:5#(31#$M)3:5$()50(O

� Z41H$+3(),3<Q)31#$12$)D5$`f>$UU9($21,$5*HD$)3:5$()50

� L3R5$12$)D5$<41H$t$]>

� %#$)D5$fa$545:5#)*,=$0,1H5((1,(

fdb

��?������@��������� �A����� ������AB������C!C

fdb

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

#������������������

� #������������������"" ��������������������!0#������ V1$(0*)3*4$+3(),3<Q)31#$12$)D5$3#23#3)5$+3:5#(31#$M)3:5$()50(O

� Z41H$+3(),3<Q)31#$12$)D5$`f>$UU9($21,$5*HD$)3:5$()50

� L3R5$12$)D5$<41H$t$]>

� %#$)D5$fa$545:5#)*,=$0,1H5((1,(

p$+3(),3<Q)5$qx0*))5,#LD*05$t$x]>yS$,505)3)31#L0*H5$t$x_S_SwyS$2,1:9345,$t$x1,3I3#$t$xgSgyS

$23))3#I$t$xxfSgyyS$0*63#Itxx]>SgySxf>dSgySxgSfyyyS

$)19345,$t$x1,3I3#$t$xgSgyS$$$$$$$$$$$$$$$$23))3#I$t$xxgSgyyS$$$$$$$$$$$$$$$$0*63#I$t$xxfSgySxgSfySxgSgyyyy

U2)L)*I5--2$-$UU9$rx̀ f>Swys

L3:+.#3)--0$-$;45:5#)*,=Y,1H$rx_S_ys

fef

��?������@��������� �A����� ������AB������C!C

fef

���������������

����������� ������� ������������������������������������ � ���������

����� ���!

)��������������!

� ����������������������� &Q4)3+3:5#(31#*4$(),QH)Q,5($M*,,*=(O� 9343#I$<=$(Q<8(),QH)Q,5($M#1#$1,)D1I1#*4$1,$(0*,(5$)345($01((3<45O� /3#l($<5)F55#$(QHD$(),QH)Q,5($MH=H43H$1,$#1#$H=H43H$H1##5H)31#$0*))5,#($01((3<45O

� 9���������������������,������������������� J1:0*H)#5(($12$)D5$:1+54� ;223H35#H=S$:*3#)*3#*<343)=S$,5*+*<343)=

� �������������������������� �� .(5($^L/� Z5#523)($2,1:$)D5$H1:01#5#)$:1+54$M241F$01,)(O� "00435($)1$<1)D$*0043H*)31#$*#+$D*,+F*,5$H1:01#5#)(� ;[)5#+($*441H*)31#

� +����������� P*#+45($1#4=$*,,*=($M#1$2*#H35,$(D*05(O� v1Q4+$<5#523)$2,1:$*$HQ()1:$M63(Q*4O$)345,$5+3)1,

� .#+5,$+565410:5#)

Detailed Example(∞)

Downscaler

(352,288,∞)

(132,128,∞)

Horiz. Filter

(352,288) (132,288)

Vert. Filter(132,288)

(132,128)

Horizontal Filter

Horizontal filter

(352,288)

(132,288)

(44,288)

Hfilter

(11) (3)

F =

�10

�o =

�00

�P =

�8 00 1

�F =

�10

�o =

�00

�P =

�3 00 1

Horizontal Filter

Horizontal filter

(352,288)

(132,288)

(44,288)

Hfilter

(11) (3)

F =

�10

�o =

�00

�P =

�8 00 1

�F =

�10

�o =

�00

�P =

�3 00 1

Horizontal Filter: Input Tiler

0 310

17

r =�

00

F =

�10

�spattern =

�11�

o =

�00

�sarray =

�3218

�P =

�8 00 1

�srepetition =

�4

18

Horizontal Filter: Input Tiler

0 310

17

r =�

10

F =

�10

�spattern =

�11�

o =

�00

�sarray =

�3218

�P =

�8 00 1

�srepetition =

�4

18

Horizontal Filter: Input Tiler

0 310

17

r =�

25

F =

�10

�spattern =

�11�

o =

�00

�sarray =

�3218

�P =

�8 00 1

�srepetition =

�4

18

Horizontal Filter

Horizontal filter

(352,288)

(132,288)

(44,288)

Hfilter

(11) (3)

F =

�10

�o =

�00

�P =

�8 00 1

�F =

�10

�o =

�00

�P =

�3 00 1

Horizontal Filter: Output Tiler

0 110

17

r =�

00

F =

�10

�spattern =

�3�

o =

�00

�sarray =

�1218

�P =

�3 00 1

�srepetition =

�4

18

Horizontal Filter: Output Tiler

0 110

17

r =�

10

F =

�10

�spattern =

�3�

o =

�00

�sarray =

�1218

�P =

�3 00 1

�srepetition =

�4

18

Horizontal Filter: Output Tiler

0 110

17

r =�

25

F =

�10

�spattern =

�3�

o =

�00

�sarray =

�1218

�P =

�3 00 1

�srepetition =

�4

18

Vertical Filter

Vertical filter

(132,288) (132,128)(132,32)

Vfilter

(14) (4)

F =

�01

�o =

�00

�P =

�1 00 9

�F =

�01

�o =

�00

�P =

�1 00 4

Vertical Filter: Input Tiler

0 110

17

r =�

00

F =

�01

�spattern =

�14�

o =

�00

�sarray =

�1218

�P =

�1 00 9

�srepetition =

�122

Vertical Filter: Input Tiler

0 110

17

r =�

10

F =

�01

�spattern =

�14�

o =

�00

�sarray =

�1218

�P =

�1 00 9

�srepetition =

�122

Vertical Filter: Input Tiler

0 110

17

r =�

51

F =

�01

�spattern =

�14�

o =

�00

�sarray =

�1218

�P =

�1 00 9

�srepetition =

�122

RSM Semantics Summary

DSL for systematic signal processing

É First order pure functional languageÉ Multidimensional toroidal arraysÉ Pattern based data acess

Data parallel repetition

∀r,0 ≤ r < srepetition

∀i,0 ≤ i < spattern

t(r, i) = o+ (P F) ·�ri

�mod sarray

Overview

Software and hardware co-model for

data-intensive embedded systemco-design

MARTE packages used in Gaspard2

Foundations Non Functional Properties Generic Component Model

Flow ports Allocation

Detailed Resource Modeling Hardware Resource Modeling::HwLogical

Repetitive Structure Modeling

Gaspard2

UML2.0 MM

Gaspard2 MM

Marte MM

Co-model for co-design

Marte and Gaspard Metamodels High level data parallel constructions Hierarchical Repetitive Application, architecture and association models

Iterative dependency expression Data flow and control flow mixing Gaspard2 UML profile available

With MagicDraw and Papyrus

Optimization and compilation techniques

•Data parallel code transformations •Mapping and multi-objective hierarchical scheduling heuristics•Compilation from high-level models down to simulation, execution and synthesis •Eclipse integration•Model transformation techniques

•ModTransf, Momote, Mocode, QVTO

HP-SoC simulation and synthesis

•Simulation for architecture/application/association exploration

•SystemC simulation framework at PVT and CABA level

•Performance and power consumption evaluation

•Synthesis for large and reconfigurable FPGA

•VHDL code generation

•Network on Chip and SIMD design for MppSoC

•MppSoC implementation in FPGA (16-64 PE “à la Maspar”)

•OpenMP execution on SMP

•Synchronous code generation

Downscaler application

Horizontal filter: 8/3

CIF video frame: 352x288

Vertical filter:9/4

Resized video frame

CIF Frame structure

GOBn

GOB.

GOB.

GOB6

GOB5

GOB4

GOB3

GOB2

GOB1

352

288

Y component

+GOBn/2GOB4GOB3GOB2GOB1

176

144

U component

+GOBn/2GOB4GOB3GOB2GOB1

176

144

V component

Example: Downscaler

VFHF FCFGdata

Logical Memory

Sensor

Bus

MIPS processor

Hard Acc

CIF: 352x288

Task allocationData allocation

• First solution: Heterogeneous mono-processor architecture

• Second solution: Multi-processor architecture

Crossbar

4 to 16 MIPS processors

Downscaler: main application

Downscaler: main application

• Horizontal filter task

Downscaler: main application

• Vertical filter task

Downscaler: main application

• Downscaler task

Downscaler: main application

• Main application

Downscaler: main architecture

• Hardware elementary components

Shared Memory MPSoC architecture

Example of MPSoC architecture

Downscaler mapping

Downscaler: Deployment

Hardware and software deployment Intellectual Property block (IP) reuse from libraries A deployment extension is introduced The most important concepts

VirtualIP SoftwareIP, HardwareIP implements CodeFile Specialization Characteristic PowerModel

GaspardLib

GaspardLibSoftware Hardware

FFT, DCT, Convolution, FIR

Processor, cache, DMAC crossbar

EnergyProcessor, cache, DMAC crossbar

Downscaler: Deployment

Downscaler: Deployment

Papyrus modeling editor

Open source UML2 specification compliant Afull Eclipse project such as EMF, etc. Support all UML2 diagrams and profile

MARTE, SysML, CCM

OCL verification Java and C++ code generation Developed and supported by CEA and LIFL (DaRT) www.papyrusuml.org

Technology bases of Gaspard2

Model driven engineering metamodels model transformations

Eclipse platform metamodeling language: Ecore integration framework based on plugins transformation chains

Gaspard2 model transformations

Polyhedron model

Information given by the distribution in the high MPSoC model A polyhedron is generated for each task repetition Parameterized by a processor number (p0) and the task indexes

Loop model

Scanning the polyhedron Corresponding loop generation Task repetition space Using the CLoog tool

Pattern accurate (PA) TLM level

Fast simulation Data transfer observation Hardware/Software simulation before the processor

component is available

Instruction memory

Data memory

NoC Processor 0

Array0 Array1

Not used

Task E

Task C

Processor 1

Task A

TE

Allocation

Allocation

Task D

TB

TA

Task B

TDTC

Application execution graph

Gaspard2 Démo…

UML Gaspard Polyhedron

Loop SystemC PA

https://gforge.inria.fr/projects/gaspard2/

Overview

Recommended