Rilevamento degli errori nei sistemi di elaborazione digitali

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Rilevamento degli errori nei sistemi di elaborazione digitali"

Transcript

1 Facoltà di Scienze Matematiche, Fisiche e Naturali DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Laurea Magistrale in Scienze e Tecnologie dell Informazione Corso di SISTEMI ELETTRONICI SICURI Rilevamento degli errori nei sistemi di elaborazione digitali v. 1.8e - 21 settembre 2007 Studenti: Docente del corso: Luca Uberti Foppa xxxxxx Vincenzo Piuri Massimo Manara xxxxxx Alberto Ferrante (tutor) Anno Accademico 2006/2007

2 . Quest opera è stata rilasciata sotto la licenza Creative Commons Attribuzione 2.5 Italia. Per leggere una copia della licenza visita il sito web org/licenses/by/2.5/it/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

3 Indice 3 Indice Sommario 7 1 Introduzione 8 2 Concetti generali 9 3 Ridondanza di informazione Codici di parità (parity checking) Somma di controllo (checksum) Controllo di ridondanza ciclica (cyclic redundancy checks) Codici Hamming (Hamming codes) Codici m su n (M-of-N codes) Codici aritmetici (arithmetic codes) Ridondanza di componenti Duplicazione e confronto (duplication and comparison) Ridondanza temporale Duale (alternating logic) Computazione con traslazione di bit (recomputing with shifted operands) Controllo temporale (watchdog timers) A Concetti di probabilità e statistica 47 A.1 MTTF A.2 MTTR A.3 Codice A.4 Probabilità d errore A.5 Codifica A.6 Tasso di informazione A.7 Decodifica A.8 Distanza di Hamming A.9 Efficienza del codice A.10 Esponenziale negativa A.11 Binomiale A.12 Matrice trasposta

4 .

5 Elenco delle figure 5 Elenco delle figure 1 MTTF - MTTD - MTTR Sorgente, causa d errore, destinazione Parità Parità bit per byte Parità intrecciata Codifica di parità pari Parità lato ricevente Parità lato ricevente errore rilevato AN code AN code esempio Residue code Residue code esempio Duplicazione e confronto Schema scambia e confronta A Schema scambia e confronta B Ridondanza temporale - Rilevamento errori permanenti Alternating logic Implementazione logica della funzione duale Rilevazione di errori nell ALU con RESO Distribuzione esponenziale negativa Binomiale

6 6 Elenco delle tabelle Elenco delle tabelle 1 Tecniche di codifica parità - confronto Checksum precisione singola Checksum precisione singola - trasmissione Checksum precisione doppia Checksum precisione doppia - trasmissione Checksum honeywell Checksum honeywell - trasmissione Tecniche di codifica checksum - confronto Tecniche di codifica CRC - confronto Tecniche di codifica Hamming - confronto su su Tecniche di codifica M su N - confronto Tecniche di codifica aritmetica - confronto Somma senza traslazioni e salvataggio traslato Somma con traslazioni per il confronto

7 Sommario 7 Sommario In molte discipline il rilevamento degli errori e la correzione hanno una fondamentale importanza, sia per mantenere l integrità dei dati, sia nei canali di trasmissione e nei supporti per l archiviazione. Questo lavoro vuole presentare le principali tecniche di rilevamento degli errori, le quali possono essere applicate sia ai canali di trasmissione sia ai supporti d archiviazione. Ad ogni tecnica è associata una scheda di valutazione in termini di complessità circuitale, latenza ed efficacia di rilevamento.

8 8 1 Introduzione 1 Introduzione La diffusione dei mezzi di comunicazione e strumenti digitali ha ormai pervaso il nostro lavoro e le nostre abitudini. Risulta quindi di importanza fondamentale ricevere e trasmettere dati in modo corretto al fine di evitare errori. Già negli anni successivi alla seconda guerra mondiale le tematiche dell affidabilità dei sistemi (reliability theory) cominciarono a svilupparsi, l EDVAC (Electronic Discrete Variable Automatic Computer) nel 1949 con la duplicazione dell unità aritmetica e logica (ALU), l UNIVAC (UNIVersal Automatic Computer II) [Ros69] nel 1955 con il controllo di parità nelle trasmissioni di dati. Arrivando nell ultimo decennio con lo sviluppo di applicazioni e sistemi critici: safety-critical, mission-critical, business-critical. In questo scenario, i soggetti coinvolti sono una sorgente e un destinatario. Chi funge da sorgente utilizza qualche tecnica di ridondanza al fine di limitare gli errori sul canale trasmissivo e far giungere al destinatario un messaggio, codificato in maniera tale da verificare la presenza di un errore. Con il termine rilevamento degli errori, si fa riferimento alla capacità di rilevare guasti causati da interferenze esterne o altre problematiche durante la trasmissione, dalla sorgente alla destinazione, sulla base di qualche forma di ridondanza. Con il termine correzione degli errori si intende una funzione aggiuntiva atta a identificare e correggere gli errori. Il rilevamento precede sempre la correzione. Questo lavoro si propone di presentare le principali tecniche di rilevamento degli errori nei sistemi digitali e di fornire una tassonomia secondo alcuni aspetti ad esempio: la complessità circuitale, la diminuzione del throughput, l efficacia di rilevamento. Nella prima sezione vengono esposti alcuni concetti basilari di queste tematiche mentre nelle successive tre sezioni vengono presentate le tecniche di rilevamento degli errori basate sulla ridondanza di informazione, di componenti e temporale.

9 2 Concetti generali 9 2 Concetti generali In un sistema digitale le informazioni sono rappresentate, elaborate e trasmesse mediante grandezze fisiche (segnali) che possono assumere solo due valori discreti. Ogni valore è associato ad una cifra binaria, scelta in pratica, tra due cifre o simboli (ad es. 0-1 V-F). Per incrementare l affidabilità di un sistema digitale esistono due approcci: fault avoidance (fault intolerance) in altre parole l evitare i guasti e fault tolerance: la tolleranza ai guasti. Il punto chiave del fault avoidance deriva dall uso di componenti ad alta affidabilità, programmabili in modo statico e da un attenta progettazione del percorso del segnale riducendo in tal modo la possibilità di generazione d errori. Nella tolleranza ai guasti, invece, si fornisce informazione aggiuntiva per contrastare l evolversi d eventuali errori. Questa ridondanza può presentarsi sotto tre differenti modalità. La ridondanza d informazione extra information consiste nell aggiungere pattern (pacchetti d informazione) per aumentare la possibilità d identificazione dell informazione. Questi pacchetti aggiuntivi possono essere codici di controllo molto complessi o più semplicemente dei bit di parità. La ridondanza di componenti extra components consiste nel replicare porte, celle di memoria, bus, moduli funzionali al fine di produrre informazioni supplementari per ridurre gli effetti dei guasti. La ridondanza di tempo extra time consiste nell esecuzione multipla d alcuni processi di calcolo attraverso metodi differenti. La comparazione dei risultati fornisce una buona risposta al controllo d errori. Questo tipo di ridondanza è tipicamente utilizzata all interno di controlli software. La ridondanza d informazione e di componenti sono definite ridondanze nello spazio, mentre la ridondanza di tempo è definita temporale. Un sistema ridondante necessita di dieci passi di controllo, descritti di seguito, al fine di avere una buona resistenza ai guasti. 1. Fault confinement (Limitazione dei guasti): questo passo consiste nel limitare la diffusione degli effetti di un errore solo nell area dove questo errore è apparso. 2. Fault detection (Rilevazione di errori): vi sono molte tecniche disponibili per la rilevazione degli errori come parità, verifica della consistenza e violazione di protocollo. Queste tecniche non sono sempre performanti e prima che esse rilevino un errore può passare un certo periodo di tempo. Questo lasso temporale viene chiamato fault latency. Le tecniche di rilevamento di errore si suddividono in due maggiori classi: off-line detection e on-line

10 10 2 Concetti generali detection. Con la off-line detection, il dispositivo in questione non è in grado di eseguire le operazioni di routine mentre viene eseguito il test. Questo tipo di rilevamento garantisce l integrità prima e possibilmente durante gli intervalli del processo ma non durante l intero periodo di tempo in cui l operazione è attiva. L altro tipo di rilevamento fornisce una capacità in tempo reale di analisi senza interferire con i processi attivi. 3. Fault masking (Errore mascherato): questa tecnica nasconde gli effetti di un guasto. Tuttavia, molte tecniche di mascheramento possono essere estese anche a tecniche on-line di rilevamento. 4. Retry (Ritenta): in molti casi fare un secondo tentativo su una operazione finita male potrebbe portarla alla corretta esecuzione. Questo è particolarmente vero negli errori transitori che non creano un danno fisico. 5. Diagnosis (Diagnosi): se il rilevamento di errore non fornisce informazioni sul punto dove si è verificato il guasto, la diagnosi è necessaria. 6. Reconfiguration (Riconfigurazione): se il guasto è stato trovato ed è permanente, potrebbe essere necessario riconfigurare il componente che ha indotto l errore o isolare quest ultimo dal resto del sistema. 7. Recovery (Recupero): dopo aver rilevato il guasto e, se necessario, aver riconfigurato il componente, gli effetti degli errori sono stati eliminati. Quindi si procede con il recupero del lavoro. 8. Restart (Riavvio): il recupero non è possibile se troppe informazioni sono danneggiate. Vengono usate diverse tecniche di riavvio chiamate a caldo, a freddo. 9. Repair (Riparazione): i componenti guasti vengono rimpiazzati. Come il rilevamento, la riparazione può essere on-line e off-line. 10. Reintegration (Reintegrazione): dopo la sostituzione fisica del componente, il modulo riparato deve essere reintegrato nel sistema [SS82, pag ]. La Figura 1 descrive uno scenario dove vengono illustrati i concetti sopra menzionati. Come mostrato nella figura, esistono dei valori che indicano il tempo di fallimento (MTTF - Mean Time To Failure cfr. A.1), il tempo di riconoscimento (MTTD - Mean Time To Detection), il tempo riparazione (MTTR - Mean Time To Repair cfr. A.2) e la disponibilità. Il primo di questi, indica il tempo complessivo da quando il sistema è caduto in errore fino a quando è stato ristabilito completamente; all interno di questo lasso temporale si collocano i restanti citati. Il secondo indica il tempo trascorso dalla nascita dell errore fino a quando il sistema si accorge dell incombenza sorta. Il terzo indica il tempo trascorso per la riparazione del sistema. Al termine di tutto ciò il sistema è pronto per essere utilizzato di nuovo (disponibile).

11 2 Concetti generali 11 Bibliografia Figura 1: MTTF - MTTD - MTTR. [Ros69] Saul Rosen. Electronic computers: A historical survey. ACM Comput. Surv., 1(1):7 36, [SS82] Daniel Siewiorek and Robert Swarz. Reliable Computer Systems: Design and Evaluation. Digital Press, 1982.

