59
ORA 2 - 10 © Igor Škraba, FRI OSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik

OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 © Igor Škraba, FRI

OSNOVE RAČUNALNIŠKE ARHITEKTURE II

10 Predpomnilnik

Page 2: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 2 © Igor Škraba, FRI

� Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov se stalno povečuje.

� Razliko med hitrostjo CPE in DRAMov lahko zmanjšamo z uporabo predpomnilnika, vendar samo to ni dovolj.

� Dodatni možnosti za pohitritev pri uporabi pred-pomnilnika sta:

� Uporaba dveh predpomnilnikov enega za ukaze in drugega za operande (Harvardska arhitektura)

� Uporaba širših podatkovnih poti med predpomnilnikom in CPE

Predpomnilnik

Page 3: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 3 © Igor Škraba, FRI

� Če iskane besede ni v predpomnilniku, je potreben dostop do glavnega pomnilnika (DRAM) in prenos novega bloka, ki vsebuje iskano besedo, v predpomnilnik.

� Zato je potrebno pohitriti tudi ta prenos, rešitve so:

� Ker so besede v bloku sosednje, se lahko uporabi pri dostopu do DRAMa page mode način prenosa

� Tudi pri prenosu med predpomnilnikom in DRAMom se lahko uporabi širše podatkovne poti

� Razdelitev glavnega pomnilnika na več modulov - pomnilniško prepletanje

Predpomnilnik

Page 4: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 4 © Igor Škraba, FRI

� Drugi predpomnilniški nivo L2 izven CPE, ki je vedno homogen (Princetonska arhitektura). Včasih tudi tretji nivo L3.

� S CPE je predpomnilnik L2 lahko povezan s posebno prenosno potjo. V tem primeru ima CPE dve prenosni poti:

� Eno za povezavo z glavnim pomnilnikom

� Drugo za povezavo s predpomnilnikom nivoja L2

� Te rešitve se lahko kombinirajo, čeprav se danes pri zmogljivejših računalnikih uporabljajo večinoma kar vse.

Predpomnilnik

Page 5: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 5 © Igor Škraba, FRI

Predpomnilnik

CPE čip

CPE

Prog.dost.registri

Ukaznipredpomnilnik

L1

Operandnipredpomnilnik

L1

PredpomnilnikL2

Glavni pomn.

Glavni pomn.

Glavni pomn.

Glavni pomn.

Registri z več vhodi -del CPE

SRAM na čipu SRAM na čipu DRAM moduli (banke) -pomnilniško prepletanje

Page 6: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 6 © Igor Škraba, FRI

� Predpomnilnik (cache) je majhen hiter pomnilnik med CPE in glavnim pomnilnikom.

� Vsebina predpomnilnika so deli vsebine glavnega pomnilnika, oziroma podmnožica vsebine glavnega pomnilnika.

� Razlog, da bo iskana informacija dovolj pogosto v predpomnilniku je lokalnost pomnilniških dostopov.

� Predpomnilnik mora biti narejen tako, da vsebuje delovno množico V(t,T) in se prilagaja njenemu spreminjanju.

Osnove delovanja predpomnilnikov

Page 7: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 7 © Igor Škraba, FRI

� Delovna množica V(t,T) je množica različnih pomnilniških naslovov, ki jih program generira v času od t-T do T.

� Če v času T pride v pomnilnik N pomnilniških naslovov, velja:� Velikost množice V(t,T) je veliko manjša od N

� Vsebina zaporedno si sledečih množic se spreminja počasi

� Ker je delovna množica manjša od glavnega pomnilnika, je dovolj že majhen predpomnilnik.

Predpomnilnik - osnove delovanja predpomnilnikov

Page 8: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 8 © Igor Škraba, FRI

� Ker je v predpomnilniku samo del vsebine glavnega pomnilnika, mora biti v predpomnilniku še informacija, kateri deli vsebine glavnega pomnilnika so trenutno v njem.

� Pri dostopu CPE do informacije (ukaz, operand) sta dve možnosti:

� Zadetek (hit), če je naslov v predpomnilniku

� Zgrešitev (miss), če naslova ni v predpomnilniku

� Uspešnost delovanja predpomnilnika merimo:

Predpomnilnik - osnove delovanja predpomnilnikov

Page 9: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 9 © Igor Škraba, FRI

� Z verjetnostjo zadetka H

N - število vseh dostopov (N = Ng + Np )

Np - število zadetkov

Ng - število zgrešitev

� Z verjetnostjo zgrešitve 1-H

� Verjetnost zadetka H je pri današnjih predpomnilnikih večja od 0,9; večinoma celo večja od 0,95.

� To pomeni, da bo npr. pri 100 dostopih do pomnilnika pri 95 v predpomnilniku zadetek (vendar vnaprej ne vemo pri katerih), pri 5 dostopih pa zgrešitev.

