Professional Documents
Culture Documents
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
Cautare in directorul CD da
Preluare bloc din cache Selecteaza octetul din bloc Trimite octetul catre CPU
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.
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
Bloc 16383
Tag
Bloc 127
Bloc 4096
Bloc 16383
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.
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 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).
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
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)
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
timp de calcul
nr. seturi = 2
simularii
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:
10
6. Desfurarea lucrrii
a) S se studieze metodele de mapare descrise. b) S se ruleze programul de simulare simcache dup urmtorul tabel :
11
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
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