12 12 3 Ridondanza di informazione 3 Ridondanza di informazione L insieme di tecniche che vanno sotto questa classificazione, servono per rilevare un errore attraverso l aggiunta d informazione (informazione aggiuntiva al messaggio da trasmettere) ai dati (messaggio da trasmettere), durante la trasmissione o l archiviazione di un messaggio. Nella Figura 2 è mostrata una possibile causa d errore, tra sorgente e destinazione nello scambio di dati. Per limitare errori di trasmissione, il trasmettitore (sorgente) inserisce delle informazioni aggiuntive nel messaggio destinato al ricevente, in modo da poter rilevare ed eventualmente correggere dopo la ricezione l errore trovato. Questa modalità d intervento prende il nome di ridondanza. Formalmente può essere definita come il numero di bit usati per trasmettere il messaggio meno il numero di bit dell informazione (dati)[sha48]. Figura 2: Sorgente, causa d errore, destinazione. Il passaggio dal dato all informazione ridondata avviene attraverso un processo di codifica, l inverso, decodifica. L insieme di tutte le possibili combinazioni di bit della lunghezza ottenuta dal processo di codifica è chiamato word, mentre è definito codice l insieme di tutte le word corrette, in altre parole l insieme delle word che tramite il processo di decodifica corrispondono ad un informazione originale [SS82, pag. 84]. La rilevazione degli errori attraverso i codici consiste nel determinare in fase di decodifica, in altre parole l estrazione dell informazione da un codice, se un ingresso è o meno una code word [Ham50, Sho02, pag. 31]. Al fine di misurare le prestazioni di una o più tecniche, nel caso della rilevazione degli errori, si fa riferimento alla probabilità di non rilevare un errore, P ue (probability of an undetected error), la quale deve essere minimizzata (cfr. A.4). 3.1 Codici di parità (parity checking) Questa tecnica prevede l aggiunta di un ulteriore bit alla word nel processo di codifica, al fine di rilevare la parità della stessa. Nel caso di una word con un numero pari di 1, questa, è chiamata pari. Altrimenti dispari [Sho02, pag. 35]. A seguito di questa distinzione si aggiunge un bit in più alla word chiamato appunto bit di parità. Word con un numero pari di 1 identificano un codice di parità pari quindi il

13 3 Ridondanza di informazione 13 nuovo bit sarà 0, al contrario, nel caso di un numero dispari di 1, il bit avrà valore 1. Figura 3: Parità. Esistono diverse varianti di questa tecnica, le quali prevedono: un bit di parità per ogni byte, alternando parità pari e dispari, ciò aumenta la copertura degli errori (vedi Figura 4) oppure parità intrecciate (vedi Figura 5), alla word di dati di dimensione b sono aggiunti i bit di parità. Ogni bit di parità è associato ad un proprio gruppo di b/l bit, distanti l posizioni tra loro. Ogni bit della codifica aggiunta è calcolato con il controllo di parità su tutti i bit d ugual posto del pacchetto. Nel caso in cui un solo bit del pacchetto è alterato, il ricevitore riconosce la riga e la posizione dell errore e ricostruisce il bit errato negandolo. Nell ipotesi di due o più bit modificati, il ricevitore riconosce l errore senza poterlo correggere e chiede la ripetizione del messaggio. Infine se quattro bit si alterano il ricevitore, non riconosce l errore e accetta il messaggio. Figura 4: Parità bit per byte. Figura 5: Parità intrecciata. Un esempio di circuito per il calcolo della parità è mostrato in Figura 6. Il trasmettitore combina i sette bit con una cascata di porte XOR (0 0 = 0, 0 1 = 1, 1 0 = 1, 1 1 = 0), generando quindi il bit di parità pari; il bit p sarà inviato sul canale insieme agli altri sette bit. Il ricevitore verifica la correttezza del messaggio con un analogo circuito (vedi Figura 7) applicato agli otto bit ricevuti, con uscita 1 in caso d errore. Modificando un bit, ad esempio il sesto bit, b 6 = 0, il

14 14 3 Ridondanza di informazione risultato dal lato ricevente darà come uscita 1. L errore sarà quindi rilevato (vedi Figura 8). Volendo utilizzare il controllo di parità dispari, occorre modificare i due circuiti aggiungendo una porta NOT sull uscita. Questa tecnica di rilevamen- Figura 6: Codifica di parità pari. to è una delle meno costose in termini di throughput e latenza, infatti, necessita soltanto dell aggiunta di un bit per word o per byte, secondo la metodologia implementativa utilizzata (vedi Figure 6, 7; ipotizzando una word di lunghezza 8 bit). Bit per word si ha un dimensione della word di a = b + 1 e una latenza: log 2 a ; b rappresenta la word. Bit per byte si ha una dimensione della word di a = m + 1 e una latenza: log 2 a ; m rappresenta il numero di bit per byte. Bit intrecciata si ha una dimensione della word di a = b/l + 1 e una latenza: log 2 a. Tuttavia in termini d efficacia nella rilevazione degli errori, risulta essere poco affidabile. In quanto esiste una possibilità d alterazione dei dati che rende vana la rilevazione dell errore con questa tecnica. Nel caso della parità semplice, un esempio di trasmissione potrebbe essere il seguente: La sorgente invia s : {101 0}, tre bit con l ultimo bit di parità pari; Il destinatario riceve d : {111 0}, ne verifica la parità ed essendo non coerente vi è la presenza di un errore; L errore viene rilevato. Qualora il destinatario avrebbe ricevuto: d : {111 1} quindi due errori, l errore non sarebbe stato rilevato.

15 3 Ridondanza di informazione 15 Figura 7: Parità lato ricevente. Figura 8: Parità lato ricevente errore rilevato. La copertura degli errori e del 100% per singoli bit, 100% per errori multipli che alterano un numero dispari di bit, nessuno degli errori multipli che alterano un numero pari di bit. La probabilità di non rilevare un errore P ue = 1 P e, può essere calcolata attraverso la distribuzione binomiale (cfr. A.11). La probabilità di r errori su n bit con una probabilità q è data dalla distribuzione B(r : n, q). In genere q è definito come L equazione (1) mostra il caso generale, mentre l equazione (2) mostra il caso di due errori. P e = B(r : 9, q) = B(2 : 9, q) = ( ) 9 q r (1 q) 9 r. (1) r ( ) 9 q 2 (1 q) 9 2. (2) 2

16 16 3 Ridondanza di informazione Ipotizzando q = 10 4 nell equazione (2), si ottiene (3). ( B(2 : 9, 10 4 ) = 36q 2 (1 q) 2 = ) 2 ( ) 7 = 3, (3) Da (3) è quindi possibile trovare la p ue = 3, la quale confrontata con un parametro di misurazione dell efficienza del codice (cfr. A.9 punto 1) restituisce la bontà o meno del codice utilizzato. p ue 2 (n k) = 3, < 2 7. Parità - Descrizione del confronto In Tabella 1 è riportato il confronto delle varie tecniche viste nella sezione corrente. Le stelle sono comprese tra un massimo di tre, caratteristica ottima, a un minimo di una, caratteristica pessima. Secondo costo circuitale, latenza, tasso d informazione, probabilità di non rilevare un errore: p ue e complessità dell algoritmo di codifica e decodifica. La complessità circuitale nel caso della parità è determinata dal limitato numero di porte logiche del circuito (vedi Figura 7). La latenza è maggiore nel caso della parità bit per byte, la quale aumenta con l aumentare delle word, nelle altre due tecniche, parità semplice, intrecciata, è relativamente minore. Nel caso della parità semplice si fa riferimento ad una word di lunghezza 40 bit. Quindi n = 40, k = 1. Il tasso di informazione (cfr. A.6) t i = 0, 025 = 2%. Nel caso della parità bit per byte, n = 45, k = 5. t i = 1, 125 = 12%. Nel caso della parità intrecciata, n = 43, k = 3 l = 3. t i = 0, 069 = 7%. La complessità dell algoritmo di codifica e decodifica è rappresentata dall operatore XOR. Tabella 1: Tecniche di codifica parità - confronto. Nome Costo circu. Latenza T. info. p ue Comp. Cod./Dec. Parità S. 2% p ue 2 (n k) Parità b. per B 12% p ue 2 (n k) Intrecciata 7% p ue 2 (n k)

17 3 Ridondanza di informazione Somma di controllo (checksum) Per verificare l integrità di un blocco di dati, si può calcolare un valore hash, detto checksum (somma di controllo), dal contenuto del blocco stesso. Piccole variazioni nel contenuto del segmento modificano sensibilmente il valore e ciò permette di controllare la presenza d errori nella trasmissione. Un valore di checksum corretto non significa che il blocco di dati è integro, ma piuttosto che il blocco ha una probabilità insignificante di essere errato. Il controllo d integrità confronta il valore di checksum calcolato dal trasmittente con quello calcolato dal ricevente. Un possibile algoritmo di checksum è il seguente: 1. Un array L[1... N] di parole a 16 bit, rappresenta il blocco. 2. Calcolare la seguente funzione: (a) S1 = L[1] (b) S i + 1 = (L[i + 1] + S i ) mod 65536, con 0 < i < N Quindi il valore di checksum è il complemento a 1 di S N. Il complemento a 1 di S si ottiene negando tutti i bit di S. Questo valore è solitamente espresso come il complemento a 1 della somma di tutte le parole a 16 bit del segmento, ignorando i riporti. Dato un blocco esistono vari modi efficienti per calcolare rapidamente il checksum basandosi sul fatto che è possibile calcolare in parallelo la somma di quattro parole a 16 bit, ignorando i riporti. Questo riduce la lunghezza del ciclo di calcolo di S N alla metà e inoltre, il calcolo del complemento a 1 può essere effettuato, senza aggravio, mentre si calcola la somma. Il blocco costruito unendo i dati e l informazione aggiuntiva rappresenta la codeword di un codice separabile. Esistono diverse versioni di checksum: Precisione singola, Doppia precisione, Honeywell, Low cost [SS82, pag ]. Nella versione a precisione singola, sono sommati i vari byte ed il risultato ottenuto, rappresenta il checksum, come mostrato in Tabella 2. L esempio mostra la procedura di codifica di 4 byte, nella parte finale della tabella, sulla destra, è rappresentato il byte in formato esadecimale. Nel calcolo della somma viene ignorato il resto finale, la dimensione ottenuta del checksum è identica alla dimensione della word iniziale. Il limite di questa versione sussiste quando il bit più significativo è scartato dall operazione di resto.

