Fehlererkennung und -korrektur

Dez 28, 2021
admin

Anwendungen, die eine geringe Latenzzeit erfordern (z. B. Telefongespräche), können keine automatische Wiederholungsanforderung (ARQ) verwenden; sie müssen die Vorwärtsfehlerkorrektur (FEC) nutzen. Bis ein ARQ-System einen Fehler entdeckt und erneut sendet, kommen die erneut gesendeten Daten zu spät an, um noch verwendet werden zu können.

Anwendungen, bei denen der Sender die Informationen sofort vergisst, sobald sie gesendet werden (wie die meisten Fernsehkameras), können ARQ nicht verwenden; sie müssen FEC verwenden, da die ursprünglichen Daten nicht mehr verfügbar sind, wenn ein Fehler auftritt.

Anwendungen, die ARQ verwenden, müssen einen Rückkanal haben; Anwendungen ohne Rückkanal können ARQ nicht verwenden.

Anwendungen, die extrem niedrige Fehlerraten erfordern (z. B. digitale Geldüberweisungen), müssen ARQ verwenden, da bei FEC unkorrigierbare Fehler auftreten können.

Zuverlässigkeit und Inspektionstechnik nutzen ebenfalls die Theorie der fehlerkorrigierenden Codes.

InternetEdit

In einem typischen TCP/IP-Stack wird die Fehlerkontrolle auf mehreren Ebenen durchgeführt:

  • Jeder Ethernet-Rahmen verwendet CRC-32-Fehlererkennung. Frames mit erkannten Fehlern werden von der Empfängerhardware verworfen.
  • Der IPv4-Header enthält eine Prüfsumme, die den Inhalt des Headers schützt. Pakete mit falschen Prüfsummen werden im Netz oder beim Empfänger verworfen.
  • Die Prüfsumme wurde im IPv6-Header weggelassen, um die Verarbeitungskosten beim Netzwerk-Routing zu minimieren und weil davon ausgegangen wird, dass die derzeitige Link-Layer-Technologie eine ausreichende Fehlererkennung bietet (siehe auch RFC 3819).
  • UDP hat eine optionale Prüfsumme, die die Nutzlast und die Adressierungsinformationen in den UDP- und IP-Headern abdeckt. Pakete mit falschen Prüfsummen werden vom Netzwerkstapel verworfen. Die Prüfsumme ist unter IPv4 optional und unter IPv6 erforderlich. Wird sie weggelassen, wird davon ausgegangen, dass die Datenübertragungsschicht den gewünschten Fehlerschutz bietet.
  • TCP bietet eine Prüfsumme zum Schutz der Nutzlast und der Adressierungsinformationen in den TCP- und IP-Headern. Pakete mit falschen Prüfsummen werden vom Netzwerkstapel verworfen und schließlich mit ARQ erneut übertragen, entweder explizit (z. B. durch Triple-Ack) oder implizit aufgrund einer Zeitüberschreitung.

Deep-Space-TelekommunikationEdit

Die Entwicklung von Fehlerkorrekturcodes war eng mit der Geschichte der Deep-Space-Missionen verknüpft, da die Signalleistung über interplanetare Entfernungen extrem verdünnt wird und an Bord von Raumsonden nur begrenzt Energie zur Verfügung steht. Während die ersten Missionen ihre Daten uncodiert übermittelten, wurde ab 1968 die digitale Fehlerkorrektur in Form von (suboptimal decodierten) Faltungscodes und Reed-Muller-Codes eingeführt. Der Reed-Muller-Code war für das Rauschen, dem die Raumsonde ausgesetzt war, gut geeignet (er entsprach in etwa einer Glockenkurve) und wurde für die Mariner-Sonde implementiert und bei Missionen zwischen 1969 und 1977 verwendet.

Die Missionen Voyager 1 und Voyager 2, die 1977 begannen, sollten Farbbilder und wissenschaftliche Informationen von Jupiter und Saturn liefern. Daraus ergaben sich erhöhte Anforderungen an die Kodierung, und so wurden die Raumfahrzeuge durch (optimal Viterbi-dekodierte) Faltungscodes unterstützt, die mit einem äußeren Golay (24,12,8)-Code verkettet werden konnten. Die Voyager 2-Sonde unterstützte zusätzlich eine Implementierung eines Reed-Solomon-Codes. Der verkettete Reed-Solomon-Viterbi (RSV)-Code erlaubte eine sehr leistungsfähige Fehlerkorrektur und ermöglichte die ausgedehnte Reise des Raumschiffs zu Uranus und Neptun. Nach der Aufrüstung des ECC-Systems im Jahr 1989 verwendeten beide Raumfahrzeuge die V2-RSV-Kodierung.

Das Consultative Committee for Space Data Systems empfiehlt derzeit die Verwendung von Fehlerkorrekturcodes, die mindestens eine ähnliche Leistung wie der RSV-Code von Voyager 2 aufweisen. Verkettete Codes werden bei Weltraummissionen immer weniger verwendet und durch leistungsfähigere Codes wie Turbo- oder LDPC-Codes ersetzt.

