Hibaérzékelés és -javítás

dec 28, 2021
admin

Az alacsony késleltetést igénylő alkalmazások (például telefonbeszélgetések) nem használhatják az automatikus ismételt kérést (ARQ), hanem az előremenő hibajavítást (FEC). Mire az ARQ rendszer felfedezi a hibát és újra továbbítja azt, az újra küldött adat már túl későn érkezik meg ahhoz, hogy használható legyen.

Azok az alkalmazások, ahol az adó azonnal elfelejti az információt, amint azt elküldték (például a legtöbb televíziós kamera), nem használhatják az ARQ-t; ezeknél FEC-et kell használni, mert hiba esetén az eredeti adat már nem áll rendelkezésre.

Az ARQ-t használó alkalmazásoknak rendelkezniük kell visszatérő csatornával; a visszatérő csatornával nem rendelkező alkalmazások nem használhatják az ARQ-t.

A rendkívül alacsony hibaarányt igénylő alkalmazásoknak (például a digitális pénzátutalások) ARQ-t kell használniuk, mivel FEC esetén a hibák nem javíthatók.

A megbízhatóság és az ellenőrző mérnökség is használja a hibajavító kódok elméletét.

InternetEdit

Egy tipikus TCP/IP stackben a hibakontroll több szinten történik:

  • Minden Ethernet keret CRC-32 hibafelismerést használ. Az észlelt hibás kereteket a vevő hardvere elveti.
  • Az IPv4 fejléc tartalmaz egy ellenőrző összeget, amely a fejléc tartalmát védi. A hibás ellenőrzőösszeggel rendelkező csomagokat a hálózaton belül vagy a vevőnél eldobják.
  • Az IPv6 fejlécéből kihagyták az ellenőrzőösszeget, hogy minimalizálják a hálózati útválasztás feldolgozási költségeit, és mert a jelenlegi kapcsolati réteg technológiájáról feltételezik, hogy elegendő hibafelismerést biztosít (lásd még RFC 3819).
  • Az UDP-nek opcionális ellenőrzőösszege van, amely az UDP és IP fejlécekben lévő hasznos terhet és címzési információt fedezi. A hibás ellenőrző összeggel rendelkező csomagokat a hálózati verem elveti. Az ellenőrző összeg az IPv4 alatt opcionális, az IPv6 alatt pedig kötelező. Ha elhagyja, akkor feltételezzük, hogy az adatkapcsolati réteg biztosítja a kívánt szintű hibavédelmet.
  • A TCP ellenőrző összeggel védi a TCP és IP fejlécekben lévő hasznos terhelést és címzési információkat. A hibás ellenőrzőösszeggel rendelkező csomagokat a hálózati verem elveti, és végül ARQ segítségével újraküldi, vagy explicit módon (például triple-ack révén), vagy implicit módon egy időkorlát miatt.

Mélyűri távközlésSzerkesztés

A hibajavító kódok kifejlesztése szorosan kapcsolódott a mélyűri küldetések történetéhez, a bolygóközi távolságokon a jel teljesítményének rendkívüli hígulása és az űrszondák fedélzetén rendelkezésre álló korlátozott energia miatt. Míg a korai küldetések kódolatlanul küldték adataikat, 1968-tól kezdve a digitális hibajavítást (szuboptimálisan dekódolt) konvolúciós kódok és Reed-Muller-kódok formájában valósították meg. A Reed-Muller-kód jól megfelelt annak a zajnak, amelynek az űrszonda ki volt téve (nagyjából megfelelt egy haranggörbének), és a Mariner űrszonda számára valósították meg, majd 1969 és 1977 közötti küldetéseken használták.

A Voyager 1 és Voyager 2 küldetések, amelyek 1977-ben indultak, színes képeket és tudományos információkat hivatottak szállítani a Jupiterről és a Szaturnuszról. Ez megnövekedett kódolási követelményeket eredményezett, ezért az űrhajókat (optimálisan Viterbi-dekódolt) konvolúciós kódokkal támogatták, amelyeket egy külső Golay (24,12,8) kóddal lehetett összekapcsolni. A Voyager 2 űrhajó emellett egy Reed-Solomon kód implementációját is támogatta. Az összekapcsolt Reed-Solomon-Viterbi (RSV) kód nagyon hatékony hibajavítást tett lehetővé, és lehetővé tette az űrszonda meghosszabbított útját az Uránusz és a Neptunusz felé. Az ECC rendszer 1989-es frissítése után mindkét űrhajó a V2 RSV kódolást használta.

A Consultative Committee for Space Data Systems jelenleg legalább a Voyager 2 RSV kódjához hasonló teljesítményű hibajavító kódok használatát ajánlja. Az összekapcsolt kódok egyre inkább kiesnek az űrmissziók népszerűségéből, és helyükre olyan nagyobb teljesítményű kódok lépnek, mint a turbókódok vagy az LDPC-kódok.

