ECC
Staat voor "Error Correction Code."
ECC is een methode om de integriteit te controleren van gegevens die naar het systeemgeheugen worden geschreven en daaruit worden gelezen. Speciale RAM-modules, ECC RAM genoemd, gebruiken ECC om gegevens tegen beschadiging te beschermen en worden vaak gebruikt in systemen waarin betrouwbaarheid en beschikbaarheid essentieel zijn. Werkstations, servers, medische en wetenschappelijke apparatuur en computers voor vliegtuigbesturing gebruiken doorgaans ECC RAM.
De meeste geheugenfouten in computers zijn fouten van één bit, die worden veroorzaakt doordat de waarde van een afzonderlijke bit door een vorm van elektromagnetische interferentie verandert van 0 in 1 (of andersom). Deze fouten leiden vaak tot instabiliteit van het systeem of beschadigde gegevens — bijvoorbeeld doordat één teken in tekst of de kleurwaarde van een pixel verandert. ECC-geheugen kan fouten van één bit lokaliseren en herstellen door de betreffende bit terug te zetten naar de oorspronkelijke waarde.
Wanneer een systeem gegevens naar een ECC-geheugenmodule schrijft, doet het twee dingen die helpen om fouten bij te houden. Ten eerste voegt het aan elk woord (of elke groep bits) een extra bit met gegevens toe, een pariteitsbit genoemd, die bijhoudt hoeveel bits in een bepaald woord de waarde 1 hebben. Het genereert ook een foutcorrectiecode met behulp van een ingebouwd algoritme dat is gebaseerd op de posities van de 0'en en 1'en in het woord. Als het aantal 1'en door een fout van één bit verandert, komt de pariteitsbit niet overeen. De ECC-schakeling in de geheugenmodule verwijst terug naar de foutcorrectiecode die deze heeft gegenereerd om vast te stellen welke bit is veranderd en zet deze vervolgens terug naar de oorspronkelijke toestand.
ECC-geheugenmodules zijn door de extra schakelingen complexer, waardoor ze duurder zijn dan geheugen zonder ECC. Ze hebben meer geheugenchips nodig dan geheugenmodules zonder ECC om de pariteitsbits op te slaan. ECC-geheugen werkt ook langzamer dan geheugen zonder ECC, door de extra stappen die nodig zijn om foutcorrectiecodes te genereren en de pariteitsbit te controleren. Vanwege de kosten en de lagere prestaties gebruikt een gewone desktop- of laptopcomputer niet-ECC RAM, terwijl ECC RAM wordt gebruikt in servers en werkstations die een hoge beschikbaarheid vereisen.
Test je kennis