Din păcate, computerul nu execută imediat comenzi,pe care le primește de la oameni. O serie de trucuri sunt folosite pentru a accelera acest proces, iar stocarea în cache ocupă locul de mândrie printre ele. Ce este? Ce sunt datele stocate în cache? Cum are loc de fapt acest proces? Ce sunt datele stocate în cache într-un smartphone Samsung, de exemplu, și este diferit de ceea ce este într-un computer? Să ne apucăm să obținem răspunsuri la aceste întrebări.
Ce este un cache?
Folosește procesul
Actualizarea datelor
Când este utilizat cu, de exemplu, un browser webmemoria cache locală este verificată pentru a găsi o copie a paginii. Având în vedere limitările acestui tip de memorie, în cazul unei rateuri, se ia decizia de a arunca o parte din informații pentru a elibera spațiu. Sunt utilizați diverși algoritmi preventivi pentru a decide ce va fi înlocuit. Apropo, dacă vorbim despre ce sunt datele stocate în cache pe Android, atunci în cea mai mare parte sunt folosite pentru a lucra cu imagini și datele aplicației.
Politica de înregistrare
- Înregistrare imediată. Fiecare modificare este înregistrată sincron în memoria principală.
- Întârziat sau reluat.Datele sunt actualizate periodic sau la cererea clientului. Pentru a urmări dacă a fost făcută o modificare, se folosește un steag cu două stări: „murdar” sau modificat. În caz de pierdere, pot fi efectuate două apeluri, direcționate către memoria principală: primul este folosit pentru a scrie datele care au fost modificate din cache, iar al doilea este folosit pentru a citi elementul necesar.
Este posibil ca informațiile dintamponul intermediar devine irelevant. Acest lucru se întâmplă atunci când datele din memoria principală se modifică fără a face ajustări în memoria cache. Pentru coerența tuturor proceselor de editare, se folosesc protocoale de coerență.
Provocări moderne
Sincronizarea datelor între diferite buffere
Cache-ul este util atunci când există doar unul, dar cum să păstrăm eficiența acestei tehnologii, dacă sunt multe? Coerența tamponului rezolvă această problemă. Există trei opțiuni pentru schimbul de date:
- Inclusiv. Cache-ul se poate comporta după bunul plac.
- Exclusiv. Dezvoltat pentru fiecare caz specific.
- Neexclusiv. Standard larg răspândit.
Niveluri de stocare în cache
- cache L1. Cel mai rapid nivel de cache este primul.De fapt, face parte din procesor, deoarece este situat pe o matriță și aparține blocurilor funcționale. De obicei, este împărțit în două tipuri: cache de instrucțiuni și date. Majoritatea procesoarelor moderne nu funcționează fără acest nivel. Acest cache funcționează la frecvența procesorului, astfel încât poate fi accesat în fiecare ciclu de ceas.
- cache L2.De obicei situat împreună cu precedentul. Este o amintire comună. Pentru a-i afla valoarea, este necesar să împărțiți întregul volum alocat pentru stocarea în cache a datelor la numărul de nuclee din procesor.
- cache L3. Cel mai lent, dar cel mai mare cache dependent. De obicei, mai mult de 24 MB. Folosit pentru a sincroniza datele care provin din diferite cache L2.
- cache L4.Utilizarea este justificată numai pentru mainframe-uri și servere multiprocesoare de înaltă performanță. Este implementat ca un microcircuit separat. Dacă pui o întrebare despre ce este stocarea în cache a datelor într-un smartphone Samsung și cauți acest nivel în el, pot spune că s-au grăbit de 5 ani.
Asociativitatea în cache
Aceasta este o caracteristică fundamentală.Asociativitatea datelor din cache este necesară pentru a afișa segmentarea logică. La rândul său, este necesară datorită faptului că enumerarea secvențială a tuturor liniilor disponibile necesită zeci de cicluri de ceas și anulează toate avantajele. Prin urmare, se folosește o legare dură a celulelor RAM la datele din cache pentru a reduce timpul de căutare. Dacă comparăm tampoane intermediare care au același volum, dar asociativitate diferită, atunci cel cu asociativitate mare va funcționa mai puțin rapid, dar cu eficiență specifică semnificativă.