RAPPRESENTAZIONE ED ELABORAZIONE DEI DATI ANALOGICO (continuo) DIGITALE (discreto) Precisione, rumore Dispositivi elettronici Elettrone - particella elementare dotato di carica elettrica negativa (nei metalli sono liberi di muoversi in ogni punto del metallo ) corrente elettrica - flusso ordinato di elettroni sistema elettronico binario - presenza di due stati (alto o basso) legati alla corrente che passa o che non passa. componenti hardware - costituiti da circuiti elettronici digitali, detti Chip Tecnologie: BJT (logica TTL) o MOS = Metallo Ossido Semiconduttore (logica CMOS) - la seconda è più lenta ma riduce spazio e consumi Transistor = dispositivo elettronico su materiale semiconduttore (silicio, che permette di costruire elementi molto piccoli e non conduce facilmente come i metalli (gli elettroni hanno bisogno di una certa energia per liberarsi) Infinite possibilità di costruzione di circuiti elettronici, ma solo alcune sono fondamentali. I circuiti di base (porte logiche) sono quelli che computano i connettivi logici fondamentali NOT, AND, OR, che permettono di calcolare tutte le funzioni binarie di variabili binarie X NOT(X) 0 1 1 0 X Y AND(X,Y) 0 0 1 1 0 1 0 1 0 0 0 1 X Y OR(X,Y) 0 0 1 1 0 1 0 1 0 1 1 1 Transistor tre terminali, uno di ingresso (input) e due di uscita (output) … regola il passaggio di elettroni nei fili di output (1 se passano, 0 altrimenti) le lettere binarie 0 e 1 sono rappresentate nei fili dai due stati fisici: 0 se il potenziale elettrico del filo è GND = 0 volt, 1 se il suo potenziale elettrico del filo è VDD = 3 volt (5 anni fa era VDD = 5 volt e fra poco sarà VDD = 2,5 volt; riduzione dell’intensità ricercata per velocità e consumo energetico). VDD = tensione di alimentazione (energia necessaria al transistor per funzionare) GND (ground) = punto a più basso potenziale Segnale elettronico di un transistor comandare un altro transistor … circuito elettronico o gate booleano = insieme di interruttori elettronici che si comandano a vicenda L’hardware di un calcolatore è costituito per lo più da circuiti elettronici digitali binari, ovvero da in cui gli stati fisici possibili sono solo due In questo contesto i transistors permettono di manipolare tali informazioni “binarie”, mentre i fili elettrici le memorizzano oppure le trasportano da un transistor all’altro. Questo è il punto di contatto tra hardware e software: l’hardware è costituito da fili elettrici, il software dallo stato fisico dei fili elettrici Transistor MOS a canale N (NMOS) filo di input 0 fili di output sconnessi filo di input 1 fili di output connessi Transistor MOS a canale P (PMOS) filo di input 0 fili di output connessi filo di input 1 fili di output sconnessi La tecnologia VLSI (Very Large Scale Integration) permette di miniaturizzare i circuiti elettrici In VLSI tutti i circuiti elettrici costituenti la logica di un computer sono suddivisi in vari pezzettini rettangolari di silicio detti chip Ogni chip può contenere anche centinaia di milioni di transistor (l’Intel Pentium IV può contenerne fino a 55 milioni di 0,13 m (1 micron = 1 milionesimo di metro) e grandezza complessiva del chip fino a 1,5 cm2 http:\\www.intel.com/pressroom/kits/quickreffam.htm La grandezza dei transistor (0,13 m) tende a diminuire con lo sviluppo della tecnologia VLSI e sono già allo studio processori prodotti con un processo inferiore: sono allo studio processi a 0,11 m Essendo molto piccoli, i transistors coniugano bene alcune esigenze: - rispondono velocemente ai “comandi” impartiti, così sono capaci di interrompere il flusso di elettroni nel giro di qualche miliardesimo di secondo, - consumano pochissima energia per funzionare. Memorie elettroniche Piccolissimi secchielli, dette celle, contenenti elettroni velocità della memoria (di carica) = poche decine di miliardesimi di secondo (molto alta, decine di volte maggiore rispetto alla velocità di interruzione dei transistor, uno dei limiti principali dei computer moderni) scrittura lettura Due transistor flip-flop si comandano reciprocamente, si bloccano in uno stato indefinitamente, memorizzando l'ultimo segnale binario loro trasmesso. Più complesse (più costose), più veloci utilizzate per le memorie interne alla CPU Celle di memoria costituite da un filo molto piccolo che può essere bruciato oppure no - si possono solo leggere (ROM) Dispositivi magnetici: i dischi campo elettrico = s.f. esercitato da cariche elettriche su altre cariche campo magnetico = s.f. di correnti elettriche o magneti su altre correnti Leggi dell’elettromagnetismo - la variazione di un campo elettrico produce un campo magnetico - la variazione di un campo magnetico produce un campo elettrico - un campo magnetico ha una direzione polo nord - polo sud (negli atomi la rotazione degli elettroni attorno al nucleo genera campi magnetici, la cui direzione dipende dal verso di percorrenza) - i dispositivi magnetici digitali hanno piccoli magneti che vengono orientati in una direzione (facendo ruotare le particelle) - i due orientamenti sono interpretati come segnale binario (magnetizzazione verso l'alto 1, verso il basso 0) - non é possibile costruire interruttori magnetici (sistemi magnetici che producono la variazione di un segnale magnetico) - è necessario trasformare un segnale digitale da magnetico in elettronico per elaborarlo; dunque utilizzati solo per memorizzare (si conserva per molti anni) Memoria digitale magnetica: dischi in continua rotazione su cui la testina di lettura e di scrittura è libera di muoversi, tracce e settori formattazione - rende utilizzabile un disco, in quanto vi inserisce gli elementi per individuare le tracce, i settori ed i dati Zona di avviamento (boot record): occupa un settore, ha le informazioni per la individuazione del sistema operativo dell’elaboratore che gestisce la memoria FAT (File Allocation Table): contiene gli elementi della formattazione (numero tracce e settori) e l’indicazione della distribuzione dei dati nel disco (settore d’inizio), individuati dal nome di raggruppamento dei dati medesimi (nome del file) Directory: è l’indice dei dati contenuti sul disco e li individua in funzione del nome dato al file, della lunghezza del file, …. Spazio dati: gli altri settori sono dedicati ai dati Ottica: laser e dischi ottici La luce non può essere facilmente conservata, ma può essere usata per cambiare lo stato di un altro dispositivo binario di tipo elettronico (gli elettroni assorbono fotoni e si rendono liberi per via dell’aumento d’energia, generando un flusso) Nei dispositivi ottici (dischi) l'elemento binario é una piccola buca (pit) scavata da un laser nella stagnola racchiusa nella plastica del disco: se esiste una buca lo stato binario é 1, se la buca non esiste lo stato é 0. Nel CD le buche sono disposte lungo una spirale letta da un laser a bassa potenza. Durante la riproduzione il laser percorre la spirale e viene riflesso (solo in assenza di buche), un sensore di luce rileva la riflessione e trasforma il segnale luminoso binario in un sistema elettrico binario Prima dell’elaborazione i segnali ottici devono essere trasformati in segnali elettronici. Sono quindi difficilmente costruibili calcolatori ottici Legge di Moore Nel 1965 Gordon Moore elaborò una tesi analizzando il trend evolutivo dei chip. Oggi, fatte le debite correzioni, questa legge afferma che: “ogni chip ha una capacità circa doppia rispetto al suo predecessore e ogni 1824 mesi nasce una nuova generazione di chip” Transistors Mips 10M N.B.: Questa legge è applicabile con discreta precisione e può essere considerata un valido strumento di pianificazione per le industrie microelettroniche. 500 Pentium II Pentium 80486 1M 25 80386 100K 10K 1 8088 80286 4004 1970 0.1 1975 1980 1985 1990 1995 2000 Il linguaggio binario Lingua Codice Lettera Bit Per comunicazione tra uomo ed elaboratore senza ambiguità occorrono: - un linguaggio digitale binario proprio per l’elaboratore - un sistema di conversione dal linguaggio umano al linguaggio dell’elaboratore Codice = legge di rappresentazione (univoca) da simbolo originario a simbolo (o sequenza) del nuovo linguaggio La trasformazione del simbolo originario al nuovo è detta codifica, la trasformazione inversa è detta decodifica L’alfabeto del calcolatore è 0, 1, il singolo elemento di informazione è chiamato Bit (Binary digiT), ogni parola dell’elaboratore è determinata da una sequenza su tale alfabeto (sequenze binarie) Corrispondenza di base: caratteri, numeri, segni di punteggiatura, ecc. una sequenza ordinata di 8 bit 1 Byte = sequenza ordinata di 8 bits (23 bits) Sebbene il bit rappresenta l’unità di misura di base, è il byte ad esprimere più compiutamente una misura sulla quantità di dati Le altre unità di misura sono: 1 Kilobyte (1 Kb) = 1024 bytes = 210 bytes = 213 bits 1 Megabyte (1 Mb) = 1024 Kilobytes = 210 Kilobytes = 220 bytes = 223 bits 1 Gigabyte (1 Gb) = 1024 Megabytes = 210 Megabytes = 230 bytes = 233 bits 1 Terabyte (1 Tb) = 1024 Gigabytes = 210 Gigabytes = 240 bytes = 243 bits Rappresentazione dei numeri interi - numero fisso di bit (o di byte) per rappresentare i numeri (lunghezza di parola) - il segno di un numero è codificato dal primo bit: “0” positivo, “1” negativo - positivi: codifica nel sistema di numerazione binaria - negativi: codifica con “complemento a 2” (codifica binaria del positivo trasformazione sostituendo “0” con “1” e viceversa somma con “1” Esempio: parole di 2 byte (16 bit). “+3421” 110101011101 000110101011101 0000110101011101 “–3421” 110101011101 0000110101011101 1111001010100010 1111001010100011 0000110101011101 + 1111001010100011 = 10000000000000000 Rappresentazione dei numeri reali - non sempre esatta (quasi mai), limite irraggiungibile per un calcolatore - numeri reali trasformati in numeri razionali con numero finito di cifre (grado di massima precisione definito dal calcolatore) esempio: 12,3678416654375555… fino alla 6a cifra significativa è 12,3678 - due modalità di rappresentazione: Virgola mobile (floating point) z = m bn z = numero, m = mantissa, b = base, n = esponente Rappresentazione “normalizzata” se 1/b (m)10 < 1 (in tal caso n è la caratteristica) z = m 2n ; rappr. normalizzata se 1/2 (m)10 < 1 - lunghezza fissa per mantissa ed esponente segno mantissa esponente Virgola fissa (fixed point) Numero di cifre fissato per parte intera e parte frazionaria - senza esplicita virgola: assegnata per convenzione parte intera parte frazionaria Rappresentazione dei numeri “91,4693” e “-91,4693” In virgola mobile normalizzata (con 16 bit di cui 1 per il segno, 11 per la mantissa e 4 per l’esponente) POSITIVO 91,4693 1011011.0111100000… (11 cifre) 1011011.0111 (normalizzazione) .10110110111 27 esponente 7 111 (4 bit) 0111 segno+mantissa+esponente=“0”+“10110110111”+“0111” = 0101101101110111 NEGATIVO 91,4693 … .10110110111 27 (complemento a due) 01001001000 + 1 = 01001001001 esponente 7 (4 bit) 0111 segno+mantissa+esponente=“1”+“01001001001”+“0111” = 1010010010010111 In virgola fissa (con 16 bit di cui 1 per il segno, 8 per la parte intera, 7 per la parte frazionaria) POSITIVO 91,4693 1011011.0111100000… (8+7 cifre) 01011011.0111100 segno+intera+frazionaria=“0”+“01011011”+“0111100” = 0010110110111100 NEGATIVO 91,4693 … (8+7 cifre) 01011011.0111100 (complemento a 2) 101001001000011 + 1 = 10100100 1000100 segno+intera+frazionaria=“1”+“10100100”+“1000100” = 1101001001000100 La rappresentazione più utilizzata è in virgola fissa Vantaggio: esecuzione delle operazioni in tempi più rapidi (molti processori supportano solamente operazioni in virgola fissa a livello dell’hardware, eventuali operazioni in virgola mobile devono essere realizzate a livello del software) Svantaggio: il range della rappresentazione è molto più piccolo Rappresentazione dei caratteri alfanumerici caratteri non numerici: lettere, caratteri speciali, simboli di comando; numeri sequenze di bit appartenenti ad un insieme finito detto set L’ampiezza di un set di caratteri (numero di simboli diversi) dipende dalla lunghezza delle sequenze utilizzate (n bit 2n caratteri diversi) Alfabeto ASCII (American Standard Code for Information Interchange) - 7 bit + 1 bit di controllo (il numero degli 1 deve essere dispari) - set di 27 = 128 caratteri - dunque 1 carattere 1 byte Alfabeto ASCII esteso: 8 bit (256 caratteri) – anche altri caratteri particolari Alfabeto UNICODE: 16 bit (216 = 65536 possibili caratteri) “8” “00111000” “/” “00101111” “j” “11101010” “ETX” “10000011”