COMPILER TECHNIQUES FOR SPECULATIVE ... - Purdue Engineering

0 downloads 0 Views 998KB Size Report
ratio of read-only references to total memory references, and (b) loop ...... The idea is to extend the directory-base cache-coherence protocol of the ...... Electrical and Computer Engineering at Purdue University, West Lafayette, Indiana. He was ...
         

      ! " #$"  # %& '

# " (# !  )"# !"  *+" ! *" ! ,

+ -../

0  0

  !

0  0

' %*1  "2 3 &  #&  4!2 5#+  2 4  "$ ,"! !"   6  4  #"+ 2 # +$ # # 4#$"   76   " ""   4 #   $"  6   4#     +"2 2 8* (# 6  # ,# "  4 69  " &  , 4 2    # ,# #+  4 "6     #  Æ   !" ($ #  ! "6  4   # +$ ,,#   #  4!6  " 7,"  "    # '"2 ,   4 4  ,"$ 4$"  4#2 # " 4 +$ "#   !6 #  "   1"# "6     #42 #  4  4 !"  6   " ""   ##  " #  !  $  #  &     +  +"6  4 &  #&  "0#04 4 #  # &# ! #+ !" '" !"  ! 6   4 &  #&  # # # # 6 2 6  , # 4  & " ! 6 %  4 #$" ! # " ," !"  #" 6 3 &  #&  $"2 *"6 ! +###2 !"  #"+#2 $2 # (## ,," "#+   6  #+! # # #0 "$ ++# " +" ,,"6 %   ! #+ $"  2 #  "  #  4  4 #&#+ #  +$ "" "# # ""6   4 &  7,"  +"  ,"!" #  ,7 "" +",2 *"6 6 6 : &" # *"6 ;& (   6  4 &  #&   +"  "2 *"6 "  ,  4  ""2 4  , &#4+6 , 2 4 #+3 ,2  4 ,  7,"  6 % & 4 ,#    # 4" ,," +"6 #  ,," ;"#3 ,"! "#+ !  2 #  +$ $ #6   4 &  #&   !"#2 *"6 ##+ "&  "! ","# 4 4 #  +",6  ,," # !  '"# !"# # '" # "  "2   !"#2 "2 # $, # +" #  ," #!""" !" #"# #+ # ""  # ##" >"#+ ! ,$ 6    ! " &#4+2    # 7#+ ,,"  $, ," #)  #+ "  #  ,$ 7# 6 " " 4  !" " #"&2 $" @.N !  "!"# # ##0,"H  #  # #   ,$ >"6 J-K % ,",             4 4  ,"  #  ,# ,","   "4" # ""  #H  ,$   ,""$  )# # !  ,"+"6    4 " #"#     " ,# " ,$6  "     "4"  "#  $" ! " 6    >" !"  "4"0# ,$ 7# J K  4  4  #

0 7$ 0 " ,": #  #  #  "6 JAK % #"   

                

!" " # "" ," , ,$ """2 ,76  #  !  ""    ," 4 7, #! ,"  #  #  7 # ,"6  "##+ # " #"  ,$ "+#   ,"  # "#   # #  7 # ,"6   # !   ,0 $ "4"  "# 4" " #  ," #+  ,$ "+# #  7,2 66 , 6  ,," # "  ##" ,## "&#+ # ,$ 7# # ,"0#( ," #6 # ""  ,," 7, # , "#+2 4 7#  " ,"H#+ ," #  "  +#""6  !" "  # ,# "# # 7, 2   4# , # 7, 7#  ,"# !"   ,"!"#6 % $,  ," "    " 70 #   ,  # "# # ""  "  7, "#+ $"6   "2 4 ,"$  ,,  ,  /FF6.N # FB6GN # $0 "+ $" # ,0# ""6 JBK % "       

     

 

           !    

6  " ,"H#+ ,"   !" " # # +#"#6   +#"" ,"$ #!"#2   " #  "2 !"  " ,"   "4"  "  #"# $" ! ,$ 7#6 % + #0 +"  !  ," ,## 4  ,# ,"  7, "0$ ," #    " #  !  ##"2 4 " ,": $ ,"!"# # ," ! ,,# # 6  "        

0/0

  

$"  , # "2 # "4"2 ,"## ,"$# # , !"# #+ " # $"0#"#+ $ ! , #+"#6  ,"+" &  !  ,"" "" 7, " #"#0$ ," JK6    7, 4#  #"# " #,## ! # #"2 # "!"2  #  $ # ,"6 ,"" ""  $" 0 #+ #" ! #"# ," & #   "     ," "  #    "4"  "#6 #!"# 2 0 ,"" "" " # # #+  >$ # ,"$#+  & , O/P   4"##+ # +# ,7 # " " , #0 +"# O-P6 #2 # """ # $#" " "#+   , 0 ,"" JK  ,"##+  , # , ,  "6  # #$## "0,""2  ," "  ,"+"" 7, ,(   #   7 #,## " 4 ,","  #"#H ,"0 +" +#2 662  2 # ""  7, "0$ ," J K OA2 BP6  ," 7,  "0$ ,"+"#+  ,# +" #  $ #"#0$ ," OAP6 4$"2   $" " !"  ," "  ,"+""  #!  !  ,"  +#6 # !4"2 ,"H#+ ," $  +#(# ,"+"2 # " 70   "+  ! "" # ,"H#+ ," #) "#+#+ !" 0 #+ ,"  Æ# 7#+ ,"  # $" # "+#H0 #6  ,"+" ,"H#  #  ! # ""# 2  #"   " #    ," OF2 @P6 # #+  7 4# #+ ," # # # #+#"#+ ,,#  #0 # ,"  "" OEP # # #+" ,,#2 4 ## ,#" # ""+" #" L4 OG2 ?2 /.P6

0-0 ,$ "" $ # ,", # ""  "$  ," !"  "# ! ,"$#+  +"#  ,"+"  ,## 0 4# # !  $   ," O//2 /-2 /A2 /B2 /F2 /@P6   ! ,$ 7#  #  # "" # ," !" $" "  !0 !"# !" # ,"   ! $" 2 !" 4#  #+ ,"" ,""  ,""  6 1#"  # " # 7,   !4"2  2  ,"$  ,,"# ! )# ,"+" 7#6 0!00" ,"" ,""  #" ,# #  !" ! "# ,"#  # # #  #  3 ,"" ,6  ,$ 7# #  "  7# "" # , ,"" " "  #$## ,""6

4$"2 #"#  &  ! , #) !"  # #0 " ,## "&#+2 >"#+ ! #"#  # "0&  ,""$  )# # !  ,"+"6 # ""  ,"$  #2  ,0 # #+#  ,$ "+  ## #" ,$  #  " ,# " "$6  #"  ##  $ +#" ,$ # 7" #!"#   ,$ $0 6  ,$ "+ >" " ,# # >"# !" ,##+ # $ !  ,#6 " 7,2 ,""  # 7 #"# 0!0""   >" !"  " ! #"#  $ (# 7#  $ #     ,## $# O/EP6 #" 7,   ,$ "+ ,  # ,$ ,""  2 4  ##    4 7# "# ," O/-2 /G2 /?2 -.P6  ,$ # #" #"# $"6 " 7,2  0 "  4 ,## "&#+  4" # 4 ,## "&#+2 ,$ "+ # $"L4 # (#   7#2 # "0&  $0  7,#$6 ," #) " ,"#  "  $"6 " 7,2 ,"," (## ! ,$ "  "6 !  " H   2 # " #+# $"  #6 #  " #2 0

0A0 $# ,"H#+ ," OF2 @P     (# "+ " !" ,"  #2 4 ,# # "0&6 4$"2 "+ " #  #" ,$ "+ $"L46 # " 4"& 4 $ !#     :" ,"!"# ,#6  # + ! " ""   $,  ," #)  "  #"# $" # ,$ 7#6 # ," A2   ,"#" ,2 4 ,,  0!00" ,"H# #) ! "0" ,"0 "  ,$ """ # ""    #( !  ""# ,"H#+ ," #)6 %   "# !  " ," #  ##" " ,  , " 4#  #+ ,,#6  " #  !" " # " " H2 #"0" #" L42 # #"0"  ,##6 %# #+ 4 ," , # " H  #  # #" L4 # 7 4# "#2 # "  # #"0 "  ,## 7, !"  , #76 "+ H " !" ," , ,""   # # $"L4 !  ,$ "+6 " "# (#  , #"#+ & H +#(# +"  ,"!"0 # ! ,"H ,,# # ,$ ""2 4 $ " ""6 #  2 4 ,"# ," #) #    #     $ " +   ," ,  "4" "  #"# $" # ,$ 7#6 % $, " ," #)  #  0!00" ,"H#+ ,"2 " OFP #  "  +#"0 " O//P6 " " !" :" #"# #  6  (" #"#  "   ,"+" #  #)2 #  # #"#   4 #0 "  #4 ,$ 7#   #  $, ,"+" # 6  " !  #"# "  4   +#"# #)6 "2             !                       ½     

                 

0B0 # # B6B 4 +"H  "  #  ,$ 7# 4  # #   ,$ >"2  #    # ,# "!"#6 ; 2  "!"# +   !4#+  ! $"C J/K $"  " # #$$ # # ,## " ,""2 # J-K $"    ,"" #"" "#+ ,0 #2  4 $#   "" $6  #  !   $  ,"," # , " ,$ >"#+ #  ,## "&#+6 "  4"& #  (#0+"#2 "!"#  "!"# 2 "&#+ 4"  " "!"# #   >" J ,$ K " # + "   ##0,$ "+ J# ,# K6  4 $, # +"  #!  "0""#+ (" 4"  # # B6B6-2 4  ," !  ,# # 6  4 !" ,"$   ,# +" ,"0 "$  ,"+" ""# # # B6A6- #  ""# ! " +" # # B6B6-6    ! " &#4+2    # 7#+ ,,"  $, ," #) 4 #+ "  !"  ,0 $ 7# 6 """2 4 "+  " #  # +" #  ,,  $" $ ! ,$ # !"  #"# $   " $2   ,""  ,""6    #    $

" 7,"#2  " ,"H#+ ,"   !"  ,## # 2  # ! ,# $2 # ,# "!"# # 6  #!"#  7," #  !" ! "$2 4 "     +#"0 "    "  " #"#6  ,# ,"  ! 2 #  " " # "   "6  0 ,"  &  ! ,"$ $"2 4  , #  & !  +#6  ," #!""" #  ,## " ,"# # # B6F6 # # B6@ 4 )#!  ,"!"# ! "  # " ! ,,2 $"0 2 #  #" ! ,# "!"# #  "3 ##0,"H # ,"H  #6 " $# 4   ,", +" # " ,$ "+ $"L4 +#(# 2 # $# ,"$  ,,

0F0 # ##0,"H  #6 " "  4  !" " #"&2 $" @.N !  "!"# # ##0,"H  # " ,# #  "!"# " (  ,# # + ,"H ,,#6 #  4  "0#     ,"# +" #+  ,# +" #  " ,,#6  ,,  ,"$  ,  /FB6GN # FA6@N # $"+ # " " ,,# $"  0!00" ,0 $ # 4  B'; "0,, J*K ,$ "+6 2 4 ,, " #)  #"#0$ ,#    JI" )K   ,$ "+6 % 4  " #) "  # #    )"" # $"+2 #   7 ! #0+6 #2                                 # 0 # B6A6 #+  ,# "!"# # 2 4 # #H  ,$   ,""$  )# # !  ,"+"6  ,"0 ,$ 7#  4 " #"#     " 0 ,# " ,$6  "     "4"  "#  $0 " ! " 6    >" !"  "4"0# ,$ 7# J K 2 4  4  # " ,": #  #  #  "6     " #  ""# !    !" ,"$# # # B6-6 % !" ,"$  ""# !  ,"+" 7# # " ,",  # # B6A6-6 "2                            

 $ # ," F 4 ,"# 4  ,,  ,"H#+ ,"   ,$ 7#  # +#"   # ""  7,  7, # , "0$ ,"0  4#  #+ ,,#6  7,0# "" OA2 BP  # 4 ,"0## H ,"+" +#  7, ,"    " 70 #2 #  ,0# "" #"  ,# $" $# # ,"0#( ,"  #6 # !  ,,"  $" 