18 18 3 Ridondanza di informazione Byte C Byte Byte Byte D4 Checksum calcolato EA Tabella 2: Checksum precisione singola. Il blocco trasmesso a seguito dell operazione di codifica è rappresentato in Tabella 3 nel formato esadecimale. È possibile calcolare la probabilità di un errore nascosto ( masking error ) come mostrato in (4) dove n rappresenta la lunghezza di un word, mentre S è la dimensione della colonna [SM90]. Accanto alla formula generale, l esempio mostrato in Tabella 2 con S = 4 e n = 8. p ue = 2nS n 1 2 ns 1 = = 0, 039 = 4%. (4) 1 Dati Checksum 2C D4 EA Tabella 3: Checksum precisione singola - trasmissione. Nella seconda versione, a doppia precisione, ogni word/blocco di n-bit è sommato in un blocco di 2n-bit. L esempio in Tabella 4, mostra la fase di codifica nel caso di 8 bit di dati. Nel caso in cui i dati sono 16 bit allora il checksum a doppia precisione, sarà di 32 bit (4 byte). Il problema del resto nel caso del checksum a precisione singola, è risolto. Infatti, nel caso di 8 bit come nell esempio, si ottengono due classi di resto chiamate principale e secondario. Quando il resto nella classe secondaria esiste, questo viene inserito nella classe primaria. Tuttavia se anche la classe primaria ha un resto, questo è ignorato. Byte 1 5A Byte 2 EF Byte Byte 4 C Checksum calcolato Checksum calcolato hex Tabella 4: Checksum precisione doppia.

19 3 Ridondanza di informazione 19 Il blocco trasmesso a seguito dell operazione di codifica è rappresentato in Tabella 5 nel formato esadecimale. Il blocco 02 è la classe primaria di resto, mentre il blocco 32 del checksum è la classe secondaria. Dati Checksum 5A EF 24 C Tabella 5: Checksum precisione doppia - trasmissione. La versione honeywell può essere vista come un alternativa della versione a doppia precisione. Per 8 bit, come mostra l esempio in Tabella 6, si ottiene un checksum di 8 2. Al contrario della tecnica a doppia precisione, in questo caso i byte sono accoppiati in modo asimmetrico prima della somma. Il resto in ogni caso è ignorato. Questa tecnica può rilevare un errore comune (sullo stesso bit) che si ripercuote su word differenti. Byte 1 C Byte 2 FE Byte 3 DB Byte 4 B Correlazione FE C3 B4 DB Checksum calcolato Checksum calcolato hex B2 9E Tabella 6: Checksum honeywell. Il blocco trasmesso a seguito dell operazione di codifica è rappresentato in Tabella 7 nel formato esadecimale. Il blocco B2 è la classe primaria di resto, mentre il blocco 9E del checksum è la classe secondaria. Dati Checksum C3 FE DB B4 B2 9E Tabella 7: Checksum honeywell - trasmissione. L ultima versione presentata low cost, è una modifica della prima, in cui si tiene conto del resto, del bit di riporto. Questa tecnica di rilevazione degli errori è molto economica in termini d informazione aggiuntiva, ma presenta alcuni svantaggi [SS82]. Infatti, risulta essere adatta alle sole applicazioni in cui i dati sono gestiti in grandi blocchi contigui inoltre nelle memorie è necessario molto tempo per rilevare

20 20 3 Ridondanza di informazione un errore (dato che le word devono in ogni caso essere sempre lette e sommate), inoltre ogni volta che una word viene modificata il checksum del blocco di riferimento deve essere calcolato nuovamente e memorizzato. Tali motivi rendono quindi sconsigliabile come metodo di controllo on-line, perlomeno per memorie con scritture frequenti. La probabilità di rilevamento di un errore nella versione a precisione singola, può essere calcolata come segue: 100% nel caso di una word; con i < z log 2 s dove i rappresenta il bit di ordine minore nella word, z il numero di bit di ogni word, s il numero di word; (1 2 s ) nel caso di più word e con i = z log 2 s. Ad esempio, con tre word: P e = (1 2 3 ), P ue = 1 P e = 0.87; Nel caso di errori multipli: 100% con i = z (log 2 s) c mentre (1 2 (z i) + 2 cs ) altrimenti. c rappresenta il numero di posizioni con errore. Mentre per la versione honeywell: 100% nel caso di una word; (1 2 (s+1) ) nel caso di più word, s rappresenta il numero di word, con i = z log 2 (s/2)[ss82, pag. 99]; Nel caso di errori multipli: 100% con i = z (log 2 (s/2)) c mentre (1 2 (z i+(cs/2)) + 2 cs ) altrimenti. Checksum - Descrizione del confronto In Tabella 8 è riportato il confronto delle varie tecniche viste nella sezione corrente. Le stelle sono comprese tra un massimo di tre, caratteristica ottima, a un minimo di una, caratteristica pessima. Secondo costo circuitale, latenza, tasso d informazione, probabilità di non rilevare un errore: p ue e complessità dell algoritmo di codifica e decodifica. La complessità circuitale nel caso del checksum è determinata da un semplice sommatore di bit. La latenza è maggiore nel caso del checksum a doppia precisione e honeywell, mentre è minore nel caso del checksum semplice. In quanto nei primi due casi si considera anche il resto dell operazione di somma, mentre nell ultimo, checksum semplice, non viene fatto. Nel caso di una somma di controllo, si fa riferimento ad una word di lunghezza 32 bit. Quindi n = 32, k = 8. Il tasso di informazione t i = 0, 25 = 25%, per la somma di controllo a doppia precisione: n = 32, k = 16. Il tasso di informazione t i = 0, 5 = 50%. Il caso honeywell è identico alla quello della somma di controllo a doppia precisione. La complessità dell algoritmo di codifica e decodifica è rappresentata dall operatore somma di bit. Nel caso di una codeword con distanza di Hamming pari a 3, la capacità di rilevare un singolo errore sarà (h/2) 1 dove h rappresenta il numero di check bit [McA94, Ngu05].

21 3 Ridondanza di informazione 21 Tabella 8: Tecniche di codifica checksum - confronto. Nome Costo circu. Latenza T. info. p ue Comp. Cod./Dec. Checksum S. 25% p ue 2 (n k) Checksum d.p. 50% p ue 2 (n k) Checksum H. 50% p ue 2 (n k)

22 22 3 Ridondanza di informazione 3.3 Controllo di ridondanza ciclica (cyclic redundancy checks) Il CRC, o controllo di ridondanza ciclica, è un metodo per determinare i bit di controllo (check bit) da inserire in coda ad un blocco di bit informativi. Il compito dei bit di controllo è quello di consentire al ricevitore di rilevare la presenza di eventuali errori dovuti al rumore. Se il numero di bit totali generati dal codificatore è n e i bit originari del blocco sono k, allora il numero di bit di controllo è pari a r = n k. Un codice di questo tipo viene indicato come codice ciclico (n, k). È una tecnica per la rilevazione e correzione degli errori che sfrutta le proprietà dei polinomi binari nei campi binari finiti, l implementazione via hardware è molto semplice [RG88]. Per la determinazione del codice CRC nella fase di trasmissione si considerano i bit informativi presenti in un blocco di k bit il quale viene considerato come un polinomio di grado k 1, P(x), nella generica variabile x. I bit rappresentano i coefficienti del polinomio e in corrispondenza del bit zero si ha l assenza del relativo termine di polinomio. Per esempio, al blocco di 6 bit è possibile associare un polinomio P(x) come mostrato in (5): P(x) = 1 x x x x x = x 5 + x 4 + x (5) Si fissa in numero di bit, r, che costituiscono il CRC e si sceglie un polinomio di grado r, G(x), noto come polinomio generatore. Per esempio, imponendo r = 3 si deve scegliere un polinomio G(x) di grado tre, come mostrato in (6): G(x) = x (6) Il polinomio G(x) è noto sia al trasmettitore che al ricevente e non dipende dal messaggio informativo prodotto dalla sorgente. Si effettua quindi la divisione di P(x) per G(x) come mostrato in (7): P(x) = Q(x) + R(x). (7) G(x) Si scarta il quoziente e si utilizzano come CRC gli r bit che costituiscono il resto, i quali vengono accodati ai k bit informativi. Mentre nel caso della ricezione, il ricevitore conosce G(x) e quindi può dividere per esso il polinomio P(x) associato al blocco di bit ricevuto e confrontare se il resto che si ottiene è uguale a quello calcolato dal trasmettitore [PB61]. Ovviamente se il resto calcolato dal ricevitore coincide con il CRC ricevuto si può ritenere che non vi siano errori.

23 3 Ridondanza di informazione 23 In realtà si preferisce agire in modo più veloce, facendo sì che l assenza di errori corrisponda a una divisione con resto 0 di tutto il blocco ricevuto (bit di informazione CRC) per il polinomio G(x). A tal fine i trasmissione si deve moltiplicare per xr il polinomio P(x) prima della divisione. Quando i bit di P(x) sono stati tutti trasmessi nel contempo pronto il CRC che viene inserito in coda al posto dei bit zero derivanti dalla moltiplicazione. In assenza di errori, della divisione fatta in lato ricezione, si analizza il resto che, se diverso da zero, significa la presenza di un errore nella trasmissione del segnale. CRC - Descrizione del confronto In Tabella 9 sono riportati i principali parametri di valutazione della tecnica presentata nella sezione corrente. Le stelle sono comprese tra un massimo di tre, caratteristica ottima, a un minimo di una, caratteristica pessima. Secondo costo circuitale, latenza, tasso d informazione, probabilità di non rilevare un errore: p ue e complessità dell algoritmo di codifica e decodifica. La complessità circuitale nel caso del calcolo CRC è determinata dal componente che esegue l operazione di scorrimento (shift) 8, 16, 32 bit. La latenza è proporzionale al tipo di codice adottato. Anche esiste la possibilità di pre calcolare il resto, il quale è archiviato in tabelle indicizzate. La rilevazione di errori per singolo bit è del 100%, nel caso di errori multipli (due) 100%. In generale l utilizzo del CRC garantisce il 99% dei rilevamenti di errore; come nel caso del CRC-16 con n 32, 767 e k 32, 751 [RG88]. Tabella 9: Tecniche di codifica CRC - confronto. Nome Costo circu. Latenza T. info. p ue Comp. Cod./Dec. CRC %

24 24 3 Ridondanza di informazione 3.4 Codici Hamming (Hamming codes) Il concetto chiave che sta alla base di questo codice di rilevazione degli errori si esprime attraverso la distanza di Hamming: date due word di uguale lunghezza x 1 e x 2, la distanza di Hamming d(x 1, x 2 ) è il numero di bit con cui le due word differiscono. Per stringhe binarie ad esempio a e b, la distanza di Hamming corrisponde al numero di uni presenti nello XOR tra a e b. I codici Hamming ricevono come ingresso i bit dei dati (m) e come uscita restituiscono i bit di dati più le informazioni ridondate check bit (c). Le parole codificate sono quindi formate da messaggio più informazioni: m + c. L informazione viene aggiunta alla fine della word da un componente che implementa la matrice generatrice. La code word è trasmessa al ricevitore il quale implementa un altro componente: una matrice di parità. L uscita di questa matrice di parità è un vettore di bit della stessa dimensione dei check bit. Questa uscita prende il nome di sindrome di Hamming e, attraverso questo vettore, è possibile trovare e correggere un errore. Tutte le moltiplicazioni tra matrici vengono eseguite in modulo-2. Dato un codice di Hamming (n, k), k è il numero di bit in ingresso n il numero di bit in uscita. Il numero di bit necessari alla codifica è mostrato in (8), dove k rappresenta il numero di dati da inviare mentre n il numero totale di bit trasmessi. 2 n k n + 1. (8) La matrice generatrice per codificare un codice (7,4) è mostrata in (9) I rappresenta la matrice identità mentre P la sottomatrice. In (10) lo sviluppo. G = G = [I P]. (9) (10) La matrice di parità per il controllo degli errori è mostrato in (11) P T è la trasposta di P mentre I è la matrice d identità. In (12) lo sviluppo. H = H = [P T I]. (11) Per l invio e la ricezione del messaggio m = 1010:. (12)

