UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica...

54
UNIVERSITA’ DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti Rappresentazione ed elaborazione automatica dell’informazione Prof. Michele Amoretti Fondamenti di Informatica a.a. 2007/2008

Transcript of UNIVERSITA DEGLI STUDI DI PARMA Corso di Laurea in Ingegneria Gestionale Fondamenti di Informatica...

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Rappresentazione edelaborazione automatica

dell’informazioneProf. Michele Amoretti

Fondamenti di Informaticaa.a. 2007/2008

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Sommario

• Codifica dell’informazione

• Rappresentazione dell’informazione nei calcolatori- informazioni numeriche- informazioni testuali- suoni - immagini

• Algebra booleana

• Porte logiche e cenni di reti logiche

• ALU, registri, CPU

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Codifica dell’informazione

Un simbolo è un elemento della comunicazione rappresentante un concetto o quantità (per es. un'idea, un oggetto, una qualità).

Un alfabeto è un insieme finito di simboli (diversi tra loro).Es.Alfabeto italiano: {A, B, C, D, …Z}Alfabeto greco: {α, β, γ, δ, ...ω}Alfabeto binario: {0, 1}

Una stringa è una sequenza finita di simboli giustapposti.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Codifica dell’informazione

Un codice è un insieme di regole che mettono in corrispondenza biunivoca ognisimbolo appartenente ad un alfabeto più ricco con una stringa di simboli appartenente ad un alfabeto più ridotto.

Per codifica si intende il processo di trasformazione dell’informazione secondo le regole definite da un certo codice.La decodifica è il processo inverso.

Es. Codice Morse

Definisce la corrispondenza tra un insieme di stringhe di simboli nell’alfabeto {., _} el’insieme dei simboli dell’alfabeto inglese.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Rappresentazione dell’informazione nei calcolatori

I calcolatori elettronici sono macchine complesse in grado di elaborare velocemente grandi quantità di informazione, ma per farlo richiedono che l’informazione sia espressa secondo un qualche codice che utilizzi i simboli dell’alfabeto più semplice di tutti, quello binario.

Perchè?

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Rappresentazione dell’informazione nei calcolatori

.. perché dal punto di vista della progettazione e realizzazione circuitale è più conveniente elaborare segnali digitali a 2 livelli, piuttosto che segnali digitali a M>2 livelli o segnali analogici.

La figura confronta un segnale analogico e un segnale digitale. Nel primo l’informazione è contenuta nella forma stessa del segnale, mentre nel secondo è contenuta nella particolare sequenza di bit che esso realizza.

Nel seguito vedremo come si esprimono informazioni di vario tipoin termini di simboli binari, e come si elaborano.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Rappresentazione dell’informazione nei calcolatori

L'unità atomica è il bit – simbolo b.

L'insieme di 8 bit è detto byte – simbolo B.

210 B = 1 KB (kilobyte)220 B = 1 MB (megabyte)230 B = 1 GB (gigabyte)

La memoria dei calcolatori è divisa in celle la cui dimensione W è ormai standard ed è proprio pari a 1 byte.

Multipli del byte sono:

word (16 bit)double-word (32 bit)quad-word (64 bit)

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Rappresentazione binaria di informazioni numeriche

Il calcolatore, come dice il nome stesso, è una macchina che calcola.

Qualsiasi informazione in ingresso viene ricondotta a informazione di tipo numerico, su cui il processore (che è il cuore del calcolatore) svolge operazioni aritmetiche.

Un processore “a N bit” è in grado di elaborare numeri interi compresi tra 0 e 2N-1 (o tra -2N-1 e 2N-1-1).

Di solito N è un multiplo di 8.

I processori più potenti oggi sono a 64 bit.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Richiamo su numeri e sistemi di numerazione

Numero: descrizione quantitativa degli oggetti contenuti in un dato insieme.

Sistema di numerazione: insieme di simboli e regole atti a rappresentare i numeri.

Numerazione posizionale: ogni cifra assume un valore che dipende dalla posizione (peso) nella stringa numerica.

Es. sistema posizionale decimale1475 = 1x103 + 4x102 + 7x101 + 5x100

In generale, dato un numero B≥2 detto base e l’insieme β composto da B simboli diversi, β={0,1,2,…,B-1}, si possono scrivere stringhe di n cifre (ciascuna in β)

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Conversione di base

Da base B a base 10:cn-1cn-2…c1c0 = cn-1xBn-1 + cn-2xBn-2 +…+ c1xB1 + c0xB0

Da base B=2 (sistema binario) a base 10:

100112 = 1x24 + 0x23 + 0x22 + 1x21 + 1x20 = 1910

Da base B=16 (sistema esadecimale) a base 10:

2216 = 2x161 + 2x160 = 3410

Da base B=8 (sistema ottale) a base 10:

4178 = 4x82 + 1x81 + 7x80 = 27110

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Conversione di base

Da base 10 a base 2: ripeti

dividere per 2 il numero in base 10 - il resto è ci (i=0,…,n-1)- il quoziente è il nuovo dividendo

fino a che l’ultimo quoziente ottenuto non è più divisibile.

Es. 3510: (17,1)(8,1)(4,0)(2,0)(1,0)(0,1) 1000112

Da base Bk a base B: reinterpretare la stringa cn-1cn-2…c1c0 in base Bk, sostituendo a ciascun ci della base Bk la corrispondente rappresentazione in base B.

Es. 1AB0716 = (0001 1010 1101 0000 0111)2

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Aritmetica binaria

Somma: come nel sistema decimale, da destra verso sinistra, tenendo conto dei riporti.

0+0=00+1=11+0=11+1=0 con riporto di 1

Sottrazione: come nel sistema decimale, da destra verso sinistra, tenendo conto dei prestiti.

0-0=00-1=1 con prestito di 11-0=11-1=0

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Aritmetica binaria

Moltiplicazione: come nel sistema decimale, si calcolano i prodotti parziali e l’esecuzione della loro somma.

0×0=00×1=01×0=01×1=1

Divisione: come nel sistema decimale, si procede per sottrazioni tra parti del dividendo e del divisore.

0/0 indefinito0/1=01/0 errore1/1=1

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Numeri binari negativi

Rappresentazione in modulo e segno: il bit più significativo rappresenta il segno del numero (1 sta per negativo, 0 per positivo).

Rappresentazione in complemento a 1: il cambiamento di segno viene ottenuto complementando ciascun bit.

Rappresentazione in complemento a 2: il cambiamento di segno viene ottenuto complementando a 1 e aggiungendo 1.

In genere si adotta quest’ultima perché non introduce la doppia rappresentazione dello zero (+0 e -0) e perché consente di effettuare le sottrazioni come se fossero delle somme.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Numeri binari negativi

Es.

Usando 3 bit e la notazione in complemento a 2 si possono rappresentare i seguenti numeri:

(3 – 2)10 è 011 + 110 = 001

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Numeri in virgola fissa

La stringa cn-1cn-2…c1c0 ,c-1c-2…c-m

è composta da una parte intera (a sinistra della virgola) e da una parte frazionaria (a destra della virgola).

Conversione della parte frazionaria da base B a base 10:

c-1xB-1 + c-2xB-2 +…+ c-mxB-m

Conversione della parte frazionaria da base 10 a base 2: ripeti

moltiplicare per 2 il numero in base 10 - la parte intera del risultato è ci (i=-1,…,-m)- la parte frazionaria del risultato è il nuovo moltiplicando

fino a che la parte frazionaria risulta 0.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Numeri in virgola fissa

Es.

Conversione di 5,7510

Parte intera: 510 1012

Parte frazionaria:

0,75*2 = 1,5 la prima cifra binaria dopo la virgola è 1

0,5*2 = 1,0 la seconda cifra dopo la virgola è 1

Quindi 5,7510 101,112

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Numeri in virgola mobile

Usando la cosiddetta notazione in virgola mobile (floating point) o scientifica, un numero viene espresso da tre elementi:

B (base)E (esponente)M (mantissa)

M×BE

Questo metodo di scrittura permette di rappresentare un larghissimo insieme numerico all'interno di un determinato numero di cifre, cosa che la virgola fissa non concede.

Es. 5,7510 diventa 5,75×101, o meglio ancora .575×102

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Numeri in virgola mobile

Forma normalizzata:

• si sceglie di avere la seguente relazione: 0 ≤ M < 1

• l’esponente è espresso in complemento a B

• la mantissa è espressa in modulo e segno

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Numeri in virgola mobile

Es.

Usando la notazione scientifica normalizzata, in base B=2, è il numero 5,7510 diventa:

+.10111 × 2+3

La rappresentazione complessiva, utilizzando 16 bit, è:

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Standard IEEE-754/85

Singola precisione (n=32 bit):- Il segno è 0 per il + e 1 per il –- La mantissa di 23 bit è in notazione normalizzata implicita,

cioè si intende 0,{i 23 bit della mantissa}- L’esponente di 8 bit è in notazione polarizzata (biased) con

costante di polarizzazione (bias) pari a 127; in dettaglio: 00000000 config. riservata 00000001 è -126 … 01111111 è 0 … 11111110 è +127 11111111 config. riservata

Doppia precisione (n=64 bit):come sopra ma con 52 bit per la mantissa e 11 bit per l’esponente, con bias pari a 1023.

usata per il tipo semplice float in Java!

usata per il tipo semplice double in Java!

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Limiti della rappresentazione binaria di numeri decimali

Attenzione! Certi numeri che in base 10 hanno una quantità finita di cifre dopo la virgola, potrebbero averne una quantità infinita se convertiti in un’altra base, e in particolare nella base 2.

Es. 0,110 0,0001100110011..2

I processori possono gestire operandi di dimensione limitata, per cui effettuano dei troncamenti quando i numeri decimali hanno rappresentazione binaria con troppe cifre dopo la virgola.

E’ possibile quindi che poi la riconversione in decimale non dia il risultato atteso.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Rappresentazione binaria di informazioni testuali

Per rappresentare dati testuali in binario, il sistema assegna a ciascuna lettera o simbolo stampabile un numero univoco, quindi memorizza internamente tale simbolo usando l’equivalente binario del numero.

Es.

Simbolo, valore decimale, valore binarioA, 0, 00000000B, 1, 00000001C, 2, 00000010D, 3, 00000011.. .. ..Z, 26, 00011010.. .. ..@, 128, 10000000.. .. ..

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Codifica ASCII

American Standard Code for the Interchange of Information

Codifica che usa 8 bit per ciascun simbolo alfanumerico, ma il bit più significativo è sempre a 0 perché in origine la codifica era a 7 bit. Quindi si hanno 128 possibili simboli (ASCII standard).

Usando anche il bit più significativo si hanno 256 possibili simboli (ASCII esteso).

Alcuni simboli non sono stampabili, ma sonocaratteri di controllo usati soprattutto neiprotocolli di comunicazione.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Codifica UNICODE

Sta guadagnando popolarità perché usa 16 bit per ciascun carattere, il che significa che può rappresentare 216 = 65536 caratteri univoci contro invece dei soli 28 = 256 dell’ASCII esteso.

Questo è particolarmente importante in un mondo che è sempre più globalizzato, grazie alle reti informatiche e in particolare al Web.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Rappresentazione binaria di suoni

Il suono è una informazione di tipo analogico.

Una singola nota è una forma d’onda sinusoidale con una certa ampiezza (che rende conto dell’intensità con cui viene suonata a nota) e un certo periodo (il cui inverso, la frequenza, caratterizza la nota in modo univoco – do piuttosto che fa, ecc. e con quale “altezza”).

Un suono complesso è dato dalla sovrapposizione di molteplici forme d’onda.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Rappresentazione binaria di suoni

Il microfono traduce il suono in un segnale analogico che per essere memorizzato (e quindi elaborato) da un calcolatore elettronico deve essere digitalizzato.

Vengono presi dei campioni del segnale analogico, a intervalli regolari. La sequenza dei valori numerici campionati viene memorizzata nel calcolatore come sequenza di stringhe binarie.

Viceversa, a partire da valori numerici è possibile generare un segnale analogico.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Rappresentazione binaria di immagini

Un’immagine è una serie continua di valori di intensità e colore, e può essere digitalizzata campionando le informazioni analogiche, esattamente come accade per il suono.

Il processo di campionamento, definito spesso scansione, consiste nella misurazione dei valori di intensità di punti distinti situati a intervalli regolari su tutta la superficie dell’immagine. Questi punti sono chiamati pixel, dall’inglese “picture elements”; maggiore è il numero di pixel utilizzati, più precisa risulta la codifica dell’immagine.

Mediamente l’occhio umano non è in grado di distinguere con precisione i componenti separati da meno di 0,1 mm, perciò se i pixel sono sufficientemente densi, appaiono alla vista come una singola immagine contigua.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Rappresentazione binaria di immagini

Una fotocamera digitale di buona qualità, per esempio, memorizza circa 6–8 milioni di pixel per fotografia.

Per un’immagine da 8 × 12 cm, ciò equivale a circa 60.000 pixel/cm2 o 250 pixel per cm lineare. Ciò significa che i singoli pixel sono separati da circa 0,04 mm, troppo poco perché l’occhio umano possa distinguerli uno per uno.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Rappresentazione binaria di immagini

Una delle domande chiave a cui occorre rispondere è quante informazioni vengono memorizzate per ciascun pixel.

Supponiamo di voler memorizzare la rappresentazione di un’immagine in bianco e nero. La soluzione più facile ed efficiente in termini di spazio è quella di contrassegnare ciascun pixel come bianco, memorizzato come binario 0, o nero, memorizzato come binario 1.

Il solo problema è che in questo modo si produce un’immagine in bianco e nero, molto netta e con contrasto visivo non sempre gradevole. Un modo migliore, anche se richiede più spazio, consiste nel rappresentare le immagini in bianco e nero utilizzando una scala di grigi di intensità variabile. Per esempio, se si utilizzano 3 bit per pixel, è possibile rappresentare 23 = 8 gradazioni di intensità dal livello 0, bianco puro, al livello 7, nero puro.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Rappresentazione binaria di immagini

Il formato più comune per la memorizzazione delle immagini a colori è lo schema di codifica RGB, dove RGB è l’acronimo in lingua inglese dei colori rosso, verde e blu (Red, Green, Blue). Questa tecnica descrive uno specifico colore catturando il singolocontributo di un pixel per ciascuno dei tre colori fondamentali: rosso, verde e blu. Comunemente, si utilizza un byte per ciascuno dei 3 colori, il che consente di rappresentare intervalli di intensità da 0 a 255.

Es. Magenta

RGB: (255,0,255)

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Spazio di memorizzazione richiesto

Un romanzo di 300 pagine contiene circa 100000 parole. Ciascuna parola è costituita in media da cinque caratteri e ogni carattere può essere codificato nel set di codici ASCII usando 8 bit. Così, il numero totale di bit necessario a rappresentare questo libro è all’incirca:

100000 parole × 5 car/parola × 8 bit/car = 4 Mbit

A titolo di confronto, 1 minuto di registrazione audio codificata in standard MP3, che esegue il campionamento 44100 volte al secondo con profondità di 16 bit per campione, richiede:

44100 campioni/sec × 16 bit/campione × 60 sec/minuto = 42 Mbit

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Algebra booleana

L’elaborazione dell’informazione affonda le sue radici nella logica, che è la scienza delle regole e delle leggi del pensare.

0/1 vero/falso

La logica è alla base di ogni argomentazione. I greci riconobbero per primi il suo ruolo nella matematica e nella filosofia e si dedicarono al suo studio con grande impegno e con notevoli risultati.

Risalgono infatti a filosofo greco Aristotele (384, 322 a.C.) i primi studi seri in questo campo. Nelle sue opere, raccolte sotto il titolo Organon, scrisse il primo trattato sistematico di logica. La sua opera ebbe una notevole influenza, non sempre positiva, in tutti i campi del sapere per parecchi anni fino a tutto il Medioevo.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Algebra booleana

Ma essendo la logica di Aristotele espressa nel linguaggio naturale, ne conservava tutte le ambiguità.

Solo nel 17esimo secolo, con Leibniz, i filosofi iniziarono ad esprimere le regole del ragionamento per mezzo di un formalismo simbolico.

Fu nel 1847 con la pubblicazione dei testi “Analisi matematica della logica” di George Boole e “Logica Formale” di Augustus De Morgan che si cominciò a parlare di logica simbolica e che la logica cominciò a far parte integrante della matematica.

Con Boole e DeMorgan, la logica e la matematica divennero strettamente intrecciate. La logica è da allora considerata parte della matematica, ma alla stesso tempo ne costituisce il linguaggio.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Algebra booleana

L’algebra booleana definisce le regole di manipolazione dei due valori logici vero e falso.

L’algebra booleana è utilizzata in molti campi del sapere, ad esempio nella progettazione dei circuiti logici (che sono alla base dei calcolatori), nella teoria degli insiemi, nel calcolo proposizionale, ecc.

Le regole dell’algebra Booleana vengono utilizzate nella scrittura di algoritmi e programmi, perché questi sono modelli formali di procedure mentali o manuali umaneche si vuole vengano riprodotte da una macchina.

G. Boole - Mathematical Analysis of Logic (1847)La logica va collegata alla matematica e non alla metafisica. Si costruisce un sistema formale e solo successivamente si assegna ad esso una interpretazione nel linguaggio comune.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Algebra booleana

L’algebra booleana consiste di:- un insieme K composto da due elementi denotati con 0 e 1- due funzioni {+, } che fanno corrispondere a una qualsiasi coppia di elementi di K un elemento di K - una funzione {¯}

tali per cui valgono i seguenti assiomi:

1. K contiene al minimo due elementi a e b, tali che a b

2. Chiusura: Per ogni a e b in K: a+b K, a• b K

3. Proprietà commutativa: a+b = b+a, a • b = b • a

4. Proprietà associativa: (a + b) + c = a + (b+c) = a+ b+c a • (b • c) = (a • b) • c = a • b • c

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Algebra booleana

5. Indentità:Esiste un elemento identità rispetto a {+}, tale che a + 0 = a, per ogni a K Esiste un elemento identità rispetto a {• }, tale che a • 1 = a, per ogni a K

6. Proprietà distributiva: a + (b • c) = (a + b) • (a + c) a • (b + c) = (a • b) + (a • c)

7. Elemento inverso: per ogni a K esiste un elemento a K tale che (a + a) = 1 e (a • a) = 0

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Algebra booleana

8. Dualità: scambiando somme con prodotti e 0 con 1 il valore di verità di un proposizione non cambia

Teoremi:

1. Indempotenza: a + a = a a • a = a

2. Elementi forzanti: a + 1 = 1 a • 0 = 0

3. Assorbimento: a + (a • b) = a (a+b) • a = a

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Algebra booleana

4. Teorema di De Morgan: a1+a2+ .. +an = a1 · a2 · .. · an

Dimostrazione per induzione:

I) a1+a2 = a1 · a2 si dimostra per induzione perfetta

