Sunteți pe pagina 1din 58

Sisteme de memorie

Ierarhia memoriilor
Tipuri de memorii
Memorii semiconductoare
Memoria cu uniti multiple
Memoria asociativ
Memoria cache
Memoria virtual
04.05.2015

Structura sistemelor de calcul (03-4)

Memoria asociativ (1)


Memorii RAM: datele sunt identificate cu
ajutorul unor adrese unice
Memorii asociative: datele sunt
identificate prin coninutul acestora
memorii adresabile prin coninut (CAM
Content Addressable Memory)
Memorie asociativ cu n cuvinte: timpul
de cutare a unei date este independent
de n
Toate cuvintele din memorie pot fi
comparate n paralel cu cuvntul cutat
04.05.2015

Structura sistemelor de calcul (03-4)

Memoria asociativ (2)


Cost mai ridicat dect al
memoriilor RAM
Exemple de utilizare:
Memorii cache translatarea
adreselor
Recunoaterea modelelor

Dou tipuri de memorii asociative:

04.05.2015

Cu potrivire exact: datele sunt


identificate pe baza egalitii cu o
cheie
Structura sistemelor de calcul (03-4)

Memoria asociativ (3)


Organizarea logic: fix sau variabil
Organizare fix:
Un cuvnt este mprit n segmente fixe
Segmentul cheie: fiecare bit al acestui
segment trebuie utilizat pentru interogare

Organizare variabil:
Un cuvnt poate fi mprit n segmente fixe
Orice parte a unui segment poate fi utilizat
pentru interogare complet interogabil

04.05.2015

Structura sistemelor de calcul (03-4)

Memoria asociativ (4)

04.05.2015

Structura sistemelor de calcul (03-4)

Memoria asociativ (5)

Celul de memorie asociativ


Sunt necesare n jur de 10 tranzistoare
04.05.2015

Structura sistemelor de calcul (03-4)

Memoria asociativ (6)


Prelucrare asociativ
Executat cu un procesor asociativ
Procesorul asociativ conine o
memorie asociativ i o logic de
control suplimentar
Memoria asociativ poate executa
n paralel instruciuni primitive

Exemple de instruciuni executate


de o memorie asociativ:
04.05.2015

SET: setarea la 1 a tuturor biilor de


Structura sistemelor de calcul (03-4)

Memoria asociativ (7)

04.05.2015

COMPARE: comparaii paralele ale


argumentului mascat cu toate
cuvintele
READ: transmiterea pe liniile de
date a cuvintelor care au biii de
potrivire setai
WRITE: scrierea n paralel a
argumentului mascat n toate
cuvintele care au biii de potrivire
setai
Structura sistemelor de calcul (03-4)

Memoria asociativ (8)


Avantajele prelucrrii asociative:
Viteza ridicat: pentru anumite
probleme, timpul de execuie se poate
reduce cu un factor de n
Un mod mai natural de a soluiona
anumite probleme de calcul
Operaiile sunt executate local

Aplicaii: prelucrarea imaginilor;


urmrirea semnalelor radar;
inteligena artificial n timp real
04.05.2015

Structura sistemelor de calcul (03-4)

Sisteme de memorie
Ierarhia memoriilor
Tipuri de memorii
Memorii semiconductoare
Memoria cu uniti multiple
Memoria asociativ
Memoria cache
Memoria virtual
04.05.2015

Structura sistemelor de calcul (03-4)

10

Memoria cache
Memoria cache
Principiul memoriei cache
Organizarea memoriei cache
Funcionarea memoriei cache
Maparea adreselor
Maparea asociativ
Maparea direct
Maparea cu seturi asociative

Strategii de nlocuire
04.05.2015

Structura sistemelor de calcul (03-4)

11

Principiul memoriei cache


(1)

Memorie rapid, utilizat


temporar pentru pstrarea unei
poriuni a datelor i instruciunilor
n vederea utilizrii imediate
Memoria cache este mai
costisitoare dimensiunea
acestei memorii ntr-un sistem de
calcul este limitat
04.05.2015

O mare parte din cererile de acces


