ECC-muisti, joka tunnetaan myös nimellä Error-Correcting Code -muisti, pystyy havaitsemaan ja korjaamaan tiedoissa olevat virheet. Sitä käytetään yleisesti huippuluokan pöytätietokoneissa, palvelimissa ja työasemissa järjestelmän vakauden ja turvallisuuden parantamiseksi.
Muisti on elektroninen laite, ja sen toiminnassa voi ilmetä virheitä. Käyttäjille, joilla on korkeat vakausvaatimukset, muistivirheet voivat johtaa kriittisiin ongelmiin. Muistivirheet voidaan luokitella kahteen tyyppiin: kovat virheet ja pehmeät virheet. Kovat virheet johtuvat laitteistovaurioista tai -vioista, ja tiedot ovat jatkuvasti virheellisiä. Näitä virheitä ei voi korjata. Toisaalta pehmeät virheet syntyvät satunnaisesti esimerkiksi muistin lähellä olevien elektronisten häiriöiden vuoksi, ja ne voidaan korjata.
Pehmeiden muistivirheiden havaitsemiseksi ja korjaamiseksi otettiin käyttöön muistin "pariteettitarkistuksen" käsite. Pienin muistiyksikkö on bitti, jota edustaa joko 1 tai 0. Kahdeksan peräkkäistä bittiä muodostaa tavun. Muistissa ilman pariteettitarkistusta on vain 8 bittiä tavua kohden, ja jos jokin bitti tallentaa väärän arvon, se voi johtaa virheellisiin tietoihin ja sovellusvirheisiin. Pariteettitarkistus lisää jokaiseen tavuun ylimääräisen bitin virheentarkistusbitiksi. Kun tiedot on tallennettu tavuun, kahdeksalla bitillä on kiinteä kuvio. Esimerkiksi jos bitit tallentavat dataa muodossa 1, 1, 1, 0, 0, 1, 0, 1, näiden bittien summa on pariton (1+1+1+0+0+1+0+1=5 ). Parillisen pariteetin pariteettibitiksi määritetään 1; muuten se on 0. Kun CPU lukee tallennetun datan, se laskee yhteen ensimmäiset 8 bittiä ja vertaa tulosta pariteettibittiin. Tämä prosessi voi havaita muistivirheet, mutta pariteettitarkistus ei voi korjata niitä. Lisäksi pariteettitarkistus ei pysty havaitsemaan kaksibittisiä virheitä, vaikka kaksoisbitin virheiden todennäköisyys on pieni.
ECC (Error Checking and Correcting) -muisti puolestaan tallentaa salatun koodin databittien rinnalle. Kun tietoja kirjoitetaan muistiin, vastaava ECC-koodi tallennetaan. Tallennettua tietoa luettaessa verrataan tallennettua ECC-koodia uuteen luotuun ECC-koodiin. Jos ne eivät täsmää, koodit dekoodataan tunnistamaan datassa oleva virheellinen bitti. Virheellinen bitti hylätään ja muistiohjain vapauttaa oikeat tiedot. Korjatut tiedot kirjoitetaan harvoin takaisin muistiin. Jos samat virheelliset tiedot luetaan uudelleen, korjausprosessi toistetaan. Tietojen uudelleen kirjoittaminen voi aiheuttaa ylimääräisiä kustannuksia, mikä johtaa huomattavaan suorituskyvyn heikkenemiseen. ECC-muisti on kuitenkin ratkaisevan tärkeä palvelimille ja vastaaville sovelluksille, koska se tarjoaa virheenkorjausominaisuudet. ECC-muisti on kalliimpaa kuin tavallinen muisti lisäominaisuuksiensa vuoksi.
ECC-muistin käyttäminen voi vaikuttaa merkittävästi järjestelmän suorituskykyyn. Vaikka se saattaa heikentää yleistä suorituskykyä, virheenkorjaus on välttämätöntä kriittisille sovelluksille ja palvelimille. Tämän seurauksena ECC-muisti on yleinen valinta ympäristöissä, joissa tietojen eheys ja järjestelmän vakaus ovat ensiarvoisen tärkeitä.
Postitusaika: 19.7.2023