Detectarea și corectarea erorilor

dec. 28, 2021
admin

Aplicațiile care necesită o latență redusă (cum ar fi conversațiile telefonice) nu pot utiliza cererea de repetare automată (ARQ); acestea trebuie să utilizeze corecția erorilor înainte (FEC). În momentul în care un sistem ARQ descoperă o eroare și o retransmite, datele retrimise vor ajunge prea târziu pentru a fi utilizabile.

Aplicațiile în care emițătorul uită imediat informația imediat ce este trimisă (cum ar fi majoritatea camerelor de televiziune) nu pot utiliza ARQ; ele trebuie să utilizeze FEC deoarece, atunci când apare o eroare, datele originale nu mai sunt disponibile.

Aplicațiile care utilizează ARQ trebuie să aibă un canal de retur; aplicațiile care nu au un canal de retur nu pot utiliza ARQ.

Aplicațiile care necesită rate de eroare extrem de scăzute (cum ar fi transferurile digitale de bani) trebuie să utilizeze ARQ din cauza posibilității de erori necorectabile cu FEC.

Ingineria fiabilității și a inspecției utilizează, de asemenea, teoria codurilor de corecție a erorilor.

InternetEdit

Într-o stivă TCP/IP tipică, controlul erorilor se realizează la mai multe niveluri:

  • Care cadru Ethernet utilizează detectarea erorilor CRC-32. Tramele cu erori detectate sunt eliminate de hardware-ul receptorului.
  • În antetul IPv4 conține o sumă de control care protejează conținutul antetului. Pachetele cu sume de control incorecte sunt abandonate în rețea sau la receptor.
  • Suma de control a fost omisă din antetul IPv6 pentru a minimiza costurile de procesare în rutarea rețelei și pentru că se presupune că tehnologia actuală a stratului de legătură asigură o detectare suficientă a erorilor (a se vedea, de asemenea, RFC 3819).
  • UDP are o sumă de control opțională care acoperă sarcina utilă și informațiile de adresare din anteturile UDP și IP. Pachetele cu sume de control incorecte sunt aruncate de către stiva de rețea. Suma de control este opțională în cadrul IPv4 și obligatorie în cadrul IPv6. Atunci când este omisă, se presupune că stratul de legătură de date asigură nivelul dorit de protecție împotriva erorilor.
  • TCP oferă o sumă de control pentru protejarea sarcinii utile și a informațiilor de adresare din antetele TCP și IP. Pachetele cu sume de control incorecte sunt eliminate de către stiva de rețea și, în cele din urmă, sunt retransmise folosind ARQ, fie în mod explicit (cum ar fi prin triple-ack), fie în mod implicit datorită unui timeout.

Telecomunicații în spațiul cosmicEdit

Dezvoltarea codurilor de corecție a erorilor a fost strâns legată de istoria misiunilor în spațiul cosmic datorită diluării extreme a puterii semnalului pe distanțe interplanetare și a disponibilității limitate de energie la bordul sondelor spațiale. În timp ce primele misiuni își trimiteau datele necodificate, începând cu 1968, corecția digitală a erorilor a fost implementată sub forma codurilor convoluționale (cu decodare suboptimală) și a codurilor Reed-Muller. Codul Reed-Muller a fost bine adaptat la zgomotul la care era supusă nava spațială (corespunzând aproximativ unei curbe în formă de clopot) și a fost implementat pentru nava spațială Mariner și utilizat în misiunile dintre 1969 și 1977.

Misiunile Voyager 1 și Voyager 2, care au început în 1977, au fost concepute pentru a furniza imagini color și informații științifice de pe Jupiter și Saturn. Acest lucru a dus la creșterea cerințelor de codificare și, astfel, navele spațiale au fost susținute de coduri convoluționale (cu decodare Viterbi optimă) care puteau fi concatenate cu un cod Golay (24,12,8) exterior. Nava Voyager 2 a susținut, în plus, o implementare a unui cod Reed-Solomon. Codul concatenat Reed-Solomon-Viterbi (RSV) a permis o corecție a erorilor foarte puternică și a permis călătoria extinsă a navei spațiale către Uranus și Neptun. După modernizarea sistemului ECC în 1989, ambele nave au folosit codificarea V2 RSV.

Comitetul Consultativ pentru Sisteme de Date Spațiale recomandă în prezent utilizarea codurilor de corecție a erorilor cu performanțe similare codului RSV al Voyager 2, ca un minim. Codurile concatenate cad din ce în ce mai mult în dizgrația misiunilor spațiale și sunt înlocuite de coduri mai puternice, cum ar fi codurile Turbo sau codurile LDPC.

