Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Esercizio Codice di Hamming, Esercizi di Architettura Dei Calcolatori

Esercizio esplicativo su come applicare il codice di Hamming per la correzzione degli errori in memoria principale

Tipologia: Esercizi

2022/2023

In vendita dal 04/07/2023

demetrio-angeloni
demetrio-angeloni 🇮🇹

3

(1)

11 documenti

1 / 2

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
CODICE di HAMMING
È il codice più semplice, ideato da Richard Hamming dei Bell Laboratories.
Questo codice viene utilizzato nelle memorie RAM per correggere gli errori di bit che
possono verificarsi durante la lettura o la scrittura dei dati.
È basato sull’aggiunta di un numero di bit, detti “bit di controllo”, alla stringa originale
di bit d’informazione.
Tali bit hanno il compito di rilevare la presenza di errori nella stringa originale, e di
fornire la posizione del bit errato nella stringa.
A ciascun bit di controllo è associato un gruppo di bit della stringa di informazione.
I gruppi di bit non sono disgiunti, un bit di informazione è controllato da almeno due bit
di controllo.
Bit di controllo:
Il numero di bit di controllo è deciso in base alla relazione:
2k – 1 >= N+ K
- K: numero minimo di bit di controllo
- N: numero di bit della stringa originale (stringa di “dati”/”informazione”)
Infatti bastano 2k-1 configurazioni dei bit di controllo per rilevare e correggere un errore
tra gli N + K bit codificati. La restante configurazione dei k bit di controllo serve per
segnalare l’assenza di errori.
Ogni bit di controllo “controlla” un gruppo di bit della stringa di informazione (bit
controllati).
Nel codice di Hamming la scelta è tale che la stringa finale (bit di controllo + bit
d’informazione) è così formattata:
- I bit di controllo sono nelle posizioni della stringa con valore potenza di due (20, 21,
etc.)
- Tutte le altre posizioni sono coperte dai bit della stringa di informazione, a partire
dalla posizione meno significativa
Un bit d’informazione è controllato dal bit i-esimo di controllo se la configurazione
binaria che identifica quel bit d’informazione ha il valore dell’i-esimo bit pari a 1 (vedi
esempio successivo)
Stringa di informazione da 8 bit (M) + 4 bit di controllo (C)
C1 C2 M1 C4 M2 M3 M4 C8 M5 M6 M7 M8
C1 = EXOR (M1, M2, M4, M5, M7)
C2 = EXOR (M1, M3, M4, M6, M7)
C3 = EXOR (M2, M3, M4, M8)
C4 = EXOR (M5, M6, M7, M8)
Stringa di errore:
Ad ogni bit di controllo è associato un bit di errore ei. La stringa dei bit di errore viene
utilizzata in fase di rivelazione degli errori.
pf2

Anteprima parziale del testo

Scarica Esercizio Codice di Hamming e più Esercizi in PDF di Architettura Dei Calcolatori solo su Docsity!

CODICE di HAMMING

È il codice più semplice, ideato da Richard Hamming dei Bell Laboratories. Questo codice viene utilizzato nelle memorie RAM per correggere gli errori di bit che possono verificarsi durante la lettura o la scrittura dei dati. È basato sull’aggiunta di un numero di bit, detti “bit di controllo”, alla stringa originale di bit d’informazione. Tali bit hanno il compito di rilevare la presenza di errori nella stringa originale, e di fornire la posizione del bit errato nella stringa. A ciascun bit di controllo è associato un gruppo di bit della stringa di informazione. I gruppi di bit non sono disgiunti, un bit di informazione è controllato da almeno due bit di controllo. Bit di controllo: Il numero di bit di controllo è deciso in base alla relazione: 2 k^ – 1 >= N+ K

  • K: numero minimo di bit di controllo
  • N: numero di bit della stringa originale (stringa di “dati”/”informazione”) Infatti bastano 2k-1 configurazioni dei bit di controllo per rilevare e correggere un errore tra gli N + K bit codificati. La restante configurazione dei k bit di controllo serve per segnalare l’assenza di errori. Ogni bit di controllo “controlla” un gruppo di bit della stringa di informazione (bit controllati). Nel codice di Hamming la scelta è tale che la stringa finale (bit di controllo + bit d’informazione) è così formattata:
  • I bit di controllo sono nelle posizioni della stringa con valore potenza di due (2^0 , 2^1 , etc.)
  • Tutte le altre posizioni sono coperte dai bit della stringa di informazione, a partire dalla posizione meno significativa Un bit d’informazione è controllato dal bit i-esimo di controllo se la configurazione binaria che identifica quel bit d’informazione ha il valore dell’i-esimo bit pari a 1 (vedi esempio successivo) Stringa di informazione da 8 bit (M) + 4 bit di controllo (C) C1 C2 M1 C4 M2 M3 M4 C8 M5 M6 M7 M C1 = EXOR (M1, M2, M4, M5, M7) C2 = EXOR (M1, M3, M4, M6, M7) C3 = EXOR (M2, M3, M4, M8) C4 = EXOR (M5, M6, M7, M8) Stringa di errore: Ad ogni bit di controllo è associato un bit di errore ei. La stringa dei bit di errore viene utilizzata in fase di rivelazione degli errori.

Il valore del bit di controllo i-esimo Ci tale che: ei = Ci + {parità bit controllati} = 0 Poiché i gruppi di bit controllati non sono disgiunti:  Se un solo bit della stringa di errore non è nullo, allora il relativo bit di controllo è stato alterato, ma non ci sono errori nella stringa di informazione  Se più bit della stringa di errore non sono nulli, allora c’è un errore nella stringa di informazione Riassumendo: Un semplice metodo per trovare i bit errati consiste nel calcolare inizialmente tutti I bit di parità. Se sono tutti corretti allora non si è verificato alcun errore (oppure più di uno). Successivamente si sommano tutti I bit di parità errati, contando 1 per il bit 1, 2 per il bit 2, 4 per il bit 4, e così via, e la somma risultante corrisponde alla posizione del bit errato. Se per esempio I bit di parità 1 e 4 sono errati, ma 2, 8 e 16 sono corretti, significa che il bit 5 (1+4) è stato invertito.