You are on page 1of 12

ARHITECTURA SISTEMELOR DE CALCUL LUCRAREA DE LABORATOR NR.

Memoria cache. Gestiunea memoriei cache


Scopul lucrrii
a) studiul caracteristicilor memoriei cache b) studierea corespondenei dintre memoria principal i memoria cache (metode de mapare a memoriei cache). c)analiza performanelor diferitelor metode de mapare cu ajutorul programului de simulare simcache.exe.

1.Memoria cache
Memoria cache reprezint un buffer de mare vitez plasat ntre procesor i memoria principal ce are drept scop s stocheze poriuni din memoria principal care snt n utilizare curent. De asemenea memoria cache poate fi plasat ntre memoria principal i memoria secundar (virtual). Datorit faptului c memoria cache este cu un ordin de mrime mai rapid dect memoria principal, se poate reduce timpul efectiv de acces la memorie cu condiia ca aceasta s fie corect dimensionat i s se utilizeze o politic adecvat de gestiune a memoriei cache.
Adresa virtuala Nr. pagina Index in pagina (bloc,octet) octet Cautare in TLB Pagina in TLB ? da nu bloc Actualizeaza starea de reamplasare a intrarilor TLB - Translateaza adresa virtuala in adresa fizica - Actualizeaza TLB nu Preluare bloc din memoria principala folosind adresa reala a blocului; selecteaza intrare in CD pentru inlocuire Stocheaza blocul in memoria cache Adresa bloc existenta ?

Adresa bloc

Octet in bloc

Selecteaza intrare in TLB pentru inlocuire

Cautare in directorul CD da

Actualizeaza starea de reamplasare a intrarilor CD

Preluare bloc din cache Selecteaza octetul din bloc Trimite octetul catre CPU

Figura 1. Operaiile cu memoria cache (fetch din cache)


1

ARHITECTURA SISTEMELOR DE CALCUL LUCRAREA DE LABORATOR NR. 5 Memoria cache este o memorie adresabil prin coninut i este constituit dintrun index numit cache directory (CD) i o memorie RAM (cu acces aleator). Directorul CD const n cmpuri (tags) de adrese de blocuri de memorie i bii de control (de exemplu de protecie). Cmpurile de adrese "tags" conin adresele blocurilor ce snt la momentul de timp curent n memoria cache. Adresa virtual este translatat ntr-o adres fizic de ctre sistemul de gestiune a memoriei. Exist o tabel de coresponden ntre adresa virtual i adresa fizic (Translation Lookahead Buffer - TLB ) care conine un numr de adrese virtuale (i adresele fizice corespondente) cele mai recent utilizate. Operaia de access la memoria cache este prezentat n figura 1.

2. Organizarea memoriei cache


Exist trei metode de baz pentru plasarea blocurilor din memoria principal n memoria cache (denumite asocieri sau mapri) : - mapare direct - mapare asociativ (fully associative) - mapare asociativ pe seturi (set associative) . Pentru simplificarea figurilor ce ilustreaz organizarea memoriei cache (n aceste patru cazuri) se consider dimensiunea memoriei cache de 2k cuvinte i dimensiunea blocului de 16 cuvinte. Memoria principal se alege de 256k cuvinte. Adresa fizic va fi reprezentat pe 18 bii (256k = 28 . 210 = 218) . Exista 256k / 16 = 1 8 4 2 /2 = 214 = 16384 blocuri n memoria principal i 2k/16 =2.210 /24 =128 blocuri n memoria cache.

Maparea direct
Maparea direct a memoriei cache este ilustrat n figura 2. Adresa din memoria principal (adresa fizic) se compune din cmpurile : tag, bloc i

cuvnt.
n acest caz blocul i din memoria principal este asociat cu blocul (i mod nr_blocuri_n _cache) = (i mod 128) din memoria cache. Fiecare bloc din cache are asociat un cmp "tag" (primii 7 bii mai semnificativi ai adresei fizice n memoria principal ). Cmpul tag din adresa memoriei principale se compar cu fiecare cmp "tag" al memriei cach. Dup gsirea corespondenei dintre cmpurile tag se alege cmpul "bloc" din adresa memoriei principale i cmpul "cuvnt" din aceeai adres pentru selectarea octetului ce va fi transferat din blocul memoriei cache (dat de tag) n blocul memoriei principale (dat de cmpul bloc i cmpul cuvnt al adresei n memoria principal). Avantajul acestei mapri directe este accesul simultan la datele dorite i la cmpul tag (nu se face o cutare asupra cmpului tag). Dac cmpul tag nu exist n memoria cache , datele vor fi suprimate. Un dezavantaj al maprii directe apare atunci cnd dou sau mai multe blocuri din memoria principal, utilizate alternativ, snt asociate aceluiai bloc din cache. Aceast situaie are