25 3 Ridondanza di informazione 25 1 m G = c dove G rappresenta la matrice generatrice mentre c rappresenta la code word. In (13) il risultato, dove[m 1 m 4 ] sono i bit del messaggio invece [c 1 c 3 ] sono i check bit. [ m1 m 2 m 3 m 4 c 1 c 2 c 3 ]. (13) [ ] = [ ]. 2 Per controllare la correttezza della code word c, si moltiplica per la matrice trasposta H T (vedi (14)), al fine di ottenere la sindrome (vedi (3.4)). Se il valore di S è 0 non sono stati rilevati errori. I check bit saranno rimossi per ottenere i dati [Dub07, pag ]. c H T = S. (14) [ ] = [ ]. 3 In (15) è mostrato un errore di trasmissione della code word, nel terzo bit. [ ] = [ ]. (15) Il tasso di informazione (cfr. A.6) di un codice Hamming(7,4) è k m = 7 4. In k generale il tasso di informazione di un codice Hamming(n, k) è 2 n k 1. Il numero minimo di check bit per correggere un errore, un Single event correct (SEC) è: c log 2 (n + 1).

26 26 3 Ridondanza di informazione Codici Hamming - Descrizione del confronto In Tabella 10 sono riportati i principali parametri di valutazione della tecnica presentata nella sezione corrente. Le stelle sono comprese tra un massimo di tre, caratteristica ottima, a un minimo di una, caratteristica pessima. Secondo costo circuitale, latenza, tasso d informazione, probabilità di non rilevare un errore: p ue e complessità dell algoritmo di codifica e decodifica. La complessità circuitale nel caso dei codici di Hammming è determinata dal numero di dati trattati, in ogni caso, simile alla complessità circuitale della parità intrecciata. La latenza è proporzionale al tipo di codice adottato negli esempi mostrati (7,4). Nel caso di un codici di Hamming (7,4), si fa riferimento ad una word di lunghezza 7 bit. Quindi n = 7, k = 4. Il tasso di informazione t i = 0, 571 = 57%. Maggiore è questo valore, maggiore è l efficienza del codice. La p ue dipende dal codice adottato in altre parole dalla distanza (cfr. A.8, nella Tabella 10 indicata come D(H)) che il codice possiede. Tabella 10: Tecniche di codifica Hamming - confronto. Nome Costo circu. Latenza T. info. p ue Comp. Cod./Dec. Hamming 57% 1 (D(H) 1)

27 3 Ridondanza di informazione Codici m su n (M-of-N codes) La caratteristica principale di questi codici è il fatto di avere code word di n bit, in cui m - e solo m - bit sono 1 [SS82, pag. 87]. Dal punto di vista implementativo, se la decodifica avviene in modo seriale risulta semplice e a basso costo - basta infatti un contatore dei bit 1 - mentre diviene complessa se viene eseguita in modo parallelo. In (16) è possibile calcolare l efficienza relativa (M) al numero di word appartenenti alla codifica di questo tipo di codice. M = ( n m ) 2 n = n! m! (n m)! 2 n (16) In Tabella 11 viene mostrato un codice 2 su 4 in grassetto Tabella 11: 2 su 4. Ad esempio per un codice 2-su-4 come quello mostrato in Tabella 11 si otterrà il risultato mostrato in (17). M = 4! 2! (4 2)! 2 4 = = 6 = 0, 375 = 4. (17) 16 Una semplice implementazione della codifica consiste nell aggiungere alla fine della word alcuni bit contenenti il numero di 1 necessari a soddisfare la specifica del codice. Nella Tabella 12 viene mostrata una semplice implementazione di un codice 3 su 6. Su 6 bit di codifica devono essere presenti tre 1. Per raggiungere tale obiettivo vengono collocati in coda al dato dei nuovi bit.

28 28 3 Ridondanza di informazione Dati originali Aggiunta bit della codifica Tabella 12: 3 su 6. Un singolo errore causa la violazione del codice andando quindi ad aggiungere o togliere un 1 : m + 1 o m 1. Nel caso di un doppio errore, questo non sarà rilevato. L esempio seguente mostra alcuni casi d errore e rilevazione tra sorgente s e destinazione d. s: d: errore rilevato, il codice deve contenere esattamente tre 1. s: d: errore non rilevato, la codifica viene ricevuta come corretta. Codici M su N - Descrizione del confronto In Tabella 13 sono riportati i principali parametri di valutazione della tecnica presentata nella sezione corrente. Le stelle sono comprese tra un massimo di tre, caratteristica ottima, a un minimo di una, caratteristica pessima. Secondo costo circuitale, latenza, tasso d informazione, probabilità di non rilevare un errore: p ue e complessità dell algoritmo di codifica e decodifica. La complessità circuitale nel caso dei codici M su N è determinata dall implementazione scelta per realizzare questo tipo di codici. Un esempio in [BTEF03]. La latenza è proporzionale al tipo di codice adottato; in altre parole aumenta con la dimensione dei bit da trattare (1 su 4; 2 su 4, 3 su 6 e così via). Nella Tabella 13 sono riportati alcuni risultati mostrati in [BTEF03]. Il tasso di informazione è calcolato come M/n dove M rappresenta il numero possibili codeword rappresentabili (vedi (16)). Ad esempio, per il codice 2 su 4; m = 2 n = 4 quindi t i = log 2 6/4 = 0, 5 = 44%. Per la p ue, si fa riferimento alla Sezione 3.1, nella parte finale; utilizzando la binomiale è possibile verificare l upper bound del codice adottato. Nel caso del codice 2 su 4 si ottiene ( 4 2 )q (1 q)3 = 0, 006 < 1/2 3 = 0, 25.

29 3 Ridondanza di informazione 29 Tabella 13: Tecniche di codifica M su N - confronto. Nome Costo circu. Latenza T. info. p ue Comp. Cod./Dec. 1 su 4 50% p ue 2 (n k) 2 su 4 44% p ue 2 (n k) 3 su 6 49% p ue 2 (n k)

30 30 3 Ridondanza di informazione 3.6 Codici aritmetici (arithmetic codes) I codici aritmetici si dividono in due categorie: separabili (parità, aritmetici) e non separabili (CRC) [Gar66]. Nei codici non separabili le word codificate consistono in due parti, i dati e i bit di controllo che vengono aggiunti in fondo alla word. Vengono in genere identificati con l espressione (n, k) dove n rappresenta il numero totale di bit della word codificata, mentre k rappresenta i dati. I codici aritmetici sono molto utili quando si desidera controllare la corretta esecuzione delle operazioni aritmetiche come: addizione, sottrazione, moltiplicazione e divisione. I dati che rappresentano gli operandi sono codificati prima che su di loro sia eseguita una delle operazioni suddette. Al termine di questa la code word risultante viene controllata per la sua validità o meno, nel caso in cui la verifica dia esito negativo, viene segnalata una condizione d errore. Per quanto detto un codice aritmetico deve necessariamente possedere la proprietà d invarianza rispetto all operazione che si propone di controllare. Con il termine codice aritmetico s intende definire - data la rappresentazione numerica in forma digitale X e Y, un operazione aritmetica e una funzione di codifica f () - che una funzione f () è un codice aritmetico rispetto a se e solo se esiste un algoritmo applicabile ad operandi codificati che implementa l operazione in modo tale che f (X) f (Y) f (X Y) [Avi71]. Esistono diversi tipi di codici aritmetici ad esempio: AN code, residue code e inverse residue code. I primi, AN code, sono i più semplici ed appartengono alla classificazione di codici non separabili. Si ottengono moltiplicando ogni word per una costante C. Ipotizziamo che X e Y siano due operandi originali, dopo la fase di codifica si otterrà f (X) = C X e f (Y) = C Y. I codici AN sono invarianti rispetto alla somma e sottrazione ma non rispetto alla moltiplicazione e divisione. Un successivo controllo è possibile aggiungendo al termine dell operazione una verifica sulla divisibilità per la costante C come mostrato in Figura 9. Figura 9: AN code. Un esempio viene mostrato in Figura 10 con i seguenti dati: C = 5, X = 3, Y = 4. Ai fini d efficacia ed efficienza, la scelta della costante è cruciale in quanto il suo valore determina il numero di bit aggiuntivi. Esiste la possibilità che un multiplo della costante scelta, causi un errore, questo porterebbe il controllo modula-

31 3 Ridondanza di informazione 31 Figura 10: AN code esempio. re a perdere la sua efficacia. Infine dal punto di vista dell efficienza, l incremento della lunghezza delle word dovuto alla codifica è pari a log 2 C. Una conveniente scelta della costante è C = 2 a 1, con a > 1, in quanto una tale configurazione permette di rilevare tutti gli errori multipli e permette l esecuzione del modulo con un costo molto basso [SS82, pag ]. Il costo hardware ne risente nella gran parte per la complessità maggiore del processore principale; in quanto esso riceve in input operandi che dopo la codifica hanno aumentato la dimensione. Il secondo tipo di codici rientra nella classificazione di codici separabili il quale si basa sulla proprietà: (X Y) mod C = [(X mod C) (Y mod C)] mod C. Le quantità X, Y, (X mod C), (Y mod C), i residui di moduli, entrano in due processori separati (primario e secondario) che eseguono la stessa operazione, fornendo due risultati. Da questi sono generati i residui e confrontati tra loro come mostrato in Figura 11. La decisione di scelta rispecchia le considerazioni fatte per i codici AN. Il costo hardware risiede nell aggiunta di un processore. Figura 11: Residue code. Un esempio viene mostrato in Figura 12 con i seguenti dati: C = = 3, X = 8, Y = 3.

