În prezent, marea majoritate a memoriei utilizate de desktop-uri, notebook-uri și dispozitive mobile este DRAM neamorsată non-ECC (Error Checking and Correction). De fapt, cu excepția cazului în care se utilizează un procesor Intel sau AMD care poate suporta memorie ECC DRAM ECC DRAM netamponată este singura alegere pentru majoritatea utilizatorilor. Intel Xeon, de exemplu, suportă memorie ECC, în timp ce chiar și noile Core i7 nu o fac. AMD are un suport ECC mult mai larg la nivel de procesor, dar multe plăci de bază AMD nu suportă caracteristicile memoriei ECC, astfel că nu este universală.
Memoria ECC Ce face
Memoria ECC (Error Checking and Correction) este considerată în mare parte esențială în mediile de întreprindere în zilele noastre. Verificarea și corecția erorilor pe un singur bit în cadrul unui octet de 8 biți permite ca erorile pe un singur bit să fie atât detectate, cât și corectate atunci când apar. Este interesant faptul că modul în care funcționează acest ECC pe un singur bit nu este atât de diferit de RAID 4 și RAID 5, unde se utilizează un algoritm XOR pentru a genera biți de paritate. În loc să piardă capacitatea de memorie utilizabilă, producătorii de memorii au tendința de a adăuga un cip suplimentar la memoria ECC pentru fiecare opt cipuri de stocare. Atunci când este detectată o eroare pe un singur bit, informația de paritate este utilizată pentru a reconstrui datele cu eroare. Din nou, acest lucru este similar, din punct de vedere conceptual, cu modul în care RAID 4 și RAID 5 pot curăța și repara erorile de date în rețelele de stocare. Erorile mai mari decât cele pe mai mulți biți pot fi detectate, dar nu pot fi corectate de schema de paritate de tip ECC pe un singur bit.
Pentru calculatoarele de birou, acest lucru este mai puțin important, deoarece o mulțime de cifre plasează erorile pe un singur bit în intervalul de 1 la 1GB sau 1 la 2GB de memorie în fiecare lună. Pentru un utilizator de desktop, acest lucru poate provoca blocarea unui program sau, în cel mai rău caz, poate necesita o repornire. În cazul serverelor, ECC este esențial pentru a menține atât integritatea datelor, cât și timpul de funcționare. Cu actuala diferență minoră de cost a DIMM-urilor ECC față de cele non-ECC unbuffered, există puține motive pentru a obține memorie non-ECC pentru un server.
Memorie ECC unbuffered versus memorie ECC înregistrată
În plus față de conceptul ECC, există două concepte în joc, modulele de memorie ECC unbuffered și ECC înregistrate. Diferența de bază este că comenzile de memorie în configurațiile de memorie unbuffered merg direct de la controler la modulul de memorie, în timp ce în configurațiile de memorie înregistrată comenzile sunt trimise mai întâi la registrele băncilor de memorie înainte de a fi trimise la module. Acest concept poate părea dificil, dar iată care este viziunea foarte simplă/conceptuală cu privire la ceea ce se întâmplă.
În exemplul de mai sus, controlerul de memorie accesează direct băncile de memorie. Cele de mai sus presupun că controlerul de memorie locuiește în cadrul pachetului CPU, așa cum se întâmplă în arhitecturile CPU moderne. Dacă ne uităm la sistemele mai vechi, controlerul de memorie rezidă în cadrul northbridge-ului CPU. Comparați acest lucru cu exemplul de memorie înregistrată de mai jos.
În acest caz, unitatea centrală comunică cu registrele pentru băncile de memorie de pe fiecare modul. De acolo, aceste registre comunică cu DRAM. Implicațiile acestui lucru sunt de două feluri. În primul rând, din punct de vedere negativ, instrucțiunile durează cu aproximativ un ciclu CPU mai mult din cauza intermedierii registrului băncii. Pe partea pozitivă, această tamponare reduce presiunea asupra controlerului de memorie al CPU, deoarece acesta indică registrul intermediar dedicat față de accesarea directă a DRAM. Este mai ușor pentru controlerul de memorie să se ocupe de un număr mai mic de ținte.
Această caracteristică este foarte importantă în scenariile de server deoarece, de exemplu, o platformă din seria Intel 3400, cum ar fi Supermicro X8SI6-F sau Intel S3420GPLC suportă 16GB de memorie ECC fără tamponare și 32GB de memorie ECC înregistrată. De asemenea, în cazul sistemelor cu două procesoare, cum ar fi Supermicro X8DTH-6F bazat pe seria E5600 și analizat recent pe ServeTheHome, diferența este mult mai mare, cu până la 48GB de memorie ECC neînregistrată sau 192GB de memorie ECC înregistrată. Pentru mediile de virtualizare în care memoria și lățimea de bandă a memoriei sunt esențiale pentru obținerea unor parametri de consolidare și densitate ridicată, memoria ECC înregistrată este, în general, calea de urmat. Dacă se achiziționează un server cu memorii ECC DIMM neînregistrate, apoi este nevoie de capacitate suplimentară, atunci operațiunea de upgrade va necesita o extragere și înlocuire a tuturor modulelor UDIMM, ceea ce face ca aceasta să fie o propunere costisitoare.
Concluzie
În acest articol se speră că se poate obține o viziune conceptuală a diferenței dintre memoria ECC neînregistrată și memoria ECC înregistrată pentru a ajuta la fundamentarea deciziilor de selecție. Acesta nu a fost un articol prea tehnic deoarece modulele de memorie tind să fie elemente pe care oamenii le comandă sau le adaugă la sistemele lor și la care lucrează puțin până când au nevoie de mai multă memorie.
.