ARHITECTURA SISTEMELOR DE CALCUL LUCRAREA DE LABORATOR NR. 5 probabilitate mic n sistemele uniprocesor, dar probabilitatea crete pentru sistemele multiprocesor cu memorie cache comun. 7 biti Tag Tag Cache Bloc 0 Bloc 1 Memoria principala Bloc 0 Bloc 1 Bloc 127 Bloc 128

Tag

Bloc 127

Bloc 4096

Adresa in memoria principala Tag Bloc Cuvint 7 7 4

Bloc 16383

Figura 2. Organizarea cu mapare direct a memoriei cache

Maparea asociativ (fully associative)


Maparea asociativ a memoriei cache este ilustrat n figura 3. Adresa din memoria principal (adresa fizic) se compune din cmpurile : tag i cuvnt. Cache 14 biti Tag Bloc 0 Tag Bloc 1 Memoria principala Bloc 0 Bloc 1 Bloc 127 Bloc 128

Tag

Bloc 127

Bloc 4096

Adresa in memoria principala Tag 14 Cuvint 4

Bloc 16383

Figura 3. Organizarea cu mapare asociativ a memoriei cache


3

ARHITECTURA SISTEMELOR DE CALCUL LUCRAREA DE LABORATOR NR. 5 n acest caz orice bloc din memoria principal poate fi asociat cu orice bloc din memoria cache. Metoda este cea mai bun, dar i cea mai scump. Maparea asociativ elimin conflictele de acces ntre blocuri, dar timpul de acces crete datorit faptului c este necesar o cutare asociativ.

Maparea asociativ pe seturi


Maparea asociativ pe seturi a memoriei cache este ilustrat n figura 4. Adresa din memoria principal (adresa fizic) se compune din cmpurile : tag, set i

cuvnt.
Aceast mapare reprezint un compromis ntre maparea direct i maparea asociativ. Memoria cache este mprit n S seturi . Blocul i , din memoria principal, poate corespunde cu orice bloc din memoria cache aparinnd setului (i mod S). Numrul de seturi , S, determin costul cutrii (specifice maprii asociative). Setul se determin direct din adres, apoi se caut cmpul tag corespunztor adresei n set. 8 biti Tag Tag Cache Bloc 0 Bloc 1 Memoria principala Bloc 0 Bloc 1 Bloc 63 Bloc 64 Bloc 65 Bloc 4095

Set 0

Set 63

Tag Tag

Bloc 126 Bloc 127

Bloc 16383

Adresa in memoria principala Tag Set Cuvint 8 6 4 Figura 4. Organizarea cu mapare asociativ pe seturi a memoriei cache

Observaii
- dimensiunea blocului n memoria cache este aleas n raport cu proprietatea de localizare a programelor . - memoria cache este adresat cu adrese fizice i nu cu adrese virtuale (se elimin etapa de translatare a adresei virtuale n adres fizic)

ARHITECTURA SISTEMELOR DE CALCUL LUCRAREA DE LABORATOR NR. 5 - algoritmii de reamplasare a blocurilor din memoria cache determin performana memoriei cache, exprimat ca rat de pierderi (numr de ncercri euate de a gsi informaia dorit n cache).

3.Politici de reamplasarea blocurilor din memoria cache


Exist urmtoarele politici de reamplasare a blocurilor din memoria cache: 1. Least recently used (LRU) - se nlocuiete blocul din cache cel mai puin recent utilizat , relativ la momentul de timp curent (se face o analiza a utilizarii blocurilor existente n memoria cache cu un anumit numr de momente de timp n urm n raport cu momentul de timp curent, la care trebuie s se produc o reamplasare). 2. First In First Out (FIFO) - se nlocuiete blocul din cache care a stat n memoria cache cel mai mare interval de timp. 3. Last In First Out (LIFO) - se nlocuiete blocul din cache care a stat n memoria cache cel mai mic interval de timp. 4. Random (RAND) - se alege, n mod aleator ,un bloc din memoria cache ce va fi nlocuit.

4. Programul de simulare a metodelor de mapare a memoriei cache


Pentru evaluarea performanelor diferitelor metode de mapare a memoriei cache se va utiliza programul de simulare simcache, care ilustreaz grafic rata de pierderi calcualt ca raport ntre numrul de ncercri euate de gsire a informaiei dorite n cache i numrul total de accese la memoria cache. Programul simcache are urmtoarea organigram general (figura 5) :
- Citeste localizare - Generare N adrese (secvential / aleator)

