Cât de important este memoria cache L3 pentru procesoarele AMD?
Într-adevăr, este logic să echipăm procesoare multi-core cu memorie dedicată, care va fi folosită împreună de toate nucleele disponibile. În acest rol, memoria rapidă L3 poate accelera semnificativ accesul la datele solicitate cel mai des. Apoi, kernel-urile, dacă există o astfel de oportunitate, nu trebuie să acceseze memoria principală lentă (RAM, RAM).
Cel puțin în teorie. Recent, AMD a anunțat procesorul Athlon II X4, un model Phenom II X4 fără memoria cache L3, sugerând că nu este atât de necesar și necesar. Am decis să comparăm direct cele două procesoare (cu și fără memoria cache L3) pentru a testa modul în care memoria cache afectează performanța.
Cum funcționează cache-ul?
Înainte de a intra în teste, este important să înțelegem câteva dintre elementele de bază. Principiul funcționării cache-ului este destul de simplu. Cache-ul stochează datele cât mai aproape posibil de nucleele de procesare ale procesorului, pentru a reduce solicitările CPU la o memorie mai îndepărtată și mai lentă. În platformele desktop moderne, ierarhia cache include trei niveluri, care preced accesul la memoria RAM. Iar cache-urile din cel de-al doilea și, în special, cel de-al treilea nivel nu servesc numai pentru tamponarea datelor. Scopul lor este de a împiedica supraîncărcarea bus-procesorului atunci când nucleele trebuie să facă schimb de informații.
Hits și pierde
Eficiența arhitecturii cache-ului este măsurată prin procentajul de rezultate. Solicitările de date care pot fi satisfăcute de memoria cache sunt considerate rezultate. Dacă această memorie cache nu conține datele solicitate, atunci cererea este transmisă mai departe de-a lungul conductei de memorie și se numără o ratare. Desigur, lipsurile conduc la mai mult timp, ceea ce este necesar pentru a obține informații. Ca urmare, "bubbles" (downtime) și întârzieri apar în conducta de calcul. Hits, dimpotrivă, permite menținerea performanțelor maxime.
Intrare cache, exclusivitate, coerență
Politicile de înlocuire dictează modul în care memoria cache va elibera spațiu pentru intrări noi. Întrucât datele scrise în cache, mai devreme sau mai târziu, ar trebui să apară în memoria principală, sistemele pot face acest lucru simultan cu scrierea sau pot eticheta datele zonei ca "write-back" și scriu în memorie când va fi forțat să iasă din cache.
Datele din mai multe nivele ale cache-ului pot fi stocate exclusiv, adică fără redundanță. Apoi nu veți găsi aceleași linii de date în două ierarhii cache diferite. Fie cache-urile pot funcționa inclusiv, adică nivelurile inferioare ale cache-ului sunt garantate că conțin date prezente în nivelele superioare ale cache-ului (mai aproape de nucleul procesorului). AMD Phenom utilizează o memorie cache exclusivă L3, iar Intel urmărește o strategie de cache incluzivă. Protocoalele de coerență monitorizează integritatea și relevanța datelor între diferite nuclee, niveluri de memorie cache și chiar procesoare.
O memorie cache mai mare poate conține mai multe date, dar există o tendință de a crește latența. În plus, un volum mare de memorie cache consumă o cantitate considerabilă de tranzistori procesor, de aceea este important să se găsească un echilibru între „bugetul“ de tranzistori, dimensiunea de cristal, consumul de energie și performanță / latență.
Intrările din memoria RAM pot fi mapate direct în memoria cache, adică pentru o copie a datelor din memoria RAM există o singură poziție în memoria cache sau pot fi asociative cu n-grade (n-asociative), adică există n Posibile locații în memoria cache unde pot fi stocate aceste date. Un grad mai ridicat de asociativitate (până la cache-urile asociative complet) oferă cea mai bună flexibilitate a memoriei cache, deoarece datele existente în memoria cache nu trebuie rescrise. Cu alte cuvinte, un grad înalt de asociativitate garantează un procent mai mare de hituri, dar acest lucru mărește întârzierea, deoarece durează mai mult timp pentru a testa toate asociațiile pentru lovituri. În mod obișnuit, cel mai înalt grad de asociere este rezonabil pentru ultimul nivel de cache, deoarece capacitatea maximă este disponibilă acolo și găsirea de date în afara acestui cache va determina procesorul să acceseze RAM mai lent.
Iată câteva exemple: Core i5 și i7 utilizează 32 KB cache L1 cu asociativitate cu 8 căi pentru date și 32 KB cache L1 cu 4 căi pentru instrucțiuni. Este clar că Intel dorește ca instrucțiunile să fie disponibile mai rapid, în timp ce cache-ul L1 pentru date a avut procentul maxim de accesări. Memoria cache L2 pentru procesoarele Intel are asociere cu 8 căi, iar cache-ul Intel L3 este chiar "mai inteligent", deoarece implementează asociativitatea cu 16 căi pentru a maximiza accesările.
Cu toate acestea, AMD urmează o altă strategie cu procesoare Phenom II X4, care utilizează o memorie cache L1 cu asociativitate bidirecțională pentru a reduce întârzierile. Pentru a compensa posibilele pierderi, capacitatea cache-ului a fost dublată: 64 KB pentru date și 64 KB pentru instrucțiuni. Cache-ul L2 are asociativitate pe 8 căi, cum ar fi Intel, dar cache-ul L3 din AMD funcționează cu asociere cu 48 de cai. Dar decizia de a selecta una sau cealaltă arhitectură cache nu poate fi evaluată fără a lua în considerare întreaga arhitectură a procesorului. Este destul de natural ca rezultatele testelor să fie de importanță practică, iar scopul nostru a fost doar de a testa toate aceste structuri complexe de cache multi-nivel.