32 32 3 Ridondanza di informazione Figura 12: Residue code esempio. Esiste tuttavia una variante ai residue chiamata inverse residue code. La differenza risiede nel calcolo dei residue ad esempio: C (X mod C). Questa tecnica può essere utile quando i bit danneggiati sono più di uno. Codici aritmetici - Descrizione del confronto In Tabella 14 è riportato il confronto delle varie tecniche viste nella sezione corrente. Le stelle sono comprese tra un massimo di tre, caratteristica ottima, a un minimo di una, caratteristica pessima. Le stelle di colore grigio indicano una posizione poco netta, tra il limite inferiore (stella nera precedente) e superiore (stella grigia). Secondo costo circuitale, latenza, tasso d informazione, probabilità di non rilevare un errore: p ue e complessità dell algoritmo di codifica e decodifica. La complessità circuitale nel caso dei codici aritmetici è determinata dal componente di confronto (AN code) e dalla componentistica ridondata (residue code). Le scelte implementative possono far variare il giudizio trattato, ecco il significato delle stelle grigie. Infatti, in base al tipo di ridondanza adottata (ad esempio: processore), la complessità circuitale può essere differente. La latenza è fortemente dipendente dalla scelta della costante. L incremento della lunghezza delle word dovuto alla codifica è pari a log 2 C. La probabilità di non rilevare un errore è nulla se viene usato un modulo che rispetti la condizione: (2 a 1). L error magnitude E m per entrambi i codici (AN e residue) consiste in tutti i multipli della costante scelta C. E m = KA, K = 1, 2, (r n 1) /A ; dove n è il numero di bit, r è la base [Avi71]. Nel caso di un singolo errore (2 ka 1) E con n = ka. Tabella 14: Tecniche di codifica aritmetica - confronto. Nome Costo circu. Latenza T. info. p ue Com. Cod./Dec. AN code log 2 C /n C = (2 a 1) Residue code log 2 C /n C = (2 a 1)

33 3 Ridondanza di informazione 33 Bibliografia [Avi71] A. Avizienis. Arithmetic error codes: Cost and effectiveness studies for application in digital system design. Computers, IEEE Transactions on, C-20(11): , [BTEF03] W. J. Bainbridge, W. B. Toms, D. A. Edwards, and S. B. Furber. Delayinsensitive, point-to-point interconnect using m-of-n codes Proceedings. Ninth International Symposium on Asynchronous Circuits and Systems, pages , May [Dub07] Elena Dubrova. Fault tolerant design: an introduction. Kluwer Acedemic Publischer, pdf, [Gar66] H.L. Garner. Error codes for arithmetic operations. Electronic Computers, IEEE Transactions on, EC-15(5): , [Ham50] R.W. Hamming. Error detecting and error correcting codes. Bell System Tech., 29: , [McA94] A. J. McAuley. Weighted sum codes for error detection and their comparison with existing codes. IEEE/ACM Trans. Netw., 2(1):16 22, [Ngu05] G. D. Nguyen. Error-detection codes: algorithms and fast implementation. IEEE Transactions on Computers, 54(1):1 11, January [PB61] W.W. Peterson and D.T. Brown. Cyclic codes for error detection. Proceedings of the IRE, 49(1): , [RG88] Tenkasi V. Ramabadran and Sunil S. Gaitonde. computations. IEEE Micro, 08(4):62 75, A tutorial on crc [Sha48] C.E. Shannon. A mathematical theory of communications. Bell System Tech., 27: , [Sho02] Martin L. Shooman. Reliability of Computer Systems and Networks: Fault Tolerance,Analysis,and Design. John Wiley & Sons, Inc., New York, NY, USA, [SM90] N. R. Saxena and E. J. McCluskey. Analysis of checksums, extended-precision checksums, and cyclic redundancy checks. IEEE Transactions on Computers, 39(7): , July [SS82] Daniel Siewiorek and Robert Swarz. Reliable Computer Systems: Design and Evaluation. Digital Press, 1982.

34 34 4 Ridondanza di componenti 4 Ridondanza di componenti Questo genere di tecniche si basa sull introduzione di componenti aggiuntivi a quelli già presenti ad esempio la replicazione di un processore, di una memoria, di un registro, per garantire la possibilità di rilevamento dell errore e l effettiva trasmissione corretta del dato. Esistono tre diversi tipi di ridondanza: Passiva, Attiva, Ibrida. La prima, quella passiva, sfrutta il meccanismo del mascheramento, non richiede nessun intervento da parte del sistema o di operatori esterni. Normalmente non implica il rilevamento del guasto, né alcuna azione di riconfigurazione. Si basa spesso sul principio del voto tra i risultati prodotti da moduli diversi. La ridondanza attiva, si basa sulle seguenti fasi: Rilevamento dell errore (error detection), Posizione dell errore (fault location), Contenimento dell errore (fault containment), Recupero dell errore (fault recovery). Le ultime tre fasi vengono anche indicate con il termine riconfigurazione. A differenza della ridondanza passiva, non fa uso del mascheramento, e quindi il sistema può essere temporaneamente soggetto ad errori, ed eventualmente anche a malfunzionamenti. Infine la ridondanza ibrida, combina ridondanza attiva e passiva. Adotta il mascheramento, ma i moduli guasti vengono rimpiazzati una volta rilevato il guasto ad esempio N-modular redundancy (NMR) con moduli ridondati oppure Tripleduplex vale a dire la combinazione di Triple modular redundancy (TMR) e duplicazione e confronto. Non permette ai guasti di produrre malfunzionamenti, ma ha un costo hardware elevato. È adatta ai casi in cui si desidera la massima affidabilità. 4.1 Duplicazione e confronto (duplication and comparison) La forma più comune e di tipo attivo di replication check prende il nome di Duplicazione e Confronto - detta anche Duplication and comparison - (vedi Figura 13) in cui sono sfruttate due copie di una stessa entità: alla presenza di un errore, le copie non sono più identiche e un semplice confronto consente di rilevare

35 4 Ridondanza di componenti 35 la situazione di disaccordo. Nel caso si duplichino moduli hardware o software, è possibile far loro eseguire le stesse elaborazioni in parallelo, confrontandone in seguito i risultati: se il comparatore è corretto e i componenti falliscono in maniera indipendente, viene rilevato ogni singolo errore. Uno dei maggiori problemi di questo controllo, sono i fallimenti comuni, in altri termini, se entrambe le copie presentano lo stesso errore il comparatore non sarà in grado di rilevare l anomalia. Figura 13: Duplicazione e confronto. Al fine di migliorare il rilevamento, sono state create svariate versioni di questa tecnica, una variante è la scambia e confronta, swap and compare [DSMT78, SS82, pag ] usata nel multiprocessore C.mmp. Il funzionamento di questa tecnica si basa su due copie esistenti di una word, una ha i byte invertiti: lo scambio di questi, necessario per tornare alla situazione originaria, è previsto appena prima di eseguire il confronto tra le due word. In Figura 14 e 15 un esempio; nel caso prima del confronto 14 e dopo il confronto 15. Nei casi di duplicazione, Figura 14: Schema scambia e confronta A. come già accennato, entrambe le copie, possono essere soggette a errori comuni

36 36 4 Ridondanza di componenti (common-mode failures), soprattutto se esistono errori di progettazione all inizio oppure se le copie risiedono sullo stesso IC chip (Integrated Circuits). Figura 15: Schema scambia e confronta B. Una soluzione nell ambito delle VLSI (Very Large Scale Integration) è stata proposta in [SL80] la quale prevede che una copia sia il duale logico dell altra. Un guasto comune alle copie, probabilmente, causerà errori diversi rilevabili nella fase di detection. Una generalizzazione di quest approccio consiste nel NMR il quale usa N copie di moduli. Dove N è un numero pari per la sola rilevazione di errori, dispari per la correzione. Il componente di voto è sostituito da un componente di confronto [CC90]. La differenza d affidabilità tra un solo componente e tre componenti (nel caso della correzione) è mostrata nell esempio seguente: R s = e λt dove R s rappresenta l affidabilità (reliability) di un singolo componente, mentre λ rappresenta il tasso di fallimento del componente; Il MTTF del singolo componente è: MTTF s e λt = 1 λ ; L affidabilità di un sistema TMR: R TMR = e 3λt + ( 3 2 )e 2λt (1 e λt ) = 3e 2λt ; Quindi MTTF TMR = 3 2λ 2 3λ = 5 6λ ; MTTF s > MTTF TMR [Sho02, pag ]. Questo esempio mostra come un sistema TMR possa essere più affidabile di un componente singolo per periodi minori di una certa soglia. Nel caso di NMR, l affidabilità può essere calcolata attraverso una distribuzione binomiale come mostrato in (18) dove p = e λt se ogni componente ha una distribuzione di fallimento esponenziale. Quindi R NMR = R NMR = n i=k n i=k ( n i ) p i (1 p) n 1. (18) ( ) n e λti (1 e λt ) n 1. i

37 4 Ridondanza di componenti 37 La complessità circuitale (numero di porte) cresce rapidamente con l aumentare del numero di bit trattati. Duplicazione e confronto - Pregi e difetti della tecnica. In questo paragrafo sono descritti i pregi e difetti di questa tecnica, prendendo in esame le considerazioni fatte nella sezione corrente. Grazie a questa tecnica attiva, è possibile rilevare un errore in una word. Esistono tuttavia alcune problematiche. Rileva l errore ma non permette di capire dove esso sia. Questo è dovuto ad una problematica di progettazione concettuale. Problematiche sul componente di confronto tra le due word. Questo componente può essere un punto di fallimento. Il componente del confronto può essere implementato via hardware o software, nel primo caso si tratta di uno XOR. Nel caso software è possibile usare l istruzione apposita nel processore adottato. Se le due word in ingresso presentano errori comuni, questi non vengono rilevati. Altre tecniche che sfruttano il medesimo principio ad esempio swap and compare.

38 38 4 Ridondanza di componenti Bibliografia [CC90] Yinong Chen and Tinghuai Chen. Implementing fault-tolerance via modular redundancy with comparison. IEEE Transactions on Reliability, 39(2): , June [DSMT78] H. Mashburn D.P. Siewiorek, V. Kini, S.R. McConnel, and M.M. Tsao. A case study of c.mmp, cm*, and c.vmp: Part i experiences with fault tolerance in multiprocessor systems. Proc. IEEE, 66(10): , [Sho02] Martin L. Shooman. Reliability of Computer Systems and Networks: Fault Tolerance,Analysis,and Design. John Wiley & Sons, Inc., New York, NY, USA, [SL80] Richard M. Sedmak and Harris L. Liebergot. Fault tolerance of a general purpose computer implemented by very large scale integration. IEEE Trans. Computers, 29(6): , [SS82] Daniel Siewiorek and Robert Swarz. Reliable Computer Systems: Design and Evaluation. Digital Press, 1982.