0@0 "4& !  ,0# #  7,0# 7# 4# ,#+  #0 + ,,# !" ,$    $  ," 7, #! ,"  #2 4 #  7    # ,"6  "##+ # " #"  ,$ "+#   ,"  # "# 4" " #  # #  7 # ,"6   # !   ,$ "4"  "# 4#  ," #+  ,$ "+# #  7,2 66    2  #" # " # "" ," ,2 ,7 O--P6  ,," " ##" ,## "&#+2 4  # #"# $" # ,$ 7#2 # ,( #  ,$ "+ $"L4 # ,"0#( ," #6 ;2  ,##  # "$2 #0 " #  "4" #" #  ,"6 % # "4" #  ,," ,# !" , "#+ # ##0,# !" 7, "#+ O--P2 #  ,"  +"#   ,"+" +# !" 7, "0 #+  # #$$  ,##   "4"  # ,," ,0 # #  "+#6 #  #"#2 4 " 4  "#!"# # +#"# #) !" ,7C J/K %  ,, J"#0 # "$0K   " ,"H#+ ,"  +#" , # 7, "  Æ# 2 # J-K 4 $,  ," "    " 7#   ,  # "# # ""  "  7, "#+ $"6 # ""  7,  7, 2 4 ,#  "#0 &#   ,, !  " ,"H#+ ," # # F6-6-6  &# "#  ," , #  "#0!"2 4"  ," # +"#  # ! ,## 4# "# # # 4# "6 %  "#!"#2 ,##   #" "+  ,H#6  "#!"#  4  "  $  4# ,"$ & ,6 % $  ,## $" )#$ 6  4 ,#  "$0  #"! # ""  #" # , " # !   +#"" # # F6-6-6  #"! 4 "  ##  ,( "+#  

0E0 +#"  , "6 # # F6B 4 )#!  ,"!"# ! "  +#"#2 ,"#+  4  0!00" ,0# ,$ """2 " O//P6 " $# 4  "  +#"#  #  ,7 "0 " ,"$  ,,  ,  G/6EN # -@6FN # $"+ 4  /@'; * ,$ "+2 #  ,  /FF6/N # F.6-N # $"+ 4  B'; * ,0 $ "+ $"  ,0# 7#6  $ ,, +# " !" ##+ ##" ,## "&#+ # ," "+# #(   " ,"H#+ ,"6 4$"2  ! + 7, "#+ $"0  # (#0+"# ," ,2  ,, ! "   "     -.6FN # /A6@N # $ ,$ "+ #(+"# ",$ #  ,,#6  7, "#+ # #" 87, "#+ $"69  #  7# ! 7" #"# #  , " "+# #  " #  4  7#  4# , # 7,6 " "  # ,# "# # 7, 2   4# , # 7, 7#  ,"# !"   ,"!"#6 % #"  ," "   " 7, # , "  #  #  #H  7, "#+ $" # # F6A6  ," #"  "" !  "4" #(+"# #  ,,#6 ! #Æ# #!"#  $  , 2 # # #"# !##   # ""    7#   "#6 % 4  " " "  7, "#+ $" +#(# 2 #2 #2 ,"$  ,,  ,  /G6AN #  B'; * # -F6-N #  /@'; * $"   +#"#  4 ," "6 "2                      !      "     

% #+"  " ,"H#+ ," 4  1  ,"0  +#""  7, 7, # , "0$ ,"    $

0G0 4#  #+ ,,#2 #     "  " #"#6 # # B6F # # F6- 4 #! #"! 4# ," # ,"#  ,## #) # 6 "2  " ,"H#+ ,"  + #+" 4   +#"" !" " # #  +#"#6   " ," +#" # #"  # # H ,## !" #! #+ ,# "!"#6  " ," 7,"  ,"+" #  #!"# # 4 !"C "#!"  !" 7, " # "0 $ !" , " # "!"# #+6 #2  !"  "# #  ,"+"   ( !- "#" O-AP2 #  ,"    +#""6 "2   +#"" +#" #"  ##  ," #  #0 !"#2   " # "  "6  #!"# 4  "4"  "  #"# $" ! ,$ 7#6 % # !  "4" # ""    ," #!"#6 % "! +#  " ""  ,," " ,# 6  !  0 ,# ," 4   "  !  ! !,?F O-BP # # " "! O-FP #"&6    "+#H  !46 # ," - 4  " 4"& #  " ! , ,"" # ,$ 7# #  #  #+"# ! !"## # &# ,"Q # ," A 4 ,,  ,"H# #) ! " " ,""     ,$ 7# # 2 # )#!  ,"!"# !  ,,#6  " ","#  $# ! " ""6 # ," B 4 ,"#  ,"3 "  #  # # +" !" #! #+    # #   >" ,$ 2 4  " (" #"# !  6  4 ,",  ,"0 ,$ 7#  4 4  ,"  #  "  "   "4"   # #"#6 # ," F 4 $,  ,#  #  !4" #"! ! " 7,"# ""0 "2 ,72   " #  !" #"# !  6 % )#!  #"# # ," @2 # ," E ,"# ##6

0?0

    

#  ,"2 4 "$4 " "" #  " !  , ,"" JK  7, "0$ ," J K    #    # " ,#  # # -6/2 #  #+"# ! !"## # &# ," # # -6-6      

  # !" !   7, "#+  # #$## "0 " ,""  6 # 7, "#+2  ," "  ,"+"" 7, ,(   #   7 # ,"6 #   # ,,0 # ,"+"#+ #"!  , # 7 " # , " # ,"6 7, " " , #,## " " # #  "+ " 4# #" #+ #"! ,"$6 7, ! , ,"" #+ 7, "#+ " ; 4"B OAP # ,) "# OBP6 $# ! ," #  #  ! 4 ""# 2  #"   40&#4#  ,"H#+ ,"2 " #   ," OF2 @P2 # #+  7 4# #+ ," # #+" ,,#6 # ""  "$  ," !"  "# ! ,"$#+ 0  +"#  ,"+"  ,## 4# # !  $   ,"2 # "#$ !" ! 2  ,$ " , "#+2  # ,", "# 6 #  4 ,"!" , "#+2  "0 4"  ,"#  !  #7 , " !"  )# 7# " # 7  # , " ,$ # ,"6  ,""$  )# # !  ,"+"2  ,## #+  , " " #( # (   "4"  "#6 7, !  #+ ,0"#+ " %## " O//P2 #!" " O/-P2   0

0 /. 0  O/AP2 # "  "# 4# " # ,7    ,7 ,,"  7, ," 7, # #  , "#+ # ""  # ,$ 7# $" # ,"0#( ,"  #6 #" , "#+ ""  "  #!" #$" O/-2 -G2 -?P6 # "  ,# #+ "  #  , 7##+  , !  ,""  " ,," (#0+"# "#+6  :$     #  # 0>$ 7 >"# ,"+"    2  4  #+ ,,#  $ #  " ,$ ,"0 H6  #2 ##   ,# #  #+ ,2 ,"$ Æ# +#" ,," !" ## 4# ,""2  4  ,H ,," !" ,$ 7#6 " $  ,"+" # " # # "  "#+ " # , "6  ,," OA.P " 4  (# # >$ 7, ,$    ," "  ,"+""6  #" 4 &# ! "C "# " # , "# "6 # , "0 # "  ,  7 )# !   &#4#  $ ," ,$ ,"!"#6 4$"2 !  ,   + # !" ,#2  ( $"# !  ,  2 "#!" #  !0## !##2  7 "0 , 6 , "# " 7 #  $ ,""6  " 4  ,# " , "# #  #  Æ# ,"2 # ,",   ! ,$ ,"" 7#   # ! #"#+  $0  ,"6 4$"2  7,#+ ," #  $ ! ,""  # #" " #( # !#+ # ,0$ ,"6 "  /I  ,$ "+6  " ,":  "  ,,"#+ "+"

0 /A 0 " H      -   ,$ "+6  # !0 !"# 4# " ,," # "   " 7  #+ ,,# " , " 7, 2  # 6 """2 " ,# ,"  !  #   +#""  + #+" 4  0!00" ,"H#+ ,"2 "6 "   "00" ," J  K  "#!"  * # +,$ , # ,$ * # +,$ ,6 ""# 2  , "    ,"+""  +##+ # , #+  * # +,$ & 4"6  ," #  "#!"  ,  " ,$ $"#  ##+  ,   ,"" #  # H#+  L4 #  ,    #  $"  $  ,#  " ,0"" ,## " +H O/-P6   O/A2 /GP  "0$  ,# J *K2 4  #+  #"#0$  ,# 7,    #  " " 7  ," " ! #" 4 "# # ,"6 %#  ,## $#  2  "$" #  &#2   ," "07#+  " 4 ,"!"  ! ,$ 6 * ,"  7" !"  ,0 $ "+#2 4 # !  # !  # #"# )#  ,6     , 7##  # #$#0  "# ," 4 4  # ! #! ,#2 #  " # !4"  "$"  "" ,"+"  #  6   3  "0 # ," 4 ,#   7#  # $2 !"  /    0$ ,"$  !  *I6  4"&  #  # $# ," #    ,## #  !  ,"H#+ ,"6    #"   ,"2 # ,"(  ,,#  (#  "+# !" ,$ 7#   , 4  "# # ! ,# ," "#  $ #!")# ,0""  ,##6 #  ##  #"  #  " #  # !  ,2 #  ,#  4  ,   #"#H  4  !"4"#+ O/GP6  $ # $,  ," #!"""6     ,"(#+   #! "+# 

0 /B 0 # !"  "+ ,"# !  7# 6  "+# " # #,  #  "# 4"  " + # !" 7,#+ *6 +#2 " ,# ,"  7,   ! 6 ,  ,#+ J K #  $ #+" ,"  ,#+ !"## #!"#   &# ,"6   #" ## 4 :" 2  #  #  "+# 6  #    ### 4#  !"## #  &# ","## #+  # #" !  " 6  "+#  ##  ,## #!"# !"  ,6 #  ,,"2  #" ","## #+  # #" !  "   # 4"&  !  "#!"# # #"# """#+ # +  ,H#6 # " 2 4 7#   "" !  #" ","## #   J+" "#!" #++K # 1 OABP6 "!"2 "   >" #  $ !  ,H#6 #" ""    ," OAFP  #+" +0$ # #"#0 $ ,"H#2 ! "+   !  # #" ","#0

0 /E 0 # JK6     " # $ ! ","##C +0$ J

K2 40$ J K2 # #"#0$ J K6 %# #"#+ 2  ," ##  ,## #!"#6 *"#+ #"# ! 

