Denne mandagen fortsatte Linux-kjerneoppretter Linus Torvalds frustrert om mangelen på feilretting av kontrollsum (ECC) RAM i forbruker-PC og bærbare datamaskiner.
… den misviste og tilbakevendende politikken med «forbrukere trenger ikke ECC», markedet for ECC-minne forsvinner.
Argumentene mot ECC var alltid fullstendig og fullstendig søppel. Nå begynner selv minneprodusentene å gjøre ECC internt fordi de endelig eide det faktum at de absolutt må.
Hvis du ikke er kjent med ECC RAM, er det sannsynligvis fordi du ikke bygger eller spesifiserer dedikerte servere ved hjelp av server-CPUer og hovedkort – som dessverre handler om det eneste stedet du faktisk finner ECC. I et nøtteskall inkluderer ECC RAM en liten mengde ekstra minne som brukes til å oppdage og korrigere feil.
Minnefeil og sannsynlighet
I de fleste moderne implementeringer betyr dette for hver 64- bitord lagret i RAM, er det åtte kontrollbiter. En enkeltbitfeil – en 0 snudd til 1, eller en 1 snudd til 0 – kan både oppdages og korrigeres automatisk. To biter som er snudd i det samme ordet, kan oppdages, men ikke korrigeres. Tre eller flere biter som er snudd i det samme ordet, vil sannsynligvis bli oppdaget, men deteksjon er ikke garantert.
Bitsnurr kan skje av mange grunner, og begynner med kosmisk strålepåvirkning eller enkel maskinvarefeil. En omfattende undersøkelse av Googles servere fant at omtrent 32 prosent av alle servere (og 8 prosent av alle DIMM-er) i Googles flåte opplever minst en minnefeil per år. Men de aller fleste av disse er enkeltbitfeil – og siden Google bruker server-CPUer og ECC RAM, betyr dette at de aktuelle maskinene holder på med lastebil.
I forbrukermaskiner blir selv disse enkeltbitfeilene – som er mer enn 40 ganger mer sannsynlige enn flerbitsfeil, ifølge Googles data – uoppdaget og kan introdusere ustabilitet i systemer og korrupsjon i data.
Bitflips er ikke alltid tilfeldige
Ikke alle RAM-feil er resultatet av en maskinvarefeil eller utilsiktet EMF-problem. De siste årene har forskere utviklet stadig mer praktiske fysikkbaserte sidekanalangrep, ved hjelp av kontrollerte, raske bitflips i områder av RAM som er tilgjengelige for en applikasjon for å utlede eller modifisere verdiene til data i tilstøtende RAM-områder de ikke skal kunne .
Selv om ECC-RAM ikke kan redusere RAMBleed-stilangrep som utleder verdiene til tilstøtende minne, kan det vanligvis stoppe Rowhammer-angrep – der raskt vendende biter i ett RAM-område får biter i et tilstøtende område til å endres.
Selv når ECC ikke aktivt kan forhindre at et Rowhammer-angrep påvirker systemet – for eksempel når det snur flere biter i ett ord – kan det i det minste varsle systemet om problemet og i de fleste tilfeller forhindrer Rowhammer-angrepet å gjøre noe annet enn å forårsake nedetid. (De fleste ECC-systemer er konfigurert til å stoppe hele maskinen hvis det oppdages en feil som kan korrigeres.)
Torvalds gir Intel skylden
Og minneprodusentene c laim det er på grunn av økonomi og lavere kraft. Og de lyver bastarder – la meg nok en gang peke på radhammer om hvordan disse problemene har eksistert i flere generasjoner allerede, men disse f * ckerne solgte gjerne ødelagt maskinvare til forbrukerne og hevdet at det var et «angrep» når det alltid var «vi klipper hjørner.»
Hvor mange ganger har en radhammer som bit-flip skjedd bare av ren uflaks på ekte ikke-angrepsbelastninger? Vi vet aldri. Fordi Intel presset dritt til forbrukerne.
Torvalds tar den dristige standpunktet om at mangelen på ECC RAM i forbrukerteknologi er Intels skyld på grunn av selskapets politikk for kunstig markedssegmentering. Intel har en interesse i å skyve dypere lommer mot sine dyrere og lønnsomme prosessorer av serverklasse i stedet for å la disse enhetene effektivt bruke de nødvendigvis forbruksdelene med lavere marginer.
Fjerne støtte for ECC RAM fra CPUer som ikke er målrettet direkte mot serververdenen, er en av måtene Intel har beholdt disse markeder sterkt segmentert. Torvalds argument her er at Intels nektelse om å støtte ECC RAM i sine forbrukermålrettede deler – sammen med det de facto nesten monopolet i det rommet – er den virkelige grunnen til at ECC nesten ikke er tilgjengelig utenfor serverområdet.
Det vanlige argumentet rundt hvorfor ECC ikke er til stede i forbrukerteknologi dreier seg om kostnad, men vi mistenker at Torvalds har rett til det her. Til tross for at ECC RAM i det vesentlige er en vanskelig å finne spesialitetsdel, koster det vanligvis bare rundt 20 prosent mer per DIMM enn ikke-ECC i detaljhandelen. Det virkelige problemet er at uten hovedkort og CPUer som støtter det, vil det ikke gjøre noe bra for deg.