Memorie cache vs memorie virtuală
Diferența dintre memoria cache și memoria virtuală există în scopul pentru care acestea sunt utilizate și în existența fizică. Memoria cache este un tip de memorie utilizată pentru a îmbunătăți timpul de acces al memoriei principale. Acesta se află între CPU și memoria principală și pot exista mai multe niveluri de cache, cum ar fi L1, L2 și L3. Tipul de hardware utilizat pentru memoria cache este mult mai costisitor decât memoria RAM (Random Access Memory) folosită pentru memoria principală, deoarece memoria cache este mult mai rapidă. Din acest motiv, capacitatea memoriei cache este foarte mică. Memoria virtuală este o tehnică de gestionare a memoriei utilizată pentru a utiliza în mod eficient RAM (memorie principală), oferind în același timp un spațiu de memorie separat pentru fiecare program, care este chiar mai mare decât capacitatea RAM fizică reală (memorie principală). Aici hard diskul este folosit pentru a extinde memoria. Elementele din memoria RAM fizică sunt transferate înainte și înapoi cu hard diskul.
Ce este memoria cache?
Memoria cache este un tip de memorie care se află între CPU (unitate centrală de procesare) și RAM (memorie cu acces aleator). Scopul memoriei cache este de a reduce timpul de acces la memorie al procesorului din RAM. Memoria cache este mult mai rapidă decât memoria RAM. Deci, timpul de acces în cache este mult mai mic decât timpul de acces pe RAM. Dar costul memoriei utilizate pentru memoria cache este mult mai mare decât costul memoriei utilizate pentru memoria RAM și, prin urmare, capacitatea memoriei cache este foarte mică. Tipul de memorie utilizat pentru memoria cache se numește SRAM (Static Random Access Memory).
Ori de câte ori CPU dorește să acceseze memoria, verifică mai întâi dacă ceea ce are nevoie se află în memoria cache. Dacă da, ar putea să-l acceseze cu cea mai mică latență. Dacă nu se află în cache, atunci conținutul solicitat va fi copiat din RAM în cache și apoi doar CPU-ul îl va accesa din cache. Aici, când copiați conținut din cache, nu numai conținutul din adresa de memorie solicitată, ci și conținutul din apropiere sunt copiate în cache. Așadar, data viitoare există o mare probabilitate ca un acces cache să apară, deoarece majoritatea programelor de computer accesează datele din apropiere sau ultimele date accesate de cele mai multe ori. Deci, datorită memoriei cache, latența medie a memoriei este redusă.
În CPU, există trei tipuri de cache-uri: cache-ul de instrucțiuni pentru stocarea instrucțiunilor programului, cache-ul de date pentru stocarea articolelor de date și Buffer-ul de traducere pentru stocarea mapărilor de memorie. Pentru cache-ul de date, în general, există cache-uri pe mai multe niveluri. Adică, există mai multe cache ca L1, L2 și L3. Memoria cache L1 este cea mai rapidă, dar cea mai mică memorie cache, cea mai apropiată de CPU. Memoria cache L2 este mai lentă decât L1, dar mai mare decât L1 și se află după memoria cache L1. Datorită acestei ierarhii, se poate obține un timp mediu mai bun de acces la memorie la un cost mai mic.
Ce este memoria virtuală?
Memoria virtuală este o tehnică de gestionare a memoriei utilizată în sistemele de calculatoare. Nu există hardware numit memorie virtuală, dar este un concept care folosește RAM și hard diskul pentru a oferi un spațiu de adrese virtuale pentru programe. Prima RAM este împărțită în bucăți numite pagini și sunt identificate prin adrese de memorie fizică. Pe hard disk, este rezervată o porțiune specială în care, în Linux, se numește swap și, în Windows, se numește fișier de pagină. Când este pornit un program, i se oferă un spațiu de adrese virtuale care poate fi chiar mai mare decât memoria fizică reală. Spațiul de memorie virtuală este, de asemenea, împărțit în bucăți numite pagini și fiecare dintre aceste pagini de memorie virtuală poate fi mapată pe o pagină fizică. Tabelul numit tabel de pagini ține evidența acestei mapări. Când memoria fizică rămâne fără spațiu, ceea ce se face este,anumite pagini fizice sunt împinse către acea porțiune specială de pe hard disk. Când este necesară din nou orice pagină împinsă pe hard disk, aceasta este adusă în memoria fizică prin plasarea unei alte pagini selectate din memoria fizică pe hard disk.
Care este diferența dintre memoria cache și memoria virtuală?
• Memoria cache este un tip de memorie utilizată pentru îmbunătățirea timpului principal de acces la memorie. Este un tip de memorie mai rapid care se află între CPU și RAM pentru a reduce latența medie de acces la memorie. Memoria virtuală este o metodă de gestionare a memoriei în care este un concept care permite programelor să obțină propriul spațiu de memorie virtuală, care este chiar mai mare decât RAM-ul fizic real disponibil.
• Memoria cache este un tip de memorie hardware care există de fapt fizic. Pe de altă parte, nu există hardware numit memorie virtuală, deoarece este un concept care utilizează RAM, hard disk, unitate de gestionare a memoriei și software pentru a furniza un tip virtual de memorie.
• Gestionarea memoriei cache este realizată integral de hardware. Memoria virtuală este gestionată de sistemul de operare (software).
• Memoria cache se află între RAM și procesor. Transferurile de date implică memoria RAM, memoria cache și procesorul. Memoria virtuală, pe de altă parte, implică transferul de date între RAM și hard disk.
• Memoriile de memorie cache au dimensiuni mici, cum ar fi Kilobytes și Megabytes. Memoria virtuală, pe de altă parte, implică dimensiuni uriașe care iau gigaocteți.
• Memoria virtuală implică structuri de date precum tabele de pagini care stochează maparea între memoria fizică și memoria virtuală. Dar acest tip de structuri de date nu este necesar pentru memoria cache.
Rezumat:
Memorie cache vs memorie virtuală
Memoria cache este utilizată pentru îmbunătățirea timpului principal de acces la memorie, în timp ce memoria virtuală este o metodă de gestionare a memoriei. Memoria cache este un hardware real, dar nu există un hardware numit memorie virtuală. RAM, hard disk și diverse alte componente hardware împreună cu sistemul de operare produc conceptul numit memorie virtuală pentru a oferi spații mari și izolate de memorie virtuală fiecărui program. Conținutul din memoria cache este gestionat de hardware, în timp ce conținutul din memoria virtuală este gestionat de sistemul de operare.
Imagini Amabilitate:
- Proces de memorie cache de către Hellisp (CC BY-SA 3.0)
- Memorie virtuală de Ehamberg (CC BY-SA 3.0)