Documente Academic
Documente Profesional
Documente Cultură
• Memoria cache
• Memoria virtuala
ACSO5 - 1
Memorii
ACSO5 - 2
Blocuri de memorie
ACSO5 - 3
Structura memoriei
ACSO5 - 4
Memoria cache
ACSO5 - 5
Memoria cache
Mapare directa:
(adresa blocului)%(numarul
de blocuri in cache)
ACSO5 - 6
Accesarea cache-ului
• Tag – un camp in tabela memoriei cache utilizat pentru
identificarea adresei informatiei cerute
• Bit valid - un bit in tabela memoriei cache care indica
existenta unei date valide
• Ex:
ACSO5 - 7
Accesarea cache-ului - exemplu
ACSO5 - 8
Accesarea cache-ului - exemplu
ACSO5 - 9
Accesarea cache-ului - exemplu
ACSO5 - 10
Descompunerea adresei referite
ACSO5 - 11
Diviziunea adresei referite intr-un cache
ACSO5 - 12
Tratarea unei lipse in cache
• lipsa in cache – o cerere de date din memoria cache
care nu poate fi satisfacuta deoarece data respectiva nu
se afla in cache
• se executa cu ajutorul unitatii de control a procesorului
si a unui controller care initiaza accesul memoriei si
umple cache-ul
• procesorul este blocat pana primeste data respectiva
(vezi pipeline-ul)
ACSO5 - 13
Tratarea unei scrieri
• scrierea unei valori in cache => valori diferite in cache
si in memorie => inconsistenta
• scrierea-prin = se scrie si in cache si in memorie si
datele raman consistente – se foloseste un bufer de
scriere
• scrierea-dupa =se scrie in cache si in memorie se face
actualizarea doar cand blocul este inlocuit
ACSO5 - 14
Maparea directa pentru 16 cuvinte
ACSO5 - 15
Cresterea vitezei de transfer a datelor
Presupunem urmatoarele timpuri de acces la memorie:
• 1 ciclu de ceas pt. transmiterea adresei
• 15 cicluri de ceas pt. fiecare acces la RAM initiat
• 1 ciclu de ceas pt. transmiterea unui cuvant de date
Pentru un bloc de 4 cuvinte va fi nevoie de:
a) pt. un RAM si o magistrala de 1 cuvant =>
1+4x15+4x1=65 cicluri => (4x4)/65=0,25 bytes/ciclu
b) pt. un RAM si o magistrala de 4 cuvinte =>
1+1x15+1x1=17 cicluri => (4x4)/17=0,94 bytes/ciclu
ACSO5 - 16
Posibilitati de organizare a memoriei
ACSO5 - 17
Reducerea lipsurilor din cache
• se poate obtine printr-o amplasare mai flexibila a
blocurilor
• cache cu:
– mapare directa
(nr.blocului)modulo(nr. de blocuri cache)
– asociativitate partiala
(nr.blocului)modulo(nr. de seturi in cache)
– asociativitate totala
ACSO5 - 18
Asocierea memoriei
ACSO5 - 19
Un cache de 8 blocuri configurat diferit
ACSO5 - 20
Cache cu asociativitate partiala 4
ACSO5 - 21
Tratarea unei lipse in cache
• in cache-ul cu asociativitate partiala sau toatala se
inlocuieste blocul cel mai putin recent utilizat din setul
respectiv de blocuri
• in maparea directa se inlocuieste blocul de la adresa
respectiva
• se pot utiliza cache-uri multinivele – o ierarhie de
memorie cu multiple nivele de cache
ACSO5 - 22