39 5 Ridondanza temporale 39 5 Ridondanza temporale Il concetto di base della ridondanza temporale è quello di eseguire un dato calcolo in sequenza più di una volta, e confrontare a posteriori i risultati ottenuti in ciascuna ripetizione per verificare se esista qualche discrepanza. Nel caso affermativo, viene rilevato un errore e l azione è quella di ripetere il calcolo tramite una nuova sequenza per verificare se tale discrepanza persiste o meno. Originariamente la ridondanza temporale è stata impiegata soprattutto per il trattamento degli errori dovuti a guasti temporanei, ove, una volta rivelato l errore, successive ripetizioni dovrebbero rivelare assenza di discrepanza dovuta al fatto che il guasto scompare autonomamente. Figura 16: Ridondanza temporale - Rilevamento errori permanenti. Questo tipo di ridondanza ha inoltre la capacità di far scoprire anche guasti permanenti 1 in componenti hardware a patto che si faccia uso di una minima quantità di hardware aggiuntivo, la procedura per la rilevazione è mostrata in Figura 16. La Figura 16 riporta un esempio di ridondanza temporale per la scoperta di guasti permanenti. Al tempo t 0 viene effettuata una prima computazione, poi al tempo t 1 viene effettuata una seconda computazione in cui i dati di ingresso vengono codificati e poi decodificati in uscita. I risultati delle due computazioni vengono poi comparati per rivelare eventuali discrepanze. Le funzioni di codifica e decodifica sono selezionate in modo da poter rivelare guasti nel sistema di calcolo ad esempio la duplication and comparison (cfr. 4.1 a Pagina 34) [Sho02]. Per la rilevazione degli errori permanenti è possibile usare diverse tecniche di ridondanza temporale, sfruttando la computazione in momenti diversi: alternating logic, shifted operand, swapped operands. 1 La cui presenza non è in relazione a condizioni temporali puntuali.

40 40 5 Ridondanza temporale 5.1 Duale (alternating logic) Questa tecnica consiste nel trasmettere una parola, word, ad un istante t 0, e nell istante t 1 trasmettere il suo duale. Nella Figura 17, è mostrata una rappresentazione grafica. A seguito dell invio della word e del suo duale, nell istante successivo, viene eseguito un confronto; se questo controllo non da esito corretto, viene generato un errore [RM78]. Figura 17: Alternating logic Il duale di una funzione è definito come: f (x 1, x 2,..., x n ) = f (x 1, x 2,..., x n ). La realizzazione di un circuito per il calcolo del duale per la funzione f = ab + cd, f d = (a + b)(c + d) è mostrata in Figura 18. Figura 18: Implementazione logica della funzione duale

41 5 Ridondanza temporale 41 Duale - Pregi e difetti della tecnica. In questo paragrafo sono descritti i pregi e difetti di questa tecnica, prendendo in esame le considerazioni fatte nella sezione corrente. L obiettivo di questa tecnica è quello di rilevare errori nella stessa word a distanza temporale t i +. Il costo circuitale richiede l implementazione di una funzione duale, questo, necessita il raddoppio della circuiteria. La complessità aumenta con il crescere del numero di dati da trattare; infine nel calcolo della complessità circuitale, va aggiunto il costo del confronto finale delle word ricevute. È importante sottolineare che serve un circuito normale e uno con la funzione duale (invertendo le porte logiche) come già detto poc anzi. Uno dei vantaggi di questa tecnica è la probabilità bassa di trovare errori comuni nelle word.

42 42 5 Ridondanza temporale 5.2 Computazione con traslazione di bit (recomputing with shifted operands) L utilizzo tipico di questo metodo avviene nelle unità aritmetico logiche (ALU). Recomputing with shifted operands (RESO) è in grado di rilevare errori generati da guasti avvenuti in una certa zona del chip, ad esempio la perdita di un bit (bitslice) [PF82]. Indichiamo con f la funzione eseguita dall ALU, mentre con c indichiamo l operazione di spostamento di bit a sinistra (left shift) infine c 1 l operazione di spostamento di bit a destra (right shift). Possiamo quindi esprimere c(x) come lo spostamento di x bit a sinistra di una certa word. Analogamente per c 1 (x). Nella Figura 19 è mostrata la procedura di rilevamento dell errore. Figura 19: Rilevazione di errori nell ALU con RESO Come primo passo le word sono sommate (se l operazione è la somma) in modo normale; mentre il risultato prodotto dall ALU viene memorizzato nel registro con una traslazione a sinistra. Il secondo passo consiste nel traslare a sinistra entrambe le word destinate all A- LU e confrontare il risultato ottenuto direttamente con il registro. Una disuguaglianza produce un errore. Quando vengono traslati a sinistra k bit di una word di n bit, i k bit più

43 5 Ridondanza temporale 43 significativi vengono persi. Per fare restare integre le computazioni successive l ALU deve gestire word di (n + k) bit. Un esempio di rilevazione: A = 010, B = 011, l operazione dell ALU è la somma. 1 Primo passo: somma delle due word A e B (vedi Tabella 15). Il risultato prodotto dall ALU viene salvato nel registro una traslazione a sinistra c(a) (left shift). Shifter A Shifter B Risultato ALU c(a) bit Tabella 15: Somma senza traslazioni e salvataggio traslato. 2 Secondo passo: compio la traslazione degli operatori (word) A e B quindi c(a) = 100, c(b) = 110 (vedi Tabella 16). Il risultato prodotto dall ALU: 010 sarà confrontato con il precedente risultato (c(a)) salvato nel registro durante la prima computazione. In questo caso i risultati coincidono. Shifter A Shifter B Risultato ALU Tabella 16: Somma con traslazioni per il confronto. In alcune versioni l uso delle traslazioni avviene in maniera differente come in [Sub91]. Dove il risultato da confrontare è ottenuto con una traslazione a destra. La tecnica presentata sopra, è chiamata anche RESO-1, il numero indica l ampiezza della traslazione, in questo caso di un bit. In circuiti più complessi è possibile utilizzare RESO-k. Esiste inoltre una modifica a questa tecnica: recomputing with rotated operands la quale cerca di ottimizzare l operazione di shift [PF82, pag. 594]. RESO - Pregi e difetti della tecnica. In questo paragrafo sono descritti i pregi e difetti di questa tecnica, prendendo in esame le considerazioni fatte nella sezione corrente. L obiettivo di questa tecnica è quello di rilevare errori dovuti alla perdita di informazione (bit). In genere questa tecnica è impiegata nelle ALU. Le performance dell ALU calano a seguito dell introduzione di questa tecnica.

44 44 5 Ridondanza temporale È possibile utilizzare un numero k di traslazioni. Esistono performance differenti a seconda della scelta dell algoritmo di traslazione/rotazione. Altre tecniche che sfruttano il medesimo principio ad esempio RESWO (REcomputing with SWapped Operands), REDWC (REcomputing With Duplication and Comparison). 5.3 Controllo temporale (watchdog timers) Il Controllo temporale o watchdog timer è una tecnica poco costosa in termini di ciruiteria per la rilevazione degli errori. Con questa tecnica si vuole monitorare un processo, il timer che controllerà questo processo è separato dal processo stesso. Se il timer viene impostato con una certa durata e questa scade, il processo viene considerato fallito. Questa tecnica può essere implementata via hardware o software [SS82, pag ]. Watchdog timer - Pregi e difetti della tecnica. In questo paragrafo sono descritti i pregi e difetti di questa tecnica, prendendo in esame le considerazioni fatte nella sezione corrente. L obiettivo di questa tecnica è quello di rilevare errori nel processo controllato. È possibile controllare solo processi deterministici. Se la durata della computazione del processo maggiore del limite di scadenza del timer, il processo verrà ritenuto fallito. Watchdog timer indica soltanto un possibile errore. La copertura degli errori è limitata, nessun controllo viene effettuato sul valore di uscita (output) del processo controllato, è difficile scoprire errori permanenti. Il watchdog timer controlla lo stato di un processo, non l errore. Viene usato spesso in altre tecniche di ridondanza temporale.

45 5 Ridondanza temporale 45 Bibliografia [PF82] J. H. Patel and L. Y. Fung. Concurrent error detection in ALU s by recomputing with shifted operands. Transactions on Computers, 31(7): , July [RM78] D. A. Reynolds and G. Metze. Fault detection capabilities of alternating logic. IEEE Transactions on Computers, 27(12): , December [Sho02] Martin L. Shooman. Reliability of Computer Systems and Networks: Fault Tolerance,Analysis,and Design. John Wiley & Sons, Inc., New York, NY, USA, [SS82] Daniel Siewiorek and Robert Swarz. Reliable Computer Systems: Design and Evaluation. Digital Press, [Sub91] W. V. Subbarao. Fault tolerant digital system design. In Southeastcon 91., IEEE Proceedings of, pages , Williamsburg, VA, April 1991.

46 .

47 A Concetti di probabilità e statistica 47 A Concetti di probabilità e statistica In questa appendice sono riportati alcuni richiami a concetti di statistica, affidabilità dei sistemi e teoria dei codici. A.1 MTTF MTTF o tempo di fallimento è quel lasso di tempo nel quale un sistema opera prima di avere un guasto. In (19) viene mostrato com è possibile calcolare tale valore conoscendo la distribuzione di fallimento del componente [Sho02, pag ]. A.2 MTTR MTTF = 0 R(t)dt. (19) MTTR o tempo di riparazione è una media del tempo necessario alla riparazione del componente. Questo valore è difficile da stimare, in genere viene approssimato in via sperimentale. In (20) è mostrata la possibile computazione nel caso di N componenti identici con i componenti da riparare. Comunemente questo valore è specificato con µ, il tasso di riparazione [HHJKH02, pag. 441]. MTTR = N t i i=1 N = 1 µ. (20) A.3 Codice Un codice binario di lunghezza n è un insieme di n-tuple che soddisfano alcune regole ben definite. Ad esempio, un codice di parità pari sarà composto da tutte le n-tuple che contengono un numero pari di 1. L insieme B n = {0, 1} n di tutte le possibili 2 n combinazioni di n-tuple è chiamato spazio di codifica (codespace). Un codice viene indicato come: (n, k; q) dove n rappresenta la lunghezza dei bit di dati più i check bit n = k + r se r sono i check bit, k rappresenta i bit di dati, q rappresenta il numero di elementi del campo considerato, nel caso binario: 2. Quando si considerano codici binari in genere un codice viene indicato come (n, k). Una codeword è un elemento dell insieme dello spazio di codifica che soddisfa le regole del codice. Il numero di codeword in un codice C è chiamato dimensione di C, definito come: C.

