Ce este memoria cache?

click fraud protection

Ce este memoria cache și de ce au CPU-urile, GPU-urile și alte tipuri de procesoare? Iată tot ce trebuie să știi.

Legături rapide

  • Cache: o cantitate mică de memorie de mare viteză
  • Nivelurile cache și ierarhia memoriei
  • Cache-ul este necesar, dar nu îmbunătățește performanța de la sine

Deși nu se vorbește la fel de mult despre cache ca despre nuclee, RAM (Memorie cu acces aleatoriu) sau VRAM, probabil ați mai auzit despre asta, mai ales recent. AMD face publicitate cu mândrie pentru performanța jocurilor Procesoare Ryzen cu 3D V-Cache ca urmare a utilizării memoriei cache, iar una dintre cele mai mari îmbunătățiri ale Intel cu procesoarele Raptor Lake din a 13-a generație a fost adăugarea mai multor memorie cache.

Dar cum poate îmbunătăți memoria cache performanța atunci când măsoară în termeni de megaocteți? Chiar și cele mai ieftine kituri RAM vin cu 16 GB în zilele noastre, așa că cum poate adăuga doar câțiva megaocteți suplimentari de cache să facă o diferență atât de mare în ceea ce privește performanța? Ei bine, memoria cache nu este tipul tău normal de memorie.

Cache: o cantitate mică de memorie de mare viteză

Sursa: AMD

Cache-ul este de fapt o dezvoltare destul de recentă a procesoarelor, datând din anii 1990 și a fost inventat datorită memoriei RAM. RAM este o componentă cheie a computerelor care stochează o cantitate semnificativă de date de care procesoarele (cum ar fi procesoarele și GPU-urile) ar trebui să aibă nevoie destul de des. Pentru o lungă perioadă de timp, îmbunătățirile în performanța RAM au ținut pasul cu îmbunătățirile în performanța procesorului, dar în anii 1990, aceasta a devenit evident că RAM nu ar putea ține pasul cu cele mai recente procesoare. RAM avea o capacitate mare, dar vitezele de transfer erau prea mari încet.

Aici intervine cache-ul. Nu este la fel de mare ca RAM, nici fizic, nici ca capacitate, dar se află în interiorul procesorului însuși și poate transfera date foarte rapid și la o latență foarte mică. Atâta timp cât memoria cache stochează datele de care procesorul are de fapt nevoie, poate economisi timp, deoarece solicitarea RAM-ului pentru aceleași date este de multe ori mai lent. A fost o soluție excelentă la problema RAM și a permis designerilor de procesoare să continue să producă procesoare mai rapide și Designerii RAM să continue să creeze capacități mai mari de RAM fără a fi nevoie să-și facă griji atât de mult performanţă. Astăzi, memoria cache este în aproape orice tip de procesor.

S-ar putea să vă întrebați de ce memoria cache este atât de mică. Ei bine, în mare parte are de-a face cu spațiu și bani. Chiar și 32 MB de cache pot ocupa destul de mult spațiu pe un procesor, iar cipurile moderne sunt limitate la aproximativ 600 mm2 în suprafață totală, care trebuie folosită cu înțelepciune. Asta înseamnă că alocarea mai multor zone pentru cache poate deveni destul de costisitoare și acea situație se înrăutățește de fapt, nu mai bine. Cele mai recente procese de fabricație au ca rezultat îmbunătățiri din ce în ce mai mici ale densității cache-ului, iar TSMC nu a reușit deloc să reducă dimensiunea cache-ului în prima iterație a procesului său de 3 nm.

Nivelurile cache și ierarhia memoriei

Sursa: Carlos Carvalho

Invenția cache-ului a însemnat că există un nou strat pentru toate dispozitivele de stocare a datelor dintr-un computer. Aceste straturi formează ceea ce se numește ierarhia memoriei, pe care o puteți vedea în imaginea de mai sus și detaliază ce memorie merge într-un sistem tipic dintr-un procesor (deși alte tipuri de procesoare vor arăta foarte similare). Astăzi, ierarhia modernă a memoriei nu include doar memoria cache, RAM și dispozitive de stocare permanente, ci și o ierarhie a memoriei în memoria cache în sine.

Majoritatea procesoarelor au niveluri diferite de cache pentru diverse scopuri. Primul și cel mai mic nivel de cache este L1, căruia i se oferă nuclee individuale pentru procesarea datelor care sunt necesare imediat. Cache-ul L1 este adesea măsurat în kiloocteți, cele mai recente procesoare Ryzen 7000 având 64KB de cache L1 per nucleu. În plus, memoria cache L1 modernă este adesea împărțită în L1I (pentru instrucțiuni) și L1D (pentru date).

