Extras din referat
Memoria cache
In informatică, memoria cache (sau simplu un cache) este o colecție de date ce sunt o "copie la indigo" a valorilor originale stocate altundeva sau calculate mai devreme, unde operația de aducere din memorie a datelor originale este costisitoare (datorită timpilor mari de acces la memorie) sau costul recalculării acestora este mare, în comparație cu costul citirii acestora din cache. Cu alte cuvinte, un cache este o arie temporară de stocare unde datele utilizate în mod frecvent pot fi depozitate pentru un acces rapid la acestea. Odată ce datele sunt stocate în cache, în viitor vor fi luate de aici și utilizate decât să se încerce readucerea datelor originale sau recalcularea acestora, astfel încât timpul mediu de acces este mai mic.
Memoria cache, sau RAM cache-ul este memorie de tip static RAM. Ca orice SRAM, are o viteza si un cost mult mai ridicate decat RAM-ul dinamic (DRAM). Avand in vedere ca programele acceseaza memoriile de date sau instructiuni in repetate randuri, s-a observat ca prin pastrarea a cat mai multe dintre aceste informatii pe SRAM, intregul sistem functioneaza mai rapid.
Viteza UCP este superioară vitezei memoriilor, astfel că după iniţierea unui ciclu de acces la memorie, UCP trebuie să rămână inactivă un timp, aşteptând răspunsul acesteia. Memoriile rapide sunt realizabile din punct de vedere tehnologic, dar costul lor este ridicat. Sunt cunoscute însă tehnici pentru combinarea unei memorii rapide de dimensiuni mici cu o memorie mai lentă de dimensiuni mai mari, pentru a se obţine aproximativ viteza memoriei rapide şi capacitatea mare a memoriei lente, la un preţ moderat.Memoria rapidă de dimensiune mică se numeşte memorie cache (din limba franceză: cacher - a ascunde)
Principiul memoriei cache este ilustrat în figura de mai sus. Există o memorie principală de dimensiuni relativ mari, dar mai lentă, şi o memorie cache mai redusă, dar mai rapidă. Memoria cache conţine o copie a unor părţi din memoria principală. Atunci când UCP încearcă citirea unui cuvânt din memorie, se testează dacă respectivul cuvânt se află în memoria cache. În caz afirmativ, cuvântul este furnizat unităţii centrale. În caz contrar, se încarcă în memoria cache un bloc al memoriei principale, constând dintr-un număr fix de cuvinte, iar apoi cuvântul este returnat unităţii centrale.
Se cunoaşte că programele nu fac acces la memorie în mod complet aleator. Dacă se face o referire la o anumită adresă, este probabil că următoarea referire la memorie va fi în vecinătatea acestei adrese. În spaţiul adreselor de memorie, câteva regiuni au o probabilitate ridicată de a fi accesate, câteva au o probabilitate moderată, iar celelalte au o probabilitate foarte mică de a fi accesate în viitorul apropiat.
O regiune care are o probabilitate înaltă este cea corespunzătoare contorului de program actual, deoarece este probabil să se execute următoarea instrucţiune din secvenţa de instrucţiuni. Alte regiuni care au o probabilitate mare de a fi accesate sunt cele care conţin datele active, procedurile şi punctul de întoarcere dintr-o procedură. Dacă programul este scris într-un limbaj structurat pe blocuri, ca de exemplu Pascal, zona de stivă pentru variabile locale şi parametri este o altă zonă cu probabilitate ridicată de acces.
Un cache este un bloc de memorie folosit pentru stocarea temporară a datelor ce foarte probabil vor fi utilizate din nou. UCP-ul și hardisculutilizează în mod frecvent un cache, precum și navigatoarele și serverele de internet.
Un cache e constituit dintr-o multitudine de intrări. Fiecărei intrări îi corespunde o părticică de date copie a uneia de pe un suport de stocare de rezervă. Fiecărei intrări îi corespunde de asemenea o etichetă, ce indică spre identitatea bucății de dată de pe suportul de rezervă a cărei copie este cea din dreptul respectivei intrări.
Preview document
Conținut arhivă zip
- Memoria Cache.docx