48 48 A Concetti di probabilità e statistica A.4 Probabilità d errore Per calcolare la probabilità di non rilevamento di un errore p ue, è necessario definire un modello di probabilità che descriva il canale di trasmissione. Assumiamo che ogni simbolo sia trasmesso con la probabilità (1 e) di arrivare correttamente a destinazione; e con una probabilità e/(q 1) di essere trasformato in una delle possibili q 1 combinazioni possibili. Nello scenario descritto, la probabilità che una word ricevuta sia differisca di e posizioni rispetto a quella trasmessa, è mostrata in (21). ( ) ( ) n e e (q 1) e (1 e) n e = e q 1 ( ) n e e (1 e) n e. (21) e Nel caso e = (q 1)/q, ogni simbolo q viene ricevuto con la stessa probabilità. Il valore di e viene considerato come: e (q 1)/q. Per un dato codice (n, k; q) e un certo valore di e è possibile definire la probabilità di non rilevare un errore p ue [WML82]. A.5 Codifica La codifica è un processo di trasformazione di un certo dato k-tuple in una codeword, con le regole del codice utilizzato per la codifica. Nel caso della parità, se la parità è dispari, un bit sarà aggiunto alla fine delle k-tuple. La differenza n k, dove n rappresenta la lunghezza della codeword mentre k la lunghezza dei bit aggiunti chiamati check bit. I codici separabili sono tali quando è possibile separare in modo chiaro la codeword dai check bit. Al contrario i codici si dicono non separabili, come ad esempio il CRC. A.6 Tasso di informazione Il rapporto k n è chiamato tasso di informazione di un codice. Questo tasso determina la ridondanza di un codice. A.7 Decodifica La decodifica è il processo inverso della codifica, data una codeword ricevuta restituisce i dati usando le regole del codice scelto. A.8 Distanza di Hamming La distanza di Hamming tra due tuple binarie, x e y, definita come δ(x, y), è il numero di bit differenti tra le due tuple. Ad esempio x = 0011 e y = 0101 allora δ = (x, y) = 2.

49 A Concetti di probabilità e statistica 49 A.9 Efficienza del codice Al fine di ottenere una valutazione del codice sono stati adottati alcuni criteri [Dub07, pag. 76]. 1. La capacità del codice di essere fault tolerant a seconda di quanto riesca a rilevare e correggere gli errori. Un codice binario è definito buono se la p ue q (n k) [Per91, LYCBF79, LYCH76]. 2. Tasso di informazione k n, la quantità di informazione ridondante aggiuntiva ai dati. 3. La complessità degli algoritmi di codifica e decodifica, quindi la complessità dell hardware necessario. A.10 Esponenziale negativa Questa tipologia di distribuzioni serve a descrivere l affidabilità dei sistemi, senza memoria. L esponenziale negativa normalizzata, è mostrata nella (22): f (t) = λe λt (22) dove t, rappresenta il tempo, e λ, è una costante caratteristica che rappresenta il rischio istantaneo di fallimento [Sho02, pag ]. Una rappresentazione grafica della densità dell esponenziale negativa con λ = 0.5; 1.0; 1.5, è mostrata in Figura 20 a Pagina 49. Figura 20: Distribuzione esponenziale negativa

Sistemi Elettronici Sicuri. Rilevamento degli errori nei sistemi di elaborazione digitali...

Sistemi Elettronici Sicuri. Rilevamento degli errori nei sistemi di elaborazione digitali... Sistemi Elettronici Sicuri Rilevamento degli errori nei sistemi di elaborazione digitali v. 1.4c... Massimo Manara - Luca Uberti Foppa... Università degli Studi di Milano Indice generale Concetti generali

Dettagli

Rilevazione degli errori nei sistemi digitali

Rilevazione degli errori nei sistemi digitali Facoltà di Scienze Matematiche, Fisiche e Naturali DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Laurea Magistrale in Scienze e Tecnologie dell Informazione Corso di SISTEMI ELETTRONICI SICURI Rilevazione

Dettagli

Tecniche per il progetto di sistemi elettronici tolleranti ai guasti

Tecniche per il progetto di sistemi elettronici tolleranti ai guasti Tecniche per il progetto di sistemi elettronici tolleranti ai guasti Fulvio Corno, Maurizio Rebaudengo, Matteo Sonza Reorda Politecnico di Torino Dipartimento di Automatica e Informatica Le tecniche di

Dettagli

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013

Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013 Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013 In questo documento vengono illustrate brevemente le operazioni aritmetiche salienti e quelle logiche ad esse strettamente collegate.

Dettagli

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 I CODICI 1 IL CODICE BCD 1 Somma in BCD 2 Sottrazione BCD 5 IL CODICE ECCESSO 3 20 La trasmissione delle informazioni Quarta Parte I codici Il codice BCD

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

ARCHITETTURA DI RETE FOLEGNANI ANDREA

ARCHITETTURA DI RETE FOLEGNANI ANDREA ARCHITETTURA DI RETE FOLEGNANI ANDREA INTRODUZIONE È denominata Architettura di rete un insieme di livelli e protocolli. Le reti sono organizzate gerarchicamente in livelli, ciascuno dei quali interagisce

Dettagli

Le tecniche di ridondanza

Le tecniche di ridondanza Le tecniche di ridondanza Fulvio Corno, Maurizio Rebaudengo, Matteo Sonza Reorda Politecnico di Torino Dipartimento di Automatica e Informatica Introduzione Introducendo ridondanza nel sistema se ne accrescono

Dettagli

Il concetto di valore medio in generale

Il concetto di valore medio in generale Il concetto di valore medio in generale Nella statistica descrittiva si distinguono solitamente due tipi di medie: - le medie analitiche, che soddisfano ad una condizione di invarianza e si calcolano tenendo

Dettagli

Codifiche a lunghezza variabile

Codifiche a lunghezza variabile Sistemi Multimediali Codifiche a lunghezza variabile Marco Gribaudo marcog@di.unito.it, gribaudo@elet.polimi.it Assegnazione del codice Come visto in precedenza, per poter memorizzare o trasmettere un

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità

Un metodo per il rilevamento degli errori: la tecnica del Bit di Parità Appunti: Tecniche di rilevazione e correzione degli errori 1 Tecniche di correzione degli errori Le tecniche di correzione degli errori sono catalogabili in: metodi per il rilevamento degli errori; metodi

Dettagli

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, 7155 2 = 1, 431 0, 431 2 = 0, 862 0, 896 2 = 1, 792 0, 724 2 = 1, 448 0, 448 2 = 0, 896

(71,1), (35,1), (17,1), (8,1), (4,0), (2,0), (1,0), (0,1) 0, 7155 2 = 1, 431 0, 431 2 = 0, 862 0, 896 2 = 1, 792 0, 724 2 = 1, 448 0, 448 2 = 0, 896 2 Esercizio 2.2 La rappresentazione esadecimale prevede 16 configurazioni corrispondenti a 4 bit. Il contenuto di una parola di 16 bit può essere rappresentato direttamente con 4 digit esadecimali, sostituendo

Dettagli

Informazione analogica e digitale

Informazione analogica e digitale L informazione L informazione si può: rappresentare elaborare gestire trasmettere reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica

Dettagli

la scienza della rappresentazione e della elaborazione dell informazione

la scienza della rappresentazione e della elaborazione dell informazione Sistema binario Sommario informatica rappresentare informazioni la differenza Analogico/Digitale i sistemi di numerazione posizionali il sistema binario Informatica Definizione la scienza della rappresentazione

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 1: eseguire il complemento a 10 di 765 COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento

Dettagli

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella. Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell

Dettagli

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997 1 RAPPRESENTAZIONE BINARIA DEI NUMERI Andrea Bobbio Anno Accademico 1996-1997 Numeri Binari 2 Sistemi di Numerazione Il valore di un numero può essere espresso con diverse rappresentazioni. non posizionali:

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

La firma digitale CHE COSA E'?

La firma digitale CHE COSA E'? La firma digitale La Firma Digitale è il risultato di una procedura informatica che garantisce l autenticità e l integrità di messaggi e documenti scambiati e archiviati con mezzi informatici, al pari

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Comunicazione codifica dei dati. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Comunicazione codifica dei dati. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Comunicazione codifica dei dati Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Trasmissione dati La trasmissione dati,permette di trasmettere a distanza informazioni di tipo digitale

Dettagli

Laboratorio di Architettura degli Elaboratori A.A. 2015/16 Circuiti Logici

Laboratorio di Architettura degli Elaboratori A.A. 2015/16 Circuiti Logici Laboratorio di Architettura degli Elaboratori A.A. 2015/16 Circuiti Logici Per ogni lezione, sintetizzare i circuiti combinatori o sequenziali che soddisfino le specifiche date e quindi implementarli e

Dettagli

Testi di Esercizi e Quesiti 1

Testi di Esercizi e Quesiti 1 Architettura degli Elaboratori, 2009-2010 Testi di Esercizi e Quesiti 1 1. Una rete logica ha quattro variabili booleane di ingresso a 0, a 1, b 0, b 1 e due variabili booleane di uscita z 0, z 1. La specifica

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

4. Operazioni elementari per righe e colonne

4. Operazioni elementari per righe e colonne 4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:

Dettagli

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno

Parte II Indice. Operazioni aritmetiche tra valori rappresentati in binario puro. Rappresentazione di numeri con segno Parte II Indice Operazioni aritmetiche tra valori rappresentati in binario puro somma sottrazione Rappresentazione di numeri con segno modulo e segno complemento a 2 esercizi Operazioni aritmetiche tra

Dettagli

Codifica binaria dei numeri relativi

Codifica binaria dei numeri relativi Codifica binaria dei numeri relativi Introduzione All interno di un calcolatore, è possibile utilizzare solo 0 e 1 per codificare qualsiasi informazione. Nel caso dei numeri, non solo il modulo ma anche

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Sistemi di numerazione posizionali Rappresentazione dei numeri Rappresentazione dei numeri nei calcolatori rappresentazioni finalizzate ad algoritmi efficienti per le operazioni

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

4. Operazioni aritmetiche con i numeri binari

4. Operazioni aritmetiche con i numeri binari I Numeri Binari 4. Operazioni aritmetiche con i numeri binari Contare con i numeri binari Prima di vedere quali operazioni possiamo effettuare con i numeri binari, iniziamo ad imparare a contare in binario:

Dettagli

Informatica. Rappresentazione binaria Per esempio +101010000 diventa +0.10101 10 18/10/2007. Introduzione ai sistemi informatici 1

Informatica. Rappresentazione binaria Per esempio +101010000 diventa +0.10101 10 18/10/2007. Introduzione ai sistemi informatici 1 Informatica Pietro Storniolo storniolo@csai.unipa.it http://www.pa.icar.cnr.it/storniolo/info200708 Numeri razionali Cifre più significative: : sono le cifre associate ai pesi maggiori per i numeri maggiori

Dettagli

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it

Excel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo

Dettagli

Informatica. Rappresentazione dei numeri Numerazione binaria

Informatica. Rappresentazione dei numeri Numerazione binaria Informatica Rappresentazione dei numeri Numerazione binaria Sistemi di numerazione Non posizionali: numerazione romana Posizionali: viene associato un peso a ciascuna posizione all interno della rappresentazione

Dettagli

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

POLIAGE GUIDA RAPIDA

POLIAGE GUIDA RAPIDA www.candian.itinfo@candian.it!!"#$% &%'%$%(%)*)+,-,'!-#,%$. POLIAGE GUIDA RAPIDA I. Codifica di una prestazione Pag. 2 II. Inserimento di un nuovo professionista 4 I Creazione Profilo Agenda 6 II Gestione

Dettagli

Interesse, sconto, ratei e risconti

