De ce computerele nu utilizează corectarea erorilor RAM? „Pentru că Intel”, spune Linus

Enlarge / Ne bucurăm de un Linus Torvalds mai blând și mai blând în ultimii doi ani .. dar asta nu înseamnă că a încetat să aibă păreri.

Luni, creatorul kernel-ului Linux Linus Torvalds s-a arătat frustrat cu privire la lipsa RAM-ului de corectare a erorilor (ECC) din computerele de consum și laptopuri.

… politica greșită și înapoi a „consumatorilor nu au nevoie de ECC”, piața memoriei ECC dispare.

Argumentele împotriva ECC au fost întotdeauna gunoi complet și complet. Acum, chiar și producătorii de memorie încep să facă ECC intern, deoarece au deținut în cele din urmă până la faptul că trebuie absolut.

Dacă nu sunteți familiarizați cu memoria RAM ECC, probabil că nu construiți sau specificați servere dedicate folosind procesoare și plăci de bază de calitate server – ceea ce, din păcate, este despre singurul loc pe care îl găsiți de fapt ECC. Pe scurt, memoria ECC include o cantitate mică de memorie suplimentară utilizată pentru detectarea și corectarea erorilor.

Erori de memorie și probabilitate

În majoritatea implementărilor moderne, acest lucru înseamnă pentru fiecare 64- cuvânt de biți stocat în RAM, există opt biți de verificare. O eroare de un singur bit – un 0 răsturnat la 1 sau un 1 răsturnat la 0 – poate fi detectată și corectată automat. Două biți răsturnați în același cuvânt pot fi detectați, dar nu corectați. Probabil vor fi detectați trei sau mai mulți biți întorși în același cuvânt, dar detectarea nu este garantată.

Întoarcerea de biți se poate întâmpla din mai multe motive, începând cu impactul razelor cosmice sau cu o simplă defecțiune hardware. Un studiu pe scară largă al serverelor Google a constatat că aproximativ 32% din toate serverele (și 8% din toate DIMM-urile) din flota Google au cel puțin o eroare de memorie pe an. Dar marea majoritate a acestora sunt erori pe un singur bit – și întrucât Google folosește procesoare de server și RAM ECC, acest lucru înseamnă că mașinile în cauză păstrează dreptul la transport.

Afișați mai multe

În mașinile de consum, chiar și aceste erori pe un singur bit – care sunt de peste 40 de ori mai multe șanse să apară decât erorile pe mai mulți biți, conform datelor Google – rămân nedetectate și pot introduce instabilitate în sisteme și corupție în date.

Flipurile de biți nu sunt întotdeauna accidentale

Nu fiecare eroare RAM este rezultatul unei defecțiuni hardware sau a unei probleme EMF neintenționate. În ultimii ani, cercetătorii au dezvoltat atacuri de canale laterale bazate pe fizică din ce în ce mai practice, folosind flip-uri de biți rapide controlate în zone de RAM accesibile unei aplicații pentru a deduce sau modifica valorile datelor din zonele adiacente ale RAM pe care nu ar trebui să le poată face. .

Deși memoria RAM ECC nu poate atenua atacurile în stil RAMBleed care deduc valorile memoriei adiacente, în general poate opri atacurile Rowhammer – în care răsucirea rapidă a biților dintr-o zonă a RAM determină modificarea biților dintr-o zonă adiacentă.

Chiar și atunci când ECC nu poate împiedica activ un atac Rowhammer să aibă un impact asupra sistemului – de exemplu, când rotește mai mulți biți într-un singur cuvânt – poate cel puțin să alerteze sistemul despre problemă și, în în majoritatea cazurilor, împiedicați atacul Rowhammer să facă altceva decât să provoace timpii de nefuncționare. (Majoritatea sistemelor ECC sunt configurate pentru a opri întreaga mașină dacă este detectată o eroare incorectabilă.)

Torvalds dă vina pe Intel

Și producătorii de memorie c o consideră din cauza economiei și a puterii reduse. Și sunt niște ticăloși minciuni – permiteți-mi încă o dată să arăt că am găsit aceste probleme de câteva generații deja, dar acești jucători au vândut fericit echipamente defecte consumatorilor și au susținut că a fost un „atac”, când a fost întotdeauna „noi„ tăiem colțurile. ”

De câte ori s-a întâmplat un ciocan ca un bit-flip doar prin ghinion pur pe sarcini reale fără atac? Nu vom ști niciodată. Deoarece Intel împingea rahatul către consumatori.

Torvalds ia poziția îndrăzneață că lipsa de memorie RAM ECC în tehnologia consumatorului este vina Intel din cauza politicii artificiale a companiei segmentarea pieței. Intel are un interes major în a împinge întreprinderile cu buzunare mai profunde către procesoarele sale mai scumpe și mai profitabile, de calitate server, mai degrabă decât să lase entitățile respective să utilizeze în mod eficient părțile de consum neapărat cu marjă inferioară.

Eliminarea suportului pentru ECC RAM de la procesoare care nu sunt direcționate direct către lumea serverelor este unul dintre modurile în care Intel le-a păstrat piețe puternic segmentate. Argumentul Torvalds aici este că refuzul Intel de a sprijini ECC RAM în părțile sale vizate de consumatori – împreună cu aproape-monopolul său de facto în acel spațiu – este adevăratul motiv pentru care ECC este aproape indisponibil în afara spațiului serverului.

Publicitate

Argumentul obișnuit în jurul motivului pentru care ECC nu este prezent în tehnologia consumatorului se învârte în jurul costurilor, dar bănuim că Torvalds are dreptul la acesta aici. În ciuda faptului că RAM-ul ECC este în esență o componentă de specialitate greu de găsit, costă de obicei doar cu aproximativ 20% mai mult pe DIMM decât o face non-ECC la vânzare cu amănuntul. ești bine.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *