Gaspard2 Tutorial

Rabie Ben Atitalah, Jean-Luc Dekeyser and
               Pierre Boulet




          24 September 2008
Overview
Overview
High Performance Application
Development: MPSoC




                   Verification
                   Simulation
                   Synthesis

                   Multiple languages
                   Multiple abst. levels
Application Domain of Gaspard2:
intensive signal processing




 "Gaspard" stands for
 Graphical array specification for parallel and
 distributed computing
Hypotheses

    component-based
    massive
    parallelism
    regular
    applications and
    hardware
    no complex flow of
    control
    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:(
!
                                                   !!                   !     #       $
             % %''(




                                                                                                
                                                                 )       !!        *
                 )       ++
C!C




          D))0-EEFFFGH*,,1448,5(5*,HDG1,IE
AB




                              ,
          J;$/KL9$M$H1#)*H)-$(5*()35#GI5,*,+NH5*G2,O
              PQ*(H*,$;(03#1R*S$LT*()35#$'T,*,+S$L*21Q*#$9*D*$*#+$V,T+T,3H$9D1:*(G$$

          KW7K$MH1#)*H)-$715,)GX5Y(3:1#5N(10D3*G3#,3*G2,O
A




              JD*,45($#+,TS$715,)$+5$L3:1#5S$Z35,,5$[1Q45)





          9D*45($979$MH1#)*H)-$/*Q,5#)G,31QN)D*45(I,1Q0GH1:O
@




              *+5453#5$V*QI],5S$/*Q,5#)$731QS$L5*()35#$X5:*)D35Q
?
-




                                                       !
      .                     $                  ,
                        .                  ,




                                                       
          V1,$X1:*3#$`35F$45654
C!C
AB




          V1,$./$Z,12345$`35F$/5654
A




          V1,$.(5,$1+54$`35F$/5654

@
?




                                                   _
!
      /
          K#),1+QH)31#$)1$XX$21,$79E;$(=()5:($}$79;$3#$*$#Q)(D544
      %
          W1#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
C!C




      4
                                      1
AB




      5
          Z4*)21,:$:1+543#I$
      6
          7505)3)365$(),QH)Q,5$:1+543#I
      (
A




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





      
          79;$*#+$X/$
@




      7
          J1#H4Q(31#(
?




                                                                       ga
)                     8




                                                                                          !
      )




                                                                                          
           W55+$21,$:*#*I5*45$*#+$,5Q(*45$035H5($12$(12)F*,5
           w5=$5*:045(-$/3ID)F53ID)8JJS$LJS$Q)1(*,
C!C




      )                                                    !         1!
AB




           ;#)3)35($Q#+5,$*#*4=(3(E+5(3I#$,1n5#$+1F#$3#)1$*$(5,35($12$H1:01#5#)(
           0043H*45$*)$+3225,5#)$()*I5($12$)D5$0,1H5((
           X3225,5#)$n3#+-$*H)365$6(G$0*((365$M5GIGS$./$*H)365$H4*((5(O
A




           ;*:045($12$,54*)5+$4*#IQ*I5(-$L=(/S$X/





      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#
?




                                                                                     gb
.                              ? +:




                                                                         !
      ? +

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




                                                                         
          *#+$

          !                 $+523#5($ $*#+$
C!C




                    $*#+$0,163+5$)D5$*343)=$)1$
          +5(H,35$*$     $*($*#$*((5:4=$12$0*,)(
AB




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

@




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




                                                                    gc
)




                                                                                  !
      0                          ,                 8
            L=(/S$L03,3)S$X/S$/3ID)F53ID)8JJS$;L98X/S$Q)1(*,




                                                                                  
      #
C!C




                          ? +                       $
AB




      !      +
            )1:3H$*#+$#1#8*)1:3H$241F$01,)(
            V41F$0,105,)35($*#+$241F$(05H323H*)31#(
A





      @             ,                      +            8)) $   #+     ! 8
          #+%$ !
@
?




                                                                             gd
?   @      A   AB   C!C




                                        )




gf




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




                                                                                        
C!C
AB
A





                                                 J1:045$241F$01,)$)=05+$=$*$
@




      L)*#+*,+$./$01,)$)=05+$=$*$H4*(($)D*)$   241F$(05H323H*)31#
      Q(5($)D5$/1H*)31#HH5(($3#)5,2*H5
?




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




                                                                                 
C!C
AB




                                          ./$+545I*)31#$H1##5H)1,$Q(5+$
A




                                          F3)D$*$#1#8*)1:3H$241F$01,)

@




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




                                                                           hii
!
      /
          K#),1+QH)31#$)1$XX$21,$79E;$(=()5:($}$79;$3#$*$#Q)(D544
      %
          W1#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
C!C




      4
          $H1:01#5#)$:1+54$21,$79E;
AB




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




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





      
          79;$*#+$X/$
@




      7
          J1#H4Q(31#(
?




                                                                       hig
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#)($
C!C
AB




      0                     !       +
             J*#$1#4=$*441H*)5$*0043H*)31#$)1$55HQ)31#$04*)21,:
             J*#$*))*HD$WVZ$H1#(),*3#)($)1$)D5$*441H*)31#
A

@
?




                                                                   hhb