2 7,"# " " #"H  $  #+  > ," #6 #  2 ,7 7,"# " " "&# 4#  # ! , 7,"# "6     4 " , 7,"#2 ,2 #  >6  4"0 #+ # +"#+  #   ,,    #" "" 6 +#2 # " 2 4 7#   "" !  #" ","##2 # 4  # #" # # #" ","##6 # "  4 #+"  ," ,##2 #  ,# ,"  !  # 7,#+  !" ,7 # #+  " !" "#+ # ! ,$ 6 %   " ,"H#+ 0 ," OFP  +#" " #  # H  "  "6  "0+#"  # !" ! "#0 # "$0 " "#0  #  ,"+"   ( !- "#"2 # ,"    +#""2 4  # 7## !  " ," O-@P6 "  #+2 4 7,#   ,!  ,## !  &# ,"2 # 4 7#   "" ! # #" ","## #   +#""6   +#"0 " +#" #"  ##  "3 #  #!"#2 4  " # "  "6

0 /G 0

0 /? 0

               

 ," "#+  $# ! " "" !" " ," #) !" ,$ 7# " "6  !  ,$ 7# # " # 7,   ,"6  " # 7#   #" 7# ,"!"#2 4 +$#+  !4"  ,,"# ! )# 70 #6 #"# 2 ,$ # # ,7 !## 2    # #" ,## "&#+2 >"#+ ! #"# 2 # "0& 0 #2  ,""$  )# # !  ,"+"6 # ""  ,"$  #2  ,# #+#  ,$ "+  ## #"0   #  ,# " "$6  #"  ##  $ +#" ,$ # 7" #!"#   ,$ 0 $6 "!"2 #" ,$ # $ #"# $"6 " 7,2 0,## "&#+  4" # " " 2 ,$ "+ # $"L4 #   7#2 # "0&  $ 7,#$6 #  ,"2 4 $  ,"!"# , # ,$ 7# 4# ,, #+  ,"H#+ ,"6   ,"#" ,2 4   ,"!"# !  ,,# #  0!00" ,$ 2 " O//2 -.P 4 4 "$4 # # -6/6-2 4 4  +#"# 6 #  4   "# ! ##" ,  , " J  K 4   "3 " # O-@P2 #  "   "# ! " ," ,  , " J  K 4#  #+ ,0 ,#6  " ,"H#+ ," OFP    #! ," ,6  

0 -. 0 7# 4  " ,7 "$ &#  #+" 4  0 " ," O-@P  +#" , "6 * !  ,## 4  " # # F6-6  " #  !" " # " " H2 #"0" #" L42 # #"0"  ,##6 %# #+ 4 ," , # " H  #  # #" L4 # 7 4# "#2 # "  # #"0"  ,## 7, !"  , #76 % 7,   + ,"H  7,#+ "0+"# ," $" +" ,"!"# # ,$     "# ! " #+# $"6 #  #7 #2 4 4  , #"#+ " H +#(# +"  ,"!"# ! ,"H ,,# #  ,$ ""2 # $# 4" # #  " " #6       

" 7,"#   #  0!00" ,$ """2 ,$ "##+  JK " "4" #  ," O//2 -@2 -.P6 %   " "    ,"!"#  0 0  0 "H #  A6/6     !" 02 0!0"" ,""  "6  ,""   4# ,"$ /     ,$ "+2 #   "# ,"  7#  ##  ,$ 6 %  ,"! -  "2  4    ( # 4# / # 2 # ###   #"## " 6    ! " 7,"0 #   - !,"#6 "!"2  ,#  # , # " ,"!"# "6  A6- 4  ,,#  !" " 7,"#2 4 "  !  !  '-. O-BP # " "! #"& O-FP2 # #, !" "  6 JRK #  4#  #" ! , "# #  " ! " # 6 %  4#  #"&  "  # 6 % $ ½ 

                                  

0 -/ 0  A6/   #(+"# ,""6   / 0 / *0 ) >" H "" >" H  H ## # ;"# ,"" & ,"" &  -  /I- ###

"#+ # B 02 0!0""6 G';2 -04 2 /   6 B';2 *2 /@0  &2 /   2  0$ +#6 @B #"6 @B #"6 @B #"6 A  2 / 2 / " 6 ,02 B "+6   ,02 - "+6 /@'2 -04 2 /   6 ?0   # "#!"2 ,"!  "6 #, ,0"## 2 A-0 46

    4#  4  " "" 4  "+#  # "# ! $" "6 % !   +#"   #+  " ,"H#+ ," #  7# " ,"6        !  " #

%   ,,# 4 ,$ "+ ! 4 >"# HC # /; /@04 J% ##+  "  # ,$ "+ $"L4K #  B'; "0,, J"IK6 +" A6/ 4  ,, ! 7# # 8"9 # 8,"9  4 ",   ,"" ""2 #(+" #  # ! "3  6  (+" 4   ,"!"# ! ,"  ", 4#  H ! ,$ "+  "6 % #(# ,$ "+2  ,"!"# !  ,"   4" #  " 2  #  (2 & /.2  0'12 &!2 # '06 % " ,$ "+  ,"!"# +, #" $# "2 7, #  0'16  " " 4  , ," # !" ,"$#+  ,"!"# ! ,$ ""  # ,6  " !  # #   "# # 6