Următorul este L2, care este mai degrabă pentru un grup de nuclee decât pentru cele individuale. Desigur, cache-ul L2 este mai mare decât cache-ul L1, adesea cu un ordin de mărime, dar fiind mult mai mare și nevoia de a deservi mai multe nuclee înseamnă că este mai lent și are o latență mai mare. Unele procesoare, în special GPU-urile și procesoarele mai lente, vor merge doar la cache-ul L2.

Următorul pas este L3, care este utilizat în general de toate nucleele de pe cip. Dimensiunea sa poate varia de la câteva ori mai mare decât memoria cache L2 până la mai mult de un ordin de mărime mai mare, în funcție de procesor. Aceasta înseamnă că este chiar mai lent decât memoria cache L2, dar încă depășește RAM. În plus, memoria cache L3 acționează adesea ca „cache-ul victimei”, care este locul în care se duc datele evacuate din memoria cache L1 și L2. Ar putea fi evacuat în continuare din memoria cache L3 dacă nu este necesar. Astăzi, memoria cache L3 este deosebit de importantă pentru AMD datorită tehnologiei chiplet-ului. Cipurile Ryzen 3D V-Cache conțin 64 MB de cache L3, iar matrițele de memorie cache RX 7000 (sau MCD) conțin 16 MB de cache L3 fiecare.

Cel mai înalt nivel de cache văzut pe majoritatea procesoarelor este L4, care este adesea atât de mare încât este efectiv RAM. De fapt, cele mai recente procesoare care folosesc memoria cache L4 sunt cipurile Intel Sapphire Rapids Xeon, care folosesc HBM2 ca cache L4 pe modelele de top. AMD, pe de altă parte, nu a folosit niciodată un cache L4 și, în schimb, se mulțumește să-și mărească memoria cache L3 la capacități mari, adăugând mai multe chipleturi CPU și V-Cache. Un cache L4 beneficiază de obicei mai mult GPU-urile integrate, deoarece este o soluție on-die care poate partaja date între CPU și GPU-ul integrat.

În unele chipset-uri, în primul rând cele mobile, există un alt tip de cache: cache-ul la nivel de sistem (SLC). Această memorie cache este apoi utilizată pe întregul set de cipuri, cum ar fi GPU, NPU și CPU. Un cache poate înlocui nevoia de solicitări către memoria principală, astfel încât un SLC beneficiază întregul SoC.

Cache-ul este necesar, dar nu îmbunătățește performanța de la sine

În ciuda tuturor hype-ului din jurul inovațiilor recente în cache, nu este un glonț de argint pentru performanță. La urma urmei, nu există nicio capacitate de procesare în cache; doar stochează date și atât. Deși fiecare procesor poate beneficia absolut de a avea mai multă memorie cache, este adesea prea scump să adăugați mai mult decât exact cantitatea necesară. Adăugarea mai multor cache s-ar putea să nu îmbunătățească performanța în funcție de volumul de lucru, ceea ce este un stimulent suplimentar pentru a nu pune o tonă pe un procesor.

Acestea fiind spuse, posibilitatea de a adăuga o cantitate mare de cache poate fi de dorit în anumite situații. CPU-urile cu multă memorie cache tind să aibă performanțe mai bune în jocuri, de exemplu. Procesoarele Ryzen de la AMD cu 3D V-Cache sunt destul de rapide pentru jocuri, în ciuda faptului că au o frecvență mai mică decât cipurile fără V-Cache și Procesoarele Intel din generația a 13-a sunt semnificativ mai rapide decât cipurile din generația a 12-a, singura îmbunătățire majoră fiind mărirea cache.

În cele din urmă, cache-ul există, astfel încât procesoarele pot ocoli RAM cât mai des posibil, iar performanța poate fi cât mai nerestricționată. Designerii CPU trebuie să echilibreze capacitatea memoriei cache cu dimensiunea și, prin extensie, cu costul, ceea ce devine din ce în ce mai dificil cu fiecare generație de noi procese de fabricație. Chiar dacă noi modalități de adăugare a memoriei cache la procesoare sunt introduse la zeci de ani după ce a fost inventat memoria cache, este greu de imaginat că scopul acestei componente cheie a procesoarelor se va schimba vreodată.