Hvad er ECC-hukommelse?

Noget RAM, eller Random-Access-hukommelse, annonceres som ECC-hukommelse. ECC står for Error Correcting Code og er en proces til at identificere og rette fejl i hukommelsen. Fejl i RAM kan forårsage korruption eller ændring af data, hvilket kan resultere i enhedsnedbrud og endda sikkerhedssårbarheder. ECC RAM er typisk ikke kompatibel med pc-hardware i forbrugerkvalitet.

Hvad er hukommelsesfejl?

Hukommelsesfejl er et problem, hvor værdien, der er gemt i hukommelsen, ændres. Data i RAM er gemt i binært, med værdier på 1 eller 0. Hvis værdien af ​​en 1 bliver skiftet til en 0 eller omvendt, i en proces kaldet "bit-flipping", ændres de data, der er lagret i RAM.

For eksempel kunne den ændrede bit bruges til at gemme en værdi i et regneark. I dette tilfælde kunne værdien i regnearket ændres til et helt andet tal, som ville påvirke resultatet for eventuelle beregninger, for eksempel at ændre de økonomiske prognoser for en forretning. I andre tilfælde kan den ændrede bit deaktivere en sikkerhedsfunktion eller skabe en tastefejl, der ændrer, hvordan et program køres. Disse to eksempler er ekstremt vanskelige at opdage og løse uden brug af ECC-hukommelse. I et ekstremt scenarie kan en enkelt bit, der bliver vendt, forårsage en katastrofal fejl, der forårsager et systemnedbrud.

Bit-flipping har mange potentielle årsager, den mest almindelige årsag er resultatet af baggrundsstråling, primært forårsaget af neutroner skabt af kosmiske strålebegivenheder. En kosmisk stråle er en højenergipartikel, typisk en proton, der bevæger sig med næsten lysets hastighed. De udsendes af stjernelegemer inklusive Solen og andre højenergi astronomiske objekter. Når en kosmisk stråle rammer et atom, dannes der en byge af neutroner og andre subatomære partikler, disse neutroner fortsætter med at have sekundære vekselvirkninger.

Disse sekundære neutroninteraktioner menes at være den primære kilde til bit-flipping-fejl. Kosmiske stråler er mere almindelige i højere højder med en stigning på 3,5 gange ved 1,5 km over havets overflade og en stigning på 300 gange i krydstogthøjden for flyvefly. Denne øgede risiko i højden nødvendiggør ekstra pålidelighedsforanstaltninger.

Hvor almindelige er hukommelsesfejl?

De fleste mennesker ser ikke deres computere gå ned hver dag, så det ville være let at tro, at dette primært er en teoretisk risiko. Forskning fra hyperskala datacentre er blevet brugt til at analysere hastigheden af ​​bit-flipping-hændelser. Undersøgelser udført af Google på tværs af dets datacentre har vist en fejlrate på omkring 1 enkelt-bit fejl pr. gigabyte RAM hver 1,8 time.

Nasas Cassini-Huygens-mission, der blev lanceret i 1997 for at rejse til Saturn, var konfigureret med to identiske flycomputere med hver 2,5 Gb RAM. I løbet af de første to et halvt år af sin rejse observerede rumfartøjet en konsekvent 280 enkelt-bit fejl om dagen. I løbet af en dag, da Cassini-Huygens var i vejen for et soludbrud, var en firdobling af bit fejl blev observeret, hvilket giver yderligere bevis for, at Solen er årsagen til de fleste bit-flipping problemer.

Der var bekymring for, at den fortsatte stigning i tætheden af ​​RAM-moduler ville føre til, at senere versioner af RAM blev mere og mere sårbare over for bit-flips. Nyere undersøgelser har vist, at det modsatte faktisk er tilfældet, da fejlene er faldet i takt med, at procesgeometrien er faldet.

Hvordan beskytter ECC-hukommelse mod fejl?

ECC-hukommelse bruger fejlkorrigerende koder, såsom Hamming-koder, til at rette enkelt-bit fejl i RAM. Dobbeltbitfejl kan detekteres, men ikke rettes. Hamming fejlkorrigerende koder fungerer ved at bruge en række paritetsbits. Sammen kan disse paritetsbit bruges til at registrere, om databits er ændret. Hvis en bit identificeres som vendt, ændres den automatisk tilbage.

Tip: En enkelt-bit-fejl er en bit-flipping-hændelse, når kun en enkelt bit vendes. I double0bit-fejl vendes to bits. De to bits behøver ikke at blive vendt i samme hændelse, den anden bit-flip skal kun ske før den første vendte bit er rettet.

En paritetsbit mere end påkrævet er inkluderet i Hamming fejlkorrigerende koder. Denne ekstra paritetsbit giver koden mulighed for at detektere forekomsten af ​​dobbeltbitfejl, men disse fejl kan ikke rettes.

Processen med at udføre fejldetektion og korrektion udføres på hukommelsescontrolleren ombord på RAM-sticken.

Forbrugertilgængelighed og support

De fleste pc-hardware i forbrugerkvalitet understøtter ikke ECC-hukommelse. Dette er delvist som en metode til kunstigt at skelne serverhardware fra forbrugerhardware. ECC RAM koster dog mere og kører lidt langsommere. Derudover er den ekstra stabilitet, det ville give hjemmeforbrugere, minimal, da bit-flipping-fejl ikke er den primære årsag til systemnedbrud.

Ingen af ​​Intels forbruger- og entusiast-grade CPU'er understøtter ECC-hukommelse, kun dets server-grade CPU'er, såsom Xeon-serien CPU'er gør. AMD's forbrugerklasse-CPU'er understøtter ikke ECC, men deres arbejdsstation- og server-CPU'er, henholdsvis Threadripper og EPYC, understøtter ECC-hukommelse.