vor fi satisfcute de memoria cache
Structura sistemelor de calcul (03-4)

12

Principiul memoriei cache


(2)

Amplasare: ntre memoria


principal i UCP

Conine cpii ale unor blocuri din


memoria principal
Dac un cuvnt solicitat de UCP se
afl n memoria cache, nu va fi
necesar accesul la memoria
principal mai lent

mbuntirea performanei:
amplasarea memoriei cache n

04.05.2015

Structura sistemelor de calcul (03-4)

13

Memoria cache
Memoria cache
Principiul memoriei cache
Organizarea memoriei cache
Funcionarea memoriei cache
Maparea adreselor
Maparea asociativ
Maparea direct
Maparea cu seturi asociative

Strategii de nlocuire
04.05.2015

Structura sistemelor de calcul (03-4)

14

Organizarea memoriei cache (1)


Cuvintele de memorie: pstrate ntro
memorie de date
Sunt grupate n pagini blocuri sau linii

Fiecare bloc al memoriei cache este


marcat cu adresa sa de bloc marcaj
(tag)
Colecia adreselor de marcaj asignate
momentan memoriei cache: pstrat
ntro memorie de marcaje
04.05.2015

Structura sistemelor de calcul (03-4)

15

Organizarea memoriei
cache (2)

Structura de baz a unei memorii cache


04.05.2015

Structura sistemelor de calcul (03-4)

16

Memoria cache
Memoria cache
Principiul memoriei cache
Organizarea memoriei cache
Funcionarea memoriei cache
Maparea adreselor
Maparea asociativ
Maparea direct
Maparea cu seturi asociative

Strategii de nlocuire
04.05.2015

Structura sistemelor de calcul (03-4)

17

Funcionarea memoriei cache (1)


Atunci cnd UCP genereaz o
cerere de citire:

04.05.2015

Cererea este trimis la memoria


cache
Dac cuvntul nu este gsit n
memoria cache: cuvntul solicitat
este furnizat de memoria principal
Dac cuvntul este gsit n
memoria cache: nu este necesar
accesul la memoria principal
Structura sistemelor de calcul (03-4)

18

Funcionarea memoriei
cache (2)

Execuia unei operaii de citire


04.05.2015

Structura sistemelor de calcul (03-4)

19

Funcionarea memoriei cache (3)


Atunci cnd UCP genereaz o
cerere de scriere:
Cererea este trimis la memoria
cache
Dac cuvntul nu este gsit n
memoria cache: se ncarc o copie
a blocului n care se afl cuvntul
din memoria principal n memoria
cache
04.05.2015

Se execut o operaie de scriere


Structura sistemelor de calcul (03-4)

20

Funcionarea memoriei
cache (4)

Execuia unei operaii de scriere


04.05.2015

Structura sistemelor de calcul (03-4)

21

Funcionarea memoriei cache (5)


Poate apare inconsistena datelor:
Data din memoria cache difer de
data din memoria principal cu
aceeai adres

O inconsisten temporar este


acceptabil
Problema coerenei memoriilor
cache: prevenirea utilizrii
improprii a datei vechi
04.05.2015

Sisteme multiprocesor
Structura sistemelor de calcul (03-4)

22

Funcionarea memoriei cache (6)


Strategii de scriere: write-back, writethrough
Strategia write-back
Fiecrui cuvnt din memoria cache i se
asociaz un bit de modificare (dirty bit)
Toate modificrile asupra unui cuvnt
sunt efectuate n memoria cache
Dac un cuvnt trebuie eliminat i bitul
de modificare este setat: cuvntul este
actualizat n memoria principal
04.05.2015

Structura sistemelor de calcul (03-4)

23

Funcionarea memoriei cache (7)


Avantaj:
Cuvntul din memoria cache poate fi
modificat de mai multe ori

Dezavantaje:
Memoria cache i memoria
principal pot fi temporar
inconsistente
Se complic recuperarea n cazul
defectelor de sistem
04.05.2015

Structura sistemelor de calcul (03-4)

24

Funcionarea memoriei cache (8)


