Salta al contenuto
Note per Studenti Esercizio 3 · bit di controllo di Hamming per un byte

Esercizio 3bit di controllo di Hamming per un byte

In questa pagina 4

Testo (svolto in aula, lezione del 25 ottobre 2016). Si supponga che una parola di dati di 8 bit memorizzata sia 1100 10101100\,1010. Adottando l'algoritmo di Hamming, determinare quali bit di controllo vengono immagazzinati in memoria insieme alla parola di dati.


Quanti bit di controllo

Con m=8m = 8 serve il minimo kk con 2k−1≥m+k2^k - 1 \ge m + k: k=4k = 4 (15≥1215 \ge 12; con k=3k = 3: 7<117 < 11). Vedi Codifiche binarie e informazione non numericaBit, byte e multipli (potenze di 2 e di 10); codici BCD e Gray; caratteri ASCII, Unicode e UTF-8; ordine dei byte (little e big endian); bit di parità e codice di Hamming per rilevare e correggere errori.Codifiche binarie e informazione non numerica →.

Posizioni

Posizioni da 1 a 12: i bit di controllo vanno nelle potenze di 2 (1, 2, 4, 8), i dati nelle altre (3, 5, 6, 7, 9, 10, 11, 12). Come in aula, il bit di dati più a sinistra va nella posizione più alta (12) e quello più a destra nella più bassa (3):

Posizione 12 11 10 9 8 7 6 5 4 3 2 1
Contenuto D8D_8 D7D_7 D6D_6 D5D_5 C8C_8 D4D_4 D3D_3 D2D_2 C4C_4 D1D_1 C2C_2 C1C_1
Valore 1 1 0 0 ? 1 0 1 ? 0 ? ?

Calcolo

C2jC_{2^j} è lo XOR dei dati nelle posizioni con il bit jj a 1 nella rappresentazione binaria:

  • C1C_1 (posizioni 3, 5, 7, 9, 11): 0⊕1⊕1⊕0⊕1=10 \oplus 1 \oplus 1 \oplus 0 \oplus 1 = 1
  • C2C_2 (posizioni 3, 6, 7, 10, 11): 0⊕0⊕1⊕0⊕1=00 \oplus 0 \oplus 1 \oplus 0 \oplus 1 = 0
  • C4C_4 (posizioni 5, 6, 7, 12): 1⊕0⊕1⊕1=11 \oplus 0 \oplus 1 \oplus 1 = 1
  • C8C_8 (posizioni 9, 10, 11, 12): 0⊕0⊕1⊕1=00 \oplus 0 \oplus 1 \oplus 1 = 0

Risultato

C1=1C_1 = 1, C2=0C_2 = 0, C4=1C_4 = 1, C8=0C_8 = 0, cioè C8C4C2C1=0101C_8C_4C_2C_1 = 0101.

Parola completa memorizzata (posizioni 12 → 1): 1100 0101 10011100\,0101\,1001, cioè D8D7D6D5 C8 D4D3D2 C4 D1 C2C1=1100 0 101 1 0 01D_8D_7D_6D_5\ C_8\ D_4D_3D_2\ C_4\ D_1\ C_2C_1 = 1100\ 0\ 101\ 1\ 0\ 01.

Versione ripasso

Testo (svolto in aula, lezione del 25 ottobre 2016). Si supponga che una parola di dati di 8 bit memorizzata sia 1100 10101100\,1010. Adottando l'algoritmo di Hamming, determinare quali bit di controllo vengono immagazzinati in memoria insieme alla parola di dati.

Metodo: Hamming SECBit, byte e multipli (potenze di 2 e di 10); codici BCD e Gray; caratteri ASCII, Unicode e UTF-8; ordine dei byte (little e big endian); bit di parità e codice di Hamming per rilevare e correggere errori.Codifiche binarie e informazione non numerica →: 2k−1≥m+k2^k - 1 \ge m + k con m=8m = 8 dà k=4k = 4 (15≥1215 \ge 12; con 3: 7<117 < 11).

  1. Controlli nelle posizioni 1, 2, 4, 8; dati in 3, 5, 6, 7, 9, 10, 11, 12 (il bit più a sinistra in 12): pos. 12 = 1, 11 = 1, 10 = 0, 9 = 0, 7 = 1, 6 = 0, 5 = 1, 3 = 0.
  2. C2jC_{2^j} = XOR dei dati nelle posizioni con il bit jj a 1:
    • C1C_1 (3, 5, 7, 9, 11): 0⊕1⊕1⊕0⊕1=10 \oplus 1 \oplus 1 \oplus 0 \oplus 1 = 1
    • C2C_2 (3, 6, 7, 10, 11): 0⊕0⊕1⊕0⊕1=00 \oplus 0 \oplus 1 \oplus 0 \oplus 1 = 0
    • C4C_4 (5, 6, 7, 12): 1⊕0⊕1⊕1=11 \oplus 0 \oplus 1 \oplus 1 = 1
    • C8C_8 (9, 10, 11, 12): 0⊕0⊕1⊕1=00 \oplus 0 \oplus 1 \oplus 1 = 0

C8C4C2C1=0101C_8C_4C_2C_1 = 0101; parola memorizzata (posizioni 12 →\to 1): 1100 0101 10011100\,0101\,1001.

Esercizi su questo argomento

Lezioni in cui compare

Teoria collegata