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