CHECKSUM: RILEVAZIONI ERRORI

CHECKSUM: RILEVAZIONI ERRORI

I principali metodi di rilevazioni di errori sono 3: CRC, CHECKSUM ed HAMMING ma ci siamo mai chiesti in che modo nascono questi errori?

DOVE NASCONO GLI ERRORI?

Quando avviene uno scambio di informazioni tra l’elaboratore e la memoria attraverso i fili paralleli (BUS), il segnale trasmesso può essere soggetto a rumori e quindi si può sovrapporre creando un bit errato. In caso vi sia la presenza di ERRORE questo può esser trattato in 4 modi diversi:

  • Il messaggio viene scartato.
  • Viene richiesta la trasmissione del messaggio.
  • Viene migliorata la qualità del canale.
  • L’errore viene cercato di correggerlo

CHECKSUM

Come funziona CHECKSUM?

Per riuscire a correggere l’errore mediante un codice di parità è necessario utilizzare il sistema di controllo della parità incrociata. Si introduce in coda alla trasmissione di un blocco di n dati un byte, chiamato byte di checksum, che viene calcolato eseguendo l’operazione di XOR su tutti i byte costituenti il blocco-dati da trasmettere.

  • Questo metodo prende anche il nome di controllo di parità longitudinale LRC(Longitudinal Redundancy Check)
  • il bit di parità descritto precedentemente è detto anche controllo di parità trasversale o VRL
parità longitudinale e parità trasversale

ESEMPIO

  • Supponiamo che durante la trasmissione un bit del Dato3 si sporchi

Alla ricezione il controllo di parità trasversale ci segnala la presenza dell’errore sul Dato3 senza però indicarne la posizione.

Rilevamento posizione errore
  • Alla fine della trasmissione dei dati il controllo “verticale” ci segnala la presenza di un errore nel bit b5, dato che il numero di 1 è dispari

Dall’ intersezione tra la riga e la colonna individuiamo il bit che si è sporcato => siamo quindi in grado di correggere un errore

DIFETTI CHECKSUM

Se gli errori crescono non sono più rilevabili ed è necessario aumentare la distanza minima di Hamming introducendo ulteriori bit di ridondanza.

Per esempio, in presenza di due errori ci troviamo in questa situazione:

situazione

In questo caso però non siamo in grado di correggere perché entrambe le correzioni portano a configurazioni legittime e quindi generano un’ambiguità nella correzione.