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à

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...

Dettagli

Reti di Telecomunicazione Lezione 18

Reti 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...

Dettagli

La relazione del progetto - Home Page

La relazione del progetto - Home Page sistemi di elaborazione digitali v. 1.8e - 21 settembre 2007

Dettagli

Il controllo degli errori

Il 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