5HYLHZ5HRUGHU%XIIHU 52% &6 *UDGXDWH&RPSXWHU$UFKLWHFWXUH 8VHRIUHRUGHUEXIIHU /HFWXUH ² ,QRUGHULVVXH2XWRIRUGHUH[HFXWLRQ,QRUGHUFRPPLW ² +ROGVUHVXOWVXQWLOWKH\FDQEHFRPPLWWHGLQRUGHU ,QVWUXFWLRQ/HYHO3DUDOOHOLVP ª 6HUYHVDVVRXUFHRIYDOXHVXQWLOLQVWUXFWLRQVFRPPLWWHG ² 3URYLGHVVXSSRUWIRUSUHFLVHH[FHSWLRQV6SHFXODWLRQVLPSO\WKURZRXW *HWWLQJWKH&3, LQVWUXFWLRQVODWHUWKDQH[FHSWHGLQVWUXFWLRQ ² &RPPLWVXVHUYLVLEOHVWDWHLQLQVWUXFWLRQRUGHU ² 6WRUHVVHQWWRPHPRU\V\VWHPRQO\ZKHQWKH\UHDFKKHDGRIEXIIHU 6HSWHPEHU ,Q2UGHU&RPPLW LVLPSRUWDQWEHFDXVH 3URI-RKQ.XELDWRZLF] ² $OORZVWKHJHQHUDWLRQRISUHFLVHH[FHSWLRQV ² $OORZVVSHFXODWLRQDFURVVEUDQFKHV
&6.XELDWRZLF] &6.XELDWRZLF] /HF /HF
5HYLHZ0HPRU\'LVDPELJXDWLRQ 5HYLHZ([SOLFLW5HJLVWHU5HQDPLQJ 4XHVWLRQ*LYHQDORDGWKDWIROORZVDVWRUHLQSURJUDP 0DNHXVHRIDSK\VLFDO UHJLVWHUILOHWKDWLVODUJHUWKDQ RUGHUDUHWKHWZRUHODWHG" QXPEHURIUHJLVWHUVVSHFLILHGE\,6$ ² 7U\LQJWRGHWHFW5$:KD]DUGVWKURXJKPHPRU\ .H\LQVLJKW$OORFDWHDQHZSK\VLFDOGHVWLQDWLRQUHJLVWHU ² 6WRUHVFRPPLWLQRUGHU 52% VRQR:$5:$:PHPRU\KD]DUGV IRUHYHU\LQVWUXFWLRQWKDWZULWHV ,PSOHPHQWDWLRQ ² 5HPRYHVDOOFKDQFHRI:$5RU:$:KD]DUGV ² .HHSTXHXHRIVWRUHVLQSURJRUGHU ² 6LPLODUWRFRPSLOHUWUDQVIRUPDWLRQFDOOHG6WDWLF6LQJOH$VVLJQPHQW ² :DWFKIRUSRVLWLRQRIQHZORDGVUHODWLYHWRH[LVWLQJVWRUHV ª /LNHKDUGZDUHEDVHGG\QDPLFFRPSLODWLRQ" :KHQKDYHDGGUHVVIRUORDGFKHFNVWRUHTXHXH 0HFKDQLVP".HHSDWUDQVODWLRQWDEOH ² ,IDQ\ VWRUHSULRUWRORDGLVZDLWLQJIRULWVDGGUHVVVWDOOORDG ² ,6$UHJLVWHU⇒ SK\VLFDOUHJLVWHUPDSSLQJ ² ,IORDGDGGUHVVPDWFKHVHDUOLHUVWRUHDGGUHVV DVVRFLDWLYHORRNXS ² :KHQUHJLVWHUZULWWHQUHSODFHHQWU\ZLWKQHZUHJLVWHUIURPIUHHOLVW WKHQZHKDYHDPHPRU\LQGXFHG 5$: KD]DUG ² 3K\VLFDOUHJLVWHUIUHHZKHQQRWXVHGE\DQ\DFWLYHLQVWUXFWLRQV ª VWRUHYDOXHDYDLODEOH⇒ UHWXUQYDOXH $GYDQWDJHVRIH[SOLFLWUHQDPLQJ ª VWRUHYDOXHQRWDYDLODEOH⇒ UHWXUQ52%QXPEHURIVRXUFH ² 'HFRXSOHVUHQDPLQJ IURPVFKHGXOLQJ ² 2WKHUZLVHVHQGRXWUHTXHVWWRPHPRU\ ² $OORZVGDWDWREHIHWFKHGIURPVLQJOHUHJLVWHUILOH :LOOUHOD[H[DFWGHSHQGHQF\FKHFNLQJLQODWHUOHFWXUH ª 1RQHHGWRE\SDVVYDOXHVIURPUHRUGHUEXIIHU ª %HWWHUXWLOL]DWLRQRIUHJLVWHUSRUWV &6.XELDWRZLF] &6.XELDWRZLF] /HF /HF *HWWLQJ&3, ,VVXLQJ 0XOWLSOH,QVWUXFWLRQV&\FOH ,QVWUXFWLRQ/HYHO3DUDOOHOLVP 6XSHUVFDODUYDU\LQJQRLQVWUXFWLRQVF\FOH WR VFKHGXOHGE\FRPSLOHURUE\+: 7RPDVXOR ² ,%03RZHU3&6XQ8OWUD6SDUF'(&$OSKD+3 +LJKVSHHGH[HFXWLRQEDVHGRQLQVWUXFWLRQ 9HU\ /RQJ,QVWUXFWLRQ:RUGV 9 /,: OHYHO SDUDOOHOLVP LOS SRWHQWLDORIVKRUW IL[HGQXPEHURILQVWUXFWLRQV VFKHGXOHG LQVWUXFWLRQVHTXHQFHVWRH[HFXWHLQSDUDOOHO E\WKHFRPSLOHUSXWRSVLQWRZLGHWHPSODWHV +LJKVSHHGPLFURSURFHVVRUVH[SORLW,/3E\ ² -RLQW+3,QWHODJUHHPHQWLQ" SLSHOLQHGH[HFXWLRQRYHUODSLQVWUXFWLRQV ² ,QWHO$UFKLWHFWXUH ,$ ELWDGGUHVV 2XWRIRUGHUH[HFXWLRQ FRPPLWLQRUGHU ª 6W\OH´([SOLFLWO\3DUDOOHO,QVWUXFWLRQ&RPSXWHU (3,& µ 0XOWLSOHLVVXHLVVXHDQGH[HFXWHPXOWLSOH ² 1HZ6810$-,&$UFKLWHFWXUH9/,:IRU-DYD LQVWUXFWLRQVSHUFORFNF\FOH 9HFWRU3URFHVVLQJ 9HFWRULQVWUXFWLRQVPDQ\LQGHSHQGHQWRSVVSHFLILHG ZLWKDVLQJOHLQVWUXFWLRQ ([SOLFLWFRGLQJRILQGHSHQGHQWORRSVDV RSHUDWLRQVRQODUJHYHFWRUVRIQXPEHUV 0HPRU\DFFHVVHVIRUKLJKVSHHG PLFURSURFHVVRU" ² 0XOWLPHGLDLQVWUXFWLRQVEHLQJDGGHGWRPDQ\SURFHVVRUV ² 'DWD&DFKHSRVVLEO\PXOWLSRUWHGPXOWLSOHOHYHOV $QWLFLSDWHGVXFFHVVOHDGWRXVHRI ,QVWUXFWLRQV3HU&ORFN F\FOH ,3& YV&3, &6.XELDWRZLF] &6.XELDWRZLF] /HF /HF
*HWWLQJ&3, ,VVXLQJ 0XOWLSOH,QVWUXFWLRQV&\FOH 5HYLHZ8QUROOHG/RRSWKDW 0LQLPL]HV6WDOOVIRU6FDODU 6XSHUVFDODU '/;LQVWUXFWLRQV)3IDQ\WKLQJ HOVH 1 Loop: LD F0,0(R1) LD to ADDD: 1 Cycle 2 LD F6,-8(R1) ADDD to SD: 2 Cycles ² )HWFKELWVFORFNF\FOH,QW RQOHIW)3RQULJKW 3 LD F10,-16(R1) ² &DQRQO\LVVXHQGLQVWUXFWLRQLIVWLQVWUXFWLRQLVVXHV 4 LD F14,-24(R1) ² 0RUHSRUWVIRU)3UHJLVWHUVWRGR)3ORDGI)3RSLQDSDLU 5 ADDD F4,F0,F2 7\SH 3LSH6WDJHV 6 ADDD F8,F6,F2 7 ADDD F12,F10,F2 ,QWLQVWUXFWLRQ ,) ,' (; 0(0 :% 8 ADDD F16,F14,F2 )3LQVWUXFWLRQ ,) ,' (; 0(0 :% 9 SD 0(R1),F4 ,QWLQVWUXFWLRQ ,) ,' (; 0(0 :% 10 SD -8(R1),F8 11 SD -16(R1),F12 )3LQVWUXFWLRQ ,) ,' (; 0(0 :% 12 SUBI R1,R1,#32 ,QWLQVWUXFWLRQ ,) ,' (; 0(0 :% 13 BNEZ R1,LOOP )3LQVWUXFWLRQ ,) ,' (; 0(0 :% 14 SD 8(R1),F16 ; 8-32 = -24 F\FOHORDGGHOD\H[SDQGVWRLQVWUXFWLRQV LQ66 14 clock cycles, or 3.5 per iteration
² LQVWUXFWLRQLQULJKWKDOIFDQ·WXVHLWQRULQVWUXFWLRQVLQQH[W&6.XELDWRZLF] VORW &6.XELDWRZLF] /HF /HF '\QDPLF6FKHGXOLQJLQ6XSHUVFDODU /RRS8QUROOLQJLQ6XSHUVFDODU 7KHHDV\ZD\ ,QWHJHU LQVWUXFWLRQ )3 LQVWUXFWLRQ &ORFN F\FOH /RRS /') 5 +RZWRLVVXHWZRLQVWUXFWLRQVDQGNHHSLQRUGHU /') 5 LQVWUXFWLRQLVVXHIRU7RPDVXOR" /') 5 $'''))) ² $VVXPHLQWHJHUIORDWLQJSRLQW /') 5 $'''))) ² 7RPDVXOR FRQWUROIRULQWHJHUIRUIORDWLQJSRLQW /') 5 $'''))) ,VVXH;&ORFN5DWHVRWKDWLVVXHUHPDLQVLQRUGHU 6' 5 ) $'''))) 6' 5 ) $'''))) 2QO\)3ORDGVPLJKWFDXVHGHSHQGHQF\EHWZHHQ 6' 5 ) LQWHJHUDQG)3LVVXH 6' 5 ) ² 5HSODFHORDGUHVHUYDWLRQVWDWLRQZLWKDORDGTXHXH RSHUDQGVPXVWEHUHDGLQWKHRUGHUWKH\DUHIHWFKHG 68%,55L ² /RDGFKHFNVDGGUHVVHVLQ6WRUH4XHXHWRDYRLG5$:YLRODWLRQ %1(=5/223 ² 6WRUHFKHFNVDGGUHVVHVLQ/RDG4XHXHWRDYRLG:$5:$: 6' 5 ) ² &DOOHG´GHFRXSOHGDUFKLWHFWXUHµFRPSDUHZLWK6PLWKSDSHU 8QUROOHGWLPHVWRDYRLGGHOD\V GXHWR66 FORFNVRUFORFNVSHULWHUDWLRQ ; &6.XELDWRZLF] &6.XELDWRZLF] /HF /HF
0XOWLSOH,VVXH&KDOOHQJHV :KLOH,QWHJHU)3VSOLWLVVLPSOHIRUWKH+:JHW&3, 9/,:9HU\/DUJH,QVWUXFWLRQ:RUG RIRQO\IRUSURJUDPVZLWK ² ([DFWO\O)3RSHUDWLRQV (DFK´LQVWUXFWLRQµKDVH[SOLFLWFRGLQJIRUPXOWLSOH ² 1RKD]DUGV RSHUDWLRQV ,IPRUHLQVWUXFWLRQVLVVXHDWVDPHWLPHJUHDWHU ² ,Q(3,&JURXSLQJFDOOHGD´SDFNHWµ GLIILFXOW\RIGHFRGHDQGLVVXH ² ,Q7UDQVPHWDJURXSLQJFDOOHGD´PROHFXOHµ ZLWK´DWRPVµDVRSV ² (YHQVFDODU !H[DPLQHRSFRGHVUHJLVWHUVSHFLILHUVIGHFLGH LIRULQVWUXFWLRQVFDQLVVXH 7UDGHRIILQVWUXFWLRQVSDFHIRUVLPSOHGHFRGLQJ ² 5HJLVWHUILOHQHHG[UHDGVDQG[ZULWHVF\FOH ² 7KHORQJLQVWUXFWLRQZRUGKDVURRPIRUPDQ\RSHUDWLRQV ² 5HQDPHORJLFPXVWEHDEOHWRUHQDPHVDPHUHJLVWHUPXOWLSOHWLPHV ² %\GHILQLWLRQDOOWKHRSHUDWLRQVWKHFRPSLOHUSXWVLQWKHORQJ LQRQHF\FOHR)RULQVWDQFHFRQVLGHUZD\LVVXH LQVWUXFWLRQZRUGDUHLQGHSHQGHQW !H[HFXWHLQSDUDOOHO add r1, r2, r3 add p11, p4, p7 ² (JLQWHJHURSHUDWLRQV)3RSV0HPRU\UHIVEUDQFK sub r4, r1, r2 ⇒ sub p22, p11, p4 lw r1, 4(r4) lw p23, 4(p22) ª WRELWVSHUILHOG ! RUELWVWR RU add r5, r1, r2 add p12, p23, p4 ELWVZLGH ,PDJLQHGRLQJWKLVWUDQVIRUPDWLRQLQDVLQJOHF\FOHR ² 1HHGFRPSLOLQJWHFKQLTXHWKDWVFKHGXOHVDFURVVVHYHUDOEUDQFKHV ² 5HVXOWEXVHV1HHGWRFRPSOHWHPXOWLSOHLQVWUXFWLRQVF\FOH ª 6RQHHGPXOWLSOHEXVHVZLWKDVVRFLDWHGPDWFKLQJORJLFDWHYHU\ UHVHUYDWLRQVWDWLRQ ª 2UQHHGPXOWLSOHIRUZDUGLQJSDWKV &6.XELDWRZLF] &6.XELDWRZLF] /HF /HF 5HFDOO8QUROOHG/RRSWKDW /RRS8QUROOLQJLQ9/,: 0LQLPL]HV6WDOOVIRU6FDODU Memory Memory FP FP Int. op/Clock 1 Loop: LD F0,0(R1) LD to ADDD: 1 Cycle reference 1 reference 2 operation 1 op. 2 branch 2 LD F6,-8(R1) ADDD to SD: 2 Cycles LD F0,0(R1) LD F6,-8(R1) 1 3 LD F10,-16(R1) LD F10,-16(R1) LD F14,-24(R1) 2 4 LD F14,-24(R1) LD F18,-32(R1) LD F22,-40(R1) ADDD F4,F0,F2 ADDD F8,F6,F2 3 5 ADDD F4,F0,F2 LD F26,-48(R1) ADDD F12,F10,F2 ADDD F16,F14,F2 4 6 ADDD F8,F6,F2 7 ADDD F12,F10,F2 ADDD F20,F18,F2 ADDD F24,F22,F2 5 8 ADDD F16,F14,F2 SD 0(R1),F4 SD -8(R1),F8 ADDD F28,F26,F2 6 9 SD 0(R1),F4 SD -16(R1),F12 SD -24(R1),F16 7 10 SD -8(R1),F8 SD -32(R1),F20 SD -40(R1),F24 SUBI R1,R1,#48 8 11 SD -16(R1),F12 SD -0(R1),F28 BNEZ R1,LOOP 9 12 SUBI R1,R1,#32 Unrolled 7 times to avoid delays 13 BNEZ R1,LOOP 14 SD 8(R1),F16 ; 8-32 = -24 7 results in 9 clocks, or 1.3 clocks per iteration (1.8X) Average: 2.5 ops per clock, 50% efficiency 14 clock cycles, or 3.5 per iteration
&6.XELDWRZLF] Note: Need more registers in VLIW (15 vs. 6 in SS)&6.XELDWRZLF] /HF /HF
5HFDOO6RIWZDUH3LSHOLQLQJ 5HFDOO6RIWZDUH3LSHOLQLQJ([DPSOH %HIRUH8QUROOHGWLPHV After: Software Pipelined 2EVHUYDWLRQLILWHUDWLRQVIURPORRSVDUHLQGHSHQGHQW LD F0,0(R1) 1 SD 0(R1),F4 ; Stores M[i] WKHQFDQJHWPRUH,/3E\WDNLQJLQVWUXFWLRQVIURP ADDD F4,F0,F2 2 ADDD F4,F0,F2 ; Adds to M[i-1] GLIIHUHQW LWHUDWLRQV SD 0(R1),F4 3 LD F0,-16(R1); Loads M[i-2] LD F6,-8(R1) 4 SUBI R1,R1,#8 6RIWZDUHSLSHOLQLQJUHRUJDQL]HVORRSVVRWKDWHDFK ADDD F8,F6,F2 5 BNEZ R1,LOOP LWHUDWLRQLVPDGHIURPLQVWUXFWLRQVFKRVHQIURP SD -8(R1),F8 GLIIHUHQWLWHUDWLRQVRIWKHRULJLQDOORRS 7RPDVXOR LQ LD F10,-16(R1) 6: ADDD F12,F10,F2 SW Pipeline Iteration SD -16(R1),F12 0 Iteration 1 Iteration SUBI R1,R1,#24 2 Iteration BNEZ R1,LOOP Time 3 Iteration 4 Loop Unrolled • Symbolic Loop Unrolling
Software- – Maximize result-use distance ops overlapped pipelined iteration – Less code space than unrolling – Fill & drain pipe only once per loop Time vs. once per each unrolled iteration in loop unrolling
&6.XELDWRZLF] &6.XELDWRZLF] /HF /HF 6RIWZDUH3LSHOLQLQJZLWK /RRS8QUROOLQJLQ9/,: 7UDFH6FKHGXOLQJ 3DUDOOHOLVPDFURVV,)EUDQFKHVYV/223EUDQFKHV Memory Memory FP FP Int. op/Clock 7ZRVWHSV reference 1 reference 2 operation 1 op. 2 branch ² 7UDFH 6HOHFWLRQ LD F0,-48(R1) ST 0(R1),F4 ADDD F4,F0,F2 1 ª )LQGOLNHO\VHTXHQFHRIEDVLFEORFNV WUDFH LD F6,-56(R1) ST -8(R1),F8 ADDD F8,F6,F2 SUBI R1,R1,#24 2 RI VWDWLFDOO\SUHGLFWHGRUSURILOHSUHGLFWHG LD F10,-40(R1) ST 8(R1),F12 ADDD F12,F10,F2 BNEZ R1,LOOP 3 ORQJVHTXHQFHRIVWUDLJKWOLQHFRGH ² 7UDFH &RPSDFWLRQ • Software pipelined across 9 iterations of original loop ª 6TXHH]HWUDFHLQWRIHZ9/,:LQVWUXFWLRQV – In each iteration of above loop, we: ª 1HHGERRNNHHSLQJFRGHLQFDVHSUHGLFWLRQLVZURQJ » Store to m,m-8,m-16 (iterations I-3,I-2,I-1) 7KLVLVDIRUPRIFRPSLOHUJHQHUDWHGVSHFXODWLRQ » Compute for m-24,m-32,m-40 (iterations I,I+1,I+2) ² &RPSLOHUPXVWJHQHUDWH´IL[XSµFRGHWRKDQGOHFDVHVLQZKLFK » Load from m-48,m-56,m-64 (iterations I+3,I+4,I+5) WUDFHLVQRWWKHWDNHQEUDQFK • 9 results in 9 cycles, or 1 clock per iteration ² 1HHGVH[WUDUHJLVWHUVXQGRHVEDGJXHVVE\GLVFDUGLQJ • Average: 3.3 ops per clock, 66% efficiency 6XEWOHFRPSLOHUEXJVPHDQZURQJDQVZHU YVSRRUHUSHUIRUPDQFHQRKDUGZDUHLQWHUORFNV Note: Need less registers for software pipelining &6.XELDWRZLF] &6.XELDWRZLF] (only using 7 registers here, was using 15) /HF /HF
$GYDQWDJHVRI+: 7RPDVXOR YV6: 9/,: 6SHFXODWLRQ 6XSHUVFDODU Y9/,: +:DGYDQWDJHV ² +:EHWWHUDWPHPRU\GLVDPELJXDWLRQVLQFHNQRZVDFWXDODGGUHVVHV 6PDOOHUFRGHVL]H 6LPSOLILHG+DUGZDUH ² +:EHWWHUDWEUDQFKSUHGLFWLRQVLQFHORZHURYHUKHDG %LQDU\FRPSDWDELOLW\ IRUGHFRGLQJLVVXLQJ ² +:PDLQWDLQVSUHFLVHH[FHSWLRQPRGHO DFURVVJHQHUDWLRQV LQVWUXFWLRQV ² +:GRHVQRWH[HFXWHERRNNHHSLQJLQVWUXFWLRQV RIKDUGZDUH 1R,QWHUORFN ² 6DPHVRIWZDUHZRUNVDFURVVPXOWLSOHLPSOHPHQWDWLRQV +DUGZDUH FRPSLOHU ² 6PDOOHUFRGHVL]H QRWDVPDQ\QRRSVILOLQJEODQNLQVWUXFWLRQV FKHFNV" 6:DGYDQWDJHV 0RUHUHJLVWHUVEXW ² :LQGRZRILQVWUXFWLRQVWKDWLVH[DPLQHGIRUSDUDOOHOLVPPXFKKLJKHU VLPSOLILHG+DUGZDUH ² 0XFKOHVVKDUGZDUHLQYROYHGLQ9/,: XQOHVV\RXDUH,QWHO«R IRU5HJLVWHU3RUWV ² 0RUHLQYROYHGW\SHVRIVSHFXODWLRQFDQEHGRQHPRUHHDVLO\ PXOWLSOHLQGHSHQGHQW ² 6SHFXODWLRQFDQEHEDVHGRQODUJHVFDOHSURJUDPEHKDYLRUQRWMXVW UHJLVWHUILOHV" ORFDOLQIRUPDWLRQ
&6.XELDWRZLF] &6.XELDWRZLF] /HF /HF ,WDQLXP3URFHVVRU6LOLFRQ ,QWHO+3´([SOLFLWO\3DUDOOHO &RS\ULJKW,QWHODW +RWFKLSV · ,QVWUXFWLRQ&RPSXWHU (3,& µ ,QVWUXFWLRQVLQELW´JURXSVµILHOGGHWHUPLQHVLI LQVWUXFWLRQVGHSHQGHQWRULQGHSHQGHQW IA-32 FPU ² 6PDOOHUFRGHVL]HWKDQROG9/,:ODUJHUWKDQ[5,6& Control ² *URXSVFDQEHOLQNHGWRVKRZLQGHSHQGHQFH!LQVWU IA-64 Control TLB LQWHJHUUHJLVWHUVIORDWLQJSRLQWUHJLVWHUV ² 1RWVHSDUDWHUHJLVWHUILOHVSHUIXQFWLRQDOXQLWDVLQROG9/,: Integer Units Cache +DUGZDUHFKHFNVGHSHQGHQFLHV Instr. LQWHUORFNV !ELQDU\FRPSDWLELOLW\RYHUWLPH Fetch & Decode Cache Bus 3UHGLFDWHGH[HFXWLRQ VHOHFWRXWRIELWIODJV !OIHZHUPLVSUHGLFWLRQV" ,$LQVWUXFWLRQVHWDUFKLWHFWXUH(3,&LVW\SH ² 9/,: (3,&" ,WDQLXP LVQDPHRIILUVWLPSOHPHQWDWLRQ " Core Processor Die 4 x 1MB L3 cache ² +LJKO\SDUDOOHODQGGHHSO\SLSHOLQHGKDUGZDUHDW0K] ² ZLGHVWDJHSLSHOLQHDW0K]RQSURFHVV
&6.XELDWRZLF] &6.XELDWRZLF] /HF /HF
,WDQLXP0DFKLQH&KDUDFWHULVWLFV ,WDQLXP(3,&'HVLJQ0D[LPL]HV6:+:6\QHUJ\ &RS\ULJKW,QWHODW +RWFKLSV · &RS\ULJKW,QWHODW +RWFKLSV · )UHTXHQF\ 0+] Architecture Features programmed by compiler: 7UDQVLVWRU&RXQW 0&380/ Register Branch Explicit Data & Control Memory 3URFHVV X&026PHWDOOD\HU Stack Predication Hints Parallelism Speculation Hints 3DFNDJH 2UJDQLF/DQG*ULG$UUD\ & Rotation 0DFKLQH:LGWK LQVWVFORFN $/800/G6W)3%U 5HJLVWHUV SRUWHG*5I)53UHGLFDWHV Micro-architecture Features in hardware:
6SHFXODWLRQ HQWU\$/$7([FHSWLRQ'HIHUUDO Fetch Issue Register Control Parallel Resources Memory
%UDQFK3UHGLFWLRQ 0XOWLOHYHOVWDJH3UHGLFWLRQ+LHUDUFK\ Handling Bypasses &Dependencies Subsystem 4 Integer + )3&RPSXWH%DQGZLGWK *)ORSV '3(3 *)ORSV 63 Fast, Simple6-Issue 4 MMX Units 0HPRU\!)3%DQGZLGWK '3 63 RSHUDQGVFORFN 128 GR & 9LUWXDO0HPRU\6XSSRUW HQWU\,7/%OHYHO'7/%9+37 Instruction 128 FR, 2FMACs Three Register //&DFKH 'XDOSRUWHG.8QLILHGI.'., Cache (4 for SSE) levels of & Branch Remap cache: ///DWHQF\ FORFNV & Predictors 2 LD/ST units L1, L2, L3 /&DFKH 0%ZD\VD%:RI*%VHF Stack Engine 6\VWHP%XV *%VHFZD\ *OXHOHVV 03 32 entry ALAT 6FDODEOHWRODUJH SURF V\VWHPV
&6.XELDWRZLF] Speculation Deferral Management &6.XELDWRZLF] /HF /HF 6WDJH,Q2UGHU&RUH3LSHOLQH &RS\ULJKW,QWHODW +RWFKLSV · &6$GPLQLVWULYLD Front End Execution •Pre-fetch/Fetch of up • 4 single cycle ALUs, 2 ld/str ([DP :HGQHVGD\ to 6 instructions/cycle • Advanced load control /RFDWLRQ7%$ •Hierarchy of branch • Predicate delivery & branch 7,0( predictors • Nat/Exception//Retirement •Decoupling buffer 7KLVLQIRLVRQWKH/HFWXUHSDJH KDVEHHQ 0HHWDW/D9DO·VDIWHUZDUGVIRU3L]]DDQG%HYHUDJHV WORD-LINE EXPAND RENAME DECODE REGISTER READ
IPG FET ROT EXP RENWLD REG EXE DET WRB $VVLJQPHQWXSWRPRUURZ
INST POINTER FETCH ROTATE EXECUTEEXCEPTION WRITE-BACK ² 'RQHLQSDLUV3XWERWKQDPHVRQSDSHUV GENERATION DETECT ² 0DNHVXUH\RXKDYHSDUWQHUVR)HHOIUHHWRXVHPDLOLQJOLVWIRUWKLV Instruction Delivery Operand Delivery •Dispersal of up to 6 • Reg read + Bypasses instructions on 9 ports • Register scoreboard •Reg. remapping • Predicated •Reg. stack engine dependencies
&6.XELDWRZLF] &6.XELDWRZLF] /HF /HF
$UFKLWHFWXUHLQSUDFWLFH 3OD\VWDWLRQ&RQWLQXHG
(PRWLRQ(QJLQH 6DPSOH9HFWRU8QLW ² 6XSHUVFDODU0,36FRUH ² ZLGH9/,: DVUHSRUWHGLQ0LFURSURFHVVRU5HSRUW9RO1R ² 9HFWRU&RSURFHVVRU3LSHOLQHV ² ,QFOXGHV0LFURFRGH0HPRU\ ² (PRWLRQ(QJLQH*)/236PLOOLRQSRO\JRQVSHUVHFRQG ² 5$0%86'5$0LQWHUIDFH ² +LJKOHYHOLQVWUXFWLRQVOLNH ² *UDSKLFV6\QWKHVL]HU%LOOLRQSL[HOVSHUVHFRQG PDWUL[PXOWLSO\ ² &ODLP7R\6WRU\UHDOLVPEURXJKWWRJDPHVR
&6.XELDWRZLF] &6.XELDWRZLF] /HF /HF /LPLWVWR0XOWL,VVXH0DFKLQHV /LPLWVWR0XOWL,VVXH0DFKLQHV
,QKHUHQWOLPLWDWLRQVRI,/3 /LPLWDWLRQVVSHFLILFWRHLWKHU6XSHUVFDODU RU9/,: ² EUDQFKLQ+RZWRNHHSDZD\9/,:EXV\" LPSOHPHQWDWLRQ ² /DWHQFLHVRIXQLWVPDQ\RSHUDWLRQVPXVWEHVFKHGXOHG ² 'HFRGHLVVXHLQ6XSHUVFDODUKRZZLGHSUDFWLFDO" ² 1HHGDERXW3LSHOLQH'HSWK[1R)XQFWLRQDO8QLWVRILQGHSHQGHQW ² 9/,:FRGHVL]HXQUROOORRSVZDVWHGILHOGVLQ9/,: RSHUDWLRQVWRNHHSDOOSLSHOLQHVEXV\ ª ,$FRPSUHVVHVGHSHQGHQWLQVWUXFWLRQVEXWVWLOOODUJHU ² 'LIILFXOWLHVLQEXLOGLQJ+: ² 9/,:ORFNVWHS !KD]DUGIDOOLQVWUXFWLRQVVWDOO ² (DV\0RUHLQVWUXFWLRQEDQGZLGWK ª ,$QRWORFNVWHS"'\QDPLFSLSHOLQH" ² (DV\'XSOLFDWH)8V WRJHWSDUDOOHOH[HFXWLRQ ² 9/,:IELQDU\FRPSDWLELOLW\,$SURPLVHVELQDU\FRPSDWLELOLW\ ² +DUG,QFUHDVHSRUWVWR5HJLVWHU)LOH EDQGZLGWK ª 9/,:H[DPSOHQHHGVUHDGDQGZULWHIRU,QW5HJ IUHDGDQGZULWHIRU)3UHJ ² +DUGHU,QFUHDVHSRUWVWRPHPRU\ EDQGZLGWK ² 'HFRGLQJ6XSHUVFDODU DQGLPSDFWRQFORFNUDWHSLSHOLQHGHSWK"
&6.XELDWRZLF] &6.XELDWRZLF] /HF /HF
/LPLWVWR,/3 /LPLWVWR,/3
&RQIOLFWLQJVWXGLHVRIDPRXQW ,QLWLDO+:0RGHOKHUH0,36FRPSLOHUV ² %HQFKPDUNV YHFWRUL]HG )RUWUDQ)3YVLQWHJHU&SURJUDPV $VVXPSWLRQVIRULGHDOSHUIHFWPDFKLQHWRVWDUW ² +DUGZDUHVRSKLVWLFDWLRQ ² &RPSLOHUVRSKLVWLFDWLRQ 5HJLVWHU UHQDPLQJ²LQILQLWHYLUWXDOUHJLVWHUVDQG +RZPXFK,/3LVDYDLODEOHXVLQJH[LVWLQJ DOO:$:I:$5KD]DUGVDUHDYRLGHG PHFKDQLPV ZLWKLQFUHDVLQJ+:EXGJHWV" %UDQFK SUHGLFWLRQ²SHUIHFWQRPLVSUHGLFWLRQV 'RZHQHHGWRLQYHQWQHZ+:6:PHFKDQLVPVWR -XPS SUHGLFWLRQ²DOOMXPSVSHUIHFWO\SUHGLFWHG ! NHHSRQSURFHVVRUSHUIRUPDQFHFXUYH" PDFKLQHZLWKSHUIHFWVSHFXODWLRQIDQXQERXQGHG ² ,QWHO00; EXIIHURILQVWUXFWLRQVDYDLODEOH ² 0RWRUROD$OWD9HF 0HPRU\DGGUHVV DOLDV DQDO\VLV²DGGUHVVHVDUH ² 6XSHUVSDUF0XOWLPHGLDRSVHWF NQRZQIDVWRUHFDQEHPRYHGEHIRUHDORDG SURYLGHGDGGUHVVHVQRWHTXDO F\FOHODWHQF\IRUDOOLQVWUXFWLRQVXQOLPLWHGQXPEHU
&6.XELDWRZLF] &6.XELDWRZLF] RILQVWUXFWLRQVLVVXHGSHUFORFNF\FOH /HF /HF 8SSHU/LPLWWR,/3,GHDO 0RUH5HDOLVWLF+:%UDQFK,PSDFW Avt r##Qhtr"!" 0DFKLQH &KDQJHIURP,QILQLWH FP: 15 - 45 61 Avt r#"'htr" ( ZLQGRZWRH[DPLQHWR 60 60 58 160 150.1 DQGPD[LPXP FP: 75 - 150 LVVXHRI 50 48 140 46 LQVWUXFWLRQVSHUFORFN 45 46 45 45 118.7 Integer: 18 - 60 41 120 40 F\FOH 35 100 Integer: 6 - 12 30 29 75.2 80 62.6 19 54.8 20 16
IPC 60 IPC 15 13 14 12 10 9 40 10 7 6 6 6 6 7 4 17.9 2 2 2 20 0 0 gcc espresso li fpppp doducd tomcatv Program gcc espresso li fpppp doducd tomcatv Perfect Selective predictor Standard 2-bit Static None Programs &6.XELDWRZLF] &6.XELDWRZLF] /HF Perfect Pick Cor. or BHT BHT (512) Profile No prediction/HF
0RUH5HDOLVWLF+:5HJLVWHU,PSDFW 0RUH5HDOLVWLF+:$OLDV )LJXUH3DJH ,PSDFW 49 49 50 Avt r##%Qhtr"" 59 FP: 11 - 45 60 45 45 45 &KDQJHLQVWU 54 &KDQJHLQVWU 49 40 ZLQGRZLQVWU FP: 4 - 45 50 ZLQGRZLQVWU 45 44 LVVXH.OHYHO 35 LVVXH.OHYHO (Fortran, 3UHGLFWLRQ 40 3UHGLFWLRQ 30 no heap) 35 UHQDPLQJUHJLVWHUV 25 30 Integer: 5 - 15 29 28 20 Integer: 4 - 9 16 16 15 20 15 20 12 16 10 15 15 15 9 IPC 13 IPC 10 12 12 12 7 7 11 10 11 11 6 10 10 5 5 4 5 9 4 4 4 4 10 5 3 3 3 6 7 5 5 5 5 5 5 5 4 4 4 0
0 gcc espresso li fpppp doducd tomcatv
gcc espresso li fpppp doducd tomcatv Program
Program Perfect Global/stack Perfect Inspection None
Infinite 256 128 64 32 None Perfect Global/Stack perf; Inspec. None &6.XELDWRZLF] &6.XELDWRZLF] Infinite 256 128 64 32 None /HF heap conflicts Assem. /HF %UDQLDF YV 6SHHG 5HDOLVWLF+:IRU¶;:LQGRZ,PSDFW 'HPRQ Avt r##'Qhtr""! VFDODU,%03RZHU#0+] VWDJH
60 SLSH 3HUIHFWGLVDPELJXDWLRQ 56 52 900 YVVFDODU$OSKD#0+] VWDJHSLSH
50 +: .6HOHFWLYH 47 3UHGLFWLRQHQWU\ FP: 8 - 45 45 800
40 UHWXUQUHJLVWHUV 700 35 34 LVVXHDVPDQ\DV 600 30 ZLQGRZ 500 22 22
20 400 Integer: 6 - 12 17 16 15 15 15 14 IPC 13 14 12 12 11 12 300 10 10 10 10 11 9 9 9 9 10 8 8 8 6 7 66 5 6 4 4 4 4 200 3 2 3 3 3 3
0 100
gcc expresso li fpppp doducd tomcatv 0 Program li sc gcc ora ear nasa spice doduc fpppp
Infinite 256 128 64 32 16 8 4 wave5 alvinn eqntott su2cor tomcatv hydro2d mdljdp2 mdljsp2 espresso swm256 compress Benchmark &6.XELDWRZLF] &6.XELDWRZLF] Infinite 256 128 64 32 16 8 4 /HF /HF
3UREOHPVZLWKVFDODUDSSURDFKWR ,/3H[WUDFWLRQ &RVWSHUIRUPDQFHRIVLPSOHYV222
/LPLWVWRFRQYHQWLRQDOH[SORLWDWLRQRI,/3 0,36038V55NN ² SLSHOLQHGFORFNUDWHDWVRPHSRLQWHDFKLQFUHDVHLQFORFNUDWHKDV FRUUHVSRQGLQJ&3,LQFUHDVH EUDQFKHVRWKHUKD]DUGV &ORFN5DWH 0+] 0+] [ ² EUDQFKSUHGLFWLRQEUDQFKHVJHWLQWKHZD\RIZLGHLVVXH7KH\ 2Q&KLS&DFKHV .. .. [ DUHWRRXQSUHGLFWDEOH ² LQVWUXFWLRQIHWFKDQGGHFRGHDWVRPHSRLQWLWVKDUGWRIHWFKDQG ,QVWUXFWLRQV&\FOH )3 [ GHFRGHPRUHLQVWUXFWLRQVSHUFORFNF\FOH 3LSHVWDJHV [ ² UHJLVWHUUHQDPLQJ5HQDPHORJLFJHWVUHDOO\FRPSOLFDWHIRUPDQ\ LQVWUXFWLRQV 0RGHO ,QRUGHU 2XWRIRUGHU ² FDFKHKLWUDWHVRPHORQJUXQQLQJ VFLHQWLILF SURJUDPVKDYHYHU\ 'LH6L]H PP [ ODUJHGDWDVHWVDFFHVVHGZLWKSRRUORFDOLW\RWKHUVKDYHFRQWLQXRXV GDWDVWUHDPV PXOWLPHGLD DQGKHQFHSRRUORFDOLW\ ² ZLWKRXWFDFKH7/% [ 'HYHORSPHQW PDQ\U [ 63(&LQWBEDVH [
&6.XELDWRZLF] &6.XELDWRZLF] /HF /HF $OWHUQDWLYH0RGHO 9HFWRU3URFHVVLQJ 3URSHUWLHVRI9HFWRU3URFHVVRUV 9HFWRUSURFHVVRUVKDYHKLJKOHYHORSHUDWLRQVWKDW ZRUNRQOLQHDUDUUD\VRIQXPEHUV[YHFWRUV[ (DFKUHVXOWLQGHSHQGHQWRISUHYLRXVUHVXOW !ORQJSLSHOLQHFRPSLOHUHQVXUHVQRGHSHQGHQFLHV !KLJKFORFNUDWH SCALAR VECTOR 9HFWRULQVWUXFWLRQVDFFHVVPHPRU\ZLWKNQRZQSDWWHUQ (1 operation) (N operations) !KLJKO\LQWHUOHDYHGPHPRU\ !DPRUWL]HPHPRU\ODWHQF\RIRYHU HOHPHQWV !QR GDWD FDFKHVUHTXLUHGR 'RXVHLQVWUXFWLRQ FDFKH r1 r2 v1 v2 5HGXFHVEUDQFKHVDQGEUDQFKSUREOHPVLQSLSHOLQHV + + 6LQJOHYHFWRULQVWUXFWLRQLPSOLHVORWVRIZRUN ORRS !IHZHULQVWUXFWLRQIHWFKHV r3 v3 vector length
add r3, r1, r2 add.vv v3, v1, v2 &6.XELDWRZLF] &6.XELDWRZLF] /HF 25 /HF
2SHUDWLRQI,QVWUXFWLRQ&RXQW 5,6&Y9HFWRU3URFHVVRU 6W\OHVRI9HFWRU IURP)4XLQWDQD8%DUFHORQD $UFKLWHFWXUHV Spec92fp Operations (Millions) Instructions (M) Program RISC Vector R / V RISC Vector R / V PHPRU\PHPRU\ YHFWRU SURFHVVRUVDOOYHFWRU RSHUDWLRQVDUHPHPRU\WRPHPRU\ swim256 115 95 1.1x 115 0.8 142x YHFWRUUHJLVWHU SURFHVVRUVDOOYHFWRURSHUDWLRQV hydro2d 58 40 1.4x 58 0.8 71x EHWZHHQYHFWRUUHJLVWHUV H[FHSWORDGDQGVWRUH ² 9HFWRUHTXLYDOHQWRIORDGVWRUHDUFKLWHFWXUHV nasa7 69 41 1.7x 69 2.2 31x ² ,QFOXGHVDOOYHFWRUPDFKLQHVVLQFHODWHV su2cor 51 35 1.4x 51 1.8 29x &UD\&RQYH[)XMLWVX+LWDFKL1(& ² :HDVVXPHYHFWRUUHJLVWHUIRUUHVWRIOHFWXUHV tomcatv 15 10 1.4x 15 1.3 11x wave5 27 25 1.1x 27 7.2 4x mdljdp2 32 52 0.6x 32 15.8 2x Vector reduces ops by 1.2X, instructions by 20X
&6.XELDWRZLF] &6.XELDWRZLF] /HF /HF ´'/;9µ9HFWRU &RPSRQHQWVRI9HFWRU3URFHVVRU ,QVWUXFWLRQV 9HFWRU 5HJLVWHUIL[HGOHQJWKEDQNKROGLQJDVLQJOH Instr. Operands Operation Comment YHFWRU • ADDV V1,V2,V3 V1=V2+V3 vector + vector ² KDVDWOHDVWUHDGDQGZULWHSRUWV • ADDSVV1,F0,V2 V1=F0+V2 scalar + vector ² W\SLFDOO\YHFWRUUHJLVWHUVHDFKKROGLQJELW HOHPHQWV • MULTV V1,V2,V3 V1=V2xV3 vector x vector 9HFWRU )XQFWLRQDO 8QLWV )8V IXOO\SLSHOLQHGVWDUW • MULSV V1,F0,V2 V1=F0xV2 scalar x vector QHZRSHUDWLRQHYHU\FORFN • LV V1,R1 V1=M[R1..R1+63] load, stride=1 ² W\SLFDOO\WR)8V)3DGG)3PXOW)3UHFLSURFDO ; LQWHJHUDGGORJLFDOVKLIWPD\KDYHPXOWLSOHRIVDPHXQLW • LVWS V1,R1,R2 V1=M[R1..R1+63*R2] load, stride=R2 9HFWRU /RDG6WRUH 8QLWV /68V IXOO\SLSHOLQHGXQLW • LVI V1,R1,V2 V1=M[R1+V2i,i=0..63] indir.("gather") WRORDGRUVWRUHDYHFWRUPD\KDYHPXOWLSOH/68V • CeqV VM,V1,V2 VMASKi = (V1i=V2i)? comp. setmask 6FDODU UHJLVWHUVVLQJOHHOHPHQWIRU)3VFDODURU • MOV VLR,R1 Vec. Len. Reg. = R1 set vector length DGGUHVV • MOV VM,R1 Vec. Mask = R1 set vector mask &URVVEDUWRFRQQHFW)8V /68VUHJLVWHUV &6.XELDWRZLF] &6.XELDWRZLF] /HF /HF
'$;3< < D ;< 0HPRU\RSHUDWLRQV Assuming vectors X, Y LD F0,a ;load scalar a are length 64 LV V1,Rx ;load vector X /RDGVWRUHRSHUDWLRQVPRYHJURXSVRIGDWD Scalar vs. Vector MULTS V2,F0,V1 ;vector-scalar mult. EHWZHHQUHJLVWHUVDQGPHPRU\ LV V3,Ry ;load vector Y 7KUHHW\SHVRIDGGUHVVLQJ ADDV V4,V2,V3 ;add ² 8QLWVWULGH LD F0,a SV Ry,V4 ;store the result ª )DVWHVW ADDI R4,Rx,#512 ;last address to load 578 (2+9*64) vs. ² 1RQXQLW FRQVWDQW VWULGH loop: LD F2, 0(Rx) ;load X(i) 321 (1+5*64) ops (1.8X) ² ,QGH[HG JDWKHUVFDWWHU MULTD F2,F0,F2 ;a*X(i) 578 (2+9*64) vs. ª 9HFWRUHTXLYDOHQWRIUHJLVWHULQGLUHFW LD F4, 0(Ry) ;load Y(i) 6 instructions (96X) ª *RRGIRUVSDUVHDUUD\VRIGDWD ADDD F4,F2, F4 ;a*X(i) + Y(i) ª ,QFUHDVHVQXPEHURISURJUDPVWKDWYHFWRUL]H SD F4 ,0(Ry) ;store into Y(i) 64 operation vectors + ADDI Rx,Rx,#8 ;increment index to X no loop overhead ADDI Ry,Ry,#8 ;increment index to Y also 64X fewer pipeline SUB R20,R4,Rx ;compute bound hazards &6.XELDWRZLF] BNZ R20,loop ;check if done &6.XELDWRZLF] /HF 32 /HF ([DPSOH9HFWRU0DFKLQHV 9HFWRU/LQSDFN 3HUIRUPDQFH 0)/236
Machine Year Clock Regs Elements FUs LSUs Machine Year Clock 100x100 1kx1k Peak(Procs) Cray 1 1976 80 MHz 8 64 6 1 Cray 1 1976 80 MHz 12 110 160(1) Cray XMP 1983 120 MHz 8 64 8 2 L, 1 S Cray XMP 1983 120 MHz 121 218 940(4) Cray YMP 1988 166 MHz 8 64 8 2 L, 1 S Cray YMP 1988 166 MHz 150 307 2,667(8) Cray C-90 1991 240 MHz 8 128 8 4 Cray C-90 1991 240 MHz 387 902 15,238(16) Cray T-90 1996 455 MHz 8 128 8 4 Cray T-90 1996 455 MHz 705 1603 57,600(32) Conv. C-1 1984 10 MHz 8 128 4 1 Conv. C-1 1984 10 MHz 3 -- 20(1) Conv. C-4 1994 133 MHz 16 128 3 1 Conv. C-4 1994 135 MHz 160 2531 3240(4) Fuj. VP200 1982 133 MHz 8-256 32-1024 3 2 Fuj. VP200 1982 133 MHz 18 422 533(1) Fuj. VP300 1996 100 MHz 8-256 32-1024 3 2 NEC SX/2 1984 166 MHz 43 885 1300(1) NEC SX/2 1984 160 MHz 8+8K 256+var 16 8 NEC SX/3 1995 400 MHz 368 2757 25,600(4)
&6.XELDWRZLF] &6.XELDWRZLF] NEC SX/3 1995 400 MHz 8+8K 256+var 16 8 /HF /HF
9HFWRU$GYDQWDJHV 9HFWRU3LWIDOOV (DV\WRJHW KLJKSHUIRUPDQFH1RSHUDWLRQV ² DUHLQGHSHQGHQW 3LWIDOO&RQFHQWUDWLQJRQSHDNSHUIRUPDQFHDQGLJQRULQJ ² XVHVDPHIXQFWLRQDOXQLW VWDUWXSRYHUKHDG ² DFFHVVGLVMRLQWUHJLVWHUV 1 OHQJWKIDVWHUWKDQVFDODU !R ² DFFHVVUHJLVWHUVLQVDPHRUGHUDVSUHYLRXVLQVWUXFWLRQV 9 ² DFFHVVFRQWLJXRXVPHPRU\ZRUGVRUNQRZQSDWWHUQ 3LWIDOO,QFUHDVLQJYHFWRUSHUIRUPDQFHZLWKRXW ² FDQH[SORLWODUJHPHPRU\EDQGZLGWK FRPSDUDEOHLQFUHDVHVLQVFDODUSHUIRUPDQFH ² KLGHPHPRU\ODWHQF\ DQGDQ\RWKHUODWHQF\ $PGDKO V/DZ 6FDODEOH JHWKLJKHUSHUIRUPDQFHE\DGGLQJ+:UHVRXUFHV ² IDLOXUHRI&UD\FRPSHWLWRU (7$ IURPKLVIRUPHUFRPSDQ\ &RPSDFW 'HVFULEH1RSHUDWLRQVZLWKVKRUWLQVWUXFWLRQ 3LWIDOO*RRGSURFHVVRUYHFWRUSHUIRUPDQFHZLWKRXW 3UHGLFWDEOH SHUIRUPDQFHYVVWDWLVWLFDOSHUIRUPDQFH FDFKH SURYLGLQJJRRGPHPRU\EDQGZLGWK 0XOWLPHGLD UHDG\1 E1 E1 E1 E ² 00;" 0DWXUHGHYHORSHGFRPSLOHUWHFKQRORJ\ 9HFWRU'LVDGYDQWDJH2XWRI)DVKLRQ" ² +DUGWRVD\0DQ\LUUHJXODUORRSVWUXFWXUHVVHHPWRVWLOOEHKDUGWR YHFWRUL]HDXWRPDWLFDOO\ ² 7KHRU\RIVRPHUHVHDUFKHUVWKDW6,0'PRGHOKDVJUHDWSRWHQWLDO
&6.XELDWRZLF] &6.XELDWRZLF] /HF /HF 6XPPDU\L 6XPPDU\L ([SOLFLW5HQDPLQJPRUHSK\VLFDOUHJLVWHUVWKDQQHHGHGE\,6$ 8VHVDWUDQVODWLRQWDEOH 9HFWRUPRGHODFFRPPRGDWHVORQJPHPRU\ODWHQF\ 3UHFLVHH[FHSWLRQV6SHFXODWLRQ2XWRIRUGHUH[HFXWLRQ,Q RUGHUFRPPLW UHRUGHUEXIIHU GRHVQ·WUHO\RQFDFKHVDVGRHV2XW2I2UGHU 6XSHUVFDODU DQG9/,:&3, ,3&! VXSHUVFDODU9/,:GHVLJQV ² '\QDPLFLVVXHYV6WDWLFLVVXH 0XFKHDVLHUIRUKDUGZDUHPRUHSRZHUIXO ² 0RUHLQVWUXFWLRQVLVVXHDWVDPHWLPH !ODUJHUKD]DUGSHQDOW\ LQVWUXFWLRQVPRUHSUHGLFWDEOHPHPRU\DFFHVVHV ² /LPLWDWLRQLVRIWHQQXPEHURILQVWUXFWLRQVWKDW\RXFDQVXFFHVVIXOO\IHWFK DQGGHFRGHSHUF\FOH⇒ ´)O\QQEDUULHUµ IHZHUKD]DUGVIHZHUEUDQFKHVIHZHUPLVSUHGLFWHG 6:3LSHOLQLQJ EUDQFKHV ² 6\PEROLF/RRS8QUROOLQJWRJHWPRVWIURPSLSHOLQHZLWKOLWWOHFRGH H[SDQVLRQOLWWOHRYHUKHDG :KDWORIFRPSXWDWLRQLVYHFWRUL]DEOH" %UDQFKSUHGLFWLRQLVRQHRIWKHPRVWFUXFLDOIDFWRUVWR ,VYHFWRUDJRRGPDWFKWRQHZDSSVVXFKDV SHUIRUPDQFHRIVXSHUVFDODUH[HFXWLRQ PXOWLPHGLD'63"
&6.XELDWRZLF] &6.XELDWRZLF] /HF /HF