0 -- 0  A6,,# # #, 6 ;#"&

 '-. 1' / &!  0'1 2310 4!

 (

! 5 & /. *% 5 5 1.0

'0

#, S ! # J#K  .6BB.  .6EFA  /6//B  /6/B/  "# -6G/. "# .6@B?  "# .6AA"# -6GBE "# .6BE.  "# .6//B  A6B.F  A6B@@   /6FA.

+6 A6/6 ,, ! " # ,"  # # /; /@04 #  B'; "0,, ,$ "+6  8"9  4   "# ! ##" ,  , "2 #  8,"9   "# ! " ," ,  , "6  ,"!"# ! ,"  ", 4#  H ! ,$ "+  "6

0 -A 0 +" A6- ,"#   $"   ,"#+ !   7# 2 #"H    7#  !  8"9 6  (+" 4   8,"9 2 + " " " +#" !" #,##  #2  $ # ,##2 # #  #"&  $"  "+" # #  " 6 % !# 4 "# !" +" ,## # ," 6 "2 " #       ! "+" # !##  J"!""   "( ,## # OA.PK6 # 7,  4# # +" A6A6  ,## " #"   )#  ,"6 +" A6A JK "$   , !  "+" ,## $" #  ,"  7#  " $" ,"   , # "  7#   "+" $  ,",+ !"  # !   "# ! # ##" , J K   #7 "# ! # " , J K # ," 6 



#2 4 !#   ,H# !  &# ,"  #"0  #4 ,##6 " 7,2 +  " ," ,, ## $" #2  "+# &# ,"  "$"  "#!"# #+ "#+ "#6 % "# >  "#+ "# !   +#"" # ," ,2   ,"!"#  # #+ # 6 ,$ "+ $"L4    +#(# ,# 4#  ,$ "+  6 #  " H # ,"   "+" # # " 2  ,"  >" $" !" ,$ "+ $"L46 ,$ "+ $"L4 "   # ##  !" $   ##0,$ "   #  " ,#   # " , "$6 #2 "#+  $"  # # ,"#   +#"  !" ,"$#+ ,$ 7# ,"!"#Q   , ,"# !" ##+ ," #)  #   "+0+"# ,$ 7# 6 """2      # " # "# &,  #" !   , # ,$ "+ 4# #6 #+ " "  2      !    ?F ,"+" "  $# "+"

0 -B 0

+6 A6-6 $" ! 8"9 # 8,"9  4 ",  " 6  "  / # A ","# "  # # /; /@04 #  B'; *2 #  "  - # B ","# ,"  # # /; /@04 #  B'; * ,$ "+2 ",$ 6

  -...   OA@P2 4 !"" #"  $"6 #)# 2 #) !" "#+ ,$ "+ $"L4 " ! " ,"#6 # 52  " #+# $" #  ,"   "+   " 0,"# ,# + 4"   " + "+"6 # " 2 4 "  #4"  )# 8&      #         '9 "  " 4# # +" A6/ # A6-2 4 #  , ,, #+  ,"H#+ ,"   " !" ,$ 7#  # ,  6  ,"!"# !  ,"     " #  !  "  # #  !4 !  #"& #+ # #(# ,$ "+2 # # ## !  #+  " H6  "+ " H ! ,"  #" " ,##2 ,$ "+ $"L42 # " #+# $"6

0 -F 0

main(){ $mux parallel for(i=0;i"# +# "    , 6

    .

 +#   4#   6   ,   +###+ !  +#3 7# # !"  "0&6 *"#+  7# !  +#2   "!"# +   ,$ "+6   # >  ##0,$ "+ #  +#   J "," @K6 !  " "!"#   # # ,"# #  ,$ "+2 #  $  ! !"  #+ #"  ##  $ !"  #2 " !" ##0,$ "+ ! # #" ##  #6  4" "!"# > #  +#3 4# ,$ "+6

$ *  ".

# #     $2  ,$ "+ ##  #!"# J #  , ! "!"#K2 4 4  ,# #+#  "& ,##6 !  4" "!"#    " "!"#    "+ #   #+" +#  ,"0 " ,,#2 #  0,## JL4 ,##K $#  ""6 !2   ,# !  +#2  ,# #+#    " +#  >"# !"  ,$ # #2 #  #" ,## $#  ""6  ,# #+# "   $#  "#+ &  #+" +# ""# # 7#6 "0+# # # , ,## " (   +# $ ," ,$ "+ J"," BK2 4 "  # )#0  "" J"," @K6

0 *  .

%#   +# # 7#  ,  #"#2 ,# !  +#    $  #  +0 #  ,"!"  (# 7#6   ,#  +#3 ,$

1 )   .

0 AF 0 "+   J662 #, $K   ##0,$ "+6  +# ##  !"  " +# $ 6 2  #  $ +#"   +#3 (# 7# " 6 $

   ! %()

 "+#   7 "" !2 +$#   " "+# " 7 "" 2  "  "!"# #   $ ,"+" $" #  ##0,$ "+ $   $  #  )# 7# !  ,"+"6 " 2  +#  # "+#   7 "" !2 +$#   " +# #  #  "+# " #  " 7 "" 2  "  "!"# #   $ ,"+" $" #  ##0,$ "+ $   $  #  )# 7# !  ,"+"6 *+    , 

    -





2  ,   ! %()-

 

        

         $

     +# # "+#  !"   #+6  !  ""# ""# ! *(## A2 4 #  4 2 !" # +#  /   2  $ !  ,"+" $" +#" #   ##0 ,$ "+ #   # !  " ""2  2  "     $ !  $" #  )# ,"+" 7#6  "  $ +#"  +#  " #+ " &6  # $    "  +#" # (# 7#6 % 4 ""# !  $ # 4 ,6 % 4  J/K  (# 7# !  +# ," "" $ #  ,$ "+ # J-K  $ "  "" 6 J/K #"# 2 +# 7 )# J  "," /K6   "!"0 #   +#3 4# ,$ "+2 #  "+ ##  (  # " +# J  "," BK6 #2  +# 7 # ,"   (# $   )# ,"+" ! 4 # 4   $ # # ,"# #  +#3 ,$ "+ " # "" J662 

!  











0 A@ 0 #  )# ,"+"K6  !4 !" 4 !6 JK  "0+#  ""#+ " ( J  "," FK6 JK ;  "," B2 $ !" 0 # # ,"# #  ,$ "+ " # " !"  #+ #"  ##  $ !"  $" J4   ,"" !  $ #  )# 7#2K " !" ##0,$ "+ J4"  " ""2 +$#  ,"#+ "+#3 "" 7#K6 J-K ;  "," @2  +#  # )# ""6 "!"2  +#3 $ 4  # #  ##0,$ "+ "" !"  #" $ , " $6 ""# !  !4 " !"  ""# !  #+ +# # 6 ;  "," E2  #+ +#2  2    #  , # 6

# !   ""2   ""6 



$    '"  )    $

 ")  

 ,"0 ,$ 7# JK   # 7## !  "4"0#  #" # # B6-6  !4" ""     # *(## /6  # 2 +# "  ,"" # ! ,$ 7#6 +# " ,"# !" ##+  # # 4 "#  "  J6+2 "0# 2 " ,##0!"K6  7# #  (#  !4C ,"0 ,$ 7#   ,"+" 7# # 4   ,"," !   +$# # *!0 ## -6 "#  "!"# "   ,#2 #  " !  "!"# " ,$ 4   ,","  # 6 ,# "!"0 # $  !4#+ ,","C *+   $ ,") -

,  ,  ,$ "+ # #0  " "!"#  ##0,$ "+6 #& ,$ "2 ,# "  # $ # #!"# #  ,$ "+6

   ! 

0 AE 0 #!"  ,##  (" &#+ #  ,$ "+2  & ,$ 4" "!"#6 4$"2 # " $  " , #  ##0,$ "+ # # #!"#   "!"#  &, #  ,$ "+6

  &   ! 

"  (## ! ,# "!"#2 4    "!"#  ##0,$ "+2 #  # , # , # ,$ "+6 2 ,# "!"# , " ,$ "+ $"L42  $ # 0 # B6/6 2 !" , 4   "   !"   ,"+" ,"," J "!"# $"  "" , ",    "0& # "0 7#K #  "4" ,"," J " "!"#  ##0,$ "+6K $

   ! ")

# 2 ,"+" ##  ,$ # ,# "!"#6  "4" +"# ""# !" ,$ "!"#2 & 6 ; ,0 # "!"# " # "&  ,$ "+2 # "!" ""# ! ,# "!"#  # #+" +"#   "4"6 #2  ,"  ""  ,# "!"#  +"# "" 7#6   #2  !4#+ #+ ##   (  "!"#   #(  ,#6 2.

    

7V   

      





 

       

     * $$!    



        !         % 

J,$ " "!"#  # #"" $ #  , 7# # ,",+  #"" $  ,# 4" "!"#6 ;  #"" ,# 4" " # "  4"#  ##0,$ "+2 / #"   4" "!"#  $# ""6K    $

¾ !

     Ú           

0 AG 0 2.

7V          !   %  !             7 V   %6 J# ,# "!"#  # &, # #!"#   "!"# # ,0 $ "+6 ;  "4" # # #+" #!"  ,## !"  "!"#2 - #"   "!"#  "" "" 4 "0 ,   ,##6K

2.

                 

   

   



        $    

                

J! # !  " # #& !  L4 ,##   ,$ "!"# #  "  # ,# "!"#2  " # #&  >"# "+6 A #0 "   #& "!"# "" #  $ ,"   " "!"#6K           $

 " !## #+  # ,$ 7#2 #"" $ " "   0,## $#2 # ,",+ "+ )# ,#6 /2 -2 # A +" +"#  ,# "!"#  #  # 0,## $# # " 4#2 +  "!"#  ,",+ #"" $6 ;  # #"" $ " $# "" # ,",+2 ,# "!"# # #  "& # ,$ "+2 $# !  "!"#  ,"" #""6 !  "!"#  # #$$ # ,## " ,"" J6+62 "0# # ,"$ "!"#K2   "!"#  "+!"4" ,#6 2  ,   ! ")-

     &% +   

            ,-  ,+$

"$ 6  $ # ##0,$ "+ +#"   +# "   !" ,$ "+ #  4"#  ,# "!"#6

! 

0 A? 0 % ," # 4 ,2 J/K 4 4   $ +#"  ,# "!"# " "" # J-K 4 4   $ +#" # ,$ "+ # #  " ""6 J/K ; ,# "!"# " 4" # ##0,$ "+2 4  #"  +# 7#6  #" 4 2 4 #" # (# 7#6 ; /2  +# ," "" $ !"  $"  #" ,# "!"#6  2 $# +  $"   4"# #  , +#2 / +"# 2 #  (# 7# ! +# "!"##+ 2  $"  ""6 J-K  # >"#   $ ," # ,$ "+ #    #"#  # #, $ "+ " "!"# #$$ # 0 ,# "!"#6  $ " ""  !46 ; -2   ""#+     ,## " (6 ; A $ " "" #0  ! "  ,"" "  #"  # ,# "!"#6 "!"2  $  !" ,$ "+ " "" !"   "#   " "" # 6 "$ 6  ,"! !  #$"  ,2 #  # &6  ",0 # !  " #+ "" & $  ! # !   # ( # # #"" $  ,"2 #2 "   ,##   $6

#2 "" ,"+" 7# 4 # #+"  +"#6  ,"! ! ""# !  "+#  #   # !" 6



$$ /!   #

#  # 4 ,"#  #   # +" !" #! #+ $" "!"# #  ,"+"  $  ,# ,"," 6 ,# "!"#  # #   >" # ,$ "+6  ,"$ ""# 4 4 4   "!"# !  #+ "" / "+ A6 " / # - +$  #" # Æ# ## !"   "!"#     ,#6  !4#+  4  ,! # ,"$#+  4 "6 # #2  "   %   4  !6   (#

0 B. 0  !46 *+   0 ,/'     3   ,/3-



 





       

  ./0  !    ) 

            

 !   



 

       

 $

2   *(## -  +#   + " &   # ! # #" +# # 6 #2  4" "!"#  #    % !  (" 4"# #  , , 2 4"   , !"  # ! # #" !    # ! 6 !  # $ #  $  ""$# !" ""#  *(## -6  % " 4 4   #!  4" "!"#  ,#2 $# +    ,"!" #  , +# 4 # #"" $6  % " #"   4" "!"#    $"  +"#  ,,# #  (# 7# !  +# !4#+  % "!"#6 #2  $" $ 4  ""6  !"" +"#  # " "!"# # #  #"" $ !"  "" $  4"#6 2  "0 ##+  % "  ##0"$ #  ,"# ! ,#" # ", ",6  ,"  +"#   "!"# #  , # #  , (# 7# +    "+ #6 % 4 ,"#  ," +" # # B6B6-6 "  !4#+ ,"## 4 #"  "+#   6 * ,## "   $ # # H !"  "+# # # "!"#  "!"# 6 2   #  " " #  ,## 4# "!"#    $"6 # #"0"+# ,## " #"6 















2  , ') * )-

1 )      

       $

  ,## #& #   ,#6 ,,  0 ,## " 7 !"  #&6 !  #&   " "!"#2 # #!"#

! 

0 B/ 0      &, # ,$ "+6 #2  "4" 4 # #0 !"  ,## ,"  "," F6 !  #&   4" "!"#2  " 4"   ##0,$ "+2 $#+  ,##6 #    #+ ""# -  # (2 4 #"  ,#6 2 $ , /-

    

7V

    )  

       $

/  # ,,  " "!"#6 #"#+ -2 ,,  "!"0 # 2  #$$ #  ,## 4 #& 2 6 #"0+# ,## " 4  (  !  )# 7# ! +#6  "0+# ,#0 #   (  2   ,$ ,"  A6  #   $ ! 2     # !  (# 7# !  ##+ +#2 4 ,,#   2 J  "," B # @K6 # -  (6 A  # ,,  "  # 4" "!"# ,"#+ 26

! $

2 0 , /3-

   %   ./0    

)             $

/  (   4" "!"#   "0""#+ (" 4"6 ; *(## F2 $# !"  , $  4"#2  #4 $  +"#   4"# ,""   " # # (# 7#2 #  $  ""6 " -2 #"0+# ,## " 4  (6 " "0+# 0 ,## 4 #" 4 6  /C  "!"# 2   " !  L4 ,## 4 #& 2 6  ,##  #!" ," *(## B  #+   #&  ,$6       A6  -C "  # , ,#0 # !" 2  2 6  ,##   (6 # 2  ,$2  4  4"#   ##0,$ " ,#   !  +# ###+ 2 2 4     "!"# 2  J  "," @K6 # -  (6 A #   #" !"   !  L4 ,## !" 2  2 6 ;

 "," B2  ,$ " "!"# #  $ !"  ##0 ,$ "+ # ! # #" +# ##  ,$ $ !" 

! 0

0 B- 0 #6   #    2  #  #& ! # " ,##2 4 #    (" "!"#   $" #  "+#6 # A  (  46 2 1 ,   /./0   

    

V        

7V         $

- # A #   #"6 " -2  #"0+# ,#0 # " (  !  )# 7# ! +#6 %" "!"# " #  ,# 4  F6  "!"#  # ,# # " +#2 # 2 ##   #& !  "0+# ,##6 #  " #2 2 #     !  "0+# ,##6   ,##  (Q  ,"!     #  B6 #2 -  (6 A   (2  # ,# 2 "" "  $ +#"  # ,# 2 # ##0,$ "+6

! 1

2 4 ,"  *-

   

7V          

       )           $ 1 )

V             $

;  A # B2 #  # ,## " +#2 2 #   ,#2 # 2    ,$6 #" # #"0+# # ,##6 - # A #   #"6 " -2  #"0+# ,## " (  !  )# 7# ! +#6 A   (2  # ,# 2 "" "  $ # ##0,$ "+ ! 2  &, ,$ J  "," BK6 #  ,## "  ,#2   #&  ,$6

! 4

2 5 ,)  -

 )             

   $

 #"#6 ,,   "   ,$ 4" "!"#2 #  #&  # ,# " "!"#6 # A  # (  

! 5

0 BA 0 #& #  $ !"  ##0,$ "+6 "!"2  #&    ,$6 " ,#2  !4#+ ,   4 ! #,## "+#6 2 6 ,

#  -

           

               $

 "+# 4 #  # #" ,## " +#  0 , ##0,$6  2  +# " 7 # # " ""2 (# !" 4 # $# !  # #" ,##6  7# 4 # ,"!" "0&6 #  " "!"# ,,# 7 # # " (# # "" !"6 #+   ,# (  " #+ "" "$ 6

! 6

 A "+ @ ,"$   !" ,"$#+ #" # Æ# #0 # !" ,# " # 4" "!"# # +#  # ,##6    ,  /-

            

   )                       $

"$ 6 ;  B  " "!"#   #  #& !   ,## #   ,#6 ;  @  " #    ,# !   ,## # # ,# 4" "!"# 4#   +#6 "$ 6 % ,"$  #$"  #"#6 % 4   " "!"# ##   ,# !   ,## #  "   # # ,# 4" "!"# 4#   +#6 " " 4 6 J/K  "  #  >"# +# # J-K  " 4#   +#   ,$6 ;  A  ,## #& ##   ,# #  /6  " $ A  # ,# " 4 # #  $ 4"#   ,"#+ ,$ 4" "!"#6

! 7 ,  /-

0 BB 0    ,  3  -

            

    %        )        $

"$ 6 ;  F2  %   #  #& ! # "0+# ,## #   ,#6 "$ 6 % ,"$  #$"  #"#6 % 4   4" "!0 "#    #& !  "0+# ,## "  #  % ##   ,#6 ;  A  "0+# ,## #& ##   ,#6 !  "!"# 2  $"  #  % #2 !"  ##+ +# " &2 7# # &  ,  J /K  # "!"# 2 "  J -K (" " !" 6  / ##   ,#  2  $ 4"# # #"" $   #$" ""6  - ##   ,#   " "!"# 4 #  #"" $ 4"#  2 6 #   / 4  $6

