ࡱ> 24+,-.3`!Oε@*  z7Y@uxVkAMڦDLCC?puZڃ䦇lOQP HݻBNzO%ГDlc7|`#̼7{fޛ\34_"c p"$.FhbeLFY:J3`L5ՔPSJ^Q N׀qvL L)~edm0 2~iMF);eoϵSo4BzN OYhA[Oibl}'3fr g~AtuB{.(լAhsY*8s~[C741=2Riʈg&ډI6FG‹'U+6%c^HU, ]⢡s/:<E8fFts(e흽*{坭*B `FlX@-l'aNy8lRqc^Bmmm|!m 7c9'PO*bNN&Oݙኊ`\nga *jGQJNƥ * lp^&q]guźC56^T)|MGys(,`m4|1_t{"0K*gZuHHeN y4QZAv.^DnlR/Ub _T3[ʭkS.hԡ"+$G{W811(r팝pUZJ~t =Tj)MՒj/4h1w<_ 1`! ju{o{: j`hQ xY |Uř33]-Zt)P`Bp~`Reyqih4S;=W9\;4(kpӀ20+#󃙶ɲ[gs8{%V%U{ H)0/X2hH_2xmҟ "0R6͢j6xY,+aȰhfQ\m3̟x3x3JvEi䅡`9pxkc{e&~nV ˱ܺ>_?׍nLrx=V@$k,(A/g9+W#n]+c/ee9ӭtk^guX4nH)옽]Ϗ^{*llK'.zOU<{ }<ejAmʷd-EMNe ,N-WPyH!#E2QFJ-{"9G*UJMDhXplw+`=Ov>";eg( >ݓDɒz]XsTUҭYfݮ!EDO(l-$"O++;rVIT&7yR1*{ }ǨjUSU*Rt,VytU+"V_j H]bޑߡ\Աfdj cp0}* ~5hFmr{ ְ [G#؏HVɡ 寰{Ş⒯9|1kR ŷ< N ra$ Aȃ0 *G%l~of6~X`p~o8 i.*$cD aw >g/I Nclhd0pxLof4D VS6?m.Y#+pœЇB4)4&#gѕFt, xЬ\kD,5D$6d9$] __45WU]b5A2F/ Q]X!W-t> ai0 -C" _ _R>o OAՈ1y>_eiND be|/4cd)b+n׊H]5hQ_E78>c Cv،j:lEGg۰RWa9k1Z /EUrخ 5S1N)pV\ z"E#.6bO5/hR$oGm}\IJvҼUr{kQWPͫ#xW5矜[gݳFR*ʖ"%zvٍz:A_꾖KI9f/7:N 0"9k܉P>/xȞ$ey)2u!w!IX5vphs\kcTC+CY̊9j{+Z=fk]4I0'Pp,\3ZIJ3:w?3NB:"9^s|,]l޺Kj6}~7xs;tG޽? *K7κ&BJ*a̟UYɬ_$d8;,Oŧ(eFR韍3r3Dgx=k`_+ ?PsvQ7wD/(Ñj"^T]q0 *%F!֎u ǵHӟg޵5юъtюvD``ك.JzC==Jxv0FIsgϪ/rW͎'"C ]TQ ҋN'd0C=+jɋl^XPiC(sVnw۷t*yfuv/:Q%QW=vW,֊¬;ŏSgNkE;xp;nzYnǗ|6n9 %NqE38{}@$;uзYhZt'vYak[.3*UpZ*6uY/;U\ʳZgI>)rT@| .B[D?%b̑3qN g̔49KuʉMѤ~!"\f 0×ZMWhRk7jb (vu[RnUͺm;|JW֩ɾYU|mL6v g)"a1␜+ȕr"M2*_ʍ4Yʕ_rYU.TyjrU2!UD"q-&>տUYD@ϗY tng|d ,dc`;XZ2\X์3jpۄgka1{؉:3O>+oeO}\[ D ǯ| ,XsF#@,rX?p| O6XË ކep ?3A6HK?Ksfu\:T7 >dO^kL8.llei1 [ jb@MAl M;q؎ WTD=z'TҚ"?T(" taΘa`^he|AWħt|B G7p!XOXD膰Y;em-N6𡖏lD˂+g03&a;҅1}]lЁ щ= 5P/v" ]YW-t SP>Q`D;E"*_T j?UF/c|Iq0Mv"\f]ٕpf]v.,A;m~&̓a v{ S}sa\^D^C{(jdo!c2Dsvfsa3L.mFhҷa ;[/ãx.VU"#E+hx6ke!&JQL-,Tj}YSLKDU о3Ke_*:i~~Lw2]/bMj{XQ;ս;F6S-aPb7,m'c&N=?n,o[xguW ~,Q9#@n}D1+K"7sr#DC?SE ?/9V!ћzx6u3w٣u>۩&wtU]^Uj|ȞTk[j5ۧ#j&@MaGU)=eXۊ?AyVugfa#@syQaP'.TeIx= '^8V/,q tiMJ,Ċ"_q|fQ%l7 q(l]?:aC\G؜HܮcQ;6CUUH"aDʮYV1#RH9"^ۈ2G7hY\;R7'pR3uJ{$|SoY>2σgc/˗ǯñh:Q_a+dWCXEv}芁I/7N?=X(5T9k84=]o5SǾ·d*`*Tc&\ƜPօC+BD]WNEAnq X#`4y,S5/&Ot 3lY1*RVG#7ȪE2Οrԓn ߋS<6zQ23 r.pcR_N8Gb*CCMU=G7r G[Y)fv~+]_Ty~57U[vQWٱ;/Ϝl<›JoeM,: j`hx[ |Ezh@d 40@"0pP! W8D $D9T" QVAEx^[}+[duu7 d|ӿꫪh uoE$ۈkh/.% $?BɦⓡPB$P5AU.iJ8ՓeyUN%GYV]4Q8%h".>鸕{g78MA=M$s)i9KS6 j1mp-Nk΋51V˗8dS\n<.Wb0dij-A.S|5QeV--=y=5'R;ܫGOҊԣ|tu`*=Z'~w gm sY9r|u5ܗӵ[+Uܵ#HDtJҞAX5")R+i#Mݥ8RVԮyeVKK+{+kx%szJFŻFiY%ݔ7`{PmYǖ5nr "V WiVo"mi!O(n֞6=$beYr{#}VWN\[6/hFv1Ia<5׆y:9Yt#Ӗ}~cx=+73|g< s<#y;{z1B/ggNrU/?/UA/C0[_# B_@6"I/D=Aw Vz pR`(CopX a#LO'mxgv<nӐǠ#[!]w5bo-\R d{*|V!6`%σl,c`7民 Pƒ'e?)"Fr brv`)aCa:tɦ2w{-0}݁LX|#|ȇ|aRʰ< 2x l X^C7 7w[a2l'V>E#rYKܦCFZB(.,k.x 7vbm.~b +|4]d(b.^ŝ ;mzP[_FOh tF9"#g>Z:J]hςRgO_7#ޑl \ƞ/ӈؽA'μ/˰']%'+?+-w&?ק ׯ:?Dh%C xuOe #ꭁ$h)D_H3F#qAESW@a1|#/1݋a{OgI(t ]u],oM/_t)<&"W59,-Ye1+Dl7iL88.G#͡@Qg &F.\iC{DGc$7b::f }0( c>60XӍ,1 em4aWZiDZDDP.b*pD&gXo8n gE3FQBtb"4K@'JYD% 0&Nsg֊"X+nSk &Ks %ALk+XvVۂ;H6JTYk9ZٕК]6r}9fAvQQLR\u'x]f╢<ǡ*$yWxϖzcŏBGed #m6.LUjD;Kp\:/Rnъ\88N֜(zѢoϟef'#Uo\bZ4Le 4#*X]OY$ %齭jp$HG#}X%0&9'9pZåt`ޗUrEQˣkSʲ)ײkR8`5o#FXV,O7|EsHtP#|]֑+$R-yEtTE)5'Yf7c})VK;GDLjy7:i.o.H`$yVJ*puGRGDU,Z4ӕӣ>h杴bsYSi>ӫfj3CCU{& +;cd)%~lT?HqҨ\?67O)1, ygY)wu`e:eшR{?V{7Z8ڮ_Aa,[iJL7ɎRp5GA÷H,J_8jT>甥\vdkt2 kT~uru uE.17J~PhUX}:)v_HdkIy~uziZV4v|ۢMQ"B1"1LM[Z8C͎za߿ߝXo( UUUUzag\Oy Ek( DDnpxIJ=PNG  IHDR_sRGB pHYs.>XIDATx^ ɛ F A% $!00@p5F4\#xQ1E@%DtD" (@ jedu{ϭenճx{٭idKFN ҊNv(HbפGdlڢy՝5]K9 ~9n3$oumN'sgsw!ySήۘ7 @^yq^Ee{oHH Ztzg9JӱPIPGLx0w7M^Xj/Fjcހwn}a{+BqU!'F2I}CجH "( JqǽrA\l3S֕W SV?]nwn4?q^|ZBN$@ Y@Ƽ8)cNɛ]Ta@Fء1 A]Cd􏐈{w]ǑK9i' ֯o}Bv-{ãIV[[* Z+E>hx-aᮧ#1c"4|_X.vlOoL>L^U.ω g;xu> %H=}O,=ˑˢ~fMm)VdbeC> ,K xF6bLJF .O\Ao`lsziHRI j:9;gx\wƵC (YlUy9. WZj}wێGc O`Ib@Fku8— 4$@1$Bt(iq!0 wa.^K V1IvCŢ#^W=4ͅwԼW nh*:kxqn^HAzIm$ݝ>c[$ 8&%qwyכuj<T1I2 @R͚ V[<ݧ]uCp:D0ļ::\ ^rQe6򼚇#|O9uRMPly LD6kꬫ1]:(V 5(bHkKnf,DGL8፱c*,^~泟u-^ ҏ[׾⚬s dwM Dž߽]K}SJCgJzGp U<{C1o,e. N Uj:gNrX@f\޵/v*&<\[ &zi1L{13ɭ[9s)r:C ¤s|B[WT*8F#jQѤ^JO_C ݠ,sWr ^ݰR .Y]?43rIFo`GO!2D' GM~ 8xPrAFKR]9'nXM0|O)H಍O;<_>>ʲfQBB`0ٻ W;7y׶tYAc]߽K1 V2PWu :"TAzeJ H#'>F/B:dx,}bTSj`v @ t=)t. iՋq2bҒ.Qk x~\KY[41QL!xNcr/֗*u:#9]` qLUZI,Iz8\ Ccd`y!S |<ЍzO򖧟> /Q^oR8 ]SlLL$@Hnoq5ș5Y@it'03JqAt: T*D$87^YՍ [Cv}hߘpC^;3zE~e R#o^\/3ڽy wf{e W͔$@$PjQgM.ݮANm'T™vV)x"a-"J UiW΢4k|s:R^ZڴEsWz>8q}A/e^ln<~/-keΕ_C4!(W p!jd (۵<ڝNr[}/xʩ]|M|.t)Bc|G,|W[_WީɁ2Vd|ԪeA|q}A m\ߚ}߻|_xf{X7-w 1jEpYaAЀK_e9c5 *͟iL@$@Q;k?&+vk8ay|fi|b- 8y,,H HiX|yӃJϼNz>wʁ=%Px^mujsFQskF"d^J10ࡗ;l.Bˉ5׷ LC$@ "5A *Ї,(&_Ї$x.2xKajm'x M /8*Lgޒ}]&yx&H^>=W~$C:˴M"߶i3xy/ADEg2{w#<+b% >_@^HHAx-*$oi\R)> 4WwZ`u :ϙ+ޝ+\c|O(L' %@5^&"^V]Kk.|aق} V.8ȂDiRװ^Kz "rOw:wІTd|m}W3O.qdߋMkܫGTxͧt]xZ)&x{:&QA7Y PMwq< ; ѢW2a( r-]ӝS?AJUm]E]JA]:T^xAd% McHAd Aޮdō[ ~AOZ5ןCxʻ ƅyw&B ǐ,TySU' |!5 L;W#\;R љ+#ޜag"zrw:̬ŵ&VV0K/0L&#  ruEz}]Ջ3F|'p] iAOļ)\/vռ' Suڶ-N@Xπ:s}ܙwK~Q^t)ue31 t^~5g^b*P*ݽb>:pb '1L3 /^%(\ u^/OoZxh6>KAZWwȧj 7{smquTtNE WktOp^w Hw!de" g] F^ ²|ټ,HZ&& 9`t0̀w wWJ !NBAYC/RM/c=%D~XB^}^-ظςxR:~Jh/odyN*Ȥ~Pc모Z\SvzM}^++:E^ '* "~"JC[GB!x?2% @>z?}ay3NϹS!Qi(D_CK8BXG`IEp|Fw΢0@Q7e. W_j3t*IOjEn!AhyO+u$ZCކ0 #oo &1#W\0BbIy d*B)d>4k- .|bGXηӼ C rfArzZ.ՖM;muy+fi]U[X @ PM_|j3!<(F,0d )?>2ܣZw=N1;Fb;R^E%3- "o^yBxǍ(pF>zquwJAEQHAo|[Y @[yjСa*ݐ;,&aG+]HڛQ=N)FW8⣋iڢyA9> jBA11z7m\,E 3C\}iDt]N5$eJ1{;[ LL$@NT 1 ;n6A؊<@`9+g#Mr* `Q۫W"ӭb;>Kw<: ܵxWi?ۃ[@5Z[[.+gpUY z|޻%/,NF6<: &/[ $ '&uuub޶lѩOOD:`3c tTၽo$1@p|Jo$QO5ECטxsJ]@ovB ,:VW)tx1Vy} C7oixU+-L$@s @Jؒ-&U jzEd$@$=:Dϔ% k] CnC$@$@APMBiHHrR (IIH*|6H4#ׂ/~heK\J$@$PTK T ,Jom)&=?p$tm~K{W 6HHxTӋgH[^פfKGGH޾aIH ')> @E :_vd2  $@$@c𔙓Hv6H "At`yΈ*d1$@$@Bjz4I$P 'n_,V3uJ)f$@$@&UHݿl @i M^\8hh8r -[F$@$@$@$XtzIlQp    ޾eHHHHKjzb -[F$@$@$@$XTuHHHH o2    خ$@$@$@$@%@5=}˖ $v'   H/[HHHH '(8 @z PMOo߲e$@$@$@$@%@5=]GIHHHKjzz-#   H,: N$@$@$@$^T۷l @b PMOlQp    ޾eHHHHKjzb -[F$@$@$@$XTuHHHH o2    خ$@$@$@$@%@5=}˖ $v'   H/[HHHH '(8 @z PMOo߲e$@$@$@$@%@5=]GIHHHKjzz-#   H,: N$@$@$@$^T۷l @b PMOlQp    ޾eHHHHKjzb -[F$@$@$@$XTuHHHH o2    خ$@$@$@$@%@5=}˖ $v'   H/[HHHH '(8 @z PMOo߲e$@$@$@$@%@5=]GIHHHKjzz-#   H,: N$@$@$@$^%TӷI&~SN+V5q ThiJ DnUi:X~p(I܂܊{ntc` ,h 3)H6c^m33>z>T{q6xQGMxmDᠿj)vu!S*LYB5M2^SY M*Uo^LKAI>]/jҤeR 3m2V}O{jڠɃ i7)> n[ hi?2T,ݲY~K%R;梩C_w3ף'xC全D=C"C} 9F8y[qN_49E^35h ܙ!S!q ժ"q){L4!f[H$ P"Q_έt==7{*uuDu0|l۶͙qCFI-U^uUN}OǵMd˷~971Kou1{LPMIGP  wx’|I*V={DV)fе|4u/^gC #Iso;3n{EwS>T+ܗ:]+w#z̙SY|]3wܸq7moߟru$@7c }]ZD Gԉ> Ss{kky~h}K3h /CW7(=*+ [Yg mr}`b5Yxߋs@6|v!Øw,.M3q/lՄ7Kx≘Sx(:vX&l%ɦNI KT2%5 DN`;u]ֺ^Ysf}Ҏ9nfNަy7lxe˖'GzW6m;5<{%G\D3JcE8p s9Sw894#G_Mzz]ؓ t})jz0b 3'iM: Ao=*$˦-/[Uؖ }dX`DC`k8pL0igy`PpRVޱ͠/(`t}@m y#-)ǗQO1t iu_pQkJ묺Ќ=u.TտXMZ̑s\JjIWMjsm~ocq} ZAtЛH/!nB;1+V |X̓i 6l׮]#Fhٲjִ‡s?|ޘ:ڶi;{,' *Ii.LSwZfW˟[s4k_}Ur6nE>Bl҄S]in:^ѫY:z]_3GI4}!s/E aA*pLk䷎/ɓ'D}Z;{}O w;eĶ9 pHkѢ0iάa _&טٳg|{I:u*s7LV:I731>}wk[lgRcLWoےcf1Xgoަl$#3bo>4Zj :bjjj|Aq ![~lN3rȼp؃?HX 5 <^cS 0a%iPLŠ3wkc/?vɐKBJ2b7֜wev_V׉ybfݺuw/+%=A֝zС/ 53?n7Yz/Xz^6j w!?PϹ>7VM׮]_?ϛϯ (׻}>gLFjpq5_2vgxZ61`[l"<{we"9˕X.xhAl$ hm۶uЉL|jo?+r4$bPPz&N">Z;ҪbDx}ͧ@7oki:uꤪnj@ǿ`F֌t]{HF 'p iҺ2wPu Xw_^r>jƓIp{n1oK Yxhv>csQcW:a!#|֗gMӵG<#'t]6fk6kOep w/? g?[GΟpmG]0ԏt{^ |J&Xa(YzQRf%#\хAD-jA_9vz׏yn I߾9OB@hneQuh:{zmĉ<ʰ5k֬PDUhLTIS S(1XǷZJu]9<K>˞* mƛ9U^\ [ s03pPȘju9Xi`6Ud6S;u1# oXIrFUT4/PZLŠv.Q5A^^ 3iNk]m5>˒vkBeQ&jv79 G3\Zۭ#xFmfYZUN C$R:kwm+ks3|xĞK{_j=77l4mn<Ԭ][_Ū{ty=#l(8˗Ҩ+-{ѷSsޑ 2nN&K"[Y;*Q~?wj3 7"qddjzvY$n&@5}}FzWV8w1fleCi&8ށIWZ'3쎰fE!Lu͝S5'm>|y)?X Ȳ!ok3w\sF ٥<ƏOr^3Y/,{iǿXVM>=p76+$胏ξy - jcCF]YuuoMbIVPdQs/mOn YƆ-Aű+c PjGz1~rͮ#ok}/u13%K~kc6˖տr;̚5K IU .b>Cݛ{t̀'Y6zĝmk[&K m7=_.i~M>{#͊_Zv\W(:鰨q`=Twk\ *vgߞO#YTQuyrdnxF|f,_q51s3W'@tcޖ>7(.ߣqx/Cg[1LpzM6-\^#u9Mnk9n=փcǎ%C/uND6ԇSvLPSnp_xd8[^2%X/ r3F30 )bO%&iǭ# ϴBd x=⚲ ; ˞aPC_&73;;Ír%uA\)6YK㦗Y ¯\j.r tԜ{A鸓[TbOGSo1ϚF1N`FF=!F!w_.8r4{83u/X}{ _/ pϋVkISyѷͽu1'9쏚1cr.qv,_-:-;a&]A϶N :Jь _[~LP(Ӱyq+=ṋ9C`)rzO6=$BP\`ƋտAs`*<jm5׍򳡌3aY?gf1Tmc -lF2CoLǼeܹ3'1,eq3|`VzG3o~s"LJ ʹÛ7\rz?34|-~8|EvzXͰ저$VV RT @}D&c $MMߌh@A8e6'g6,hG+BQHq}nSλT;Fo}cj;vp<|16D™N,rS>;o+Tޔ[۵3Zۿ.]꘭e7;u7ܽ{Cސ M9;oT qqL-32dQue'OM/u?avN17SO}(a-ݝp[E]#j37a%8'~q| /uaKм}|babĴ zWdQjL)Xb|v͎[YLނ ؾ<N;'o$wp3/jL\{õ^7lY_Yrˑ-wVQɊDy;h+iZBj(*D[)!:9A/*hIWKO /U,2Ҭw8Cu {blJm-~( GLX3[h&+x=8!ż %/7]3;;SJ1QGGn#uh6 Fq!vJg Yڃ 7K =|An-%c뷬REՖ% Z7 )qɩU(1?W{~ծk;#`>k~2'A~E:CB;H9Eɮ܊Ds;8w׳;]fMQm"킡FN N1=9ONtf?6;o;s(Gc%ڲy ydH޹SW}%klb9ue6}iw2 .hOLӼ`0=qwk[@W= lÁ,YeilRRUi0ވ0;6BYxM3SJs$ˊ3gN5=BP΁^9PȬ:YV ? ziKˤ /EZi L۶ikL8'6O,@4 +.帧[ K2?;wNKS8 ;e_>32mJ$(""SI`ЀYLKmm0SDּfOfWHsX^n?ˍ5c9pT9ypc90gG⎋˪#2)C3C)( {Ԧ9>H uWzs_ 9OFu"rӭǰ)iA=mV]Sb9~6/HQi"_h֊^r$E|++WI`넜a5ވ'ݙ#"\Au 5ߙfΉ=992l%7L|C j:}\ϙD`@h h[3;fSͬf V(~010F?;#Rgp1# ݯz{s3VsB\x <o6YF%ル|zM%8Ov[3G'|Ӥπxˉ--恙fs-4^s }BXI҂'n S:>6_~yU7#Ϟbf|1`rFK6Ksn=nUĆ{=>IV; bdV P? kʥo-zieG*Tz6tU3ޜqV)]H @q͍׼z-eFPG6r~ɎҮ9`}n}%rs'W ^"iVӁn`̫_e#]D12%bXu>$n$wjW!.pLrQ+Ԭ@~'B]NXc/y{zfU@ZG)<4j~_+]߇3ox ~֦V-s}d ;s͢@QυKWTUez\>2)!-:-xuGfJpą-vD&T\_־6G#0}"ͯ~$.==E̟p魾*OGyn󜅓&/l!tl]}g֜Y^C&M(ŭ,8uO߫\m/wvW]%),H& #y3m4q%k0_RHw\yG r6߽z773~0,VP|8& ا$1-;E&/b^>m-! HlN!Q1 ‹A"p6yzXPO* kp[x'>)S~أGqQx3դE$Sncr";[.p/ZTC7UݙnFD)f|[8^1䗹~ ,\` -1dpY~1;<ݱz)E9yhvy n[sȫ70[Y!c] J8wcBᖈ-C~At20 &-;9/_[38U ~9BG#7O q`,| Z:Yτ?_s>Ð̻ի YOMm-t!.Hv\.x6\a^@vS,nkpn}r3bf\c_?>_v} zQ7X!1YtH/uR̰ )QWru}=wvNl/c_3fF% q %__r{[pDSlf~|CY".J@d聕np[pᖈ-7%n,#7=<ݲ{o`;۾ڸ iz6& Q '*3% lvc"̡T)62_l%x-jV$'3nЍlTc)t!PϞ?;G2U b>Vc 8Eͼ{Vx] :X[Km ƞ 'j:lMƝ3ȣ CX(=>f+[6vŨhN$YXf2uۦ&pr_ƏU$a߳nyqG|w0P;a[r>o#~AWE/j "t*<5'9HLSMPM{7Ӑ@`n j陙tθlQsوr-Ƨ?@I Lϙ*l[&^6*33i^9e+g]¡)>Kfκ@U8Ty\$R$ f,%:cjN::pv( @uHfƇZ]9옉S(6X t*%09k*_?| _^1 %_ޭ筝 H"! Uv=Xb{U c CI$@5=F# +Y1̌΋G u 0 @f/]&7W_8luǩ/~ѪETUlF̾oK="Y3 2CCˀN%-I$P~ڋN(.(Vsŷ<䳐QħS(IUT6lLo^oÁ?]1/ KZ^۴ >5\KV yoS@ }.~'ҥKՒ_s> _vU;J`Jg"UDZӼy.]j ѵ郅W:V̙3n8=\?īK( T7l= @, 7=BHHHHHHHH Dz[( @u^֓ ĒXv "   nTSSNEs6M"   T6[5iA*kHHH 5+    dKHHHHRCjzj !   HKHHHH 5R޳{ 9ǜ6gMotGM[6r[.#AˈQ3W]%*/&    @ʪl9-9m K^:4PW͕ms틾=G35m<%ǘ^U?zcFq=q7&MmR˖-yQלN9?F-/X6Kc2CZ ̢͟1š7oƖMZ_UC %   HvC5roˇqEc`楇_Er(GM}O˟YzwS|/_?ה3CfSNۢ*HULC$@$@$@$ 4oLZx']71 oXs옋z}!kc^cS̚3Ku]9=!y'=,DFs+VH'~H:,1H !   pHnoTk3qDkʣ>:.|rlk׮Usːcz{mOn _&'wȊ/ݲ7'ڵK^&]9ɚq5o&O}n94hblŚE}AHVĤ$@$@$@$@HLg Ǝdɒϧŋ+:v_dijyƖҶm[9q/tlL¬Z5#Z0vl˩=7nT[R@êjHHHH0iP_?G6fEbƤMe#t̞=[lIٽk,5k֬=:nG͘1.Cf ,Y[kFaƒ?E{˖uq {F [r{1JV4&   (@tIٿ̫ш(*;Ÿce6GUúkk[v1-dY3n~mkFݞז44FӧO[ڷm(Y0̘HHHH0iPn_?^S)>׭s 7nf9J?әE'pOI d!   A %j:Z޿o]U;6.M{IIǏ.?좦;KOUf0# @>QR#K;ug,=vv&@!TH6۷ow'=zy*'K[s:D痍:]ވw(X孃 HHHHH]X~Ke/5wߵBĜ#6{g°t9>X)ҙۭsf:87$@$@$@$@a DMG,L2|pWЉ6gt3l`ΑcL=Ϧoۖ0ѣW0H޶g 9cԇѪl`U1|$@$@$@$@y $^MRgprQ_TmӖM>to_W=#z9"@?@_?%ΌX &6bhDH)1't /f> |2"NCi˩f 6m.YR 5#Cޱ$@$@$@$@ 4wF1Mˆ01E?]$Y0gqys4&́d5/w[n6I\Pƻ}WIHWpպza5Bkچ6HHHHH5MzЫ^2:_Ͼ̢EDGw\yGl{wW_gO0G<[%@3 @iPCȘ]fժg۳7̽??~uowK rk&/5.Yoff m? Z <HHHH $hS.D`lA.{ٸqc߾}}hLdk!؇~| -hK,Ta3cO[fُ<ށ}(|Z|2"3o;fg`Nh,93,֨XtF$@$@$@$@|ӭmVBԔqhgy՘-g |r-];kk֬x4W^lqJƩS¨9 *ЩS'VH7hMw< !65P^jz0= DH =N/BaQ$@$@$@$@$PYT+˟ $@$@$@$@$;Tc%HHHHs @T5f .cCHHHH T{@*r6HHHH ݚ$@$@$@$@UHjzv:L$@$@$@$wTCHHHH PMNgIHHHNjz{ T!Ul2 @ PM{Q>    *$@5 ;M&   ;q!G$@$@$@$PWa$@$@$@$@q'@5==DHHHH*t6HHHH ǽ( @^& ĝ#   BTӫd    |$@$@$@$@UHjzv:L$@$@$@$wTCHHHH PMNgIHHHNjz{ T!Ul2 @ PM{Q>    *$@5 ;M&   ;q!G$@$@$@$PWa$@$@$@$@q'@5==DHHHH*t6HHHH ǽ( @^& ĝ#   BTӫd    |$@$@$@$@UHjzv:L$@$@$@$wTCHHHH PMNgIHHHNjz{ T!Ul2 @ PM{Q>    *$@5 ;M&   ;q!G$@$@$@$PWa$@$@$@$@q'@5==DHHHH@۷7nqvƊ+,6;l$@$@$ Py5o߾cǎmٲW|G>'g5ƢA-D L_ :{=t#GfrС0# @ T^M/s: 64ihGt]|K? sxnv˖ @>ydH0ƺl )/ǘ9:<Gc+y瞋H bp$o PO=Tr3IQfFMVx7m1`z! @e $@Mo֬0OY9uMo>kF'h9%ɜq$UWv׾gKNbUX.1p F3iR Ͳe Vxll~8D$@$@$K >Ňɜ9sƍycǎ"b4o\k>}HӦM=zO8;(Y}ԩm馛dM%MӧOQRY5ZGX{w:"0l3 o7\0b3`Ҟ=M~Ifʔjƌ@P{~z;7XN-ZdmʜrJ d'FcAt(3fرcǒ%K̾U72 W+CK(@| }jaCNuxC8dӫW8٠I NĉSoP"5}?h):USM/ElFwWp 'S@b PMOlQ"5c#o*Fw8_}w;p9lC{ 67IeQ!@5q@b1@5c Jr43esϙR $ PM/!KZtzƮM{j\dhH;a n /p妪Vlxp|gŔ$`#@5ol@А'bGrjj}+ ?>q8BH 4%8#o <^:yCC:F}K'K&'&TJdiV>N swcg?y ӝ1%s)g SFج*mG7 c? vPpk';{JO J EM3r,0^~\|Kf,G*֎66]EL*jj{ #>q+)!'"7HqW^og;utZݷo7ljki{4m3n3jP2f>}|TaQ$ÛfzƁO>9ѽdǎw1ݻ &m&]LJFOe'@5=}l!olsa}s#-LNH'~}BCjzb*BAyӌ&.pe925n3ejJKOe&رc}b k֬>|8b3g4 EIbo>eIY4DFBiH\MGGݨ L 0Cɓ3K)efv07K̙v`a2S];t0͚&M̤I߲efJzhHHG.9[m˗ۤaÆ=zԿqZk]v9;iJT5Gljb픔H ߯۱nҺ jjƌun 9Hq#YCj $vqƉ t ٳǎt?ի6,+Rr7hK,c^khٲe誥(~L4&06fMi$8. / pzM7ݤ:>|x^oMLjWtt1̫yDUCl/^ Zc5( @I tWL9f0~`n` 'X%W'dxmZ4ZRm6J޽{kA9Vhf*cK/efNI9B]afW~83c6e#)̈]=ZwudV -[ͼ$@q&5fc#Fn:Nl}7ui׮&<e_Ɗ٭5n͛7=UU$kC:HSP<) @ EDn66s9f~:7|*ll,48Lx5[_ubMSNرW/ݻ5G}CLscSKl: a> %ݽk׌~-;TpX`Fdv+(`'i2x_=3`B"H#^i`x݁ ΃)S^wO**OFH Jφ8P i&V $@'T]p.fx8;1^?lh~bh{j9]ysDUTl! @b⦃F:MK~x9.+aŀ⦫7! m9㦗7J>qCT}_Hr;VwA䥗H)7W<nj TZSFج*m`M۷(O>$E7DI"{o_uw3ۼyvFR/Q. 4l}U O (+Mh16bǟ܂OfjxA c dH{5ݺR:εu|-O8iQ5jU ]jڃTչ(9ANQIRE v1 w^:B u%Wm'N%@鈭(VezԨQ>JFo&R xR:6U / h&jUwGJI$b3=}[_||oXK"H BQWeM&[Z,gt9nm.WCu+QpW:f5 U{u.m I6unNr㊔Oby@2#QE"{vBt" @lb'G6)Ox J(ipz |޽%`UꨚrHHEku"FiH iŚ. YW *[OUj6ҶQgE$@$PZ˖|%&8qʕbM_reEtt VHIH!_ŴyIŚΞmHH<)g֒JbMOeQ$@$@$@$@i%@5==v $wE'   H+iYHHHH '(: @Z PMOkϲ]$@$@$@$@ &@5=GIHHHJjzZ{"   H0 n8g9hٲZ?MV @* neC %N/P|O:zvׯdbߵk9cǎʕ+eGjH% Zߵ|0:!   ) ğQ:DΓH$@$@#P3I T\F™gO=T!g%ZKqΦ @T^x,;r䈵5k&~'z\25tsDT OK$@$@$@Jz.]tE/j㔮Ql2/aO;49yQrq V]&   ^5]#<4555؁[TpǏ/+E4:/aӧX` HHH@f8p@ҶZ/_.M֔={2A,vׁ]Ӡ|Jګs!p! 'OU}mV5S97V;5jٻ֖G1ڑ޺F$F>SE+XuZ/HH MB5Hq#P̅Yj: 8pƍd.67tĉVm8b% .T:J%J.f0/ @y4;GyjC-2eJ^VjgszEU{):e !"KI*B\Ebf)gWUr6u DEZPg̘cǎ%KD.`9Kb^HHHB| l)>Ȇ tӦM[%#=t#[A$@$@$KС25kV~B(eREG=RMOD7QH   "{SD!N6m!37ƍKoih8   XLl| TRM}u ہjkkȑ#";v$cǎ)ʉ5p@ӷoIǨ3( @^~\qEo0lqnŵlrĉ?7.Qӧ#p|>ݻwñDuG-ӧ$sرcEu Z L$ C雮XpVe@C4AE؋CbaT\qz`TOcR   ų_GK2]/5]߶m?~ٳfpvR! &gȢEɓ'{5]B"aMzj-ѣZݻ6aX/ R,nMR*Y ;_T1_lHHH / "k^M:qBj~kاE#Y|>䓒 (VZXuMM;S?]t-ͺu7 f8DX \uU6X%MbG%gPM'K#  (",wYЎ=E^h v_Zz ~2H^LAŵúFG1cFfͼYljݺ5E7pY~̛7OvĘ ùT $ u QaD6fxo ~[ΫЫ^$@H1 D cSgǩW ( @j q>mk޼R..J}](ڶmk˫&v(γZoV *:AStbhbүW]G[oU RUnjqǎ0Wޮ]jvyСCe$vaʖjzP"   ]X7.]VPV7Vk:u)|N`lS6eM%fٿ]\kN駟ʟkk*:H3y~@7?9 ;* KQN: :;sn YWY+.p lWK1X& đ,cƸ /ôiSŧE25< U *XkG RDŦ͇cՑ @ }:MGW͡ |9֮] 'j UlKhγİ4?#7ntU#-Zb,YSjvO3;^ PƔ,(TIRdի1b>փ0x;U|O ' i4Tsϵ^+iJgP; ;oiLPj:k5DQf=kPWC 5:} +qknzyQzQi᪮ c$@$@$P16ח^*eC_~V?C_ۼpA톙\0aWr؈,d-V|BWVMܹdIQ$P}mK&A]^E:#4~ ˝lS~To0xu G˔W}Z"nһTзU ѯ/M*\Vy C| @'N,y"GujzO*bjb}F0&:HFF ǽڮڂ*GU;7UBy^DYH+guȨ&+v.bsZӁ oatb}-SH!y]Ν;]_A @CYͫˮr>  <3]T~/84?HӸx&0v*0r!B"N;k oVg]?7XX]Y]qBu ,cKl&bl䭱Jt?̍ 8zan[:XOÌuT /AG!r}& HHH @hEF}6rn m>*ԋF|=^ˡc] ~G0[B9 .EP v}3 P%\;\]%U6<+}E}Z/>E>\|rn YW)Om`<ų;( @xȒ2hlN3Ԛ^dt  @Cjzb*Wb^˶ @3 PMw>RrJU3<3W^ɈzÚN$@$@$@$,T]OxdS2a߾}?:c:Y9P4EY:YҒ PMwm'ۺu("芆YtqݪU+9l2=2cNSZʗ.1D$@$@$@$@"@5ݥ;<9:okKK9Ts%[~;#<i%)jzIP   j#w]vZ!0rH6'OIJ3{lIC_^hq݋Ղtގ;JG;6o$^άHHHlrĉ?y?j(In:[kʑݻ7v^4jAY]r<6{̅Çw8l߶r6mW{)՛ QOn+VK>}\z!gVO|@MzqDTH8«&J&?D54m$ 8OY\iEG Vkێ8GU*-d`F+ݸq#Dv5cǧ4^- 6Y4y}4صk8ɫX!&v mIg5ڤ =hM/%IHHH(kOSIcS 7l oV۵kWCuOСCʀ06]^;0W, =j1ci&L NIcʬ3q`ASNſPġ[5o]ZJjїѭkjj"M 玫:ԨЕmߚjzĘHHHx+bJcw =O1Z|CW.[n-;bbSNA T1p@mVw}WJaG^GNC$@$@$@e&kvūjؘ5n#(ڭ!^ٝ~/v%aɒ% 8)df Gq-iӦz587h` ,7_ =ǝ`w]5HӊIo/2¨OH&F=ݮYHHHD@gIZ͝p j3XC9Ԗݩ7#BgC9AWu(HHB y lq٠Atə3gJJW& T-\?lidl꿎@@iQ/xjE U^ue8Yx)4o84zD_`J"̣IA#/z\bq6timk` /ta$5c?Rc^J8*Ƿiu+ d\ΏS,Q5iնŴUUؘ$@$@&"Ke[qjDG95%x :7WR. ]gR)V(UH+:#:7k5SEW*ugMLf"*Z![[NAd5gꚶAիx Qgв?n Y,d,ͺuYRj<Y# @$BqQkF\RT5]m=$|:%&o>-ܹS9:k&)Yr֚] 64t* WuR    at<.\(f"/ꠉFau޶XcBTNYgB#iHv)=o TPՉ O$@$@$@F .Ρ"N:X  ֠d1|?#JlU[C> q  @Ul/ DH ."Szm\4N*( ! H%"aNL io޼9ܲW3VHHHH!FMǚT1u':̗\W_L 4o/wF$@$@$@#PFY|ڵS=6L-M,kN;4SFXc) tGL/jTV$˲e4KؙpU;:   H;IK/MkjjD~'>}xo/;@**8+EץU]P똘HHHH V!.|.b_TvӺR)b#(z%;#DvGաA-%͠Aʟ UW %   @5.ѰB>|8ܠF"_ 5ju"o/>SEqzBPZ[qG8l$@$@$@$@v!e4D̢SGMɰ&5hlܸQD8Kj0''jJE$@$2!8! &Ō&De,7hx+ =᪎0󱢁 HH\B$$@$@'"K9Pª%PxW-B}ƌ;vXdIyKSRX8 @xȒ2hlN3L!Me(_KZ '   M6M>]"a+t G4ma9|o&g3a4zvΜ9_VJx͚51bPM/a_?~)a,HHH\CC3ZyʣGDK"=}X ^I*٦kjL TCR#JH$@$@$PnjVvB|-ڵk;~/x[@ì.x9wK|BԗNN-eZxڹA!p◺, {[!6IdJO!F~$,.靾hԋW11@^ NEYHYKlK@S2 C 'D<N1 Ŵ=a ۧ;.DfQנL[K]CAEɟ`WmO@)GJFv;^Bym(S svGE%[ttB+E&@`"aUdj3ԮQF?thG8 XktJzњ^K3 Ě!cX,AK/ `ԩlYdFłivܹgΝ<7l zk׮y'ˆ{ՇLɯHk.(Y%C=md&L 5o(Y=:Vyb/Z{4U?B"n&W]uj?O]oKC5=4f!  Hz=A{#F;rHqpCrV7_n%j(ߨK^bȴnZJ(xaP4en%lm۶:親=^9zM#B{]nRμyѰa _]ڵk')/͟?_;Er~GOƎRuuQB?e@H1[?>3] |Z PПT $@$@$@ paiq$\Qm.}̶^DqFe˖Χz_/%R[аO:vi'xE^3&N)8 k.՞f"+:X'K՞a_Wu"A-B{35dW%Y_[ws# ^cM(rdi~7ߌg 00EVM5HN$@$@$@3GPF0;8yR6Y Y%16nݺ3N8!x?a6'^h6{J!gy6bhUU9M#@#G?)\+_ѼTlY;ti`oY7ܙ}rPO?T MgjzhtH$@$@$@9B]d !tSyzdq:h uQ:@{xqL1^J&P3Z} l޼#G70TwU_\‹sJ(d +$X_ly?䓀IF5=%!  (fsQh>w곞)~ls5Tg~sujEod*,pt D05ڈȌ Z8J}qHaŇE5vXq]gS>b1/ @\ +XD!_m#R)r :b>4u xlNT\U*qY 24p ᄃrQcT^zRaGrϪ\~R,pʼn u/U"אJB5PbLO$@$@$+dD!_Gs߮V^wuHŏ?cM1ެQ5ꢭG n۷ZƋԠa[5\"[L,HS=\VZè.'$A_' XqgʧxIPF   1>w6bQҫZZcÄHu/ 7ܠ tʦ~H(FUp/"-5]kqؿm}hتCFKaW%FND^p@@C֨­n/!)ڃ>(.WGԂP"֘9VzzNAg|dJkAmC~@\ֵh⺮YH 2 3a~  kGfc9Q@ *אk5jPΪ?z? Z5 Q?{OG׵??cCe2+Lfo"5 țh!򺢺>B]bHtEݢ'5zRfR>r.{k[u[ۂ*i pC)HH!"K1Fbu4tmOvFUSz{oU<NTh-`^\2ST*KY7Hh Â}bu7GuBpĪͣ-Nu6Vw+9'6WktBF2mU0c r'tw'-t2>!󐓜.S;'z8F~ݹ-kX+i %iN#8H) @< x϶S*b3^B!ܗ]vW%BW\)Z8~ $oj}׈K&::rz݄l0 0..OY|duq|p9pD2JQϳ;wJn,l:DOiR x!/@>@$@$@$@e$@5(m0`@"4*ghz$gU Hq.]"-H3w>~Mi>[Y& Ď]w|ZFDd"MKUbvZ#:Ò]rҵz*d*7r   (/axcZ,NӵDrYrV{m4tǎ^ |NidL C$@$@$@$@5tY6 "@5=De՗w쑼DkkVVBN$@$@; x^+Ӻ'gu04c;)gP}:~2No{0aҥu;v~K$@$PezʲH#eUYuMZ׳ȑ#*־}ke|r m;zLM2/%ΘaN;G41&Ġ߳'R X ĉ2FVe˖i/QO*4FR0mڴ4[nh25)jKWG3yyI'+0ge.Q穲G,HHH `/?~<*Ch+V`J@555I'S};Ov͛0ذ#G4zu5bn8] ٷocMxIAzqļ׫C,tPԒ<   (;&D+{pΜ9ƍC`رmʔ)K_z5"j37C /n f`ᤅ xcf3HHH:PM/k?O8:V}Jߘ bS9Z}׮]*Żl碲?zP/dt|zsO[D$@$@$@q'6XAb^RX. 7noؐWSqҗLä1% @P!8!HTK]p4߼y#][oSٵ g`R;>>"r ׇ**v}!bF,H)Sqz`ĭ2RYc,kjY7siQcu*(TtiF&iu3gֽR @\x)3mѢEA[,ljM\p}R ɬ "^dޢMly[Vk]r/$zĺK]QTZrH^Kj'֦9"1~h3]ŌgZü0OI `A43/֚ f03 sEJf\!2(e]ly˼ǔ+bJ:X8 Ĝ֭[EΝ;#U$;Ŕ#ya],3f̰JkaC09Obdž 0] 5,S 裟|a !Ga˨Z>hc5ͬY}ټU*JgeJj^-2[ff!9z9xhu3ݠeΒID?lҬDJvDE p{ğ^^ رCm6\A30.Z;~)Fna AZ@j-Ԩ7o-i/;\';b>Yrao_rb*b8vXOLJp핼 yΆ 1 cy衇+p|J4 ɯ$ߪy"8K_K]R]ݎqW CF\eܾ|f, u}:C |` P F$@&߃gDt#UTϐ"^tN@<(PdujYExQyEE-H ?ȯiO4^lj$rzAuaMpA( m M*hM;s'1?a s19 *d7k,o :~]ZY3|9żl^QBHH h5*cv9h<:(YEJ^zi! yuGi޼^7oݰxvgX1ܹSD\v 63B5=B,Xcg*%{|ZouƜU7<~C4 <~#;=i ?qy< 1s 4=g#M3Lo{? @ 4p~r8#cY".Pdpn[G /,P1='g| ?>U'{xь'xbz?+iJ[h!mc̘ 6o;Q]f,"{ާ@$@%"??03wޥg6E rيT0$bu%@Y'Dښ/Qdjͨ‹i+Sun۪uʦd):_Sê0Y6]RL?B]ZiCN/f<] 63bJհ˂ה~rE ./*yTlHyPCK/>hCj,?X|cFse,EY߿jz%$%"K.c5j\tF4ZW ri[HKex/H,u")JeS}XdQ>4|]d\3G +S"bS:t/I ʃh[`n1=1S'#f%5 L:|{H $"KB$nj] 5:Tm6/l4ҹ5[_65ݪ^[|E{JMGQ4`t/)3ZyŌ7-^ ]Ӟ{뚩Sێo&7W>"OiHbC 'D4lPнtbR&HrbeVE1Ev vAE:T6[WɑE%{j:JC!cu"& 1GJC\RƼ- J\cq'āJ_DoO9UU; )`̖& ;i y p'" II* /$dUUb3յ*-fT#:9a%]ٸزKO4ݖ>+t'o?od>b[g<_LOӳ_ׅs͹P#=7 p !x#Gf3'N,(BW`Dm߾]"Cr ѠAO|qGK.7nӄ  ;`z=*]O߁8={~9TӮAw=X gރϘ\3ez<^ZŹ9p Hx>GsF\^T=Quг]t4եkE2۫54Sn^ o&y^sO?go`t唎%?t1X_+_1g%*<>dAO-^?՜dV;˜SPK~sDgURP,2mB^),={̌U`$#[ٗe*܇Ø3g7;wfW(Hg:vZS8noGGnHRoeZEB5=d>(VGCc(MT4r8:Y]VĒؑ,Ԯ0X܊QU>H{1Ag u}ŷTc0^͡ }1gY``Ff9t8Qan]3⚮N3g]=/z3LXLLEԚaLz<}$@'a:H-LCq&:2u队i&q\Z]n5\V۹QR>oB41"0;, 1+<!6F胍,|H`F}2񷁹sM۶Eۃ,O$lw-}3fYTӃtӐ@^|E$Ejz;vr/j)رcE,[JUӭX]72zEi0U٘}1;y4w0Rqs}r&!#vi s=?<%oz.a#'N9[鑡 ^vW5]r誦{"]P.37Y%xcu_>$X?o>/y̮f 慧3xn4Kv)&QgOC?`טGQ$q:Rݛ]J1o6|J+\טʗ3$|%| "Ÿ*@jzYMw z٪$d(24f(B=c*]h1a{oݻQ an{ TC!KpF6My-űAfKxou~T2)IJOQ^N^謲Dg?&u1K# Y>[@»*K%jWytuz(J`_}屟ׅ*F>HRM/Ѝ[uT#'AW^謲<1LBɢ?,jѥh\M/^/ 꺧 jI8 =Hs͹L3ٯZO5#ӣb`]dY!z,jz PM@ﻪź(#T{XeT\'p8lHNʸ蒘 ]tNM/H $ؔװ6؏\ŤPx+}E5JΦOis/*jzT$YN^NwUӱtQ!OtDr+v2挛^cHp*v36բK鯛upeUQZ豿>rV1:ִ=#398T멦ߧRB^TӣBrH &W#\tqM7͚5 ;>*VXeT0 u1 \ mZ.Ծ}Q}ZUT[DHJټzhV{2;3I͉Fp iNӐ@PM@oz֕JbY/j^^]OuVE@&"!֕Pah$$Tga%Zt)4˖]z7.pfcsN BK'Hzq5=H2 $ tQ]Ų |cFt)|oܬi 2t+< VB8|m%.2Jع3VjzAc# GPPC% ):և'G TӃfH,5Rwտ?ƍC,k:a|TP3+FPwg=ZWBty':eF]Ge@^m6  Ψ;s5Z6Y/ep}y6jzQDM/Ӌ5Nɭ5N H>A 4TӃbJH覈1PW2 u[Pm2J700.Tkqk믛~Q7%AMO|"#0W$"ϓ@PMOXE".H0JI3A&3q+g%;vdVb▗ퟬB&"AG I PM*=)/ޘN.+%5yT3n$P.TE@\|&.P Gk$u5fɬ,13ou&S1CfL6xY`)761( @ThMdʡ5=IEY!Pn5$T8 ڣJ3ofnfPO?-Fd%/ycfv< "@5=AiF%$Txe%TWe}-fZ;ƍד5(m Sn/E3770`hߖ] k*&=65a1isW(lY) W1iVc>0 pJѐٕP3/ݙ 2_;OcCW_5k֘)Sω?Wjve@5{m@&4]ɦ/XVBIYs 3zbePVXQ|T?+O6psU#ٙ4c51g˜iڎ|׫qذ|p8@hTCKpF4yn7_2g)0;g5͹30|Ws1KH/l5>q&*lm*olsb fnj>fַL/S溿n6 |d `|c~beT8ϪNjz{0i<$PiͿ[~%k_3m2+Z68c|&Y¶?n)a=,:&ĉIGP$^+Vf4%$PQN}}`3tnSG >$|LT,&t(JV^z|┞1kH-ZY6@x}F#XL&LhϜjLms396Y@ PML2mڴɓ'OŒ'qa$k;v x,@`W_5k֘) iľկ]hGH-9;k Ք.5EtQ>%@5=v]bŊAnSwݮ];Ļvj64 Ť$(N}gO3zu';2jH m{ΘBLa $'N PMhXfM~D&>|K$6lؒ%K jobbH"6:?ߘKkYD9(>qb:p ĄO:S*hvAI+( @L4mj.o1y93#ׄ [7s͖-|aE 5c3ic겋nsMVSHHPMX7n\MM۰(mΝrnhݰ#GT\C9HbC:oż]_o`/F_:0:c.617ˌHH PMWeƌ2mVtx%AΝeGOū1H fl:1n%a&w]wI֎θ~`,ir Cc6( @YPM/ ta՘3ڼys[#ZfӔz*@=LB$@9 ”V_/s(f:@k}SK 6uڻe C`*7 TP#͎xpo>IfR/\snA2kG4$PWO$H &@5`dJ݉,R@`ߘe3Էfo=)W~ٕuj͘ :2+Y;NlGj֟XtzILyKVSi%6ma4=gϝkcaC/h{-hl?d"#>€.P::$ToXP?11 @lPMMWO$nSy (lG]ȱge 1 ׯo_Ŵ7Xͻf$P- -1cY @ PM/#jVvۺumSNŕ$@$S_?uo|9U\~yƲ^ KLB$TF{,hK$PBTK7ڢ;<)p޼yDzvFRFF$@K/S3V}- > '}Whs=>h VK$A;b74BP b?̋k8'vNH 8Y.NBGϚ*l-D~REB0,e*ИznP>qUMjzGM߽{wvlڵm۶57͂p11 @pN}%7xKdGɆolhi1]K,[{q!8'JKtzexuJ9yl۶P=I $@I#д袌}영?̙~::qj!2 $T,Iذ<6,6P 5==}%mgŔ$@E'ZScZ bwvD{ K0=LI,'~}BCjzb*BAyӌ&"'௦; 'cC 4dczs1A>q'(1'"7a( b}l^)VPJTtRi݉Iy=n5c*A1:T݆v>q SLOJjz54f,VhVAs1o1cERټ9X҆M84r$x: u1eM_I|Tci @5= Xhx,ӓ IԱ] #d6ٸqJiVc$PiaS;7#y#.}ӣGUvLBEȣ=M:s%Wמ\ @5=iF 70ψ޷`UԄm0fIN'bT1+ O %=țf H Wj+[d졣=)]680XSPMO]ho 1 @`;믛_Q/8Q%KP-ڣe2LĴĉiP$^ZF4&H*O#%$-(OV|ϒ1b:O_ '7"1+ @h^h .*{׮ ]Dh%casT>q !'7͢13 @8UeW;8ǎ'BBjzB:*R1yӌ' #H נXG }R`W<'1Kěf  ʾŘnl3:vĉ]PNR4cɒH@5(;Q/vAٯ2fsƮ;ĉ]PNR4cɒHFce٘}cɤ>q&Q'"7͈@ ز%({%Q1KWL5fr:OxIꮈM3",HZ"({^S:z㯌|TEv@}iƾ( @| @eUyqe4mZ2ɷKc5sU11 X0 GmTH R=>'j,PM֦Y6 T366d*K:JQ' ,J PMO^o߾SN{۶m;v 4C@c N Aك0pJ>qbB $cdLiIHic 0'W^1o| sYOM3+W6M&k 幑 IYwqǬYDhZӓyH)&(;4f\ >9ls1KkzL;b%$RV5ky֭S'(( 8@e_޼;7s.:JHH2^[]]LSMiP$Kz)OtaÆ%ChJI$@$Mѣͣc25f.شli 1 ,ܧ%xJ @RPMOJO˹qpxF$@$޵k~ef2Nr*)$vH HČٳg8p{ H@T[nDu    *$@5 ;M&   ;q!G$@$@$@$PWa$@$@$@$@q'@5==DHHHH*t6HHHH ǽ( @^& ĝ#   BTӫd    |$@$@$@$@UHjzv:L$@$@$@$wTCHHHH PMNgIHHHNjz{ T!Ukۛd7؄ؽ{׬YL"iX? ;+X㣫X _g`ҧO3gΜQP&]*PYMn&i@ B#ٿG*!ұc/^]WØDu`az  .7Iq[%c21HB긑@Y=ztذa2̷mf:Ei6nL3~xk]v9`YWJ/_.m$R ۂҶ]hUǤk1~GOeMAnU2&+s%V(S2Y$ cUj:NAt WG8Xz鮚%[54`k]Uy&5 uD}iDi^BF! *yaX%c2q&T9l߾}>¿x83iٲe/]T 4Hv>,;JԒUСCئNrJܱcկkclgq'J֒ %KT{O;p7׭[ª{ IJ"[+g=&;GyDߖ}}ٖ?CH^2ea r1YzHL tVӷo_m԰jyS +:_?8HcI( Sttqfd))pp"1'PP&K { 4a+H嘄~w4e q9k 7@Ʉ^G PMBlfؠo޼Y$;So[s̘1{@ݴzƤx3ss c2͒HL 4"JU5UILJf> iFhA0&)"404_Zi\<QG>[9iO7A 2z _yB{2/ ]A(k!;v1 rӃO 6˷!A%_Y$9&}űu$$P6k]źmQ]C}9tRI.UHmRek^MZ ީK i.J6`J]FKVd]WuB6 AUH+ l+*|B]zaYǤZ4 d,C3kpUq\=^UhV1(]4}०{!,cN8S*օ٭Dm}#?)\I5ެ~L{9Y\jLcs 4KMׅO)bj5Kc\qNUU饦xg}E>ű v* PDԔ\zX?Z||ˣd1 1iRaS<&]Zz v:oiQqG!@52ܫV/54i|u"A=pT;6*}tZc'>5,"t&x)H ^^(x$Fj`eS=:&nWo!AnU2&Syb@9Nl $#$(8 @z PMOo߲e$@$@$@$@%@5=]GIHHHKjzz-#   H,: N$@$@$@$^T۷l @b PMOlQp    ޾eHHHHKjzb -[F$@$@$@$XTuHHHH o2    خ$@$@$@$@%@5=}˖ $v'   H/[HHHH '(8 @z PMOo߲e$@$@$@$@%@5=]GIHHHKjzz-#   H,: N$@$@$@$^T۷l @b PMOlQp    ޾eHHHHKjzb -[F$@$@$@$XTuHHHH o2    خ$@8vX6|p[>})Sw>}+V8A%i͙3lʔ)r|ӦM7tkMPLK$@$PWc$P5k6yd4|ҥ•׭[?qiDGo׮]MMAAV%/^(J7nUW]TYf!پ}6mZd  p\$@#uV~ڵ/g~ζA~g8t#GbѣǏ~_HHӐ @˗/YF D}h7n={l |. k;yUDHH1k O Ą"c96lبQ)SdG@ rd1k+! H*I9M$@Ν5Ev It-ZpB]C.pFW:ЈX4`H$@$@J  TRԮ];4/:$@$@'@kz DI@e.%<^e @qhM/s $z|PѣʒvPR  @kzUt3I$tЀO9ut   ۮ`$@%$eFQ X4 GN/cn    (ZKE @qǏIHHHH*$    PM/s @ PM/TI$@$@$@$@^?&    ^,HHHH#@58~M$@$@$@$@% @5PY$ GjzqHHHHJ@jz H    (17 @e$@$@$@$@$Pcn    (V1tM*IENDB`@="?Y,KgR+UxYMh\U>e&34ɔ&Zl*tNP6Tр.D34kh4PȬą.\v)H]DpQAĮD݈ Xb<93'w{1ww߽ ,AqI00;*Q@nz0F<>$ӷNטh+H<CX>uu#.W:Bo?^Tw#C"őVںX)2Fв{qKF`󻸆a5UT67705w@gRAɢ\;+{MUޯ*:\ؙs[rgJ7o~r%L%2!F'n?ϟZw7clޝuE$ƻ(5xgv=N/`-SG .>7q }*ffnrw }tg'tkR9ftpY lo[*A<\%l}xe'9 tnXz1Sϸ>1/y]k3y7iSE?a5<3{UN5'm*T1>4◾D~!D/s^GmV^˦qc'9J~bhz9yQ QwmCs~$G ј ~.V,H_$ hѓs/ fLu-Cb2Hq84kTj`8bSN\N =rmy"9 YKm'_ 5u62/vpX0??R<망F 2q׎!rlu 89,u}wwMQ7`5˺%ԓ./"oFlҷ?WF1GQ?S73^ߙ*Nnҷ|LR>\?79Ve,Yη-Ku#P=v4G'e,%9?~l^r !ccb#Yl2$>c}/;E{W\GւkBils/GXy0jel7eu=&_y`<&c=Fv`ӱK(  h Worksheet Excel.Sheet.802Microsoft Excel Worksheet ZWorksheet Excel.Sheet.802Microsoft Excel Worksheetn/ 0|DTimes New RomanTT/ܖ 0ܖDArialNew RomanTT/ܖ 0ܖ DTahomaew RomanTT/ܖ 0ܖ"0DWingdingsRomanTT/ܖ 0ܖ@De0}fԚingsRomanTT/ܖ 0ܖ A.@  @@``  @n?" dd@  @@`` 80h[IM$ + )/ 012 56012:;:3; 4<:=5>?G@A BPCDESF) G6I* DHPPQRST`2$ε@*  zW2$ju{o{ W2$[bٽxomb 2$bf`w%Շ bDr$߿ߝXoifL/r$g\Oy Eki/b$pxIJ=0"$"?Y AA1))?@8VWg4KdKdX< 0ppp@ g42d2dTn 0ppp@  <4BdBd x 0Tʚ;ʚ;<4!d!d  x 0 <4dddd  x 0 0___PPT10 n___PPT9P/ 04?^+ 4/9/97 6\course\cpeg323-05F\Topic7aO 5: An Introduction to Cache Design!!b, !  Cache`  I A safe place for hiding and storing things. Webster Dictionary(J 7`b I   Even with the inclusion of cache, almost all CPUs are still mostly strictly limited by the cache access-time: In most cases, if the cache access time were decreased, the machine would speedup accordingly. - Alan Smith - Even more so for MPs!b x#`Jdi` b`b     While one can imagine ref. patterns that can defeat existing cache M designs, it is the author s experience that cache M improve performance for any program or workload which actually does useful computation. `     Optimizing the design of a cache memory generally has four aspects: Maximizing the probability of finding a memory reference s target in the cache (the hit ratio), Minimizing the time to access information that is indeed in the cache (access time), Minimizing the delay due to a miss, and Minimizing the overheads of updating main memory, maintaining cache coherence etc. E  0 " F`T`dddJ` d`d"`d`d` u  /Key Factor in Design Decision for VM and Cache00` 0 QAccess-timeMainMem Access-timeCache Access-timeSecondaryMem Access-timeMainMem tR `h `h` h ` h               [1   \0   Four Questions for Classifying Memory Hierarchies: The fundamental principles that drive all memory hierarchies allow us to use terms that transcend the levels we are talking about. These same principles allow us to pose four questions about any level of the hierarchy:l `1``b`8d`     Q1: Where can a block be placed in the upper level? (Block placement) Q2: How is a block found if it is in the upper level? (Block identification) Q3: Which block should be replaced on a miss? (Block replacement) Q4: What happens on a write? (Write strategy)  `d.`d<`d3`d `d`     These questions will help us gain an understanding of the different tradeoffs demanded by the relationships of memories at different levels of a hierarchy.( `b     0 1 2 3 4 5 6 7 TAGS DATA 0117X 35, 72, 55, 30, 64, 23, 16, 14 7620X 11, 31, 26, 22, 55, & 3656X 71, 72, 44, 50, & 1741X 33, 35, 07, 65, ...X 4bbbbb   teff : effective cache access time tcache : cache access time tmain : main memory access time h : hit ratio teff = htcache + (1-h)tmainH `h!``h``h```bbjbbjbbbbj !    /     Example`  Let tcache = 10 ns - 1- 4 clock cycles tmain = 50 ns - 8-32 clock cycles h = 0.95 teffect = ? 10 x 0.95 + 50 x 0.05 9.5 + 2.5 = 12c  (  (D ``h&``h#`` `bj `DbZ  &  0  O  Hit Ratio `  Need high enough (say > 90%) to obtain desirable level of performance Amplifying effect of changes Never a constant even for the same machine`  /Sensitivity of Performance w.r.t h (hit ratio)40`b b 0 teff = h tcache + (1-h) tmain = tcache [ h + (1-h) ] tcache [ 1 + (1-h) ] since 10, the magnifactor of h changes is 10 times. Conclusion: very sensitiveY  27  2 `h``h````h``h```` `h````&``` ``          "   7  Remember:  h 1 Example: Let h = 0.90 if h = 0.05 (0.90 0.95) then (1 - h) = 0.05 then teff = tcache ( 1 + 0.5)    n bb````` bbbbbbbbbbbbbjbbj b@s      Basic Terminology`  8Cache line (block) - size of a room 1 ~ 16 words Cache directory - key of rooms Cache may use associativity to find the  right directory by matchingp$ J b*bbZb&e   + Cache Organization`  Fully associative: an element can be in any block Direct mapping : an element can be in only one block Set-associative : an element can be in a group of block`   An Example `  Mem Size = 256 k words x 4B/W = 1 MB Cache Size = 2 k words = 8 K byte Block Size = 16 word/block = 64 byte/block So Main M has = 16 K blocks (16,384) Cache has = 128 blocks addr = 18 bit + 2 = (28 x 210) x 22\ x`h`h`h4   # Fully Associative`  Feature any block in M can be in any block-frame in cache all entries (block frame) are compared simultaneously (by associative search)4 ``   Tsimplest example: a block = a word entire memory word address becomes &U `Eb U Direct Mapping`  lNo associative match From M-addr,  directly indexed to the block frame in cache where the block should be located. A comparison then is to used to determine if it is a miss or hit. & `2      Direct Mapping `  hAdvantage: simplest: Disadvantage:  trashing 5 5` 5 !"Direct Mapping `  Example: since cache only has 128 block frames so the degree of multiplexing: Disadr:  trashing , M m`&Y   "##$Direct Mapping`  (Mapping (indexing) block addr mod (# of blocks in cache  in this case: mod (27)) Adv: low-order log2 (cache size) bit can be used for indexingV Rbjbj+b&  x $%Set-Associative`  A compromises between direct/full-associative The cache is divided into S sets S = 2, 4, 8, & If the cache has M blocks than, all together, there are E = blocks/set # of buildings available for indexinglO i QbbVb.b  X/&'  thus or(  b b   ]2Sector Mapping Cache`  Sector (IBM 360/85) - 16 sector x 16 block/sector 1 sector = consecutive multiple blocks Cache miss: sector replacement Valid bit - one block is moved on demand Example:D2o 2`o` `  (()) ;Cache has = 8 sector Main memory has = 1K sectorsL< ``!`` ` < +,,.Total # of Bits in a Cache`  Total # of bits = (# of bits of a tag + # of bits of a block + # of bits in valid field) x Cache size For a MIPS example : = ((32-14-2) + 32 + 1) x 214 = 214 x 49 = 784 k bits ~ 100 kbytes babbbjbj$b&   /./01234567 8 9 : ; <?@ABCDEFGHIJKLN P"Q#S%T&Y'<,  0` @EoOV` @Eff؂o` MMMwww` 33f3Ƨgzf` 3ffE` JH3f̙ff` 33̙fRP` =bf>?" dP@(? " nd@-< `_@`A`n< n?" ddH ""DDffPN    @ ` ` p@@ H(@(CCP'(  P!T  P "b  P# " \  P "B P HDA "B P HDA "B P HDA "@@B P HDA "B  P HDA "B  P HDA "B  P HDA "@@B  P HDA "B  P HDA "B P HDA "B P HDA "@@B P HDA "  B P HDA "  B P HDA "  B P HDA "@ @ B P HDA "  B P HDA "  B P HDA "  B P HDA "@@B P HDA "B P HDA "B P HDA "z\  P "B P HDA "B P HDA "B P HDA "@@B P HDA "B  P HDA "B !P HDA "B "P HDA "@@B #P HDA "B $P HDA "B %P HDA "B &P HDA "@@B 'P HDA " B (P HDA " B )P HDA " B *P HDA "@ @ B +P HDA " B ,P HDA " B -P HDA " B .P HDA "@@B /P HDA "B 0P HDA "B 1P HDA "B 2P HDA "@@B 3P HDA "B 4P HDA "B 5P HDA "B 6P HDA "@@B 7P HDA "B 8P HDA " 9P # t?A?60%"@`tB :P 6D"tb `  ;P# "|i4 tB PB  BCENGGHʲI[TQ zR(VzR(V[T`TzR(V[T`T" ?P 6 "  X Click to edit Master title style!!  @P @ Rectangle: Click to edit Master text styles Second level Third level Fourth level Fifth level"0  TClick to edit Master text styles Second level Third level Fourth level - Fifth level!   U  AP 6 "``  j* c    BP 6( "`   l*  c    CP 68 "`   l*  c   H P 0޽h ?>P @Eff؂o Blueprint*  0 **GGT*(  TB$T  T "6b  T# " T T??"@`\  T "B T HDA "B T HDA "B T HDA "@@B  T HDA "B  T HDA "B  T HDA "B  T HDA "@@B  T HDA "B T HDA "B T HDA "B T HDA "@@B T HDA "  B T HDA "  B T HDA "  B T HDA "@ @ B T HDA "  B T HDA "  B T HDA "  B T HDA "@@B T HDA "B T HDA "B T HDA "B T HDA "B T HDA "B T HDA "@@B T HDA "B  T HDA "B !T HDA "B "T HDA "@@B #T HDA "B $T HDA "B %T HDA "B &T HDA "@@B 'T HDA " B (T HDA " B )T HDA " B *T HDA "@ @ B +T HDA " B ,T HDA " B -T HDA " B .T HDA "@@B /T HDA "B 0T HDA "B 1T HDA "B 2T HDA "@@B 3T HDA "B 4T HDA "B 5T HDA "B 6T HDA "@@B 7T HDA "B 8T HDA "tB 9T 6D"$\ /c3  :T "/c3 B ;T 6D"/3 ,$D  0tB TB  ZBCENGGHʲI[TQ zR(VzR(V[T`TzR(V[T`T"]Ft\  ?T "tB @T 6D"r r tB ATB 6D"442 BT  ZBCENGGHʲI[TQ zR(VzR(V[T`TzR(V[T`T"   CT 6C "Pp  C X Click to edit Master title style!!  DT tC Rectangle: Click to edit Master text styles Second level Third level Fourth level Fifth level"%p0u  C [#Click to edit Master subtitle style$$  ET 6DC "`` C j* c    FT 6C "`  C l*  c    GT 6C "`  C l*  c   H T 0޽h ?/ >TBT @Eff؂o 0 ( du "  TXCjJjJ ?\"  C *b   H""DDff$  TLjJjJ ? " C *b   H""DDff(  Z LjJjJ ?\  L *b   H""DDff*  ZLjJjJ ?  L *b   H""DDffp  01 ?&2  L?  TLgֳgֳ ? C L SClick to edit Master notes styles Second Level Third Level Fourth Level Fifth Level"    T H  0qi6Ɍ? ? a(80___PPT10. PH (      TjJjJ ?\"   *b   H""DDff"  T<jJjJ ? "  *b   H""DDff&  Z8jJjJ ?\   *b   H""DDff(  ZjJjJ ?   *b   H""DDffH  0qi6Ɍ? ? a(80___PPT10.G 0 nf0(    3 rCgֳgֳ ?CT@` C H  0޽h ? 333gggy___PPT10Y+D=' @= @B +  0 6.(    # lLHLgֳgֳ ??PP  L   3 rILgֳgֳ ?@P  L H  0޽h ? 333gggy___PPT10Y+D=' @= @B +A  0 h` (     # ldQLgֳgֳ ?@P0@  L H  0޽h ? 333gggy___PPT10Y+D=' @= @B +A  0 h`((  ( ( # l I.b  38     8 7w   8 TBgֳgֳ?     = 104 ~ 106F bjbj    8 TȑLgֳgֳ? _  I.b    8 TLgֳgֳ? I  w1Cache control is usually implemented in hardware.22` 2 H 8 0޽h ? 333gggy___PPT10Y+D=' @= @B +[ 0 z@@( X @ @ HA ??~w X $ 0 0 @ 3 rL1))? eTechnology in 1990s:  g(   @ 3 rL1))? z{  Bb  @ 3 rL1))? ,  eTechnology in 2000s ? g(  H @ 0޽h ? 333gggy___PPT10Y+D=' @= @B +\  0 sk0d(  d d HA  ??|w X  $ 0 0 d 3 rL1))? eTechnology in 2000s:  g(   d 3 rhL1))? z{  Bb H d 0޽h ? 33___PPT10i. p\+D=' @= @B +  0 8 0 PH( ؔ H8 Di& HiD&l H <1?Ii" H TXLgֳgֳ?D& Q Processor b  d H <1?id  H T Bgֳgֳ?  MCacheb  8     H  l H <1?   H ThLgֳgֳ? t V Main Memory  b  8 }*   H}* l  H <1?2}    H TLgֳgֳ?*  aSecondary Memoryb  pB  H H1?7(7pB H H1?7s 7pB H H1?7,7 H TLgֳgֳ?# c C  gCache in Memory Hierarchye  H H 0޽h ? 333gggy___PPT10Y+D=' @= @B +% 0 <4 `(  ` ` TA ?@P` LH ` 0޽h ? 33___PPT10i.+D=' @= @B +A  0 h`@P(  P P # l;gֳgֳ ?@PG!,  H P 0޽h ? 333gggy___PPT10Y+D=' @= @B +   0 PX;(  X X 3 r?gֳgֳ ?@PH   5 X C xC1))?v 1Four Questions for Classifying Memory Hierarchies2 2a1  H X 0޽h ? 333gggy___PPT10Y+D=' @= @B +G   0 nf``( ֳ ` ` 3 rJgֳgֳ ?@Pm@   H ` 0޽h ? 333gggy___PPT10Y+D=' @= @B +    0   phK (  h h # lLgֳgֳ ?@PZ   48 &   hh l h <1?+xB h H1?&xB h H1?\\xB h H1?zzxB h H1?l h <1? ~B  h N1?~B  hB N1?d  h <1?1 ^   h TdTgֳgֳ? @c  M01173b  d h <1?s    h NYgֳgֳ?g   J30b  dB h@ <1? UWs  h T\gֳgֳ?$% o#Concept of Cache miss and Cache hit$$d $  h TPbgֳgֳ?iAc NLineb  jB h B1?X h Tfgֳgֳ?o 6i  WADDRESS DATAb  H h 0޽h ? 333gggy___PPT10Y+D=' @= @B +A   0 h`p( d p p # l{gֳgֳ ?@Pyf  H p 0޽h ? 333gggy___PPT10Y+D=' @= @B +    0 0(x(  x x # lgֳgֳ ??PO    x # lgֳgֳ ?@Pb  H x 0޽h ? 333gggy___PPT10Y+D=' @= @B +  0 6.(    # llgֳgֳ ??Pi9     3 rDgֳgֳ ?@Pi   H  0޽h ? 333gggy___PPT10Y+D=' @= @B +   0 G ?  (    # lgֳgֳ ??P#     # lgֳgֳ ?@Pc   8 -     y B  TĔgֳgֳ?-    tmain tcacheR P`h``h4    xB  H1?T   8 /  -    { - B  TMBgֳgֳ?/  -   tmain tcacheR P`h``h4    xB  H1?M f f 8 o    ? n B  T̟gֳgֳ?o    tmain tcacheR P`h``h4    xB   H1?(Q Q    T(gֳgֳ?   M~ ~`  H  0޽h ? 333gggy___PPT10Y+D=' @= @B +j  0 !(    # lgֳgֳ ?@P.N    N0Lgֳgֳ?  M~ ~`  jB  B1? " jR  BG/*1? .^ jR  BG/*1?  2  H  0޽h ? 333gggy___PPT10Y+D=' @= @B +  0 o(    # lgֳgֳ ??PS     # lgֳgֳ ?@P9Y     T4Bgֳgֳ?W ]_  A collection of contiguous data that are treated as a single entity of cache storage. YPYb X !  Tgֳgֳ?  C  SThe portion of a cache that holds the access keys that support associative access.TPTb T    BCDEF1?E5 @O  H  0޽h ? 333gggy___PPT10Y+D=' @= @B +  0 6.(    # lgֳgֳ ??PxH     3 rgֳgֳ ?@PD   H  0޽h ? 333gggy___PPT10Y+D=' @= @B +   0 G ?   (    # lTgֳgֳ ??PW'     # l,gֳgֳ ?@P.DN    Zgֳgֳ? B,  S256K 16c  vB  N1?I   Z@[Bgֳgֳ?N   Q2K 16c  vB  N1? &\    TLgֳgֳ?4  P(byte)b     BQCNDEF1?MPMP @r X   Tgֳgֳ?  L20b     B5CDEF1?#<4E @ O   Tgֳgֳ?t [ M256b     B5CDEF1?#<4E @ u z  Tgֳgֳ?+  k KKb    C x1))?lf W S Swords c  H  0޽h ? 333gggy___PPT10Y+D=' @= @B +  0 6.(    # l0gֳgֳ ??Pj:     3 rgֳgֳ ?@P$Y   H  0޽h ? 333gggy___PPT10Y+D=' @= @B +  0 }( 4   # lgֳgֳ ?@Pb  d  <1?b  Ttgֳgֳ?q ZAddress 027560xb    Tgֳgֳ?  S 0 17  b     B4CkDEF1?j33P @' 9 pB  H1? 8  pB  H1?# : # pB  H1? =  pB  H1?'    TTgֳgֳ?( U "  m 027560 datab    T~Cgֳgֳ?Q K  S 0 17  b  B  TG  Z0gֳgֳ?7 MTagb  j  B1?/ ?   Zgֳgֳ? /  MTagb    ZDgֳgֳ?LU  l Block 0 Block 1 Block 127!s!b !    `Zgֳgֳ?  D& & & & & ...##b # j  B1?& D vB  N1? HvB  N1? LvB  N1? LvB  N1?u LuvB  N1? LvB  N1?o do P  Zgֳgֳ?H  zBlock 0 Block 1 Block 2 Block 127 Block 128 Block 129 Block 255 Block 256 Block 257 Block 4095 Block 4096 Block 16383{Z{b {    `gֳgֳ?D+ O...b     BZCDEF1?Y{Y @ V }   BZCDEF1?Y{Y @. X    B[CDEF1?Z|Z @ Z 6|B ! T1?<|B " T1?CMM # Zgֳgֳ?2E P7 bitsb   pB $ H1?pB %@ H1?P, & Zgֳgֳ?   ]Main memory addressb   ( Zgֳgֳ?Q  MCacheb   ) Zgֳgֳ?f S Main memory b  vB * N1? IvB + N1? HvB , N1? H -  ` gֳgֳ?,D+  O...b   .  ``gֳgֳ?D+ O...b  vB / N1? LvB 0 N1? LvB 1 N1?5 @5vB 2 N1?M PMvB 3 N1? H vB 4 N1? @  5  `gֳgֳ? D+  O...b  vB 6 N1? D  7  BlCDE F1?k/k@xW _ 8  BlCDE F1?kk@/W @|B 9 T1??W  :  BtCDE F1?ss@O  ;  BlC.DE F1?k-k&@W   <  BtC7DE F1?ss6@% O \ j = B1?)  vB > N1?.   ?  BC:DEF1?$9x9 @ < X  @  BC&DEF1?%% @ D  A Zgֳgֳ?d  8v ~( Tag Block Word )F)b ( vB B N1?& P P  C  BjC(DEF1?'N'i @ V F  D Zgֳgֳ?1 h   c7 7 4b  H  0޽h ? 333gggy___PPT10Y+D=' @= @B +  0 P(    # l"gֳgֳ ??PF     3 r#gֳgֳ ?@P     T%gֳgֳ?ZA T Cont db  H  0޽h ? 333gggy___PPT10Y+D=' @= @B +?  0 f^`(    # l3gֳgֳ ??P]     # lt4gֳgֳ ?@P6   8    Y   T$6gֳgֳ?  MM SZ`  xB  H1? jB @ B1? {C   C xdsL1))?u. k#In our example, S = 128/2 = 64 sets$ $ $ H  0޽h ? 333gggy___PPT10Y+D=' @= @B +4' 0 44OOX+4(  Xd X <1? b E : X  BCDE4F<1? Pb=O@c pB X H1?cc pB X H1?  X X 0?.}X X 0? < d X <1?=i d  X <1?i :  X  BCDE4F<1? Qc=O@j td  X <1?>`  X TLgֳgֳ?6X MTagb  F  d  X  dl X <1? dS X TOgֳgֳ?2T MTagb  d X <1? X  X TDTgֳgֳ?o .P/  MTagb  " X TXgֳgֳ?42v K  6Block 0 Block 1 Block 2 Block 3 Block 126 Block 1278 7b 7 d X <1? e{ pB X H1?> i>pB X H1? epB X H1? upB X H1? ipB X H1? e  X TD`gֳgֳ?  LBlock 0 Block 1 Block 63 Block 64 Block 65 Block 4095 Block 16383MPMb M  X Z]gֳgֳ? O...b   X  BZCDEF1?Y{Y @E w  X  BZCDEF1?Y{Y @  y 4  X  B[CDEF1?Z|Z @ { vB X N1?$$:vB X N1?nnA  X Tjgֳgֳ?fF P8 bitsb   jB !X B1?<jB "X@ B1?qM #X Tngֳgֳ?xr& L MCacheb   $X Tgֳgֳ?zN S Main memory b  pB %X H1?* j*pB &X H1?8 i8pB 'X H1? lpB (X H1? mpB )X H1? i pB *X H1?v iv F &:  +X : & ,X TLxgֳgֳ?&: ! ]Main memory addressb  l -X <1?P xB .X H1?U , /X  BC:DEF1?$9x9 @E]  0X  BC&DEF1?%% @Ek  1X T}gֳgֳ?" Y ~( Tag Set Word )F)b ( xB 2X H1?q M q $ 3X  BjC(DEF1?'N'i @w Em 4X Tgֳgֳ? X , c8 6 4b   5X  BZCDEF1?YY @?pB 6X H1?o pB 7X H1?c pB 8X H1? ` F  d 9X  dl :X <1? $d ;X T̉gֳgֳ?2T MTagb  F  dj X Thgֳgֳ?2Tj MTagb   ?X Txgֳgֳ?ri MSet 0b  1F  @X  AX  BZCDEF1?YY @ BX T gֳgֳ?Ur MSet 1b  2F ' 8  CX  '8  DX  BZCDEF1?YY @ 8  EX Tgֳgֳ?'   NSet 63b  F Z X  FX Z X l GX <1? X  HX TPgֳgֳ?&Z H  MTagb  pB IX H1? h JX ZHgֳgֳ?8x O...b  pB KX H1? e  LX  BtCDEF1?s/ssj @p v  MX  B|C[DE F1?sZ{`@p vB NX N1?u x 5 e OX C xX1))?Md aThe 6-bit will index to the right set, then the 8-bit tag will be used for an associative match.b bca  H X 0޽h ? 333ggg   0 p\(    3 rLgֳgֳ ?@Pl  d  <1?s,BpB  H1?p G   BC;DEF1?:: @gB   BC/DEF1?.l. @g )  Tgֳgֳ?  ]Set Word Fb  vB  N1?pNNG    BEC*DEF1?!)")D @gZ    Tdgֳgֳ?rpF a8 6 4 2b     Ngֳgֳ?0ppw m%a 2-way set associative organization:&&b & j   B1?q<AjB   B1?7x x   Tgֳgֳ?8  ^available for indexingb  s8 A +  A + @          TLgֳgֳ? $   214 (16k) 26H bjbj  xB  H1?    Tgֳgֳ? ? 9  u= 28 block/set6bj b  :  Tgֳgֳ?A 1 +   28 block/per set of 2 blocksTbjbbb  :  Tgֳgֳ? ^&  j6 bit used to index into the right  set higher order6P6b 6 0  Tgֳgֳ?  `8 bit used as tag hence an associative match of 8 bit with the tags of the 2 blocks is requiredaPab a d2  <1?     BCDEF1?; @  3 d2  <1?E    B?CDE F1?>>@     T$gֳgֳ?$  M2 wayb  d2  <1?~ jB @ B1?I o   Tgֳgֳ? / ~ QHence an associative matching of 8 bit with the tags of the 2 block is required.RRb R H  0޽h ? 333gggy___PPT10Y+D=' @= @B +   0  ~ @h (  hr h S ?P   r h S @P0   h C x1))? _*  F a F + l h  M l h <1?_ ~ xB h H1?   h  BC:DEF1?$9x9 @e    h  BC&DEF1?%% @ {  h Tgֳgֳ?& l v,Sector block word (tag)-F-b -   h Tgֳgֳ?+ %  o'0 6 7 13 14 17((b ( xB  h H1?    h  BjC(DEF1?'N'i @  h TsCgֳgֳ?/   c7 7 4b    h C x|@(1))?   x0A sector in memory can be in any sector in cache1 1 1 H h 0޽h ? @Eff؂o80___PPT10.``;" 0 E:=: RR 9( X   R   `1))?4d   <1? c 4    BCDE4F<1? Pb=O@~h ^pB   H1?R' pB   H1?Rg h ' X   0?PX   0?u` Pd   <1?k Ld   <1?So 4    BCDE4F<1? Qc=O@'p d   <1?4   TP+gֳgֳ?j MTagb  d   <1? }m    T.gֳgֳ?  MTagb  =   T2gֳgֳ?H  QBlock 0 Block 1 Block 14 Block 15 Block 16 Block 31 Block 112 Block 1278GFP FRb R d   <1? H pB   H1?KvB   N1?WpB   H1?5C5pB   H1? P 9   T;gֳgֳ?% 5  MBlock 0 Block 1 Block 15 Block 16 Block 31 Block 16368 Block 163838P Z(PNb N    ZPCgֳgֳ?; O...b      BZCDEF1?Y{Y @ w    BZCDEF1?Y{Y @(     B[CDEF1?Z|Z @ 0   TEgֳgֳ? f  U Valid bit F b  vB   N1?UpB   H1?KpB   H1?FvB   N1? C 8 k  (  k   T@Lgֳgֳ?k  ]Main memory addressb  l   <1?   xB !  H1?   "   BC:DEF1?$9x9 @  I  #   BC&DEF1?%% @H 5  $  TlQgֳgֳ?g U  4 Sector Block Word (tag) 5F5b 4 xB %  H1?   &   BjC(DEF1?'N'i @ &7  '  TRgֳgֳ? "   d10 4 4b   )   BDCGDEF1?CF$C @<pB *  H1?Ep EpB +  H1?x pB ,  H1?$ Y $ 8  / l -  <1?! .  TL\gֳgֳ? MTagb   0  NP_gֳgֳ?A  PSector 0 b   1   BZCfDEF1?YeGY @;O 2  Ncgֳgֳ?  e Q Sector 1  b   3   BECDEF1?DgD @ M  4  Nggֳgֳ?O   PSector 7 b  vB 5  N1?+J+ 6  Zkgֳgֳ?   O...b  vB 7  N1? G pB 8  H1?] ] pB 9  H1?i pB :  H1?u  ;  Zpgֳgֳ?}l O...b  pB <  H1?}r }pB =  H1?.} . >  Zlugֳgֳ?|}\ O...b  pB ?  H1?u i u  @  Z0zgֳgֳ?\ }<  O...b  jB A  B1?vB B  N1?-P- C  Z~gֳgֳ? U . . .  b   D   B#CfDEF1?e"2"' @ E @ NЃgֳgֳ? PSector 0 b   F   B+C8DEF1?7**$ @" G   B,CDEF1?++ @   H @ N gֳgֳ?> PSector 1 b   I @ Ngֳgֳ?  PSector 0 b   J @ Ndgֳgֳ? c  S Sector 1023 b   K   B#CfDEF1?"e3(" @&  L   BC(DEF1?'# @ M   B,CDEF1?++ @ 2  N   B)CDEF$1? V a( i@J  vB O  N1?   P   B)CDE F1?(@J   Q  Zhgֳgֳ?+ `Sector mapping cached  H   0޽h ? 333gggy___PPT10Y+D=' @= @B + # 0  (m( ֳ ( ( # lĚgֳgֳ ?@P?_   ( Zgֳgֳ?}* 7 e128 blocks 16 blocks/sectorb  vB ( N1?~ ~8  T  ((  ( T gֳgֳ? T  l16k 166bjb  xB ( H1? d  ( <G/*1? i   ( Thgֳgֳ?P p  `Sector mapping cached    ( Tgֳgֳ?-9 T cont db  H ( 0޽h ? 333gggy___PPT10Y+D=' @= @B +~!% 0   5585 ( m gj 8^ 8 61?y 8 Tgֳgֳ?_s <Address (showing bit positions) 31 30 29 28 27& & ..16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0(s `Sb s ^ 8 61?s9d 8 <1?79 pB 8 H1?5pB 8 H1?O5OpB 8 H1?5pB  8 H1?s5spB  8 H1?5pB  8 H1? 5 pB  8 H1? 5 pB  8 H1?# 5# pB 8 H1?? 5?  8 T|gֳgֳ?^q I }5Index Valid Tag Data66b 6 pB 8 H1?3 pB 8 H1?7ee ^2 8 61?^2 8 61? ^2 8 61? pB 8 H1?u  pB 8 H1?u 8 TDgֳgֳ? W Byte offset P b  8 +  8 + l2 8 <1?+ u  8 T0gֳgֳ?-  I=b  8 x0 P 80 xPr 8 BG1?T 0xB 8 H1? 4 ` 8 0?x0 P jB 8 B1?   8  BCmDEF1?00l @|  pB !8 H1?  "8  BC DEF1?  @N? #8  BCxDEF1?||ww @H+   $8  BZ CDEF1?`Y Y @0 %8  BbCDEF1?aa @ B  &8 Tgֳgֳ?U) LDatab   '8 Tgֳgֳ?< H J10b  pB (8 H1?j&8 B +8BxB )8 H1? *8 Tgֳgֳ?B J20b   ,8 Tgֳgֳ?nJ KTagb   -8 TDgֳgֳ? KHitb   .8 Tgֳgֳ?  s'0 1 2 . . . . . . . . . 1021 1022 1023({(b  ( 8 a n  18 a n xB /8 H1?a .  08 T(gֳgֳ? n  J20b  8  j  48 j xB 28 H1?  *  38 Tgֳgֳ? j  J32b   58 C x1))?e&  Y MIPS Example a  H 8 0޽h ? 333gggy___PPT10Y+D=' @= @B +7 & 0 ^V@(  @ @ # l#Bgֳgֳ ??P|L  C  @ # l$Bgֳgֳ ?@Pt  B  @  BC%DEF1?$l! @Y   @ TH&Bgֳgֳ?1~  %= 64 K (bytes) = 214 blocks with <&bjb &  @ C xC1))? m!Assuming a directly-mapped cache." "a " H @ 0޽h ? 333gggy___PPT10Y+D=' @= @B +f 0 &(     H1 ?%2   L   f.Lgֳgֳ ? C  L @` H  0qi6Ɍ ? a(f 0 &( X    H1 ?%2      fgֳgֳ ? C   @` H  0qi6Ɍ ? a(f 0 &$( QlUR4 $ $  H1 ?%2    $  f gֳgֳ ? C   @` H $ 0qi6Ɍ ? a(f 0 &,(  , ,  H1 ?%2    ,  fgֳgֳ ? C   @` H , 0qi6Ɍ ? a(f 0 &4(  4 4  H1 ?%2    4  f4 gֳgֳ ? C   @` H 4 0qi6Ɍ ? a(f 0 &<(  < <  H1 ?%2    <  fgֳgֳ ? C   @` H < 0qi6Ɍ ? a(f 0 &D(  D D  H1 ?%2    D  f8gֳgֳ ? C   @` H D 0qi6Ɍ ? a(f 0 & L(  L L  H1 ?%2    L  fgֳgֳ ? C   @` H L 0qi6Ɍ ? a(f  0 &0T(  T T  H1 ?%2    T  fgֳgֳ ? C   @` H T 0qi6Ɍ ? a(f  0 &@\(  \ \  H1 ?%2    \  f&gֳgֳ ? C   @` H \ 0qi6Ɍ ? a(f  0 &Pd(  d d  H1 ?%2    d  f-gֳgֳ ? C   @` H d 0qi6Ɍ ? a(f  0 &`l(  l l  H1 ?%2    l  f3gֳgֳ ? C   @` H l 0qi6Ɍ ? a(f 0 &pt(   t t  H1 ?%2    t  f$:gֳgֳ ? C   @` H t 0qi6Ɍ ? a(f 0 &|( "g | |  H1 ?%2    |  f4'gֳgֳ ? C   @` H | 0qi6Ɍ ? a(f 0 &( X    H1 ?%2      fDgֳgֳ ? C   @` H  0qi6Ɍ ? a(f 0 &(      H1 ?%2      f`Kgֳgֳ ? C   @` H  0qi6Ɍ ? a(f 0 &( j    H1 ?%2      fPgֳgֳ ? C   @` H  0qi6Ɍ ? a(f 0 &( x    H1 ?%2      fdWgֳgֳ ? C   @` H  0qi6Ɍ ? a(f 0 &(     H1 ?%2      f]gֳgֳ ? C   @` H  0qi6Ɍ ? a(f 0 &(     H1 ?%2      f(dgֳgֳ ? C   @` H  0qi6Ɍ ? a(f 0 &(     H1 ?%2      fjgֳgֳ ? C   @` H  0qi6Ɍ ? a(f 0 &( hb *\    H1 ?%2      fogֳgֳ ? C   @` H  0qi6Ɍ ? a(f 0 &(     H1 ?%2      fvgֳgֳ ? C   @` H  0qi6Ɍ ? a(f 0 & (  ̮`    H1 ?%2      f|gֳgֳ ? C   @` H  0qi6Ɍ ? a(f  0 &0( [`     H1 ?%2      fgֳgֳ ? C   @` H  0qi6Ɍ ? a(f" 0 &@(     H1 ?%2      fgֳgֳ ? C   @` H  0qi6Ɍ ? a(f# 0 &P(     H1 ?%2      f8}gֳgֳ ? C   @` H  0qi6Ɍ ? a(f$ 0 &`(     H1 ?%2      f4gֳgֳ ? C   @` H  0qi6Ɍ ? a(f% 0 &p(     H1 ?%2      fgֳgֳ ? C   @` H  0qi6Ɍ ? a(f' 0 &(     H1 ?%2      fgֳgֳ ? C   @` H  0qi6Ɍ ? a(f( 0 &$(  $ $  H1 ?%2    $  fgֳgֳ ? C   @` H $ 0qi6Ɍ ? a(r) 0 2*,(  , ,  H1 ?%2    , 3 rpA1 ?9 G   @` H , 0qi6Ɍ ? a(r, 0 2*<( hbΐ < <  H1 ?%2    < 3 rA1 ?9 G   @` H < 0qi6Ɍ ? a(r. 0 2*D(  D D  H1 ?%2    D 3 rA1 ?9 G   @` H D 0qi6Ɍ ? a(~/ 0 >6\(  \ \  T1 ?%2    \ 3 rgֳgֳ ? C   @` H \ 0qi6Ɍ ? a( 0xZolG/v;v78sw;M'M.55-*He9ul?*0q V PJOA_DB UPP, H!JEK9)77o潙y3;3CK7 £\|L(J.\9|¿B1"QHAMH**0K2S.wÿ{ǿd֜$̂!ΰ 4OjU|JC[%/1?gN6ON)~EdF?lCmCڎԀԈ !$i'RiR+n6eS{Ÿ iR )~o|i%$}pS$S 酩qIsBLz43eGgzٟ8kRvϿ\~KүYSioDn( =ٳ7wq*yzP8aF.EkB t4ˑGVݲɪ%Xzo ~z&> r,̑ɩKsZCzz 56J49ܝ[>z;|^ϲ^3rqg8R=yQ~&GR3_ъqm y򫗿Mq͉bzȮHK%6vdGzGOOE l& 芹gie JR8% cX:v"NnjQ耎vg.wG Un]lCv=yV{K ^Jn+/<}:V`{VEͿA-aaBas`sErU䲮,gd{!T,/{*(8~q6]oiV|=h &7@7Olz*l67G[[lNWҰ!HkHL؁trցr΁w r_Kঢ়QG|5gw~? ><<#YD?#r<^PM'vm:O6!x6H͌188 EA0W y׊Cp"P1ͳuY~KU+|ihcT];l0%34׼gʵ~Ⱥ iwx@s.Shw cef@d9-} a+4y_k۹Ft!sn!hمӋȍ?G$'f#ɤN3s&_e5SЩ lN==rȐ :1c>k[Ob=eTcݮXg\يM/+ y334&ggt- IPm4c2:@n&E$:{?8ף̯5X#^Ş7uaxt':k,&U:Ucn֠ ד)׳\r=,׳\r=,׳\r=?$MC ilǘՖ%mX5!-m)yH!(y/V?sxM , OHfKYjӷߣBPCm0y|caߋXWQΰ~р>į_)DNugo'܄Q8 i!?72cQ.Nj?DekI{%5?rs#_ ,g\7¸(^ v䬚3Gxi> ocHyRn M,3K9ߪxٮmJ+{~=R.j `\`Os3M Ekp:}$A+^|TU^\esEXdU=#Bn*疗v+,ՁYg=>Zs)9QdOB l=,{n-a{OԐQ˹n%5XB]ypFrq#!S\^+ײw\VŹG_?JZ ߣN!⮖}RO])ʝRwxQ/28n֪e;+8,PeGU=߇qVrnR\KaIcE4X͗deovd;*8?;lRJTqn}t`owEP I' `Y σ= rOmYgNSf*eN=,̙s Yw_{oz%?kdSv@oThf1y[ݲg8>k&3$Qcp>G6+9$%6n^olfԦ;v= uԻYU)+ͽZóʗ nx\kl\>swk;1Izͮ8!M$ ƾ#ضR$!ZԷN1U3s]Y͝3s=sf{?K/_W[V}E:QF30^؎1qƍ f[X)n|waz-0m.?ӯ?.sPm*01@50bCN(ޫ0.g=@K +C9Zd ;44k1YӜD{<;%%ѣl.q>;1xݞm\U5ӼL'M_&̻g'Y,[پDkQMW-M>ɥY = T~z;OTW3 j1͠\Cvb0iKCn)Ûo 8CCx[5uUjXο~a= I8ÔYTl ɯ|lQbhi[OxvhKOE++p/ o_(?,xO?/w2a_/LVir\Ǖx2U㩴 w:5z%hLַ秷c)_T )?rN!NuEG~B'!S0"R|cB4lcރMŋp&|iէ/KI iGBz߿ `a. oDi.,@t. sH?(ax }H}&y< uɞs(-4J7Qj5J(fF!J(Qz^ĈA ʖFGm5\GB290tRHtR7(z"^"5)t=9?"]xxI5rljzbz$'G'̽##V2ighf{OZhd?&)kv|Oe SIp8L4{T;-?IXJw$viT*W)eL\.`6(_ϻ{xC{2}ӷkLIS UW期v(liw74 _ȒG? 6%eS2J nwJԲ)+V$.Y2$}5Cn4l`4/ f\3( V\>+XV𻣏:˯`HZ2 QЂlg& WWiӀO< x4iӀO>D Ȱz9|IW;p>/>Ŀ޹XG+`_Jo+~Sr BG@b @N|Ob64c%kԼ5#먝 V+?²R?8B"7.ptWs;1a!1MTO/E _m}$~%+3>IaGD};e4abf|$aOt$ LۂR>3L6dl,ݑe;yԋy-Z>{|AMPMݒRB1 ;EJT&zYm$!=*x_ÿlX>W/<5-ƕFk #O< x4iӀO< x_+?1QGo̯dW<.ζ.B* I:+U!hc7)I`DT^>Gh*IWzU# 42LkD_cH=+;70KH:_4bnEA&}L(ֳr,I]iEal`6ܳr?8"w\K1I_z Uٞ铢]'r51>dfsNywTd=EuU3,%wW=1%J+;"J^qitZ<_ڧv2^ҥSZe :&3 XԳ5,EinUWݙo8}3Ϫ\]3J 6ssQ.8}>%o N>%yakEey}$Oi%[5žaQ̯{[pt\YAn"=/iDN= 1n--yށEx:>lu3ZD?`.:-ɛ_?yic}[Z -0ZkSpq89^k^j73h1ݮ ス >ߨj CȪ̒<y^<@v)(rp@NH@G"/W!2\_esWN&( SyC+ CKl.svuwRz|. xT0 ?zVĞ2|XƯ4N~P ZS NVKwT5]1Oh+'07D \h    No Slide TitleGuang R. GaoPC:\Program Files\Microsoft Office\Templates\Presentation Designs\Blueprint.potGuang R. Gao62Microsoft PowerPoint 4.0@(ڋ:@GN@ƌ)@`sD4TG 6g  -  y--$xx--'--$:::--'-B( DD--$ --'-B( DD--$ --'-B( DD--$ --'-B( DD--$ --'-B( DD--$ --'-B( DD--$  --'-B( DD--$ $$%%%%%%%%$$--'-B( DD--$ ****++++****--'-B( DD--$ ///00000///--'-B( DD--$ 445555555544--'-B( DD--$ ::::;;;;::::--'-B( DD--$ ???@@@@@???--'-B( DD--$ DDEEEEEEEEDD--'-B( DD--$ JJJJKKKKJJJJ--'-B( DD--$ OOOPPPPPOOO--'-B( DD--$ TTUUUUUUUUTT--'-B( DD--$ ZZZZ[[[[ZZZZ--'-B( DD--$ ___`````___--'-B( DD--$ ddeeeeeeeedd--'-B( DD--$ jjjjkkkkjjjj--'-B( DD--$ ooopppppooo--'-B( DD--$ ttuuuuuuuutt--'-B( DD--$ xxxxx--'-B( DD--$ x x x x x --'-B( DD--$ xxxx--'-B( DD--$ xxxxx--'-B( DD--$ xxxxx--'-B( DD--$ x xxx --'-B( DD--$ %%x%x%x%x$x$%%%%%--'-B( DD--$ ++x+x*x*x*x***+++--'-B( DD--$ 00x0x/x/x//0000--'-B( DD--$ 55x5x5x5x4x455555--'-B( DD--$ ;;x;x:x:x:x:::;;;--'-B( DD--$ @@x@x?x?x??@@@@--'-B( DD--$ EExExExExDxDEEEEE--'-B( DD--$ KKxKxJxJxJxJJJKKK--'-B( DD--$ PPxPxOxOxOOPPPP--'-B( DD--$ UUxUxUxUxTxTUUUUU--'-B( DD--$ [[x[xZxZxZxZZZ[[[--'-B( DD--$ ``x`x_x_x__````--'-B( DD--$ eexexexexdxdeeeee--'-B( DD--$ kkxkxjxjxjxjjjkkk--'-B( DD--$ ppxpxoxoxoopppp--'-B( DD--$ uuxuxuxuxtxtuuuuu--'-B( DD--$ {{x{xzxzxzxzzz{{{--'-B( DD--$ xxxx--'-B( DD--$ xxxxx--'-B( DD--$ xxxxx--'-B( DD--$ xxxx--'-B( DD--$ xxxxx--'-B( DD--$ xxxxx--'o--%)--'o--%A--'o--%Y55--'o--%t --'o-- %     --'o--%)__--'o--%6h--'o-- %__``aaa``_^]]]--'@"Tahoma-. @E2 u 2005/11/15."SystemP9-@"Tahoma-. @E 2 uA\ .-@"Tahoma-. @E2 uBcourse.-@"Tahoma-. @E 2 uH\ .-@"Tahoma-. @E2 uIcpeg323.-@"Tahoma-. @E 2 uP- .-@"Tahoma-. @E 2 uQ05F.-@"Tahoma-. @E 2 uU\ .-@"Tahoma-. @E2 uVTopic7a.-@"Tahoma-. @E 2 u1 .-@Arial-. ff$2 0*An Introduction to .-@Arial-. ff2 A3 Cache Design.-՜.+,0    (Letter Paper (8.5x11 in)d&# -Times New RomanArialTahoma Wingdings 新細明體 BlueprintMicrosoft Excel Worksheet!An Introduction to Cache DesignCacheSlide 3Slide 4Slide 50Key Factor in Design Decision for VM and CacheSlide 7Slide 8Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15Example Hit Ratio0Sensitivity of Performance w.r.t h (hit ratio) Slide 19Basic TerminologyCache Organization An ExampleFully Associative Slide 24 Slide 25Direct MappingDirect Mapping Direct Mapping Slide 29Direct MappingSet-Associative Slide 32 Slide 33Sector Mapping Cache Slide 35 Slide 36 Slide 37Total # of Bits in a Cache  Fonts UsedDesign TemplateEmbedded OLE Servers Slide Titles&$_t 0Guang R. GaoGuang R. Gao  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"$%&'()*1Root EntrydO)PicturesCurrent User#SummaryInformation(8PowerPoint Document(DocumentSummaryInformation8Root EntrydO)6Ƕ5@PicturesCurrent User#SummaryInformation(8     $%&'()*867 ՜.+,D՜.+,    (Letter Paper (8.5x11 in)d&# -Times New RomanArialTahoma Wingdings 新細明體 BlueprintMicrosoft Excel Worksheet!An Introduction to Cache DesignCacheSlide 3Slide 4Slide 50Key Factor in Design Decision for VM and CacheSlide 7Slide 8Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15Example Hit Ratio0Sensitivity of Performance w.r.t h (hit ratio) Slide 19Basic TerminologyCache Organization An ExampleFully Associative Slide 24 Slide 25Direct MappingDirect Mapping Direct Mapping Slide 29Direct MappingSet-Associative Slide 32 Slide 33Sector Mapping Cache Slide 35 Slide 36 Slide 37Total # of Bits in a Cache  Fonts UsedDesign TemplateEmbedded OLE Servers Slide Titles&4 $, PowerPoint Document(DocumentSummaryInformation8(