II) se vale a1+a2+ .. +ak = a1 · a2 · .. · ak per k=n allora vale anche per k=n+1 perché

(a1+a2+ .. +an)+an+1 = a1+a2+ .. +an · an+1

= a1 · a2 · .. · an · an+1

Versione duale: a1 · a2 · .. · an = a1 + a2 + .. + an

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Algebra booleana

Una funzione logica è una legge che fa corrispondere a ogni combinazione di valori delle variabili indipendenti uno e un solo valore binario della variabile z. Può essere espressa in forma algebrica o tabellare.

A f(A)=A

0

1

1

0

f(A,B)=A+B

0011

A B

0101

0111

f(A,B)=A• B

0011

B

0101

0001

A

NOT OR ANDinversione somma logica prodotto logico

),...,,( 21 nxxxfz

nxxx ,...,, 21

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Algebra booleana

Altre funzioni ed operatori elementari sono:

f(A,B)=A+Bf(A,B)=AB

0011

A B

0101

0110

EX-OR (XOR)

f(A,B)=A•B

0011

B

0101

1110

A

NAND

0011

B

0101

1000

A

NOR

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Algebra booleana

Oltre alle funzioni OR e AND, esistono altre funzioni logiche a due variabili (in tutto sono 16).

X Y F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15

0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

AND X somma aritmetica o EX-OR

OR NANDNOR

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Algebra booleana

Una qualunque funzione logica può essere realizzata utilizzando un numero limitato di funzioni elementari (insieme completo).

Sono insiemi completi: NAND, NOR, (AND,NOT), (OR,NOT)

Questa proprietà garantisce che l’uso di un limitato numero di funzioni consente di rappresentare una qualunque funzione logica.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Porte logiche

Una porta logica è un blocco elementare in cui la relazione fra variabili di ingresso e variabili di uscita è descritta da una funzione logica.

Utilizzando un numero limitato di tipi di porte logiche è possibile realizzare un circuito logico combinatorio che realizza una qualsiasi funzione logica.

NOT AND OR

XOR NAND NOR

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Semisommatore

Il semisommatore (“half adder”, HA) è un circuito a due ingressi (A, B) che restituisce il bit di somma degli ingressi (S) e un bit di riporto (C).

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Sommatore completo

Il sommatore completo (“full adder”, FA) è un circuito che, rispetto al semisommatore, comprende anche una linea di riporto in ingresso.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Sommatore

Connettendo più FA assieme è possibile realizzare un circuito che somma numeri binari di lunghezza qualsiasi.

Tipicamente le “parole” binarie hanno lunghezze standard (23 bit = 1 byte, 24 bit = 1 word, ecc.).

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Unità Aritmetica e Logica (ALU)

A partire dal sommatore completo, è possibile costruire un circuito in grado di compiere anche altre operazioni.

Sottrazione tra parole binarie: A – B = A + (-B) = A + (B + 1)

per cui aggiungendo al sommatore una linea di controllo c0 che seleziona B o il suo complemento, e una linea di controllo c1 che seleziona A oppure 0, si ottiene una rete in grado di effettuare sia la somma che la sottrazione (quest’ultima richiede C-1=1).

Per quanto semplice, il circuito risultante rappresenta una unità aritmetica e logica (ALU).

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Unità Aritmetica e Logica (ALU)

c1 c0 C-1 Risultato Commento0 0 0 S=0+B=B Selezione di B0 0 1 S=0+B+1=B+1 Incremento di B0 1 0 S=0+B=B Complementazione di B0 1 1 S=0+B+1=–B Cambio di segno di B1 0 0 S=A+B Somma di A e B1 0 1 S=A+B+11 1 0 S=A+B=A–B–1 1 1 1 S=A+B+1=A–1 Differenza tra A e B

AB

CC-1c0c1

nn

n

S

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Circuiti bistabili

Oltre ad elaborare le informazioni, i calcolatori devono anche memorizzarle.

Gli elementi di memoria (in grado di contenere un bit) possono essere di vario tipo.

Molto usati sono i circuiti bistabili, che sono circuiti combinatori in grado di:

• permanere stabili in due stati diversi (MEMORIA)

• commutare da uno stato all'altro (SCRITTURA)

• manifestare lo stato interno (LETTURA)

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Segnale di clock

Il funzionamento del calcolatore è cadenzato da un segnale periodico (detto segnale di clock), caratterizzato da un periodo di clock TCK.

– Frequenza del clock: fCK= 1/TCK;

Nel periodo TCK il segnale assume il valore logico 1 per un tempo TH e il

valore logico 0 per un tempo TL

– Il rapporto TH / TCK è detto duty-cycle

Il passaggio dal valore 0 al valore 1 è detto fronte di salitaIl passaggio dal valore 1 al valore 0 è detto fronte di discesa

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Flip-flop

Il flip-flop è un circuito bistabile sincrono, cioè regolato da un segnale di clock.

L’effetto del clock è di stabilire quando (a intervalli regolari) il flip-flop può cambiare stato: - con Ck=0 ingressi bloccati, il flip-flop non cambia stato (è opaco)- con Ck=1, gli ingressi sono attivi (il flip-flop è trasparente)

Es. flip-flop JK

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Registri

Per registro si intende un insieme di n identici elementi di memoria (flip-flop), sincronizzati tramite un unico clock.Sono i supporti che materializzano l’informazione nei sistemi di elaborazione.

Se Rin=0, l’ingresso ai FF è 00 per cui il registro mantiene lo stato precedente.

Se Rin=1, sul prossimo clock lo stato di ogni FF diventa quello corrispondente all’ingresso INi. Rout ha funzione di output enable dell’uscita a tre stati.

UNIVERSITA’ DEGLI STUDI DI PARMACorso di Laurea in Ingegneria Gestionale Fondamenti di Informatica

Rappresentazione ed elaborazione automatica dell’informazione Prof. M. Amoretti

Central Processing Unit (CPU)

Il cuore di un sistema di elaborazione è la CPU, che nella versione più semplice è composta da:

• una ALU• alcuni registri• una unità di controllo• un bus interno

ACC

DRAR