!  ,  3  -







$$

*  .  #   

% # " ,# "!"# #  !" !  !4#+ +"6  (" +"  4  ,  ! ,"+" "+#  #    ! ,"   ,"6 

#  . ! " " # "0+#  # #" ,##2 #  "!"# #  "+#  " ,#6  #$  #+ 4  #" !"  +" 6   #   , # ,$ "+6 #  #   "+# #  "#  #  #$## ,""6  #7 " +" " ,,  "+#  $  ,##6 /'  #.  "!"#  "0# $" #  "+# " ,#6  "!"# " # #& ! # ,##6  2 + $" #$2  ,# ,"," !" "0# $" # ," 0,##  #  # "$  !  #"# ! ,# # ,$ "!"#6   4# #  ,"! !  B6  .  "!"#  +#0,"$  " ,#6  +" 

0 BF 0 "$# !" ,"  # "+#H ,"$ $" # 7,"  #!"#    "" " "#   # ,"$  ,"$ " , !"  +#6 "#$ 2  ," # ,,  "##+2 4  "   "!"# 4 ! #  #7 +" 6 ,"# # " #  "  !  ,"$ $"  # $ # "0+# ,## # " # $ ,  # !  +#6 )  * .  !  " " 0,## "!"#   # #   , # ,$ "+   ""&6 # 2 # #& ! "0+#  ,## #    ,$6 %#  +#  "!"# !4#+  4"   +"#  ,,#2 # ,,# +# !"  ,#2 #   ,#6   ,"#  #   4" "!"#  ," ,"" #"" $ #  ##0,$ " 6  ,# ,"," +"#  ""#   #"6  

+" B6- 4 $" 7,6 ; *(## F2 5&J K U '2 "2 6 2 5&J  K U 2 6 2 5&J  K U  2 5&J  K U  2 # 5&J  K U 5 6  "!"#   #    #  %2   "!"#    # +"#  7 !    " &6 " 2  "!"#   #    #  %6  4" "!"#  2 #    ,"   "6  "!"#  7JK #   #   " # %    # "0# 6   % "!"# " ,# 7, !" 6 #   # 5 #  6  "!"#  6 # 5 " # ,#   F   "  #& ! , # # ,## !"  6 



























 " "!"#  " #   #  #   2 #  4" "!"#  5 #   " ,$   A   " #& ! "0+# ,##6  "!"#  $" 4 # 2 5 #  #  " ! 2 #   " ,#   B   " #,## "6  " "!"#  " # ' #  2

#   # 5 #   " ,#   @   " $" "6 















0 B@ 0

Ri-1

E0

R

C=G+

Ri

=F =C N= J= =N E1

Ri+1

R i+2

E= J= J=

E2

E3

=N A=G*

A= IF(A) B= ENDIF =E+

B= K(E) =

Ri+3

K(E) = E4

Ri+4

E5 F = G/H =F H= E6

Ri+5

Data Dependence Control Dependence

+6 B6-6 7,  4 #" #  ,## +",6  "+#  ## ($ +#2  2   2   6 



0 BE 0 $$

   "   

 8   " #

 ,"") !" " +" "  !46  ," #( "+# # +#6  +" !" (##+ "+# # +#  # ," !  ,"# 6 # " $#2 "+# " , # +# " , "#6 """2 4    0!00" ," J6+62 OB.2 B/PK  # H "0# # ,"$ $"2 #    ,## ! $" "!"# #  "+#6  !4#+ +" "# "0""#+ (" 4" "!"#6 " #9 /'     3   /! 

   *(## F  4" "!"#   $" # +#    %  (" 4"# #  , , 2 4"   , !"  # ! # #" !    # ! 6    !  !4#+ +", +"   "&  " !  +#  ##0% !"  +$# $" 2 ! # "  # 7, " "!"#  6 















"     ,



3    %        

     

   

    $   







 



  

      

          4  $%89      &*9

4 $

&, 

9 "$$$

-$ 3 !    



    



      

        $

 3



 %     

       



     ! 

&*$

  !        !   $   !         "$$$ 

 ¿ !









 





  

!  "$$  $

       "      #    $   

0 BG 0 5$ 



 %  $

+$ 6    

 3





 $ 3





&,      !

    ) 

      

7$      









     "$$  !

$%8$

&,     %   $

 ,7 !  +"  J M K !"  $"   , ! +" /   !4#+ ,7 C



/6 J K

-6 J M K



A6 J M K



B6 J K

2 7 ,   !  "       %     

$

1     

&, 

;  +#  )# 72 4 #"  # "&  2 &* # "$$ !"  $"  ,"$  ""# !  +"6  4 #" # # # 4  ,   7 !  "+# J662  " !   # #  "+# K2 4   !  $"  $02 # "$$ "46  +" 4  "   #  &,    #  4  76 % #  "   , !"  #  # "+ H" " " "$$ #   6 ,,   #  "  &,6 #2  , A #  +"2 # #" !   "  &, #   "  &, #  "#$ ,  6 "!"2  *(## F2 $# !  #  + " &   # ! # #" 2  4" "!"#  +"#   4"# #  "#$ , !" 6 "!"  4" "!"# #  #  %6

! 

































0 B? 0 Read ExR={} MDef={x}

Write

Null

1 P1

ExR={z} MDef={y}

2

P2

ExR={} MDef={x,y}

3 P2

P1 ExR={x} MDef={y}

P2

P1

ExR={} MDef={y}

4

5 ExR={y} MDef={x,y,z}

ExR={} MDef={x}

(a)

6

7

(b)

(c)

(d)

+6 B6A6 7, ! "0""#+ (" 4"6  7 ","# +#2 4#+  *(## J # 7,  K6 JK #" L4 +" ! +#6 JK 1", "& !" $" 2 JK $" 2 # JK $" 6    +" " #  ,"3   #! "!"#  +    "6 4 "!"# 2 # 2 ##       $" ! "  # 7# #" # 4  "   >"#6 70 , !  #" " ", "" ", " $" 4 " !   ,$6 ;   ,"+"#+ #++ #  ""  +$ +"#  "# " " 4  ""6 # " # ,0 ## 4  ""# ,"+"2 4 $" " "  &#4#6 # #2 4 " # " ""3   +"#  , $" " ##0,$ J  ,# "+ ,","  #"#H#K6 "!"2 " ," #    "" "!"# #+ Æ# ", 7,"# $ "" " #  # !" "0""#+ (" 4"6 +" B6A 4 7, ! (##+ % !" $" 2 2 # 6 # +" B6A JK # JK2  4" "!"# #  " !  +# A ##  %   +# A  4 ,   # &* ,#+  "$$ #6 # 





0 F. 0 +" B6A JK2  4" "!"# #  " !  +# A   %   +# A  # ,  &* #6 2:    /! 

1$#  "+# 2  +"   ,# "!"#6

"    

3        

$

   

      $ -$       !              

$

5$   %        $ +$ 3

                !   ,         $

7$     !

 ,        $  ,        $  /   ./0   !         )        !       $

 /      !        

;

       )     ! 8.

;

      )        9&       $

 

+" B6B 4  " ,2    # 2 4 # # #  ,6  " ,  (#  " "+# #  ,"H ,0 $  #+  "# J8K   +#6  , ## # # "

0 F/ 0

                         

        

             

 

            

+6 B6B6 ,# # ,$ "!"# #

  6

$"2 :6 ; "!"#  : # # - " ,## #  " "!"0 # # /6  !  " "!"# " ,## " # # # #    ,#  " /6 #  "!"# # - " ,## #&   "# ,$6 $0     

% $ $, " +" # , !  ,7 O--P ,"6 ,7   ,", !"  , ,"" ,,"#+  #$## # ,$ 7# ! " J662 +#K6  ,7 ," #+" " OFP #  " ," O-@P #  #+ #!""" !" +#"#+ #$#0 # # ,$ " 6 # " "#2  +#   "2 #  "+#   ,6

0 F- 0 $0

   !   

+" B6F +$ # $"$4 ! ," #!""" !" #"# #+6 ""# ,,# " 7,# # #" ""#  !" , ,0 ## !  &# ,"6  7,#  " # H   " ,"H#+ ,"  #! ,# "!"#2 #  "!"# " ##0   "$ #++6  "0+#"  " "#  # 70 # 0% "#" O-AP #  ,"+" "  "$ #++6 # 2  ,,# " ,   ,7 &#6  ," #!""0 "  # $, "!   "!"# " #  ""# "    ## "+   ,H# # "#!"# #  &# ,"6 Polaris Parallelizing Compiler

Applications

Fortran

Code Expansion

Idempotent Analysis

Multiplex Backend

Directive-based Fortran Code

Multiplex Simulator

Binary

Multiplex Compiler

Directive-based C Code

f2c translator

+6 B6F6 $"$4 !  ,"+"#+ #$"## !" #"# #+6  ,##  + #+" 4  "2 #  ,# ,"  ! 6 " "  !4 ,":  #+"  !"## #  &# ," OAA2 AFP6   # #" !" J","##K  ,  !"## #  #!"#   &#6 ;  "" !  ,""  $" ,7 # 1 ," # 4 " ,"  2  """ # OAAP   #$"

0 FA 0

+0$ #!"# J K !" ###+  #  #  "+# 6 "     ,(  ,## !  &# ,"6 % 7,#    #  # ,"$ " $" 7, !" # # $"6  7 $" #   ##2 # ##+ "+# !  ,"+" #2  $" " # #2 # " " # "" $"6 #  &# ,"2  ,"$ " $" 4  +#   , "+"2 #  7 $" 4     "  7,"#2 4   #   J+" "#!" #++K ! 1 OABP6  ,," ,(  ,## !  ,""  "  # # "  7,"# ," #2  4 # #  "  # # !  $"6  4 & " ! , "+" # 4#  " ,6 +" B6@ 4 7, !  7,##6  $"   "  # ##+ "+#2 #  $"   " # #6  4 $" " ",  4 ,"$ "!"#2  # 6 % ,#   7,## !"  "3  ,## 6 ;   7,##  ##0"$  $" "   #+   "#!"# J"#0 &#K # #4 $"   #"  "# "+0 ## #  "#!"# !"  ,## 6 !"  7,##2 ,# #   #   # !  ,##  #  " ,"H" #+ +" -6  " ,7 &# ##  #  "$ 4# #  B6/2 # # 7,  4# # +" B6E6 %  8#&#4# "9  " "!"# 4 " # #0  H   " ,"6  "$ '; 4!1" #(  "+#6 % 7# 1   J+" "#!" #++K  "" # ""   #  "   " "!"#6 # ""  ,  "!"# "   # !  ," , !"  ""# "2 4 "! ( $0 " ,# , # 12   , ,H#2 # 7,"# ##2 :, ,H#2 #"# #+2 #  +#"#6   (# ,2 " ( #&" #"   J 4# #  B6/K  #!

0 FB 0

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

%&*+ !*+ ! $ #% ( #%   "  !(( $((  '' $   ((  #% (  !  #%   $  !   #% (#%   %# 

+6 B6@6 7, !  7,##   " ,",""6

0 FF 0  B6/ ,# !"#   +" ,# 0# " "$ ,$ I

#&#4# I

""#  "$

 

';

5!"!!/  1" 3 5  

';

5!"!!/ 2  5

 

';

5!"!!/ !/  5

 

';

 ' !/ 5

 

I



 " #"# #+ ,  " #  7#  2 # +#" , (  "  " !"  "4" #"!6   &# ," #" , #"#  #!  "+# #  " "," O--P6 +" B6G 4 # ##   !" +" B6E6 $0

