Corso di INFORMATICA - Ingegneria Aerospaziale Concetti base sui calcolatori elettronici Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 1 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Cosa vedremo in questa lezione 1 Introduzione storica ai calcolatori 2 Architettura e componenti principali 3 Rappresentazione delle informazioni nei calcolatori Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 2 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Introduzione storica ai calcolatori I calcolatori e l’opinione pubblica “I think there is a world market for maybe five computer” – Thomas Watson, IBM, 1943 “Mentre [...] l’ENIAC è dotato di 18000 tubi a vuoto e pesa trenta tonnellate, i calcolatori del futuro potranno avere 1000 tubi a vuoto e forse pesare solo una tonnellata e mezzo” – Popular Mechanics, 1949 “There is no reason anyone would want a computer in their home.” – Ken Olson, fondatore della DEC, 1977 Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 3 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Introduzione storica ai calcolatori Che cos’è un computer? Definizione: “A computer is a machine that manipulates data according to a list of instructions” [da Wikipedia (http://en.wikipedia.org)] Tale definizione non è stata e non è immutabile! Nell’antichità anche strumenti meccanici semplici, come ad esempio un abaco Dal 1600 si iniziarono a costruire le prime calcolatrici meccaniche Prima macchina programmabile: telaio a schede perforate (1801) Primo uso massivo di uno strumento automatico: macchina a schede perforate per elaborazioni statistiche (USA 1890). Nota: macchine costruite da una società che successivamente cambierà nome in IBM. C’è tuttavia un elemento comune: tutte queste macchine senza istruzioni non servono a nulla! Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 4 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Introduzione storica ai calcolatori Immagini di calcolatori Macchina di Anticitera (circa 150 a.c.) Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 5 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Introduzione storica ai calcolatori Immagini di calcolatori Macchina di Anticitera (circa 150 a.c.) Calcolatori meccanici (circa 1600 d.c.) Telaio programmabile Jacquard (circa 1801 d.c.) Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 5 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Introduzione storica ai calcolatori Immagini di calcolatori Macchina di Anticitera (circa 150 a.c.) Calcolatori meccanici (circa 1600 d.c.) Telaio programmabile Jacquard (circa 1801 d.c.) Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 5 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Introduzione storica ai calcolatori Rivoluzione tecnologica La prima grande rivoluzione si è avuta con il passaggio dalle tecnologie meccaniche a quelle elettroniche (prima analogiche e poi digitali) Una leva molto forte per lo sviluppo dei calcolatori è stata la guerra Decifrare messaggi segreti Effettuare calcoli balistici I primi computer elettromeccanici/elettronici erano sostanzialmente grosse calcolatrici Molto meno potenti della attuali calcolatrici tascabili Inizialmente meno veloci anche dei migliori “Computer umani” Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 6 / 21 Introduzione storica ai calcolatori Corso di INFORMATICA - Ingegneria Aerospaziale Primi calcolatori elettronici Nome Zuse Z3 Nazione Ger Anno 1941 Binario si Elettronico no Atanasoff-Berry Colossus USA UK 1941 1943 si si si si Harvard Mark I USA 1944 no no ENIAC USA 1944 no si 1948 no si Calcolatori: concetti base Program. si, film perforato no parzialmente, circuiti si, schede perforate parzialmente, circuiti attraverso ROM DIS - Dipartimento di informatica e sistemistica Turing si no no no si si 7 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Introduzione storica ai calcolatori Seconda rivoluzione tecnologica Una nuova rivoluzione si è avuta con l’introduzione dei transistor e della miniaturizzazione dei componenti Meno spazio occupato e meno energia elettrica assorbita Maggiore affidabilità e velocità A partire dai primi anni 60 i calcolatori iniziarono ad essere costruiti in serie e venduti anche per usi commerciali ed industriali Ad esempio IBM System/360 IBM 360 è stata la prima famiglia di calcolatori a larga diffusione Tuttavia sistemi ancora molto costosi e prodotti in poche unità Alcune importanti eccezioni Digital Equipment Corporation (DEC) PDP-8 (1965): 50.000 esemplari venduti Supercalcolatore CDC 6600 (progettato da Cray) Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 8 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Introduzione storica ai calcolatori Terza rivoluzione tecnologica Integrazione di componenti su larga scala (LSI, VLSI) Componenti molto piccoli e caratterizzati da alte prestazioni Microprocessori (da migliaia a milioni di transistor per cm2 ) Memorie (da pochi Kbyte a Gbyte) Controller (BUS I/O, video, audio, ecc.) Primo microprocessore: Intel 4004 Un Italiano (Federico Faggin) capo del team di progettazione! Larghissima diffusione: i microprocessori sono presenti un po’ ovunque (Smart card, lavatrici, telefoni portatili, automobili, ecc.) Diffusione su larga scala di calcolatori piccoli e molto economici Primo personal computer: IBM PC (1980) Il calcolatore smette di essere uno strumento di lavoro e diviene anche (in moltissimi casi soprattutto) un dispositivo per lo svago Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 9 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Architettura e componenti principali Architettura di un calcolatore Nonostante la grande varietà (per costi, dimensioni, prestazioni, ecc.) di calcolatori esistenti e la loro evoluzione nel tempo, è possibile definire due architetture di base che li comprendono tutti Architettura di Harvard (1944) Architettura di “von Neumann” (1945) Molto spesso i due modelli di architettura si sovrappongono Tuttavia l’architettura attualmente più diffusa è quella di von Neumann Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 10 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Architettura e componenti principali Componenti di un personal computer Premessa Le architetture descritte precedentemente si mappano sui calcolatori in modo diverso a seconda della tipologia di quest’ultimi Ad esempio, nel caso di grandi calcolatori per applicazioni commerciali (mainframe) il dispositivo di input è la console di amministrazione, la CPU è formata da un insieme di circuiti integrati mentre i dispositivi di output sono i nastri e i terminali degli operatori. In questo corso vedremo unicamente i componenti principali dei personal computer Anatomia di un Personal computer Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 11 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Architettura e componenti principali Componenti di un personal computer Premessa Anatomia di un Personal computer Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 11 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Architettura e componenti principali Breve descrizione dei principali componenti (1) Microprocessore Il microprocessore (o processore) è il dispositivo che interpreta ed esegue le istruzioni che compongono un programma Formato da unità logico aritmetica (ALU) e unità di controllo Solitamente le istruzioni sono quelle aritmetiche, i caricamenti / salvataggi sulla memoria, salti, ecc. Nei computer attuali, oltre al processore dedicato alle istruzioni dei programmi, sono spesso presenti altri processori (processore grafico, processore audio, ecc.) Due principali famiglie di architetture definibili sulla base delle istruzioni eseguibili: CISC (Complex Instruction Set Computer) RISC (Reduced Instruction Set Computer) Attualmente è preferita l’architettura RISC Esempi di processori: Intel 8080, Motorola 68000, MIPS 10000, Intel Pentium, AMD Athlon 64 Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 12 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Architettura e componenti principali Breve descrizione dei principali componenti (2) Dispositivi di memorizzazione (gerarchia) Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 13 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Architettura e componenti principali Periferiche di input/output Input Tastiera Mouse Lettore di schede perforate Touch screen Sensore infrarosso ... Output Monitor Stampante Altoparlante Braccio robotizzato della libreria a nastri ... Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 14 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Rappresentazione delle informazioni nei calcolatori Con che dati lavorano i calcolatori? I componenti base della CPU e delle memorie (transistor) sono in grado di rappresentare due stati: OFF e ON (ovvero chiuso/aperto ovvero 0/1) L’unità base di informazione viene chiamata bit (da Binary Digit) Al loro interno i calcolatori utilizzano sequenze di 0 e 1 per rappresentare ogni tipo di informazione Questo vale anche per le istruzioni che debbono essere eseguite; un componente apposito della CPU decodifica le sequenze per attivare le operazioni Tutte le informazioni sono trattate in un calcolatore in gruppi di bit di dimensione finita (solitamente 32 o 64) Per convenzione le sequenze di bit sono raggruppate per otto. Un gruppo di 8 bit è detto byte Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 15 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Rappresentazione delle informazioni nei calcolatori Rappresentare i numeri naturali Esistono principalmente due modi di rappresentare i numeri naturali N: sistema additivo e sistema posizionale Sistema additivo I numeri sono scritti secondo un principio puramente additivo e per ottenere il suo valore basta sommare i valori dei vari simboli (sistema romano) Esempio: MDCCLXIV è pari a 1000 + 500 + 100 + 100 + 50 + 10 − 1 + 5 = 1764 Se un valore non è in ordine crescente si sottrae Diversi problemi Necessari molti simboli Difficile gestire numeri con molte cifre significative Fare dei calcoli è molto complesso! Sistema posizionale Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 16 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Rappresentazione delle informazioni nei calcolatori Rappresentare i numeri naturali Esistono principalmente due modi di rappresentare i numeri naturali N: sistema additivo e sistema posizionale Sistema additivo Sistema posizionale I simboli assumono valore a seconda della loro posizione rispetto ad un numero b detto base; per rappresentare qualsiasi numero naturale sono sufficienti b simboli La base 10 è quella più utilizzata La sequenza finita di cifre (cn cn−1 . . . c0 )10 (con ck ∈ [0, 1, . . . , 9]) è equivalente al polinomio cn x10n + cn−1 x10n−1 + . . . + c0 x100 Esempio: 176410 = 1x103 + 7x102 + 6x101 + 4x100 Necessario introdurre un nuovo concetto: lo zero Calcoli molto semplici! Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 16 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Rappresentazione delle informazioni nei calcolatori Rappresentare i numeri naturali con il computer Attraverso i valori 0 e 1 è possibile rappresentare i numeri naturali mediante il sistema di numerazione in base due (o binario) Un numero binario è una sequenza di 0 e 1 (ad esempio 1010) Ricordando quanto visto precedentemente, è possibile determinare il polinomio 1x23 + 0x22 + 1x21 + 0x20 e quindi calcolare il valore del numero (in questo caso 10) Il calcolatore gestisce sempre gruppi di dimensione costante (ad esempio 32 bit): numeri molto piccoli occupano la stessa quantità di memoria di numeri molto grandi! Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 17 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Rappresentazione delle informazioni nei calcolatori Aritmetica binaria Regole di base Un numero binario formato da n bit consente di rappresentare tutti i numeri interi positivi x ∈ [0, 2n − 1] Ad esempio, con 32 bit (4 byte) si possono rappresentare i numeri interi tra 0 e 4.294.967.295 La somma di due numeri binari è molto semplice. Ad es.: 01100010 + 9810 00110101 = 5310 10010111 15110 Per consentire la gestione dei numeri negativi si utilizza la rappresentazione in complemento a due Complemento a due Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 18 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Rappresentazione delle informazioni nei calcolatori Aritmetica binaria Regole di base Complemento a due Rappresentazione vantaggiosa dal punto di vista dei calcoli Il bit più a sinistra identifica il segno: se è pari a 1 il numero è negativo, altrimenti positivo Per passare da un numero positivo (negativo) al suo equivalente negativo (positivo) è sufficiente (1) invertire i bit e (2) sommare uno. Ad esempio: 01010 (+10) ⇒ 10101+1 ⇒ 10110 (-10) Cosa succede se si provano a sommare due numeri con lo stesso segno molto grandi? Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 18 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Rappresentazione delle informazioni nei calcolatori Rappresentazione dei reali I calcolatori gestiscono i numeri reali attraverso codifiche particolari delle sequenze di bit (es. IEEE 754) A causa della dimensione limitata delle sequenze di bit gestibili dal calcolatore non è possibile rappresentare tutti i possibili valori Problemi di precisione nei calcoli! Notazione scientifica IEEE 754 Notazione compatta del tipo (s) × m × b k Segno s: il segno del numero Mantissa m: un numero tra 1 e 2 (m = 1, frazione) Esponente k: l’esponente della base Nel nostro caso (32 bit in base 2) 1 bit per il segno, 23 per la mantissa e 8 per l’esponente Con 23 bit si possono rappresentare ≈ 7 cifre decimali, mentre con 8 bit si possono rappresentare numeri dell’ordine ≈ 10± 38 Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 19 / 21 Corso di INFORMATICA - Ingegneria Aerospaziale Rappresentazione delle informazioni nei calcolatori Caratteri La rappresentazione interna si basa sulla codifica mediante un intero Sufficiente 1 byte per la rappresentazione dei caratteri necessari per le lingue anglosassoni Per altre lingue (Cinese, Giapponese, ecc.) sono adottate altre codifiche (con almeno 2 byte per carattere) Una codifica molto diffusa (sui PC) è quella ASCII (American Standard Code for Information Interchange – 7 o 8 bit) Calcolatori: concetti base DIS - Dipartimento di informatica e sistemistica 20 / 21 Rappresentazione delle informazioni nei calcolatori Corso di INFORMATICA - Ingegneria Aerospaziale Codifica ASCII a 7 bit Tabella dei codici ASCII significativi 32 33 ! 40 41 42 43 ( ) * + 50 51 52 53 2 3 4 5 60 61 62 63 < = > ? 70 71 72 73 F G H I 80 81 82 83 P Q R S 90 91 92 93 Z [ \ ] 100 101 102 103 d e f g 110 111 112 113 n o p q 120 121 122 123 x y z { Calcolatori: concetti base 34 " 44 , 54 6 64 @ 74 J 84 T 94 ^ 104 h 114 r 124 | 35 # 45 55 7 65 A 75 K 85 U 95 _ 105 i 115 s 125 } 36 $ 46 . 56 8 66 B 76 L 86 V 96 ‘ 106 j 116 t 126 ~ 37 % 47 / 57 9 67 C 77 M 87 W 97 a 107 k 117 u 38 & 48 0 58 : 68 D 78 N 88 X 98 b 108 l 118 v 39 ’ 49 1 59 ; 69 E 79 O 89 Y 99 c 109 m 119 w DIS - Dipartimento di informatica e sistemistica 21 / 21