Upload
pboulet
View
383
Download
3
Embed Size (px)
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