Detekce a oprava chyb

Pro 28, 2021
admin

Aplikace, které vyžadují nízkou latenci (například telefonní hovory), nemohou používat automatické opakování požadavku (ARQ); musí používat dopřednou opravu chyb (FEC). V době, kdy systém ARQ objeví chybu a znovu ji odešle, přijdou znovu odeslaná data příliš pozdě na to, aby byla použitelná.

Aplikace, kde vysílač okamžitě zapomene informace, jakmile jsou odeslány (například většina televizních kamer), nemohou používat ARQ; musí používat FEC, protože když dojde k chybě, původní data již nejsou k dispozici.

Aplikace, které používají ARQ, musí mít zpětný kanál; aplikace, které nemají zpětný kanál, nemohou používat ARQ.

Aplikace, které vyžadují extrémně nízkou chybovost (například digitální přenosy peněz), musí používat ARQ kvůli možnosti neopravitelných chyb s FEC.

Teorii kódů opravujících chyby využívá také spolehlivost a inspekční inženýrství.

InternetEdit

V typickém zásobníku TCP/IP se kontrola chyb provádí na několika úrovních:

  • Každý rámec Ethernetu používá detekci chyb CRC-32.
    • Každý rámec Ethernetu používá detekci chyb. Rámce s detekovanými chybami jsou hardwarem příjemce zahozeny.
    • Záhlaví protokolu IPv4 obsahuje kontrolní součet chránící obsah záhlaví. Pakety s chybnými kontrolními součty jsou v síti nebo u příjemce zahozeny.
    • Kontrolní součet byl ze záhlaví IPv6 vypuštěn, aby se minimalizovaly náklady na zpracování při směrování v síti a protože se předpokládá, že současná technologie linkové vrstvy poskytuje dostatečnou detekci chyb (viz také RFC 3819).
    • UDP má volitelný kontrolní součet pokrývající užitečné zatížení a adresní informace v záhlaví UDP a IP. Pakety s nesprávnými kontrolními součty jsou síťovým zásobníkem zahozeny. Kontrolní součet je nepovinný v protokolu IPv4 a povinný v protokolu IPv6. Pokud je vynechán, předpokládá se, že vrstva datového spoje poskytuje požadovanou úroveň ochrany proti chybám.
    • TCP poskytuje kontrolní součet pro ochranu užitečného zatížení a adresních informací v hlavičkách TCP a IP. Pakety s nesprávnými kontrolními součty jsou síťovým zásobníkem zahozeny a nakonec jsou znovu přeneseny pomocí ARQ, a to buď explicitně (například prostřednictvím trojitého zpětného přenosu), nebo implicitně v důsledku časového limitu.

    Telekomunikace v hlubokém vesmíruEdit

    Vývoj kódů pro opravu chyb byl úzce spjat s historií misí do hlubokého vesmíru kvůli extrémnímu zředění výkonu signálu na meziplanetární vzdálenosti a omezené dostupnosti energie na palubě kosmických sond. Zatímco první mise posílaly svá data nekódovaně, od roku 1968 byla implementována digitální korekce chyb ve formě (suboptimálně dekódovaných) konvolučních kódů a Reed-Mullerových kódů. Reed-Mullerův kód dobře vyhovoval šumu, kterému byly sondy vystaveny (přibližně odpovídal zvonové křivce), a byl zaveden pro sondu Mariner a používán při misích v letech 1969-1977.

    Mise Voyager 1 a Voyager 2, které začaly v roce 1977, byly navrženy tak, aby poskytovaly barevné snímky a vědecké informace z Jupiteru a Saturnu. To vedlo ke zvýšeným požadavkům na kódování, a proto byly sondy podporovány (optimálně Viterbiho dekódovanými) konvolučními kódy, které mohly být spojeny s vnějším Golayovým kódem (24,12,8). Loď Voyager 2 navíc podporovala implementaci Reed-Solomonova kódu. Konkatenovaný Reed-Solomon-Viterbiho (RSV) kód umožňoval velmi výkonnou korekci chyb a umožnil prodlouženou cestu sondy k Uranu a Neptunu. Po modernizaci systému ECC v roce 1989 používaly obě lodě kódování V2 RSV.

    Konzultační výbor pro vesmírné datové systémy v současné době doporučuje používat minimálně kódy pro korekci chyb s výkonem podobným kódu RSV pro Voyager 2. Konkatenované kódy stále více upadají v nemilost u kosmických misí a jsou nahrazovány výkonnějšími kódy, jako jsou Turbo kódy nebo LDPC kódy.

    Různé druhy prováděných misí v hlubokém vesmíru a na oběžné dráze naznačují, že snaha najít univerzální systém korekce chyb bude trvalým problémem. U misí v blízkosti Země je povaha šumu v komunikačním kanálu jiná než u kosmické lodi na meziplanetární misi. Navíc s rostoucí vzdáleností kosmické lodi od Země se problém korekce šumu stává obtížnějším.

    Satelitní vysíláníEdit

    Poptávka po šířce pásma satelitních transpondérů stále roste, což je podpořeno snahou poskytovat televizní vysílání (včetně nových kanálů a televize s vysokým rozlišením) a IP data. Dostupnost transpondérů a omezení šířky pásma tento růst omezují. Kapacita transpondéru je dána zvoleným modulačním schématem a podílem kapacity spotřebované FEC.

    Ukládání datEdit

    Kódy pro detekci a opravu chyb se často používají ke zvýšení spolehlivosti médií pro ukládání dat. Paritní stopa schopná detekovat jednobitové chyby byla přítomna na prvním magnetickém páskovém úložišti dat v roce 1951. Optimální obdélníkový kód používaný ve skupinově kódovaných záznamových páskách nejen detekuje, ale také opravuje jednobitové chyby. Některé formáty souborů, zejména archivní formáty, obsahují kontrolní součet (nejčastěji CRC32) pro detekci poškození a zkrácení a mohou využívat redundanci nebo paritní soubory pro obnovu částí poškozených dat. Kódy Reed-Solomon se používají u kompaktních disků k opravě chyb způsobených poškrábáním.

    Moderní pevné disky používají kódy CRC k detekci a kódy Reed-Solomon k opravě drobných chyb při čtení sektorů a k obnově dat ze sektorů, které se „pokazily“, a ukládají tato data do náhradních sektorů. Systémy RAID používají různé techniky korekce chyb k opravě chyb při úplném selhání pevného disku. Souborové systémy, jako je ZFS nebo Btrfs, a některé implementace RAID podporují čištění dat a opětovné stříbření, což umožňuje detekovat chybné bloky a (doufejme) je obnovit před jejich použitím. Obnovená data mohou být přepsána na přesně stejné fyzické místo, na náhradní bloky jinde na stejném hardwaru nebo mohou být data přepsána na náhradní hardware.

    Paměť opravující chybyUpravit

    Hlavní článek: Paměť ECC

    PaměťDRAM může poskytovat silnější ochranu proti měkkým chybám tím, že se spoléhá na kódy opravující chyby. Taková paměť s opravou chyb, známá jako ECC nebo paměť s ochranou EDAC, je zvláště žádoucí pro kritické aplikace, jako jsou vědecké výpočty, finanční, lékařské atd. a také pro aplikace v hlubokém vesmíru kvůli zvýšené radiaci ve vesmíru.

    Řadiče pamětí s opravou chyb tradičně používají Hammingovy kódy, ačkoli některé používají trojnásobnou modulární redundanci.

    Prokládání umožňuje rozložit účinek jediného kosmického záření potenciálně narušujícího více fyzicky sousedících bitů na více slov přiřazením sousedních bitů k různým slovům. Dokud narušení jedinou událostí (SEU) nepřekročí práh chybovosti (např. jediná chyba) v některém konkrétním slově mezi přístupy, může být opraveno (např. jednobitovým kódem pro opravu chyb) a může být zachována iluze bezchybného paměťového systému.

    Kromě hardwaru poskytujícího funkce potřebné pro fungování paměti ECC obsahují operační systémy obvykle související prostředky pro hlášení, které se používají k poskytování oznámení při transparentní obnově měkkých chyb. Zvyšující se počet měkkých chyb může naznačovat, že modul DIMM je třeba vyměnit, a taková zpětná informace by bez souvisejících možností hlášení nebyla snadno dostupná. Jedním z příkladů je subsystém EDAC linuxového jádra (dříve známý jako Bluesmoke), který shromažďuje data z komponent podporujících kontrolu chyb uvnitř počítačového systému; kromě shromažďování a zpětného hlášení událostí souvisejících s pamětí ECC podporuje také další chyby s kontrolním součtem, včetně chyb zjištěných na sběrnici PCI.

    Několik systémů také podporuje čištění paměti

    .

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.