Die verschiedenen Arten von Weltraum- und Orbitalmissionen, die durchgeführt werden, lassen vermuten, dass der Versuch, ein einheitliches Fehlerkorrektursystem zu finden, ein ständiges Problem darstellen wird. Bei erdnahen Missionen ist die Art des Rauschens im Kommunikationskanal eine andere als bei interplanetaren Missionen. Außerdem wird das Problem der Rauschkorrektur mit zunehmender Entfernung eines Raumfahrzeugs von der Erde immer schwieriger.

SatellitenrundfunkBearbeiten

Die Nachfrage nach Satellitentransponder-Bandbreite nimmt weiter zu, angeheizt durch den Wunsch, Fernsehen (einschließlich neuer Kanäle und hochauflösendem Fernsehen) und IP-Daten zu übertragen. Die Verfügbarkeit von Transpondern und Bandbreitenbeschränkungen haben dieses Wachstum begrenzt. Die Transponderkapazität wird durch das gewählte Modulationsschema und den Anteil der durch FEC verbrauchten Kapazität bestimmt.

DatenspeicherungBearbeiten

Fehlererkennungs- und -korrekturcodes werden häufig verwendet, um die Zuverlässigkeit von Datenspeichermedien zu verbessern. Eine Paritätsspur, die in der Lage ist, Ein-Bit-Fehler zu erkennen, war auf dem ersten Magnetband-Datenspeicher von 1951 vorhanden. Der optimale Rechteckcode, der in gruppencodierten Aufnahmebändern verwendet wird, erkennt nicht nur Ein-Bit-Fehler, sondern korrigiert sie auch. Einige Dateiformate, insbesondere Archivformate, enthalten eine Prüfsumme (meist CRC32), um Beschädigungen und Abbrüche zu erkennen, und können Redundanz- oder Paritätsdateien verwenden, um Teile der beschädigten Daten wiederherzustellen. Moderne Festplatten verwenden CRC-Codes zur Erkennung und Reed-Solomon-Codes zur Korrektur kleinerer Fehler beim Lesen von Sektoren und zur Wiederherstellung von Daten aus „fehlerhaften“ Sektoren und zur Speicherung dieser Daten in den Ersatzsektoren. RAID-Systeme verwenden eine Vielzahl von Fehlerkorrekturtechniken, um Fehler zu korrigieren, wenn eine Festplatte komplett ausfällt. Dateisysteme wie ZFS oder Btrfs sowie einige RAID-Implementierungen unterstützen Data Scrubbing und Resilvering, wodurch fehlerhafte Blöcke erkannt und (hoffentlich) wiederhergestellt werden können, bevor sie verwendet werden. Die wiederhergestellten Daten können an genau der gleichen physischen Stelle neu geschrieben werden, auf Ersatzblöcke an anderer Stelle auf der gleichen Hardware, oder die Daten können auf Ersatzhardware neu geschrieben werden.

Fehlerkorrigierender SpeicherEdit

Hauptartikel: ECC-Speicher

DRAM-Speicher können einen stärkeren Schutz gegen weiche Fehler bieten, indem sie auf fehlerkorrigierende Codes zurückgreifen. Solch ein fehlerkorrigierender Speicher, bekannt als ECC- oder EDAC-geschützter Speicher, ist besonders wünschenswert für missionskritische Anwendungen, wie z. B. wissenschaftliche Berechnungen, Finanzwesen, Medizin usw., sowie für Deep-Space-Anwendungen aufgrund der erhöhten Strahlung im Weltraum.

Fehlerkorrigierende Speichercontroller verwenden traditionell Hamming-Codes, obwohl einige von ihnen dreifache modulare Redundanz verwenden.

Interleaving ermöglicht es, die Auswirkung eines einzelnen kosmischen Strahls, der möglicherweise mehrere physisch benachbarte Bits stört, auf mehrere Wörter zu verteilen, indem benachbarte Bits verschiedenen Wörtern zugeordnet werden. Solange eine Einzelereignisstörung (SEU) die Fehlerschwelle (z. B. ein einzelner Fehler) in einem bestimmten Wort zwischen den Zugriffen nicht überschreitet, kann sie korrigiert werden (z. B. durch einen Ein-Bit-Fehlerkorrekturcode), und die Illusion eines fehlerfreien Speichersystems kann aufrechterhalten werden.

Zusätzlich zu den Hardwarefunktionen, die für den Betrieb von ECC-Speicher erforderlich sind, enthalten Betriebssysteme in der Regel entsprechende Meldefunktionen, die verwendet werden, um Meldungen zu liefern, wenn weiche Fehler transparent wiederhergestellt werden. Eine steigende Rate von Soft-Fehlern könnte darauf hinweisen, dass ein DIMM-Modul ausgetauscht werden muss, und solche Rückmeldungen wären ohne die entsprechenden Berichtsfunktionen nicht ohne weiteres verfügbar. Ein Beispiel ist das EDAC-Subsystem des Linux-Kernels (früher bekannt als Bluesmoke), das die Daten von fehlerprüfungsfähigen Komponenten innerhalb eines Computersystems sammelt; neben der Sammlung und Rückmeldung von Ereignissen im Zusammenhang mit ECC-Speicher unterstützt es auch andere Prüfsummenfehler, einschließlich derer, die auf dem PCI-Bus erkannt werden.

Einige wenige Systeme unterstützen auch Memory Scrubbing.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.