!
            0


      xD*)$H*#$5$*441H*)5+S$




                                                                   
      )D5$41I3H*4$635F-
        $(),QH)Q,5$1,$5D*631,   xD*)$H*#$(5,65$*($*$
                                 )*,I5)$12$*#$*441H*)31#S$
                                 )D5$0D=(3H*4$635F-
C!C




                                    $*$,5(1Q,H5$1,$*$
                                 (5,63H5G
AB




            #
A

@
?




                                                             hhc
-




                                                                             !
                                79;

                                                   P7
                            r 3#H4Q+5 s




                                                                             
          !
                                           -        ,   -.


                              r 5)5#+ s
                                               r 3#H4Q+5 s
C!C




                                           !        ;    -.
      !       ,
AB




                                                                  -.
                             r 3#H4Q+5 s       r 3#H4Q+5 s


                                               #        -.
A





              ;
@




                  _$Q(5$H*(5($v$_$45654($12$+5)*34(
?




                                                                       had
-                    88 -   ,




                                                                              !
      -    :
          P3ID$45654$12$




                                                                              
                       $635F$12$)D5$Px$04*)21,:
          x3)D$n5=$0,105,)35(-
C!C




               ;GIGS$3#(),QH)31#$(5)$*#+$:5:1,=$(3R5G
          $21,:*4$635F$12$Q(Q*4$                       $
AB




      
          P3ID$45654$+5(H,30)31#$12$53()3#I$*#+$)*,I5)5+$Px$04*)21,:
          V3,()$()50($12$+5(3I#$12$#5F$Px$*,HD3)5H)Q,5
A




      @





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




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




                                                                        haf
-                 88 !       ;




                                                                                           !
      -    :
          L05H3*43R5+$Px$             $:1+54




                                                                                           
          W*)Q,5$12$+5)*34($+505#+($1#$)D5$              ,
               ;h$-$*Q)1#1:=$*#*4=(3($,5mQ3,5($01F5,$H1#(Q:0)31#$:1+543#I
C!C




               ;$-$xJ;9$*#*4=(3($#55+$+5)*34($1#$0,1H5((1,$(055+S$H1::Q#3H*)31#$
               *#+F3+)D$*#+$:5:1,=$1,I*#3R*)31#o
AB




      
      @          ;
A

@
?




                                                                                     hag
-                   88 #




                                                                                                   !
      -    :
          P7$3($*$+5)*345+$Px$*,HD3)5H)Q,5$+5(3I#$4*#IQ*I5




                                                                                                   
          /5654$12$+5)*34($+505#+($1#$)D5$+5(H,30)31#$
               ;h-$VQ#H)31#*4$(3:Q4*)1,$12$*$0,1H5((1,$1#4=$,5mQ3,5($3)($3#(),QH)31#$(5)$2*:34=
C!C




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




      
          1+548*(5+$+*)*(D55)($+5(H,30)31#
          L3:Q4*)31#
A




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





      @
@




          Px$+5(3I#5,(
?




                                                                                             hbi
-




                                                                                                                !
      -
            LQHH5((365$            $4*=5,(




                                                                                                                
                $I5#5,3H$H1#H50)($M'7843n5O
                ,)              %            - ,)'    *- ,)                                  .
              $(05H323H$*#+$+5)*345+$,5(1Q,H5(
C!C




                ,)             - ,)#               - ,)            - ,)''/- ,)#      - ,)#     % - ,) ' .
AB




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

                         iGGh                               0,163+5+L5,63H5(
                                    F        G                          hGGy       F     G
                         iGGy        -                      ,5mQ3,5+L5,63H5(   -       ! ,
A




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

      9F1                  635F(





                       +                 1
@
?




                                                                                                          hbh
-                                        88 +




                                                                                                                                         !
          ,            2Q#H)31#*4
      @                                                                                                        =
                        G$$$$$$PFJ1:0Q)3#I$$$$$$ G$$$$$                   G$$$$$$PFL)1,*I5$$$$$$ G$$$$$




                                                                                                                                         
C!C




                    r PFZ,1H5((1, sS$r PFZ/X sS               r PFJ*HD5 sS$r PF7 sS$        r PF. sS
                           r PFLKJ s                          r PF7% sS$r PFX,365 s         r PFX s
AB




              G$$$$$$ PFX563H5$$$$$$ G$$$$$                                                         G$$$$$$PF93:3#I$$$$$$ G$$$$$
                                                     G$$$$$$ PFJ1::Q#3H*)31#$$$$$$ G$$$$$
A




          r PFX563H5 sS       r PFKE% s              r PF[,3+I5 s                                         r PFJ41Hn sS





          r PFLQ001,) s
                                                                                                          r PF93:5, s
                                                                       r PF,3)5, s
@




                                               r PF5+3* sS$r PF[Q( s
?




                                                                                                                                   hb
-                                  88




                                                                                                 !
           ,               0D=(3H*4
      @
            PF/*=1Q)




                                                                                                 
                   V1,:(-$JD30S$J*,+S$JD*##54o
                   X3:5#(31#(S$*,5*$*#+$*,,*#I5:5#)$:5HD*#3(:$F3)D3#$,5H)343#5*,$I,3+(
C!C




                   ;#63,1#:5#)*4$H1#+3)31#(-$5GIG$)5:05,*)Q,5S$63,*)31#S$DQ:3+3)=o
            PFZ1F5,
AB




                   Z1F5,$H1#(Q:0)31#$*#+$D5*)$+3((30*)31#
               G$$$$$$ PF/*=1Q)$$$$$$ G$$$$$            G$$$$$$PFZ1F5,$$$$$$ G$$$$$
A




                                               r PFZ1F5,LQ004= s      r PFJ1143#ILQ004=s





                  r PFJ1:01#5#) s
          n3#+$-$zJ*,+S$JD*##54S$JD30S$Z1,){
@
?




                                                                                           hb_
-                            , ,




                                                                                                      !
                     F             G                           F    +       G
                              ==                             ==+   ==@     9 K


             r 3:01,) s                                                  r 3:01,) s




                                                                                                      
                                                 F       G
                                                     -

                          F            G                                    F         G
                          - +                                              -
C!C




                          -                                                 -
AB




                                             - !
       - )
                                                                            - +

                                             -
A




      - )
                                           - !                              -

@




        -                                        - # ,
?




                                                                                                hba
-                                            88 -




                                                                                                       !
                     F             G                           F    +       G
                              ==                             ==+   ==@     9 K


             r 3:01,) s                                                  r 3:01,) s




                                                                                                       
                                                 F       G
                                                     -

                          F            G                                    F         G
                          - +                                              -
C!C




                          -                                                 -
AB




                                             - !
       - )
                                                                            - +
                                             -
A




      - )
                                           - !                              -

@




        -                                        - # ,
?




                                                                                                 hbb
-                                                           88 -




                                                                                                                                                                  !
                               -


                                                       F                  G                      F             G
                                                           ==       ==!                           -




                                                                                                                              r +*)*9=05 s




                                                                                                                                                                  
                                                                              F              G
                                                                                  -

                                                                :5:1,=L3R5$-$WVZYX*)*L3R5                               #1)*)31#$-$WVZYL),3#I
                                                                *++,5((L3R5$-$WVZYX*)*L3R5                              +5(H,30)31#$-$WVZYL),3#I
                                                                )3:3#I($-$93:3#I$tyu                                    6*4Q5$-$WVZYXQ,*)31#
C!C
AB




              F            G                   F                G                           F              G                      F                G
                  - )                              -                                             -                                   - # ,

        45654$-$WVZYW*)Q,*4$v$h       1,I*#3R*)31#$-$5:1,=%,I*#3R*)31#            )=05$-$7%Y9=05                         (5H)1,L3R5$-$WVZYX*)*L3R5
        )=05$-$J*HD59=05              3(L=#HD,1#1Q($-$WVZY[1145*#                  1,I*#3R*)31#$-$5:1,=%,I*#3R*)31#
        (),QH)Q,5$-$J*HD5L),QH)Q,5    3(L)*)3H$ -WVZY[1145*#
        ,504YZ143H=$-$7504YZ143H=     3(W1#`14*)345$ -$WVZY[1145*#                 iGGh
        F,3)5Z143H=$-$x,3)5Z143H=     ,504YZ143H=$ -$7504YZ143H=
                                                                                   Q225,
                                      F,3)5Z143H=$-$x,3)5Z143H=
                                                                                   z(Q(5)($1F#5+Px{
A




      r 5#Q:5,*)31# s      r 5#Q:5,*)31# s    r 5#Q:5,*)31# s                     r +*)*9=05 s                     r +*)*9=05 s           r 5#Q:5,*)31# s
            K                .                  )                             )        !                                    ;                 K





      /7.                 x,3)5[*Hn          X*)*                     #L5)($-$WVZYW*)Q,*4                #71F($-$WVZYW*)Q,*4            *(n5+7%
      WV.                 x,3)59D,1QID       K#(),QH)31#              41HL3R5$-$WVZYX*)*L3R5             #J14Q:#($-$WVZYW*)Q,*4         ;Z7%
      VKV%                %)D5,              .#3235+                  *((1H3*)363)=$ -$WVZYW*)Q,*4        #[*#n($-$WVZYW*)Q,*4           %9ZY;Z7%
      7*#+1:              .#+523#5+          %)D5,                                                        F1,+L3R5$-$WVZYX*)*L3R5         ;;Z7%
@




      %)D5,                                  .#+523#5+                                                                                    V4*(D
      .#+523#5+                                                                                                                           %)D5,
                                                                                                                                          .#+523#5+
?




                                                                                                                                                            hbc
-                      88 -                      88 - )




                                                                                                           !
            F               G                  PFJ*HD5$3($*$0,1H5((3#I$:5:1,=$FD5,5$
                - )
                                               2,5mQ5#)4=$Q(5+$+*)*$H*#$5$()1,5+$21,$,*03+$
                                               *HH5((




                                                                                                           
      45654$-$WVZYW*)Q,*4$v$h
      )=05$-$J*HD59=05
      (),QH)Q,5$-$J*HD5L),QH)Q,5
      ,504YZ143H=$-$7504YZ143H=                X5)*345+$+5(H,30)31#$12$)D5$PFJ*HD5$3($
C!C




      F,3)5Z143H=$-$x,3)5Z143H=                #5H5((*,=$21,$05,21,:*#H5$*#*4=(3($*#+$
                                               (3:Q4*)31#$
AB




          r 5#Q:5,*)31# s   r 5#Q:5,*)31# s     r 5#Q:5,*)31# s              r +*)*9=05 s
                K             .                   )                      )        !

          /7.               x,3)5[*Hn           X*)*               #L5)($-$WVZYW*)Q,*4
A




          WV.               x,3)59D,1QID        K#(),QH)31#        41HL3R5$ -$WVZYX*)*L3R5
          VKV%              %)D5,               .#3235+            *((1H3*)363)=$ -$WVZYW*)Q,*4





          7*#+1:            .#+523#5+           %)D5,
          %)D5,                                 .#+523#5+
          .#+523#5+
@
?




                                                                                                     hbd
-                      88 -                      88 - )




                                                                                                           !
            F               G
                - )




                                                                                                           
      45654$-$WVZYW*)Q,*4$v$h
      )=05$-$J*HD59=05                         L05H3235($)D5$H*HD5$45654G
      (),QH)Q,5$-$J*HD5L),QH)Q,5
      ,504YZ143H=$-$7504YZ143H=                     X52*Q4)$6*4Q5$3($h
C!C




      F,3)5Z143H=$-$x,3)5Z143H=
AB




          r 5#Q:5,*)31# s   r 5#Q:5,*)31# s     r 5#Q:5,*)31# s              r +*)*9=05 s
                K             .                   )                      )        !

          /7.               x,3)5[*Hn          X*)*                #L5)($-$WVZYW*)Q,*4
A




          WV.               x,3)59D,1QID       K#(),QH)31#         41HL3R5$-$WVZYX*)*L3R5
          VKV%              %)D5,              .#3235+             *((1H3*)363)=$ -$WVZYW*)Q,*4





          7*#+1:            .#+523#5+          %)D5,
          %)D5,                                .#+523#5+
          .#+523#5+
@
?




                                                                                                     hbf
-                        88 -                           88 - )




                                                                                                             !
            F               G                 L05H3235($)D5$PFJ*HD5$(),QH)Q,5
                - )                           PFJ*HD5$3($1,I*#3R5+$Q#+5,$(5)($12$41Hn(G
                                              ((1H3*)363)=$3($)D5$#Q:5,$12$41Hn($F3)D3#$5*HD$(5)G




                                                                                                             
      45654$-$WVZYW*)Q,*4$v$h
                                                    K2$*((1H3*)363)=$v$hS$H*HD5$3($+3,5H)$:*005+
      )=05$-$J*HD59=05
      (),QH)Q,5$-$J*HD5L),QH)Q,5                    K2$#L5)($v$hS$H*HD5$3($2Q44=$*((1H3*)365G
      ,504YZ143H=$-$7504YZ143H=               %J/$,Q45
C!C




      F,3)5Z143H=$-$x,3)5Z143H=                              *! + 2   !            !+              *
AB




          r 5#Q:5,*)31# s   r 5#Q:5,*)31# s     r 5#Q:5,*)31# s            r +*)*9=05 s
                K             .                   )                    )        !

          /7.               x,3)5[*Hn          X*)*               #L5)($-$WVZYW*)Q,*4
A




          WV.               x,3)59D,1QID       K#(),QH)31#        41HL3R5$ -$WVZYX*)*L3R5
          VKV%              %)D5,              .#3235+            *((1H3*)363)=$ -$WVZYW*)Q,*4





          7*#+1:            .#+523#5+          %)D5,
          %)D5,                                .#+523#5+
          .#+523#5+
@
?




                                                                                                       hbg
-                      88 -                      88 - )




                                                                                                           !
            F               G                  L05H3235($)D5$H*HD5$F,3)5$0143H=$
                - )                                 x,3)5[*Hn-$J*HD5$F,3)5$3($#1)$3::5+3*)54=$
                                                    ,5245H)5+$)1$)D5$*Hn3#I$:5:1,=G




                                                                                                           
      45654$-$WVZYW*)Q,*4$v$h
      )=05$-$J*HD59=05                              x,3)59D,1QID-$x,3)5($*,5$3::5+3*)54=$
      (),QH)Q,5$-$J*HD5L),QH)Q,5                    :3,,1,5+G
      ,504YZ143H=$-$7504YZ143H=
C!C




      F,3)5Z143H=$-$x,3)5Z143H=
AB




          r 5#Q:5,*)31# s   r 5#Q:5,*)31# s     r 5#Q:5,*)31# s              r +*)*9=05 s
                K             .                   )                      )        !

          /7.               x,3)5[*Hn          X*)*                #L5)($-$WVZYW*)Q,*4
A




          WV.               x,3)59D,1QID       K#(),QH)31#         41HL3R5$ -$WVZYX*)*L3R5
          VKV%              %)D5,              .#3235+             *((1H3*)363)=$ -$WVZYW*)Q,*4





          7*#+1:            .#+523#5+          %)D5,
          %)D5,                                .#+523#5+
          .#+523#5+
@
?




                                                                                                     hci
!
      /
          K#),1+QH)31#$)1$XX$21,$79E;$(=()5:($}$79;$3#$*$#Q)(D544
      %
          W1#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
C!C




      4
          $H1:01#5#)$:1+54$21,$79E;
AB




      5
          Z4*)21,:$:1+543#I$
      6
                  ,
      (
A




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





      
          79;$*#+$X/$
@




      7
          J1#H4Q(31#(
?




                                                                       hd_
, !




                                                   !
              ,
          %




                                                   
              W5()5+$4110(
              Q4)30,1H5((1,$L=()5:(
C!C
AB




              0043H*)31#
              P*,+F*,5$04*)21,:
              ((1H3*)31#
A





      
@




          W5F$#1)*)31#$E$()5,51)=05(
?




                                             hdc
)                                , !




                                                                                           !
          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#n($5)F55#$:Q4)3+3:5#(31#*4$*,,*=(
                Z*))5,#8*(5+$,5IQ4*,$)10141I35(
C!C
AB




      @             =

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




          )345





          75IQ4*,$(0*H3#I$12$)345(
          K#D5,3)($2,1:$)D5$,,*=8%/$4*#IQ*I5
@
?




                                                                                     hdd
!




                                                                                       !
                                           9
      F         G
           !                                   7523#5:5#)$12$)D5$:Q4)3043H3)=$




                                                                                       
                                               #1)*)31#
                                               `5H)1,$12$.#43:3)5+W*)Q,*4(
                 F             G
C!C




            ? +==

                                               hc$‘$zaSa{
AB




                                               y$‘$zbhShfSy{
                    F          G
                        !                             F            G
                                                  F                   G
A




          (D*05$-$LD*05L05H323H*)31#$thu        zH1445H)31#)),3$v$(3R5{





                                                 !       !
                                           (3R5$-$.#43:3)5+W*)Q,*4$tiGGyu
@
?




                                                                                 hdf
+




                                                                                                                    !
                 F            G
                         !


                                                        F            G                     F              G
                                                       ? +==)                          ?   +==)




                                                                                                                    
                     F                G
                         #        +
                                                                 F           G
C!C




                                                                 *   !
AB




                                             F           G
                                            0

                             ,505)3)31#L0*H5X505#+5#H5$-$K#)5I5,`5H)1,$thu
                             3(1+Q41$-$[1145*#$v$2*4(5
A




                                                                                   F               G





                     F                G

                                                                             1,3I3#$-$K#)5I5,`5H)1,
@




      0*))5,#LD*05$-$LD*05L05H323H*)31#$thu                                  0*63#I$-$K#)5I5,*),3
      ,505)3)31#L0*H5$-$LD*05L05H323H*)31#$thu                               23))3#I$-$K#)5I5,*),3
                                                                             )345,$-$9345,L05H323H*)31#
?




                                                                                                              hdg
-
                                                              !0 #




                                                                                                      !
                     r$PFKL$s$z)=05$v$LKX{                        hc$0,1H5((1,(
                           !0 #?

                               r$3#)5,7505)3)31#$s




                                                                                                      
                     z,505)3)31#L0*H5X505#+5#H5$vzhSi{S             91,13+*4$a’a$I,3+
                                 :1+Q41$v$),Q5{
                                                                    [3+3,5H)31#*4$H1##5H)31#(
                                         #                             W1,)D8L1Q)D
C!C




                                                                       ;*()8x5()
AB




                         r$PFJ1:0Q)3#I75(1Q,H5$s
                          0$-$;45:5#)*,=Z,1H$tzaSa{u      5
                 F                                             0i       0h    0     0_
A




                                      (                        0a       0b    0c     0d


                r$3#)5,7505)3)31#$s





      z,505)3)31#L0*H5X505#+5#H5$vziSh{S                       0f       0g    0hi    0hh
                   :1+Q41v),Q5{
@




                                                              0h       0h_   0ha    0hb
?




                                                                                                hfi
!
                F                G
                                           9
                                               ,,*=$(D*05
          1,3I3#$-$K#)5I5,`5H)1,
                                               Z*))5,#$(D*05




                                                                                                  
          0*63#I$-$K#)5I5,*),3               7505)3)31#$(0*H5$(D*05
          23))3#I$-$K#)5I5,*),3
          )345,$-$9345,L05H323H*)31#
C!C




                                               3     %-$,5IQ4*,$(0*H3#I$12$)D5$013#)($12$
                 F               G             )D5$)345(
AB




                 F               G                 K#+5$
                     !
                                                   LH*##3#I$)D5$0*))5,#
           1,3I3#$-$K#)5I5,`5H)1,
                                                      %-$,5IQ4*,$(0*H3#I$12$)D5$)345(
           0*63#I$-$K#)5I5,*),3$thu
A




           23))3#I$-$K#)5I5,*),3                 K#+5$
                                                   LH*##3#I$)D5$,505)3)31#$(0*H5

@




      1,3I3#M0*63#I$23))3#IOG M$O      $*,,*=G(D*05
?




                                                                                            hfh
0                                     B/1%C




                                                     !
          
              J14Q:#$65H)1,(
                  [*(3($12$)D5$)345
              Z*))5,#$(D*05




                                                     
                  [1Q#+($12$)D5$23))3#I
              ,
C!C




              J14Q:#$65H)1,(
AB




                  [*(3($12$)D5$04*H5:5#)$12$
                  )D5$)345(
              7505)3)31#$(0*H5
                  [1Q#+($12$)D5$0*63#I
A




              %,3I3#





                  J11,+3#*)5($12$)D5$
@




                  ,525,5#H5$013#)$12$)D5$
                  ,525,5#H5$)345
?




                                               hf
0                               B%1%C
          




                                                  !
              J14Q:#$65H)1,(
                  [*(3($12$)D5$)345
              Z*))5,#$(D*05




                                                  
                  [1Q#+($12$)D5$23))3#I
              ,
C!C




              J14Q:#$65H)1,(
AB




                  [*(3($12$)D5$04*H5:5#)$12$
                  )D5$)345(
              7505)3)31#$(0*H5
                  [1Q#+($12$)D5$0*63#I
A




              %,3I3#





                  J11,+3#*)5($12$)D5$
@




                  ,525,5#H5$013#)$12$)D5$
                  ,525,5#H5$)345
?




                                            hf_
!
                                           !




                                                                                                           
                     r$)345,$s
                z1,3I3#vziSi{S
                23))3#IvzziSh{{S
C!C




             0*63#IvzzhSi{SziS_{{                         tzhf{u                   tzbhShfSy{u
                                       2$-$VV9$tzbhSy{u
 tzbhSy{u                   tzhf{u                                   r$)345,$s
AB




                                                                  z1,3I3#vziSiSi{S
                                                                 23))3#IvzziShSi{{S
                                                             0*63#IvzzhSiSi{SziSiSh{{{



         !                   5/%
A




             LD*05$12$)D5$3#0Q)$+*)*$v$bh’“





                           
@




             V1,$5*HD$D=+,10D1#5
             L43+3#I$F3#+1F$12$hf$(*:045($565,=$_$)3:5$()50(
?




                                                                                                     hfa
#




                                                                                         !
      F          G
            !
                                                     !




                                                                                         
                      F             G
                              ==
C!C




                                                         9343#I$1)D$5#+(
AB




                      F             G                       9F1$)345,(
                          #
                                                         x3)D$)D5$(*:5$)345(
          0*))5,#LD*05$-$LD*05L05H323H*)31#$thu
                                                            %#5$0*))5,#$(D*05
          ,505)3)31#L0*H5$-$LD*05L05H323H*)31#$thu
                                                            %#5$,505)3)31#$(0*H5
A




          2,1:9345,$-$9345,L05H323H*)31#$thu
          )19345,$-$9345,L05H323H*)31#$ thu





                                                         )$45*()$*44$PZV$+*)*$
@




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




                                                                                   hfb
#




                                                                                  !
                                                                                  
C!C
AB




      #                                                            !0 #
          W1$(0*)3*4$+3(),3Q)31#$12$)D5$3#23#3)5$+3:5#(31#$M)3:5$()50(O
A




          [41H$+3(),3Q)31#$12$)D5$bh$VV9($21,$5*HD$)3:5$()50





             L3R5$12$)D5$41H$v$_
@




             %#$)D5$hc$545:5#)*,=$0,1H5((1,(
?




                                                                            hfc
#




                                                                                                                !
                                                    r$+3(),3Q)5$s
                           z0*))5,#LD*05$v$z_{S
                           $,505)3)31#L0*H5$v$zaSaSy{S
                           $2,1:9345,$v$z1,3I3#$v$ziSi{S
                                              $23))3#I$v$zzhSi{{S




                                                                                                                
                                              $0*63#Ivzz_Si{SzhfSi{SziSh{{{S
                           $)19345,$v$z1,3I3#$v$ziSi{S
                           $$$$$$$$$$$$$$$$23))3#I$v$zziSi{{S
C!C




                           $$$$$$$$$$$$$$$$0*63#I$v$zzhSi{SziSh{SziSi{{{{
      V2)L)*I5--2$-$VV9$                                                             L3:+.#3)--0$-$
          tzbhSy{u                                                              ;45:5#)*,=Z,1H$tzaSa{u
AB




       #                                                                            !0 #
           W1$(0*)3*4$+3(),3Q)31#$12$)D5$3#23#3)5$+3:5#(31#$M)3:5$()50(O
A




           [41H$+3(),3Q)31#$12$)D5$bh$VV9($21,$5*HD$)3:5$()50





               L3R5$12$)D5$41H$v$_
@




               %#$)D5$hc$545:5#)*,=$0,1H5((1,(
?




                                                                                                          hfd
)                               !




                                                                                                        !
          Q4)3+3:5#(31#*4$(),QH)Q,5($M*,,*=(O
          9343#I$=$(Q8(),QH)Q,5($M#1#$1,)D1I1#*4$1,$(0*,(5$)345($01((345O




                                                                                                        
          /3#n($5)F55#$(QHD$(),QH)Q,5($MH=H43H$1,$#1#$H=H43H$H1##5H)31#$0*))5,#($01((345O
      9                                    ,
          J1:0*H)#5(($12$)D5$:1+54
C!C




          ;223H35#H=S$:*3#)*3#*343)=S$,5*+*343)=
AB




          .(5($`L/
          [5#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#
      +
A




          P*#+45($1#4=$*,,*=($M#1$2*#H35,$(D*05(O





          x1Q4+$5#523)$2,1:$*$HQ()1:$M63(Q*4O$)345,$5+3)1,
              .#+5,$+565410:5#)
@
?




                                                                                                  hgh
Detailed Example
                                                          (∞)
                             Downscaler


  (352, 288, ∞)            (132, 288)    Vert. Filter
                                                   (132, 128)
                  Horiz. Filter
       (352, 288)                 (132, 288)            (132, 128, ∞)
Horizontal Filter

                     Horizontal filter
                          (44, 288)
      (352, 288)
                          Hfilter
                                            (132, 288)
                   (11)               (3)
Horizontal Filter

                     Horizontal filter
                          (44, 288)
      (352, 288)
                          Hfilter
                                             (132, 288)
                   (11)               (3)


            1                                    1
       F=                                   F=
            0                                    0
            0                                    0
       o=                               o=
            0                                    0
            8   0                                3   0
       P=                                   P=
            0   1                                0   1
Horizontal Filter: Input Tiler

                  1
         F=                  spattern = 11
                  0
                  0                      32
         o=                   sarray =
                  0                      18
                  8 0                     4
         P=              srepetition =
                  0 1                    18
         17




          0
              0               0          31
                        r=    0
Horizontal Filter: Input Tiler

                  1
         F=                  spattern = 11
                  0
                  0                      32
         o=                   sarray =
                  0                      18
                  8 0                     4
         P=              srepetition =
                  0 1                    18
         17




          0
              0               1          31
                        r=    0
Horizontal Filter: Input Tiler

                  1
         F=                  spattern = 11
                  0
                  0                      32
         o=                   sarray =
                  0                      18
                  8 0                     4
         P=              srepetition =
                  0 1                    18
         17




          0
              0               2          31
                        r=    5
Horizontal Filter

                     Horizontal filter
                          (44, 288)
      (352, 288)
                          Hfilter
                                             (132, 288)
                   (11)               (3)


            1                                    1
       F=                                   F=
            0                                    0
            0                                    0
       o=                               o=
            0                                    0
            8   0                                3   0
       P=                                   P=
            0   1                                0   1
Horizontal Filter: Output Tiler

   17
                               1
                          F=           spattern = 3
                               0
                               0                     12
                          o=             sarray =
                               0                     18
    0                          3 0                    4
        0            11   P=         srepetition =
            r=   0             0 1                   18
                 0
Horizontal Filter: Output Tiler

   17
                               1
                          F=           spattern = 3
                               0
                               0                     12
                          o=             sarray =
                               0                     18
    0                          3 0                    4
        0            11   P=         srepetition =
            r=   1             0 1                   18
                 0
Horizontal Filter: Output Tiler

   17
                               1
                          F=           spattern = 3
                               0
                               0                     12
                          o=             sarray =
                               0                     18
    0                          3 0                    4
        0            11   P=         srepetition =
            r=   2             0 1                   18
                 5
Vertical Filter

                          Vertical filter
                              (132, 32)
      (132, 288)                                  (132, 128)
                             Vfilter
                   (14)                    (4)


            0                                         0
       F=                                        F=
            1                                         1
            0                                         0
       o=                                    o=
            0                                         0
            1   0                                     1   0
       P=                                        P=
            0   9                                     0   4
Vertical Filter: Input Tiler


   17
                               0
                          F=           spattern = 14
                               1
                               0                     12
                          o=             sarray =
                               0                     18
    0                          1 0                   12
        0            11   P=         srepetition =
            r=   0             0 9                    2
                 0
Vertical Filter: Input Tiler


   17
                               0
                          F=           spattern = 14
                               1
                               0                     12
                          o=             sarray =
                               0                     18
    0                          1 0                   12
        0            11   P=         srepetition =
            r=   1             0 9                    2
                 0
Vertical Filter: Input Tiler


   17
                               0
                          F=           spattern = 14
                               1
                               0                     12
                          o=             sarray =
                               0                     18
    0                          1 0                   12
        0            11   P=         srepetition =
            r=   5             0 9                    2
                 1
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
                                 r
         t(r, i) = o + (P F) ·     mod sarray
                                 i
Overview
Software and hardware co-model
                for
 data-intensive embedded system
            co-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

 Marte MM

 Gaspard2 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
            352                      176                     176

            GOB1                     GOB1                    GOB1
                                     GOB2                    GOB2
            GOB2
                           144       GOB3          144       GOB3
            GOB3
                       +             GOB4      +             GOB4
            GOB4                    GOBn/2                  GOBn/2
288
            GOB5
                                 U component             V component
            GOB6
            GOB.
            GOB.
            GOBn

         Y component
Example: Downscaler
                               data
                          FG          HF             VF        FC




                                       Hard Accto 16 MIPS
                                             4          MIPS
                           Sensor
                                              processors
                                                      processor



                                             Bus
                                           Crossbar
                                                          Task allocation
                                           Logical        Data allocation
                                           Memory

CIF: 352x288


• First solution: Heterogeneous mono-processor architecture
• Second solution: Multi-processor architecture
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
Example of MPSoC architecture

   Shared Memory 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

           GaspardLib
   Software              Hardware
 FFT, DCT,           Processor,
 Convolution,        cache, DMAC
 FIR                 crossbar

                Energy
            Processor,
            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
                                                        Allocation
                                       Processor 1
          Instruction memory                                             TA
                                         Task A
            Not used
                                         Task B                          TB


                                      Processor 0
                               NoC
                                     Task C   Task D                TC        TD

            Data memory                                Allocation
                                         Task E                          TE
          Array0   Array1

                                                         Application execution graph


   Fast simulation
   Data transfer observation
   Hardware/Software simulation before the processor
    component is available
Gaspard2 Démo…
                     UML            Gaspard       Polyhedron




                          Loop                 SystemC PA




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

Gaspard tutorial

  • 2.
    Gaspard2 Tutorial Rabie BenAtitalah, Jean-Luc Dekeyser and Pierre Boulet 24 September 2008
  • 3.
  • 4.
  • 5.
    High Performance Application Development:MPSoC Verification Simulation Synthesis Multiple languages Multiple abst. levels
  • 6.
    Application Domain ofGaspard2: intensive signal processing "Gaspard" stands for Graphical array specification for parallel and distributed computing
  • 7.
    Hypotheses component-based massive parallelism regular applications and hardware no complex flow of control static scheduling, no RTOS
  • 8.
    MARTE packages usedin Gaspard2 Foundations Non Functional Properties Generic Component Model Flow ports Allocation Detailed Resource Modeling Hardware Resource Modeling::HwLogical Repetitive Structure Modeling
  • 9.
    ! #$%'$()*#+*,+- $./$0,12345$)1$+565410$75*4893:5$*#+$;:5++5+$(=()5:(
  • 10.
    ! !! ! # $ % %''( ) !! * ) ++ C!C D))0-EEFFFGH*,,1448,5(5*,HDG1,IE AB , J;$/KL9$M$H1#)*H)-$(5*()35#GI5,*,+NH5*G2,O PQ*(H*,$;(03#1R*S$LT*()35#$'T,*,+S$L*21Q*#$9*D*$*#+$V,T+T,3H$9D1:*(G$$ KW7K$MH1#)*H)-$715,)GX5Y(3:1#5N(10D3*G3#,3*G2,O A JD*,45($#+,TS$715,)$+5$L3:1#5S$Z35,,5$[1Q45) 9D*45($979$MH1#)*H)-$/*Q,5#)G,31QN)D*45(I,1Q0GH1:O @ *+5453#5$V*QI],5S$/*Q,5#)$731QS$L5*()35#$X5:*)D35Q ?
  • 11.
    - ! . $ , . , V1,$X1:*3#$`35F$45654 C!C AB V1,$./$Z,12345$`35F$/5654 A V1,$.(5,$1+54$`35F$/5654 @ ? _
  • 12.
    ! / K#),1+QH)31#$)1$XX$21,$79E;$(=()5:($}$79;$3#$*$#Q)(D544 % W1#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 C!C 4 1 AB 5 Z4*)21,:$:1+543#I$ 6 7505)3)365$(),QH)Q,5$:1+543#I ( A 1+548*(5+$*#*4=(3($21,$79E;$ 79;$*#+$X/$ @ 7 J1#H4Q(31#( ? ga
  • 13.
    ) 8 ! ) W55+$21,$:*#*I5*45$*#+$,5Q(*45$035H5($12$(12)F*,5 w5=$5*:045(-$/3ID)F53ID)8JJS$LJS$Q)1(*, C!C ) ! 1! AB ;#)3)35($Q#+5,$*#*4=(3(E+5(3I#$,1n5#$+1F#$3#)1$*$(5,35($12$H1:01#5#)( 0043H*45$*)$+3225,5#)$()*I5($12$)D5$0,1H5(( X3225,5#)$n3#+-$*H)365$6(G$0*((365$M5GIGS$./$*H)365$H4*((5(O A ;*:045($12$,54*)5+$4*#IQ*I5(-$L=(/S$X/ 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# ? gb
  • 14.
    . ? +: ! ? + 9D5$n5,#54$12$)D5$4*#IQ*I5$+523#5($ $ *#+$ ! $+523#5($ $*#+$ C!C $*#+$0,163+5$)D5$*343)=$)1$ +5(H,35$*$ $*($*#$*((5:4=$12$0*,)( AB # *#+$ $ % % $+523#5$ )D5$#1)31#$12$H1:01#5#)$,5*43R*)31#$*#+$ *++($0*Hn*I3#I$H*0*343)35( A @ K#$*#=$H*(5S$#1$(Q001,)$21,$241F81,35#)5+$H1::Q#3H*)31#( ? gc
  • 15.
    ) ! 0 , 8 L=(/S$L03,3)S$X/S$/3ID)F53ID)8JJS$;L98X/S$Q)1(*, # C!C ? + $ AB ! + )1:3H$*#+$#1#8*)1:3H$241F$01,)( V41F$0,105,)35($*#+$241F$(05H323H*)31#( A @ , + 8)) $ #+ ! 8 #+%$ ! @ ? gd
  • 16.
    ? @ A AB C!C ) gf !
  • 17.
    ! )1:3H$241F$01,)$)=05+$=$*$ J4*((3235, C!C AB A J1:045$241F$01,)$)=05+$=$*$ @ L)*#+*,+$./$01,)$)=05+$=$*$H4*(($)D*)$ 241F$(05H323H*)31# Q(5($)D5$/1H*)31#HH5(($3#)5,2*H5 ? gg
  • 18.
    ! %Q)I13#I$*)1:3H$ 241F$01,) K#H1:3#I$*)1:3H$ 241F$01,) C!C AB ./$+545I*)31#$H1##5H)1,$Q(5+$ A F3)D$*$#1#8*)1:3H$241F$01,) @ ./$+545I*)31#$H1##5H)1,$Q(5+$ F3)D$*#$*)1:3H$241F$01,) ? hii
  • 19.
    ! / K#),1+QH)31#$)1$XX$21,$79E;$(=()5:($}$79;$3#$*$#Q)(D544 % W1#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 C!C 4 $H1:01#5#)$:1+54$21,$79E; AB 5 $ 6 7505)3)365$(),QH)Q,5$:1+543#I ( A 1+548*(5+$*#*4=(3($21,$79E;$ 79;$*#+$X/$ @ 7 J1#H4Q(31#( ? hig
  • 20.
    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#)($ C!C AB 0 ! + J*#$1#4=$*441H*)5$*0043H*)31#$)1$55HQ)31#$04*)21,: J*#$*))*HD$WVZ$H1#(),*3#)($)1$)D5$*441H*)31# A @ ? hhb
  • 21.
    ! 0 xD*)$H*#$5$*441H*)5+S$ )D5$41I3H*4$635F- $(),QH)Q,5$1,$5D*631, xD*)$H*#$(5,65$*($*$ )*,I5)$12$*#$*441H*)31#S$ )D5$0D=(3H*4$635F- C!C $*$,5(1Q,H5$1,$*$ (5,63H5G AB # A @ ? hhc
  • 22.
    - ! 79; P7 r 3#H4Q+5 s ! - , -. r 5)5#+ s r 3#H4Q+5 s C!C ! ; -. ! , AB -. r 3#H4Q+5 s r 3#H4Q+5 s # -. A ; @ _$Q(5$H*(5($v$_$45654($12$+5)*34( ? had
  • 23.
    - 88 - , ! - : P3ID$45654$12$ $635F$12$)D5$Px$04*)21,: x3)D$n5=$0,105,)35(- C!C ;GIGS$3#(),QH)31#$(5)$*#+$:5:1,=$(3R5G $21,:*4$635F$12$Q(Q*4$ $ AB P3ID$45654$+5(H,30)31#$12$53()3#I$*#+$)*,I5)5+$Px$04*)21,: V3,()$()50($12$+5(3I#$12$#5F$Px$*,HD3)5H)Q,5 A @ L=()5:$*,HD3)5H)( @ L12)F*,5$+5654105,( ? haf
  • 24.
    - 88 ! ; ! - : L05H3*43R5+$Px$ $:1+54 W*)Q,5$12$+5)*34($+505#+($1#$)D5$ , ;h$-$*Q)1#1:=$*#*4=(3($,5mQ3,5($01F5,$H1#(Q:0)31#$:1+543#I C!C ;$-$xJ;9$*#*4=(3($#55+$+5)*34($1#$0,1H5((1,$(055+S$H1::Q#3H*)31#$ *#+F3+)D$*#+$:5:1,=$1,I*#3R*)31#o AB @ ; A @ ? hag
  • 25.
    - 88 # ! - : P7$3($*$+5)*345+$Px$*,HD3)5H)Q,5$+5(3I#$4*#IQ*I5 /5654$12$+5)*34($+505#+($1#$)D5$+5(H,30)31#$ ;h-$VQ#H)31#*4$(3:Q4*)1,$12$*$0,1H5((1,$1#4=$,5mQ3,5($3)($3#(),QH)31#$(5)$2*:34= C!C ;-$Z5,21,:*#H5$(3:Q4*)31#$#55+$*$23#5$+5(H,30)31#$12$0,1H5((1,($:3H,18 *,HD3)5H)Q,5G AB 1+548*(5+$+*)*(D55)($+5(H,30)31# L3:Q4*)31# A I5#5,*)31#$12$H1#23IQ,*)31#($21,$(3:Q4*)31#$)114( @ @ Px$+5(3I#5,( ? hbi
  • 26.
    - ! - LQHH5((365$ $4*=5,( $I5#5,3H$H1#H50)($M'7843n5O ,) % - ,)' *- ,) . $(05H323H$*#+$+5)*345+$,5(1Q,H5( C!C ,) - ,)# - ,) - ,)''/- ,)# - ,)# % - ,) ' . AB 44$P7$H1#H50)($*,5$,) 0 1 iGGh 0,163+5+L5,63H5( F G hGGy F G iGGy - ,5mQ3,5+L5,63H5( - ! , A 1F#5+75(1Q,H5( iGGy 9F1 635F( + 1 @ ? hbh
  • 27.
    - 88 + ! , 2Q#H)31#*4 @ = G$$$$$$PFJ1:0Q)3#I$$$$$$ G$$$$$ G$$$$$$PFL)1,*I5$$$$$$ G$$$$$ C!C r PFZ,1H5((1, sS$r PFZ/X sS r PFJ*HD5 sS$r PF7 sS$ r PF. sS r PFLKJ s r PF7% sS$r PFX,365 s r PFX s AB G$$$$$$ PFX563H5$$$$$$ G$$$$$ G$$$$$$PF93:3#I$$$$$$ G$$$$$ G$$$$$$ PFJ1::Q#3H*)31#$$$$$$ G$$$$$ A r PFX563H5 sS r PFKE% s r PF[,3+I5 s r PFJ41Hn sS r PFLQ001,) s r PF93:5, s r PF,3)5, s @ r PF5+3* sS$r PF[Q( s ? hb
  • 28.
    - 88 ! , 0D=(3H*4 @ PF/*=1Q) V1,:(-$JD30S$J*,+S$JD*##54o X3:5#(31#(S$*,5*$*#+$*,,*#I5:5#)$:5HD*#3(:$F3)D3#$,5H)343#5*,$I,3+( C!C ;#63,1#:5#)*4$H1#+3)31#(-$5GIG$)5:05,*)Q,5S$63,*)31#S$DQ:3+3)=o PFZ1F5, AB Z1F5,$H1#(Q:0)31#$*#+$D5*)$+3((30*)31# G$$$$$$ PF/*=1Q)$$$$$$ G$$$$$ G$$$$$$PFZ1F5,$$$$$$ G$$$$$ A r PFZ1F5,LQ004= s r PFJ1143#ILQ004=s r PFJ1:01#5#) s n3#+$-$zJ*,+S$JD*##54S$JD30S$Z1,){ @ ? hb_
  • 29.
    - , , ! F G F + G == ==+ ==@ 9 K r 3:01,) s r 3:01,) s F G - F G F G - + - C!C - - AB - ! - ) - + - A - ) - ! - @ - - # , ? hba
  • 30.
    - 88 - ! F G F + G == ==+ ==@ 9 K r 3:01,) s r 3:01,) s F G - F G F G - + - C!C - - AB - ! - ) - + - A - ) - ! - @ - - # , ? hbb
  • 31.
    - 88 - ! - F G F G == ==! - r +*)*9=05 s F G - :5:1,=L3R5$-$WVZYX*)*L3R5 #1)*)31#$-$WVZYL),3#I *++,5((L3R5$-$WVZYX*)*L3R5 +5(H,30)31#$-$WVZYL),3#I )3:3#I($-$93:3#I$tyu 6*4Q5$-$WVZYXQ,*)31# C!C AB F G F G F G F G - ) - - - # , 45654$-$WVZYW*)Q,*4$v$h 1,I*#3R*)31#$-$5:1,=%,I*#3R*)31# )=05$-$7%Y9=05 (5H)1,L3R5$-$WVZYX*)*L3R5 )=05$-$J*HD59=05 3(L=#HD,1#1Q($-$WVZY[1145*# 1,I*#3R*)31#$-$5:1,=%,I*#3R*)31# (),QH)Q,5$-$J*HD5L),QH)Q,5 3(L)*)3H$ -WVZY[1145*# ,504YZ143H=$-$7504YZ143H= 3(W1#`14*)345$ -$WVZY[1145*# iGGh F,3)5Z143H=$-$x,3)5Z143H= ,504YZ143H=$ -$7504YZ143H= Q225, F,3)5Z143H=$-$x,3)5Z143H= z(Q(5)($1F#5+Px{ A r 5#Q:5,*)31# s r 5#Q:5,*)31# s r 5#Q:5,*)31# s r +*)*9=05 s r +*)*9=05 s r 5#Q:5,*)31# s K . ) ) ! ; K /7. x,3)5[*Hn X*)* #L5)($-$WVZYW*)Q,*4 #71F($-$WVZYW*)Q,*4 *(n5+7% WV. x,3)59D,1QID K#(),QH)31# 41HL3R5$-$WVZYX*)*L3R5 #J14Q:#($-$WVZYW*)Q,*4 ;Z7% VKV% %)D5, .#3235+ *((1H3*)363)=$ -$WVZYW*)Q,*4 #[*#n($-$WVZYW*)Q,*4 %9ZY;Z7% 7*#+1: .#+523#5+ %)D5, F1,+L3R5$-$WVZYX*)*L3R5 ;;Z7% @ %)D5, .#+523#5+ V4*(D .#+523#5+ %)D5, .#+523#5+ ? hbc
  • 32.
    - 88 - 88 - ) ! F G PFJ*HD5$3($*$0,1H5((3#I$:5:1,=$FD5,5$ - ) 2,5mQ5#)4=$Q(5+$+*)*$H*#$5$()1,5+$21,$,*03+$ *HH5(( 45654$-$WVZYW*)Q,*4$v$h )=05$-$J*HD59=05 (),QH)Q,5$-$J*HD5L),QH)Q,5 ,504YZ143H=$-$7504YZ143H= X5)*345+$+5(H,30)31#$12$)D5$PFJ*HD5$3($ C!C F,3)5Z143H=$-$x,3)5Z143H= #5H5((*,=$21,$05,21,:*#H5$*#*4=(3($*#+$ (3:Q4*)31#$ AB r 5#Q:5,*)31# s r 5#Q:5,*)31# s r 5#Q:5,*)31# s r +*)*9=05 s K . ) ) ! /7. x,3)5[*Hn X*)* #L5)($-$WVZYW*)Q,*4 A WV. x,3)59D,1QID K#(),QH)31# 41HL3R5$ -$WVZYX*)*L3R5 VKV% %)D5, .#3235+ *((1H3*)363)=$ -$WVZYW*)Q,*4 7*#+1: .#+523#5+ %)D5, %)D5, .#+523#5+ .#+523#5+ @ ? hbd
  • 33.
    - 88 - 88 - ) ! F G - ) 45654$-$WVZYW*)Q,*4$v$h )=05$-$J*HD59=05 L05H3235($)D5$H*HD5$45654G (),QH)Q,5$-$J*HD5L),QH)Q,5 ,504YZ143H=$-$7504YZ143H= X52*Q4)$6*4Q5$3($h C!C F,3)5Z143H=$-$x,3)5Z143H= AB r 5#Q:5,*)31# s r 5#Q:5,*)31# s r 5#Q:5,*)31# s r +*)*9=05 s K . ) ) ! /7. x,3)5[*Hn X*)* #L5)($-$WVZYW*)Q,*4 A WV. x,3)59D,1QID K#(),QH)31# 41HL3R5$-$WVZYX*)*L3R5 VKV% %)D5, .#3235+ *((1H3*)363)=$ -$WVZYW*)Q,*4 7*#+1: .#+523#5+ %)D5, %)D5, .#+523#5+ .#+523#5+ @ ? hbf
  • 34.
    - 88 - 88 - ) ! F G L05H3235($)D5$PFJ*HD5$(),QH)Q,5 - ) PFJ*HD5$3($1,I*#3R5+$Q#+5,$(5)($12$41Hn(G ((1H3*)363)=$3($)D5$#Q:5,$12$41Hn($F3)D3#$5*HD$(5)G 45654$-$WVZYW*)Q,*4$v$h K2$*((1H3*)363)=$v$hS$H*HD5$3($+3,5H)$:*005+ )=05$-$J*HD59=05 (),QH)Q,5$-$J*HD5L),QH)Q,5 K2$#L5)($v$hS$H*HD5$3($2Q44=$*((1H3*)365G ,504YZ143H=$-$7504YZ143H= %J/$,Q45 C!C F,3)5Z143H=$-$x,3)5Z143H= *! + 2 ! !+ * AB r 5#Q:5,*)31# s r 5#Q:5,*)31# s r 5#Q:5,*)31# s r +*)*9=05 s K . ) ) ! /7. x,3)5[*Hn X*)* #L5)($-$WVZYW*)Q,*4 A WV. x,3)59D,1QID K#(),QH)31# 41HL3R5$ -$WVZYX*)*L3R5 VKV% %)D5, .#3235+ *((1H3*)363)=$ -$WVZYW*)Q,*4 7*#+1: .#+523#5+ %)D5, %)D5, .#+523#5+ .#+523#5+ @ ? hbg
  • 35.
    - 88 - 88 - ) ! F G L05H3235($)D5$H*HD5$F,3)5$0143H=$ - ) x,3)5[*Hn-$J*HD5$F,3)5$3($#1)$3::5+3*)54=$ ,5245H)5+$)1$)D5$*Hn3#I$:5:1,=G 45654$-$WVZYW*)Q,*4$v$h )=05$-$J*HD59=05 x,3)59D,1QID-$x,3)5($*,5$3::5+3*)54=$ (),QH)Q,5$-$J*HD5L),QH)Q,5 :3,,1,5+G ,504YZ143H=$-$7504YZ143H= C!C F,3)5Z143H=$-$x,3)5Z143H= AB r 5#Q:5,*)31# s r 5#Q:5,*)31# s r 5#Q:5,*)31# s r +*)*9=05 s K . ) ) ! /7. x,3)5[*Hn X*)* #L5)($-$WVZYW*)Q,*4 A WV. x,3)59D,1QID K#(),QH)31# 41HL3R5$ -$WVZYX*)*L3R5 VKV% %)D5, .#3235+ *((1H3*)363)=$ -$WVZYW*)Q,*4 7*#+1: .#+523#5+ %)D5, %)D5, .#+523#5+ .#+523#5+ @ ? hci
  • 36.
    ! / K#),1+QH)31#$)1$XX$21,$79E;$(=()5:($}$79;$3#$*$#Q)(D544 % W1#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 C!C 4 $H1:01#5#)$:1+54$21,$79E; AB 5 Z4*)21,:$:1+543#I$ 6 , ( A 1+548*(5+$*#*4=(3($21,$79E;$ 79;$*#+$X/$ @ 7 J1#H4Q(31#( ? hd_
  • 37.
    , ! ! , % W5()5+$4110( Q4)30,1H5((1,$L=()5:( C!C AB 0043H*)31# P*,+F*,5$04*)21,: ((1H3*)31# A @ W5F$#1)*)31#$E$()5,51)=05( ? hdc
  • 38.
    ) , ! ! 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#n($5)F55#$:Q4)3+3:5#(31#*4$*,,*=( Z*))5,#8*(5+$,5IQ4*,$)10141I35( C!C AB @ = 8 75IQ4*,$(0*H3#I$12$013#)($3#(3+5$*$ A )345 75IQ4*,$(0*H3#I$12$)345( K#D5,3)($2,1:$)D5$,,*=8%/$4*#IQ*I5 @ ? hdd
  • 39.
    ! ! 9 F G ! 7523#5:5#)$12$)D5$:Q4)3043H3)=$ #1)*)31# `5H)1,$12$.#43:3)5+W*)Q,*4( F G C!C ? +== hc$‘$zaSa{ AB y$‘$zbhShfSy{ F G ! F G F G A (D*05$-$LD*05L05H323H*)31#$thu zH1445H)31#)),3$v$(3R5{ ! ! (3R5$-$.#43:3)5+W*)Q,*4$tiGGyu @ ? hdf
  • 40.
    + ! F G ! F G F G ? +==) ? +==) F G # + F G C!C * ! AB F G 0 ,505)3)31#L0*H5X505#+5#H5$-$K#)5I5,`5H)1,$thu 3(1+Q41$-$[1145*#$v$2*4(5 A F G F G 1,3I3#$-$K#)5I5,`5H)1, @ 0*))5,#LD*05$-$LD*05L05H323H*)31#$thu 0*63#I$-$K#)5I5,*),3 ,505)3)31#L0*H5$-$LD*05L05H323H*)31#$thu 23))3#I$-$K#)5I5,*),3 )345,$-$9345,L05H323H*)31# ? hdg
  • 41.
    - !0 # ! r$PFKL$s$z)=05$v$LKX{ hc$0,1H5((1,( !0 #? r$3#)5,7505)3)31#$s z,505)3)31#L0*H5X505#+5#H5$vzhSi{S 91,13+*4$a’a$I,3+ :1+Q41$v$),Q5{ [3+3,5H)31#*4$H1##5H)31#( # W1,)D8L1Q)D C!C ;*()8x5() AB r$PFJ1:0Q)3#I75(1Q,H5$s 0$-$;45:5#)*,=Z,1H$tzaSa{u 5 F 0i 0h 0 0_ A ( 0a 0b 0c 0d r$3#)5,7505)3)31#$s z,505)3)31#L0*H5X505#+5#H5$vziSh{S 0f 0g 0hi 0hh :1+Q41v),Q5{ @ 0h 0h_ 0ha 0hb ? hfi
  • 42.
    ! F G 9 ,,*=$(D*05 1,3I3#$-$K#)5I5,`5H)1, Z*))5,#$(D*05 0*63#I$-$K#)5I5,*),3 7505)3)31#$(0*H5$(D*05 23))3#I$-$K#)5I5,*),3 )345,$-$9345,L05H323H*)31# C!C 3 %-$,5IQ4*,$(0*H3#I$12$)D5$013#)($12$ F G )D5$)345( AB F G K#+5$ ! LH*##3#I$)D5$0*))5,# 1,3I3#$-$K#)5I5,`5H)1, %-$,5IQ4*,$(0*H3#I$12$)D5$)345( 0*63#I$-$K#)5I5,*),3$thu A 23))3#I$-$K#)5I5,*),3 K#+5$ LH*##3#I$)D5$,505)3)31#$(0*H5 @ 1,3I3#M0*63#I$23))3#IOG M$O $*,,*=G(D*05 ? hfh
  • 43.
    0 B/1%C ! J14Q:#$65H)1,( [*(3($12$)D5$)345 Z*))5,#$(D*05 [1Q#+($12$)D5$23))3#I , C!C J14Q:#$65H)1,( AB [*(3($12$)D5$04*H5:5#)$12$ )D5$)345( 7505)3)31#$(0*H5 [1Q#+($12$)D5$0*63#I A %,3I3# J11,+3#*)5($12$)D5$ @ ,525,5#H5$013#)$12$)D5$ ,525,5#H5$)345 ? hf
  • 44.
    0 B%1%C ! J14Q:#$65H)1,( [*(3($12$)D5$)345 Z*))5,#$(D*05 [1Q#+($12$)D5$23))3#I , C!C J14Q:#$65H)1,( AB [*(3($12$)D5$04*H5:5#)$12$ )D5$)345( 7505)3)31#$(0*H5 [1Q#+($12$)D5$0*63#I A %,3I3# J11,+3#*)5($12$)D5$ @ ,525,5#H5$013#)$12$)D5$ ,525,5#H5$)345 ? hf_
  • 45.
    ! ! r$)345,$s z1,3I3#vziSi{S 23))3#IvzziSh{{S C!C 0*63#IvzzhSi{SziS_{{ tzhf{u tzbhShfSy{u 2$-$VV9$tzbhSy{u tzbhSy{u tzhf{u r$)345,$s AB z1,3I3#vziSiSi{S 23))3#IvzziShSi{{S 0*63#IvzzhSiSi{SziSiSh{{{ ! 5/% A LD*05$12$)D5$3#0Q)$+*)*$v$bh’“ @ V1,$5*HD$D=+,10D1#5 L43+3#I$F3#+1F$12$hf$(*:045($565,=$_$)3:5$()50( ? hfa
  • 46.
    # ! F G ! ! F G == C!C 9343#I$1)D$5#+( AB F G 9F1$)345,( # x3)D$)D5$(*:5$)345( 0*))5,#LD*05$-$LD*05L05H323H*)31#$thu %#5$0*))5,#$(D*05 ,505)3)31#L0*H5$-$LD*05L05H323H*)31#$thu %#5$,505)3)31#$(0*H5 A 2,1:9345,$-$9345,L05H323H*)31#$thu )19345,$-$9345,L05H323H*)31#$ thu )$45*()$*44$PZV$+*)*$ @ +3(),3Q)31#( ? hfb
  • 47.
    # ! C!C AB # !0 # W1$(0*)3*4$+3(),3Q)31#$12$)D5$3#23#3)5$+3:5#(31#$M)3:5$()50(O A [41H$+3(),3Q)31#$12$)D5$bh$VV9($21,$5*HD$)3:5$()50 L3R5$12$)D5$41H$v$_ @ %#$)D5$hc$545:5#)*,=$0,1H5((1,( ? hfc
  • 48.
    # ! r$+3(),3Q)5$s z0*))5,#LD*05$v$z_{S $,505)3)31#L0*H5$v$zaSaSy{S $2,1:9345,$v$z1,3I3#$v$ziSi{S $23))3#I$v$zzhSi{{S $0*63#Ivzz_Si{SzhfSi{SziSh{{{S $)19345,$v$z1,3I3#$v$ziSi{S $$$$$$$$$$$$$$$$23))3#I$v$zziSi{{S C!C $$$$$$$$$$$$$$$$0*63#I$v$zzhSi{SziSh{SziSi{{{{ V2)L)*I5--2$-$VV9$ L3:+.#3)--0$-$ tzbhSy{u ;45:5#)*,=Z,1H$tzaSa{u AB # !0 # W1$(0*)3*4$+3(),3Q)31#$12$)D5$3#23#3)5$+3:5#(31#$M)3:5$()50(O A [41H$+3(),3Q)31#$12$)D5$bh$VV9($21,$5*HD$)3:5$()50 L3R5$12$)D5$41H$v$_ @ %#$)D5$hc$545:5#)*,=$0,1H5((1,( ? hfd
  • 49.
    ) ! ! Q4)3+3:5#(31#*4$(),QH)Q,5($M*,,*=(O 9343#I$=$(Q8(),QH)Q,5($M#1#$1,)D1I1#*4$1,$(0*,(5$)345($01((345O /3#n($5)F55#$(QHD$(),QH)Q,5($MH=H43H$1,$#1#$H=H43H$H1##5H)31#$0*))5,#($01((345O 9 , J1:0*H)#5(($12$)D5$:1+54 C!C ;223H35#H=S$:*3#)*3#*343)=S$,5*+*343)= AB .(5($`L/ [5#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# + A P*#+45($1#4=$*,,*=($M#1$2*#H35,$(D*05(O x1Q4+$5#523)$2,1:$*$HQ()1:$M63(Q*4O$)345,$5+3)1, .#+5,$+565410:5#) @ ? hgh
  • 50.
    Detailed Example (∞) Downscaler (352, 288, ∞) (132, 288) Vert. Filter (132, 128) Horiz. Filter (352, 288) (132, 288) (132, 128, ∞)
  • 51.
    Horizontal Filter Horizontal filter (44, 288) (352, 288) Hfilter (132, 288) (11) (3)
  • 52.
    Horizontal Filter Horizontal filter (44, 288) (352, 288) Hfilter (132, 288) (11) (3) 1 1 F= F= 0 0 0 0 o= o= 0 0 8 0 3 0 P= P= 0 1 0 1
  • 53.
    Horizontal Filter: InputTiler 1 F= spattern = 11 0 0 32 o= sarray = 0 18 8 0 4 P= srepetition = 0 1 18 17 0 0 0 31 r= 0
  • 54.
    Horizontal Filter: InputTiler 1 F= spattern = 11 0 0 32 o= sarray = 0 18 8 0 4 P= srepetition = 0 1 18 17 0 0 1 31 r= 0
  • 55.
    Horizontal Filter: InputTiler 1 F= spattern = 11 0 0 32 o= sarray = 0 18 8 0 4 P= srepetition = 0 1 18 17 0 0 2 31 r= 5
  • 56.
    Horizontal Filter Horizontal filter (44, 288) (352, 288) Hfilter (132, 288) (11) (3) 1 1 F= F= 0 0 0 0 o= o= 0 0 8 0 3 0 P= P= 0 1 0 1
  • 57.
    Horizontal Filter: OutputTiler 17 1 F= spattern = 3 0 0 12 o= sarray = 0 18 0 3 0 4 0 11 P= srepetition = r= 0 0 1 18 0
  • 58.
    Horizontal Filter: OutputTiler 17 1 F= spattern = 3 0 0 12 o= sarray = 0 18 0 3 0 4 0 11 P= srepetition = r= 1 0 1 18 0
  • 59.
    Horizontal Filter: OutputTiler 17 1 F= spattern = 3 0 0 12 o= sarray = 0 18 0 3 0 4 0 11 P= srepetition = r= 2 0 1 18 5
  • 60.
    Vertical Filter Vertical filter (132, 32) (132, 288) (132, 128) Vfilter (14) (4) 0 0 F= F= 1 1 0 0 o= o= 0 0 1 0 1 0 P= P= 0 9 0 4
  • 61.
    Vertical Filter: InputTiler 17 0 F= spattern = 14 1 0 12 o= sarray = 0 18 0 1 0 12 0 11 P= srepetition = r= 0 0 9 2 0
  • 62.
    Vertical Filter: InputTiler 17 0 F= spattern = 14 1 0 12 o= sarray = 0 18 0 1 0 12 0 11 P= srepetition = r= 1 0 9 2 0
  • 63.
    Vertical Filter: InputTiler 17 0 F= spattern = 14 1 0 12 o= sarray = 0 18 0 1 0 12 0 11 P= srepetition = r= 5 0 9 2 1
  • 64.
    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 r t(r, i) = o + (P F) · mod sarray i
  • 65.
  • 66.
    Software and hardwareco-model for data-intensive embedded system co-design
  • 67.
    MARTE packages usedin Gaspard2  Foundations  Non Functional Properties  Generic Component Model  Flow ports  Allocation  Detailed Resource Modeling  Hardware Resource Modeling::HwLogical  Repetitive Structure Modeling
  • 68.
    Gaspard2 UML2.0 MM Marte MM Gaspard2 MM
  • 69.
    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
  • 70.
    Optimization and compilationtechniques •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
  • 71.
    HP-SoC simulation andsynthesis •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
  • 72.
    Downscaler application Horizontal filter: 8/3 CIF video frame: 352x288 Vertical filter: 9/4 Resized video frame
  • 73.
    CIF Frame structure 352 176 176 GOB1 GOB1 GOB1 GOB2 GOB2 GOB2 144 GOB3 144 GOB3 GOB3 + GOB4 + GOB4 GOB4 GOBn/2 GOBn/2 288 GOB5 U component V component GOB6 GOB. GOB. GOBn Y component
  • 74.
    Example: Downscaler data FG HF VF FC Hard Accto 16 MIPS 4 MIPS Sensor processors processor Bus Crossbar Task allocation Logical Data allocation Memory CIF: 352x288 • First solution: Heterogeneous mono-processor architecture • Second solution: Multi-processor architecture
  • 75.
  • 76.
    Downscaler: main application •Horizontal filter task
  • 77.
  • 78.
  • 79.
  • 80.
    Downscaler: main architecture •Hardware elementary components
  • 81.
    Example of MPSoCarchitecture  Shared Memory MPSoC architecture
  • 82.
  • 83.
    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
  • 84.
    GaspardLib GaspardLib Software Hardware FFT, DCT, Processor, Convolution, cache, DMAC FIR crossbar Energy Processor, cache, DMAC crossbar
  • 85.
  • 86.
  • 87.
    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
  • 88.
    Technology bases ofGaspard2  Model driven engineering  metamodels  model transformations  Eclipse platform  metamodeling language: Ecore  integration framework based on plugins  transformation chains
  • 89.
  • 90.
    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
  • 91.
    Loop model  Scanning the polyhedron  Corresponding loop generation  Task repetition space  Using the CLoog tool
  • 92.
    Pattern accurate (PA)TLM level Allocation Processor 1 Instruction memory TA Task A Not used Task B TB Processor 0 NoC Task C Task D TC TD Data memory Allocation Task E TE Array0 Array1 Application execution graph  Fast simulation  Data transfer observation  Hardware/Software simulation before the processor component is available
  • 93.
    Gaspard2 Démo… UML Gaspard Polyhedron Loop SystemC PA  https://gforge.inria.fr/projects/gaspard2/
  • 94.