LA DIGITALIZZAZIONE
DELLA MATERIA
LORENZO BRACCIALE
CESARE ROSETI
SOCIETÀ DIGITALE: «BITS EAT ATOMS»
Citazione da: Henry Tirri, CTO, Nokia
stampanti 3D in arrivo: digitalizzazione delle «cose»?!
ANALOGICO VS DIGITALE
Analogico
L’informazione è rappresentata con
grandezze fisiche continue
(radio AM, Vinili, etc)
Digitale (numerico)
L’informazione è rappresentata con
numeri (Internet, contenuti
digitali…)
PERCHÈ SI È PASSATI
AL DIGITALE?
master
copia
copia
errori
errori
$$$
$$
copia
copia
non ci sono errori
non ci sono errori
$
$
$
$
PERCHÈ SI È PASSATI
AL DIGITALE?
• Resistenza agli errori
• Unificazione e astrazione dell’informazione
(tutto è riconducibile a un numero)
• I numeri sono “amici” del computer
NOTA: Digitale non è per forza binario:
• Digitale vuol dire “numerico”
• Binario buol dire che ogni numero può
essere 0 o 1
CAMPIONAMENTO E
QUANTIZZAZIONE
• Prendiamo una grandezza fisica reale
• Per la musica: ad esempio la pressione acustica
• “Fotografiamo” questa grandezza in intervalli di tempo
definiti
• Ad esempio 100 volte al secondo (ovvero 100Hz)
• Questo si chiama campionamento
• Per ogni campione, codifichiamo il valore con un numero
• Ad esempio un numero da 1 a 10
• ma dato che il computer “parla in bit”, codifichiamo usando
3 bit
• I possibili valori sono quindi 8: 000, 001, 010, 011… 111
DA ANALOGICO A
DIGITALE: IL
CAMPIONAMENTO
Un CD ha audio campionato 44100 volte al secondo, con campioni a 16 bit
IL CD
5km di piste di alluminio!
ESEMPIO: L’AUDIO
ESEMPIO: RESISTENZA
TR*NTAQUA*TR*
AGLI ERRORI
ESEMPIO: RESISTENZA
AGLI ERRORI
Molto utile quando dobbimo copiare o trasmettere
migliaia di volte la stessa informazione
Riusciamo a “rigenerare” il segnale al livello originario
RIGENERAZIONE DEL
SEGNALE
QUANDO AVVENGONO
GLI ERRORI?
• Errori dovuti al mezzo trasmissivo
• Ad esempio errori “radio” dovuti al
rumore/interferenze/attuanuazione sul canale
• Errori dovuti al mezzo utilizzato per l’immagazzinamento
• Ad esempio: memorizzazione magnetica su hard disk
ESEMPIO: ADSL
DOMANDA: E PER GLI
ERRORI?
Dobbiamo inviare 5 numeri da 0 a 9.
Ogni numero ha l’1% di probabilità di essere ricevuto in
modo sbagliato.
Come possiamo fare ad inviarlo praticamente senza errori?
(con una probabilita’ bassa a piacere?)
(ovviamente) Possiamo “pagare” inviando più di 5 numeri
RISPOSTA:
•
Li rimando più volte
•
Mando un numero che è la somma degli altri
•
•
E’ un esempio di “codice di rilevazione d’errore”
A secondo del codice utilizzato possiamo correggere o
rivelare degli errori
TRADURRE IN NUMERI
LA CODIFICA
• Serve per rappresentare un’informazione
• La stessa informazione rappresentata in modi diversi
•
ad es. 200 o “duecento”
• Stessa rappresentazione per informazioni diverse
•
ad es. “fare” (it) / “fare” (eng.)
• Utilizza i simboli di un alfabeto
• ad esempio alfabeto fonetico, binario
• combinandoli
• in “codici”
• associando un codice ad un’entità di informazione
LA CODIFICA BINARIA
• Alfabeto: 0 – 1
• bit – BInary digiT – “base 2”
• Utilizzata largamente per rappresentare informazioni su
dispositivi elettronici
• Non molto “human friendly”
• A che numero equivale 010010 ?
• Se pensiamo a come è composto il numero decimale
1234: 4*100+3*101+2*102+1*103
• Quindi 0*20+1*21+0*22+0*23+1*24+0*25 = 24 + 2 = 18
• Come scomponiamo in binario il numero decimale 43?
LA CODIFICA BINARIA
• Come scomponiamo in binario il numero decimale 43?
parte intera divisione per
due
resto divisione per due
43
1
21
1
10
0
5
1
2
0
1
1
0
43 = 101011
meno
significativo
LA CODIFICA BINARIA
• Quanti oggetti diversi codifichiamo con X bit?
• 2X
• Quanti bit servono per codificare N oggetti?
• Intero superiore di Log2N
• Esercizi:
• Codificare il numero 121 in binario
• Codificare il numero 121/2 (divisione intera) in binario
• Codificare il numero 121 * 4 in binario
BIT E BYTES
Bit: binary digit (0 o 1)
Byte: 8 bit
nome
quanti bit?
sigla
kilobit
103
Kb
megabit
106
Mb
gigabit
109
Gb
terabit
1012
Tb
petabit
1015
Pb
exabit
1018
Eb
zettabit
1021
Zb
yottabit
1024
Yb
CODIFICA
ESADECIMALE
•
La rappresentazione binaria è ostica per gli uomini
•
• 10100110 00110000
• Ma la conversione in decimale non è immediata…
Spesso quindi si usa la rappresentazione esadecimale
•
•
•
•
base 16: alfabeto: 0123456789abcdef
4 bit – un carattere esadecimale
Usata molto spesso (codifica RGB, indirizzi di memoria, mac address
etc)
• il numero di prima diventa: a6 30 (2 byte, 16 bit)
Spesso la base usata si indica nel prefisso
•
0xa630
•
•
0b1010011000110000
Esercizio:
•
Codificare in binario 0xEA10
LA CODIFICA
ESADECIMALE
Decimale
Binario
Esadecimale
0
0000
0
1
0001
1
2
0010
2
3
0011
3
4
0100
4
5
0101
5
6
0110
6
7
0111
7
8
1000
8
9
1001
9
10
1010
a
11
1011
b
12
1100
c
13
1101
d
14
1110
e
15
1111
f
ASCII TABLE
CHE COS’E’
L’INFORMATICA?
“L'informatica non riguarda i computer più di quanto l'astronomia riguardi
i telescopi”
E. Dijkstra
• Scienza che studia
• Fondamenti teorici dell’informazione
• Computazione
• Implementazione su elaboratori elettronici
IL COMPUTER
• Macchina programmabile per la rappresentazione, la
memorizzazione, l’elaborazione e la trasmissione delle
informazioni
• Distinzione tra:
• Hardware: parte fisica (elettronica, meccanica etc)
• Software: parte logica (programmi)
• Definizione cambiata nel tempo, attualmente macchina che:
• Riceve degli input
• Produce degli output
• Processa l’informazione
• Puo’ memorizzare dell’informazione
• Ha dei meccanismo di controllo
• Un cellulare, un modem wifi, un laptop
BREVE STORIA DEI
COMPUTER
• 1823: Charles Babbage inventò la
macchina differenziale;
• In 1936 Alan Turing definì la Macchina
di Turing, una macchina ideale che
manipola i dati contenuti su un nastro
di lunghezza infinita, secondo un
insieme prefissato di regole ben
definite (strumento teorico)
• Nella seconda guerra mondiale, venne
inventato Colossus, il primo computer
elettronico programmabile
• 1948: il “manchester baby”: primo
computer basato sull’architettura di
John Von Neumann (more later) che
memorizza programmi e dati nella
stessa memoria.
BREVE STORIA DEI
COMPUTER
• 1947 : Invenzione del transistor
• 1958 : Invenzione del circuito integrato
• 1965 : Primo personal computer –
Programma 101 (prodotto da Olivetti
inventato da P.G. Perotto)
• 1971 : Una giovane società chiamata
Intel produceva il primo
microprocessore
• L’intel 4004 conteneva circa 2300
transistor su un singolo chip
• oggi circa un miliardo per chip
• 1981 : Inizio diffusione personal
computer su larga scala
1983
PROGRAMMA
Programma: Sequenza di istruzioni che il computer
esegue e di decisioni che il computer prende per
svolgere una certa attività
Programmazione: L’attività di progettare o
realizzare un programma
ALGORITMO
• Si dice algoritmo la descrizione di un metodo di soluzione
di un problema che
• sia eseguibile
• sia priva di ambiguità arrivi ad una conclusione in un
tempo finito
• Un computer può risolvere soltanto quei problemi per i
quali sia noto un algoritmo
• Dato un algorimo, si puo’ realizzarlo (implementarlo)
attraverso un programma
ESEMPIO DI
ALGORITMO
Problema: dato un numero, scoprire se è un multiplo di 11
Algorimo 1:
1.
2.
Definiscono una variabile X che è il numero immesso
Valuta una condizione:
Se X=11 allora restitutisci VERO
Se X < 11 restituisci FALSO
SE X > 11, sottrai 11 e torna al passo 2
Algorimo 2:
Somma le cifre pari del numero e confrontale con la somma delle cifre
dispari
1782 à 1+8 = 7+2
Se sono uguali, restituisci VERO, altrimento FALSO
Diversi algoritmi che risolvono lo stesso problema
Cosa cambia?
ALTRI ALGORITMI…
(IBM) Deep Blue vs Kasparov: 1996
ALTRI ALGORITMI…
Capcha
ALTRI ALGORITMI…
IBM Watson : 2011 Jeopardy!
Sistema per rispondere a domande formulate in linguaggio naturale
CPU
•
Central Processing Unit
•
•
•
•
Quando fatto su un solo chip di silicio (circuito
integrato): microprocessore
Obiettivo: eseguire una sequenza di istruzioni
memorizzate chiamata programma
Ciclo di Esecuzione
1. Prelievo Istruzione dalla Memoria (fetch)
2. Decodifica Istruzione (decode)
3. Esecuzione Istruzione (execute)
4. Scrittura risultato (writeback)
Ogni Processore e’ caratterizzato da un proprio
linguaggio macchina
DISPOSITIVI DI INPUT
• Tastiera
• Mouse
• Hard Disk
• DVD-ROM
• Microfono
• etc
DISPOSITIVI DI
OUTPUT
• Monitor
• Stampante
• Hard Disk
• Casse acustiche
• etc
MEMORIA
•
Memoria Primaria: Memoria Centrale
•
Contiene istruzioni/dati dei programmi in esecuzione
•
•
•
Volatile
RAM – Random Access Memory
•
•
•
•
...in formato binario
E’ possibile accedere a diversi elementi non in ordine (random
access)
• Un CD/Musicassetta/HardDisk ad esempio non lo permette
Tempo di accesso costante
SRAM, DRAM,
etc.
• Veloce (~10-100ns) e relativamente costosa
• Dimensioni contenute (fino a qualche Gigabyte)
Memoria Secondaria: Dischi, CD, etc..
•
•
Memoria di lungo periodo - non volatile
Tempo di accesso maggiori (~ms e piu’), economica
VELOCITÀ DELLE
MEMORIE
• Per velocizzare l’esecuzione dei programmi, tra
processore e RAM viene inserita una memoria
particolarmente veloce dove tenere i dati usati più spesso
(MEMORIA CACHE)
• I livello: presente nel microprocessore
• II livello: esterna
• La presenza di più memorie con caratteristiche diverse
nasce da un compromesso tra costo ed efficienza
Dispositivo
Temp di accesso
RAM
~10 – 100 ns
Hard Disk
~10ms
Registri processore
~1ns
Memoria Cache
~10ns