Strategia write-through:
Cuvntul este modificat att n
memoria cache, ct i n memoria
principal
Avantaje:
Implementare simpl
Memoria principal are ntotdeauna
date consistente cu memoria cache

Dezavantaj:
04.05.2015

ncetinete UCP

Structura sistemelor de calcul (03-4)

25

Memoria cache
Memoria cache
Principiul memoriei cache
Organizarea memoriei cache
Funcionarea memoriei cache
Maparea adreselor
Maparea asociativ
Maparea direct
Maparea cu seturi asociative

Strategii de nlocuire
04.05.2015

Structura sistemelor de calcul (03-4)

26

Maparea adreselor
Translatarea adresei de memorie
specificat de UCP n locaia cuvntului
din memoria cache
Tipuri de mapare a adreselor:
Mapare asociativ
Mapare direct
Mapare cu seturi asociative

Pentru exemple:
Memorie principal de 64 K cuvinte (16 bii)
Memorie cache de 256 cuvinte
04.05.2015

Structura sistemelor de calcul (03-4)

27

Memoria cache
Memoria cache
Principiul memoriei cache
Organizarea memoriei cache
Funcionarea memoriei cache
Maparea adreselor
Maparea asociativ
Maparea direct
Maparea cu seturi asociative

Strategii de nlocuire
04.05.2015

Structura sistemelor de calcul (03-4)

28

Maparea asociativ (1)


Memorie cache cu asociativitate total
Adresa i coninutul sunt memorate ca
i cuvinte separate n memoria cache
Un cuvnt de memorie poate fi memorat
n orice locaie a memoriei cache

Organizarea: combinaie ntre o


memorie asociativ i o memorie RAM
Doar adresele cuvintelor sunt memorate
n partea asociativ
04.05.2015

Structura sistemelor de calcul (03-4)

29

Maparea asociativ (2)

04.05.2015

Structura sistemelor de calcul (03-4)

30

Memoria cache
Memoria cache
Principiul memoriei cache
Organizarea memoriei cache
Funcionarea memoriei cache
Maparea adreselor
Maparea asociativ
Maparea direct
Maparea cu seturi asociative

Strategii de nlocuire
04.05.2015

Structura sistemelor de calcul (03-4)

31

Maparea direct (1)


Se utilizeaz memorii RAM n locul
memoriilor asociative se reduce costul
Considerm c memoria cache M1 este
mprit n b = 2s regiuni M1(0), M1(1),
, M1(b-1) seturi
Memoria principal M2 este divizat n
blocuri
Fiecare bloc M2(i) din M2 este mapat
ntrun set M1(j) din M1
Adresa j a setului: j = i mod b
04.05.2015

Structura sistemelor de calcul (03-4)

32

Maparea direct (2)


Considerm c un set al memoriei
cache conine un singur cuvnt
Adresele de memorie sunt divizate
n dou pri:

04.05.2015

Index: s bii de ordin inferior ai


adresei din memoria principal
identific setul memoriei cache care
poate memora blocul
Marcaj: t bii de ordin superior
rmai ai adresei din memoria
Structura sistemelor de calcul (03-4)

33

Maparea direct (3)


La adresa specificat de index:
Este memorat un marcaj n memoria de
marcaje
Este memorat un bloc n memoria de date

Memoria de marcaje poate fi o


memorie RAM obinuit, adresat de
index (s bii)
Dac exist 2d cuvinte pe set: cei d bii
de ordin inferior ai adresei formeaz
deplasamentul cuvntului din set
04.05.2015

Structura sistemelor de calcul (03-4)

34

Maparea direct (4)

04.05.2015

Structura sistemelor de calcul (03-4)

35

Maparea direct (5)

04.05.2015

Structura sistemelor de calcul (03-4)

36

Maparea direct (6)


Avantaje ale maprii directe:
Necesit un numr mai redus de bii
pentru fiecare cuvnt din memoria
cache
Nu necesit memorie asociativ

Dezavantaj al maprii directe:

04.05.2015

Performanele pot fi reduse dac


