Elettronica dei Sistemi Digitali Corso di Laurea in Informatica Crema, Maggio Codici a controllo dell errore per le memorie Laboratorio di Microsistemi Integrati Dipartimento di Elettronica Università di Pavia Via Ferrata, 7 Pavia E-mail: gregori@ele.unipv.it
Argomenti introduzione rivelazione e correzione degli errori la probabilità d errore i codici a controllo dell errore per le memorie a semiconduttore i codici a controllo dell errore per le memorie ML
Sistemi di comunicazione elettrica sorgente canale utilizzatore trasmissione trasmettitore linea ricevitore C C elaborazione ingresso calcolo uscita memorizzazione scrittura conservazione lettura
Errori nel funzionamento delle reti TEMPORANEI PERMANENTI ALTERAZIONE DELLE CONDIZIONI DI FUNZIONAMENTO cadute o oscillazioni della tensione di alimentazione disturbi elettromagnetici vibrazioni radiazioni (particelle α, raggi cosmici) rumore elettromagnetico alterazione delle variabili di stato di reti sequenziali GUASTI difetti di isolamento tra conduttori interruzioni di collegamenti 4
Rivelazione degli errori DUPLICAZIONE DI UNA UNITÀ x z U x n z m U' z' confronto E z' m E = m Σ i = z i z' i 5
Rivelazione degli errori CODICE A CONTROLLO DI PARITÀ IN RETI COMBINATORIE x z C x n z m controllo di parità generatore di parità p controllo di parità E u u u u 4 u 5 u 6 u 7 u 8 E 6
Rivelazione degli errori CODICE A CONTROLLO DI PARITÀ IN RETI SEQUENZIALI x z x n z C m y y' y k y' k generatore di parità p z controllo di parità E z p y controllo di parità E y 7
Correzione degli errori TRIPLICAZIONE DELLA RETE x x n R R M z u u m blocco maggioritario M M(u,, u m ) R M( u,..., u m k = m + ) = Σ i j =,..., m i... ik u... u i i k 8
Correzione degli errori CONTROLLI DI PARITÀ z x x n C z m correzione dell'errore uscite corrette z z m generatore di bit di controllo c controlli di parità posizione dell'errore c k 9
Correzione del singolo errore CONTROLLO DI PARITÀ A MATRICE CODICI DI HAMMING h i bit di informazione bit di controllo bit totali k = h i m = h + i n = k + m c c c c c c (n,k) = (7,4) n = il numero di bit di controllo richiesti è il minimo intero m tale che k = m m m il minimo numero di bit di controllo si ha quando h = i, in questo caso si ha questo metodo corregge errore e rivela o errori m = h = k m = log ( k + m + ) questo metodo rivela e corregge errore il metodo può essere esteso per rivelare anche errori, in questo caso m = + log( k + m)
Probabilità d'errore funzioni cumulative dell'errore ❶ unità singola P( t) = exp( εt) se t altrimenti ❷ unità triplicata e blocco maggioritario P( t) = exp( εt) + exp( εt) se t altrimenti ❸ unità quintuplicata e blocco maggioritario P( t) = exp( εt) + 5exp( 4εt) 6exp( 5εt) se t < [ /ε] t = tempo ε = tasso d'errore del circuito P > P i (i =,, ) se t < ln ε caso generale con k > n / n n ( t) = Σ i = k i ( ) n P ( t) i ( P ( t ) i P )
Probabilità d'errore La probabilità di errore di i bit su n (compresi i bit di parità) sul periodo t, si può approssimare con una legge di Poisson (ε è il tasso di guasto sul singolo bit) i ( εnt) exp( εnt) P ( ) = se t i t i! altrimenti La funzione cumulativa dell'errore al tempo t è data da E( t) = P ( t) e corrisponde alla probabilità di errore sulla parola quando non è effettuata la correzione. Con la correzione di e di errori questa probabilità si riduce rispettivamente a E E ( t) = P ( t) = P ( t) P ( t) ( t) P ( t) P ( t) i valori usati per n nel grafico sono n = 64, n = 7, n = 78; per la triplicazione la probabilità di lettura errata è data dalla seguente espressione in cui il numero di celle è n 4 = 64, mentre per P e P è n = E 4 n ( P ( t) P ( t) ) 4 ( t) = [ /ε]
Probabilità d'errore posta la probabilità d'errore della singola cella pari a p, il grafico mostra la come varia la probabilità di lettura errata al variare di p e della tecnica di correzione scelta con parole da k cifre, la probabilità di lettura errata P LE è P k LE = = ( p) O( kp) con un codice che corregge errore per parola n n n( n ) PLE = ( p) n p ( p) = O p con un codice che corregge errori per parola P LE n( n n + ) = O p 6
Errori nelle memorie SOFT HARD è un cambiamento dello stato della cella che sia casuale non ripetitivo di un numero ridotto di celle per volta non permanente o almeno recuperabile nel successivo ciclo di scrittura è associato a un difetto permanente esistente nel dispositivo o creatosi durante il suo funzionamento per incapacità dei materiali di sopportare gli stress applicati le tecniche di controllo dell'errore permettono di ridurre efficacemente gli effetti degli errori soft e risultano utili anche per il recupero di alcuni errori hard 4
CARATTERISTICHE ECC per le memorie velocità nelle operazioni di codifica e di decodifica per peggiorare il meno possibile il tempo d'accesso ridotta area aggiuntiva dovuta alle celle di controllo e ai circuiti di codifica e di decodifica capacità di correggere qualsiasi errore sulla singola cella e su celle adiacenti esempi di distribuzioni di errori soft strutture di codifica e decodifica parallele (a matrice) buona progettazione del codice e dei circuiti utilizzo di codici Q-ari per celle multilivello e spaziatura delle celle d max 5
ECC per le memorie METODI PIÙ UTILIZZATI SEC (single-error-correcting) codici di Hamming SEC-DED (single-error-correcting double-errordetecting) codici odd-weight-column di Hsiao SEC-DED-SBD (single-error-correcting doubleerror-detecting single-byte-error-detecting) codici di Reddy SBC-DBD (single-byte-error-correcting doublebyte-error-detecting) codici basati sulla teoria dei campi finiti DEC-TED (double-error-correcting triple-errordetecting) codici di Bose-Chaudhuri- Hocquenghem 6
ECC per le memorie PERMETTONO DI RIDURRE LA PROBABILITÀ D'ERRORE CON L AGGIUNTA DI RIDONDANZA informazione ❶ CODICI BINARI k ridondanza n k sono i codici più diffusi operano su cifre binarie la loro descrizione matematica si basa sull'algebra del campo finito a due elementi GF() codifica: ogni k cifre di informazione, sono aggiunte n k cifre di controllo decodifica: grazie alle cifre di controllo, sono individuati e corretti gli errori intervenuti su tutte le n cifre il numero massimo di errori correggibili dipende dalla ridondanza del codice ❷ CODICI NON BINARI possono essere utilizzati quando l unità "base" di informazione non è una cifra binaria, ma una cifra in base Q la descrizione matematica si basa sull algebra dei campi finito a Q elementi GF(Q) 7
Errori di una cella multilivello ogni cella di memoria a Q = b livelli può memorizzare un simbolo Q-ario equivalente a b bit di informazione righe colonne simboli quaternari = = = = SCRITTURA LETTURA = = cella guasta l'errore di una cella corrisponde all'errore dei b bit a essa associati 8
Circuiti per le operazioni non binarie corrispondenza tra simboli quaternari e simboli binari = = = = tabelle di addizione e moltiplicazione nel campo finito di 4 elementi + simbolo quaternario bit alto bit basso addizione tra due simboli quaternari moltiplicazione per moltiplicazione per 9
Descrizione algebrica dei codici lineari Codifica il processo di codifica può essere descritto in forma vettoriale dall'equazione c = i G la matrice G di k righe e n colonne definisce il codice ed è chiamata matrice generatrice Decodifica e correzione dell errore si definisce la matrice di controllo di parità H in modo che per ogni parola di codice c c H t = si definisce sindrome della parola r il vettore s di lunghezza (n k) tale che s = r H t = c H t + e H t = e H t dalla sindrome è possibile risalire al valore del vettore d errore e* più probabile la correzione può allora essere effettuata con la seguente operazione c* = r e* la matrice H e la matrice G sono legate dalla seguente espressione G H t = le operazioni di addizione e moltiplicazione vanno effettuate nel campo degli elementi finiti a Q elementi
Percorso dell informazione ERRORI parola di informazione k codificatore parola di codice n circuiti di scrittura scrittura di n celle k bit o k cifre n bit o n cifre matrice di memoria k parola stimata decodificatore n parola letta circuiti di lettura lettura di n celle
Blocco per il controllo dell errore DW DR generatore dei simboli di controllo CW DW CW ai circuiti di scrittura CR S valutazione della sindrome E DE ai buffer d uscita DW = parola di informazione da scrivere DR = parola di informazione letta dalla memoria DR CW = simboli di controllo calcolati per essere scritti in memoria CR = simboli di controllo letti dalla memoria S = sindrome E = vettore d errore DE = parola di informazione stimata fornita in uscita
Generatore dei simboli di controllo parola di informazione simboli di controllo i k c n k i c i
Valutazione della sindrome sindrome s n k s s vettore d errore e e n 4
Esempio di ECC per memorie ML Codice quaternario (6,) H = (matrice del controllo di parità) Il codice è stato ottenuto abbreviando il codice di Hamming quaternario (85,8). Allo scopo di minimizzare le dimensioni dei circuiti di codifica e decodifica è stata determinata la matrice H con il minor numero di simboli e ed il massimo numero di simboli. Alcune caratteristiche: overhead di area.5 % stimata una probabilità d'errore per la singola cella di 7, la probabilità di lettura errata (P LE ) passa da. 6 a 6. porte logiche dei circuiti di codifica e decodifica gate equivalenti tempo di generazione dei simboli di controllo 5 ns tempo di valutazione della sindrome ns 5