% &    

 ,$ "+ ##  ,$  # #  " 6 % $ 7#  (# ,$  # ""  #!  ,"0 " ,# 6 % $   %     &6   "# ," 4 7#  &  (#$  # #6 %#   &     ",2 !  (#$    #  " " #   "+#2 #   &  !"   ", +#"#+  ,$ 6   &  !" $   4" $6 "42   ",#  !4  "+# ,$  ,"6 !  "  "0& "  2 #  (#$  " "6 #  (#$  7   & +"#" 2  "   +"#    4" #   & $    "6  ,$  4  "  (#$ 2 # ! # ,#      &2 #  ,#   #"  ,$ 6 #

0 F@ 0

"#$#%  &!

%&*+ !*+ ! $ #% ( #%   "  !(( $((  '' $ ,-./ 012345   ((  ,-./ 61.7)8391:01; #% (  !  ,-./ 2 4  ,##  4   $  ,", #) #  " "" " #$"##2  ,##  4 #"$$6  4 # &  !  ! ,#  " +$#   ,"6 $1    

#  #2 4 ," )#! 7# $" #" 2 $0  ,,"# !" #+ ,# "!"# # ##0,"H 2 # ,"# ,"!"# " # ,, #+ " #+ +" #   +", ! +#6 $1

  ) 

%  7,"# 4 4 #"  ,"# ! #4 ," 0 #)  # " ,$ "+ $"L4 # ,$ 7# 6 %    #   0" " ! ,76  A6/ # ," A 4    #(+"#6     !" 02 0!0"" ,"0 "  " #  ,""  4# / ,$ "+2 4  & ,   ! " "" "$#+  ##0,$ "+6  ," # "!"# ,#  !" " #"#   "4"  " 7#  "# ,"2  4  ,#+  ,$ "+ # ,#+   " #  ##0,$ "+6  # #$## ,""2  "#     ,"$ & !" $" +#6  ," "#!" # ,  ,"$ $" #  ,"0 +# ,"$ & #+  "#0 !"6  A6- # ," A 4  $" !,?F O-BP # "! O-FP #0 "&  4   #,    # "  6 % $  4#  #+ "###+ #"& # !$" ! " # 6 $1

2:    /! 

#  #2 4 (" $  ,,"# !" #+ ,# "!"0 # #  ! " #"&2 4 " 7,# # ," A6 72 4 ,"#

0 F? 0 ,"!"# " # "$#+ ,# "!"# !" ,$ "+ !"  +", ! ##0,"H ,6  +", ! , 7 "+ ,,"0 # !" #+  ,( +" ! ,# "!"#6 #  #" ! #  #    Æ ! #+ #$  #2 4 # ,"# " # #$ ,6  ,2 4$"2 " ","#$ !  " !  ##0,"H  #6     !   /!   < ' 

 9:    )  

 & )# #  4"&  4 !"# !   "!"# " +" # #!  ,# # ##0,"H  #6  #4"  )0 # 4 $ 7" !"   #"&   #   #   ,"H  " ,"6 2   ,"H  # " 8##"#+9 !"  ,# ! $4 !  2    "!"# #  "& ,# J4# #  ?K6 +" B6? 4  !"# !  "!"# # ##0,"H  #  " #  4     ,#6 # E  !  /A #"& " # @.N !  "!"# " ,#6  "+ !"#  "0# ,# $"6 # !" ,"+" "   # !"# ! ,"$ ,# $"6  ,"#    +" ! "0,## ,# $"   +#(# !"#  F #"&6  #"& 4 !4 " # ,# $" ! # 4 ,, +"6 &!9 5 # '0 " ! 0," ,"+"2 4 5  &#4#   + #"" # Æ  # H6 /'  #  #

+" B6/. 4  # ! ,2  !" " O/EP6 % "  $"+ # 7 # #  3 # &!2 #   4# # +" B6/E6  $"+ # 7 # #  ,  "  !   +  ,## ! " 2

0 @F 0

+6 B6/F6 $" $" #+  "6  07 4  " ! $"    7# 6

+6 B6/@6 *"# ! ,# "!"#  $"  ,"!"# # +" B6/B6

0 @@ 0

JK

JK

+6 B6/E6 $"+ # 7 #" ! # #  6 JK % ,# "!"#6 JK % ,# "!"#6 # "!"2  "# ! # ,# ,"$  "  6  (+" 4  " #) "  # #    )"" # $"+2 #   7 ! #0+ # ' '  # ' '0 06 $4    

% $ $"  #4 ,"+" ,","  "!"# ,#  0 $ ,$ "+ $"L42  " # ! ,$ 7#6 ,# "!"#3 & !"     #  # 0,## $# # " 4#2 +   ,",+ #"" $6 ;  # #"" $ " $# "" # ,",+2 ,# "!"0 # # #  "& # ,$ "+2 +  "!"#  ,"" #""6 ,# "!"#2 $# !" ##0,"H ,"+" #2 # "  ##0,$ "+6 ; ("#+  ,# "!"#2 4 "  # !" ,$ "+ , # "+ "2 #$"#+ " ," 4 #""#+  $"L46 % (#  !" !"4"& !" ,# # ,"#  #$ ,"0  ,$ 7# 6 % ,"$  #" # Æ# #0 # !" "!"# ,# #" " 6 %  ,"#  ," +" #  ,##   ,# " "!"# !" 

0 @E 0 "4"6 7,"# " 4  !" " #"&2 $" @.N !  "!0 "# # ##0,"H  # " ,#6 !"# ,# # ,"   4  #  " #0 # H   ," #)6  ""# +#"# ! ,"   , ! ,H#+ ,"+" # !" 4  # !  ,#0 # #  ,"$#6 %  #  ,,  # "+" ,"+"2  "+ #" ! ,"+" " ""+" # #"6 !"# ,# ,,   $" ,"+"6 % "" ,," W #  !" !  ,", ,"0 ,$ 7#  W  # #4 ,H# 4" #$## ," #) ! " 6 #  ,"2 4 4  ,"+" #  #)    " #"# 4  # #   ,$ >"6 #  #7 ,"2 4 4  ,"3  +#"# #)  7,  7, # , "0$ ," 4#  #+ ,,#6  :" >"# ! 4 #) "   (" #)   " 2 66 ," #"# J,$ # (#$ K2 #  # #)   ,"+" +#2 66 ," " J7, # , "K # ""  #!   4 #   ,$ >"6

0 @G 0

0 @? 0

            



 

# ," A2 4 $ "#  , #"#+ " H +#(# +"  ,"!"# ! ,"H ,,# # ,$ ""  ! ,$ "+ $"L46 # ," B 4 #"  #4 ," "  #  # $, # +" !" #"# #+ # ""  # ##" >"#+ ! ,$ 2 # "#+  ,$ "+ $"L46 % +"H  "  #  ,$ 7# 4  # #   ,$ >"2  #    # ,# "!"#6   4"& #  (#0+"#2 "!"#  "!"# 2 "&#+ 4"  " "!"# #   >" J ,$ K " # + "   ##0,$ "+ J (#$ K6 # 4 ,",  ,"0 ,$ 7# JK 2 4 4  ,"  #  ,# ,","   "4"6 #  ,"2 4 "  " #  !" #"# !  6 %"  #) #  ,"$ ,"   " 2  #"0  #) #  ,"   ,"+" +#2 66 ," " J7, # , "K # ""  #!   4 #   ,$ >"6 %  4  #+"# ! !"## # &# ," #   +#"#  !" 7, # , "#+ 4#  #+ ,,#6 0     

% #" #" ," #)  "  ,$ "+ $"0 L4C   +#"# !" ,$   #+"#+  ,"H#+ ,"

0 E. 0 4   +#""  7,  7, # , "0$ ," #  #+ ,,#6 %# ,#+  #+ ,,# !" ,$ 2  ," 4 7, #! ,"  #6  "##+ # " #"  ,$ "+#   ,"  # "#   # #  7 # ,"6   # !   ,$ "4"  "# 4" " #  ," #+  ,$ "+# #  70 ,2 66 ,"H    6  ,"0#( ,"  +# 4  7 #,## "  #"#H ,"," 2 662 "#    # ,"0 6  #) 4"& #  "0+"# $2 "  "2 "&#+ 4"  "  " 7, " ,6     !" " # "" ," ,2 ,7 O--P6  ,", ,," # "  ##" ,## "&#+ #  ,"  +#2 4  # #"# $" ! ,$ 7#6  4  "  ,$ "+ $"L4 #    " !"6   "2 ,,# # 7, "0+"# "0$ ," # ,"0 #( ," "+# 4  H !  ,$ "+6  ,0 ##   # " ##0"$ !"  "4" # ,"6 % # "4" #  ,," ,# !" , "#+ # ##0 ,# !" 7, "#+ O--P6 #  ,"  +"#   ,"+" +# !" 7, "#+  # #$$  ,##   "4"  # ,," ,# #  "+#6 #  ,"2 4 " #   ," #) # ,#0 #  +#"  !" 7, # , " 4#  #+ ,,# !" ,76  #"# ! " ,," "  !4C J/K % "  ," #!"""  #+"  " ,"H#+ ," OFP 4   +#"" O-@P6  ,  ,"3 ,"+" #  #!"#    +#"# ,6 J-K % ,"#  ," "    " 70 #   ,  # "# # ""  "  $" ! 7, "#+6 JAK   +#"#  7,  " ! 2 4 #

0 E/ 0 " ,": $ ,"!"# # ," ! ,,#6 # # F6-2 4 "   +#"#  !" ,7 O--P6 ""# ,,# " # H   " ,"H#+ ,"  #! ," ,6 #2  , " "#!" # 4 "#$ ," !"   " ,7 ,C "#0 # "$0 ""# 6  "#0 !"    +#"  7, "   ! 4 "#C J/K  "#0 !" 4 "  $ " 4# ,"$ & ,2 # "&#+ ,## 4# "0,"$ $"6 J-K  ,## "  7, " #  , #2 4   #"    +#"" "+  ,H#6 " 7,2  "#+ "# #  )#  ,H# #" L4 ,## " , "#6  $#+ !  "#0  "#!"#    +#"# $"2 4 " !"  !"& # J "# K #""#+ 7# ! "0 # 0$ #"#6  "$0 &#    #"  " # #  +#"#6 2  "0 +#"  " "#  # 7# 0% "#" O-AP #  ,"+"6 # 2  ,,# " ,   ,7 &#2 4  # 7## !  " ," O-@P2 # #& 4 " " ""6 % (# # #"! 4#  ,"H#+ ," #   +#""2 # "  ,## #  ," ,## # 6  7, "#+ # #" 7, "#+ $"6  #0   7# ! 7" #"# #  , " "+# #  " #  4  7#  4# , # 7,6 " "  # ,# "# # 7, 2   4# , # 7, 70 #  ,"# !"  ,"!"#6 # F6A ,"#  ," "2 4 4    " , " 7, "  ,  # "#0 6 " $# ," #) #"  "" !  "4" #(+"# #  ,,#6 ! #Æ# #!"#  $  , 2 # # #"# !##   # ""    "   "#0

0 E- 0 6 % 4  " " "  7, "#+ $" +#(# # ,"$  ,,6 # # F6B2 4 )#! " #"#  "  !  ! !,?F # # " "! #"& #+  !  ,# ,"0 2 4 " ,": $ ,"!"# # ," ! ,,# # 6 #+ ,"!"# "# 4 4  "  +#"#  "  ,0 $ 7# $" +#(# 6 %  4    "#!"# !" 7, "#+ " ,##6 # #2 " $# 4  ," " "  7, "#+ $" # 6 # 2  ##   # # F6F6 0      

 9       = 