Interesse, sconto, ratei e risconti TXT HTM PDF pdf P1 P2 P3 P4 293 Interesse, sconto, ratei e risconti Capitolo 129 129.1 Interesse semplice....................................................... 293 129.1.1 Esercizio per il calcolo dell

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri 1 Da base 2 a base 10 I seguenti esercizi richiedono di convertire in base 10 la medesima stringa binaria codificata rispettivamente

Dettagli

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

la scienza della rappresentazione e della elaborazione dell informazione

la scienza della rappresentazione e della elaborazione dell informazione Sistema binario Sommario informatica rappresentare informazioni la differenza Analogico/Digitale i sistemi di numerazione posizionali il sistema binario Informatica Definizione la scienza della rappresentazione

Dettagli

Alessandro Pellegrini

Alessandro Pellegrini Esercitazione sulle Rappresentazioni Numeriche Esistono 1 tipi di persone al mondo: quelli che conoscono il codice binario e quelli che non lo conoscono Alessandro Pellegrini Cosa studiare prima Conversione

Dettagli

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,

EXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro, EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area

Dettagli

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014 Progetto ICoNLingua Scienza senza Frontiere CsF- Italia Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014 1. Introduzione La valutazione sia in itinere

Dettagli

Sistemi di Numerazione Binaria NB.1

Sistemi di Numerazione Binaria NB.1 Sistemi di Numerazione Binaria NB.1 Numeri e numerali Numero: entità astratta Numerale : stringa di caratteri che rappresenta un numero in un dato sistema di numerazione Lo stesso numero è rappresentato

Dettagli

I sistemi di numerazione

I sistemi di numerazione I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono

Dettagli

Guida Compilazione Piani di Studio on-line

Guida Compilazione Piani di Studio on-line Guida Compilazione Piani di Studio on-line SIA (Sistemi Informativi d Ateneo) Visualizzazione e presentazione piani di studio ordinamento 509 e 270 Università della Calabria (Unità organizzativa complessa-

Dettagli

LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B

LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B LABORATORIO DI PROGRAMMAZIONE 2012 2013 EDIZIONE 1, TURNO B 23.XI.2012 VINCENZO MARRA Indice Esercizio 1 1 Menu 1 Tempo: 35 min. 2 Commento 1 2 Esercizio 2 2 Ordinamento e ricerca binaria con la classe

Dettagli

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata Lezione n.6 Unità di controllo microprogrammata 1 Sommario Unità di controllo microprogrammata Ottimizzazione, per ottimizzare lo spazio di memoria occupato Il moltiplicatore binario Esempio di architettura

Dettagli

Calcolo del Valore Attuale Netto (VAN)

Calcolo del Valore Attuale Netto (VAN) Calcolo del Valore Attuale Netto (VAN) Il calcolo del valore attuale netto (VAN) serve per determinare la redditività di un investimento. Si tratta di utilizzare un procedimento che può consentirci di

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Epoca k Rata Rk Capitale Ck interessi Ik residuo Dk Ek 0 S 0 1 C1 Ik=i*S Dk=S-C1. n 0 S

Epoca k Rata Rk Capitale Ck interessi Ik residuo Dk Ek 0 S 0 1 C1 Ik=i*S Dk=S-C1. n 0 S L AMMORTAMENTO Gli ammortamenti sono un altra apllicazione delle rendite. Il prestito è un operazione finanziaria caratterizzata da un flusso di cassa positivo (mi prendo i soldi in prestito) seguito da

Dettagli

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video Video Librerie digitali Gestione di video Ogni filmato è composto da più parti Video Audio Gestito come visto in precedenza Trascrizione del testo, identificazione di informazioni di interesse Testo Utile

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

Sistemi di Numerazione

Sistemi di Numerazione Fondamenti di Informatica per Meccanici Energetici - Biomedici 1 Sistemi di Numerazione Sistemi di Numerazione I sistemi di numerazione sono abitualmente posizionali. Gli elementi costitutivi di un sistema

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo

COLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo Release 5.20 Manuale Operativo COLLI Gestione dei Colli di Spedizione La funzione Gestione Colli consente di generare i colli di spedizione in cui imballare gli articoli presenti negli Ordini Clienti;

Dettagli

GUIDA AL CALCOLO DEI COSTI DELLE ATTIVITA DI RICERCA DOCUMENTALE

GUIDA AL CALCOLO DEI COSTI DELLE ATTIVITA DI RICERCA DOCUMENTALE GUIDA AL CALCOLO DEI COSTI DELLE ATTIVITA DI RICERCA DOCUMENTALE L applicazione elaborata da Nordest Informatica e disponibile all interno del sito è finalizzata a fornirvi un ipotesi dell impatto economico

Dettagli

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. E. Calabrese: Fondamenti di Informatica Problemi-1 Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. L'informatica

Dettagli

Software Servizi Web UOGA

Software Servizi Web UOGA Manuale Operativo Utente Software Servizi Web UOGA S.p.A. Informatica e Servizi Interbancari Sammarinesi Strada Caiese, 3 47891 Dogana Tel. 0549 979611 Fax 0549 979699 e-mail: info@isis.sm Identificatore

Dettagli

Analisi e diagramma di Pareto

Analisi e diagramma di Pareto Analisi e diagramma di Pareto L'analisi di Pareto è una metodologia statistica utilizzata per individuare i problemi più rilevanti nella situazione in esame e quindi le priorità di intervento. L'obiettivo

Dettagli

Esercizio 1: trading on-line

Esercizio 1: trading on-line Esercizio 1: trading on-line Si realizzi un programma Java che gestisca le operazioni base della gestione di un fondo per gli investimenti on-line Creazione del fondo (con indicazione della somma in inizialmente

Dettagli

CONTROLLO IN TENSIONE DI LED

CONTROLLO IN TENSIONE DI LED Applicazioni Ver. 1.1 INTRODUZIONE CONTROLLO IN TENSIONE DI LED In questo documento vengono fornite delle informazioni circa la possibilità di pilotare diodi led tramite una sorgente in tensione. La trattazione

Dettagli

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4 ARCHITETTURE MICROPROGRAMMATE. 1 Necessità di un architettura microprogrammata 1 Cos è un architettura microprogrammata? 4 Struttura di una microistruzione. 5 Esempi di microprogrammi 9 Esempio 1 9 Esempio

Dettagli

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio Appunti di informatica Lezione 2 anno accademico 2015-2016 Mario Verdicchio Sistema binario e logica C è un legame tra i numeri binari (0,1) e la logica, ossia la disciplina che si occupa del ragionamento

Dettagli

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO SISTEMI DI NUMERAZIONE DECIMALE E BINARIO Il sistema di numerazione decimale (o base dieci) possiede dieci possibili valori (0, 1, 2, 3, 4, 5, 6, 7, 8 o 9) utili a rappresentare i numeri. Le cifre possiedono

Dettagli

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione I semestre 04/05 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1

Dettagli

SPC e distribuzione normale con Access

SPC e distribuzione normale con Access SPC e distribuzione normale con Access In questo articolo esamineremo una applicazione Access per il calcolo e la rappresentazione grafica della distribuzione normale, collegata con tabelle di Clienti,

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi terza vers.3 in lavorazione Docente SAFFI FABIO Contenuti 01.Esercizi generici sul diagramma di flusso - flow chart... 2

Dettagli

Rappresentazione delle informazioni

Rappresentazione delle informazioni Rappresentazione delle informazioni Abbiamo informazioni (numeri, caratteri, immagini, suoni, video... ) che vogliamo rappresentare (e poter elaborare) in un calcolatore. Per motivi tecnologici un calcolatore

Dettagli

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di

Dettagli

Comparatori. Comparatori di uguaglianza

Comparatori. Comparatori di uguaglianza Comparatori Scopo di un circuito comparatore é il confronto tra due codifiche binarie. Il confronto può essere effettuato per verificare l'uguaglianza oppure una relazione d'ordine del tipo "maggiore",

Dettagli

In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori.

In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori. Release 5.20 Manuale Operativo ORDINI PLUS Gestione delle richieste di acquisto In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori. La gestione

Dettagli

Memorie ROM (Read Only Memory)

Memorie ROM (Read Only Memory) Memorie ROM (Read Only Memory) Considerando la prima forma canonica, la realizzazione di qualsiasi funzione di m variabili richiede un numero di porte AND pari al numero dei suoi mintermini e di prolungare

Dettagli

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput Valutazione delle Prestazioni Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

GENERAZIONE PREVENTIVI

GENERAZIONE PREVENTIVI GENERAZIONE PREVENTIVI Per la creazione di un nuovo preventivo si fa sempre riferimento ad un Tipo Preventivo, identificato da una certa Sigla. Nell esempio seguente vediamo come il preventivo abbia impostata

Dettagli

CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I)

CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Codifica delle Informazioni T insieme delle informazioni da rappresentare E insieme

Dettagli

La memoria centrale (RAM)

La memoria centrale (RAM) La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica: Veloce ma volatile e costosa Due eccezioni R.O.M.

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Logica e codifica binaria dell informazione

Logica e codifica binaria dell informazione Politecnico di Milano Corsi di Laurea in Ingegneria Matematica e Ingegneria Fisica Dipartimento di Elettronica ed Informazione Logica e codifica binaria dell informazione Anno Accademico 2002 2003 L. Muttoni

Dettagli

Capitolo II. La forma del valore. 7. La duplice forma in cui si presenta la merce: naturale e di valore.

Capitolo II. La forma del valore. 7. La duplice forma in cui si presenta la merce: naturale e di valore. Capitolo II La forma del valore 7. La duplice forma in cui si presenta la merce: naturale e di valore. I beni nascono come valori d uso: nel loro divenire merci acquisiscono anche un valore (di scambio).

Dettagli

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

Calcolatori: Algebra Booleana e Reti Logiche

Calcolatori: Algebra Booleana e Reti Logiche Calcolatori: Algebra Booleana e Reti Logiche 1 Algebra Booleana e Variabili Logiche I fondamenti dell Algebra Booleana (o Algebra di Boole) furono delineati dal matematico George Boole, in un lavoro pubblicato

Dettagli

FIRESHOP.NET. Gestione Lotti & Matricole. www.firesoft.it

FIRESHOP.NET. Gestione Lotti & Matricole. www.firesoft.it FIRESHOP.NET Gestione Lotti & Matricole www.firesoft.it Sommario SOMMARIO Introduzione... 3 Configurazione... 6 Personalizzare le etichette del modulo lotti... 6 Personalizzare i campi che identificano

Dettagli

Sistema Banca dati e Repertorio dei dispositivi medici Notifiche multiple di DM simili

Sistema Banca dati e Repertorio dei dispositivi medici Notifiche multiple di DM simili Sistema Banca dati e Repertorio dei dispositivi medici Notifiche multiple di DM simili Questa presentazione intende illustrare brevemente la nuova funzionalità (Notifiche multiple di DM simili) predisposta

Dettagli