Cunoaște Intuit, lectura, dezvoltarea de dispozitive digitale simple,
Dezvoltarea de control Calculator
Diverse checksums sunt utilizate pe scară largă în dispozitive și sisteme digitale pentru controlul corectitudinii stocării sau transmiterii datelor. Esența acestei metode de control este simplu: la matrice de date stocate sau transmise se alătură unui cod de control mic (de obicei între 1 și descărcare de până la 32 de cifre), care rulată conține informații despre întreaga matrice. La citirea sau primirea matrice calculat din nou același cod de verificare în același algoritm. Dacă acest cod de re-calculat este egal cu codul care a fost atașat la matrice, se presupune că matricea este stocată sau transmisă fără erori. Logica este după cum urmează: cod de verificare (de asemenea, cunoscut ca un control) este matrice mult mai puțin controlată, astfel încât probabilitatea de control distorsiunea este mult mai mică decât probabilitatea de o serie de distorsiune. În cazul în care, cu toate acestea, va fi distorsionată ca o matrice, și o sumă de control, probabilitatea ca aceste distorsiuni nu va fi văzut la suma de control renumărare este extrem de mic. Există, cu toate acestea, probabilitatea ca matrice va fi distorsionată în mai multe locuri, astfel încât suma de control a acestei distorsiuni nu se schimba, dar probabilitatea este, de asemenea, în general, scăzută.
Checksums sunt utilizate pentru stocarea datelor în memorie (RAM și constantă), stocarea datelor pe suport magnetic (discuri, benzi) în rețelele locale și globale transmite informații. În cazul sumei de control de protecție a informațiilor stocate poate fi stabilit că (sectorul de fișiere de pe disc) matrice este rupt și nu poate fi utilizat. În caz de control de protecție a informațiilor transmise de la receptor poate solicita retransmiterea matrice transmițător distorsionat.
Există mai multe moduri de a calcula suma de control, grade de complexitate de fiabilitate și de detectare a erorilor de calcul diferite. Dar cele mai utilizate pe scară largă în prezent, așa-numita „metodă de control ciclic redundanță“, sau CRC (Cyclic Redundancy Verificarea), în care suma de control ciclic aplicat.
control Cyclic se calculează după cum urmează. Întregul corp de informație este privit ca un număr binar N-biți singur, unde N - numărul de biți în toți biții de matrice. Pentru a calcula suma de control este un număr N-bit este împărțit printr-un număr constant (polinomial) selectat într-un mod special (dar nu numai divizat și modulo 2). Coeficientul acestei împărțiri este îndepărtat și reziduul a fost utilizat doar ca un control.
Nu vom intra în baza matematică a metodei. Cititorii interesați pot referi la literatura de specialitate. Aici observăm doar că această metodă detectează erori singulare în matrice, cu o probabilitate de 100%, precum și orice alt număr de erori, cu o probabilitate de aproximativ 1-2 -n. unde n - numărul de biți checksum (acest lucru este valabil numai în condițiile în care N este mult mai mare decât n care, cu toate acestea, se realizează aproape întotdeauna.). De exemplu, când n = 8, această probabilitate este 0.996 pentru n = 16, va fi egal cu 0.999985, iar pentru n = 32 se va 0.9999999997672. Cu alte cuvinte, sunt detectate aproape toate erorile.
Acum, explica pe scurt ce modulo 2. matrice Fie (secvența de biți) este după cum urmează: 101 111 001 110 (pentru simplitate, vom lua un pic). Numărul prin care ponderea (de obicei, numit generator de polinomul) 10011. Cum să-l ia ales? Acesta trebuie să fie divizibil modulo 2, fără un rest numai de către unul și în sine (adică, acesta trebuie să fie simplu, în ceea ce privește numărul modulo 2). polinom Bit este luat de unul mai mare decât suma de control bit necesar (restul de divizare). Deci, ca să se obțină un rest de 8 biți (8 biți de control), trebuie să luați un polinom de 9 biți. În acest caz, de 5 biți polinomială, prin urmare, reziduul este de 4 biți. Pentru 8 biți de reziduuri pot fi utilizate, de exemplu, polinomul 1 0001 sau 1101 11d în cod 16-ary.
Modulo 2 se face în același mod ca de obicei pentru noi să împartă „în coloana“ (fig. 14,6), dar în loc de scădere, în acest caz, un bitwise modulo-2, adică, fiecare bit rezultat este o funcție a SAU exclusiv al respectivului termeni de biți. Coeficientul de nici un interes pentru noi, iar restul, egal în exemplul nostru 1000 pentru suma de control ciclic.
Fig. 14.6. Calculul sumei de control ciclic
Cum să pună în aplicare, practic, calculul reziduului (CRC)? O puteți face pe principiul dat aici diviziune lung (hardware sau software). Dar, în orice caz, este destul de greoaie și lent. Pentru a accelera procesul de calcul posibile folosind metoda tabelară. În acest scop, un tabel de dimensiune 2 n numere xn. în cazul în care n - biți de control. Principiul de calcul a numerelor din tabel este foarte simplu (tab. 14.1).
Tabelul 14.1. Metoda tabulară de calcul al sumei de control al ciclic
Datele din tabel (număr)
Fig. 14.7. Paralel calculator 8 biți de control ciclic în ROM
Pentru multi-bit de control utilizat din ce în ce o abordare diferită - calcularea unui cod secvențial, în care matricea de date este furnizat unui calculator succesiv, puțin câte puțin. calculator de control Serial este un registru de deplasare cu feedback-ul de la unele din biți prin sumatoarele modulo 2 (adică, elemente XOR). Numărul total de biți din registrul de deplasare trebuie să fie egală cu suma de control biți calculat (sau, echivalent, să fie una mai mică decât lungimea cuvântul polinomului utilizat). Includerea feedback-ul este unic determinat de un polinom selectat. Acest lucru este foarte similar cu generatorul de secvență cvasi-aleatoare.
Feedback-ul Numărul de puncte definite de numărul de unități din polinomul de comutare (o unitate în cel mai puțin important este ignorat) și numărul de biți din registrul de deplasare, din care se iau semnalele de feedback sunt determinate de numărul de biți unice în codul polinomial. Spre deosebire de generator de semnal cvasi-aleatoare, în acest caz, este necesar să se amestece pentru o exclusiv sau nu va funcționa numai semnale de feedback, dar, de asemenea, semnal de date de intrare în codul secvențial.
Fig. 14.8. Serial Calculator de 16-biți schimbare ciclică de control pentru a înregistra
Fig. 14.8 este un exemplu de calculator secvențial 16 biți de control ciclic la un polinom selectat 1 0001 0000 0010 0001 11021 sau în 16-ary cod (re-to-men-TION da CCITT V.41). Deoarece codul polinomul trei unități (fără LSB), este necesar să se ia o perioadă de trei puncte incluziuni de feedback. Când acest număr de biți din registrul de deplasare la care sunt conectate feedback, determinată de poziția de biți individuali în polinomului. Înainte de registru de deplasare de lucru trebuie să fie resetat la (semnal de „-Resets“) la zero. Biți trebuie să fie însoțită de o serie de semnal stroboscop. După închiderea matrice va înregistra un control ciclic.
Se poate părea că un astfel de calculator de serie nu este foarte convenabil, din cauza faptului că datele din matrice trebuie să fie prezentat în codul secvențial. Cu toate acestea, este un cod de serie de date în rețelele de informații transmise, în datele de cod secvențiale înregistrate pe suportul magnetic. Prin urmare, în toate aceste cazuri, calculatoare de serie sunt ideale.
Intrare biți Perioada matrice pe un calculator de serie, nu trebuie să fie mai mică decât suma elementelor de întârziere ale registrului de deplasare și exclusive sau. Ca urmare, limita de viteză de calcul de control ciclic este considerabil mai mică decât în cazul unui calculator paralel. Este, de asemenea, un dezavantaj al acestei metode de calcul.