Scoreboarding i Tomasulo Algoritam

download Scoreboarding i Tomasulo Algoritam

of 78

Transcript of Scoreboarding i Tomasulo Algoritam

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    1/78

    Scoreboarding i Tomasulo

    algoritam

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    2/78

    Scoreboard

    • Instrukcije slati ka funkcionalnim jedinicama na osnovu tipainstrukcija i da tamo čekaju argumente

    • Za svaku funcionalnu jedinicu postoji samo jedna instrukcijakoja može da se rasporedi na nju u jednom trenutku – bilo

    da je spremna ili ne (inicijalna pretpostavka je da nemapipeline-a i tako je u primeru, a samo je raličito trajanjeivr!avanja na raličitim funkcionalnim jedinicama"

    • #okle slati instrukcije (idavati – issue" – ograničen brojmesta a instrukcije koje potencijalno mogu da se ivr!e

    (bog ograničenog broja funkcionalni$ jedinica" – ma!inskoograničenje veličine data-%o& proora• 'ontrola avisnosti po podacima i ugraene data%o&

    ma!ine radi skup statusni$ tabela - Scoreboard

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    3/78

    Scoreboard )rc$itecture(*#* ++"

       -  u  n  c   t   i  o  n  a   l    .  n   i   t  s

       /  e  g   i  s

       t  e  r  s

    0 1ult

    0 1ult0 1ult

    0 1ult

    0 #ivide

    0 #ivide

    0 )dd

    0 )dd

    Integer

    Integer

    1emor2S*3/453)/#

    S*3/453)/#

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    4/78

    #inamički rasporeivati –kako6

    • 7a slici – proor je maksimalno 8 instrukcija ito dva 0 množenja, po jedno 0 deljenje isabiranje i jedna jedinica load9store koja se

    ove integer• 'ako argumente6 7e dovoliti dve instrukcije

    idate a ivr!avanje, a koje upisuju u istiregistar da bi jednonačno odredili

    argumente: Zadržava se in-order redosledupisa u sve registre – ilane avisnosti (;);"se po!tuju na račun smanjenja paralelima

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    5/78

    =ekanje argumenata

    • )rgument je spreman ako nijedna idata, aneavr!ena, instrukcija ne upisuje u registar aargument ili se upravo upisuje reultat uregistar a argument od strane neke instrukcije

    • 'ada oba argumenta postanu spremna – možeivr!avanje – prave avisnosti (/);"

    • #a su bile dovoljene dve instrukcije koje

    upisuju, ne bi nali koji je upis relevantan aargument na!e instrukciju, jer nemapreimenovanja

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    6/78

    Ivr!avanje i upis reultata

    • 7a kraju ivr!avanja se mora abeležiti da je gotovoivr!avanje

    • .pis – da li smemo beuslovno da upisujemo6• 74 – jer neka instrukcija koja koristi taj registar kao

    argument, možda nije očitala registar, jer jo! čekadrugi argument – ovo je ograničenje paralelimabog antiavisnosti (;)/"

    • Za taj slučaj treba akočiti funkcionalnu jedinicu

    (>"

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    7/78

    'ako voditi evidenciju - Scoreboard

    •  Tri statusne tabele – Status svih izdatih instrukcija SII – faa u

    ivr!avanju (Idavanje u popunjavanje scoreboarda,čekanje i čitanje argumenata, ivr!avanje, upis"

     – Status svake funkcionalne jedinice SFJ(da li jeaueta, koja se operacija ivr!ava, odredi!ni registar,registri a čitanje argumenata i upis, funkcionalne jedinice koje upisuju argumente, ako nije ve?iračunat argument i read2 %agovi a argumente"

     – Status svih registara – SR koje jedinice ?e da upi!ureultat u svaki registar, ako ima idati$ instrukcijakoje ?e da upi!u u taj registar

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    8/78

    Za!to svaka statusna tabela(##@"

    Status svih izdatih instrukcija )ko je pročitala argumente, ne adržava prepisivanje registara, ako

     je poslednja koja koristi argument: (smanji ka!njenje bogantiavisnosti"

    'ada vr!i upis reultata u neki registar, sve instrukcije u prooru koje

    čekaju taj reultat ga mogu čitati od narednog ciklusa (argumentipostaju data read2"

    Status svake funkcionalne jedinice• Zauetost (od ovoga avisi da li neku instrukciju možemo da

    ubacimo u proor"

    • /egistri argumenata i reultata (bog formiranja grafa avisnosti"• 'oje jedinice generi!u argumente (da preslikamo graf na

    funkcionalne jedinice"• #a li su argumenti spremni (dinamički data read2 skup" Status svih registara (da se spreči idavanje dve instrukcije koje

    upisuju u isti registar - ;);"

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    9/78

    'oliko ima vrednosti aar$itekturalne registre

    •  >edna u svakom registru koja se koristi dok nijepročitana od strane poslednje instrukcije koja je koristi:

    • 'ako namo koja je poslednja – dolai novi upis u tajar$itekturalni registar, pa mora biti ili u instrukcijskom

    proora, ili su sve avr!ene•  >edna može biti akočena na ilau: Ta akočena se

    prosleuje do svi$ instrukcija koje čekaju prekoregistra, ali tek kada je pret$odna očitana od svi$ ;)/

    0raktično nema preimenovanja, ali je dovoljenonapredovanje instrukcije koja prepisuje registar doupisa, kada pret$odna vrednost nije očitana od svi$

    • 7adalje primer sa kursa na 5erkle2, proor maA 8instrukcija

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    10/78

    Scoreboard )rc$itecture(*#* ++"

       -  u  n  c   t   i  o  n  a   l    .  n   i   t  s

       /  e  g   i  s

       t  e  r  s

    0 1ult0 1ult0 1ult0 1ult

    0 #ivide0 #ivide

    0 )dd0 )dd

    IntegerInteger

    1emor2S*3/453)/#S*3/453)/#

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    11/78

    Scoreboard Implications• 3ut-of-order completion BC ;)/, ;); $aards6

    • Solutions for ;)/D – Stall &riteback until registers $ave been read – /ead registers onl2 during /ead 3perands stage

    • Solution for ;);D –

    #etect $aard and stall issue of ne& instruction untilot$er instruction completes

    • 7o register renaming<• 7eed to $ave multiple instructions in eAecution

    p$ase BC multiple eAecution units or pipelinedeAecution units

    • Scoreboard keeps track of dependencies bet&eeninstructions t$at $ave alread2 issued:

    • Scoreboard replaces I#, 4E, ;5 &it$ F stages

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    12/78

    our Stages of Scoreboard*ontrol

    • IssueGdecode instructions H c$eck for structural$aards (I#" – Instructions issued in program order (for $aard c$ecking" – #onJt issue if structural $aard (busy u SFJ) – #onJt issue if instruction is output dependent on an2

    previousl2 issued but uncompleted instruction (no ;);$aards" (destinacioni registar u SR ima nezavršen upis)

    • Read operandsG&ait until no data $aards, t$en readoperands (I#K" –  )ll real dependencies (/); $aards" resolved in t$is

    stage, since &e &ait for instructions to &rite back data:(čekaju se ready bitovi oba argumenta u SFJ)

     – 7o for&arding of data in t$is model< (svaki rezultat se prvoupiše u registar, pre korišenja kao argument)

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    13/78

    our Stages of Scoreboard*ontrol

    • ExecutionGoperate on operands (4E" – T$e functional unit begins eAecution upon receiving

    operands: ;$en t$e result is read2, it notiLes t$escoreboard t$at it $as completed eAecution:

    • Write resultGLnis$ eAecution (;5" – Stall until no ;)/ $aards &it$ previous instructionsD

    4AampleD DIVDF0,F2,F4

      ADDDF10,F0,F8  SUBDF8,F8,F14

    scoreboard &ould stall S.5# until )### readsoperands

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    14/78

     T$ree 0arts of t$eScoreboard

    Instruction statusD;$ic$ of F steps t$e instruction is in

    • unctional unit statusDGIndicates t$e state of t$e functionalunit (.": M Lelds for eac$ functional unit

    5us2D Indicates &$et$er t$e unit is bus2 or not3pD3peration to perform in t$e unit (e:g:, N or –"iD #estination registerj,kD Source-register numbersOj,OkD unctional units producing source registers j, k

    /j,/kD lags indicating &$en j, k are read2

    • /egister result statusGIndicates &$ic$ functional unit &ill &riteeac$ register, if one eAists: 5lank &$en no pending instructions&ill &rite t$at register

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    15/78

    Scoreboard 4Aample

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    16/78

    #etailed Scoreboard 0ipeline*ontrol

    /eadoperands

    4Aecutioncomplete

    Instructionstatus

    ;riteresult

    Issue

    5ookkeeping

    /j← 7oP /k← 7o

    ∀f(if Oj(f"B. t$en /j(f"← Qes"P∀f(if Ok(f"B. t$en /j(f"← Qes"P/esult(i(.""← P 5us2(."← 7o

    5us2(."← 2esP 3p(."← opPi(."← R#JP j(."← RSJPk(."← RSKJP Oj← /esult(SJ"P

    Ok←

      /esult(RSKJ"P /j←

     not OjP/k← not OkP /esult(#J"← .P

    /j and /k

    unctional unitdone

    ;ait until

    ∀f((j(f"i(."or /j(f"B7o" H(k(f" i(."or/k( f "B7o""

    7ot bus2 (."and not

    result(#"

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    17/78

      A D*2cle  Instruction status:   Read Exec Write

    Instruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1

    LD F2 45+ R3

    MULTD F0 F2 F4

    SUBD F8 F6 F2

    DIVD F10 F0 F6

    ADDD F6 F8 F2

     Functional unit status:  dest S1 S2 FU FU Fj? Fk?

    !ime "ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer es Lo!" F6 R2 es

    Mu#t1 $o

    Mu#t2 $o

    A"" $o

    Di%i"e $o

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$1   FU    Integer 

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    18/78

      A D*2cle K

    Issue Knd U#6

     Instruction status:   Read   Exec WriteInstruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2

    LD F2 45+ R3

    MULTD F0 F2 F4

    SUBD F8 F6 F2

    DIVD F10 F0 F6

    ADDD F6 F8 F2

     Functional unit status:  dest S1 S2 FU FU Fj? Fk?

    *ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer es Lo!" F6 R2 es

    Mu#t1 $o

    Mu#t2 $o

    A"" $o

    Di%i"e $o

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$2   FU    Integer 

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    19/78

      A D*2cle V

    Issue 1.UT6

     Instruction status:   Read Exec WriteInstruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3

    LD F2 45+ R3

    MULTD F0 F2 F4

    SUBD F8 F6 F2

    DIVD F10 F0 F6

    ADDD F6 F8 F2

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer es Lo!" F6 R2 $o

    Mu#t1 $o

    Mu#t2 $o

    A"" $o

    Di%i"e $o

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$3   FU    Integer 

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    20/78

      A D*2cle F Instruction status:   Read Exec Write

    Instruction   j k    Issue Oper Com p Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3

    MULTD F0 F2 F4

    SUBD F8 F6 F2

    DIVD F10 F0 F6

    ADDD F6 F8 F2

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    Mu#t1 $o

    Mu#t2 $o

    A"" $o

    Di%i"e $o

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$4   FU    Integer 

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    21/78

      A D*2cle 8 Instruction status:   Read Exec Write

    Instruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5

    MULTD F0 F2 F4

    SUBD F8 F6 F2

    DIVD F10 F0 F6

    ADDD F6 F8 F2

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer es   Lo!" F2 R3 es

    Mu#t1 $o

    Mu#t2 $o

    A"" $o

    Di%i"e $o

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$5   FU    Integer 

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    22/78

      A D*2cle + Instruction status:   Read Exec Write

    Instruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6

    MULTD F0 F2 F4   6

    SUBD F8 F6 F2

    DIVD F10 F0 F6

    ADDD F6 F8 F2

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer es   Lo!" F2 R3 es

    Mu#t1 es   Mu#t F0 F2 F4   Integer    $o es

    Mu#t2 $o

    A"" $o

    Di%i"e $o

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$6   FU    Mu#t1   Integer 

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    23/78

      A D*2cle W

    /ead multipl2 operands6

     Instruction status:   Read Exec WriteInstruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 (

    1.UT# -, -K -F   6

    SUBD F8 F6 F2   (

    DIVD F10 F0 F6

    ADDD F6 F8 F2

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer es   Lo!" F2 R3 $o

    Mu#t1 es   Mu#t F0 F2 F4   Integer    $o es

    Mu#t2 $o

    A"" es   Su) F8 F6 F2   Integer    es $o

    Di%i"e $o

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$7   FU    Mu#t1   Integer    A""

    S b d 4 l * l X

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    24/78

    Scoreboard 4AampleD *2cle Xa(irst $alf of clock c2cle"

     Instruction status:   Read Exec WriteInstruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 (

    MULTD F0 F2 F4   6

    SUBD F8 F6 F2   (

    DIVD F10 F0 F6   8

    ADDD F6 F8 F2

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer es   Lo!" F2 R3 $o

    Mu#t1 es   Mu#t F0 F2 F4   Integer    $o es

    Mu#t2 $o

    A"" es   Su) F8 F6 F2   Integer    es $o

    Di%i"e es   Di% F10 F0 F6   Mu#t1   $o es

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$8   FU    Mu#t1   Integer    A""   Di%i"e

    S b d 4 l * l Xb

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    25/78

    Scoreboard 4AampleD *2cle Xb(Second $alf of clock c2cle"

     Instruction status:   Read Exec WriteInstruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8

    MULTD F0 F2 F4   6

    SUBD F8 F6 F2   (

    DIVD F10 F0 F6   8

    ADDD F6 F8 F2

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    Mu#t1 es   Mu#t F0 F2 F4 es es

    Mu#t2 $o

    A"" es   Su) F8 F6 F2 es es

    Di%i"e es   Di% F10 F0 F6   Mu#t1   $o es

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$8   FU    Mu#t1   A""   Di%i"e

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    26/78

      A D*2cle M

    /ead operands for 1.UT H S.56 Issue )###6

    7ote/emaining

     Instruction status:   Read Exec WriteInstruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    U# -K F8N /V   5 6 ( 8

    MULTD F0 F2 F4   6 *

    SUBD F8 F6 F2   ( *

    DIVD F10 F0 F6   8

    ADDD F6 F8 F2

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    10 Mu#t1 es   Mu#t F0 F2 F4 es es

    Mu#t2 $o

    2 A"" es   Su) F8 F6 F2 es es

    Di%i"e es   Di% F10 F0 F6   Mu#t1   $o es

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$9   FU    Mu#t1   A""   Di%i"e

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    27/78

      A D*2cle  Instruction status:   Read Exec Write

    Instruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8

    MULTD F0 F2 F4   6 *

    SUBD F8 F6 F2   ( *

    DIVD F10 F0 F6   8

    ADDD F6 F8 F2

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    * Mu#t1 es   Mu#t F0 F2 F4 $o $o

    Mu#t2 $o

    1 A"" es   Su) F8 F6 F2 $o $o

    Di%i"e es   Di% F10 F0 F6   Mu#t1   $o es

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$10   FU    Mu#t1   A""   Di%i"e

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    28/78

      A D*2cle  Instruction status:   Read Exec Write

    Instruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8

    MULTD F0 F2 F4   6 *

    SUBD F8 F6 F2   ( * 11

    DIVD F10 F0 F6   8

    ADDD F6 F8 F2

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    8 Mu#t1 es   Mu#t F0 F2 F4 $o $o

    Mu#t2 $o

    0 A"" es   Su) F8 F6 F2 $o $o

    Di%i"e es   Di% F10 F0 F6   Mu#t1   $o es

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$11   FU    Mu#t1   A""   Di%i"e

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    29/78

      A D*2cle K

    /ead operands for #IY#6

     Instruction status:   Read Exec WriteInstruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8

    MULTD F0 F2 F4   6 *

    SUBD F8 F6 F2   ( * 11 12

    DIVD F10 F0 F6   8

    ADDD F6 F8 F2

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    ( Mu#t1 es   Mu#t F0 F2 F4 $o $o

    Mu#t2 $o

    A"" $o

    Di%i"e es   Di% F10 F0 F6   Mu#t1   $o es

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$12   FU    Mu#t1   Di%i"e

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    30/78

      A D*2cle V Instruction status:   Read Exec Write

    Instruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8

    MULTD F0 F2 F4   6 *

    SUBD F8 F6 F2   ( * 11 12

    DIVD F10 F0 F6   8

    ADDD F6 F8 F2 13

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    6 Mu#t1 es   Mu#t F0 F2 F4 $o $o

    Mu#t2 $o

    A"" es A"" F6 F8 F2 es es

    Di%i"e es   Di% F10 F0 F6   Mu#t1   $o es

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$13   FU    Mu#t1   A""   Di%i"e

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    31/78

      A D*2cle F Instruction status:   Read Exec Write

    Instruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8

    MULTD F0 F2 F4   6 *

    SUBD F8 F6 F2   ( * 11 12

    DIVD F10 F0 F6   8

    ADDD F6 F8 F2 13 14

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    5 Mu#t1 es   Mu#t F0 F2 F4 $o $o

    Mu#t2 $o

    2 A"" es A"" F6 F8 F2 es es

    Di%i"e es   Di% F10 F0 F6   Mu#t1   $o es

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$14   FU    Mu#t1   A""   Di%i"e

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    32/78

      A D*2cle 8 Instruction status:   Read Exec Write

    Instruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8

    MULTD F0 F2 F4   6 *

    S.5# -X -+ -K   ( * 11 12

    DIVD F10 F0 F6   8

    ADDD F6 F8 F2 13 14

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    4 Mu#t1 es   Mu#t F0 F2 F4 $o $o

    Mu#t2 $o

    1 A"" es A"" F6 F8 F2 $o $o

    Di%i"e es   Di% F10 F0 F6   Mu#t1   $o es

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$15   FU    Mu#t1   A""   Di%i"e

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    33/78

      A D*2cle + Instruction status:   Read Exec Write

    Instruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8

    MULTD F0 F2 F4   6 *

    SUBD F8 F6 F2   ( * 11 12

    DIVD F10 F0 F6   8

    ADDD F6 F8 F2 13 14 16

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    3 Mu#t1 es   Mu#t F0 F2 F4 $o $o

    Mu#t2 $o

    0 A"" es A"" F6 F8 F2 $o $o

    Di%i"e es   Di% F10 F0 F6   Mu#t1   $o es

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$16   FU    Mu#t1   A""   Di%i"e

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    34/78

      A D*2cle W

    ;$2 not &rite result of )##666

    ;)/ aard<

     Instruction status:   Read Exec WriteInstruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8

    MULTD F0 F2 F4   6 *

    SUBD F8 F6 F2   ( * 11 12

    DIVD F10 F0 F6   8

    ADDD F6 F8 F2 13 14 16

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    2 Mu#t1 es   Mu#t F0 F2 F4 $o $o

    Mu#t2 $o

    A"" es A"" F6 F8 F2 $o $o

    Di%i"e es   Di% F10 F0 F6   Mu#t1   $o es

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$17   FU    Mu#t1   A""   Di%i"e

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    35/78

      A D*2cle X Instruction status:   Read Exec Write

    Instruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8

    MULTD F0 F2 F4   6 *

    SUBD F8 F6 F2   ( * 11 12

    DIVD F10 F0 F6   8

    ADDD F6 F8 F2 13 14 16

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    1 Mu#t1 es   Mu#t F0 F2 F4 $o $o

    Mu#t2 $o

    A"" es A"" F6 F8 F2 $o $o

    Di%i"e es   Di% F10 F0 F6   Mu#t1   $o es

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$18   FU    Mu#t1   A""   Di%i"e

    A

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    36/78

      A D*2cle M Instruction status:   Read Exec Write

    Instruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8

    MULTD F0 F2 F4   6 * 1*

    SUBD F8 F6 F2   ( * 11 12

    DIVD F10 F0 F6   8

    ADDD F6 F8 F2 13 14 16

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    0 Mu#t1 es   Mu#t F0 F2 F4 $o $o

    Mu#t2 $o

    A"" es A"" F6 F8 F2 $o $o

    Di%i"e es   Di% F10 F0 F6   Mu#t1   $o es

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$19   FU    Mu#t1   A""   Di%i"e

    A

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    37/78

      A D*2cle K Instruction status:   Read Exec Write

    Instruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8MULTD F0 F2 F4   6 * 1* 20

    SUBD F8 F6 F2   ( * 11 12

    DIVD F10 F0 F6   8

    ADDD F6 F8 F2 13 14 16

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    Mu#t1 $o

    Mu#t2 $o

    A"" es A"" F6 F8 F2 $o $o

    Di%i"e es   Di% F10 F0 F6 es es

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$20   FU    A""   Di%i"e

    A D

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    38/78

      A D*2cle K

    ;)/ aard is no& gone:::

     Instruction status:   Read Exec WriteInstruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8MULTD F0 F2 F4   6 * 1* 20

    SUBD F8 F6 F2   ( * 11 12

    DIVD F10 F0 F6   8 21

    ADDD F6 F8 F2 13 14 16

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    Mu#t1 $o

    Mu#t2 $o

    A"" es A"" F6 F8 F2 $o $o

    Di%i"e es   Di% F10 F0 F6 es es

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$21   FU    A""   Di%i"e

    A D

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    39/78

      A D*2cle KK Instruction status:   Read Exec Write

    Instruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8MULTD F0 F2 F4   6 * 1* 20

    SUBD F8 F6 F2   ( * 11 12

    DIVD F10 F0 F6   8 21

    ADDD F6 F8 F2 13 14 16 22

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    Mu#t1 $o

    Mu#t2 $o

    A"" $o

    3* Di%i"e es   Di% F10 F0 F6 $o $o

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$22   FU    Di%i"e

    A D

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    40/78

      A D*2cle + Instruction status:   Read Exec Write

    Instruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8MULTD F0 F2 F4   6 * 1* 20

    SUBD F8 F6 F2   ( * 11 12

    DIVD F10 F0 F6   8 21 61

    ADDD F6 F8 F2 13 14 16 22

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    Mu#t1 $o

    Mu#t2 $o

    A"" $o

    0 Di%i"e es   Di% F10 F0 F6 $o $o

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$61   FU    Di%i"e

    A D

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    41/78

      A D*2cle +K Instruction status:   Read Exec Write

    Instruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8MULTD F0 F2 F4   6 * 1* 20

    SUBD F8 F6 F2   ( * 11 12

    DIVD F10 F0 F6   8 21 61 62

    ADDD F6 F8 F2 13 14 16 22

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    Mu#t1 $o

    Mu#t2 $o

    A"" $o

    Di%i"e $o

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$62   FU 

    v &D A D

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    42/78

    v &D A D*2cle +K

    In-order issueP out-of-order eAecute H commit

     Instruction status:   Read Exec WriteInstruction   j k    Issue Oper Comp Result 

    LD F6 34+ R2 1 2 3 4

    LD F2 45+ R3   5 6 ( 8MULTD F0 F2 F4   6 * 1* 20

    SUBD F8 F6 F2   ( * 11 12

    DIVD F10 F0 F6   8 21 61 62

    ADDD F6 F8 F2 13 14 16 22

     Functional unit status:   dest S1 S2 FU FU Fj? Fk?*ime +ame   us! Op Fi Fj Fk "j "k Rj Rk  

    Integer $o

    Mu#t1 $o

    Mu#t2 $o

    A"" $o

    Di%i"e $o

     Re#ister result status:

    oc'    F$ F2 F% F& F' F1$ F12 ((( F)$62   FU 

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    43/78

     Tomasulo algoritam

    • 'ako da se ibegnu ilane avisnosti i antiavisnostikao ograničenje scoreboardinga, eksplicitno iliimplicitno preimenovanje6

    • 7eka se instrukcije odma$ veuju a funkcionalne

     jedinice koje mogu da i$ ivr!e, ali dovoliti ve?i brojinstrukcija da se poveća instrukcijski prozor

    • 7eka se a sve izdate instrukcije rezervišupozicije a funkcionalne jedinice potrebne a nji$ovoivr!avanje (rezervacione stanice – RS a svakunovu instrukciju idatu po redosledu"

    • )ko nema slobodne odgovarajuće rezervacionestanice, austavlja se idavanje instrukcija

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    44/78

     Tomasulo 3rganiation

    0 adders0 adders

    )dd)ddK)ddV

    0 multipliers0 multipliers

    1ult1ultK

    rom 1em 0 /egisters

    /eservationStations

    *ommon #ata 5us (*#5"

     To 1em

    0 3p

    OueueUoad 5u[ers

    Store5u[ers

    UoadUoadKUoadVUoadFUoad8

    Uoad+

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    45/78

     Tomasulo implicitno preimenovanje

    • #a li nekako može da se ivede implicitnopreimenovanje argumenata i rezultata na osnovumesta – reervacione stanice operacija koje generi!utaj reultat

     Tada je preimenovani argument pokaivač na mesto ureervacionim stanicama funkcionalne jedinice kojageneri!e argument

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    46/78

     Tomasulo implicitno preimenovanje(K"

    • 7eka reference za argumente svake nove instrukcijebudu rezervacione stanice instrukcija kojegenerišu rezultate za argumente, ako nekanedovr!ena instrukcija treba da prosledi argument

    . suprotnom, reultat je ve? upisan u registar i!"#$ se uima vrednost i ar$itekturalnogregistra (upisana ranije" – tada preimenovanje nije nipotrebno

    'ada kod idavanja instrukcija naie novi upis u nekiar$itekturalni registar, njegov trenutni sadržaj nije vi!epotreban, jer su sve reervacione stanice koje sutrebale da koriste pret$odnu vrednost i tog registrave? uele tu vrednost i apamtile kod sebe u /S

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    47/78

     Tomasulo distribucija reultata•

    7eka postoji zajedni%ki data bus kojim se distribuira jedanrezultat sa ilaa neke reervacione stanice po ciklusu• 7eka sve ostale reervacione stanice oslu!kuju ajednički data

    bus (koji pored podataka !alje i kod reervacione stanice čiji jeto reultat" i neka preuimaju poslate Y/4#73STI a svojeinstrukcije koje traže argument sa &' R'('R)#*I+'S+I*' '"I&'R# R'(,- .For/arding0001

    • Sada instrukcije koje su čekale taj reultat u svojim /S umestoreference čuvaju )R'!+S& preimenovanog registra preuetusa ajedničkog data bus-a, pa može biti vi!e implicitni$preimenovanja a isti registar

    • Sa ajedničkog data bus-a ide i u odgovaraju?i registar, samoposlednja vrednost upisa u ar$itekturalni registar pooriginalnom redosledu: Za S)' prethodne nezavršeneupise u isti ar$itekturalni registar ?e se čitanje Y/4#73STIsvi$ argumenta raditi sa zajedni%kog data bus2a

    T l di t ib ij

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    48/78

     Tomasulo distribucijareultata (K"

    • )ko nijedna instrukcija u reervacionim stanicama neupisuje u neki registar argumenta neke instrukcije #, poidavanju instrukcije # se povlači vrednost i registra togargumenta u reervacionu stanicu instrukcije # i odma$ jetaj argument read2

    • /egistri treba da naju koja lokacija reervacione stanicekod ibacivanja reultata na ajednički data bus upisuje ukoji registar – ato postoji tabela a registarski status

    • 0rano polje u toj tabeli – nači da nijedna idata

    instrukcija ne prepisuje staru vrednost• Yrednost polja a registar u tabeli registarskog statusa

    odreuje da li treba da se ubacuje vrednost saajedničkog data bus-a u registar, a na osnovu ivora

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    49/78

    .loga registarskog statusa uuspostavljanju avisnosti

    • 3uva sve poslednje upise koji treba da se odigrajuu svakom arhitekturalnom registru4 a nemaulaa ako je vrednost u registarskom fajlu jedina aar$itekturalni registar

    /eferisanje ovog statusa deLni!e !ta se upisuje uargumente novi$ idati$ instrukcija i odma$ se nada li je reultat read2:

    • /ead2 je ako nema funkcionalne jedinice koja upisujeu registar argumenta ni u jednoj reervacionoj stanici

    • Svako ubacivanje nove instrukcije u reervacionestanice (iuev store" dovodi do novog upisa uregistarski status

    T l 3 i ti

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    50/78

     Tomasulo 3rganiation

    0 adders0 adders

    )dd)ddK)ddV

    0 multipliers0 multipliers

    1ult1ultK

    rom 1em 0 /egisters

    /eservationStations

    *ommon #ata 5us (*#5"

     To 1em

    0 3p

    OueueUoad 5u[ers

    Store5u[ers

    UoadUoadKUoadVUoadFUoad8

    Uoad+

    / ti St ti

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    51/78

    /eservation Station*omponents

    3pD 3peration to perform in t$e unit (e:g:, N or –"Yj, YkD Yalue of Source operands – Store bu[ers $as Y Leld, result to be stored

    Oj, OkD /eservation stations producing source

    registers (value to be &ritten" – 7oteD 7o read2 %ags as in ScoreboardP Oj,OkB BC read2

     – Store bu[ers onl2 $ave Oi for /S producing result

      5us2D Indicates reservation station or . is bus2

    /egister result statusGIndicates &$ic$ functional unit&ill last &rite eac$ register, if one eAists: 5lank &$enno pending instructions t$at &ill &rite t$at register:

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    52/78

     T$ree Stages of Tomasulo )lgorit$m1.IssueGget instruction from 0 3p Oueue

      If reservation station free (no structural $aard",control issues instr H sends operands (renames registers":

    2.ExecutionGoperate on operands (4E"  ;$en bot$ operands read2 t$en eAecuteP

     if not read2, &atc$ *ommon #ata 5us for result3.Write resultGLnis$ eAecution (;5"

      ;rite on *ommon #ata 5us to all a&aiting unitsPmark reservation station available

    • 7ormal data busD data N destination (]go to\ bus"•

    *ommon data busD data N source  (]come from\ bus" – +F bits of data N F bits of unctional .nit source address – ;rite if matc$es eApected unctional .nit (produces result" – #oes t$e broadcast

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    53/78

     Tomasulo 4Aample Instruction status:   Exec Write

    Instruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 Lo!"1 $oLD F2 45+ R3   Lo!"2 $o

    MULTD F0 F2 F4   Lo!"3 $o

    SUBD F8 F6 F2

    DIVD F10 F0 F6

    ADDD F6 F8 F2

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 $o

    A""2 $o

    A""3 $o

    Mu#t1 $o

    Mu#t2 $o

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    0   FU 

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    54/78

     Tomasulo 4Aample *2cle Instruction status:   Exec Write

    Instruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 Lo!"1 es 34+R2LD F2 45+ R3   Lo!"2 $o

    MULTD F0 F2 F4   Lo!"3 $o

    SUBD F8 F6 F2

    DIVD F10 F0 F6

    ADDD F6 F8 F2

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 $o

    A""2 $o

    A""3 $o

    Mu#t1 $o

    Mu#t2 $o

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    1   FU    Lo!"1

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    55/78

     Tomasulo 4Aample *2cleK

    7oteD .nlike ++, can $ave multiple loads outstanding

     Instruction status:   Exec WriteInstruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 Lo!"1 es 34+R2LD F2 45+ R3   2 Lo!"2 es   45+R3

    MULTD F0 F2 F4   Lo!"3 $o

    SUBD F8 F6 F2

    DIVD F10 F0 F6

    ADDD F6 F8 F2

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 $o

    A""2 $o

    A""3 $o

    Mu#t1 $o

    Mu#t2 $o

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    2   FU    Lo!"2   Lo!"1

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    56/78

     Tomasulo 4Aample *2cleV

    • 7oteD registers names are removed (]renamed\" in/eservation StationsP 1.UT issued vs: scoreboard

    • Uoad completingP &$at is &aiting for Uoad6

     Instruction status:   Exec WriteInstruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 Lo!"1 es 34+R2LD F2 45+ R3   2 Lo!"2 es   45+R3

    MULTD F0 F2 F4   3 Lo!"3 $o

    SUBD F8 F6 F2

    DIVD F10 F0 F6

    ADDD F6 F8 F2

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 $o

    A""2 $o

    A""3 $o

    Mu#t1 es   ULTD R,F4-   Lo!"2

    Mu#t2 $o

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    3   FU    Mu#t1   Lo!"2   Lo!"1

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    57/78

     Tomasulo 4Aample *2cleF

    • UoadK completingP &$at is &aiting for Uoad6

     Instruction status:   Exec WriteInstruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 4 Lo!"1 $o

    LD F2 45+ R3   2 4 Lo!"2 es   45+R3

    MULTD F0 F2 F4   3 Lo!"3 $o

    SUBD F8 F6 F2   4

    DIVD F10 F0 F6

    ADDD F6 F8 F2

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 es   SUBD   M,A1-   Lo!"2

    A""2 $o

    A""3 $o

    Mu#t1 es   ULTD R,F4-   Lo!"2

    Mu#t2 $o

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    4   FU    Mu#t1   Lo!"2   M,A1-   A""1

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    58/78

     Tomasulo 4Aample *2cle8 Instruction status:   Exec Write

    Instruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 4 Lo!"1 $o

    LD F2 45+ R3   2 4 5 Lo!"2 $o

    MULTD F0 F2 F4   3 Lo!"3 $o

    SUBD F8 F6 F2   4

    DIVD F10 F0 F6   5

    ADDD F6 F8 F2

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  2 A""1 es   SUBD   M,A1- M,A2-

    A""2 $o

    A""3 $o

    10 Mu#t1 es   ULTD M,A2-   R,F4-

    Mu#t2 es   DIVD   M,A1-  Mu#t1

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    5   FU    Mu#t1   M,A2-   M,A1-   A""1   Mu#t2

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    59/78

     Tomasulo 4Aample *2cle+

    • Issue )### $ere vs: scoreboard6 $a, preimenovano

     je implicitno

     Instruction status:   Exec WriteInstruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 4 Lo!"1 $o

    LD F2 45+ R3   2 4 5 Lo!"2 $o

    MULTD F0 F2 F4   3 Lo!"3 $o

    SUBD F8 F6 F2   4

    DIVD F10 F0 F6   5

    ADDD F6 F8 F2 6

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  1 A""1 es   SUBD   M,A1- M,A2-

    A""2 es ADDD M,A2-   A""1

    A""3 $o

    * Mu#t1 es   ULTD M,A2-   R,F4-

    Mu#t2 es   DIVD   M,A1-  Mu#t1

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    6   FU    Mu#t1   M,A2-   A""2   A""1   Mu#t2

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    60/78

     Tomasulo 4Aample *2cleW

    • )dd completingP &$at is &aiting for it6

     Instruction status:   Exec WriteInstruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 4 Lo!"1 $o

    LD F2 45+ R3   2 4 5 Lo!"2 $o

    MULTD F0 F2 F4   3 Lo!"3 $o

    SUBD F8 F6 F2   4 (

    DIVD F10 F0 F6   5

    ADDD F6 F8 F2 6

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  0 A""1 es   SUBD   M,A1- M,A2-

    A""2 es ADDD M,A2-   A""1

    A""3 $o

    8 Mu#t1 es   ULTD M,A2-   R,F4-

    Mu#t2 es   DIVD   M,A1-  Mu#t1

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    7   FU    Mu#t1   M,A2-   A""2   A""1   Mu#t2

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    61/78

     Tomasulo 4Aample *2cleX Instruction status:   Exec Write

    Instruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 4 Lo!"1 $o

    LD F2 45+ R3   2 4 5 Lo!"2 $o

    MULTD F0 F2 F4   3 Lo!"3 $o

    SUBD F8 F6 F2   4 ( 8

    DIVD F10 F0 F6   5

    ADDD F6 F8 F2 6

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 $o

    2 A""2 es ADDD ,M/M- M,A2-

    A""3 $o

    ( Mu#t1 es   ULTD M,A2-   R,F4-

    Mu#t2 es   DIVD   M,A1-  Mu#t1

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    8   FU    Mu#t1   M,A2-   A""2   ,M/M-   Mu#t2

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    62/78

     Tomasulo 4Aample *2cleM Instruction status:   Exec Write

    Instruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 4 Lo!"1 $o

    LD F2 45+ R3   2 4 5 Lo!"2 $o

    MULTD F0 F2 F4   3 Lo!"3 $o

    SUBD F8 F6 F2   4 ( 8

    DIVD F10 F0 F6   5

    ADDD F6 F8 F2 6

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 $o

    1 A""2 es ADDD ,M/M- M,A2-

    A""3 $o

    6 Mu#t1 es   ULTD M,A2-   R,F4-

    Mu#t2 es   DIVD   M,A1-  Mu#t1

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    9   FU    Mu#t1   M,A2-   A""2   ,M/M-   Mu#t2

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    63/78

     Tomasulo 4Aample *2cle

    • )ddK completingP &$at is &aiting for it6

     Instruction status:   Exec WriteInstruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 4 Lo!"1 $o

    LD F2 45+ R3   2 4 5 Lo!"2 $o

    MULTD F0 F2 F4   3 Lo!"3 $o

    SUBD F8 F6 F2   4 ( 8

    DIVD F10 F0 F6   5

    ADDD F6 F8 F2 6 10

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 $o

    0 A""2 es ADDD ,M/M- M,A2-

    A""3 $o

    5 Mu#t1 es   ULTD M,A2-   R,F4-

    Mu#t2 es   DIVD   M,A1-  Mu#t1

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    10   FU    Mu#t1   M,A2-   A""2   ,M/M-   Mu#t2

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    64/78

     Tomasulo 4Aample *2cle

    • ;rite result of )### $ere vs: scoreboard6 /S %ult& je ve pokupila argument iz F'

     Instruction status:   Exec WriteInstruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 4 Lo!"1 $o

    LD F2 45+ R3   2 4 5 Lo!"2 $o

    MULTD F0 F2 F4   3 Lo!"3 $o

    SUBD F8 F6 F2   4 ( 8

    DIVD F10 F0 F6   5

    ADDD F6 F8 F2 6 10 11

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 $o

    A""2 $o

    A""3 $o

    4 Mu#t1 es   ULTD M,A2-   R,F4-

    Mu#t2 es   DIVD   M,A1-  Mu#t1

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    11   FU    Mu#t1   M,A2-   ,M/M+   ,M/M-   Mu#t2

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    65/78

     Tomasulo 4Aample *2cleK Instruction status:   Exec Write

    Instruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 4 Lo!"1 $o

    LD F2 45+ R3   2 4 5 Lo!"2 $o

    MULTD F0 F2 F4   3 Lo!"3 $o

    SUBD F8 F6 F2   4 ( 8

    DIVD F10 F0 F6   5

    ADDD F6 F8 F2 6 10 11

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 $o

    A""2 $o

    A""3 $o

    3 Mu#t1 es   ULTD M,A2-   R,F4-

    Mu#t2 es   DIVD   M,A1-  Mu#t1

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    12   FU    Mu#t1   M,A2-   ,M/M+   ,M/M-   Mu#t2

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    66/78

     Tomasulo 4Aample *2cleV Instruction status:   Exec Write

    Instruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 4 Lo!"1 $o

    LD F2 45+ R3   2 4 5 Lo!"2 $o

    MULTD F0 F2 F4   3 Lo!"3 $o

    SUBD F8 F6 F2   4 ( 8

    DIVD F10 F0 F6   5

    ADDD F6 F8 F2 6 10 11

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 $o

    A""2 $o

    A""3 $o

    2 Mu#t1 es   ULTD M,A2-   R,F4-

    Mu#t2 es   DIVD   M,A1-  Mu#t1

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    13   FU    Mu#t1   M,A2-   ,M/M+   ,M/M-   Mu#t2

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    67/78

     Tomasulo 4Aample *2cleF Instruction status:   Exec Write

    Instruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 4 Lo!"1 $o

    LD F2 45+ R3   2 4 5 Lo!"2 $o

    MULTD F0 F2 F4   3 Lo!"3 $o

    SUBD F8 F6 F2   4 ( 8

    DIVD F10 F0 F6   5

    ADDD F6 F8 F2 6 10 11

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 $o

    A""2 $o

    A""3 $o

    1 Mu#t1 es   ULTD M,A2-   R,F4-

    Mu#t2 es   DIVD   M,A1-  Mu#t1

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    14   FU    Mu#t1   M,A2-   ,M/M+   ,M/M-   Mu#t2

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    68/78

     Tomasulo 4Aample *2cle8 Instruction status:   Exec Write

    Instruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 4 Lo!"1 $o

    LD F2 45+ R3   2 4 5 Lo!"2 $o

    MULTD F0 F2 F4   3 15 Lo!"3 $o

    SUBD F8 F6 F2   4 ( 8

    DIVD F10 F0 F6   5

    ADDD F6 F8 F2 6 10 11

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 $o

    A""2 $o

    A""3 $o

    0 Mu#t1 es   ULTD M,A2-   R,F4-

    Mu#t2 es   DIVD   M,A1-  Mu#t1

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    15   FU    Mu#t1   M,A2-   ,M/M+   ,M/M-   Mu#t2

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    69/78

     Tomasulo 4Aample *2cle+ Instruction status:   Exec Write

    Instruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 4 Lo!"1 $o

    LD F2 45+ R3   2 4 5 Lo!"2 $o

    MULTD F0 F2 F4   3 15 16 Lo!"3 $o

    SUBD F8 F6 F2   4 ( 8

    DIVD F10 F0 F6   5

    ADDD F6 F8 F2 6 10 11

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 $o

    A""2 $o

    A""3 $o

    Mu#t1 $o

    40 Mu#t2 es   DIVD   MF4   M,A1-

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$

    16   FU    MF4   M,A2-   ,M/M+   ,M/M-   Mu#t2

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    70/78

    0reskočeno ni ciklusa

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    71/78

     Tomasulo 4Aample *2cle88 Instruction status:   Exec Write

    Instruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 4 Lo!"1 $o

    LD F2 45+ R3   2 4 5 Lo!"2 $o

    MULTD F0 F2 F4   3 15 16 Lo!"3 $o

    SUBD F8 F6 F2   4 ( 8

    DIVD F10 F0 F6   5

    ADDD F6 F8 F2 6 10 11

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 $o

    A""2 $o

    A""3 $o

    Mu#t1 $o

    1 Mu#t2 es   DIVD   MF4   M,A1-

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$55   FU    MF4   M,A2-   ,M/M+   ,M/M-   Mu#t2

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    72/78

     Tomasulo 4Aample *2cle8+

    • 1ultK is completingP &$at is &aiting for it6

     Instruction status:   Exec WriteInstruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 4 Lo!"1 $o

    LD F2 45+ R3   2 4 5 Lo!"2 $o

    MULTD F0 F2 F4   3 15 16 Lo!"3 $o

    SUBD F8 F6 F2   4 ( 8

    DIVD F10 F0 F6   5 56

    ADDD F6 F8 F2 6 10 11

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 $o

    A""2 $o

    A""3 $o

    Mu#t1 $o

    0 Mu#t2 es   DIVD   MF4   M,A1-

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$56   FU    MF4   M,A2-   ,M/M+   ,M/M-   Mu#t2

    Tomasulo 4Aample *2cle

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    73/78

     Tomasulo 4Aample *2cle8W

    • 3nce againD In-order issue, out-of-order eAecution

    and completion:

     Instruction status:   Exec WriteInstruction   j k    Issue Comp Result    Bus A""ress

    LD F6 34+ R2 1 3 4 Lo!"1 $o

    LD F2 45+ R3   2 4 5 Lo!"2 $o

    MULTD F0 F2 F4   3 15 16 Lo!"3 $o

    SUBD F8 F6 F2   4 ( 8

    DIVD F10 F0 F6   5 56 5(

    ADDD F6 F8 F2 6 10 11

     Reser,ation Stations:   S1 S2 RS RS  

    *ime +ame   us! Op -j -k "j "k  A""1 $o

    A""2 $o

    A""3 $o

    Mu#t1 $o

    0 Mu#t2 es   DIVD   MF4   M,A1-

     Re#ister result status:oc'    F$ F2 F% F& F' F1$ F12 ((( F)$56   FU    MF4   M,A2-   ,M/M+   ,M/M-   Mu#t2

    2+K

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    74/78

      2+K

    • ;$2 take longer on scoreboard9++6•

    Structural aards (vezano za RS, a ne FJ)• Uack of for&arding (orarding štedi ciklus)• *rozor je vei jer mo+e da ima mnogo više

    RS od FJ

     Instruction status:   Read Exec Write Exec WriteInstruction   j k    Issue Oper Comp Result Issue Comp Result 

    LD F6 34+ R2 1 2 3 4 1 3 4

    LD F2 45+ R3   5 6 ( 8 2 4 5

    MULTD F0 F2 F4   6 * 1* 20 3 15 16

    SUBD F8 F6 F2   ( * 11 12 4 ( 8

    DIVD F10 F0 F6   8 21 61 62 5 56 5(

    ADDD F6 F8 F2 13 14 16 22 6 10 11

    Tomasulo v Scoreboard

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    75/78

     Tomasulo v: Scoreboard(I51 V+9M v: *#* ++"

    0ipelined unctional .nits 1ultiple unctional .nits(+ load, V store, V N, K A9^" ( load9store, N , K

    A, ^"

    &indo& sieD _ F instructions _ 8 instructions7o issue on structural $aard same;)/D renaming avoids stall completion

    ;);D renaming avoids stall issue5roadcast results from . ;rite9read registers*ontrolD reservation stations central scoreboard

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    76/78

    1ane Tomasulo algoritma

    • 'ompleksnost• 0uno bri$ asocijativni$ memorija

    veani$ a ajednički data bus• 0erformanse ograničene ajedničkim

    data bus-om• /e!enje sa vi!e ajednički$ data bus-

    ova, ali to podiže kompleksnost –paralelno asocijativno pretraživanje

    Zaključci

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    77/78

    Zaključci• ; koristi paraleliam na nivou instrukcija

    • Zavisnosti se egaktno odreuju u ivr!avanju•  Tabele pomažu u implicitnom preimenovanju

    - umesto registara, reultati se jednonačnoveuju a reervacionu stanicu instrukcije koja

     je generisala reultat• referenca ivora podataka na ajedničkom

    data bus-u pomaže da sve instrukcije u /Sistovremeno učitaju odgovaraju?e argumente,

    ako je idata instrukcija koja radi novi upis utaj ar$itekturalni registar

    • Implicitno preimenovanje

    klj č i ( "

  • 8/19/2019 Scoreboarding i Tomasulo Algoritam

    78/78

    Zaključci (K"

    • In-order issue, out-of-order eAecution BC out-of-ordercompletion

    • 0rilikom dekodovanja se odreuje da li postoje resursi(reervaciona stanica" a a$tevanu funkcionalnu

     jedinicu, ali se odma$ odreuju reference naargumente ili se učitavaju vrednosti sami$argumenata, ako su ve? iračunati

    • 'ljučni doprinosi –#inamičko rasporeivanje ve?i$ ##@ (maA

    veličina instrukcijskog proora ugraene data %o&ma!ine je B broju reervacioni$ stanica

     – Implicitno preimenovanje registara