
La memoria cache Nu a fost întotdeauna în procesor. De fapt, procesoarele mai vechi nu aveau unul. Mai târziu, au apărut module similare cu modulele RAM de astăzi, permițându-vă să adăugați opțional o memorie cache pentru a îmbunătăți performanța procesorului, similar cu modul în care au fost adăugate coprocesoarele matematice sau FPU-urile.
În microprocesoarele actuale, memoria cache a fost integrat în cip, acum o parte aproape inseparabilă a lor și cu mai multe niveluri pentru a obține beneficii mai mari de pe urma acesteia. În acest tutorial, veți afla mai multe despre acest tip de memorie și importanța sa.
Ce este memoria cache?
Înainte de a începe să explic ce este memoria cache, aș dori să rezum foarte pe scurt. cum funcționează un procesor, astfel încât să puteți înțelege mai bine performanța sa. Simplu spus, procesorul nu este nimic mai mult decât un „calculator” care procesează o serie de operații cu biți de date.
Software-ul, programul, este cel care va indica ce calcule ar trebui să efectueze procesorul. Programul este alcătuit dintr-o serie de date și instrucțiuni. Toate aceste date și instrucțiuni sunt stocate în memorie secundară (hard disk) vor fi trimise în memoria principală (primară). De acolo, acestea vor fi capturate de procesor și introduse în memoria sa internă. Instrucțiunea va indica ce ar trebui să facă procesorul cu datele. De exemplu, ar putea fi o instrucțiune de adunare. Așa se execută software-ul…
Pe scurt, primele computere foloseau un singur nivel de memorie lentă (un tip de ROM sau stocare magnetică) din care să se preiau aceste instrucțiuni și date. Dar, pe măsură ce procesoarele au evoluat și au devenit mai rapide, au apărut blocaje majore din cauza lentorii acestei memorii. De aceea, a fost introdusă o memorie tampon rapidă între procesor și memoria secundară: Berbec (SDRAM).
În ciuda acestui fapt, procesorul a continuat să evolueze mai rapid decât viteza memoriei RAM în sine, creând un alt blocaj. Așadar, a fost dezvoltată o altă memorie, mult mai rapidă, mai aproape de procesor și situată între memoria RAM și procesor: cache-ul (SRAM).
Memoria secundară este ieftină, așa că poți obține capacități mari la un preț bun. În cazul memoriei RAM, este mai rapidă, dar și mai scumpă decât memoria secundară. De aceea, capacitățile memoriei primare nu sunt la fel de mari. Dacă continuăm în jos, întâlnim memoria cache, care este și mai scumpă și, prin urmare, are capacități foarte mici. Apoi, există registrele, de asemenea extrem de scumpe și limitate...
Cu această memorie cache, nucleele procesorului pot fi alimentate mult mai rapid, astfel încât latențele și lățimea de bandă Memoria RAM funcționează astfel încât să nu afecteze la fel de mult performanța procesorului. Este o modalitate de a furniza acele date și instrucțiuni mult mai local și rapid... Cu alte cuvinte, astfel încât să fie mai „la îndemână”.
În zilele noastre, îmbunătățirea memoriei secundare a însemnat un salt uriaș. Mă refer la noua SSD-uri sau hard disk-uri solid-stateCu toate acestea, ele sunt încă mai lente decât memoria RAM, așa că aceste alte niveluri sunt în continuare necesare.
Nivelurile memoriei cache într-un procesor modern

Într-un procesor modern, nu există un singur nivel de cache, ci este împărțit în mai multe niveluri. De obicei, există între 2 și 4. niveluri sau niveluri (L):
- LLC (Memorie cache de ultimul nivel)Acesta este ultimul nivel al memoriei cache, adică cel „cel mai apropiat” de RAM, cel cu cel mai mare număr în cadrul procesorului. Poate fi L4, L3 sau L2, în funcție de nivel. De exemplu, în procesoarele Intel și AMD actuale, este L3. Această memorie poate ajunge la câțiva megaocteți și este unificată, adică stochează atât date, cât și instrucțiuni. În general, acest tip de memorie este partajată de toate nucleele, dacă există mai multe. Dacă, de exemplu, există L3 și L2, L2 ar putea fi dedicat unui singur nucleu sau partajat de două nuclee, iar L3 le-ar alimenta pe toate.
- L1 cacheAceastă memorie cache este mai rapidă decât cea anterioară și este situată și mai aproape de unitatea de control, astfel încât poate recupera informații și le poate trimite mai rapid către unitățile de execuție. Spre deosebire de nivelurile superioare, L1 are o capacitate mai mică, ceea ce este normal, deoarece cu cât nivelurile sunt mai mici, cu atât capacitatea este mai mică. Dar cea mai notabilă diferență este că, în multe procesoare, nu este unificată ca celelalte niveluri. În acest caz, este separată în L1I și L1D, adică doar pentru instrucțiuni și doar pentru date.
De ce este important?
Ei bine, în acest moment veți avea deja o idee despre motivul pentru care îmbunătățește performanțăUn exemplu practic te va ajuta să înțelegi foarte bine acest lucru. Imaginează-ți că tu (procesorul) trebuie să mergi și să obții instrumentele (instrucțiunile și datele) de care ai nevoie pentru a executa o sarcină (un program).
Nu este același lucru să ai instrumentele în magazin (memorie secundară), decât să le ai în garaj (RAM) sau să le ai chiar la îndemână (cache). Dacă trebuie să mergi la magazin sau la garaj, va dura mult mai mult decât dacă ai putea întinde mâna și le-ai lua chiar lângă tine. Nu este întotdeauna cazul. Când ai nevoie pentru prima dată de o instrucțiune sau de date, va trebui să mergi în cameră sau în garaj pentru a le obține. Dar odată ce le-ai luat și le ai chiar lângă tine, vei fi mult mai eficient data viitoare când vei avea nevoie de ele.
CPU-ul, printr-un sistem de căutare și erori Va căuta întotdeauna instrucțiuni și date mai întâi în L1. Dacă există o eroare, va căuta în L2, iar dacă nici acesta nu există, va merge la L3 (dacă există unul). Și dacă există și o eroare, nu va avea de ales decât să caute în RAM, necesitând mai multe cicluri de ceas. Dar dacă reușește, accesul va fi mult mai rapid. Rețineți că este nevoie de mai puține cicluri pentru a accesa L1 decât L2, iar L3, la rândul său, are nevoie de mai puține cicluri pentru a accesa decât LXNUMX și așa mai departe.
Acesta este scopul memoriei cache, de a reduce latența accesului la memorie. Insist, sunt rezumând multe cum funcționează. Dar, practic, așa face ca aplicațiile și jocurile tale să ruleze mult mai rapid.