dou sau mai multe cuvinte cu
acelai index, dar marcaje diferite,
sunt accesate frecvent
Structura sistemelor de calcul (03-4)

37

Maparea direct (7)


Exemplu de proiectare a unei
memorii cache cu mapare direct
Procesor conectat cu o memorie
extern adresabil la nivel de octet
Magistral de adrese de 32 bii
Magistral de date de 64 bii
Capacitatea memoriei cache: 256
KB
Dimensiunea unui set (bloc): 32 B
04.05.2015

Structura sistemelor de calcul (03-4)

38

Maparea direct (8)


Nr. de seturi: 256 KB / 32 B = 8 K =
213
Capacitatea memoriei de marcaje: 8
K x t bii
Capacitatea memoriei de date: 256
KB / 8 B = 32 K cuvinte = 215 cuvinte
de 64 bii
Pentru adresarea unui octet din set: d
= 5 bii
Pentru selectarea seturilor din
memoria de date: s = 13 bii (adresa

04.05.2015

Structura sistemelor de calcul (03-4)

39

Maparea direct (9)

04.05.2015

Structura sistemelor de calcul (03-4)

40

Memoria cache
Memoria cache
Principiul memoriei cache
Organizarea memoriei cache
Funcionarea memoriei cache
Maparea adreselor
Maparea asociativ
Maparea direct
Maparea cu seturi asociative

Strategii de nlocuire
04.05.2015

Structura sistemelor de calcul (03-4)

41

Maparea cu seturi asociative


(1)
Permite memorarea mai multor
blocuri cu acelai index
Memoria cache M1 este divizat n
b=2s seturi
Fiecare set poate memora k = 2m
blocuri
Fiecare set M1(k) este o memorie
asociativ
Maparea asociativ i cea direct:
cazuri speciale ale maprii cu seturi
asociative

04.05.2015

Structura sistemelor de calcul (03-4)

42

Maparea cu seturi asociative


(2)
n practic, se utilizeaz valori
mici ale numrului k (ex., k = 4)

Permite utilizarea unor memorii


RAM pentru memorarea marcajelor

Memorie cache cu seturi


asociative cu k blocuri set
asociativ cu k ci
Fiecare bloc de memorie: aceeai
structur ca i o memorie cache
cu mapare direct

04.05.2015

Structura sistemelor de calcul (03-4)

43

Maparea cu seturi asociative


(3)

04.05.2015

Structura sistemelor de calcul (03-4)

44

Maparea cu seturi asociative


(4)

Memorie cache cu seturi asociative cu dou


ci
04.05.2015

Structura sistemelor de calcul (03-4)

45

Maparea cu seturi asociative (5)


Exemplu de proiectare a unei
memorii cache cu seturi
asociative

04.05.2015

Procesor de 32/64 bii


Magistral de adrese de 32 bii
Magistral de date de 64 bii
Capacitatea memoriei cache: 8 KB
Dimensiunea unui set (bloc): 8 B
Memorie cache cu seturi asociative
cu dou ci
Structura sistemelor de calcul (03-4)

46

Maparea cu seturi asociative (6)


Numr de seturi: 8 KB / 2x8 B = 512 =
29
Pentru adresarea unui octet din set: d =
3 bii
Pentru selectarea seturilor din memoria
de date: s = 9 bii (adresa setului)
Marcajul: t = 32 (9 + 3) = 20 bii
Memoria de marcaje: 2 x (512 x 20 bii)
Nr. de cuvinte: 8 KB / 2x8 B = 512
Memoria de date: 2 x (512 x 64 bii)
04.05.2015

Structura sistemelor de calcul (03-4)

47

Maparea cu seturi asociative


(7)

04.05.2015

Structura sistemelor de calcul (03-4)

48

Memoria cache
Memoria cache
Principiul memoriei cache
Organizarea memoriei cache
Funcionarea memoriei cache
Maparea adreselor
Maparea asociativ
Maparea direct
Maparea cu seturi asociative

Strategii de nlocuire
04.05.2015

Structura sistemelor de calcul (03-4)

49

Strategii de nlocuire (1)


Dac nu mai exist spaiu n memoria
cache, trebuie s se nlocuiasc un set
nlocuire aleatorie
Alege un set n mod aleatoriu i l
nlocuiete cu blocul care conine data nou
accesat
Avantaj: implementare simpl
Dezavantaj: seturile cu probabilitatea
maxim de a fi utilizate din nou au aceeai
ans de a fi eliminate ca i cele care nu
vor fi utilizate din nou
04.05.2015

Structura sistemelor de calcul (03-4)

50

Strategii de nlocuire (2)


Cel mai puin frecvent utilizat (LFU
Least Frequently Used)

04.05.2015

Pentru fiecare set, se pstreaz un


contor al numrului total de utilizri
Avantaj: un set utilizat frecvent are
o probabilitate mai mare de a
rmne n memoria cache
Dezavantaj: seturile care au fost
ncrcate recent au o valoare mic a
contorului
Structura sistemelor de calcul (03-4)

51

Strategii de nlocuire (3)


Cel mai puin recent utilizat (LRU
Least Recently Used)

04.05.2015

Un set care nu a fost utilizat pentru


o perioad lung de timp are o
ans mai redus de a fi utilizat n
viitorul apropiat
Se pstreaz evidena acelor seturi
care au fost accesate cel mai recent
contor
Are performana cea mai bun
Structura sistemelor de calcul (03-4)

52

Rezumat (1)
Memoria asociativ permite
determinarea rapid a prezenei unui
cuvnt n memorie
Conine o logic suplimentar pentru
compararea n paralel a tuturor
cuvintelor cu cuvntul cutat
Poate fi cu potrivire exact sau cu
comparaie, cu organizare fix sau
variabil

Un procesor asociativ conine o


memorie asociativ i poate executa

04.05.2015

Structura sistemelor de calcul (03-4)

53

Rezumat (2)
Memoria cache este o memorie
rapid care pstreaz o parte a
instruciunilor i a datelor
Permite reducerea numrului de accese
la memoria principal
Este format dintr-o memorie de date i
o memorie de marcaje
Se pot utiliza dou strategii de scriere:
write-back i write-through

Maparea asociativ a adreselor


asigur flexibilitatea maxim, dar

04.05.2015

Structura sistemelor de calcul (03-4)

54

Rezumat (3)
Maparea direct a adreselor permite
utilizarea unei memorii RAM, dar
reduce flexibilitatea prin amplasarea
unui bloc ntr-un anumit set fix
Maparea cu seturi asociative este cea
mai utilizat; permite memorarea ntrun set a mai multor blocuri cu acelai
index
Exist diferite strategii de nlocuire a
unui set din memoria cache: nlocuire
aleatorie; cel mai puin frecvent

04.05.2015

Structura sistemelor de calcul (03-4)

55

Noiuni, cunotine (1)


Principiul memoriei asociative
Tipuri de memorii asociative
Schema bloc a unei memorii
asociative
Schema unei celule de memorie
asociativ
Prelucrarea asociativ
Principiul memoriei cache
Organizarea memoriei cache
Execuia unei operaii de citire i de

04.05.2015

Structura sistemelor de calcul (03-4)

56

Noiuni, cunotine (2)


Problema coerenei memoriilor cache
Strategii de scriere pentru memoria
cache
Principiul memoriei cache cu maparea
asociativ a adreselor
Principiul memoriei cache cu mapare
direct a adreselor
Principiul memoriei cache cu seturi
asociative
Strategii de nlocuire pentru memoria

04.05.2015

Structura sistemelor de calcul (03-4)

57

ntrebri
1. Care sunt avantajele prelucrrii
asociative?
2. Care este deosebirea dintre strategia de
scriere write-back i strategia writethrough la memoria cache?
3. Care sunt avantajele i dezavantajele
maprii directe la memoria cache?
4. Cum se realizeaz nlocuirea unui set din
memoria cache dac se utilizeaz
strategia cel mai puin frecvent utilizat?
04.05.2015

Structura sistemelor de calcul (03-4)

58

S-ar putea să vă placă și