Felupptäckt och felkorrigering
Användningar som kräver låg latenstid (t.ex. telefonsamtal) kan inte använda automatisk upprepningsbegäran (ARQ) utan måste använda felkorrigering framåt (FEC). När ett ARQ-system upptäcker ett fel och återutsänder det, kommer de återutsända uppgifterna att anlända för sent för att kunna användas.
Användningar där sändaren omedelbart glömmer informationen så snart den sänds (t.ex. de flesta TV-kameror) kan inte använda ARQ; de måste använda FEC, eftersom de ursprungliga uppgifterna inte längre är tillgängliga när ett fel inträffar.
Användningar som använder ARQ måste ha en returkanal; tillämpningar som inte har någon returkanal kan inte använda ARQ.
Användningar som kräver extremt låga felnivåer (t.ex. digitala penningöverföringar) måste använda ARQ på grund av möjligheten till icke korrigerbara fel med FEC.
Pålitlighet och inspektionsteknik använder sig också av teorin om felkorrigerande koder.
InternetEdit
I en typisk TCP/IP-stack utförs felkontrollen på flera olika nivåer:
- Varje Ethernetram använder CRC-32-felupptäckt. Ramar med upptäckta fel kasseras av mottagarens maskinvara.
- I IPv4-huvudet finns en kontrollsumma som skyddar innehållet i huvudet. Paket med felaktiga kontrollsummor slängs i nätverket eller hos mottagaren.
- Kontrollsumman utelämnades från IPv6-huvudet för att minimera behandlingskostnaderna i nätverksdirigering och för att den nuvarande tekniken på länkskiktet antas ge tillräcklig feldetektering (se även RFC 3819).
- Updp har en valfri kontrollsumma som täcker nyttolasten och adresseringsinformationen i UDP- och IP-huvudena. Paket med felaktiga kontrollsummor kasseras av nätverksstacken. Kontrollsumman är frivillig i IPv4 och obligatorisk i IPv6. När det utelämnas antas det att datalänkskiktet tillhandahåller den önskade nivån av felskydd.
- TCP tillhandahåller en kontrollsumma för att skydda nyttolasten och adresseringsinformationen i TCP- och IP-huvudet. Paket med felaktiga kontrollsummor kasseras av nätverksstacken och sänds så småningom om med hjälp av ARQ, antingen uttryckligen (t.ex. genom triple-ack) eller implicit på grund av en timeout.
Telekommunikationer i djupa rymdenRedigera
Utvecklingen av felkorrigeringskoder var tätt sammankopplad med historien om uppdrag i djupa rymden på grund av den extrema utspädningen av signaleffekten på interplanetariska avstånd och den begränsade tillgången till ström ombord på rymdsonderna. Medan de första uppdragen skickade sina data okodade, infördes från och med 1968 digital felkorrigering i form av (suboptimalt avkodade) konvolutionskoder och Reed-Muller-koder. Reed-Muller-koden var väl lämpad för det brus som rymdsonden utsattes för (som ungefär motsvarade en klockkurva), och den infördes för Mariner-rymdfarkosten och användes vid uppdrag mellan 1969 och 1977.
Uppdragen Voyager 1 och Voyager 2, som inleddes 1977, utformades för att leverera färgbilder och vetenskaplig information från Jupiter och Saturnus. Detta resulterade i ökade kodningskrav, och därför stöddes rymdfarkosterna av (optimalt Viterbi-dekodade) konvolutionskoder som kunde sammanlänkas med en yttre Golay-kod (24,12,8). Voyager 2-farkosten hade dessutom stöd för en implementering av en Reed-Solomon-kod. Den sammanlänkade Reed-Solomon-Viterbi-koden (RSV) möjliggjorde en mycket kraftfull felkorrigering och möjliggjorde rymdfarkostens långa resa till Uranus och Neptunus. Efter uppgraderingar av ECC-systemet 1989 använde båda farkosterna V2 RSV-kodning.
The Consultative Committee for Space Data Systems rekommenderar för närvarande användning av felkorrigeringskoder med liknande prestanda som Voyager 2 RSV-koden som ett minimum. Sammanlänkade koder faller alltmer i glömska vid rymduppdrag och ersätts av kraftfullare koder, t.ex. turbokoder eller LDPC-koder.
De olika typer av uppdrag i rymden och i omloppsbanor som genomförs tyder på att det kommer att vara ett ständigt pågående problem att försöka hitta ett system för felkorrigering som passar alla. För uppdrag nära jorden skiljer sig bruset i kommunikationskanalen från det brus som en rymdfarkost på ett interplanetärt uppdrag utsätts för. Dessutom blir problemet med att korrigera för brus svårare när en rymdfarkost ökar sitt avstånd från jorden.
SatellitsändningarRedigera
Efterfrågan på bandbredd för satellittranspondrar fortsätter att öka, vilket drivs av önskan att leverera tv (inklusive nya kanaler och högupplöst tv) och IP-data. Transpondertillgänglighet och bandbreddsbegränsningar har begränsat denna tillväxt. Transponderkapaciteten bestäms av det valda moduleringsschemat och den andel av kapaciteten som förbrukas av FEC.
DatalagringRedigera
Fejlupptäcknings- och korrigeringskoder används ofta för att förbättra tillförlitligheten hos datalagringsmedier. Ett paritetsspår som kan upptäcka enbitsfel fanns på den första datalagringen på magnetband 1951. Den optimala rektangulära koden som används i gruppkodade inspelningsband upptäcker inte bara utan korrigerar även enbitsfel. Vissa filformat, särskilt arkivformat, innehåller en kontrollsumma (oftast CRC32) för att upptäcka korruption och avkortning och kan använda redundans eller paritetsfiler för att återställa delar av skadade data. Reed-Solomon-koder används i cd-skivor för att korrigera fel som orsakas av repor.
Moderna hårddiskar använder CRC-koder för att upptäcka och Reed-Solomon-koder för att korrigera mindre fel vid läsning av sektorer, och för att återskapa data från sektorer som har ”gått sönder” och lagra dessa data i reservsektorerna. RAID-system använder en mängd olika felkorrigeringstekniker för att korrigera fel när en hårddisk helt går sönder. Filsystem som ZFS eller Btrfs, liksom vissa RAID-implementationer, har stöd för dataskrubbning och resilvering, vilket gör att dåliga block kan upptäckas och (förhoppningsvis) återställas innan de används. De återställda uppgifterna kan skrivas om till exakt samma fysiska plats, till reservblock någon annanstans på samma hårdvara, eller så kan uppgifterna skrivas om på ersättningshårdvara.
Felkorrigerande minneRedigera
DRAM-minne kan ge starkare skydd mot mjuka fel genom att förlita sig på felkorrigerande koder. Sådana felkorrigerande minnen, så kallade ECC- eller EDAC-skyddade minnen, är särskilt önskvärda för uppdragskritiska tillämpningar, t.ex. vetenskapliga beräkningar, finansiella, medicinska etc. samt för tillämpningar i rymden på grund av den ökade strålningen i rymden.
Felkorrigerande minneskontroller använder traditionellt Hammingkoder, även om vissa använder tredubbel modulär redundans.
Interleaving gör det möjligt att fördela effekten av en enda kosmisk stråle som potentiellt kan rubba flera fysiskt angränsande bitar över flera ord genom att angränsande bitar associeras till olika ord. Så länge som en enskild händelse inte överskrider feltröskeln (t.ex. ett enskilt fel) i ett visst ord mellan åtkomsterna kan den korrigeras (t.ex. av en felkorrigerande kod med en enda bit), och illusionen av ett felfritt minnessystem kan upprätthållas.
Förutom hårdvaran som tillhandahåller de funktioner som krävs för att ECC-minnet ska kunna fungera innehåller operativsystemen vanligen relaterade rapporteringsmöjligheter som används för att ge meddelanden när mjuka fel återställs på ett transparent sätt. En ökande frekvens av mjuka fel kan tyda på att en DIMM-modul behöver bytas ut, och sådan återkopplingsinformation skulle inte vara lätt tillgänglig utan de relaterade rapporteringsfunktionerna. Ett exempel är Linuxkärnans EDAC-subsystem (tidigare känt som Bluesmoke), som samlar in data från felkontrollaktiverade komponenter i ett datorsystem. Förutom att samla in och rapportera tillbaka händelser relaterade till ECC-minne stödjer det även andra kontrollsummafel, inklusive de som upptäcks på PCI-bussen.
Ett fåtal system har även stöd för memory scrubbing.