Calculeaza rata de pierderi (mapare directa) pentru b = 1 , 16384 Citeste tipul politicii de reamplasare

- Citeste numarul de seturi - Citeste tipul politicii de reamplasare Calculeaza rata de pierderi (mapare asociativa pe seturi ) pentru b = nr_set,16384

Calculeaza rata de pierderi (mapare asociativa) pentru b = 1 , 16384

Afiseaza grafic rata de pierderi si timpul de calcul b = numarul de blocuri din memoria cache nr_set = numar de seturi N = 500 (numar de realizari)

Figura 5. Organigrama programului SIMCACHE

ARHITECTURA SISTEMELOR DE CALCUL LUCRAREA DE LABORATOR NR. 5 Pentru o sesiune de lucru cu programul simcache trebuie date urmatoarele comenzi : SIMULATOR MEMORIE CACHE Generare adrese aleator/secvential [a/s] :s Gradul de localizare [0 : fara localizare] :100 START SIMULARE MAPARE DIRECTA: _______________ END Numar de seturi (exprimat in biti) :3 <---- nr. seturi = 2k Politici de reamplasare : 0->RAND 1->LRU 2->FIFO 3->LIFO

Politica de reamplasare mapare asociativa :0 Politica de reamplasare mapare asociativa pe seturi :2 START SIMULARE MAPARE ASOCIATIVA: _______________ END START SIMULARE MAPARE ASOCIATIVA PE SETURI: ____________ END Factor de amplificare a afisarii :10

rata de pierderi

nr. blocuri in cache = 2

timp de calcul

nr. seturi = 2

informatii despre conditiile

simularii

Modificare factor de amplificare ? [d/n] : n Iesire din simulator ? [d/n] : d


6

ARHITECTURA SISTEMELOR DE CALCUL LUCRAREA DE LABORATOR NR. 5 Gradul de localizare indic gama de generare a adreselor (diferena ntre adresa maxim i minim generate) n multiplii de 16 blocuri . Pentru grad de localizare nul adresele se genereaz pe o gam foarte mare (pe 28 bii). Adresele se pot genera aleator pe ntreg intervalul de 28 biti sau pe un interval dat de gradul de localizare. Generarea secvenial a adreselor presupune c se genereaz aleator o adres de start i o adres de subrutin dup care se genereaz un numr de adrese la rnd (secvenial) apoi se simuleaz saltul la subrutin i revenirea din subrutin. Toate adresele au valori corespunztoare gradului de localizare. Timpul de calcul este msurat prin ntreruperi periodice generate de ceasul de timp real al PC -ului.

5. Exemple de rezultate
n continuare snt prezentate cteva dintre rezultatele simulrilor cu programul simcache:

ARHITECTURA SISTEMELOR DE CALCUL LUCRAREA DE LABORATOR NR. 5

ARHITECTURA SISTEMELOR DE CALCUL LUCRAREA DE LABORATOR NR. 5

ARHITECTURA SISTEMELOR DE CALCUL LUCRAREA DE LABORATOR NR. 5

10

ARHITECTURA SISTEMELOR DE CALCUL LUCRAREA DE LABORATOR NR. 5

6. Desfurarea lucrrii

a) S se studieze metodele de mapare descrise. b) S se ruleze programul de simulare simcache dup urmtorul tabel :

11

ARHITECTURA SISTEMELOR DE CALCUL LUCRAREA DE LABORATOR NR. 5


Metoda mapare Generare adresa Localizare Nr. seturi Politica reamplasare Timp de calcul Observatii referitoare rata de pierderi

directa directa directa directa asociativa asociativa asociativa asociativa asociativa asociativa asociativa asociativa asociativa set asociativa set asociativa set asociativa set asociativa set asociativa set asociativa set asociativa set

aleator secvential secvential secvential aleator aleator aleator aleator secvential secvential secvential secvential aleator aleator aleator aleator secvential secvential secvential secvential

0 10 100 1000 0 0 0 0 100 100 100 100 0 0 0 0 100 100 100 100

1,2,4,8,16 1,2,4,8,16 1,2,4,8,16 1,2,4,8,16 1,2,4,8,16 1,2,4,8,16 1,2,4,8,16 1,2,4,8,16

RAND FIFO LIFO LRU RAND FIFO LIFO LRU RAND FIFO LIFO LRU RAND FIFO LIFO LRU

Tem a) S se discute avantajele i dezavantajele diferitelor metode de mapare din punctul de vedere al ratei de pierderi i a timpului de calcul. b) Care este influena gradului de localizare asupra performanelor memoriei cache ? c) Care este influena numrului de seturi asupra performanelor memoriei cache ?

12

You might also like