#  #2 4 "  ," ,##  #+"  " ,"H#+ ," 4   +#""  7,  7, # , "0$ ," 4#  #+ ,,#6 0

   

+" F6/ +$ # $"$4 !  ,"+"#+ #$"## !" " 7,"#0  ""2 ,7 O--P6 ""# ,,# " # H   " ,"H#+ ,"  #! ," ,6 #2  , " "#!" # 4 "#$ ," !"   " ,7 ,C "#0 # "$0 ""# 6 72   " "#   ( 0% "#" O-AP #  ,"+"6 # 2  ,,# " ,   ,7 &#2 4  # 7## !  " ," O-@P2 # #& 4 " " ""6  ,"  +#" #" !" ""# ,,#  ! 6 4$"2  ,,# " # ## " "#!"6  " ,"  ",# !" +#"#+ ,##0!"  !" 70 , "2 #"#+  " # !   +#""2 # #+ 4"   7, " , "#+  # "6   +#""   #  #!"# !"  " ," # +#"  4  "4"   "  $"6  " "" ,"$ " #0

0 EA 0

Applications

Fortran

Directive-based C Code Subroutine-based C Code

Multiplex Simulator

Binary

automatic

Polaris/ Multiplex Backend

Subroutine-based Code Directive-based Code

f2c translator

Subroutine-based C Code Directive-based C Code

Multiplex Compiler

Multiplex Thread Libs.

manual

+6 F6/6 $"$4 !  ,"+"#+ #$"## !"  ,7 ""6

+# # " 6  F6/ "H  ," ,##  4 $, #  :$6  !4#+ # "  ,## !  ,## # 6 0

   

 9    >

#  #2  ,## !  " ,7 ,,  0 "6  ,7 O--P ,, !  " ,"H#+ ," +#"   # 4 !"C "#0 # "$06  ,"" >"0 # 4#     "#0 !" J/K +"#  # !  ,## # 7, "#+2 # J-K ,"$  ,"$ & , !"  "6  "$0 !"   !" #"#+ , " # !   +#""2 #   # $, !" " "" ,",  #! $" # ,$ 7#6 #  ,,"2  "#0 &# ! " ,7  #  "M,7M2 #  "$0 &#  #  "M,7M*6

0 EB 0

 F6/ ,# ," ,## # " :$6 %

%  

& 

&

 #

'$   ( )          #

   

                        #      ( &                    

*# 

   ( %          

 

 

+  

   $        



         $     



& 

&    , -$  

%  

& 

&    % -$  

-$  #

            

 

   

+   #

,   / $0        

 

         

1

&             

.

  

0 EF 0 ) : ' 

"M,7M # ! 4 :" ,##C  #  "# 0 )# ,"+" #  ," "#0 !"2 #  "# "" !" ,#+ " "+#  7, " # #+#+ 6  # ,0 ##  7,# # # F6-6B6  ,"+" "#!"# ! "#0 &# " ,"!"   ( $"# !  "  &# OB-P6 % $       "  "#!" ," , # "#6  , " ", 4    "2 4 #+  & ,#" # ,  " "+#  7, "6  !4#+ +$  +0$ $"$4 !  +"    "M,7M ,, !" "#!"#+ ," ,6 "    

1        :; :4

-$ ;)              $ .            $ 5$ 3       !         )!  !"51$ +$            $ 7$             )   ! '11"! ? !/ "'  !   !       

  $ 2 # ;)K2 #  (! # " "+#2 ! $2 " , #  # !" ;@M/@ #  ,"$ &6  ("  !  ,"+"   #" ! "+# # ,  "+# #  ,"$ &6 +" F6// 4  # !  "+# , !"  + &  ,"$ &6 4 "+# " ,  "+"00"+"2 #  " 4 "+# "+" J;>2 # ;)K " , !"  &6    #   (" 4 "+# J;= # ;.K "  !"  !## ,#" #  #" ! "+# #+ , #  #+ #2 4 " # # #   #6  , ,"# " 7 ,$ # ,"  #H  $"6 " & #+"  #+  !"& " $#+ " 4# ,"$ & , # #  ,  " $" #   "3 & ,6 #  " "" O//P2  , " " "   #" ! ,"#+ # 4 #"##+  & ,2 #  ,"" ##  4& !" # ,#   #7 ,# #  16  !  # ! # 7 "6  & #+"  # , " $#+  4# ,"$ &2 4 #     # 7, "6 ;!" !"&#+ 7, "2  & #+" "  & ,#" !  ,""  4# # +" F6/.6 !" 7#+  B% J ," ,  K2  & ,#"  ""   ½ + 

          +                 

0 GG 0

  #: !!  * #

% *#:!& #" & % *&:!& #" & % *&:!&@   *"%:!& M

% L #" & % "%!:!&  #" &

'* !!  %F! #%  *' '* #$  !&#%" *' '* & "%" ,C ,A *' '* "%! !&#%" $!" !"" *'

%"%:!&L

'* "%! !&#%  *'

*#:!& R M  (L N#8F!"L   #" & % *-./:%!"O PC #" & % *"%!:!&E *#:!&  + * " #" & %L Q '* "% ! &$! "%!  % % ! % ! " ! *' !"S"I , K &$:"%:!SL ,# !!  (L N#8F!"L M '* &% !  !% "%!  % *'  :"%:!  -./:%!"O PL '* !"" & %F  !% "%!  % % ! "%! & "% *' !"SI , K  :"%:!SL '* #%  $ *' #&:!& &:!&@ *#" & % *"%!:!& *#" & % *"%!:!&+L '* "% ! &$! "%!  % *' !"SI , K &$:"%:!SL Q Q

%#L

+6 F6/.6 " 

 

!" 7, "6

0 G? 0

High

pdofunc

space for arguments

num_argc

$4

$5

$6

SP+20+(*num_argc-4)*4 SP+24 SP+20 SP+16 Global SP

$7

data copy

space for arguments

SP+12+(*num_argc-4)*4 SP+16

$4

$5

$6

$7 Private SP for Processor i data

Low

+6 F6//6 "+# , !"  + &  ,"$ & # 4# "+# "+"6

0 ?. 0 + &6  #" !  !"&      #" ! ,""6  7# #     !"&#+  , " 7, !" , #+ "+# # #+#+ & ,#"6 #+  "$ J; *$$$K " ," #"  " " #  " ","6  "4" 0   " "," # 4  7#  ,##+ #  " 6  ,"#   #,     #  ,7 "" O--P6 # " 0$ "+" ,##  #  #"#+ #"#  "  $ # 0$ "+"2 4 4  # # A6A6 % ,#  ""   $2  4  0$ "+"  ,0 "" "+"Q 4   #  # "0$ "+" "# #+  B% !##6  " !" , "#+  >"# !" 7, "#+ # !"&#+  4# # +" F6/-6  , " " !"&   #" ! "# !  , # ""  #H  "0& ,# 6  , 2 4  # &#4  "# "#  7 # 4 ,""  ! "3 "0&6  #""  """ ,"$ & ,  +#  ,""6 # ""  $  +## !  ,"$ & ,2 4   2  ! #  6  #""  "+ #"# $"6    #   ## !" B%   # ""  ,,"  :,    !  ,6   ?   

4 "  !## " ,"$  4# # +" F6/AC  ,*  #  B ,*@6  !##2  ,* 2 ""#  ,"" #(0 # #"2 #  !##2  B ,*@2 ""#  #" ! ,""6  !## "  !" #+2  7,# # # F6-6-6 00

% &   

 ,7 "  (  ,," " ,"+"#+ 6 "2  #"# " # 7" " (  #"#  #" 0 " 4 4    # 4  "6 #2  "

0 ?/ 0

"%#% M

% #%F!"  %((( !((( "% (((L Q #: ::L   #:    % %

% #" & % #" & %  

* # *#:!& *&:!& *&:!&@ *"%:!&

'* " !  %F! #%  *' '* #$  !&#%" *' '* & "%" ,C ,A *' '* "%! !&#%" $!" !"" *'

% L #" & % "%!:!&  #" & %"%:!&L '* "%! !&#%  *'

*#:!& R +M  (L N#8F!"L   #" & % *-./:%!"O PC #" & % *"%!:!&+ *#:!&  @ * " #" & %L Q '* "% ! &$! "%!  % % ! % ! " ! *' !"S"I , K &$:"%:!SL ,# " #!%  '*  %F #$  %!% " *'  #: ::  %(((L N#: ::!(((L #: ::"% (((M '* &% !  !% "%!  %  ! #% "" *'  :"%:!  -./:%!"O#:%F!: PL '* !"" & %F  !% "%!  % % ! "%! & "% *' !"SI , K  :"%:!SL '* #%  $ *'

* # &:!& &:!&@ *#" & % *"%!:!&  (M '* "% ! &$! "%!  % *' !"SI , K &$:"%:!SL $!L Q '* "% ! &$! "%!  % *' !"SI , K &$:"%:!SL Q Q

%#L

+6 F6/-6 "  $% !" , "6

0 ?- 0 &$ #:%F!:  % #:%F!:  #:%F!:  ! # ,( , ((  ,@  #:%F!: 

B &%  %F!  ! #% %  ,

&$ #:#:%F!" % #:#:%F!" #:#:%F!" ! # ,( , ((

B &% #$  %F!" ! #% %  ,

 ,@  #:#:%F!"

+6 F6/A6  !## !" " #+#6 ," #  7#  #"#   "," !  "6 "2  "4" """  #"#H#  ,#6 % #  """  #"#H0 # 4# 4#+  7#    ,"  # +"#  ,##0!" 4# , # 7, "6  ," +"#  # ! ,## # 4# 7, " !"   ," ,6  " ," #$&  """  #"#H# 4#$"  7#  !  " #+6  # !  """  #"#H#  $" ,C !  7#  !  "  >"# !"  !   "2 #  " #"#  # 7 # "6   "4" ,## !"  ,7 ""   #  , !  ,," O--P6 0 )    !       

 7, "#+ # #" 7, "#+ $"6  #0   7# ! 7" #"# #  , " "+# #  " #  4  7#  4# , # 7,6 " "  # "# " 7, " , 2 4 $  #"  !4#+C

 , 7# 7   #" ! #"#  #  )#

,"+"6 7, 7# 7 # #"#2  7,# #

0 ?A 0 "#+ ! ,$ 2 # "  ,$ "+ $"L46 % +"H  "  #  ,$ 7# 4  # #   ,$ >"2  #    # ,# "!"#6  4 ,",  ,"0 ,$ 7# JK  4 4  ,"  #  ,# ,","   "4"6 # ," F 4 #" #" ," #)  " ,$ "+ $"L42 4    +#"# #) !" " # "" ,"0  ,2 ,76 % #+"  ,"H#+ ," 4   +#""  7,  7, # , "0$ ," #  #+ ,,#6 % "   +#"# #) # (#  #"! 4# ," ,## # 4   ,##6  4 4  ," "   " 7, # , "#+  ,  # "#  " $" ! 7, "#+6 #  ,"2 4 )#! " " # !" !  !" :" #"# !  2  " # ," /6  (" #"#2                     #

2 4 #" # $, # ," B6 # # B6B6/ 4 +"H  "  #  ,$ 7# 4  # #     

