Ce este un cache?

Când solicitați date din orice sursă, există întotdeauna o anumită întârziere. Ping-ul către serverele web este măsurat în milisecunde, timpul de acces la stocare poate avea latențe în microsecunde, în timp ce latența RAM este măsurată în cicluri de ceas al CPU. Desigur, astfel de viteze ar fi fost de neconceput cu doar câteva decenii în urmă, dar în prezent, nu sunt niciodată suficient de rapide. Viteza de acces este în mod regulat o formă de blocaj în performanță. Unul dintre modalitățile prin care acest lucru poate fi rezolvat este memorarea în cache.

Memorarea în cache este un proces de stocare a unei copii temporare a unei resurse într-un mod în care aceasta poate fi accesată mai repede decât ar putea fi în mod normal. Există o gamă largă de implementări atât în ​​software, cât și în hardware. Cache-urile pot acționa ca cache de citire, cache de scriere sau ambele.

Citiți cache-urile

Într-o memorie cache de citire, datele care au fost solicitate anterior sunt stocate într-un cache pentru un acces mai rapid. În unele scenarii, memoria cache poate fi chiar încărcată preventiv cu date, permițând ca prima cerere să fie servită din cache, mai degrabă decât cererile ulterioare.

Cache-ul de citire cu care este cel mai probabil să fiți familiarizat este memoria cache a browserului. Aici browserul stochează o copie locală a resurselor solicitate. Aceasta înseamnă că dacă și atunci când pagina web este reîncărcată sau se încarcă o pagină similară care utilizează o mare parte din același conținut, acel conținut poate fi difuzat din cache și nu de serverul web. Acest lucru nu înseamnă doar că pagina web se poate încărca mai repede, dar reduce și sarcina pe serverul web și reduce cantitatea de date pe care utilizatorul trebuie să le descarce, ceea ce poate fi important pentru conexiunile măsurate.

RAM în sine acționează și ca cache de citire pentru datele de pe hard disk. În acest caz, datele pentru un program care rulează sunt încărcate preventiv în RAM, astfel încât CPU-ul să le poată accesa mai repede. Datele din RAM sunt apoi stocate în cache în memoria cache a CPU, deși procesul pentru aceasta este mult mai complex, deoarece memoria cache a CPU este măsurată în megaocteți, nu în gigaocteți.

Scrieți cache-uri

Un cache de scriere este un cache care poate absorbi datele scrise pe un dispozitiv mai lent. Un exemplu comun în acest sens ar fi cache-ul SLC în SSD-urile moderne. Acest cache nu permite ca datele să fie citite mai rapid, cu toate acestea, este mult mai rapid să scrieți decât să scrieți pe flash-ul TLC sau QLC care formează restul SSD-ului. Cache-ul SLC poate absorbi operațiuni de scriere de mare viteză și apoi descarcă acele date de îndată ce poate în flash-ul TLC, care oferă o densitate de stocare mult mai bună, dar este și mult mai lent pentru a scrie. Utilizarea memoriei flash în acest fel o optimizează atât pentru viteze mari de scriere, cât și pentru o densitate mare de stocare.

Cache-uri hibride

Există multe moduri de a gestiona cache-urile care le pot permite să acționeze atât ca cache de citire, cât și de scriere. Fiecare dintre aceste metode gestionează operațiunile de scriere în mod diferit și are avantaje și dezavantaje. Cele trei opțiuni sunt write-around, write-through și write-back. Un cache de tip write-around omite complet memoria cache la scriere, cache-ul write-through scrie în cache, dar consideră că operația este finalizată numai atunci când a fost scrisă în stocare. Cache-ul de scriere înapoi scrie în cache și apoi consideră operațiunea finalizată, bazându-se pe cache pentru a-l transfera în stocare dacă este necesar.

Scrierea poate fi utilă dacă vă așteptați la un volum mare de scrieri, deoarece minimizează pierderea memoriei cache. Totuși, înseamnă că o operațiune care citește apoi oricare dintre acele date scrise se va confrunta cu cel puțin o pierdere a memoriei cache prima dată. Cache-urile de scriere memorează imediat în cache operațiile de scriere, ceea ce înseamnă că rezultatul poate fi servit din cache de prima dată când este solicitat. Pentru a fi considerată completă, o operație de scriere trebuie să scrie și datele pe disc, ceea ce adaugă latență. O memorie cache de scriere înapoi are același beneficiu ca și o redare de scriere, permițând ca datele scrise să fie imediat servite din cache. Totuși, nu necesită operațiuni de scriere pentru a scrie pe disc pentru a fi considerat finalizat. Acest lucru reduce latența de scriere, dar vine cu riscul de pierdere a datelor dacă memoria cache este volatilă și nu termină scrierea datelor înapoi în stocare înainte de pierderea alimentării.

Cum să elimini datele din cache?

Unul dintre factorii limitatori ai oricărui cache este capacitatea. Căutarea unui cache mare necesită mult timp, anulând o bună parte din avantajul utilizării unui cache în primul rând. Tehnologiile de memorie utilizate pentru stocarea în cache tind, de asemenea, să fie mai scumpe decât memoria din care sunt stocate în cache. Dacă nu ar fi fost cazul, este probabil ca acel nivel de memorie să fi schimbat tehnologiile de memorie pentru a îmbunătăți performanța. Ambii acești factori înseamnă că cache-urile tind să fie relativ mici, mai ales în comparație cu mediul de stocare de pe care sunt stocate în cache. RAM are o capacitate mai mică decât stocarea, iar memoria cache a procesorului are o capacitate mai mică decât RAM. Cache-ul SLC are o capacitate mai mică decât memoria TLC.