A különböző típusú mélyűr- és orbitális küldetések azt sugallják, hogy a mindenre egyformán alkalmas hibajavító rendszer megtalálása folyamatos probléma lesz. A Földhöz közeli küldetések esetében a kommunikációs csatorna zajának természete különbözik attól, amit egy bolygóközi küldetésen lévő űrhajó tapasztal. Ráadásul, ahogy egy űreszköz távolsága nő a Földtől, úgy válik egyre nehezebbé a zajkorrekció problémája.

Műholdas műsorszórásSzerkesztés

A műholdas transzponder sávszélesség iránti igény tovább növekszik, amit a televíziózás (beleértve az új csatornákat és a nagy felbontású televíziózást) és az IP-adatok szolgáltatásának igénye táplál. A transzponderek elérhetősége és a sávszélesség korlátai korlátozzák ezt a növekedést. A transzponder kapacitását a kiválasztott modulációs séma és a FEC által felhasznált kapacitás aránya határozza meg.

AdattárolásSzerkesztés

A hibadetektáló és -javító kódokat gyakran használják az adattároló adathordozók megbízhatóságának javítására. Az első mágnesszalagos adattárolón 1951-ben volt jelen az egybites hibák felismerésére alkalmas paritási sáv. A csoportkódolt rögzítőszalagokon használt optimális téglalap alakú kód nemcsak észleli, hanem korrigálja is az egybites hibákat. Egyes fájlformátumok, különösen az archívumformátumok, tartalmaznak ellenőrző összeget (leggyakrabban CRC32) a sérülések és csonkítások észlelésére, és redundanciát vagy paritásfájlokat alkalmazhatnak a sérült adatok egyes részeinek helyreállítására. A Reed-Solomon-kódokat a kompakt lemezeken a karcolások okozta hibák kijavítására használják.

A modern merevlemezek CRC-kódokat használnak a szektorolvasás kisebb hibáinak észlelésére, a Reed-Solomon-kódokat pedig a szektorolvasás kisebb hibáinak kijavítására, valamint a “megromlott” szektorokból történő adatmentésre, és az adatok tárolására a tartalék szektorokban. A RAID-rendszerek különböző hibajavítási technikákat használnak a merevlemez teljes meghibásodása esetén fellépő hibák kijavítására. Az olyan fájlrendszerek, mint a ZFS vagy a Btrfs, valamint egyes RAID implementációk támogatják az adatsúrolást és a resilveringet, ami lehetővé teszi a rossz blokkok felismerését és (remélhetőleg) helyreállítását, mielőtt azok felhasználásra kerülnének. A helyreállított adatok újraírhatók pontosan ugyanarra a fizikai helyre, ugyanazon a hardveren máshol lévő tartalék blokkokra, vagy az adatok újraírhatók a helyettesítő hardverre.

Hibajavító memóriaSzerkesztés

Főcikk: ECC-memória

A DDRAM-memória hibajavító kódokra támaszkodva erősebb védelmet nyújthat a puha hibák ellen. Az ilyen hibajavító memória, amely ECC vagy EDAC-védett memóriaként ismert, különösen kívánatos a küldetéskritikus alkalmazásokban, például a tudományos számítástechnikában, a pénzügyi, orvosi stb. alkalmazásokban, valamint a mélyűri alkalmazásokban az űrben megnövekedett sugárzás miatt.

A hibajavító memóriavezérlők hagyományosan Hamming-kódokat használnak, bár egyesek háromszoros moduláris redundanciát alkalmaznak.

Az interleaving lehetővé teszi, hogy egyetlen kozmikus sugárzás több, fizikailag szomszédos bitet esetlegesen felborító hatását több szóra osszák el azáltal, hogy a szomszédos biteket különböző szavakhoz rendelik. Mindaddig, amíg az egyes szavakhoz való hozzáférések között az egyetlen esemény okozta zavar (SEU) nem haladja meg a hibaküszöböt (pl. egyetlen hiba), a hiba korrigálható (pl. egyetlen bites hibajavító kóddal), és a hibamentes memóriarendszer illúziója megőrizhető.

Az ECC-memória működéséhez szükséges funkciókat biztosító hardver mellett az operációs rendszerek általában tartalmaznak kapcsolódó jelentési lehetőségeket, amelyek segítségével értesítést kapunk, ha a puha hibák átláthatóan helyreállnak. A puha hibák növekvő aránya jelezheti, hogy egy DIMM-modul cserére szorul, és az ilyen visszajelző információk nem lennének könnyen elérhetők a kapcsolódó jelentési lehetőségek nélkül. Erre példa a Linux kernel EDAC alrendszere (korábbi nevén Bluesmoke), amely összegyűjti a számítógépes rendszeren belüli hibaellenőrzésre képes komponensek adatait; az ECC memóriával kapcsolatos események összegyűjtésén és visszajelzésén kívül más ellenőrző összegzéses hibákat is támogat, beleértve a PCI buszon észlelteket is.

Néhány rendszer támogatja a memória súrolását is.

A memória súrolását is támogatja.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.