0 /.B 0  ,$ >"2  #    # ,# "!"#6  4 $, # +"  #!  "0""#+ (" 4" J%K  # 0 # B6B6-2 4   4"  4 " #  +"#   4"# !"  # !  ##+ "+# 4  ,"#+ " 6 % !# 4 ,"# "" # !" ,"$ !"  "!"#C J/K  4" "!"#  ,# ! # # !    "0""#+ (" 4" #   #  #& ! # "0+# ,##6 J-K  " "!"#  ,# ! # # !   #  #& ! #  ,## "   ,## #  (#$ 4"  4#  +#6  4 !" ,"$   ,# +" ,"0 "$  ,"+" ""# # # B6A6- #  ""# ! " +" # # B6B6-6 # B6F 4  ," #!""" !"  #+2 #  ,# ,"  ! 6 # # B6@6- 4 )#(  ,"!"0 # ! "  # " ! ,,2 $"2 #  #" ! ,# "!"# #+ " #6 " $# 4   ,", +" # " ,$ "+ $"L4 +#(# # $# ,"$  ,, # ##0,"H  # # # B6@6-6 " "  4  !" " #"&2 $" @.N !  "!"# # ##0,"H  # " ,# #  "!"# " (  (#$ # + ,"H ,0 ,#6 #  "0#     ,"# +" #+  (#$ +" #  " ,,#6  ,,  ,"$  ,  /FB6GN # FA6@N # $"+ # " " ,,# $"  0!00" ,0 $ # 4  B'; * ,$ "+6 # 4 4  " #) "  # #  #  $"+   )""2 # #  7  #0+6  # #"#2                            2 4 ,", # # B6A6  ,"07, ,$ 7#    ," #    #"# # ""  #+  "!"# 0 "6 #+  "2 4 !" ,"$  ""# !  ,"+"

0 /.F 0 # " ,", 6 # # B6@6-2 4 4   #H# !  ,$  "  7#     ,$ "+ $"L42 # (#  ,"$  ,"!"# +#(# 4  H ! ,$ "+ $"  "4"0# ,$ 7# J K    4  # " ,": #  #  #  "6  " #"#2                       

 2 4 4# # ," F6 % ,"# 4  ,,  " ,"H#+ ,"   ,$ 70 # # +#"   # ""  7,  7, # , "0$ ," J K 4#  #+ ,,#6 %  4 ,,   " &# # # F6-6-Q  "#0 !" #  "$0 !"6 % "  +" !  "#!"#2  ,## #  #"! 4   +#"" # 6 # # F6-6A 4 4  ,## !   +#"" #+  "0+#" 6 % 4  ,## ! "  # # F6-6B6 % )#(  ,"!"# ! "  +#"0 # ,"#+ 4  0!00" " ,$ """ # # F6B6 " $# 4  "  +#"#  ,"$  ,,  ,  G/6EN # -@6FN # $"+ 4  /@'; * ,$ "+2 #  ,  /FF6/N # F.6-N # $"+ 4  B'; * ,$ "+ $" ,0# 7#6 4$"2  ! $" ! 7, "#+   " #+# # # #"# $" # (#0+"# ," ,2  ,, ! "   +"  ,  -.6FN # /A6@N # $ ,$ "+ #(+"# ",$ #  ,,#6 # ""  " 7, "#+ $"2 4 #"  ," "   " 7, # , "  #  # # # F6A6  #" $" !"  >  ,$ 7#   ,$ "+ $"L42 ,##2 #  4"& ! # 7, "6 ! #Æ# #!"#  $  0 , 2 # # #"# !##   # ""    " 7#   "#6 % 4  " " "  7, "#+ $"0

0 /.@ 0  +#(# 2 # ,"$  ,, ,  /G6AN #  B'; * # -F6-N #  /@'; * "" $"   4 "6 #   #"#                       !      " 

2 4# # ," A6 % + #+"  ," ,##2 #  ,# ," 4 !  # 7,#+ 6 % #( #"! 4# ," # ,"#  ,## #) # # F6-6 "2  " ,"H#+ ,"  + #0 +" 4   +#"" !" " # #  +#"#6  " ," ,  ,"+" #  #!"# # " !"C "#!"  !" 7, "2 "$2 # #"# !## 6  " 4# # 0 # F6-6- # F6-6A6 #2  !"  "# #  ,"+"   ( !- "#" O-AP2 #  ,"    +#""6 "2   +#"" +#" #"  ,"$  ," #!"#   " # "  "   "4"  "  #"# $" !  ,$ 7#  4# # # F6-6A6 % # (  "4" # ""    ," #!"# # # F6-6F6  !  ,# ,"  7,  #   " 4   "  !  ! !,?F # # " "! #"&2 4 # !  " ,": $ ,"!"# # ," ! ,,#6 %   F... # !  !"  ,7 ,,2 # E.. # !" ,# "!"# #    ,##  !  " ,"6 # 4   A.. #   " ," !" " #2 #  /.. #   0% "#"  "#  "0+#" ""# ,"+" # 6 % ,# F.. # !  !" " "" # -.. # !" ! #+  "6       

0 /.E 0

" 



#  ,"2 4 # " ""  "H#+ " #"# # #+ !" 4"&6 4 )  #

  ! ,$ 7#  #  # "" # ," !" $0 " "6 0!00" ,"" ,""  #" ,# #  !" ! "# ,"#  # # #  #  3 ,"" ,6 #  ""# #+ ! , #+"# 4  7# ""  7 # , ,"" "   #$## ,""6   "4"2 ,"H#+ ," $  +#(# ,"+" $"  , # "2  # #+ 7 4# #+ ," # #+" ,,#6 ,0 $ "" $ # ,", # ""  "$  ," !"  "# ! ,"$#+  +"#  ,"+"  ,## 4# # !  $   ,"6 4$"2 #"#  &  ! ,0  #) !"  # #" ,## "&#+2 >"#+ ! #"#  # "0&  ,""$  )# # !  ,"+"6 # ""  ,"$  #2  ,# #+#  ,$ "+  #0 # #" ,$  #  " ,# " "$6 % !#  ,$ "+ $"L4    :" ,"!"# ,#6  ," #) " ,"#  "  $"6 #  2 4  4 ,"# ," #) #  ,"+" #  #   +#"#  $ " +   ," ,  "4" "  #"# $" # ,$ 7#6 % $, " ," #)  #  0!00" ,"H#+ ,"2 " #  "  +#""6 " " !" :" #"# #  6  (" #"#

0 /.G 0  "   ,"+" #  #)2 #  # #"#   4 #"  #4 ,$ 7#   #  $, ,"+" # 6  " ! #"# "  4   +#"# #)6 "2 4 #"  #4 ," "  #  # $, # +"  #!  "  4  # #   ,$ >"2  #    # ,# "!"#6 % !" ,"$   ,# +" ,""$  ,"+" ""# #  ""# ! " +"6    ! " &#4+    # 7#+ ,,"  $, ," #)  #+ "  # ,$ 70 # 6 """ 4 "+  " #  # +" #  ,,  $" $ ! ,$ # !"  #"# $   " $2   ,""  ,""6 % 4   ,", +" # " ,$ "+ $"L4 +#(# 6 %  4 "  !" " #"&2 $" @.N !  "!"# # ##0,"H  # " #(  ,# # $# ,"$  ,, # ##0,"H  #6 #2 4 ,",  ,"0 ,$ 7# JK  4 4  ,"  #  ,# ,","   "4"  #H  ,$ 6 % ,"$  ""# !  ,"+" # " ,",  #+  ,# "!"# # 6  #H# !  ,$  "  7#     ,$ "+ $"L42 # (#  ,"$  ,"!"# +#(# 4  H ! ,$ "+ $"  "4"0# ,$ 7#  4  4  #  " ,": #  #  #  "6 "2 4 #"  "#!"# # +#"# #)  7,  , # 7, "0$ ," 4#  #+ ,,#6 % ,"# 4  ,,  ,"H#+ ,"   ,$ 7# # +#"   # ""  7,  7, # , "0$ ," 4#  #+ ,,#6 # ""  7,  7, 2 4 ,# 

0 /.? 0 "#0 &#   ,, !  " ,"H#+ ," # ""   ," +"#  ,##0!" 6  4 ,#  "$0 #"! # ""  #" # , " # !   +#""6   !   +#"# #)   !" " # ," , """2 ,76 " $# 4  "  +#"#  ,"$  ,, ,  G/6EN # -@6FN # $"+ 4  /@'; * ,$ "+2 # ,  /FF6/N # F.6-N # $"+ 4  B'; * ,$ "+ $" ,0# 7#6 4$"2  ! + 7, "#+ $"   " #+# # # #"# $" # (#0+"# ," ,2  ,, ! "   +" ,  -.6FN # /A6@N # $ ,$ "+ #(+"# ",$ #  ,,#6 % #"  ," "   " 7, # , "  #  #  #H  7, "#+ $"6 % 4  " " "  7, "#+ $" +#(# 2 # ,"$  ,, ,  /G6AN #  B'; * # -F6-N #  /@'; * $" 4 "6 "2 4 "  ," #!"""  #+"  " ,"0 H#+ ," 4   +#""2 #  ,  ,"3 ,"+" #  #!"#   "4"6 % + #+"  ," ,##2 #  ,# ,"  !  # 7,#+  # #+  "2 4 " ,": $ ,"!"# # ," ! ,,# # 6 % #( #"! 4# ," # 4   ,##6  4 4   ,## !  ,## ! ,"6 4 *    !   3 

# ,"#+ "# !" !" 4"& ++ $6  ,"!"# # ,$  + ,# #  ,"3 " #   4# # ," A # O-@2 A.P6 "  4  #  " ,"H#+ ,"  ,"0 H # ""# ,,# #  # H  ,## $" 4 #              .

0 //. 0 ,,#6 # ""  7H  #( ! ,$ 7#2  $0  #7 , 4    ! " #  # #+" ,,#6 #+" ,,# $ " ""+" ,"+" "" # " , # , # ""# ,"+"6 2 ,## " #&#4#  ,  #  6   ,"#" ,2 4 #    "" !  ,,#2   7 ," OB@2 BEP # ,"+" ""6 % #  $,    7" ! #!"# !  ,,# !" ,$ 7#6 # 4 #!  ," # "4" #)  7,  "0$ ,"6 +#2  ,"!"# !  ,$ 7#  + ,## #  ,"3 " +#"#6 # !  + ! ,$ 7#   "$  ," !"  "# ! ,"$#+  +"#  ,"+"  ,## 4# # !  $   ,"6

4$"2 # ,"3 ## H  #2    Æ   " Æ#   ,"3 #!"#  # Æ#6  ,"( ,# #  # !    ,"$  ,"3 " #  #+ "# #!"#2   ,##2 " 0 ,"#2 # " H6 % #  #!  ,$ 7# $" 4 ,"!"#   "   " #6 # 4 #  $, # #"! 4# "# #!"# # ,# ,6 +      .

" # !   #  #         

%  7## ! " ," #!"""   #"# #  !  ##"2 4 # ,,  ,"," ! # ,# "!"#   !4#+ ," # "" 6 .

 # ,$ 7#    #"# $2 ,""   I" ) J K   !" !  ,$ "+6 # ,# "!"# #

0 /// 0 ,   2 # ,# "  "  # 6

  ,$ #   !4"  !" "$" !" ,#0

# $# O/-2 BGP6 % # "  "$" $" #+  0 ,# ,","   $ !  ,# "!"#  +"#   ""   # !  7#6

 # " ,# #  "  #" ! ,$ 2

4 # ,,  #)   "# ,##   #H  $"6

0 //- 0

0 //A 0

    O/P 6 +"42 6 6 "&2 6 %6 '&"2 # *6 ;"+"6 & " $"0  C  # !  " !" #$## """6 # 1 5?  3           35?2 ,+ -BGW-F?2