Gestione Errori Nelle informazioni digitali Errori • esempi “ITALA” raid Pechino-Parigi del1907 16.000Km in due mesi! Quante gomme di scorta! Gestione degli Errori nelle informazioni digitali • • • • Cosa è un errore? Che danni provoca? Rilevazione! Correzione? Cos'è un errore? Una informazione digitale... Bit, gruppo di bit... Si corrompe, diventa illeggibile. DOVE si verificano gli errori? Memorie volatili Memorie permanenti Trasmissione dati Processori Che DANNI può provocare? Da “quasi nulla” (corruzione di qualche pixel in una immagine digitale da milioni di pixel o di parte di un fotogramma di un filmato o di prte di una stupidata postata sui social) A disastri epocali con danni economici enormi e perdita di vite umane (programmi di gestione di una centrale nucleare o di un aeroporto che fanno “pasticci”) Gli Errori possono essere Non rilevati e quindi ignorati Rilevati Corretti oppure no Gestione errori Introducendo una sufficiente ridondanza nei dati si possono rilevare e anche correggere certi errori Ogni volta che una informazione viene letta se ne verificano i codici di rilevamento errori associati Ogni volta che si scrive....vengono generati i codici Errori “hard” e “soft” Hard error: ripetibile, da SEMPRE errore. es: un bit che è sempre Zero qualunque cosa si cerchi di scrivergli sopra. Soft error: (transiente) errore subdolo e carognesco che a volte c'è e a volte no. Es: la memoria supera il test poi funziona male, ma non sempre. Esempio delle memorie RAM RAM senza parità RAM con parità RAM ECC (Correzione Errori) Con la parità orizzontale e verticale... Il controller di memoria A volte integrato nel chip del processore, deve supportare la gestione della parità o ECC. Ovvero controllare e generare i codici di parità/ECC Memoria RAM: cosa accade in caso di errore? • Memoria senza parità (quella del tuo PC o el tuo smartphone, che fa schifo!) – Nessuna rilevazione errore, si procede comunque (errori? Chi se ne frega! evviva!!) • Con parità (1 bit in più per ogni byte) – – Rilevazione di alcuni errori (quelli doppi no) Nessuna correzione • Con ECC: 8 bits in più per ogni quadword (64 bits) – – Rilevazione e correzione errori singoli Rilevazione errori doppi (molto rari) Cosa accade in caso di errore su RAM? Errore correggibile: viene corretto Errore non correggibile: – – – – – Rilettura dati da disco (retry) Terminazione processo “Eliminazione” della pagina di RAM guasta Terminazione sistema Diagnostici di memoria Dove si usano le memorie ECC? Applicazioni in cui errori di elaborazione possono provocare gravi danni e quindi non sono ammessi Calcolo finanziario Calcolo scientifico Gestione di sistemi complessi e critici Vite umane, soldi Parità ed ECC: quanto costano? Parità: un bit in più ogni 8. Ovvero 12,5% di ridondanza ECC: 8 bit ogni 64 Ovvero sempre 12.5% Prezzi: es: dimm ddr3 da 4GB su Amazon.it No Parity 13-20€ Parity (??) ECC 30€ Memorie (serie) ECC: dove? Server, workstations, minicomputers, mainframes Memorie di massa HDD, CD, DVD, BD, schedina, pennina USB SSD, SSHD ecc Codice di correzione errori per blocco Es BD: 64KB blocco xxx ECC Retry (ottico) e Correzione errori molto potente A: traccia B: settori (blocchi) C: un settore D: cluster Hard Disk Drive (HDD) Settori di 512, 1024, 2048, 4K bytes Per ogni settore ci sono header, dati e ECC Header: sync bytes, address identification, flaw flag e header parity bytes. Hard disk Ogni hard disk ha settori di riserva in ogni traccia e tracce-cilindri di riserva Li utilizza per rimpiazzare settori-tracce “rovinati” Memorie ottiche: Correzione errori Reed Solomon CD ROM: Blocchi di 2,048 Bytes, per ogni blocco ci sono 280 Bytes di ECC. corregge fino a 4000 bit consecutivi rovinati!!. DVD: BD: 64KB per blocco Comunicazione dati Protocolli di rete HDLC, TCP, IP, ATM ecc Il “checksum” rileva errori e poi si richiede la ritrasmissione Header TCP La FEC • Viene rilevato un errore: – Avviene una Ri-lettura – Si richiede una Ri-trasmissione – Ma a volte non si può – Allora FEC (Forward Error Correction) Esempi: trasmissioni monodirezionali broadcast radio, TV DVB, DAB, sonde spaziali Forward error correction (FEC) • Codici Hamming • Richiede molta ridondanza Nuovo tentativo • Viene rilevato un errore: – Avviene una Ri-lettura – Si richiede una Ri-trasmissione – Ma a volte non si può Integrity check sui files Message Digest MD5 checksum, MD5 Hash ecc (firma digitale) 52bc309e11259af15e4623c7a0abc28c Ricava un codice di 128 bit dal contenuto del file Es: emule Una volta ottenuto il file intero si verifica se è corrotto confrontando gli MD5 CRC (32) Memorie ottiche (CD, DVD, BD) Il TOP della gestione errori Sono i sistemi “Fault tolerant” in cui tutto è ridondato e si può guastare ma il sistema continua a funzionare!!! Il livello di ridondanza è esteso a tutti i componenti: CPU, RAM dischi, alimentatori, rete ecc ecc TUTTO è almeno doppio Costano cari e si utilizzano dove un guasto può provocare perdita di vite umane e-o di una “barca” di soldi. Sistemi “fault tolerant” FINE