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 #" 404# ,"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 "$" #  ," "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  ," #!""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 , !"## # #!"#  ; "" ! ,"" $" ,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  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  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