Predpomnilnik - osnove delovanja predpomnilnikov

pg

pp

NN

N

N

NH

+==

Page 10: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 10 © Igor Škraba, FRI

� V primeru zgrešitve je potreben dostop do glavnega pomnilnika.

� Čas dostopa do predpomnilnika označimo s tap, časdostopa do glavnega pomnilnika pa s tag.

Predpomnilnik - osnove delovanja predpomnilnikov

CPEPred-

pomnilnikGlavni

pomnilnik

Mp , tap

Mg , tag

ta

agapa tHtt )1( −+=

Povprečen čas dostopa ta dopredpomnilnika in glavnegapomnilnika skupaj je:

Page 11: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 11 © Igor Škraba, FRI

� Pri računanju je treba upoštevati dve posebnosti predpomnilnikov:

� Pri zgrešitvi se iz glavnega pomnilnika ne prenese samo ena beseda, temveč predpomnilniški blok, kar je več sosednjih besed

� Čas v računalniku merimo z urinimi periodami

� Čas tap je število urinih period za dostop do predpomnilnika na nivoju L1 in je pri večini računalnikov 1 urina perioda.

� Pri zgrešitvi je potreben dostop do glavnega pomnilnika, čas ki je zato potreben, pa je zgrešitvena kazen.

Predpomnilnik - osnove delovanja predpomnilnikov

Page 12: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 12 © Igor Škraba, FRI

� Zgrešitvena kazen tB je število urinih period, ki se ob zgrešitvi prištejejo k času dostopa.

� Zgrešitvena kazen je odvisna od velikosti bloka, širine podatkovne poti med predpomnilnikom in DRAMom in je tipično med 10 in 100 urinimi periodami.

� Če ima računalnik tudi predpomnilnik na nivoju L2, je zgrešitvena kazen precej manjša.

Predpomnilnik - osnove delovanja predpomnilnikov

Page 13: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 13 © Igor Škraba, FRI

� Povprečni čas dostopa ta je potem:

� Če sta časa tap in tB v urinih periodah, je tudi rezultat tav urinih periodah.

� Povprečni dostopni čas v sekundah pa lahko izračunamo tako, da rezultat ta v urinih periodah pomnožimo s časom trajanja ene urine periode tCPE.

Predpomnilnik - osnove delovanja predpomnilnikov

Bapa tHtt )1( −+=

Page 14: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 14 © Igor Škraba, FRI

� Ker se vsebina v predpomnilniku spreminja, mora predpomnilnik vsebovati poleg besed iz glavnega pomnilnika tudi naslove teh besed. (Kopija katerih besed iz glavnega pomnilnika je v predpomnilniku).

� Zato je vsak predpomnilnik sestavljen iz dveh delov:

� Kontrolnega dela

� Pomnilniškega dela

� Pomnilniški del je razdeljen na enake dele, bloke ali predpomnilniške vrstice.

Predpomnilnik - zgradba predpomnilnikov

Page 15: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 15 © Igor Škraba, FRI

Predpomnilnik - zgradba predpomnilnikov

blok 0

Kontrolni delbloka 0

Pomnilniški del

blok 1

blok M-1

beseda 0

beseda 1

beseda 2b -1Kontrolni del

bloka 1

beseda 0 beseda 1 beseda 2b -1

beseda 0 beseda 1 beseda 2b -1

beseda 0 beseda 1 beseda 2b -1

Kontrolni del

blok ali predpomnilniška vrstica = 2b besed

Pomnilniški del

Zgradba predpomnilnika

Page 16: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 16 © Igor Škraba, FRI

� Blok je nekaj sosednjih pomnilniških besed. Velikost bloka ( B = 2b ) je tipično 4 do 512 pomnilniških besed.

� Kontrolni del vsebuje informacijo, ki enolično določa, kateri blok iz glavnega pomnilnika je v pomnilniškem delu, to je naslov bloka v glavnem pomnilniku.

� Vsak blok ima v predpomnilniku svoj kontrolni del, ki je skupen za cel blok.

� Med glavnim pomnilnikom in predpomnilnikom se vedno prenaša cel blok.

Predpomnilnik - zgradba predpomnilnikov

Page 17: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 17 © Igor Škraba, FRI

Predpomnilnik - osnove delovanja predpomnilnikov

000 00

000 01

000 10

000 11

001 00

001 01

001 10

001 11

010 00

010 01

010 10

010 11

011 00

011 01

011 10

011 11

$12

$31

$CB

$74

$67

$45

$0B

$23

$A4

$1F$36

$06

$FE

$7A

$CC

$5F

100 00

8 bitov

Kontrolni del Pomnilniški del

Predpomnilnik, blok = 4 bajte ⇒ b=2

blok 0

blok 1

blok 2M-1

Pomnilniški naslov

8 bitov

Glavni pomnilnik

CPE

x

x

x

x

Page 18: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 18 © Igor Škraba, FRI

Predpomnilnik - osnove delovanja predpomnilnikov

000 00

000 01

000 10

000 11

001 00

001 01

001 10

001 11

010 00

010 01

010 10

010 11

011 00

011 01

011 10

011 11

$12

$31

$CB

$74

$67

$45

$0B

$23

$A4

$1F$36

$06

$FE

$7A

$CC

$5F

100 00

8 bitov

Kontrolni del Pomnilniški del

blok 0

blok 1

blok 2M-1

Pomnilniški naslov

8 bitov

Glavni pomnilnik

$A4$1F$36

$06

0 1 0

Predpomnilnik, blok = 4 bajte ⇒ b=2

Page 19: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 19 © Igor Škraba, FRI

Predpomnilnik - osnove delovanja predpomnilnikov

000 00

000 01

000 10

000 11

001 00

001 01

001 10

001 11

010 00

010 01

010 10

010 11

011 00

011 01

011 10

011 11

$12

$31

$CB

$74

$67

$45

$0B

$23

$A4

$1F$36

$06

$FE

$7A

$CC

$5F

100 00

8 bitov

Kontrolni del Pomnilniški del

blok 0

blok 1

blok 2M-1

Pomnilniški naslov

8 bitov

Glavni pomnilnik

$A4$1F$36

$06

0 1 0

CPE

Predpomnilnik, blok = 4 bajte ⇒ b=2

=

x

x

x

Page 20: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 20 © Igor Škraba, FRI

Predpomnilnik - osnove delovanja predpomnilnikov

000 00

000 01

000 10

000 11

001 00

001 01

001 10

001 11

010 00

010 01

010 10

010 11

011 00

011 01

011 10

011 11

$12

$31

$CB

$74

$67

$45

$0B

$23

$A4

$1F$36

$06

$FE

$7A

$CC

$5F

100 00

8 bitov

Kontrolni del Pomnilniški del

blok 0

blok 1

blok 2M-1

Pomnilniški naslov

8 bitov

Glavni pomnilnik

$A4$1F$36

$06

0 1 0

CPE

Predpomnilnik, blok = 4 bajte ⇒ b=2

=

x

x

x

Page 21: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 21 © Igor Škraba, FRI

Predpomnilnik - osnove delovanja predpomnilnikov

000 00

000 01

000 10

000 11

001 00

001 01

001 10

001 11

010 00

010 01

010 10

010 11

011 00

011 01

011 10

011 11

$12

$31

$CB

$74

$67

$45

$0B

$23

$A4

$1F$36

$06

$FE

$7A

$CC

$5F

100 00

8 bitov

Kontrolni del Pomnilniški del

blok 0

blok 1

blok 2M-1

Pomnilniški naslov

8 bitov

Glavni pomnilnik

$A4$1F$36

$06

0 1 0

CPE

Predpomnilnik, blok = 4 bajte ⇒ b=2

x

x

x

x

Page 22: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 22 © Igor Škraba, FRI

Predpomnilnik - osnove delovanja predpomnilnikov

000 00

000 01

000 10

000 11

001 00

001 01

001 10

001 11

010 00

010 01

010 10

010 11

011 00

011 01

011 10

011 11

$12

$31

$CB

$74

$67

$45

$0B

$23

$A4

$1F$36

$06

$FE

$7A

$CC

$5F

100 00

8 bitov

Kontrolni del Pomnilniški del

blok 0

blok 1

blok 2M-1

Pomnilniški naslov

8 bitov

Glavni pomnilnik

$A4$1F$36

$06

0 1 0

0 0 0 $12

$31

$CB

$74

Predpomnilnik, blok = 4 bajte ⇒ b=2

Page 23: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 23 © Igor Škraba, FRI

Predpomnilnik - osnove delovanja predpomnilnikov

000 00

000 01

000 10

000 11

001 00

001 01

001 10

001 11

010 00

010 01

010 10

010 11

011 00

011 01

011 10

011 11

$12

$31

$CB

$74

$67

$45

$0B

$23

$A4

$1F$36

$06

$FE

$7A

$CC

$5F

100 00

8 bitov

Kontrolni del Pomnilniški del

blok 0

blok 1

blok 2M-1

Pomnilniški naslov

8 bitov

Glavni pomnilnik

$A4$1F$36

$06

0 1 0

0 0 0 $12

$31

$CB

$74

CPE

Predpomnilnik, blok = 4 bajte ⇒ b=2

x

x

x

=

Page 24: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 24 © Igor Škraba, FRI

� Pri vsakem dostopu CPE pošlje v pomnilnik n-bitni pomnilniški naslov. Zgornjih n-b bitov se primerja z naslovi v kontrolnih delih vseh blokov predpomnilnika (spodnjih b-bitov določa naslov besede znotraj bloka).

� Če pri nekem bloku obstaja enakost, je iskana beseda v predpomnilniku - govorimo o zadetku v predpomnilniku in CPE izvrši dostop do besede v pomnilniškem delu predpomnilnika

� Če enakosti ni, je to zgrešitev in iz glavnega pomnilnika se v predpomnilnik prenese blok v katerem je iskana beseda -preslikava bloka

� Če so predpomnilniku vsi bloki zasedeni, novi blok zamenja enega od obstoječih - govorimo o zamenjavi bloka

Predpomnilnik - osnove delovanja predpomnilnika

Page 25: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 25 © Igor Škraba, FRI

� Potrebna je hitra primerjava vsebine kontrolnega dela predpomnilnika in dela pomnilniškega naslova, do katerega želi CPE dodstop.

� Če primerjava ni hitra, je dostop počasen, zato je treba pri preslikavi bloka iz glavnega pomnilnika v predpomnilnik vpelajti omejitve.

� Glede na strogost omejitev pri preslikavi razlikujemo tri vrste predpomnilnikov:

� Čisti asociativni predpomnilnik

� Set-asociativni predpomnilnik

� Direktni predpomnilnik

Predpomnilnik - osnove delovanja predpomnilnika

Page 26: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 26 © Igor Škraba, FRI

� Razlika med temi tremi vrstami predpomnilnikov je predvsem v zgradbi kontrolnega dela.

� Pri čistem asociativnem in set-asociativnem predpomnilniku je kontrolni del zgrajen z asociativnim pomnilnikom, pri direktnem pomnilniku pa je kontrolni del navadni z naslovom naslovljiv pomnilnik.

� Pri čistem asociativnem predpomnilniku zato pri preslikavi bloka iz glavnega pomnilnika v predpomnilnik ni nobenih omejitev.

Predpomnilnik - vrste predpomnilnikov

Page 27: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 27 © Igor Škraba, FRI

� To pomeni, da se poljuben blok iz glavnega pomnilnika lahko preslika v poljuben blok predpomnilnika (ker je iskanje po vsebini v kontrolnem delu hitro).

� Najstrožje omejitve pri preslikavi ima direktni predpomnilnik, kjer se določen blok iz glavnega pomnilnika lahko preslika samo v točno določen blok predpomnilnika (ker iskanje po vsebini v kontrolnem delu ni mogoče).

� Set-asociativni predpomnilnik je kompromis med čistim asociativnim in direktnim predpomnilnikom, zato so omejitve pri preslikavi delne.

Predpomnilnik -vrste predpomnilnikov

Page 28: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 28 © Igor Škraba, FRI

� Določen blok iz glavnega pomnilnika se pri set-asociativnem predpomnilniku lahko preslika samo v določen set, znotraj seta pa omejitev pri preslikavi ni.

� Pomnilniški del je pri vseh treh vrstah predpomnilnikov navadni z naslovom naslovljiv pomnilnik, seveda čim hitrejši (SRAM).

Predpomnilnik - vrste predpomnilnikov

Page 29: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 29 © Igor Škraba, FRI

� Kontrolni del predpomnilnika je narejen kot asociativni pomnilnik do katerega je dostop preko vsebine.

� Vsebina kontrolnega dela so naslovi blokov in predpomnilnik lahko na osnovi naslova, ki ga da CPE, takoj ugotovi ali je zadetek ali zgrešitev.

� Pri zadetku se opravi dostop do besede v bloku, ki je določena s spodnjimi b-biti pomnilniškega naslova.

Čisti asociativni predpomnilnik

Page 30: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 30 © Igor Škraba, FRI

� Ker so vse besede asociativnega pomnilnika (kontrolnega dela) ekvivalentne, ni pri preslikovanju blokov iz glavnega pomnilnika v predpomnilnik nobenih omejitev.

Predpomnilnik - čisti asociativni predpomnilnik

an-1……ab

an-1……ab ab-1…a0 n-bitni pomnilniški naslov

b-bitov za naslov besede v bloku (velikost bloka 2b besed)Naslov bloka

Blok2b besed

Kontrolni del Pomnilniški del

Primerjava

Page 31: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 31 © Igor Škraba, FRI

� Asociativnih pomnilnikov z nekaj 10.000 besedami z današnjo tehnologijo ni mogoče narediti.

� Zato se čisti asociativni predpomnilniki danes uporabljajo samo v posebnih primerih, kjer so velikosti predpomnilnika samo nekaj 10 besed.

� Če želimo velik predpomnilnik, za kontrolni del namesto enega velikega asociativnega pomnilnika uporabimo večmajhnih, ki so cenejši in jih lahko naredimo.

Predpomnilnik - čisti asociativni predpomnilnik

Page 32: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 32 © Igor Škraba, FRI

� Če predpomnilnik razdelimo na sete, ki so vsak zase majhen asociativni predpomnilnik, dobimo set-asociativni predpomnilnik.

� Predpomnilnik razdelimo na S=2s setov, vsak set je majhen asociativni predpomnilnik.

� Število blokov v setu E=2e imenujemo stopnja asociativnosti ali asociativnost.

� Naslov seta v katerega se lahko preslika blok iz glavnega pomnilnika je: Si = Ai(b:n-1) mod 2s

� Ai(b:n-1) - zgornjih n-b bitov pomn. naslova = številka bloka

� 2s - število setov v predpomnilniku

Set-asociativni predpomnilnik

Page 33: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 33 © Igor Škraba, FRI

Predpomnilnik - direktni predpomnilnik

an-1……ab+s

an-1……ab+s n-bitni pomnilniški naslov

b-bitov naslov besede v bloku (blok 2b besed) Naslov bloka

Blok2b besed

Kontrolni del Pomnilniški del

Primerjava

an-1……ab+sBlok

2b besed

ab+s-1…..ab ab-1…a0

s-bitov številka setaštevilo setov 2s

Primerjava

Set z dvema blokoma stopnja asociativnosti E = 2

Direkten dostop do seta

Page 34: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 34 © Igor Škraba, FRI

� Stopnja asociativnosti je velikost asociativnega pomnilnika s katerim je narejen kontrolni del vsakega seta.

� Stopnja asociativnost je tipično od 2 do 16 (2 do 16 blokov v setu ⇒ 2 do 16 besed velik asociativni pomnilnik za kontrolni del seta)

� Velikost predpomnilnika je M = S * E * B = 2s+e+b

� S = 2s število setov

� E = 2e stopnja asociativnosti (število blokov v setu)

� B = 2b velikost bloka (število besed v bloku)

Predpomnilnik - set-asociativni predpomnilnik

Page 35: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 35 © Igor Škraba, FRI

� Če je stopnja asociativnosti ena, je v vsakem setu samo en blok in za kontrolni del seta ne potrebujemo večasociativnega pomnilnika.

� Tak predpomnilnik je direktni predpomnilnik. Vsak blok iz glavnega pomnilnika se lahko preslika samo v točno določen blok predpomnilnika (znotraj “seta” ni več izbire, ker je v setu samo en blok)

� Naslov (številka) bloka v katerega se mora preslikati blok iz glavnega pomnilnika je: Si = Ai(b:n-1) mod 2s� Ai(b:n-1) - zgornjih n-b bitov pomn. naslova = številka bloka

� 2s - število blokov v predpomnilniku

Direktni predpomnilnik

Page 36: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 36 © Igor Škraba, FRI

Predpomnilnik - direktni predpomnilnik

an-1……ab+s

an-1……ab+s n-bitni pomnilniški naslov

Naslov besede v blokuNaslov bloka

Blok2b besed

Kontrolni del Pomnilniški del

an-1…..ab ab-1…a0

s-bitov naslov bloka v predpomnilnikuštevilo blokov v predpomnilniku 2s

Branje

Direkten dostop do bloka

Blok predpomnilnika

Primerjava

Page 37: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 37 © Igor Škraba, FRI

Predpomnilnik - preslikava bloka v predpomnilnik pri različnih vrstah predpomnilnikov

Glavni pomnilnik

00

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

$12…53

$31…4A

$CB...1F

$74…12

$67...7A

$45…9C

$0B…AA

$23…86

$A4…64

$1F…39$36…5C

$06...1B

$FE...00

$7A…0B

$CC…52

$5F…22

16

Blok

0

1

2

3

01

34

2

6

5

7

Številka bloka (seta)

Številka seta

Številka bloka 01

34

2

6

5

7

Čisti asociativnipredpomnilnik

Set-asociativnipredpomnilnik

stopnja asoc. E=2

Direktnipredpomnilnik

Predpomnilnik 8 blokov Blok

Številka bloka

Page 38: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 38 © Igor Škraba, FRI

Predpomnilnik - vrste predpomnilnikov

00

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

$7A…0B

16

Blok

0

1

2

3

01

34

2

6

5

7

Številka bloka (seta)

Številka seta

Številka bloka 01

34

2

6

5

7

Čisti asociativnipredpomnilnik

Set-asociativnipredpomnilnik

stopnja asoc. E=2

Direktnipredpomnilnik

Glavni pomnilnikPredpomnilnik 8 blokov Blok

Številka bloka $12…53

$31…4A

$CB...1F

$74…12

$67...7A

$45…9C

$0B…AA

$23…86

$A4…64

$1F…39$36…5C

$06...1B

$FE...00

$CC…52

$5F…22

Page 39: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 39 © Igor Škraba, FRI

Predpomnilnik - vrste predpomnilnikov

00

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

$7A…0B

16

Blok

0

1

2

3

01

34

2

6

5

7

Številka bloka (seta)

Številka seta

Številka bloka 01

34

2

6

5

7

Čisti asociativnipredpomnilnik

Set-asociativnipredpomnilnik

stopnja asoc. E=2

Direktnipredpomnilnik

Glavni pomnilnikPredpomnilnik 8 blokov Blok

Številka bloka $12…53

$31…4A

$CB...1F

$74…12

$67...7A

$45…9C

$0B…AA

$23…86

$A4…64

$1F…39$36…5C

$06...1B

$FE...00

$CC…52

$5F…22

Page 40: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 40 © Igor Škraba, FRI

Predpomnilnik - vrste predpomnilnikov

00

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

$7A…0B

16

Blok

0

1

2

3

01

34

2

6

5

7

Številka bloka (seta)

Številka seta

Številka bloka 01

34

2

6

5

7

Čisti asociativnipredpomnilnik

Set-asociativnipredpomnilnik

stopnja asoc. E=2

Direktnipredpomnilnik

13 mod 4 = 1

Glavni pomnilnikPredpomnilnik 8 blokov Blok

Številka bloka $12…53

$31…4A

$CB...1F

$74…12

$67...7A

$45…9C

$0B…AA

$23…86

$A4…64

$1F…39$36…5C

$06...1B

$FE...00

$CC…52

$5F…22

Page 41: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 41 © Igor Škraba, FRI

Predpomnilnik - vrste predpomnilnikov

00

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

$7A…0B

16

Blok Blok

0

1

2

3

01

34

2

6

5

7

Številka bloka (seta)

Številka seta

Številka bloka 01

34

2

6

5

7

Čisti asociativnipredpomnilnik

Set-asociativnipredpomnilnik

stopnja asoc. E=2

Direktnipredpomnilnik

13 mod 4 = 1

13 mod 8 = 5

Glavni pomnilnikPredpomnilnik 8 blokov

Številka bloka $12…53

$31…4A

$CB...1F

$74…12

$67...7A

$45…9C

$0B…AA

$23…86

$A4…64

$1F…39$36…5C

$06...1B

$FE...00

$CC…52

$5F…22

Page 42: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 42 © Igor Škraba, FRI

� Na verjetnost zadetka H vplivajo:

� Velikost predpomnilnika M

� Stopnja asociativnosti E

� Velikost bloka B

� Predpomnilnik lahko povečamo tako, da povečamo:

� Stopnjo asociativnosti E - v setu je več blokov, zato je večji kontrolni del (najdražje)

� Število setov S

� Velikost bloka B - kontrolni del ostane nespremenjen (najceneje)

Predpomnilnik - verjetnost zadetka

Page 43: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 43 © Igor Škraba, FRI

� Večja kot je stopnja asociativnosti E, večja je verjetnost zadetka. Direktni predpomnilnik ima najmanjšo verjetnost zadetka. Ker pa je najcenejši, je lahko tudi velik, kar verjetnost zadetka popravi.

� Predpomnilniško pravilo 2 : 1

� Verjetnost zadetka direktnega predpomnilnika velikosti M je približno enaka verjetnosti zadetka set-asociativnega

predpomnilnika s stopnjo asociativnosti E=2 in velikostjo M/2.

Predpomnilnik - verjetnost zadetka

Page 44: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 44 © Igor Škraba, FRI

� Verjetnost zadetka H z večanjem bloka do neke meje narašča, nato pa pada.

� Pri enaki velikosti predpomnilnika:

� je s povečanjem velikosti bloka v bloku več sosednjih ukazov ali operandov (prostorska lokalnost)

� hkrati se število blokov v predpomnilniku zmanjša (časovna lokalnost)

� Na verjetnost zadetka vpliva tudi izbira bloka, ki naj se zamenja pri zgrešitvi

Predpomnilnik - verjetnost zadetka

Page 45: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 45 © Igor Škraba, FRI

� Pri direktnem predpomnilniku izbire ni, zamenja se blok, ki je določen s preslikavo.

� Pri čistem asociativnem in set-asociativnem predpomnilniku se blok lahko preslika v poljuben blok seta. Ko je predpomnilnik poln, potrebujemo strategijo za določanje bloka, ki naj se zamenja.

� Uporabljajo se naslednje strategije:

� Naključna strategija (Random) - blok se izbere naključno, verjetnost, da bo blok zamenjan je enaka za vse bloke

Predpomnilnik - verjetnost zadetka

Page 46: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 46 © Igor Škraba, FRI

� LRU strategija (Least Recently Used) - zamenja se blok, ki najbolj dolgo ni bil uporabljen. Ta strategija je boljša od naključne, ker zmanjša nevarnost, da bi se zamenjal blok, ki je bil pred kratkim uporabljen

� FIFO strategija (First In First Out) - zamenja se blok, ki je najbolj dolgo v predpomnilniku

� Realizacija LRU strategije je precej zapletena, zato se običajno uporablja pri manjših stopnjah asociativnosti (E=2). Pri predpomnilnikih z višjo stopnjo asociativnosti se uporablja naključna ali FIFO strategija.

Predpomnilnik - verjetnost zadetka

Page 47: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 47 © Igor Škraba, FRI

� Pri delovanju računalnika lahko opazimo, da je bralnih dostopov veliko več kot pisalnih (4 : 1)

� Pri branju je hitra rešitev dokaj enostavna:� Branje bloka je lahko istočasno s primerjavo kontrolne informacije

� Pri zadetku je podatek na voljo CPE takoj

� Ob zgrešitvi je podatek neuporaben, kar pa ne povzroči škode

� Pisanje v predpomnilnik se lahko začne le, če se ugotovi zadetek. Pisanje spremeni vsebino bloka v predpomnilniku, kar pomeni da se razlikuje od vsebine v glavnem pomnilniku.

Branje in pisanje v predpomnilnik

Page 48: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 48 © Igor Škraba, FRI

� Dve vrsti pisalnih strategij se med seboj razlikujeta po tem, kdaj se sprememba vsebine bloka v predpomnilniku odrazi tudi v glavnem pomnilniku:

� Pisanje skozi (write through) - informacija se vedno piše v predpomnilnik in v glavni pomnilnik, tako je vsebina bloka v predpomnilniku in glavnem pomnilniku vedno enaka

� Pisanje nazaj (write back) - informacija se piše samo v predpomnilnik. Vsebina bloka v predpomnilniku je lahko različna od vsebine v glavnem pomnilniku, pri zamenjavi je zato spremenjeni blok treba prenesti nazaj v glavni pomnilnik.

Predpomnilnik - pisanje v predpomnilnik

Page 49: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 49 © Igor Škraba, FRI

� Umazani bit (dirty bit) poseben bit v kontrolnem delu bloka, ki pove ali je bila vsebina bloka spremenjena. Ob prenosu bloka v predpomnilnik se postavi na 0, ko se v blok piše, se umazani bit postavi na 1.

� Pri zamenjavi bloka se morajo nazaj v glavni pomnilnik prenesti samo bloki, ki imajo umazani bit postavljen na 1.

Predpomnilnik - pisanje v predpomnilnik

Page 50: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 50 © Igor Škraba, FRI

� Majhno število zgrešitev je ključnega pomena za dobro delovanje predpomnilnika.

� Za zgrešitev v predpomnilniku so trije osnovni vzroki in glede na to ločimo tri vrste zgrešitev:

� Obvezne zgrešitve

� Velikostne zgrešitve

� Konfliktne zgrešitve

Vrste zgrešitev v predpomnilniku

Page 51: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 51 © Igor Škraba, FRI

� Obvezne zgrešitve� Ob prvem dostopu do besede te ni v predpomnilniku. Tem

zgrešitvam se ni mogoče izogniti, zato tudi zgrešitve prvega dostopa ali mrzle zgrešitve.

� Velikost predpomnilnika, stopnja asociativnosti in zamenjalna strategija na te zgrešitve ne vpliva.

� Pri večjih blokih je obveznih zgrešitev manj.

� Velikostne zgrešitve� Nastopijo zaradi končne velikosti predpomnilnika ko je

predpomnilnik poln.

� Z večanjem predpomnilnika se število teh zgrešitev manjša.

Predpomnilnik - vrste zgrešitev v predpomnilnika

Page 52: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 52 © Igor Škraba, FRI

� Konfliktne zgrešitve� Nastopajo samo pri set-asociativnih in direktnih predpomnilnikih

zaradi omejitev pri preslikavi

� Do konfliktne zgrešitve pride, ko se zamenja blok, ki se bo kmalu spet uporabil

� Do zamenjave pride, ker se morata oba bloka zaradi omejitev pri preslikavi preslikati v isti set (ali blok)

� Če bi bil predpomnilnik čisti asociativni, konfliktnih zgrešitev ne bi bilo

Predpomnilnik - vrste zgrešitev v predpomnilnika

Page 53: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 53 © Igor Škraba, FRI

� Problem skladnosti predpomnilnika (cache coherency) nastopi, kadar se vsebina nekega bloka v predpomnilniku razlikuje od vsebine istega bloka v glavnem pomnilniku in v drugih predpomnilnikih.

� V računalniku s predpomnilnikom je treba zagotoviti, da zaradi neskladnosti ne pride do napak.

� Problem skladnosti nastopa predvsem pri pred-pomnilnikih, ki uporabljajo pisanje nazaj.

Skladnost predpomnilnika

Page 54: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 54 © Igor Škraba, FRI

� Za napačno delovanje zaradi neskladnosti sta dva glavna vzroka:� Prenosi med V/I napravami in glavnim pomnilnikom. Če se

prenos v ali iz glavnega pomnilnika nanaša na naslove, ki so tudi v predpomnilniku, lahko vsebini nista enaki

� Pri računalnikih z več procesorji, ki imajo vsak svoj predpomnilnik, lahko obstaja več različnih kopij iste pomnilniške besede

� Rešitve:� V/I naprave so lahko priključene tako, da gredo prenosi skozi

predpomnilnik - ta rešitev se malo uporablja, ker močno poslabša verjetnost zadetka (⇒ v predpomnilnik se vpisujejo V/I podatki, ki jih CPE redko potrebuje)

Predpomnilnik - skladnost predpomnilnika

Page 55: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 55 © Igor Škraba, FRI

� Pred izvrševanjem V/I ukazov se s posebnimi ukazi, ki jih ima vsak procesor s predpomnilnikom:

� pri V/I branju razveljavi vsebina predpomnilnika

� pri V/I pisanju prenese v glavni pomnilnik vse umazane bloke

� Mehanizem (dodatna logika) za zagotavljanje skladnosti:� Centralni imenik (central directory) - informacija o blokih, ki so trenutno v predpomnilniku, je shranjena na enem mestu v centralnem imeniku, ki je vgrajen v krmilnik pomnilnika

� Vohunjenje (snooping) - se uporablja kadar so procesorji in glavni pomnilnik priključeni na isto vodilo. Vsi procesorji znajo vohuniti (opazovati dogajanje na vodilu) za naslovi na vodilu

Predpomnilnik - skladnost predpomnilnika

Page 56: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 56 © Igor Škraba, FRI

� Protokol MESI (Modified, Exclusive, Shared, Invalid) - vsak blok v predpomnilniku ima dva kontrolna bita, ki določata v katerem od teh štirih stanj je blok.

� Protokol deluje na osnovi vohunjenja, ob zgrešitvi se novemu bloku v predpomnilniku dodeli stanje E ali S (odvisno ali je blok samo v tem predpomnilniku ali tudi v kakšnem drugem)

� Protokol MESI je za programerja neviden in se uporablja v operandnem predpomnilniku in predpomnilniku L2. V ukazni predpomnilnik pisanje ni dovoljeno, zato poseben protokol ni potreben

Predpomnilnik - skladnost predpomnilnika

Page 57: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 57 © Igor Škraba, FRI

� Dostop do predpomnilnika:� Zadetek:

� Branje - običajno 1 urina perioda

� Pisanje - branje bloka

spreminjanje vsebine

pisanje bloka nazaj - tipično ena urina perioda več

� Zgrešitev:� dostop do glavnega pomnilnika

� prenos bloka do predpomnilnika

� pisanje bloka v predpomnilnik

� sledi branje ali pisanje kot pri zadetku

� če je predpomnilnik poln, je potrebna še zamenjava bloka

Vpliv predpomnilnika na hitrost delovanja CPE

Page 58: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 58 © Igor Škraba, FRI

� Za vse te operacije pri zgrešitvi je potrebnih od 10 do 100 urinih period (zgrešitvena kazen).

� Predpomnilniške zgrešitve zmanjšujejo hitrost delovanja CPE, oziroma povečujejo CPI (povprečno število urinih period za izvedbo enega ukaza)

� Realni CPI z upoštevanjem zgrešitev v predpomnilniku je:

CPIR = CPII + MI(1 - H)Zgrešitvena kazen

CPIR - realni CPICPII - idealni CPI brez zgrešitev

v predpomnilniku

MI - povprečno številopomn. dostopov na ukaz

Predpomnilnik - vpliv predpomnilnika na hitrost CPE

Page 59: OSNOVE RAČUNALNIŠKE ARHITEKTURE IIOSNOVE RAČUNALNIŠKE ARHITEKTURE II 10 Predpomnilnik. ORA 2 -10 2 ©Igor Škraba, FRI Razkorak med zmogljivostjo CPE in hitrostjo DRAM pomnilnikov

ORA 2 - 10 59 © Igor Škraba, FRI

� Čas izvajanja programa z I ukazi pa je:

CPEčas = I (CPII + MI(1 - H)Zgreš.kazen) tCPE

� Zgrešitve v predpomnilniku imajo večji vpliv pri hitrih procesorjih z majhnim CPI, eden od načinov za zmanjšanje zgrešitvene kazni je drugi nivo predpomnilnika (predpomnilnik L2)

Predpomnilnik - vpliv predpomnilnika na hitrost CPE