Zum Inhalt springen

Error Checking and Correcting: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „BASEPAGENAME}}}}“ durch „BASEPAGENAME}}/}}“
 
(33 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' - Beschreibung
'''Error Checking and Correcting''' - Verfahren zur Fehlererkennung und -behebung
== Fehlererkennung (ECC) ==
[[Datei:Micron MTC40F204681RC48BA1R 20240407 076.jpg|mini|RAM-RDIMMs für Server wie dieser haben meist ECC integriert]]
Speichermodule können je nach Bestückung verwendet werden
* ohne [[Fehlerkorrekturverfahren|Fehlererkennung]]
* mit Fehlererkennung ([[Paritätsbit|Parität]])
* mit Fehlerkorrektur ([[Fehlerkorrekturverfahren#ECC- und Paritätsprüfung|ECC]])


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.
== Fehlererkennung ==
=== Speicherfehler ===
; Ursache von Speicherfehlern
Probleme einzelner Speicherzellen
* Alterung
* Fertigungsprobleme
* [[ionisierende Strahlung]] (weniger als früher vermutet)


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.
; Möglichkeiten
{|class="wikitable options"
| ohne || Keine Erkennung oder Korrektur von Fehlern
|-
| [[Fehlererkennung]] || Einfache Fehlererkennung mit [[Paritätsbit]]
|-
| [[Fehlerkorrektur]] || Fehlererkennung und -behebung
|}


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. 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.
== Voraussetzungen ==
Das Verfahren selbst heißt Error Checking and Correcting.
; Chipsatz und BIOS
ECC muss unterstützt werden vom
* [[Mainboard]]
* [[Chipsatz]]
* [[BIOS]]/[[UEFI]]


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.
== Erkennungsverfahren ==
Verfahren zur Erkennung von Hauptspeicherfehlern


Weitere Techniken zur Fehlererkennung sind unter den Namen Chipkill, Active Memory, Memory Resiliency oder Memory RAID bekannt.
; Error Correction Code (ECC)
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


Die Hauptursache von Speicherfehlern ist nicht [[ionisierende Strahlung]] (wie früher vermutet), sondern eher Probleme einzelner Speicherzellen (zum Beispiel durch Alterung oder Fertigungsprobleme).<ref>[https://www.heise.de/newsticker/meldung/Hauptspeicherfehler-sehr-viel-haeufiger-als-bisher-angenommen-828883.html heise.de] Hauptspeicherfehler sehr viel häufiger als bisher angenommen (2009)</ref><ref>[http://www.cs.toronto.edu/~bianca/papers/sigmetrics09.pdf cs.toronto.edu] (PDF; 284&nbsp;kB) DRAM Errors in the Wild: A Large-Scale Field Study, Mai 2009.</ref>
Verfahren 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


== Installation ==
; Weitere Techniken
<syntaxhighlight lang="bash" highlight="1" line>
* Chipkill
* Active Memory
* Memory Resiliency
* Memory RAID


== Anwendung ==
<syntaxhighlight lang="bash" line>
--------------------- Kernel Begin ------------------------
WARNING:  Kernel Errors Present
    [Hardware Error]: CPU:0 (17:71:0 ...:  1 Time(s)
    [Hardware Error]: Corrected erro ...:  1 Time(s)
    [Hardware Error]: Error Addr: 0x ...:  1 Time(s)
    [Hardware Error]: IPID: 0x000000 ...:  1 Time(s)
    [Hardware Error]: Unified Memory ...:  1 Time(s)
    [Hardware Error]: cache level: L ...:  1 Time(s)
    mce: [Hardware Error]: Machine check  ...:  1 Time(s)
WARNING:  Kernel EDAC Messages
    EDAC MC0: 1 CE Cannot decode normalized address on mc#0csrow#1channel#0 (csrow:1 channel:0 page:0x0 offset:0x0 grain:64 syndrome:0x4) ...:  1 Time(s)
</syntaxhighlight>
</syntaxhighlight>
== Aufruf ==
<syntaxhighlight lang="bash" highlight="1" line>


<syntaxhighlight lang="bash" line>
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
</syntaxhighlight>
</syntaxhighlight>
=== Optionen ===
 
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
== Anwendung ==
=== Problembehebung ===
== Konfiguration ==
== Konfiguration ==
=== Dateien ===
=== Dateien ===
Zeile 39: Zeile 83:
== Anhang ==
== Anhang ==
=== Siehe auch ===
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
{{Special:PrefixIndex/{{BASEPAGENAME}}/}}
==== Dokumentation ====
==== Dokumentation ====


===== Man-Page =====
; Man-Page
===== Info-Pages =====
;Info-Page
==== Links ====
==== Links ====
===== Projekt =====
===== Weblinks =====
===== Weblinks =====
# https://de.wikipedia.org/wiki/Speichermodul#Fehlererkennung_(ECC)
[[Kategorie:Arbeitsspeicher]]
[[Kategorie:IT-Sicherheit]]
</noinclude>
</noinclude>

Aktuelle Version vom 1. März 2025, 09:36 Uhr

Error Checking and Correcting - Verfahren zur Fehlererkennung und -behebung

Fehlererkennung

Speicherfehler

Ursache von Speicherfehlern

Probleme einzelner Speicherzellen

Möglichkeiten
ohne Keine Erkennung oder Korrektur von Fehlern
Fehlererkennung Einfache Fehlererkennung mit Paritätsbit
Fehlerkorrektur Fehlererkennung und -behebung

Voraussetzungen

Chipsatz und BIOS

ECC muss unterstützt werden vom

Erkennungsverfahren

Verfahren zur Erkennung von Hauptspeicherfehlern

Error Correction Code (ECC)

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

Verfahren 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
  • Chipkill
  • Active Memory
  • Memory Resiliency
  • Memory RAID

Anwendung

--------------------- Kernel Begin ------------------------ 
 WARNING:  Kernel Errors Present
    [Hardware Error]: CPU:0 (17:71:0 ...:  1 Time(s)
    [Hardware Error]: Corrected erro ...:  1 Time(s)
    [Hardware Error]: Error Addr: 0x ...:  1 Time(s)
    [Hardware Error]: IPID: 0x000000 ...:  1 Time(s)
    [Hardware Error]: Unified Memory ...:  1 Time(s)
    [Hardware Error]: cache level: L ...:  1 Time(s)
    mce: [Hardware Error]: Machine check  ...:  1 Time(s)
 
 WARNING:  Kernel EDAC Messages
    EDAC MC0: 1 CE Cannot decode normalized address on mc#0csrow#1channel#0 (csrow:1 channel:0 page:0x0 offset:0x0 grain:64 syndrome:0x4) ...:  1 Time(s)
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-Page

Links

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