La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

elaborazione automatica dell’informazione

Presentazioni simili


Presentazione sul tema: "elaborazione automatica dell’informazione"— Transcript della presentazione:

1 elaborazione automatica dell’informazione
Rappresentazione ed elaborazione automatica dell’informazione Prof. Michele Amoretti Fondamenti di Informatica a.a. 2007/2008

2 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

3 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.

4 Codifica dell’informazione
Un codice è un insieme di regole che mettono in corrispondenza biunivoca ogni simbolo 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 {., _} e l’insieme dei simboli dell’alfabeto inglese.

5 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è?

6 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 tipo in termini di simboli binari, e come si elaborano.

7 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)

8 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.

9 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 decimale 1475 = 1x x x x100 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 β)

10 cn-1cn-2…c1c0 = cn-1xBn-1 + cn-2xBn-2 +…+ c1xB1 + c0xB0
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: = 1x24 + 0x23 + 0x22 + 1x21 + 1x20 = 1910 Da base B=16 (sistema esadecimale) a base 10: 2216 = 2x x160 = 3410 Da base B=8 (sistema ottale) a base 10: 4178 = 4x82 + 1x81 + 7x80 = 27110

11 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)  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 = ( )2

12 Aritmetica binaria Somma: come nel sistema decimale, da destra verso sinistra, tenendo conto dei riporti. 0+0=0 0+1=1 1+0=1 1+1=0 con riporto di 1 Sottrazione: come nel sistema decimale, da destra verso sinistra, tenendo conto dei prestiti. 0-0=0 0-1=1 con prestito di 1 1-0=1 1-1=0

13 Aritmetica binaria Moltiplicazione: come nel sistema decimale, si calcolano i prodotti parziali e l’esecuzione della loro somma. 0×0=0 0×1=0 1×0=0 1×1=1 Divisione: come nel sistema decimale, si procede per sottrazioni tra parti del dividendo e del divisore. 0/0 indefinito 0/1=0 1/0 errore 1/1=1

14 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.

15 Numeri binari negativi
Es. Usando 3 bit e la notazione in complemento a 2 si possono rappresentare i seguenti numeri: (3 – 2)10 è = 001

16 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.

17 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

18 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

19 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

20 Numeri in virgola mobile
Es. Usando la notazione scientifica normalizzata, in base B=2, è il numero 5,7510 diventa: × 2+3 La rappresentazione complessiva, utilizzando 16 bit, è:

21 Standard IEEE-754/85 usata per il tipo semplice float in Java!
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: config. riservata è -126 è 0 è +127 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!

22 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, 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.

23 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 binario A, 0, B, 1, C, 2, D, 3, Z, 26, @, 128,

24 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 sono caratteri di controllo usati soprattutto nei protocolli di comunicazione.

25 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.

26 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.

27 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.

28 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.

29 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 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.

30 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.

31 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 singolo contributo 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)

32 Spazio di memorizzazione richiesto
Un romanzo di 300 pagine contiene circa 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: 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 volte al secondo con profondità di 16 bit per campione, richiede: 44100 campioni/sec × 16 bit/campione × 60 sec/minuto = 42 Mbit

33 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.

34 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.

35 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 umane che 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.

36 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

37 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

38 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

39 Algebra booleana 4. Teorema di De Morgan: a1+a an = a1 · a2 · .. · an Dimostrazione per induzione: I) a1+a2 = a1 · a2 si dimostra per induzione perfetta II) se vale a1+a ak = a1 · a2 · .. · ak per k=n allora vale anche per k=n+1 perché (a1+a an)+an+1 = a1+a an · an+1 = a1 · a2 · .. · an · an+1 Versione duale: a1 · a2 · .. · an = a1 + a an

40 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 1 f(A,B)=A+B 0011 B 0101 0111 f(A,B)=A• B 0001 NOT OR AND inversione somma logica prodotto logico

41 Algebra booleana Altre funzioni ed operatori elementari sono:
f(A,B)=A+B f(A,B)=AB 0011 A B 0101 0110 EX-OR (XOR) f(A,B)=A•B 1 NAND NOR

42 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 AND X somma aritmetica o EX-OR OR NAND NOR

43 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.

44 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

45 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).

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

47 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.).

48 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).

49 Unità Aritmetica e Logica (ALU)
c1 c0 C Risultato Commento S=0+B=B Selezione di B S=0+B+1=B+1 Incremento di B S=0+B=B Complementazione di B S=0+B+1=–B Cambio di segno di B S=A+B Somma di A e B S=A+B+1 S=A+B=A–B–1 S=A+B+1=A–1 Differenza tra A e B A B C C-1 c0 c1 n S

50 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)

51 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 salita Il passaggio dal valore 1 al valore 0 è detto fronte di discesa

52 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

53 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.

54 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 AR DR ACC


Scaricare ppt "elaborazione automatica dell’informazione"

Presentazioni simili


Annunci Google