Error Checking and Correcting: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 17: Zeile 17:
; Erkennungsverfahren
; Erkennungsverfahren
Zur Erkennung von Hauptspeicherfehlern gibt es mehrere Verfahren
Zur Erkennung von Hauptspeicherfehlern gibt es mehrere Verfahren
* Eines dieser Verfahren stammt vom US-Mathematiker [[Richard Hamming]]: Der Error Correction Code (ECC) ist eine Art Hashwert über die 64 Bits jeder Speicherzeile
* '''Error Correction Code (ECC)'''
* Diese redundanten Informationen werden vom Speichercontroller berechnet und in acht weiteren Bits abgelegt (bei 32-bit-Speicherzeilen sind es sieben weitere Bits), weshalb ECC-Speicher 72 Bits pro Zeile hat
** ist eine Art Hashwert über die 64 Bits jeder Speicherzeile
** Diese redundanten Informationen werden vom Speichercontroller berechnet und in acht weiteren Bits abgelegt (bei 32-bit-Speicherzeilen sind es sieben weitere Bits), weshalb ECC-Speicher 72 Bits pro Zeile hat


; Das Verfahren selbst heißt Error Checking and Correcting
; Das Verfahren selbst heißt Error Checking and Correcting

Version vom 23. November 2024, 11:06 Uhr

Error Checking and Correcting

Fehlererkennung (ECC)

RAM-RDIMMs für Server wie dieser haben meist ECC integriert

Speichermodule können je nach Bestückung verwendet werden

Paritäts-Bit

Für die einfache Fehlererkennung mittels Paritätsbit wird je 8 bit Wortbreite ein weiteres Bit benötigt, die Module sind folglich 9 bit (einfaches SIMM), 36 bit (PS/2-SIMM) oder 72 bit breit (übliche DIMMs) organisiert

  • Ein einzelnes DIMM bietet damit auch genügend Bit-Breite für die Nutzung der Fehlerkorrektur (siehe unten), während hierzu mehrere gleichartige PS/2-Module parallel geschaltet werden müssen
Chipsatz und BIOS

Die Fehlerkorrektur muss außerdem von der Hauptplatine (Chipsatz und BIOS) unterstützt werden, die zusätzlichen Bits auf den Modulen schaffen nur die Möglichkeit zur Ablage der benötigten Information

Erkennungsverfahren

Zur Erkennung von Hauptspeicherfehlern gibt es mehrere Verfahren

  • Error Correction Code (ECC)
    • ist eine Art Hashwert über die 64 Bits jeder Speicherzeile
    • Diese redundanten Informationen werden vom Speichercontroller berechnet und in acht weiteren Bits abgelegt (bei 32-bit-Speicherzeilen sind es sieben weitere Bits), weshalb ECC-Speicher 72 Bits pro Zeile hat
Das Verfahren selbst heißt Error Checking and Correcting

ECC kann alle 1-bit-Fehler korrigieren und alle 2-bit-Fehler sowie manche Mehr-bit-Fehler erkennen

  • ECC-Speicher kommt in Desktop-PCs kaum zum Einsatz
Weitere Techniken zur Fehlererkennung
  • Chipkill
  • Active Memory
  • Memory Resiliency
  • Memory RAID
Ursache von Speicherfehlern

Die Hauptursache von Speicherfehlern ist nicht ionisierende Strahlung (wie früher vermutet), sondern eher Probleme einzelner Speicherzellen (zum Beispiel durch Alterung oder Fertigungsprobleme)

Anwendung

Message from syslogd@mx10 at Nov 20 21:01:33 ...
 kernel:[376047.608409] [Hardware Error]: Corrected error, no action required.

Message from syslogd@mx10 at Nov 20 21:01:33 ...
 kernel:[376047.608537] [Hardware Error]: CPU:0 (17:71:0) MC17_STATUS[-|CE|MiscV|AddrV|-|-|SyndV|CECC|-|-|Scrub]: 0x9c2041000000011b

Message from syslogd@mx10 at Nov 20 21:01:33 ...
 kernel:[376047.608722] [Hardware Error]: Error Addr: 0x000000045d982340

Message from syslogd@mx10 at Nov 20 21:01:33 ...
 kernel:[376047.608846] [Hardware Error]: IPID: 0x0000009600050f00, Syndrome: 0xcf8600040a800a01

Message from syslogd@mx10 at Nov 20 21:01:33 ...
 kernel:[376047.609009] [Hardware Error]: Unified Memory Controller Ext. Error Code: 0, DRAM ECC error.

Message from syslogd@mx10 at Nov 20 21:01:33 ...
 kernel:[376047.609366] [Hardware Error]: cache level: L3/GEN, tx: GEN, mem-tx: RD

Konfiguration

Dateien

Anhang

Siehe auch

Dokumentation

Man-Page
Info-Pages

Links

Weblinks
  1. https://de.wikipedia.org/wiki/Speichermodul#Fehlererkennung_(ECC)