Există două clase principale de cache, cache de citire și cache de scriere. Un cache de citire este un instrument care oferă acces rapid la date care altfel ar fi lent de accesat. Un cache de scriere este un instrument care oferă iluzia unor viteze rapide de scriere, ascunzând, în general, de utilizator viteza adevărată lentă a unui dispozitiv de memorie.
Structura unui cache
De obicei, un cache este stocat cu un nivel de memorie mai mic decât datele reale. Cu toate acestea, datele dintr-un cache pot fi stocate mai departe în următorul nivel de memorie. Există patru niveluri de memorie, cache-ul/registrele CPU fiind nivelul cel mai scăzut și cel mai rapid, iar stocarea de arhivă fiind nivelul cel mai înalt și cel mai lent. Nivelurile de la cel mai mic până la cel mai înalt sunt cache/registrele CPU, RAM de sistem, unități de stocare și stocare de arhivă.
Fiecare pas în jos a nivelurilor de memorie oferă o viteză de acces crescută, dar o capacitate redusă. Majoritatea utilizatorilor casnici au doar cele mai mici trei niveluri de stocare din lumea reală. Stocarea de arhivă se referă în general la stocarea pe bandă destinată stocării pe termen lung și offline. Stocarea de arhivă se poate referi și la utilizarea de medii optice sau a altor medii de stocare standard care au fost eliminate de pe dispozitive și sunt păstrate offline. Aceste exemple sunt mult mai probabil să fie găsite în casă, dar încă nu sunt atât de comune.
Notă: Într-o anumită măsură, stocarea în cloud ar putea fi considerată o variantă a stocării de arhivă. Este foarte mult online, dar nu neapărat accesibil imediat și, în general, este lent de accesat. Suporturile amovibile, cum ar fi memoria USB, se situează, de asemenea, oarecum pe granița dintre unitatea de stocare și stocarea de arhivă.
Tipuri de cache pe disc
Un cache de disc se referă la orice memorie cache de pe un „disc”, adică unități de stocare, cum ar fi SSD-urile și HDD-urile. Există trei tipuri de cache pe disc. Cache-ul de citire ar implica copierea temporară a unor date din stocarea arhivă pentru a face accesul mai rapid cât timp este necesar. Un cache de scriere ar putea lua forma unui cache SLC pe un SSD. Un cache I/O ar fi, în general, o memorie flash sau DRAM folosită pentru a stoca în cache atât operațiunile de citire, cât și de scriere. Caracteristica definitorie a tuturor acestora este că memoria cache se află pe discul însuși.
Citiți cache pe disc
Versiunea cache de citire a unui cache de disc este probabil cel mai puțin utilizat tip de cache de disc. Stocarea de arhivă, prin însăși definiția sa, este rareori necesară. De asemenea, datele pot fi citite direct din mediile de arhivă. Problema este viteza. Timpul de acces este lent, deoarece datele sunt offline, necesitând identificarea și conectarea unui dispozitiv de stocare adecvat. Vitezele de citire depind de mediul de arhivă, dar în general vor fi suficiente pentru majoritatea cazurilor. Dar poate să nu fie ideal pentru cerințele de lățime de bandă mare, cum ar fi vizionarea video de înaltă definiție. În aceste scenarii, o memorie cache a discului citit poate fi folosită pentru a stoca în cache o copie a fișierului video pe un mediu de stocare care îl poate reda în timp real.
Scrieți cache pe disc
SSD-urile moderne sunt extraordinar de rapide, oferind viteze de citire și scriere incredibil de rapide. Ceea ce s-ar putea să nu realizezi este că acest lucru nu este adevărat din punct de vedere tehnic. Cele mai multe SSD-uri de pe piață sunt TLC, alias Triple Layer Cells. Aceasta înseamnă că fiecare celulă de memorie poate stoca trei biți de date. În timp ce aceasta oferă densitatea de stocare de trei ori mai mare a SLC brute (Single Layer Cells) cu un bit per celulă, este, de asemenea, mult mai lent.
Bacsis: Flash-ul TLC este încă rapid. Este de multe ori mai rapid decât lățimea de bandă de vârf a magistralei SATA 3 folosită de HDD-uri și SSD-urile timpurii. QLC flash sau Quad Level Cells sunt chiar mai lente, în unele teste funcționând de fapt mai încet decât HDD-urile.
Cache-ul SLC a fost inventat pentru a ascunde de utilizator vitezele lente de scriere. Cache-ul SLC tratează pur și simplu blițul TLC ca bliț SLC, permițându-i să funcționeze la viteze crescute. Datele scrise în memoria cache SLC sunt apoi copiate intern în formatul TLC cât de repede permit vitezele de scriere. Această tehnică funcționează excelent, oferind viteze tot mai mari care au necesitat dezvoltarea de noi standarde mai rapide.
Cache-urile SLC, totuși, au câteva avertismente. Dimensiunea cache-ului SLC este 1/3 din spațiul liber rămas al SSD-ului. Pe măsură ce SSD-ul se umple, dimensiunea cache-ului SLC scade. Aceasta nu este o problemă atât de mare pentru unitățile mari goale, dar poate fi pe un SSD mai mic sau de capacitate apropiată. Odată ce memoria cache SLC este umplută, utilizatorul vede că viteza de scriere scade dramatic pe măsură ce sunt expuse la viteza de scriere TLC autentică.
Notă: Din punct de vedere tehnic, dacă datele vor fi scrise pe mediul de arhivă în viitor, orice disc de stocare ar putea fi privit ca un cache de scriere pentru mediul de arhivă. Totuși, acest sens nu ar fi în general presupus.
Cache pe disc I/O
HDD-urile sunt în general destul de lente, chiar și în sarcinile lor optime. Pentru a ajuta la ascunderea acestui lucru de utilizator cât mai mult posibil, se poate folosi un cache I/O. Un cache I/O memorează în cache atât operațiunile de citire, cât și de scriere, după cum este necesar. Acest cache este de obicei alcătuit fie din memorie Flash, fie din DRAM în unitate. Capacitățile sunt în general scăzute, deși clasa SSHD sau Solid State Hybrid Drive care dispune de memorie Flash oferă capacități mai considerabile, deși nu sunt comparabile cu capacitățile SSD moderne.
Citirile cache înseamnă că HDD-ul nu trebuie să găsească și apoi să citească datele. Acest lucru poate oferi beneficii excelente de performanță, dar numai la operațiunile de citire ulterioare. Prima citire este întotdeauna lentă. Memorarea în cache înseamnă că operațiunile mici de scriere pot fi absorbite în cache și apoi scrise pe HDD-ul real cât de repede o permite. Aceasta oferă viteze mai mari, dar vede o scădere mare a performanței dacă memoria cache este epuizată vreodată.
Un cache I/O trebuie să echilibreze cu atenție nevoile ambelor funcții de citire și scriere, mai ales atunci când este disponibilă doar un cache mic. Cache-urile mai mari anulează oarecum această problemă, deși cazurile marginale cu seturi mari de date pot încă copleși memoria cache flash a celor mai mari SSHD-uri.
Notă: SSD-urile pot folosi din punct de vedere tehnic și DRAM-urile de la bord ca cache I/O. Cu toate acestea, acesta este de obicei utilizat în principal sau exclusiv pentru a stoca tabelul de traducere a adreselor logice în fizice, utilizat pentru a găsi date pe SSD.
Concluzie
Un cache de disc este un cache care există direct pe o unitate de stocare. Poate lua forma unui cache de citire sau scriere sau a unui cache I/O. Cache-urile de citire, de obicei, memorează în cache datele din stocare de arhivă mai lentă. Cache-urile de scriere ascund de utilizator vitezele lente de scriere a discurilor de stocare. Cache-urile I/O ascund de utilizator atât viteze lente de citire, cât și viteze reduse de scriere.
Cache-urile sunt instrumente excelente de utilizare, dar pot provoca unele bătăi de cap utilizatorilor atunci când sunt epuizate. Acest lucru este valabil mai ales pentru cache-urile de scriere dinamică, cum ar fi cache-ul SLC. Deoarece utilizatorii non-tehnici ar putea să nu înțeleagă de ce vitezele lor de scriere sunt atât de lente și, prin urmare, nu le pot remedia abordând problemele de capacitate.