Toate acestea înseamnă că este adesea necesar să ciclați datele din cache pentru a elibera spațiu pentru date noi care trebuie să fie stocate în cache. Există o serie de abordări diferite în acest sens. „Utilizat cel mai puțin frecvent”, preferă să elimine intrările din cache care au cel mai mic număr de acces. Acest lucru poate fi util pentru a prezice ce intrări vor avea cel mai mic efect asupra ratelor viitoare de cache, dar ar considera și intrările adăugate foarte recent ca având un număr redus de accesări, ceea ce poate duce la pierderea memoriei cache.

„Utilizat cel mai puțin recent” preferă să elimine intrările din cache care nu au fost folosite de ceva vreme. Aceasta presupune că acestea nu sunt utilizate în prezent, dar nu ia în considerare dacă au fost utilizate intens cu ceva timp în urmă. „Utilizat cel mai recent” preferă să elimine cele mai recente intrări din cache utilizate, presupunând că acestea au fost folosite și nu vor mai fi folosite din nou. Cea mai bună abordare este, în general, o combinație a tuturor celor trei, informată de statisticile de utilizare.

Informații învechite și riscuri de securitate

Principalul risc al cache-urilor este ca informațiile pe care le conțin pot deveni învechite. O intrare în cache este considerată cave atunci când datele originale au fost actualizate, lăsând intrarea în cache neactualizată. Este important să verificați în mod regulat dacă copia live difuzată se potrivește în continuare cu copia stocată în cache.

În special pentru site-uri web, este, de asemenea, extrem de important să identificați ce date pot și nu pot fi stocate în cache. De exemplu, este perfect ca un fișier JavaScript mare neschimbat să fie stocat în cache. Acest lucru scutește utilizatorul de a-l descărca de fiecare dată și poate beneficia chiar și de alți utilizatori deserviți de aceeași memorie cache. Totuși, nu puteți stoca în cache datele specifice sesiunii. Imaginați-vă ce s-ar întâmpla dacă ați naviga la o aplicație de mesagerie în timp ce sunteți conectat ca dvs., doar pentru a descoperi că ați primit o versiune în cache a mesajelor altui utilizator. Din fericire, serverele web pot specifica ce resurse pot și nu pot fi stocate în cache, iar aceste probleme sunt în general bine cunoscute, așa că există puține probleme ca aceasta.

Concluzie

Un cache este o porțiune de memorie care poate stoca unele date utilizate recent într-o metodă de stocare care este mai rapidă de accesat decât ar fi pentru a finaliza din nou procesul normal de acces la date. Un cache este de obicei limitat în capacitate, ceea ce înseamnă că trebuie să elimine intrările odată ce este plin. Cache-urile sunt în general transparente pentru utilizator, ceea ce înseamnă că latența este singurul indiciu că rezultatul a fost difuzat printr-un cache.



Leave a Comment

Cum se clonează un hard disk

Cum se clonează un hard disk

În era digitală modernă, în care datele sunt un bun valoros, clonarea unui hard disk pe Windows poate fi un proces crucial pentru mulți. Acest ghid cuprinzător

Cum să remediați driverul WUDFRd care nu s-a încărcat pe Windows 10?

Cum să remediați driverul WUDFRd care nu s-a încărcat pe Windows 10?

În timpul pornirii computerului, vă confruntați cu mesajul de eroare care spune că driverul WUDFRd nu s-a încărcat pe computer?

Cum să remediați codul de eroare NVIDIA GeForce Experience 0x0003

Cum să remediați codul de eroare NVIDIA GeForce Experience 0x0003

Aveți experiența NVIDIA GeForce cu codul de eroare 0x0003 pe desktop? Dacă da, citiți blogul pentru a afla cum să remediați această eroare rapid și ușor.

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Cum să eliminați un GPU de pe un computer Windows în 2023

Cum să eliminați un GPU de pe un computer Windows în 2023

Trebuie să eliminați GPU-ul de pe computer? Alăturați-vă pentru a explica cum să eliminați un GPU de pe computer în acest ghid pas cu pas.

Cum se instalează un SSD NVMe pe un desktop și laptop

Cum se instalează un SSD NVMe pe un desktop și laptop

Ați cumpărat un nou SSD NVMe M.2, dar nu știți cum să îl instalez? Citiți mai departe pentru a afla cum să instalați un SSD NVMe pe laptop sau desktop.

Ce este o bombă logică?

Ce este o bombă logică?

O bombă logică este un incident de securitate în care un atacator stabilește o acțiune întârziată. Continuați să citiți pentru a afla mai multe.

Ce este un SoC?

Ce este un SoC?

Dacă v-ați uitat vreodată în interiorul unui turn de PC, puteți vedea că există o mulțime de componente diferite. Laptopul tău obișnuit conține majoritatea componentelor

Ce este criptarea asimetrică?

Ce este criptarea asimetrică?

Algoritmii de criptare asimetrică utilizează două chei distincte. O cheie este folosită pentru criptare, iar cealaltă pentru decriptare.

Steam Deck: Cum se formatează cardul SD

Steam Deck: Cum se formatează cardul SD

Steam Deck vine în trei opțiuni de stocare: eMMC de 64 GB, SSD NVMe de 256 GB și SSD NVMe de 512 GB. În funcție de biblioteca dvs. de jocuri și de dimensiunea jocurilor