Mikä on ECC-muisti?

click fraud protection

Joitakin RAM-muistia tai Random-Access-muistia mainostetaan ECC-muistina. ECC on lyhenne sanoista Error Correcting Code ja se on prosessi, joka tunnistaa ja korjaa muistissa olevat virheet. Virheet RAM-muistissa voivat aiheuttaa tietojen vioittumista tai muuttumista, mikä voi johtaa laitteen kaatumisiin ja jopa tietoturva-aukoihin. ECC RAM ei yleensä ole yhteensopiva kuluttajatason PC-laitteiston kanssa.

Mitä ovat muistivirheet?

Muistivirheet ovat ongelma, jossa muistiin tallennettu arvo muuttuu. RAM-muistissa olevat tiedot tallennetaan binäärimuodossa arvoilla 1 tai 0. Jos 1:n arvo vaihtuu 0:ksi tai päinvastoin, prosessissa, jota kutsutaan "bitin vaihtamiseksi", RAM-muistiin tallennetut tiedot muuttuvat.

Muutettua bittiä voidaan käyttää esimerkiksi arvon tallentamiseen laskentataulukkoon. Tässä tapauksessa laskentataulukon arvo voidaan muuttaa täysin erilaiseksi numeroksi, joka vaikuttaisi kaikkien laskelmien tulokseen, esimerkiksi muuttamalla a.:n taloudellisia ennusteita liiketoimintaa. Muissa tapauksissa muutettu bitti voi poistaa suojausominaisuuden käytöstä tai luoda kirjoitusvirheen, joka muuttaa ohjelman ajotapaa. Nämä kaksi esimerkkiä on erittäin vaikea havaita ja ratkaista ilman ECC-muistia. Äärimmäisessä tilanteessa yksittäinen bitin kääntäminen voi aiheuttaa katastrofaalisen virheen, joka aiheuttaa järjestelmän kaatumisen.

Bittien kääntämisellä on monia mahdollisia syitä, yleisin syy on taustasäteilyn seuraus, jonka aiheuttavat pääasiassa kosmisten säteilytapahtumien synnyttämät neutronit. Kosminen säde on korkeaenerginen hiukkanen, tyypillisesti protoni, joka kulkee lähes valon nopeudella. Niitä lähettävät tähtien kappaleet, mukaan lukien aurinko ja muut korkean energian tähtitieteelliset kohteet. Kun kosminen säde osuu atomiin, syntyy neutronien suihku ja muita atomia pienempiä hiukkasia, näillä neutroneilla on sitten toissijainen vuorovaikutus.

Näiden toissijaisten neutronivuorovaikutusten uskotaan olevan ensisijainen bitinvaihtovirheiden lähde. Kosmiset säteet ovat yleisempiä korkeammilla korkeuksilla: 3,5-kertainen nousu 1,5 km merenpinnan yläpuolella ja 300-kertainen nousu lentokoneen matkalentokorkeudessa. Tämä lisääntynyt riski korkeudessa edellyttää ylimääräisiä luotettavuustoimenpiteitä.

Kuinka yleisiä muistivirheet ovat?

Useimmat ihmiset eivät näe tietokoneidensa kaatuvan joka päivä, joten olisi helppoa ajatella, että tämä on ensisijaisesti teoreettinen riski. Hypermittakaavaisten datakeskusten tutkimusta on käytetty analysoimaan bitinvaihtotapahtumien määrää. Googlen palvelinkeskuksissaan suorittama tutkimus on osoittanut virhesuhteeksi noin 1 yhden bitin virhe gigatavua RAM-muistia kohti 1,8 tunnin välein.

NASAn Cassini-Huygens-tehtävä, joka käynnistettiin vuonna 1997 matkustaakseen Saturnukseen, konfiguroitiin kahdella identtisellä lentotietokoneella, joissa kummassakin oli 2,5 Gt RAM-muistia. Matkansa ensimmäisen kahden ja puolen vuoden aikana avaruusalus havaitsi 280 yhden bitin virhettä päivässä. Yhden päivän aikana, kun Cassini-Huygens oli auringonpurkauksen tiellä, bitti nelinkertaistui havaittiin virheitä, mikä tarjosi lisätodisteita siitä, että aurinko on useimpien bittien käännösten syy ongelmia.

Pelättiin, että RAM-moduulien tiheyden jatkuva lisääntyminen johtaisi siihen, että RAM-muistin myöhemmät versiot ovat yhä alttiimpia bitin käänteille. Uusimmat tutkimukset ovat osoittaneet, että asia on päinvastoin, koska virheet ovat vähentyneet prosessigeometrian pienentyessä.

Miten ECC-muisti suojaa virheiltä?

ECC-muisti käyttää virheenkorjauskoodeja, kuten Hamming-koodeja, RAM-muistin yksibittisten virheiden korjaamiseen. Kaksibittiset virheet voidaan havaita, mutta niitä ei voida korjata. Hamming-virheenkorjauskoodit toimivat käyttämällä pariteettibittien joukkoa. Yhdessä näitä pariteettibittejä voidaan käyttää havaitsemaan, ovatko databitit muuttuneet. Jos bitin tunnistetaan kääntyneen, se muuttuu automaattisesti takaisin.

Vihje: Yhden bitin virhe on bitin vaihtotapahtuma, kun vain yksi bitti käännetään. Double0bit-virheissä kaksi bittiä käännetään. Molempia bittejä ei tarvitse kääntää samassa tapahtumassa, toisen bitin käännön täytyy tapahtua vain ennen kuin ensimmäinen käännetty bitti korjataan.

Hamming-virheenkorjauskoodeihin sisältyy yksi pariteettibitti enemmän kuin vaaditaan. Tämä ylimääräinen pariteettibitti antaa koodille mahdollisuuden havaita kaksoisbittivirheiden esiintyminen, mutta näitä virheitä ei voida korjata.

Virheiden havaitseminen ja korjaus suoritetaan RAM-muistitikulla olevassa muistiohjaimessa.

Kuluttajien saatavuus ja tuki

Useimmat kuluttajatason PC-laitteet eivät tue ECC-muistia. Tämä on osittain keino keinotekoisesti erottaa palvelinlaitteisto kuluttajalaitteistosta. ECC RAM kuitenkin maksaa enemmän ja toimii hieman hitaammin. Lisäksi ylimääräinen vakaus, jonka se tarjoaisi kotikäyttäjille, on minimaalista, koska bittien vaihtovirheet eivät ole järjestelmän kaatumisen ensisijainen syy.

Yksikään Intelin kuluttaja- ja harrastajatason prosessoreista ei tue ECC-muistia, vain sen palvelintason CPU: t, kuten Xeon-sarjan prosessorit, tukevat. AMD: n kuluttajatason prosessorit eivät tue ECC: tä, mutta niiden työasema- ja palvelintason CPU: t, Threadripper ja EPYC, tukevat ECC-muistia.