Diferitele tipuri de misiuni spațiale și orbitale de mare adâncime care sunt efectuate sugerează că încercarea de a găsi un sistem de corecție a erorilor de tip „one-size-fits-all” va fi o problemă permanentă. Pentru misiunile în apropierea Pământului, natura zgomotului din canalul de comunicație este diferită de cea pe care o experimentează o navă spațială într-o misiune interplanetară. În plus, pe măsură ce o navă spațială își mărește distanța față de Pământ, problema corectării zgomotului devine mai dificilă.

Radiodifuziune prin satelitEdit

Cercetarea lățimii de bandă a transponderului de satelit continuă să crească, alimentată de dorința de a furniza televiziune (inclusiv canale noi și televiziune de înaltă definiție) și date IP. Disponibilitatea transponderului și constrângerile privind lățimea de bandă au limitat această creștere. Capacitatea transponderului este determinată de schema de modulație selectată și de proporția de capacitate consumată de FEC.

Stocarea datelorEdit

Codurile de detectare și corecție a erorilor sunt adesea utilizate pentru a îmbunătăți fiabilitatea mediilor de stocare a datelor. O pistă de paritate capabilă să detecteze erori pe un singur bit a fost prezentă pe prima bandă magnetică de stocare a datelor în 1951. Codul dreptunghiular optim utilizat în benzile de înregistrare cu coduri de grup nu numai că detectează, dar și corectează erorile pe un singur bit. Unele formate de fișiere, în special cele de arhivă, includ o sumă de control (cel mai adesea CRC32) pentru a detecta corupția și trunchierea și pot utiliza fișiere de redundanță sau de paritate pentru a recupera porțiuni de date corupte. Codurile Reed-Solomon sunt utilizate în compact discuri pentru a corecta erorile cauzate de zgârieturi.

Dispozitivele hard disk moderne utilizează codurile CRC pentru a detecta și codurile Reed-Solomon pentru a corecta erorile minore în citirea sectoarelor și pentru a recupera datele din sectoarele care au „mers prost” și a stoca aceste date în sectoarele de rezervă. Sistemele RAID utilizează o varietate de tehnici de corecție a erorilor pentru a corecta erorile atunci când un hard disk cedează complet. Sistemele de fișiere, cum ar fi ZFS sau Btrfs, precum și unele implementări RAID, acceptă spălarea datelor și resilverizarea, ceea ce permite detectarea și (sperăm) recuperarea blocurilor defecte înainte ca acestea să fie utilizate. Datele recuperate pot fi rescrise exact în aceeași locație fizică, în blocuri de rezervă în altă parte pe aceeași bucată de hardware, sau datele pot fi rescrise pe hardware de înlocuire.

Memorie de corecție a erorilorEdit

Articolul principal: Memorie ECC

Memoria DRAM poate oferi o protecție mai puternică împotriva erorilor soft, bazându-se pe coduri de corectare a erorilor. O astfel de memorie cu corectare a erorilor, cunoscută sub denumirea de memorie protejată ECC sau EDAC, este de dorit în special pentru aplicațiile critice pentru misiuni, cum ar fi calculul științific, financiar, medical etc., precum și pentru aplicațiile din spațiul cosmic, din cauza radiațiilor crescute din spațiu.

Controlerele de memorie cu corectare a erorilor folosesc în mod tradițional coduri Hamming, deși unele folosesc tripla redundanță modulară.

Interleaving permite distribuirea efectului unei singure raze cosmice care ar putea perturba mai mulți biți vecini din punct de vedere fizic pe mai multe cuvinte prin asocierea biților vecini la cuvinte diferite. Atâta timp cât un singur eveniment perturbator (SEU) nu depășește pragul de eroare (de exemplu, o singură eroare) într-un anumit cuvânt între două accesări, acesta poate fi corectat (de exemplu, printr-un cod de corectare a erorilor pe un singur bit), iar iluzia unui sistem de memorie fără erori poate fi menținută.

În plus față de hardware-ul care oferă caracteristicile necesare pentru ca memoria ECC să funcționeze, sistemele de operare conțin, de obicei, facilități de raportare aferente care sunt utilizate pentru a furniza notificări atunci când erorile soft sunt recuperate în mod transparent. O rată din ce în ce mai mare de erori soft ar putea indica faptul că un modul DIMM trebuie înlocuit, iar astfel de informații de feedback nu ar fi ușor de obținut fără capacitățile de raportare aferente. Un exemplu este subsistemul EDAC al kernelului Linux (cunoscut anterior sub numele de Bluesmoke), care colectează datele de la componentele cu funcție de verificare a erorilor din interiorul unui sistem informatic; pe lângă colectarea și raportarea evenimentelor legate de memoria ECC, acesta suportă și alte erori de verificare a sumelor, inclusiv cele detectate pe magistrala PCI.

Câteva sisteme suportă, de asemenea, memory scrubbing.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.