La presentazione del progetto - Home Page
Transcript
La presentazione del progetto - Home Page
Sistemi Elettronici Sicuri Rilevamento degli errori nei sistemi di elaborazione digitali ... v. 1.4c Massimo Manara - Luca Uberti Foppa ... Università degli Studi di Milano Indice generale I Concetti generali I Tipi di ridondanza Ridondanza d'informazione Ridondanza di componenti Ridondanza temporale Obiettivi Ridondanza . Informazione ↓ & Componenti Temporale 3/48 Obiettivi Ridondanza . ↓ & Informazione Componenti Temporale ↓ ↓ ↓ Parità Checksum CRC Hamming M su N Aritmetici Duplic. e confronto Duale RESO Timers 3/48 Concetti generali • Codica: trasformazione di un certo dato in una codeword • Decodica: data una codeword ricevuta restituisce i dati • Tasso di informazione: k n • Distanza di Hamming: x, y ∈ {0, 1}∗ . δ( x, y): numero di bit dierenti tra le due tuple x = 0011, y = 0101: δ = ( x, y) = 2. • MTTF (Mean Time To Failure) MTTF = ∞ Z R(t)dt. 0 4/48 Approcci al trattamento dei guasti • Fault avoidance: evitare i guasti Componenti ad alta adabilità Progettazione accurata • Fault tolerance: tolleranza ai guasti Informazione aggiuntiva Tre modalità (informazione, componenti, temporale) 5/48 Indice Concetti generali Tipi di ridondanza I Ridondanza d'informazione - Parità; Checksum; CRC; Codici di Hamming; M su N; Codici aritmetici Ridondanza di componenti Ridondanza temporale 6/48 Ridondanza d'informazione • Codici separabili e non separabili • Codici di controllo ovvero bit di parità • Codica e decodica dei dati: codeword 7/48 Codici di parità (parity checking) • Bit ulteriore alla word nel processo di codica • Introdotto come controllo nelle memorie/archiviazione [DSMT78] • Controllo della parità Numero pari di '1' nella word: parità pari , altrimenti dispari [Sho02, pag. 35] Diversi approcci ∗ Semplice ∗ Bit per byte ∗ Intrecciata 8/48 Parità semplice • Word con '1' in numero pari: codice di parità pari. p = 0 • Altrimenti p = 1 9/48 Parità bit per byte • Un bit di parità per ogni byte • Alternando parità pari e dispari • Ciò aumenta la copertura degli errori 10/48 Parità intrecciata • Sulla word di dimensione b è calcolata la parità • Ogni bit di parità è associato ad un proprio gruppo di b/l bit • Distanza tra i bit di parità: l 11/48 Esempio circuito parità semplice (1/2) • Calcolo del bit di parità (XOR) • Codeword: dati più bit di parità 12/48 Esempio circuito parità semplice (2/2) • È vericata la correttezza del messaggio • Uscita '1' in caso di errore • Per la parità dispari: NOT sull'uscita 13/48 Vantaggi - Svantaggi Parità • Complessità circuitale: XOR • Tasso di informazione Parità semplice: 2% Parità bit per byte: 12% Parità intrecciata: 7% • Probabilità di non rilevare un errore: pue ≤ 2−(n−k) • pue modellata attraverso la distribuzione binomiale 9 2 B(2 : 9, q) = q ( 1 − q ) 9−2 . 2 14/48 Somma di controllo (Checksum) • Calcolo di un hash sul messaggio • Piccoli cambiamenti provocano hash diversi • Il confronto tra hash ricevuto e calcolato verica l'integrità 15/48 Somma di controllo - Precisione singola • Somma dei byte • È ignorato il resto nale • Dimensione checksum identica alla word ⇐ Dati ⇒ 2C 53 97 D4 Checksum EA B. B. B. B. 1 2 3 4 0 0 1 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 1 1 0 2C 53 97 D4 0 1 0 EA ⇓ CS 1 1 1 0 1 16/48 Somma di controllo - Precisione doppia • Ogni word di n-bit è sommato in una word di 2n-bit • Due classi di resto: principale e secondario. Ignorato resto della classe primaria • Dimensione checksum: 2 · |word| ⇐ Dati ⇒ 5A EF 24 ⇐ Checksum ⇒ C5 02 32 Byte Byte Byte Byte 1 2 3 4 5A EF 24 C5 1011010 11101111 100100 11000101 ⇓ Checksum calcolato Checksum calcolato hex 10 02 00110010 32 17/48 Somma di controllo - Honeywell • Ogni word di n-bit è sommato in una word di 2n-bit • Accoppiamento asimmetrico prima della somma, il resto è ignorato • Rilevazione di errori comuni su word dierenti ⇐ Dati ⇒ C3 FE DB ⇐ CS ⇒ B4 B2 9E B. B. B. B. 1 2 3 4 Correlazione CS CS hex C3 FE DB B4 11000011 11111110 11011011 10110100 ⇓ ⇓ FE B4 C3 DB ⇓ ⇓ 10110010 B2 10011110 9E 18/48 Vantaggi - Svantaggi Checksum • Complessità circuitale: sommatore bit a bit • Tasso di informazione Checksum singolo: 25% Checksum doppia parità: 50% Checksum honeywell: 50% • Probabilità di non rilevare un errore: pue ≤ 2−(n−k) • Checksum singolo: ignora il resto • Checksum doppia precisione/honeywell: due classi di resto • Checksum doppia precisione/honeywell: dimensione doppia rispetto alla word 19/48 Controllo di ridondanza ciclica - CRC • Proprietà dei polinomi binari nei campi binari niti • Implementazione via hardware semplice • r = n − k: k bit originali, n bit del codicatore 20/48 CRC - trasmissione (1/3) • Dato un blocco di k bit, viene considerato come un polinomio di grado k − 1, P( x ), nella generica variabile x • I bit rappresentano i coecienti del polinomio • r numero di bit del CRC; viene scelto un polinomio di grado r: G ( x ) • Si eettua quindi la divisione di P(x) per G(x) • Si scarta il quoziente e si utilizzano come CRC gli r bit di resto, i quali vengono accodati ai k bit informativi 21/48 CRC - ricezione (2/3) • G ( x ) è diviso per il polinomio P(x) associato al blocco ricevuto • Avviene un confronto tra il resto trovato e quello del trasmettitore • Se il resto calcolato dal ricevitore coincide con il CRC ricevuto si può ritenere che non vi siano errori 22/48 CRC - esempio (3/3) k = 101011 ⇒ P( x ) = 1 · x5 + 1 · x4 + 0 · x3 + 1 · x2 + 0 · x + 1 · 1 = x5 + x4 + x2 + 1. G ( x ) = x3 + 1 ⇒ 1001. Lato trasmittente (T ) P( x )T = Q ( x ) + R ( x ). G(x) Tinvia = P( x )T + resto Lato ricevente ( R) rcalc.R P( x ) R = G(x) Se resto 6= rcalc.R : errore. 23/48 Codici di Hamming • Distanza di Hamming (XOR per stringhe binarie) • Ingresso: word (m) uscita: word + checkbit (m + c) • Codice (7,4); (n, k) k: bit in ingresso, n: bit in uscita 24/48 Codici di Hamming (1/2) Invio e la ricezione del messaggio m = 1010: 1 m · G = c. Dove G: matrice generatrice (G = [ I | P].), c: la code word. c= 1 0 1 0 1 0 · 0 0 m1 0 1 0 0 m2 0 0 1 0 0 0 0 1 m3 m4 1 1 1 0 0 1 1 1 c1 c2 c3 . 1 1 = 1 0 1 0 0 1 1 . 0 1 H = [ P T | I ]. 1 1 1 0 H= 0 1 1 1 1 1 0 1 1 0 0 0 1 0 . 0 0 1 25/48 Codici di Hamming (2/2) 2 Controllo correttezza di c, moltiplicando per H T 1. Se il valore di S è '0' non sono stati rilevati errori. c · H T = S. 1 0 1 0 0 1 1 · 1 1 1 0 1 0 0 0 1 1 1 0 1 0 1 1 0 1 0 0 1 = 0 0 0 . 26/48 Vantaggi - Svantaggi Codici di Hamming • Complessità circuitale: dipende dai dati trattati • Tasso di informazione H(7,4): 57% H(15,11): 73% H(31,26): 84% • Probabilità di non rilevare un errore: pue = 1 − ( D ( H ) − 1) • Codiche diverse anche delle stesso codice • Scelta del codice in base alle speciche • Rilevamento e correzione degli errori 27/48 Codici M su N (1/2) • n lunghezza della codeword • m numero di '1' presenti nella codeword (mn ) n! · 2− n • Ecienza relativa al numero di word M = n = 2 m! · (n − m)! 1100 1110 1000 1010 0101 0111 0001 0011 28/48 Codici M su N (2/2) Dati originali 000 001 010 011 100 101 110 111 Aggiunta bit della codica 111 110 110 100 110 100 100 000 29/48 Vantaggi - Svantaggi M su N • Complessità circuitale: dipende dalla scelta implementativa • Tasso di informazione 1 su 4: 50% 2 su 4: 44% 3 su 6: 49% • Probabilità di non rilevare un errore: pue ≤ 2−(n−k) • Complessità codica e decodica diverse: parallelo, serie • Errori multipli non rilevati 30/48 Codici aritmetici • Separabili (Residue code) vs. non separabili (AN code) • Usati per il controllo di operazioni aritmetiche • f ( X ) · f (Y ) ≡ f 0 ( X · Y ) [Avi71] 31/48 Codici aritmetici AN code • Invarianti per somma e sottrazione, non per moltiplicazione e divisione • Moltiplicando gli operandi per una opportuna costante C • Risultato dell'operazione di codica: f ( X ) = C · X e f (Y ) = C · Y • In Figura un esempio: C = 5, X = 3, Y = 4 32/48 Codici aritmetici residue code • ( X · Y ) mod C = [( X mod C ) · (Y mod C )] mod C • Le quantità X , Y, (X mod C), (Y mod C), entrano in due processori separati (primario e secondario) per la stessa operazione • Confronto a posteriori sul risultato • In Figura un esempio: C = 22 − 1 = 3, X = 8, Y = 3 [SS82b, pag. 98-101] 33/48 Vantaggi - Svantaggi Codici aritmetici • Complessità circuitale: componente di confronto e componente ridondato (residue code) • Tasso di informazione: dlog2 C e /n • Probabilità di non rilevare un errore: C = (2a − 1) fondamentale la scelta della costante • AN code: separabili vs. Residue code: non separabili • Residue code: raddoppio dei costi hardware 34/48 Indice Concetti generali Tipi di ridondanza Ridondanza d'informazione I Ridondanza di componenti - Duplicazione e confronto; Ridondanza temporale 35/48 Ridondanza di componenti • Replicazione di porte, celle di memori, bus, processori e così via • Al ne di ridurre guasti • Tipi di ridondanza Passiva (mascheramento) - TMR (correzione) Attiva (rilevamento, posizione, contenimento, recupero) - Duplicazione e confronto Ibrida - NMR 36/48 Duplicazione e confronto • Tecnica attiva • Più copie della stessa word • La presenza dell'errore rilevata tramite un confronto • Errori comuni nelle word • Diverse versioni: swap and compare [DSMT78, SS82a, pag. 79-84] 37/48 Adabilità - Duplicazione e confronto L'adabilità può essere calcolata attraverso una distribuzione binomiale dove p = e−λt se ogni componente ha una distribuzione di fallimento esponenziale. n R N MR Quindi n i =∑ p ( 1 − p ) n −1 . i i =k n R N MR n −λti =∑ e (1 − e−λt )n−1. i i =k 38/48 Indice Concetti generali Tipi di ridondanza Ridondanza d'informazione Ridondanza di componenti I Ridondanza temporale - Duale; RESO-1; RESO-n; Watchdog timers; 39/48 Ridondanza temporale • Esecuzione multipla di processi con metodi dierenti • Comparazione dei risultati • Anche nel software 40/48 Duale (1/2) • Trasmissione della word al tempo t0 • Trasmissione del duale al tempo t1 • A seguito della trasmissione vi è un confronto 41/48 Duale (2/2) • Duale: f ( x1, x2, . . . , xn ) = f ( x1, x2, . . . , xn ) • In Figura la funzione f = ab + cd, f d = ( a + b)(c + d) 42/48 Recomputing with shifted operands - RESO (1/2) • Utilizzato nelle unità aritmetico logiche (ALU) • RESO-1; RESO-n 1. Somma delle word, salvataggio del risultato in un registro con shif a sinistra 2. Traslazione a sinistra delle word da sommare, confronto con il valore nel registro 3. Se i valori sono diversi, c'è un errore 43/48 RESO (2/2) Shifter A Shifter B Risultato ALU 0 0 1 1 1 0 0 1 1 + c( A) 0 1 0 ⇐1bit Shifter A Shifter B Risultato ALU 1 1 0 0 1 1 0 0 0 + 44/48 Watchdog timers • Tecnica poco costosa in termini di circuiteria • Usata per l'osservazione di un processo (timer separato dal processo stesso) • Fallimento del processo • Sia hardware che software • Controllo di processi deterministici • Nessun controllo sull'errore 45/48 Fine Questo progetto è stato realizzato dagli studenti. • Luca Uberti Foppa • Massimo Manara Nell'ambito del corso di sistemi elettronici sicuri a.a. 2006/2007. Docente del corso Vincenzo Piuri, tutor: Alberto Ferrante. ............................................................ Quest'opera è stata rilasciata sotto la licenza Creative Commons Attribuzione 2.5 Italia. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by/2.5/it/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 46/48 Bibliograa [Avi71] A. Avizienis. Arithmetic error codes: Cost and eectiveness studies for application in digital system design. Computers, IEEE Transactions on, C-20(11):13221331, 1971. [DSMT78] H. Mashburn D.P. Siewiorek, V. Kini, S.R. McConnel, and M.M. Tsao. A case study of c.mmp, cm*, and c.vmp: Part iexperiences with fault tolerance in multiprocessor systems. Proc. IEEE, 66(10):11781199, 1978. [Sho02] Martin L. Shooman. Reliability of Computer Systems and Networks: Fault Tolerance,Analysis,and Design York, NY, USA, 2002. . John Wiley & Sons, Inc., New [SS82a] Daniel Siewiorek and Robert Swarz. Reliable Design and Evaluation. Digital Press, 1982. Computer Systems: 47/48 [SS82b] Daniel Siewiorek and Robert Swarz. Reliable Design and Evaluation. Digital Press, 1982. Computer Systems: 48/48
Documenti analoghi
CODICI RILEVATORI E CORRETTORI DI ERRORE Codici di parità
In trasmissione, insieme al blocco di bit che costituisce M(x), viene anche mandato il blocco di controllo R(x), ottenuto dividendo M(x) per G(x) con le regole di divisione modulo 2 (effettuando lo...
DettagliReti di Telecomunicazione Lezione 18
– controllo di parità: è una tecnica di rilevamento di errore molto limitata, senza possibilità di correzione, ma estremamente semplice ed economica da implementare – metodi di checksum: sono una t...
DettagliLa relazione del progetto - Home Page
sistemi di elaborazione digitali v. 1.8e - 21 settembre 2007
DettagliIl controllo degli errori
disturbi (distorsione, presenza di rumore), soprattutto al momento del trasporto dei dati su un lungo tragitto. Così, è necessario il controllo della validità dei dati per alcune applicazioni (prof...
Dettagli