Introduzione all'informatica2006

93
Informatica , le origini e lo sviluppo Dalle schegge di selce alle schegge di silicio Flavio Lombella , 2006

Transcript of Introduzione all'informatica2006

Page 1: Introduzione all'informatica2006

Informatica , le origini e lo sviluppo

Dalle schegge di selce alle schegge di silicio

Flavio Lombella , 2006

Page 2: Introduzione all'informatica2006

Introduzione

Nel 1967 viene introdotto il termine informatica per designare una nuova disciplina che si occupa del trattamento automatico delle informazioni e che funge da supporto per tutte le discipline, consentendo di affrontare classi di problemi in precedenza preclusi dalla quantità di dati da trattare. Prima di allora si indicava genericamente con il termine cibernetica tutto quanto riguardasse gli elaboratori, materia vista molte volte con diffidenza in quanto si identificava la capacità di calcolare con quella più generale di pensare. Si pose il problema di determinare dei nuovi sistemi di codifica e quindi di studiare in modo approfondito le capacità dei codici, ma anche di introdurre dei linguaggi formali che consentano di migliorare il compito di predisporre i programmi per gli elaboratori.

Se come disciplina scientifica l’informatica è una materia molto recente, le idee su cui si basa trovano origine molto più anticamente nella storia della matematica ed in particolare in quella del calcolo

Per una materia dall’evoluzione talmente veloce da vedere nuovi strumenti e nuove tecnologie succedersi nel volgere di pochi anni è importante comprendere quali siano i concetti fondamentali. In questo ci può aiutare lo studio delle stesse origini dell’informatica.

Cercheremo di ricostruire il filo conduttore che ha portato dalle prime capacità di numerare gli oggetti dei nostri antichi progenitori al moderno elaboratore elettronico, analizzando le interazioni con il progresso scientifico e, più in generale con lo sviluppo della società.

Page 3: Introduzione all'informatica2006

Sommario

1 Numerare , contare , calcolare 5

1.1 Quanti 5

1.2 Registrare e rappresentare i numeri con un sistema 7

1.3 Il contributo del mondo Arabo 8

1.4 La rinascita e l’introduzione del sistema decimale 10

1.5 La lenta diffusione del nuovo sistema 13

1.6 Metodi e strumenti per calcolare 15

2 Macchine per calcolare 31

2.1 La macchina di Pascal 32

2.2 Leibnitz, un meccanismo per moltiplicare 33

2.3 Il problema della longitudine e della latitudine 34

2.4 Il grande precursore 37

2.5 La costruzione della prima macchina alle differenze 39

2.6 La ricostruzione della seconda macchina alle differenze di Babbage 40

2.7 La macchina analitica di Babbage 41

2.8 Ada Lovelace e i primi programmi 45

2.9 Macchine per gestire e organizzare le informazioni 49

2.10 L’eredità della macchina analitica 50

3 La rappresentazione delle informazioni 53

3.1 Il sistema binario 53

3.2 Algebra booleana 54

3.3 Binario, esadecimale, ottale 54

3.4 Misurare l’informazione 56

3.5 I multipli 58

3.6 Rappresentare i caratteri 59

4 I primi elaboratori 61

Page 4: Introduzione all'informatica2006

4.1 Le macchine di Zuse 61

4.2 Le macchine di Harward 63

4.3 L’avvento dell’elettronica 65

4.4 Il calcolatore di Atanasoff 65

4.5 Gli elaboratori elettronici : ENIAC 66

4.6 Un caso a parte, LEO 67

4.7 Von Neuman , la definizione della struttura logica dell’elaboratore 68

4.8 Le prime macchine prodotte in serie Errore. Il segnalibro non è definito.

5 La microelettronica e la nascita del Personal Computer 70

5.1 I minicalcolatori 70

5.2 Il microcalcolatore 72

5.3 L’elettronica dello stato solido 74

5.4 Il diodo a giunzione 76

5.5 Il tranistor BJT 78

5.6 I circuiti integrati 79

5.7 La produzione dei circuiti microintegrati 82

5.8 Il microelabortatore diventa un bene di consumo 84

5.9 INTEL e la nascita del microprocessore 86

5.10 Dal minicomputer al Personal Computer 87

5.11 Il Personal Computer IBM 89

Page 5: Introduzione all'informatica2006

1 Numerare , contare , calcolare Prima di guardarti avanti guardati indietro (John Watt)

1.1 Quanti

ello sviluppo della storia dell'uomo, in epoche diverse si sono sviluppate delle civiltà che sono poi completamente scomparse ma che hanno lasciato come eredità un bagaglio di conoscenze. Tra gli elementi fondamentali che

hanno portato al loro sviluppo vi è stata la capacità di contare e di numerare gli oggetti, parte della più generale abilità di utilizzare simboli e di ragionare manipolando simboli. Qualsiasi forma di organizzazione sociale evoluta richiede, infatti, tale abilità. Quanti sono i bisonti cacciati o i giorni trascorsi ? La mente umana ha impiegato centinaia di migliaia di anni per impadronirsi di questi concetti ed è oggi per noi molto difficile renderci conto di quanto questo sia stato importante. Nel nostro modo di ragionare la capacità di contare deriva infatti, in buona parte da concetti che abbiamo dovuto imparare a memoria nei primi anni della nostra vita e all’esposizione al linguaggio, all’esempio dei nostri simili. In questo modo ci siamo impadroniti di concetti che la nostra specie ha acquisito in un tempo lunghissimo. In tempi e luoghi diversi una tappa fondamentale di ogni civiltà fu quando ci si pose la fondamentale domanda : Quanti sono? La prima possibile risposta venne fornita dalla possibilità di raffrontare tra loro quantità simili di oggetti diversi. In tal modo i bastoncini, le conchiglie, le tacche su un legno o le dita delle mani furono tutti elementi validi per lo scopo. Quello che è interessante notare è come sia stato difficile per l'uomo astrarre il concetto di numero come

N

Fig.1 L’abaco

Page 6: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

6

elemento simbolico svincolato da oggetti materiali. E’ certo che in origine i termini utilizzati per rappresentare le quantità numeriche erano diversi per oggetti diversi.Di questa difficoltà possiamo trovare ancora traccia nel linguaggio odierno. Quando nella nostra lingua dobbiamo indicare un gruppo di animali utilizziamo tutta una serie di vocaboli diversi , gregge per le pecore , branco per i lupi, stormo per gli uccelli, mandria per le mucche, mentre nulla vieterebbe, dal punto di vista logico, di utilizzare un unico termine. Non disponiamo di testimonianze dirette ma il sopravvivere fino a tempi recenti di popolazioni che in luoghi isolati hanno mantenuto un modo di vita tipico di quello dell’età della pietra ci ha permesso di avere delle testimonianze dirette delle capacità di rappresentare i numeri e del loro utilizzo. All’inizio del secolo scorso un missionario vissuto a lungo nella tribù dei Tamanaca, lungo il corso dell’Orinoco, riportava come il metodo utilizzato per contare si basava su parole per identificare le sole prime quattro quantità. Per contare si avvalevano di mani e piedi. Cinque corrispondeva ad una mano intera. Oltre si identificavano i numeri con uno sull’altra mano, fino a due mani, poi uno sul primo piede, due mani ed un piede, uno sull’altro piede. Venti veniva identificato quindi con un intero indiano e oltre con un indiano e uno. Insomma si può definire un sistema di numerazione a base venti. Un sistema analogo si riscontra anche nelle popolazioni Eschimesi e questo fa pensare che il modo di numerare risalga ad un’epoca precedente a quella in cui le grandi migrazioni portarono Homo Sapiens a colonizzare l’intero pianeta, vista la difficoltà di rappresentare visivamente le dita in popolazioni abituate a vivere completamente coperte da pellicce. Quell’epoca che ancora oggi nella tradizioni orale degli aborigeni australiani viene indicata come l’epoca del sogno. Una delle esigenze principali che spinsero allo sviluppo della capacità di calcolare fu il commercio. Un secondo esempio molto significativo ci viene dal resoconto sempre di un missionario che a fine 800 ci riportava gli usi delle tribù Dammara, nel Sud Africa. A proposito dell’utilizzo del baratto osservava come quando durante uno scambio di ad esempio pecore per stecche di tabacco supponendo che il cambio corrente fosse di una pecora per due stecche, il cambio di due pecore avveniva nel seguente modo : prima il venditore delle pecore cedeva al prima pecora ricevendo in cambio le prime due stecche. La pecora doveva essere allontanata. Convinto che la prima transazione fosse stata correttamente e onestamente svolta si passava alla seconda pecora. Uno scambio in cui direttamente si davano le due pecore e si ricevevano in cambio quattro stecche non era assolutamente accettato. Insomma per questa parte dell’umanità il concetto che due per due fa quattro era ancora lontano dall’essere acquisito.

Fig.2 Il papiro di Rhind, parte iniziale

Page 7: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

7

L’effetto che sui nostri antenati ebbe l’appropriarsi della capacità di manipolare le quantità e di calcolare fu enorme. Nell’antico Egitto i problemi matematici ed il loro studio erano riservati alla casta dei sacerdoti e si attribuivano tali capacità a poteri magici, derivanti direttamente dagli Dei. Uno dei primi esempi di testo per insegnare la matematica e la soluzione dei problemi numerici è giunta fino a noi in alcuni papiri tra cui forse il più celebre è quello noto come papiro di Rhind ( il primo proprietario ) o di Ahmes(l’autore ), una raccolta di 25 problemi datatati al 1650 A.C. . Scritto in Ieratico il papiro è lungo circa 6 metri e largo 30 centimetri, è custodito al British Museum. La prima sezione riporta una introduzione, nella quale si rende gloria agli dei ispiratori di quanto verrà esposto, seguito dal risultato della divisione per due di tutti i numeri dispari da 3 a 101, con il risultato espresso in frazioni.La notazione con la virgola ed i decimali è molto recente, risale al secolo XVIII. La seconda sezione consiste in una tabella che riporta le divisioni dei numeri da 1 a 9 per 10. Seguono poi i problemi pratici. Il primo problema consiste nel dividere una razione di grano tra dieci uomini. Ogni uomo riceve un decimo. La dimostrazione ricostruisce l’operazione al contrario usando la tabella precedente : due uomini ricevono 2 decimi, tre uomini ricevono tre decimi, e così via sino all’unità. I problemi sino al sei trattano rispettivamente della divisione di due razioni, tre , quattro e cinque, sempre utilizzando le tabelle precedenti. Tanto i problemi appaiono ai nostri occhi banali e le dimostrazioni peddiseque quanto agli occhio dei contemporanei di Ahmes dovevano essere stupefacenti.

1.2 Registrare e rappresentare i numeri con un sistema

Scartata la possibilità di introdurre nel linguaggio una parola per ogni possibile quantità l’unica possibilità era di definire un sistema che consentisse di utilizzare dei simboli base associati tra di loro in un sistema. I progressi della capacità di numerare arrivarono con i corrispondenti progressi della società organizzata. Non a caso le prime iscrizioni di età sumera sono registrazioni di tasse, versate per consentire di mantenere una struttura di stato. Si possono distinguere due distinti stadi nello sviluppo della capacità di registrare in forma scritta le grandezze numeriche, uno pittorico ed uno simbolico. In quello pittorico le grandezze vengono rappresentate associando un elemento, come un animale, ad una serie di aste ed in seguito elementi grafici associati tra loro, come simboli stilizzati. Questo comincia a comportare in un certo senso un

Fig. 5 dimostrazione di un teorema, tratto da un codice arabo

Page 8: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

8

concetto astratto. Lo stadio successivo consiste nell’associare simboli a gruppi e con questi costruire dei sistemi di numerazione. Tali sistemi si possono suddividere in sistemi additivi e sistemi posizionali. Il sistema Egiziano è un sistema di tipo additivo, ma certamente noi siamo più famigliari con quello Romano che è dello stesso tipo. Il sistema si basa su sette simboli : I 1 V 5 X 10 L 50 C 100 D 500 M 1000 Questi simboli venivano utilizzati in modo additivo, cioè sommando i valori dei simboli tra di loro partendo da sinistra. Solo in epoca successiva venne introdotta la forma sottrattiva, un simbolo a sinistra viene sottratto qualora sia di dimensione inferiore ( IV per quattro e IX per 9 ). Il sistema è abbastanza semplice per le addizioni, anche se richiede due passi, prima i simboli vengono raggruppati in ordine decrescente, in un secondo passo vengono sostituiti i gruppi di simboli che possono essere riscritti con simboli maggiori ( VV co X , XXXXX con L). La moltiplicazione appare notevolmente più complessa e richiede di conoscere i multipli di V e X. Vengono rappresentati i soli numeri interi e naturalmente il sistema appare gestibile solo per numeri fino ad un massimo di qualche migliaio. Per I numeri razionali, come già per gli Egiziani si aggiungevano ai numeri naturali le frazioni. Un sistema piuttosto limitato, ma l’impero Romano dominò il mondo allora conosciuto con una struttura di stato che per molti aspetti ancora ci stupisce. Con la caduta dell’Impero Romano di Occidente nel 456 ebbe inizio una lunga fase di stagnazione che viene indicata con Medio Evo, il sonno della ragione.

1.3 Il contributo del mondo Arabo

In questa epoca le scienze matematiche e astronomiche fiorirono nel vicino mondo arabo, in particolare nella penisola arabica. Nel VII secolo viene fondata la dinastia dei califfi a Bagdad, la nascente cultura araba assorbe dai paesi vicini idee e concetti. Probabilmente dall’india deriva un’idea rivoluzionaria per i sistemi di numerazione:

Fig. 3 Al-Kwoaritzmi, ipotetico ritratto

Page 9: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

9

0 Lo zero rappresenta il definitivo distacco del concetto di numero da una sua rappresentazione fisica. E’ lo zero che consente di definire un sistema di numerazione posizionale e pesato, dove gli stessi simboli hanno un significato non solo per se ma anche per la posizione. Questo non sarebbe possibile senza un simbolo per la quantità nulla. E' con l'introduzione delle cifre arabe per le prime 9 quantità che si realizza, unitamente allo zero, un sistema molto potente, scalabile, che può rappresentare facilmente anche quantità molto grandi e che permette, con semplici regole, di realizzare somme e sottrazioni tra qualsiasi numero. La più antica testimonianza a noi nota sull’utilizzo dello zero risale all’anno 876 AD, con la rappresentazione dei numeri 50 e 270. Già i babilonesi utilizzavano però un carattere simile allo zero nel proprio sistema di numerazione, ma non come parte consistente sel sistema. Il simbolo veniva concepito come separatore tra numeri, ad esempio in un documento dell’epoca si può riscontrare come per rappresentare 1024 il simbolo veniva inserito come separatore tra la colonna per le migliaia e le decine. Non veniva utilizzato invece per numeri come 1000. La difficoltà stava nel concepire che il nulla

potesse separare il nulla. Il califfo Al Mamum stabilì un centro accademico, denominato Casa della Saggezza, attorno all’anno 800, a Bagdad. Si trattava di una combinazione tra una biblioteca, una università e di un centro di traduzione da lingue straniere in Arabo. Fu il centro più importante per la diffusione del sapere dalla distruzione della biblioteca di Alessandria d’Egitto. Vennero tradotti testi dal greco antico, persiano, sanscrito e copto. Molti importanti testi dell’antichità sono giunti a noi

solo grazie a queste traduzioni in Arabo. Purtroppo la storia si ripete nel 1258 AD quando Hulagu Khan, nipote del più famoso Gengis Khan conquista Bagdad e la distrugge. Uno degli studiosi che operarono nella Casa della Saggezza fu Mohammed ibn Musa Al-Kwoharizmi ( Mohhamed, figlio di Moses , originario di Khowarizm, la moderna citta di Kiva nel sud della Russia) .Fu autore di testi di algebra e di geometria e di tavole di calcoli per uso astronomico. Nella sua “Aritmetica” cita espressamente come il sistema di numerazione decimale gli sia pervenuto dagli Indiani . nessuna edizione originale ci è pervenuta, ma disponiamo di traduzioni in altri linguaggi. Il

L’introduzione dello zero consente di costruire un sistema di numerazione posizionale e pesato

Fig.4 Monumento ad Al-Kwoaritzmi, Gedda.

Page 10: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

10

lavoro inizia con la numerazione e discute diffusamente dell’utilizzo delle cifre ed in particolare dello zero. Prosegue con l’esposizione dei metodi fondamentali per le operazioni tra interi. Il lavoro influenzò tutte le successive opere di autori arabi nel campo. L’utilizzo del sistema di numerazione Hindu si diffuse rapidamente in tutto il mondo Arabo.

1.4 La rinascita e l’introduzione del sistema decimale Con la riconquista di territori di cultura araba da parte dei Normanni in Sicilia e, soprattutto la riconquista di Toledo in Spagna nel 1085 da parte di Alfonso di Leon, si pongono le basi per la rinascita culturale dell’Europa.. Un crescente entusiasmo portò studiosi da ogni parte d’Europa alla ricerca dei documenti dell’antichità nella traduzione Araba e dei testi Arabi. Alcuni, come Adelardo di Bath, giunsero alla conversione all’islamismo spinti dall’amore per il sapere. Contribuirono inoltre a questo passaggio di conoscenze il fiorire dei traffici mercantili tra le sponde del mediterraneo. In questa atmosfera si formò alla matematica Leonardo Pisano , figlio di Bonaccio. Nacque attorno al 1170 e alcune informazioni sulla sua vita ci vengono dall’introduzione alla sua prima opera, il Liber Abaci, scritta nel 1202. Il padre Bonaccio era incaricato di dirigere, per conto dell’Ordo Mercatorum di Pisa, l’ufficio doganale di Bugea in Algeria. Quando Leonardo era ancora ragazzino lo chiamò presso di se per studiare il nuovo sistema di numerazione in uso nel mondo Arabo, il sistema decimale posizionale. Da questa esperienza nasce il Liber Abaci, che come dichiarato nell’introduzione ha lo scopo di mettere tutto il suo sapere “ a disposizione della gens latina in modo che ben poco sull’argomento ne possa restare fuori “ Il termine abaco viene utilizzato da Leonardo per indicare l’aritmetica/algebra in generale, termine che mantenne in Italia questo significato fino alla fine del XVIII secolo. Si tratta di un’opera per, l’epoca, colossale. Nella versione in 4° di Baldassare Boncompagni nel 1854 si tratta di 459 pagine, nelle quali vengono presentate le “novem figure” degli indiani e il “signum” 0 ( “quod arabice zephirum appellatur” ) , le operazioni con interi e frazioni, le prove per 7, 9, 11, 13 e il criterio di divisibilità per 9, le operazione per determinare il massimo comun divisore ed il minimo comune multiplo. Vi si danno poi le regole pratiche per compra-vendite, baratti, società, cambi con le monete al tempo in uso,proporzioni. Il tutto corredato da numerosi esempi pratici. In capitoli a parte la regola “ elchataym “ ( doppia posizione per la soluzione delle equazioni ) , sino alla soluzione , discussione e applicazione delle equazioni di secondo grado. E’ sul Liber Abaci che per tre secoli si formeranno

Fig.6 Leonardo Pisano, detto il Fibonacci, ipotetico ritratto, 1170-1250 (circa).

Page 11: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

11

maestri e allievi della scuola toscana. Non era certo un’opera facile, Leonardo consigliava al lettore di insistere nell’applicazione e nell’esercizio continuo, sino a che memoria e ragionamento, mani e numeri “ quasi uno impulsu et anelitu in uno et eodem instanti circa idem per omnia naturaliter consonent” . Sarà questo anelito di perfezione a fare di Leonardo un matematico di eccezione tra i contemporanei e successori, i quali conservarono un

reverenziale ricordo del maestro. Maestro Benedetto da Firenze a metà del secolo successivo tradurrà la sua opera in volgare e citerà ripetutamente le sue opere e ne ricorderà la figura. “ dicho che L.P. fu uomo sottilissimo in tutte le dispute et secondo che si trova, lui fu il primo che ridusse allume questa pratica in toscana, che allora si andava per vie molte e strane” Dal 1202 al 1220 Leonardo Pisano non scrisse più nulla. In quegli anni gli scomunicati della quarta crociata fondavano l’impero latino d’Oriente e nuovi testi, questa volta greci, passavano in Europa ; crociati comunicati distruggevano la Provenza e i suoi abitanti, demandando a Dio l’incarico di riconoscere le anime dei non eretici. A Parigi veniva proibita , pena la scomunica, la lettura sia in pubblico che in privato delle opere di Aristotele. Le arti, le lettere e le scienze ebbero un forte impulso dall’avvento di Federico di Svevia, “stupor mundi”, che volle alla sua corte notari e protonotari indigeni, “magistri” e “philosofi” di tutte le nazioni. Fu proprio uno dei filosofi della

Fig.7 L’incipit del Liber Abaci, notare evidenziata la sequenza delle nove cifre .

Page 12: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

12

corte di Federico, Maestro Domenico, a spingere Leonardo a scrivere un nuovo testo, un compendio di geometria , la Pratica Geometriae. Leonardo fu protagonista di sfide alla corte di Federico. Nel 1223 l’imperatore passo per Pisa e Leonardo venne presentato a Federico II da Maestro Domenico. Davanti all’imperatore si intrattenne in discussioni con Maestro Giovanni da Palermo. Questi propose a Leonardo problemi del tipo di trovare la soluzione ad una equazione di terzo grado o trovare un congruo, cioè “Trovare un numero quadrato tale che , sia aggiungendogli che togliendoli 5, dia sempre un quadrato”.

Page 13: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

13

Il nome di Fibonacci rimase legato alla soluzione di uno dei problemi pratici del Liber Abaci, trovare il numero di discendenti di una coppia di conigli dopo n generazione. La soluzione è data dalla serie , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , …. Dove ogni numero è la somma dei due precedenti.

1.5 La lenta diffusione del nuovo sistema

La prova del 9 Leonardo inserisce nelle spiegazioni delle operazioni anche un metodo per controllarne la correttezza, la prova del 9. Se si calcola il residuo di ogni numero coinvolto nell’operazione, i residui degli operandi , composti come l’operazione, devono dare il residuo del risultato. Il residuo è la cifra ottenuta sommando tra loro, se necessario più volte, le cifre del numero sino ad ottenere una sola cifra. Tale operazione equivale al resto dell’operazione di divisione per 9, o modulo 9. Infatti ogni volta che in un numero spostiamo una cifra dalla sua posizione e la sommiamo alla cifra di destra, equivale a sottrarre al numero un multiplo di 9, una cifra n in posizione p,

( ) ( ) 111 109101101010 −−− =−=− pppp nnn Prendiamo ad esempio l’operazione di moltiplicazione e scomponiamo i moltiplicandi secondo la divisione per 9, m = p x q

( ) mm restm +⋅= 9

( ) pp restp +⋅= 9

( ) qq restq +⋅= 9

e quindi

mmqppqqpqp restresrestrestresttqp +⋅=⋅+⋅⋅+⋅⋅+⋅⋅⋅=⋅ )9()9()9()9()9(

[ ] mqppqqpqp restresrestrestresttm

+⋅=⋅+⋅+⋅+⋅⋅⋅ )9()9(9

eseguendo ora l’operazione di modulo 9

mqp resresres =⋅ )(mod9 cvd.

Da questo si desume anche che la prova del 9 stabilisce una condizione necessaria ma non sufficiente per stabilire la correttezza dell’operazione, non si possono infatti individuare errori che introducono nel risultato dei multipli di 9. Certamente l’operazione di modulo 9 non è facilmente realizzabile manualmente comportando l’effettuazione di una divisione, ma Leonardo indica un modo agevole ç Sommare tra di loro le cifre che compongono il numero e se il risultato è maggiore di 9, ripetere il procedimento sino a ridursi ad una sola cifra. Infatti sommare una cifra n in posizione p alla posizione p-1 equivale a sommare + n per 10 alla p-1 - n per 10 alla p o – n per 9 per a0 alla p-1 Cioè equivale a sottrarre un multiplo di 9. Iterando il procedimento fino all’ultima cifra otteniamo un numero compreso tra zero e 9. Nel caso di 9 per ottener il modulo di deve sottrarre una ultima volta 9.

Page 14: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

14

Sia per la complessità che per la lunghezza la diffusione del Liber Abaci fu piuttosto ristretta. Il solo lavoro di copiare manualmente un testo di 459 pagine era già un grosso problema. Ad una diffusione più capillare del nuovo sistema contribuirono i lavori “Carmen de Algorismo” di Alexander De Villa Dei, circa 1220 , e “Algorismus Vulgaris” di Giovanni da Halifax, meglio conosciuto come Sacrobosco. Anche questi lavori si basano sull’Aritmetica di Al-Kwaritzmi e furono utilizzati come testo in numerose Università . Il “Carmen de Algorismo” è composto in endecassilabi. Per entrambi non si forniva una completa spiegazione del sistema ma erano composti rispettivamente da quattromila parole il primo e da 284 linee il secondo, la qual cosa li rendeva particolarmente adatti ad una veloce copiatura. Ne vennero effettuate traduzioni in diverse lingue. La diffusione del nuovo sistema fu comunque molto lenta, abbandonare il sistema di numerazione Romano non fu facile, soprattutto per motivi culturali. A quanto veniva dal mondo Arabo si guardava con molta diffidenza. Nei conventi l’utilizzo del sistema Romano per le registrazioni si protrasse fino al XVIII 1 secolo. Le resistenze furono molteplici. Nel 1299 la città di Firenze emise un’ordinanza che proibiva l’utilizzo del sistema indo-arabico nelle transazioni commerciali, vista la facilità di falsificare i numeri. Uno zero poteva facilmente essere trasformato in un nove o in un sei. In altri casi l’innovazione fu molto veloce. Un interessante documento conservato al British Museum riporta le registrazioni dei figli nati in una famigli a metà del XIII secolo, nel seguente ordine Primo figlio Mijc.Lviii 2 Secondo figlio Mijc.Lxi

1 Incidentalmente l’aver riportato il secolo come numero Romano testimonia come ancora oggi per le cose

importanti questo nuovo sistema di numerazione non paia molto appropriato. 2 La forma ijc era una forma scritta per rappresentare 200.

Le operazioni con il nuovo sistema

Nel Liber Abaci viene illustrato in dettaglio l’utilizzo del sistema decimale. Vi sono esempi per moltiplicare tra numeri con lunghezza diversa . Ad esempio nel capitolo II si illustra la moltiplicazione dei numeri di due cifre per due cifre.

37 x 37 Si esegue il prodotto delle cifre della prima colonna si segna in alto il risultato e si prende nota del riporto 9 riporto 4 37 x 37 Si esegue il prodotto incrociato decine per unità, per entrambe le diagonali quindi 7 x 3 + 7 x 3, vi si somma il riporto precedente( 4 ) e si ottiene 46, si scrive il 6 e si tiene conto del nuovo riporto di 4. 69 riporto 4 37 x 37 Si moltiplicano tra di loro le decine 3 x 3 , si somma il riporto e si ottiene il risultato 1369 riporto / 37 x 37 Vengono poi fornite le regole per prodotti tra numeri di lunghezza diversa.

Page 15: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

15

Terzo figlio Mijc.63 Quarto figlio 1264 Quinto figlio 1266 In un primo momento le cifre furono usate solo per l’anno ma nel breve volgere di otto anni l’estensore del testo si era completamente adeguato.

1.6 Metodi e strumenti per calcolare Con l’introduzione del sistema decimale si compie un notevole passo avanti in termini di capacità di calcolo. Ma i problemi che si affrontano sono sempre più complessi e vi è un notevole impegno nel cercare metodi e artifici per agevolare il compito. Tra le persone che maggiormente hanno contribuito a questo sviluppo vi è Jhon Napier, barone di Merchiston, nato nel 1550, scozzese. A lui va il merito dell’introduzione dei Logaritmi, per cui è famoso, ma sempre a lui si devono anche altri metodi di calcolo. Con le sue parole : The difficulty and prolixity of calculation, the weariness of wich is so apt to deter from the study of mathematics, I have always, with what little powers and little genius I possess, laboured to eradicate. And with that end in view, I have published of late years the Cannon of Logharithms ... [F]or the sake of those who prefer to work with the natural numbers as they stand, I have excogitated three other compendious modes of calculation, of witch the first by means of numberig rods and these I have called Rabdologia. Another, by far the most expeditious of all for multiplication, and which on that account I have no inaptly called the Promptuary of Multiplication, is by means of little plates of metal disposed ina a box. And lastly, a third method , namely Local Arithmetic performed upon a chess board. Il metodo maggiormente diffuso al tempo fu quello delle barrette numerate, citato per primo, che consentiva di eseguire le operazioni mediante l’accostamento delle barrette. Certamente questi metodi furono anche utilizzati per il calcolo delle tabelle logaritmiche. Napier , meglio noto in Italia come Nepero fu tra i protagonisti della riforma Protestante e pubblicò anche un libro sull’Apocalisse di S.Giovanni Apostolo

Fig. 8 Johan Nepier , Barone di Merchiston 1550 -

Nepero I logaritmi come strumento per aiutare l’esecuzione di calcoli complessi come le moltiplicazioni

Page 16: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

16

che lo rese celebre come teologo. E’ da credere che l’ispirazione venne dai primi lavori sulla trigonometria e in particolare con la formula di prostaferisi Sin (a) sin (b) =[cos (a-b) – cos ( a+b)]/2 Per mezzo di questa formula e disponendo dei valori già tabulati per seno e coseno si può effettuare una operazione difficile, la moltiplicazione, mediante delle somme, delle sottrazioni ed una divisione per due. Questo influenzò certamente Nepero, in quanto i primi logaritmi non erano di numeri naturali ma di seni di angoli. L’idea nacque quindi non dall’algebra ma dalla geometria, cosa che trova una spiegazione anche nel fatto che all’epoca la notazione decimale dei numeri

rappresentati con la virgola e quindi le potenze negative di dieci o quella dell’elevamento a potenza con l’esponente come indice mon erano ancora in uso. In origine utilizzò il termine di numeri artificiali ma in seguito coniò il termine logaritmo derivandolo dalla frase greca per rapporto tra numeri. Nel Luglio del 1614 pubblica un piccolo volume di 56 pagine di testo e 90 di tabelle dal titolo Mirifici Logarithmorum Canonis Descriptio. La proprietà che ci interessa ai fini del calcolo è che log ab = log a + log b Nel 1624 il matematico Henry Brigs pubblica una serie di tavole con i logaritmi dei numeri da 1 a 20.000 e da 90.000 a 100.000, calcolati con una precisione di 14 cifre decimali. Le tabelle contenevano solo 1161 errori, pari allo 0,04% dei dati. L’utilizzo dei logaritmi nel

calcolo si diffuse molto rapidamente, tra i primi ad utilizzarli vi fu l’astronomo Keplero. Fu quindi un’invenzione che modificò radicalmente, migliorandolo, il lavoro di chi a vario titolo si trovava coinvolto nel calcolo. L’utilizzo, anche mediante regoli calcolatori, venne soppiantato solo dall’avvento dei moderni calcolatori elettronici. Nella figura che segue viene riportata una tavola tratta “Tavole Logaritmiche e trigonometriche a cinque decimali” di Guglielmo Palazzi, edito dalla casa editrice Ponte Nuovo – Bologna , nel 1974, ad uso dei licei , Istituti Tecnici e professionali. Nella premessa apprendiamo che le presenti tavole logaritmiche “ … sono state segnalate dall’Accademia Nazionale dei Lincei per il “Premio

Fig 9. Il frontespizio della prima edizione dei Mirifici Logarithmorum , 1614

Page 17: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

17

del Ministero della Pubblica Istruzione per la matematica per l’anno 1970”, con la seguente motivazione : “Palazzi Guglielmo presenta delle tavole dei logaritmi dei numeri naturali fino a 10.000 e delle funzioni trigonometriche , dove l’uso di particolari accorgimenti consente di ottenere approssimazioni molto soddisfacenti.” L’opera riporta i logaritmi delle funzioni trigonometriche ed il valore dei quadrati e dei cubi dei primi 1000 numeri. Seguono istruzioni per l’uso con esempi pratici in particolare per interpolare valori tra quelli tabulati. Sia le tecniche esposte da Leonardo Pisano che l’utilizzo delle tavole trigonometriche richiedevano del personale specializzato e ben addestrato. I calcoli erano comunque lunghi e tediosi, inevitabilmente soggetti ad errori. Si cominciò a ragionare di come tale lavoro potesse essere automatizzato utilizzando delle macchine.

Page 18: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

18

Fig. 10 Tavola per il calcolo dei Logaritmi tratta da le “ Tavole Logaritmiche e Trigonometriche di Guglielmo Palazzi “ - 1974

Page 19: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

19

1.7 Un esempio pratico, una moltiplicazione con l’utilizzo delle tavole logaritmiche

Premesso che in campo tecnico la precisione viene identificata con il numero di cifre significative, tabulando i valori dei logaritmi naturali dei numeri da 1 a 10000 si può condurre qualsiasi calcolo con la precisione di cinque cifre significative. Le cifre significative sono quelle che seguono la prima cifra diversa da zero. Qualsiasi numero si può ricondurre ad una rappresentazione normalizzata utilizzando le potenze di 10. Ad esempio 3.456.000 e 0,00012389 sono entrambi numeri con cinque cifre siginificative e possono essere rappresentati in forma normalizzata come 0,3456 x 107 e 0,00012389 x 10-3. Vediamo un Esempio: Calcolare 10,34 x 1347 usando la tavola dei logaritmi ( da http://web.ticino.com/calcolo/info.html )

Per prima cosa si deve trovare il logaritmo di 10,34. La tavola ci dà solo la parte decimale del logaritmo

(mantissa), la parte intera è data dalla potenza di dieci del numero. La parte intera del logaritmo di 10,34 sarà quindi 1. Per trovare la parte decimale si toglie la virgola al numero, che diventa 1034. La colonna N della tavola indica le prime 3 cifre del numero, la quarta è il numero indicato in cima alle colonne numerate da 0 a 9. Le prime due cifre della parte decimale si trovano nella colonna L in corrispondenza della riga per N=103 (01), le altre 3 cifre si trovano sulla stessa riga nella colonna del 4 (452). La parte decimale sarà quindi 01452. Il logaritmo di 10,34 è 1,01452.

Poi si, allo stesso modo, si deve trovare il logaritmo di1347. La parte intera del logaritmo è 3.

Page 20: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

20

Il numero è 1347, per cui le prime 3 cifre sono 134. Sulla linea 134 manca il valore nella colonna L, per le prime due cifre della parte decimale si deve quindi prendere l' ultimo valore della colonna L prima della linea 134 (12). Le altre 3 si trovano sulla riga per N=134 nella colonna 7 (937). La parte decimale sarà quindi 12937 Il logaritmo di 1347 è 3,12937.

Ora si somma il logaritmo di 10,34 al logaritmo di 1034 (nel caso della divisione si dovrebbe sottrarre) 1,01452 + 3,12937 = 4,14389 Il prodotto tra 10,34 e 1347 sarà il numero il cui logaritmo è 4,14389, ora lo si deve cercare nella tavola. La parte intera del logaritmo è la potenza di 10 del numero cercato (4), con la parte decimale (14389) si trovano le cifre. La parte decimale inizia con le 2 cifre 14, le si cercano nella colonna L. Poi si cercano le altre 3 cifre (389) nelle colonne seguenti numerate da 0 a 9. Il 389 non c' è, ci sono il 364 nella colonna 2 ed il 395 nella colonna 3 della riga per N=139. Il numero cercato si troverà quindi tra 13920 e 13930. Per trovare la quinta cifra significativa dobbiamo interpolare.

Page 21: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

21

Per interpolare si usano le tabelle P.P. (partes proportionales). Dapprima si trova la differenza tra 395 e 364 (i 2 numeri alle colonne 2 e 3) 395 - 364 = 31 Si dovrà consultare la tabella P.P. alla colonna 31 Poi si trova la differenza tra 389 (il valore non trovato) e 364 (il più piccolo dei 2 trovati) 389 - 364 = 25

Nella colonna 31 della tabella P.P. cerchiamo il valore più vicino al 25 (24,8). Nella prima colonna in corrispondenza di 24,8 troviamo il numero 8, è la quinta cifra significativa. Il numero cercato sarà dunque 13928: 10,34 x 1347 = 13928

Fig. xx Frontespizio della pubblicazione di Rottman

Page 22: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

22

Terminiamo ricordando che nel 1959 Karl Rottmann pubblica presso il Bibliographisches Institut di Mannheim delle tavole logaritmiche calcolate e stampate con l' aiuto del computer. Non contengono errori di stampa . con questo si realizza il sogno di Charles Babbage ( vedi il prossimo capitolo ), realizzare mediante una macchina delle tavole che non contengano errori, nemmeno di trascrizione. Questo ci ricorda anche come anche i computer erano all’inizio non delle macchine di uso generale ma data la mole ed i costi solo per scopi molto particolari, le necessità di calcolo della vita quotidiano erano sempre soddisfatte con i vecchi metodi anche se gli strumenti erano ora più affidabili.

Fig. xx Presentazione del lavoro di Rottman

Page 23: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

23

Page 24: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

24

Page 25: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

25

Fig. xx Una pagina delle tavole di Rottman

1.8 I regoli calcolatori

Con lo sviluppo dei logaritmi vengono introdotti anche degli strumenti per calcolare che costituiscono dei veri e propri calcolatori analogici denominati regoli calcolatori, l’invenzione vien ricondotta a Nel 1650 il matematico inglese E. Gunter La parola analogico significa che lo strumento manipola grandezze che variano in modo continuo e mediante l’utilizzo di aste graduate le operazioni algebriche vengono ricondotte alla somma o differenza di segmenti misurati su diverse aste. Se le scale di numerazione sono in scala logaritmica la somma di due segmenti proporzionali al logaritmo dei moltiplicandi rappresenta il logaritmo del prodotto dei due numeri. Vediamo alcuni esempi tratti sempre dal sito : da http://web.ticino.com/calcolo/info.html

1.8.1 Moltiplicazione

1. Portare l' 1 iniziale della scala C sopra il primo fattore sulla scala D

2. portare il cursore sul secondo fattore della scala C

3. Leggere il prodotto sulla scala D Se il prodotto è fuori scala:

1. Portare l' 1 finale della scala C (a volte segnato con 10) sopra il primo fattore sulla scala D

2. portare il cursore sul secondo fattore della scala C

3. Leggere il prodotto sulla scala D

4. Moltiplicare per 10

1.8.1.1 2 x Pi

1. portare l' 1 iniziale della scala C sopre il 2 della scala D

2. portare il cursore sul Pi della scala C

3. Leggere il prodotto sulla scala D (un po' più di 6,25)

Page 26: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

26

1.8.2 Divisione

1. Portare divisore sulla scala C sopra il dividendo sulla scala D

2. portare il cursore sull' 1 iniziale della scala C

3. Leggere il quoziente sulla scala D Se il quozienze è fuori scala:

1. Portare il divisore sulla scala C sopra il dividendo sulla scala D

2. portare il cursore sull' 1 finale (a volte segnato con 10) della scala C

3. Leggere il quoziente sulla scala D

4. Dividerere per 10

1.8.2.1 5 : 2,2

1. Portare il 2,2 sulla scala C sopra il 5 sulla scala D

2. portare il cursore sull' 1 iniziale della scala C

3. Leggere il quoziente sulla scala D (un po' più di 2,25)

1.9 La calcolatrice elettronica Negli anni settanta del secolo scorso l’avvento della calcolatrice elettronica rende improvvisamente obsoleti tre secoli di storia e montagne di tavole e regoli calcolatori. Tra le più celebri vi furono quelle prodotte dalla Hewlet Packard che si distinguevono per l’utilizzo di una notazione molto particolare che analizziamo con una presentazione tratta dalla sito della società (www.hp.it ) .Questo m,etodo si basa sull’utilizzo di uno stack, concetto che ritroveremo ancora in seguito.

RPN, un'introduzione alla notazione polacca inversa

Page 27: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

27

Il metodo RPN: descrizione e origine

Se siete utilizzatori assidui di una calcolatrice, è giunto il momento di scoprire i vantaggi del metodo RPN. RPN è l'acronimo di Reverse Polish Notation (notazione polacca inversa). La notazione polacca inversa è stata sviluppata nel 1920 da Jan Lukasiewicz come un modo per scrivere un'espressione matematica senza usare parentesi. Hewlett-Packard Co. ha ritenuto che il metodo di Lukasiewicz fosse superiore alle espressioni algebriche standard(1) nell'uso di calcolatrici e computer, e ha adottato la notazione polacca per la sua prima calcolatrice scientifica tascabile, la hp35, nel 1972.

Perché usare RPN?

• RPN permette di risparmiare tempo e immissioni di dati. Non occorre usare le parentesi per effettuare i calcoli. Il processo è simile al modo in cui si è appresa la matematica su carta. • Si possono vedere i risultati intermedi mentre si eseguono i calcoli anziché avere solo la risposta finale al termine. Si tratta di una funzione estremamente utile. Gli insegnanti di matematica la utilizzano per migliorare la comprensione della matematica dei loro studenti. • Un risultato intermedio consente di controllare i risultati e di correggere gli errori più facilmente. Risulta così più semplice seguire il corso del calcolo. L'utilizzatore definisce la priorità degli operatori. • RPN è logico perché l'utilizzatore prima immette il numero e poi stabilisce cosa farne. HP Fornisce la piena funzionalità RPN

Hewlett-Packard produce alcuni modelli di calcolatrici con RPN perché si tratta di un metodo di calcolo estremamente potente e semplice. Le calcolatrici scientifiche HP 48G+ e HP 48GX e la calcolatrice finanziaria hp12C usano esclusivamente RPN. HP sa bene comunque che vi sono clienti che preferiscono il modo di immissione algebrico tradizionale. Ecco perché alcune calcolatrici HP funzionano con i due sistemi, RPN e algebrico. Ad esempio, la 17BII e la 49G possono passare da una modalità all'altra.

RPN è coerente nell'uso. Gran parte delle calcolatrici scientifiche non-RPN sono metà RPN e metà algebriche. Ad esempio, per eseguire la somma, è necessario immettere 2+4 (sistema algebrico), ma per effettuare un calcolo del seno, occorre prima digitare il numero e poi premere il pulsante SIN, il che corrisponde appunto al metodo RPN per immettere l'equazione. Le calcolatrici scientifiche RPN HP non presentano questa peculiare differenza.

Imparare l'RPN è facile Che lo si creda o meno, l'apprendimento della notazione polacca inversa è analogo a quello della matematica. A ben pensarci, per usare una calcolatrice in modo algebrico bisogna cambiare il modo in cui si è imparata la matematica. Facciamo un esempio:

3+5 --- 7+6

oppure (3+5) ÷ (7+6) = x

Metodo algebrico: Sommare 3+5=8. Annotare la risposta o memorizzarla. Sommare 7+6=13. Ora digitare l'8 dell'operazione precedente e quindi dividerlo per il secondo risultato così da ottenere x=0,62.

Page 28: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

28

Metodo RPN: Premere 3 e il tasto ENTER. Premere 5 e il tasto +. Premere 7 e il tasto ENTER. Premere 6 e il tasto +. Viene visualizzato il risultato della seconda somma. Ecco ora la parte sorprendente: premere il tasto di divisione e la calcolatrice fornisce il risultato: 0,62.

Metodo algebrico: 13 tasti, senza contare lo sforzo per annotare o memorizzare il primo risultato mentre si calcola il secondo.

Metodo RPN: 9 tasti e nessun bisogno di prendere appunti.

Come funzionano le calcolatrici RPN

RPN tiene traccia dei calcoli ponendoli in uno stack(2). Nell'esempio precedente, quando si è premuto ENTER per la seconda volta, il risultato della prima somma è stato inserito(3) nello stack in attesa dell'azione successiva. Dopo aver immesso la seconda somma, premendo il tasto di divisione, il risultato della prima somma viene diviso per il risultato della seconda e l'ultimo risultato in ordine di tempo viene rimosso(4) dallo stack. In altre parole, il metodo RPN ha eseguito il calcolo in un ordine logico.

Per imparare a usare una calcolatrice RPN sono necessari solo pochi minuti, dopo di che è possibile risparmiare una considerevole quantità di tempo. Ecco un esempio pratico e comune di uso del metodo RPN.

Operazione: Saldo: Operazione RPN: Stack RPN:

$252 252 ENTER $252

Spesa €23 229 23 - 229

Deposito 30 259 30 + 259

Spesa 21 238 21 - 238

Spesa 43 195 43 - 195

Spesa 21 174 21 - 174

Controllo pagamento: 400

574 400 + 574

Spesa 35 539 35 - 539

Spesa 74 465 74 - 465

Spesa 26 439 26 - 26

Spesa 100 339 100 - 339

Spesa 10 329 10 - 329 Vuoi sperimentare l’utilizzo di una delle prime calcolatrici HP in notazione RPN, collegati al sito http://www.hpmuseum.org/simulate/hp35sim/hp35sim.htm

(1) Modo algebrico: definizione della notazione matematica utilizzata su tutte le calcolatrici non-RPN quando si immette un'equazione matematica nel seguente modo: 1+3*(3+(2-5)/3). In modo algebrico le parentesi e l'ordine delle operazioni sono estremamente importanti. (2) Stack: detto anche LIFO (last-in, first-out), costituisce la base del sistema RPN essendo la 'memoria' che consente all'utilizzatore di immettere i numeri

Page 29: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

29

(3) Inserimento: l'aggiunta di un numero alla fine dello stack che spinge tutti gli altri numeri verso l'alto. (1) Rimozione: l'eliminazione dell'ultimo numero inserito in uno stack.

Page 30: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo I –Numerare contare calcolare

30

Riferimenti capitolo 1

[1] Michael R. Williams A HISTORY OF COMPUTING TECHNOLOGY – IEEE COMPUTER SOCIETY 1996 Capitoli 1 e 2 [2] Nathan Altshiller Court -Mathematics in the History of Civilization – A.B. Arndt - Al Kwartizmi

in From Five fingers to Infinity – Open Court [3] Ettore Picutti -Leonardo Fibonacci – Le Scienze Aprile 1982 [4] L.E. Sigler – Fibonacci’s Liber Abaci , A translation into Modern English of Leonardo Pisano’s Book of alculation – Springer Verlag New York - 2002 – www.verlag-ny.com Siti INTERNET http://www.hpmuseum.org/

.

Page 31: Introduzione all'informatica2006

Fig. 10 Blaise Pascal

2 Macchine per calcolare

I moderni elaboratori traggono le origini dalle macchine meccaniche sviluppate a partire dal 1600 per automatizzare le quattro operazioni aritmetiche. Le difficoltà incontrate dai primi pionieri furono enormi, poiché oltre allo sviluppo teorico dei meccanismi, le rudimentali tecnologie meccaniche dell’epoca comportarono enormi problemi per la realizzazione pratica delle opere ideate. Le prime idee si mossero dall’utilizzo di una rappresentazione delle cifre decimali baste su ruote dentate con una posizione di riferimento. Per sommare il contenuto di due ruote, si faceva girare una terza ruota prima di un numero di scatti pari alla prima e poi pari alla seconda.

Il problema maggiore da risolvere era quello della generazione dei riporti. Comunque le macchine di quest’epoca si possono ricondurre a sistemi basati su sei componenti fondamentali: Un meccanismo che oggi definiremmo di ingresso, che permettesse di caricare i numeri da elaborare. Un meccanismo di selezione che determinasse i movimenti da eseguire nel caso di un’addizione o di una sottrazione. Un meccanismo in gradi di registrare un numero all’interno della macchina. Un meccanismo di riporto, in grado di assicurare, nel caso il risultato di una somma fosse maggiore di 9, il riporto di una unità

sulla ruota successiva.

Fig. 9 La pascalina

Page 32: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

32

Un meccanismo di controllo in grado di impostare una posizione iniziale per tutte le ruote. Un meccanismo per cancellare il numero memorizzato nella macchina. In merito ai primi lavori in questo campo, sebbene alcune leggende accreditino al monaco Gerbert che divenne papa con il nome di Silvestro II, come il primo a sviluppare un congegno per il calcolo automatico, la prima macchina di cui si abbia notizie storiche certe, è quella sviluppata da Wihelm Schikard ( 1592 – 1635 ). Personaggio dai molteplici interessi, paragonato spesso per il suo eclettismo a Leonardo da Vinci, scienziato, inventore e pittore, si trovò a collaborare in diverse occasioni con Keplero. Della sua macchina per calcolare non sono rimaste tracce, probabilmente anche perché tutta la famiglia si estinse durante una delle periodiche epidemie che travagliarono l’Europa. In base alle informazioni disponibili nel 1971 si è costruita una replica della macchina.

2.1 La macchina di Pascal Ma il contributo più noto venne da Blaise Pascal ( 1623 – 1662 ), la sua macchina si basava su principi completamente differenti da quelli di Schickard, di cui non si ritiene avesse notizia. Nato nel sud della Francia, da famiglia nobile, Pascal fu educato in famiglia, principalmente da parte del padre potendo contare su una vasta biblioteca. A seguito di un tracollo economico dovuto ad una forte diminuzione sugli interessi del debito pubblico a seguito della guerra dei trent’anni, il padre cadde in disgrazia e vene anche imprigionato. Riabilitato, anche a seguito delle perorazioni dei figli, gli venne assegnato l’incarico di esattore delle tasse nel nord della Normandia, incarico non certo molto popolare ma che consentiva alla famiglia un certo agio. Fu proprio a seguito di tale incarico e dei laboriosi conti giornalieri necessari alla tenuta dei registri che Pascal progettò e costruì la sua macchina da calcolo. La prima macchina venne costruita nel 1642, ma si ritiene che nel corso della sua vita ne costruì in totale cinquanta esemplari . I numeri venivano inseriti mediante una serie di ruote forate per mezzo di un perno un sistema simile ai selettori decadici dei telefoni. I risultati venivano riportati in una serie di finestrelle nella parte superiore della macchina. Le ruote potevano muoversi solo in una direzione, di conseguenza si potevano eseguire solo operazioni di somma, le sottrazioni venivano eseguite utilizzando il complemento a nove del numero da sottrarre il meccanismo del riporto è molto simile a quello di Schickard e si basa sull’utilizzo di una ruota con un solo dente accoppiata a quella per rappresentare il numero e che, solo

Differenze con i complementi Sottrarre 34 a 87 87 - 38 ______ 49 complemento a 99 di 38 = 61 87 + 61+ 1 ______ 149 Non considerando il riporto si ottiene il medesimo risultato. Certo eseguire il complemento a 99 è sempre una sottrazione, ma si può fare senza riporti

Page 33: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

33

dopo una rotazione completa, causasse la rotazione di uno scatto di quella successiva. Il problema maggiore consisteva nel fatto che nel caso un riporto generasse a sua volta un riporto e così via in catena, le forze necessarie da applicare per ottenere la generazione di tutti questi valori poteva compromettere i delicati meccanismi della macchina. I problemi maggiori che Pascal dovette affrontare per la costruzione delle sue macchine non furono tanto legati alla soluzione dei problemi teorici quanto alla loro realizzazione pratica. Per tali motivi, dopo alcuni deludenti risultati, si cimentò direttamente nella realizzazione pratica sperimentando diversi materiali per la costruzione degli ingranaggi, tra cui anche l’avorio. La vita di Pascal non fu certo felice, travagliato oltre che dalle difficoltà economiche anche da disturbi fisici molto forti, dovuti a malformazioni degli organi interni e del cervello, morirà in completa povertà, forse proprio ad una vita così travagliata va ricondotto il suo grande contributo filosofico e matematico. Il rifugiarsi in tali attività gli era forse unico sollievo ai tanti dolori e dispiaceri.

2.2 Leibnitz, un meccanismo per moltiplicare Un ulteriore contributo venne dal matematico tedesco Wihelm Leibnitz ( 1646 – 1716 ). Anche per lui educazione in famiglia resa possibile dalla disponibilità di una vasta biblioteca dove, dopo la morte del padre a soli sei anni, potrà liberamente formarsi. Certamente venne a conoscenza della macchina di PASCAL ma non ci è noto se ebbe la ossibilità di vederla funzionare. L’innovazione introdotta era la capacità di eseguire le moltiplicazioni. Per tale operazione era disponibile un congegno che, operando su una struttura di base simile a quella di Pascal, poteva essere accoppaiato a due ingranaggi per eseguire la moltiplicazione delle due cifre rappresentate. Come si può notare nell’illustrazione, il congegno poteva muoversi ( la parte circolare ) per venire accoppiata a qualsiasi

coppia di ruote. Il meccanismo si basava su di un cilindro con scanalature di lunghezza proporzionale alle nove cifre. Questo meccanismo venne ripreso anche da altre macchine successive. Citiamo tra i maggiori tentativi di miglioramento di macchine basate su questo principio quelle realizzate da Samuel Morland,Renè Grillet e tutte le macchine commerciali prodotte a partire

dal 1820, che portarono alle calcolatri meccaniche da tavolo in uso fino agli anni’70. Da questo ramo evolutivo si stacca una nuova tipologia di macchine,

Fig.12 Gottfried W. Leibnitz 1646 - 1716

Fig.11 La macchina di Lebnitz

Page 34: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

34

si comincia a pensare di costruire macchine che non solo sappiano fare i calcoli ma che possano essere utilizzate a scopo generale, ma vediamo prima quale fu la necessità che spinse a questa evoluzione.

2.3 Il problema della longitudine e della latitudine

Nel secolo XIX l’aumento dei traffici mercantili comporta che per la principale potenza marittima del tempo, la Gran Bretagna, la questione della sicurezza in mare diventa di primaria importanza. A tale scopo assumeva particolare

importanza poter stabilire con precisione la posizione di una nave in mare. Se nel Mediterraneo era possibile effettuare una navigazione prevalentemente costiera questo non era possibile sugli oceani. Si disponeva già di carte nautiche abbastanza dettagliate ma a nulla potevano servire senza la possibilità di conoscere la propria posizione. Per determinarla occorre conoscere due angoli rispetto al sistema di coordinate sferiche, la longitudine e la latitudine. Per il primo la determinazione si basa sulla misura della differenza fra i valori simultanei del tempo locale t

di un astro e del tempo dello stesso astro rispetto ad un meridiano di riferimento. Occorre quindi poter disporre del tempo rispetto al meridiano di riferimento. Non potendo disporre di uno strumento accurato a tale scopo nel corso dei secoli si svilupparono diversi metodi per raggiungere lo scopo. Tra tutti merita di essere citato quello dovuto a Galileo Galilei ( 1564 – 1642 ). A seguito della sua scoperta delle lune di Giove nel 1610. Le quattro lune battezzate Astri Medicei ruotano attorno al pianeta con tale rapidità da

Fig 13 .Jhon Harrison 1693 - 1776, ritratto con il cronometro H3.

Fig.14 H1 , presentato nel 1736 al Board of Longitude

Page 35: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

35

dare luogo ad eclissi che potevano essere utilizzate per il calcolo della latitudine. Si possono utilizzare due eclissi nel corso di una notte e su questa base Galileo produsse delle tabelle che consentivano di ricavare la longitudine. Naturalmente restava la difficoltà di procedere all’osservazione delle eclissi delle lune di Giove dal ponte di una nave a vela nel mezzo dell’oceano. Naturalmente il punto nave e di maggiore importanza in mezzo a una tempesta e con il mare molto mosso. La vera soluzione rimaneva la costruzione di un orologio che consentisse di mantenere il tempo con un errore molto basso. Un secondo d’arco corrisponde sulla sfera terrestre ad un miglio marino. L’uso di orologi a bordo delle navi risale al XVI secolo ma la precisione era del tutto insufficiente. Per tale motivo il parlamento inglese nel 1714 , su proposta del matematico W. Whiston e con il consenso della regina Anna approvò il Longitude Act con lo stanziamento di un premio di 10.000 , 15.000 o 20.000 sterline (si stima equivalenti a 12 milioni di Euro attuali ) a chi avesse determinato la longitudine rispettivamente con la precisione di 1°, 0°,75 e di 0°,50 . Tra le motivazioni che portarono a tale decisione vi fu l’ennesimo sinistro navale, la flotta da guerra inglese perse otto navi con 900 uomini presso la foce del fiume S.Lorenzo, le somme promesse, da capogiro per l’epoca, esprime in modo eloquente lo smarrimento dell’intera nazione di fronte alla mancanza di metodi sicuri per poter evitare tali disastri. La soluzione arrivò con Jhon Harrison, un geniale meccanico che nel 1736 presentò il suo primo modello di orologio denominato H1 al Board of Longitude, la commissione designata dal parlamento per valutare l’assegnazione del premio. L’ingegnosa costruzione prevedeva un orologio quasi del tutto privo di attrito , in gradi di mantenere le parti mobili in reciproco equilibrio senza l’effetto del moto ondoso. Lo stesso anno la regia nave Centurion sperimentò l’utilizzo dell’H1 in un viaggio tra Londra e Lisbona. L’orologio perse solo un secondo nelle 24 ore. Cionondimeno la commissione decise solo di concedere 500 sterline per studiare successivi affinamenti non ritenendo l’orologio sufficientemente corrispondente alle richieste del Longitude Act. Occorsero 40 anni perché, finalmente, Harrison potesse incassare la meritata ricompensa, dopo il definitivo collaudo effettuato dal capitano James Cook nel suo secondo viaggio con la Resolution nel 1772. I membri della commissione osteggiarono in ogni modo Harrison, convinti sostenitori che la soluzione del problema della longitudine potesse venire solo da metodi astronomici. Incidentalmente vale la pena di ricordare che da solo H3 e il successivo H4, erano talmente complessi da rendere improba l’impresa di riprodurli in serie. Il Board iniziò allora a ricercare orologiai in grado di riprodurre, con la dovuta precisione, il cronografo. Il primo a riuscire nell’impresa, ricompensato con un premio di 500 sterline fu Larcum Kendal con il K1. Un ulteriore miglioramento fu ricompensato con altre 200 sterline nel 1776 per il K2. Il K2 venne

Fig.15 H3 , il primo cronografo marino, che permise ad Harrison di ricevere il premio di 20.000 sterline.

Page 36: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

36

imbarcato sul H.M.S Bounty al comando del capitano William Bligh. Nel celebre ammutinamento nel 1789 fu il K2 che consenti agli ammutinati, guidati dal secondo ufficiale Fletcher Christian, di rifugiarsi nell’isola di Pitcarin. Perché una nuova tecnologia possa effettivamente avere ripercussioni sulla società deve essere riproducibile in modo semplice e ampliamente disponibile. Nel 1860 la Royal Navy disponeva di più di 200 navi presenti su tutti i sette mari e possedeva più di 800 cronografi. Risolto il problema di come calcolare la longitudine rimaneva però quello della latitudine. Fin dai tempi più antichi l’uomo si è orientato sul mare seguendo le stelle, la testimonianza più antica la troviamo nell’Odissea. Nota l’altezza sull’orizzonte di un corpo celeste, sapendo quale è la posizione del corpo celeste sulla sfera celeste è possibile risalire alla latitudine dell’osservatore sulla terra. A causa del movimento della terra attorno al sole e dell’intero sistema solare nella nostra galassia , tale posizione varia di anno in anno. Occorre pertanto fornire ai naviganti delle tavole che mappino i principali corpi celesti alle varie latitudini. Tali tavole, denominate Effemeridi Nautiche, vanno prodotte a cadenza annuale e, possibilmente, non devono contenere errori. Vi era pertanto un grande interesse per un sistema di calcolo che consentisse di ricavare tali dati in modo automatico, veloce e sicuro. Il parlamento inglese avrebbe volentieri speso una somma uguale al premio conferito ad Harrison per tale scopo.

Page 37: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

37

2.4 Il grande precursore

I considered that a machine to execute the more isolated operations of arithmetic, would be comparatively of little value, unless it where very easily set to do is work, and unless it executed not only accurately, but with great, rapidity, whatever it was required to do. (Charles Babbage, Passage from the life of a Philosopher) Se già da due secoli si erano sviluppate macchine meccaniche per eseguire calcoli, non si può certo dire fossero molto funzionali e le capacità di gestire numeri elevati erano molto limitate. In questo quadro s'inserisce il pensiero e l'opera di Charles Babbage, matematico, scienziato, inventore o, come lui stesso si definì nella sua autobiografia, filosofo. Rivestì a Cambridge lo stesso prestigioso incarico che già fu di Isac Newton, la cattedra lucasiana. Già in quest'incarico dimostro le sue capacità innovative e lo spirito di precursore, portando nel mondo statico e immutabile dell'università, che ancora poneva al centro delle proprie attenzioni le idee di Newton, la ventata di innovazione che proveniva dal continente dove si stavano ponendo i fondamenti del calcolo differenziale ed infinitesimale. Si occupò di ricerca operativa e della costruzione delle prime ferrovie, spaziò in tutti i campi della scienza ottocentesca.Ma tra tutti gli interessi quello che caratterizzò la vita di quest'uomo straordinario fu quello delle macchine per il calcolo automatico. Sulla base del fatto che lo sviluppo in serie di potenze può approssimare qualsiasi funzione continua ed utilizzando un metodo particolare noto come metodo alle differenze, progettò una macchina completamente meccanica, che, rappresentando le informazioni per mezzo di ruote dentate a dieci posizioni (sistema decimale), era in grado di svolgere operazioni in virgola mobile di numeri fino a 60 cifre. La soluzione più ingegnosa introdotta fu il meccanismo per il riporto, che anziché eseguire i singoli riporti effettuava un'unica operazione alla fine delle somme parziali per mezzo di un congegno a orologeria. La macchina destò un enorme interesse, infatti in piena rivoluzione industriale tutti i campi della tecnica risentivano pesantemente della mancanza di metodi per il calcolo automatico. La necessità di effettuare grandi moli di calcoli manualmente introduceva infatti la possibilità di errori di calcolo molto frequenti. Babbage era solito vantarsi del fatto che la sua macchina avrebbe potuto o non riuscire o dare un dato esatto,

Fig. 16 Charles Babbage 1791-1875

Babbage, il primo a concepire una macchina programmabile

Page 38: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

38

senza possibilità di ambiguità. Quello che ci si proponeva non era di costruire una macchina da replicare in grande serie e da porre al servizio dell’utente, ci si accontentava di produrne una sola da destinare alla produzione di tavole, logaritmiche , trigonometriche , per calcolare i tassi di ammortamento dei mutui o le già citate Effemeridi Nautiche. Le tavole dovevano essere calcolate con metodi manuali ed il lavoro necessario era enorme. In Francia, dopo la rivoluzione e l’introduzione del sistema metrico decimale si rese necessario predisporre nuove tavole in ogni campo. A tale scopo il direttorio radunò i migliori matematici di Francia, che a loro volta dovettero utilizzare più di cento persone per il lavoro di calcolo. Normalmente la biblioteca di un tecnico poteva contenere un centinaio di volumi di tavole. Quella di Babbage ne contava più di trecento. Il lavoro manuale comportava inevitabilmente errori in ogni fase della produzione delle tavole compresa quella di stampa. Non era raro assistere che a seguito della pubblicazione di un volume seguisse a breve quella dell’errata corrige, seguita da una errata corrige delle prima errata ed una seconda errata dell’errata. La sola soluzione al problema era la meccanizzazione dell’intero processo. Lo stesso Babbage pubblicò attorno al 1820 una raccolta di tavole logaritmiche e l’esperienza lo incitò all’ideazione di una tale macchina. La costruzione della macchina alle differenze fallì miseramente, l'elevato numero dei componenti da realizzare (20.000) l'alta precisione richiesta e la disponibilità di macchine utensili rudimentali vinsero alla fine la tenacia dell'autore. Certo tale insuccesso ebbe tra le cause il carattere irruente di Babbage e i continui conflitti con il capo meccanico Clement. A seguito di quest'episodio nella storia della scienza la figura di Babbage fu indissolubilmente legata all'incompiutezza del suo progetto, e rimase il dubbio se effettivamente la macchina fosse realizzabile o le idee di base fossero realizzabili. Per sciogliere tale dubbio, alcuni ricercatori del museo della scienza e della tecnica di Londra hanno provato a realizzare, per il centenario della nascita di Babbage la seconda macchina alle differenze, sponsorizzati da diverse ditte produttrici di elaboratori. La macchina, in ottone, è stata realizzata e funziona perfettamente, pesa diverse tonnellate e consente di effettuare operazioni in virgola mobile con numeri fino a 36 cifre. Questo ha quindi dimostrato la validità delle idee di Babbage. Il fallimento della realizzazione della macchina alle differenze condizionò pesantemente la vita di Babbage, ma non ne fermò la furia creativa. Dopo

Fig. 17 La sezione costruita a scopo dimostrativo da Clement della macchina alle differenze

Page 39: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

39

pochi anni cominciò a lavorare ad un nuovo progetto che denominò macchina analitica, che doveva essere una macchina di uso generale, in grado cioè di eseguire una sequenza di operazioni base che di volta in volta venivano fornite dall’esterno mediante schede perforate, come già si faceva per i telai di Jacquard. La macchina era divisa in sezioni, una per acquisire dati e istruzioni, una per eseguirle ed una per stampare i risultati. E' in questo progetto che oggi si riconosce a Babbage il ruolo di grande precursore nello sviluppo dell'elaboratore.

2.5 La costruzione della prima macchina alle differenze L’avventura inizia nel Luglio del 1823 quando il Lord Cancelliere dello Scacchiere accorda un anticipo di 1.500 Sterline, dopo che il Consiglio della Royal Science Society si era espresso favorevolmente sulla validità del progetto proposto. Una cifra tra 3.000 e 5000 Sterline venne messa a disposizione dello stesso Babbage, che contava in un rimborso da parte del Governo una volta completata l’opera. Fu subito chiaro dopo la costruzione di una sezione funzionante della macchina a scopo dimostrativo che per la effettiva realizzazione dell’opera si sarebbe dovuto migliorare le tecniche all’epoca disponibili. Cosa che abbiamo già visto accadde anche a Pascal. Babbage fu fortunato nel trovare come capo meccanico Samuel Clement , senza dubbio uno dei più esperti meccanici dell’epoca. Gli anni che seguirono furono segnati dall’intensa collaborazione tra i due che portò alla definizione di nuovi strumenti ed utensili che spesso venivano utilizzati per produrre a loro volta utensili ancora più perfezionati. Una schiera di tecnici si formò sotto la direzione di Clement e furono in seguito disseminati nelle officine di tutto il paese. Lo sforzo profuso fu tale che possiamo oggi ben dire ben spesi i soldi investiti del governo per il solo ritorno di miglioramento tecnico indotto nel paese. Si può paragonare la portata del progetto a quella del più recente progetto Apollo. Dopo quattro anni di intenso lavoro Bababge venne colpito in un breve lasso di tempo da una serie di sciagure famigliari. Perse in poco tempo la moglie, il figlio più giovane ed il padre. Nel Ottobre del 1827 si manifestarono parecchi problemi di salute e i medici gli consigliarono un soggiorno nel clima caldo dell’Italia. In tale periodo ebbe occasione di

Fig. 18 Una leva per il riporto, sullo sfondo il disegno del pezzo tratto dalle tavole originali.

Page 40: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

40

riordinare i propri conti e di scoprire di essere già alla cifra di 3.475 sterline spese. Richiese nuovamente l’intervento del Lord Cancelliere e dopo perorazioni di numerosi amici, tra i quali il Duca di Edimburgo, gli venne concesso un ulteriore finanziamento di 3.000 Sterline . Negli anni seguenti il reperimento degli ulteriori fondi divenne via via più difficoltoso. Questo comportava lunghi periodi di inattività durante i quali il personale assunto e istruito finiva con l’allontanarsi. Alla ripresa dei lavori si doveva assumere nuovo personale e procedere alla formazione. Durante uno di questi periodi Babbage pensò di costruire un nuovo edificio a fianco della propria abitazione per ospitare la macchina una volta completata, che al momento era in costruzione presso il laboratorio di Clement. Da questo nacque una disputa con il medesimo che lavorando anche per altri clienti, non voleva il trasferimento di tutta l’officina nel nuovo edificio. La disputa portò alla rottura del sodalizio tra i due, fatto deleterio per il progetto anche perché per la legge inglese a seguito della risoluzione del contratto tutti gli strumenti sviluppati rimasero proprietà di Clement. Durante i lunghi periodi di inattività Babbage dopo l’esperienza già maturata ideò una nuova macchina di concezione molto più avanzata e comunicò al governo che secondo la sua opinione la costruzione della nuova macchina sarebbe stata di gran lunga più conveniente rispetto al completamento di quella in costruzione. Per il Governo dopo le ingenti somme spese fu una vera doccia fredda. Vi fu una vivace seduta del parlamento dove un deputato dell’opposizione propose ironicamente di richiedere a Babbage se con la parte già costruita della macchina fosse in grado di calcolare quanto sarebbe costato completarla. Il 3 Novembre 1842 il Primo Ministro comunicò ufficialmente a Babbage che il governo non era più intenzionato a finanziare il progetto. Il Governo aveva contributo con un totale di 17.000 Sterline.

2.6 La ricostruzione della seconda macchina alle differenze di Babbage

La risoluzione del dilemma sulla effettiva possibilità che le macchine di Babbage potessero funzionare si è avuta solo nel 1991, in contemporanea con il bicentenario della nascita di Babbage. Il progetto è stato sviluppato al Science Museum di Londra, basandosi sui progetti originali e sui quaderni di appunti dell’autore. Durante la costruzione della macchina, che pur con

Fig. 19 Il metodo alle differenze. La serie delle terze differenze assume un valore costante. Sulla base di questa osservazione si può costruire la serie con solo operazioni di somma.

Page 41: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

41

l’impiego dell’attuale tecnologia ha richiesto due anni di lavoro si sono evidenziati alcuni errori di progetto, ma essenzialmente la macchina risulta corretta e come già detto perfettamente funzionante. Non è stata costruita la stampante che da sola presenta già una notevole complessità. Anche senza tale meccanismo, comunque la macchina pesa tre tonnellate. Cosa interessante della ricostruzione è che nella costruzione dei 4000 diversi tipi di pezzi necessari, pur utilizzando tecniche a volte diverse rispetto a quelle disponibili all’epoca si è sempre rispettata la precisione all’epoca disponibile, smentendo così l’idea che il progetto non venne realizzato per problemi inerenti l’impossibilità di conseguire la necessaria precisione. Il vero ostacolo fu solo, per l’epoca, l’enorme complessità. La macchina ricostruita è la seconda macchina alle differenze, così chiamata in quanto si basava sul metodo alle differenze finite illustrato nella figura . Il ruolo della stampante era importante in quanto nelle intenzioni dell’autore avrebbe dovuto produrre direttamente su lastre in alluminio la matrice per la stampa evitando in tale modo l’introduzione di errori tipografici nella composizione dei caratteri di stampa, purtroppo molto frequenti con la predisposizione manuale.

2.7 La macchina analitica di Babbage Il più grande contributo dato da Babbage, anche se solo concettuale, non fu però la macchina alle differenze. Appare quasi incredibile oggi riscontrare come un uomo solo potesse aver concepito un progetto talmente complesso e le cui basi sono ancora oggi utilizzate nei moderni elaboratori. Le macchine alle differenze erano infatti macchine mono scopo che potevano essere utilizzate solo per il calcolo polinomiale. L’idea alla base della macchina alle differenze è quella di una macchina di uso generale e programmabile dall’esterno mediante schede perforate. Questo naturalmente rivoluziona il concetto di macchina anche se nelle idea di Babbage il programma veniva acquisito dall’esterno. Anche se con tali limiti, comunque si comincia a riflettere sulle possibilità offerte da questo tipo di approccio, in particolare la possibilità di iterare una serie di istruzioni per un certo numero di cicli, o di scegliere tra diversi percorsi in base al valore di una variabile. Il concetto di ciclo e di selezione.

Rotto il sodalizio con Clement Babbage si trovò a riflettere sul sistema della macchina alle differenza e concepì una nuova organizzazione della macchina nella quale le barre con i risultati potevano riportare il risultato per essere riutilizzato in calcoli successivi. Per ottenere questo pensò di organizzare i registri in forma circolare.

Fig.20 Charles Babbage

Fig.27 L’unica parte costruita della macchina analitica, il mulino. Venne costruita da parte del figlio Maggiore Henry P. Babbage con l’aiuto di R.W.Monroe. Fu completata nel 1906 e venne utilizzata per calcolare i primi 25 multipli di π con una precisione di 29 cifre.

Page 42: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

42

Questo lo portò a pensare che ogni barra potesse essere equivalente nell’utilizzo, un luogo dove memorizzare temporaneamente un valore da poter utilizzare successivamente. Un registro . Nel maggio 1835 in una lettera a Mr. Quetelet scriveva : “… for six months been engaged in making the drawings of a new calculating engine of fa greater power than the first. I am myself astonished at the power I have been enabled to give to this machine; a year ago I should bot have belived this result possible.” Il fatto che Babbage non fosse intenzionato a tentare la costruzione della macchina analitica fece si che non predispose dei progetti dettagliati ma continuò a lavorare al progetto fino alla morte. Comunque già nel 1840 le parti principali erano definite. Nel disegno a lato , una vista dall’alto, si possono vedere tutte le parti principali , ogni cerchio rappresenta una colonna di ingranggi ( un registro ) , vi sono circa duecento colonne di ingranaggi anche se la maggior parte ha lo scopo di meccanismi di controllo. La macchina è composta da tre parti principali, il magazzino, il mulino e la barra di controllo. Il magazzino corrisponde alla memoria di lavoro (RAM) dei moderni elaboratori, il mulino all’unità aritmetico logica e la barra di controllo costituisce una rudimentale unità di micro controllo. Così come nella macchina alle differenze ogni colonna di ingranaggi memorizzava un numero con la posizione degli ingranaggi, ognuno dei quali poteva assumere dieci differenze

posizioni. Nel prospetto possiamo individuare 16 colonne, in ognuna delle quali si possono immagazzinare due numeri. I numeri potevano essere trasferiti da e al mulino mediante la catena di ingranaggi rappresentata dalla lunga linea a destra e contrassegnata con Rack. Il mulino consiste in un complicato insieme di ingranaggi e di trasmissioni distribuiti attorno al cerchio

centrale. Consiste in una serie di accumulatori (A e A’) e degli ingranaggi associati utilizzati per i riporti da uno all’altro, un terzo accumulatore (“A”) è collocato appena sotto. Veniva utilizzato come appoggio per le operazioni di moltiplicazione e divisione. I nove piccoli assi ( da T1 a T9 ) collocati al centro del mulino sono da utilizzare per le moltiplicazioni e per le divisioni. Quando la macchina doveva moltiplicare x per y i nove multipli di x venivano immagazzinati nei nove piccoli assi e questi prodotti parziali venivano aggiunti al registro del risultato tante volte quanto y. Durante la moltiplicazione i due accumulatori potevano essere collegati tra di loro per memorizzare il risultato.

Fig.21 La barra di controllo

Page 43: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

43

Le divisioni vengono eseguite in modo analogo. Le barre di controllo ( contrassegnate con B ) realizzano le microistruzioni necessarie per eseguire una operazione. Come illustrato nel disegno seguente le barre possono muoversi avanti ed indietro ( nella parte di macchina contrassegnata Reducing Appr ) per agganciar o sganciare le leve e gli ingranaggi utilizzati per realizzare le diverse operazioni. Ogni barra di controllo è in grado non solo di immagazzinare le microistruzioni da eseguire ma anche l’indirizzo della prossima microistruzione . L’ultima struttura principale ( contrassegnata con Counting Apparatus ) è semplicemente un registro contatore , da utilizzare per conteggiare quante volte una operazione viene effettuata. Secondo Babbage la macchina avrebbe richiesto 2,5 secondi per trasferire un numero da un registro esterno ad un registro del mulino mentre addizionare un numero ad un registro già contenuto nel mulino 3 secondi. La realizzazione della macchina avrebbe rappresentato quindi un enorme avanzamento per le capacità di calcolo dell’epoca. Dopo più di cento anni il MARK1 realizzato da Haiken con componenti elettromeccanici sarà in grado di realizzare una addizione in 0,3 secondi. Una delle parti più difficile della macchina analitica è costituita dal meccanismo per controllare i riporti multipli, come quelli che si generano sommando 1 a 999.999. Il problema viene risolto con un meccanismo denominato riporto anticipato. Il riporto viene controllato da una serie di segmenti che vengono anticipatamente posizionati in corrispondenza delle ruote che memorizzano 9. Con l’operazione la forza applicata da un lato viene trasmessa solo fino a quando I segmenti sono presenti . La precisione necessaria per realizzare i singoli pezzi è inferiore

Fig 22 . La macchina analitica vista dall’alto , dalle tavole originali di Babbage

Page 44: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

44

a 0,5 centesimi di millimetro, realizzabile ai tempi di Babbage ma con costi enormi.

Fig. xx Il mulino della macchina analitica, in costruzione al tempo della morte di Babbage.

Page 45: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

45

2.8 Ada Lovelace e i primi programmi Come già detto Babbage non fornì progetti dettagliati della macchina analitica ma in occasione di un viaggio in Italia ebbe occasione di esporre il progetto ad un gruppo di matematici e ingegneri torinesi, tra cui L.F.Menabrea , che

diventerà successivamente anche capo del governo, e che predispose un resoconto dell’esposizione. Una collaboratrice ed amica di Babbage tradusse l’articolo in inglese, Ada Augusta King, Contessa di Lovelace, figlia del poeta Byron. Aggiunse anche commenti e note per spiegare i dettagli di funzionamento della macchina. Tra questi una dettagliata descrizione di come la macchina doveva essere programmata, utilizzando schede perforate, idea derivata dal telaio automatico di Jacquard. Molto si è discusso sul ruolo avuto da Ada, secondo alcuni fu la prima programmatrice, avendo scritto autonomamente i programmi a noi pervenuti, secondo altri non ebbe altro ruolo che quello di trascrivere gli appunti di Babbage. La verità ci viene fornita dallo stesso Babbage, in una lettera definisce Ada la sua interprete. Non avendo il tempo di predisporre rapporti dettagliati dei propri

lavori, Ada provvedeva pazientemente al lavoro aggiungendo esemplificazioni e spiegazioni . Ada ebbe una educazione di prim’ordine, inusitata anche per una persona nobile dell’epoca e, soprattutto, per una donna. “ La caratteristica distintiva della macchina analitica è l’introduzione del principio ideato da Jacquard per realizzare, attraverso schede perforate, i disegni più complessi nella fabbricazione di stoffe broccate …. Possiamo effettivamente dire che la macchina analitica tesse disegni algebrici proprio come il telaio di Jacquard tesse fiori e foglie “ ma rispetto all’alea di leggenda che circondava la macchina, che si sospettava potesse pensare come l’uomo Ada ridimensiona la cosa , “La macchina analitica non ha alcuna pretesa di originare qualcosa, può fare qualsiasi cosa noi sappiamo come ordinarle di eseguire “ Esaminiamo come negli appunti redatti da Ada la macchina avrebbe dovuto

Fig. 23 Ada Augusta Byron Contessa di Lovelace 1815 - 1851

Fig.24 Una scheda per programmare la macchina analitica , le schede erano unite tra loro con un corda, notare i commenti in alto.

Page 46: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

46

essere programmata. Facendo riferimento allo schema della macchina del paragrafo precedente, le schede con le istruzioni per la macchina dovevano essere raccolte in sequenza per costruire un programma. Il lettore delle schede le leggeva una volta, una scheda poteva contenere una istruzione come ad esempio V6 x V3, e in conseguenza la barra doveva eseguire la sequenza di operazioni necessari per realizzare l’operazione.

Page 47: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

47

Era possibile effettuare dei cicli con delle istruzioni del tipo, Se l’apparato di controllo contiene un numero inferiore a N allora ritorna indietro nella sequenza di schede di P posizioni.

Fig.25 Il programma predisposto da Ada Lovelace per il calcolo dei numeri di Bernoulli con la macchina analitica

Page 48: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

48

Un ciclo repeat until . Le schede erano però suddivise in lettori diverse, schede con istruzioni di controllo, schede con indicazione dei registri coinvolti nell’operazione, schede con costanti da acquisire dall’esterno. Questo avrebbe permesso di creare cicli di operazioni da applicare a gruppi diversi di registri o utilizzare costanti diverse nei medesimi calcoli. Vediamo un esempio : La macchina deve essere predisposta per eseguire l’operazione a(b+c)/(d-e) Inizialmente i valori devono essere inseriti manualmente nei registri A in V1 B in V2 C in V3 D in V4 E in V5 Indichiamo le schede con le direttive N’ la macchina trasferisce il contenuto del mulino nel registro N ‘N la macchina trasferisce il contenuto del registro N nel mulino La sequenza di schede di controllo ‘2 , ’3 , 6’ , ’6 , ’1 , 7’ , ’4 , ’5 , 8’ , ’7 , ’8 , 9’ in combinazione con le schede delle operazioni + , x , - , / comporterà l’esecuzione delle operazioni : V2 + V3 = V6 V6 * V1 = V7 V4 - V5 = V8 V7 / V8 = V9

Quanto illustrato è un esempio molto semplice ma ci sono pervenuti anche programmi molto più complessi, tra cui uno per il calcolo dei numeri di Bernoulli. Nella figura sono rappresentate le istruzioni per il calcolo del quarto numero. Le prime sei colonne rappresentano le operazioni, le colonne rimanenti i contenuti dei registri. Ogni riga

Fig. 26 Charles Babbage , dagherrotipo

Page 49: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

49

corrisponde ad una singola istruzione. Quando il programma ha inizio ci sono sei variabili in uso , V1,V2,V3,V21,V22,V23. I valori sono 1,2.. n ( con n in questo caso 4 perché si sta calcolando il quarto numero di bernoulli, V10 viene utilizzato per immagazzinare il numero di iterazioni che rimangono da effettuare. Alla prima iterazione V10 vale n-1, alla seconda n-2, e così via. Quando V10 vale 1 il ciclo si arresta, il numero è stato calcolato. Le prime sei operazioni calcolano (1/2)x(2n-1)(2n+1) e immagazzinano il valore in V13. L’operazione 7 sottrae 1 da n e assegna il risultato a V10 completando la prima iterazione. Le operazioni 8,9 e 10 calcolano 2n-2 e lo moltiplicano per B1, calcolato in precedenza e immagazzinano i V21 il valore risultante. L’operazione 11 prende V12 e lo somma a V13, l’operazione 11 prende V12 e lo somma a V13, l’operazione 12 sottrae 2 da n e ne immagazzina il valore in V10, completando la seconda iterazione. Le operazioni da 13 a 21 calcolano il successivo valore e lo moltiplicano per B5. Il programma presenta anche un errore, nell’operazione 21, il terzo fattore del denominatore dovrebbe essere 4 e non 3, ma d’altronde Ada non ebbe mai la possibilità di provare il programma.

2.9 Macchine per gestire e organizzare le informazioni Le macchine che abbiamo sino ad ora citato sono essenzialmente concepite per eseguire calcoli di tipo matematico. Merita di essere citata anche la macchina costruita negli Stati Uniti per l’elaborazione automatica dei risultati dei censimenti, nel 1890 da Herman Hollerith. Nel 1790 la popolazione degli Stati Uniti era di circa 4 milioni di abitanti, nel 1840 di 17. Per poter assolvere a quanto previsto dalla costituzione in termini di elezioni, si rendevano necessari frequenti e laboriosi censimenti generali della popolazione. Tenendo inoltre conto che le informazioni da raccogliere aumentavano continuamente, l’elaborazione dei dati diveniva sempre più problematica. La crisi esplose con il censimento del 1880, la sui elaborazione durò sette anni, arrivando quasi a sovrapporsi con quello successivo. Hollerith , assunto appena ventenne dal Bureau of Census, predispose un nuovo sistema. I dati venivano rilevati con delle schede, una per ogni abitante, con dei fori riportati in particolari posizioni, per l’età, la professione , il sesso, la religione. Le schede venivano poi raggruppate e “lette “ da una apposita macchina. La presenza dei fori veniva rilevata da aghi che, trovando il foro, chiudevano un circuito elettrico. L’impulso corrispondente azionava un addizionatore elettromeccanico che conteggiava quindi la caratteristica rilevata. La macchina si presentava come una grande scrivania con cassetti dove inserire le schede e degli orologi su un pannello dove i dati venivano conteggiati. Con l’utilizzo di tale macchina il conteggio dei dati del censimento del 1890 richiese sei settimane, la popolazione assommava a 66.622.250 abitanti. La macchina di Hollerith si

Page 50: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

50

proponeva non di eseguire calcoli ma di organizzare informazioni, e quindi introduce l’idea di macchine che possano elaborare le informazioni in senso più generale. L’utilizzo di schede perforate era già stato introdotto da Babbage, ma in questo caso assumono un significato notevolmente diverso.

2.10 L’eredità della macchina analitica Le macchine di Babbage destarono un notevole interesse nell’ambiente scientifico del tempo ma rimasero solo un argomento di discussione. Vi furono alcuni tentativi di proseguire sulla strada tracciata tra cui meritano di essere ricordati quelli di Scheutz di costruire una macchina alle differenze e quello di Ludgate di costruire una macchina analitica. Gorge Scheutz, svedese, editore di un giornale tecnico a Stoccolma, affascinato dagli articoli letti sulla macchina di Babbage tentò con il figlio Edvard la costruzione di una macchina simile. Predisposero un prototipo funzionante, dotato anche della stampante , e lo sottoposero al Governo Svedese per chiedere fondi per ulteriori sviluppi ma questo, forse memore dell’insuccesso di quello inglese li negò. Per quanto riguarda i tentativi dell’irlandese Percy Ludgate di costruire una macchina analitica ci sono pervenute solo notizie molto frammentarie in quanto tutta la documentazione sul suo lavoro è andata perduta. Insomma il ramo di sviluppo delle macchine basate su congegni meccanici e sull’utilizzo del sistema decimatesi stava esaurendo. Lo sviluppo passerà nel secolo successivo ad una serie di macchine che si baseranno su tecniche totalmente differenti, anche se molte delle idee elaborate da Babbage influenzeranno il lavoro di personaggi come Haiken nello sviluppo dei primi elaboratori di uso generale. Ma questa è tutta un’altra storia.

Fig. 28 Uno schema concettuale della macchina analitica

Page 51: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

51

Schede operandi

Schede istruzioni

Impostazione manuale dei numeri

Stampante

Page 52: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

52

Riferimenti capitolo 2

[1] Michael R. Williams A HISTORY OF COMPUTING TECHNOLOGY – IEEE COMPUTER SOCIETY 1996 Capitoli 3 e 4 [2] Dava Sobel – Longitude – Walker and Company [3] Eugen Eric Kim e Betty Alexandra Toole – Ada e il primo computer – Le Scienze n.81 Maggio 2000 [4] La ricostruzione della macchina da calcolo di Charles Babbage – Le Scienze n.297 Maggio 1993 [5] Charles Babbage Passage from the life of a Philosofer [6] Raffaele Gargiulo – Navigazione Astronomica – Rivista Marittima - Marina Militare Aprile 2001 [7] Silvio Hènin e Massimo Zaninelli -Il calcolo automatico negli Stati Uniti, dalle origini al 1950- Le Scienze, n344 aprile 1997

Page 53: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

53

3 La rappresentazione delle informazioni

Le macchine meccaniche digitali realizzate tra il XVII e XIX secolo si basavano sul sistema di numerazione decimale. Sicuramente il motivo principale è da ricercare nel fatto che per un congegno meccanico non si pongono grandi problemi per rappresentare dieci diverse posizioni associate a posizioni diverse di un ingranaggio. Il problema di evitare posizioni spurie venne risolto facilmente da Babbage per le sue macchine. Con la fine dell’800 si diffonde l’utilizzo della corrente elettrica e si comincia a ragionare sull’utilizzo dell’elettricità come grandezza fisica per rappresentare le informazioni. Per rappresentare grandezze numeriche occorre definire dieci diversi valori a cui far corrispondere le dieci cifre decimali. Oltre alla complessità circuitale rimane il problema delle interferenze che possono facilmente introdurre errori nell’interpretazione dei valori.

3.1 Il sistema binario La scelta è drastica, si passa ad un sistema basato su due sole cifre, 0 e 1. Naturalmente il numero di cifre necessarie aumenta notevolmente ma questo se rappresenta un problema per l’uomo che mal si adatta a manipolare numeri lunghi 16, 32 o 64 cifre. Si dovrà pertanto tradurre i numeri da decimali a binari per sottoporli alla macchina e di nuovo da binario a decimale per fornire i risultati all’uomo, ma questo era il prezzo da pagare per andare avanti. Si pone anche il problema di definire un’algebra per il nuovo sistema, che come vedremo presenta delle peculiarità rispetto a quella sul sistema decimale. Ma in questo venne in aiuto l’opera di George Boole ( 1815 – 1864 ). Potremmo definirlo un altro visionario che si addentrò in un territorio sconosciuto per l’epoca. Ricevette una educazione molto limitata, oltre la scuola elementare frequentò solo un corso in una scuola commerciale. Un autodidatta che nel corso della vita pubblicò più di cinquanta lavori scientifici che, tra l’altro, gli valsero la nomina a professore di matematica presso il college di Cork, Irlanda. Tra i suoi lavori più famosi vi è “An investigation of the Laws of Thought, on which are Founded the Mathematical Theories of Logical and Probability” ( 1854 ). In questa opera il simbolismo dell’algebra viene applicato ai principi della logica, la logica viene ridotta a calcolo proposizionale, che verrà poi denominato algebra booleana.

Page 54: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

54

3.2 Algebra booleana

Il lavoro di Boole introduceva un’algebra logica, oggi meglio nota come algebra booleana. Possiamo definire l’algebra booleana come un insieme di regole, leggi e teoremi per mezzo delle quali le operazioni logiche possono essere definite matematicamente. Quest’algebra costituisce inoltre un metodo conveniente e sistematico per esprimere e analizzare le operazioni svolte dai circuiti e dai sistemi digitali. L’applicazione dell’algebra di Boole all’analisi e al progetto dei circuiti digitali venne affrontata per la prima volta nel 1938 da Claude Shannon presso il MIT con una tesi dal titolo A Symbolic Analysiss of Relay and Switching circuits ( un’analisi simbolica dei circuiti a relè e a scatto ) . In questo scritto veniva presentato un metodo per mezzo del quale qualunque circuito costituito da combinazioni di interruttori e relè poteva essere rappresentato da espressioni matematiche. Anche se i circuiti a semiconduttori hanno oggi praticamente rimpiazzato gli interruttori meccanici e i relè, quel tipo di analisi resta valido, e una conoscenza dei suoi principi fondamentali è essenziale per lo studio dell’elettronica digitale. Per quanto riguarda le operazioni, la somma coincide on l’OR logico, la moltiplicazione con l’AND logico.

3.3 Binario, esadecimale, ottale Il passaggio da rappresentazione decimale e binaria e viceversa si realizza sulla base dei pesi delle singole cifre. In binario la prima cifra rappresenta il valore di per se, la seconda è moltiplicata per due o per il numero di coppie che compongono il numero, la terza per 4 o gruppo di quartine e così via. Dato un numero rappresentato in base decimale , dividendolo per 2 e preso il resto, questo resto corrisponderà obbligatoriamente alla prima cifra della rappresentazione binaria del numero. Se le coppie che compongono il numero, sono più di una non si possono rappresentare tutte, si procede quindi ad una nuova divisione per due, da cui otteniamo quante quartine compongono il numero e il resto rappresenta quindi l’eventuale coppia rappresentabile nella seconda posizione. In definitiva : per convertire un numero da base decimale a binaria si procede dividendo il numero per due ed annotando i resti da destra verso sinistra fino ad ottenere 0 come risultato della ennesima divisione. Per realizzare l’operazione inversa basta sommare il valore decimale di ogni cifra. L’operazione è agevolata dal fatto che in binario le cifre sono solo zero o uno il che equivale a dire che

Page 55: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

55

per convertire un numero da base binaria a decimale basta sommare tra loro i valori in decimale dei pesi delle cifre 1 del numero. Certo i due procedimenti non sono complicati, ma sono lunghi. Inoltre nel mondo dell’informatica i numeri multipli di due sono molto frequenti e le corrispondenti proprietà non vengono evidenziate da una rappresentazione in base dieci. Per questo motivo si è introdotto l’utilizzo di due altre basi : la base 8 e la base 16. Per quanto riguarda la prima le cifre utilizzate sono le corrispondenti del decimale, da 0 a 7. Per la seconda si aggiungono alle cifre decimali le lettere a , b , c , d , e , f . Questi due sistemi hanno l’interessante proprietà che le due basi corrispondono a potenze del due. 16 è 2 alla quarta, 8 è 2 alla terza. Quindi questi due sistemi che, dal punto di vista simbolico-espressivo, sono abbastanza simili al decimale presentano una interessante proprietà. Una cifra ottale corrisponde a tre cifre binarie. Una cifra esadecimale corrisponde a quattro cifre binarie. Infatti con una cifra ottale si possono rappresentare le quantità da 0 a 7, con tre cifre binarie si possono rappresentare le quantità da 0 a 7. Con una cifra esadecimale si possono rappresentare le cifre da 0 a 15, con quattro cifre binarie si possono rappresentare quantità da 0 a 15. Ovviamente la cosa vale anche per i multipli e quindi : Per convertire un numero da esadecimale a binario si sostituisce ogni cifra con la rappresentazione binaria della cifra. Per convertire un numero da binario a esadecimale si raggruppano da destra le cifre in gruppi di quattro e si sostituisce ad ogni gruppo la corrispondente rappresentazione esadecimale. Per convertire un numero da binario a ottale si raggruppano le cifre in gruppi di tre e si sostituisce ad ogni gruppo la corrispondente cifra ottale.

Decimale Binario Ottale Esadecimale Ott/Bin Esad/Bin 0 0 0 0 000 0000 1 1 1 1 001 0001 2 10 2 2 010 0010 3 11 3 3 011 0011 4 100 4 4 100 0100 5 101 5 5 101 0101 6 110 6 6 110 0110 7 111 7 7 111 0111 8 1000 8 1000 9 1001 9 1001 a 1010 b 1011 c 1100 d 1101 e 1110 f 1111 In matematica la base di un numero si denota con un pedice a destra del numero che riporta la base. In informatica si utilizza anteporre un zero per lottale e 0x per l’esadecimale. 0x12f4 0001.0010.1111.0100 06531 110.101.011.001

Page 56: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

56

A questo si può aggiungere che per convertire da esadecimale a ottale e viceversa basta passare come operazione intermedia alla rappresentazione binaria. Per convertire un numero da ottale a binario si sostituisce ogni cifra con la corrispondente rappresentazione in tre cifre binarie

3.4 Misurare l’informazione Stabilito che l’elaboratore utilizza il sistema binario è chiaro che qualsiasi informazione venga manipolata deve essere codificata in binario, sia che rappresenti un carattere alfabetico, una quantità numerica, una istruzione per l’elaboratore. Ma indipendente da cosa l’informazione rappresenti si può anche dare una misura quantitativa .Possiamo iniziare con l’analizzare, in binario, quale sia la più piccola quantità di informazione rappresentabile o memorizzabile, cioè un sequenza binaria composta da una sola cifra, che può assumere i valori di 0 o 1. Aiutiamoci con un esempio. Volendo associare ad ogni alluno di una classe una informazione riguardo all’altezza, la scelta minima che posso effettuare è quella di associare ad ogni alunno un bit che rappresenta l’altezza. Ovviamente in questo caso potrò distinguere tra alunni alti, 1 , alunni bassi, 0 , una volta stabilita una soglia, ad esempio 170 centimetri. Naturalmente l’informazione relativa all’altezza è molto vaga, dire che un alunno è basso può significare che sia alto 169 centimetri come 81. Se voglio una informazione maggiore devo utilizzare una sequenza di cifre maggiori. Utilizzando due cifre posso rappresentare quattro diversi casi ( 2 alla seconda , le possibili combinazioni di due cifre in due posizioni ) e quindi distinguere tra alunni molto bassi, bassi, alti e molto alti. Questa volta l’informazione altezza è più precisa del caso precedente. Continuando ad utilizzare sequenze maggiori, si può discriminare tra un numero di casi maggiori. Insomma l’informazione è la possibile scelta tra un numero diverso di possibilità. L’informazione minima e la scelta tra due possibilità.

Pesi dei sistemi di numerazione binario, ottale , esadecimale Pos 1 2 3 4 5 6 7 8 9 10 11 12 13 Binario 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 Ottale 1 8 64 512 4096 ExDec 1 16 256 4096 Nelle tre righe sono riportati i pesi dei tre sistemi. Si nota che sia per l’ottale che per l’esadecimale ogni cifra corrisponde a dei multipli esatti del binario.Con una cifra ottale si possono esprimere le medesime quantità che con tre cifre binarie, con due cifre ottale le stesse quantità che con sei cifre binarie. Con una cifra esadecimale la medesima quantità che con quattro binarie, con due cifre esadecimali la stessa quantità di otto cifre binarie. Questo in quanto 8 e sedici sono potenze del due.

Page 57: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

57

Possiamo associare all’informazione minima rappresentabile l’unità di misura con cui misurare una quantità di informazione. Assegniamo a questa unità di misura il nome di bit. Il bit è l’informazione equivalente alla scelta tra due possibili distinti valori equiprobabili La definizione introduce un concetto importante. Affinché vi sia informazione la scelta deve essere tra valori equiprobabili. Nel nostro esempio, che valore avrebbe l’informazione se la soglia per l’altezza fosse fissata a 3m ? nessuna, in quanto possiamo escludere che in una classe vi sia alcun alunno alto più di tre metri, il bit che registra l’altezza rimarrebbe inesorabilmente a 0 e quindi nullap potrei sapere circa l’altezza degli alunni. Lo cosa si ripete se la soglia viene fissata a 20 cm, gli alunni saranno tutti alti, e ancora una volta non posso ricavarne nulla. Intuitivamente si può comprendere che nel caso in esame l’informazione è massima se la soglia viene fissata ad un valore pari all’altezza media della classe. Il termine scelto per denotare l’unità di misura dell’informazione è di origine incerta , secondo alcuni deriva dal termine inglese per “pezzettino”, secondo altri è l’abbreviazione di Binary digiT . Secondo la definizione assunta di bit, la scelta tra quattro possibili valori contiene una informazione pari a due bit, il primo permette di individuare quale delle due coppie contiene il valore, il secondo il valore dentro la coppia. La scelta tra 8 possibili valori vale tre bit, uno permette di scegliere tra due gruppi di quattro, il secondo tra le due coppie del gruppo, il terzo tra i due valori della coppia. Si nota che il legame tra informazione e messaggi è di tipo logaritmico. Pertanto :

[ ]bitnI 2log= dove n è il numero di possibili valori equiprobabili o ∑ =

−=n

k KK PPI1 2log dove n è il numero di possibili valori e P di K è la

probabilità associata ad ogni valore. Definita l’unità di misura dell’informazione introduciamo i sui multipli. Si indica con Byte una sequenza di otto cifre, o una quantità di informazione pari a otto bit. Anche se meno utilizzati si definisce la parola, che vale 16 bit ed il paragrafo, pari a 32.

Page 58: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

58

3.5 I multipli La macchina utilizza il sistema binario, l’uomo il sistema decimale. Il fatto che la base dieci non è una potenza del due comporta che esprimere i multipli delle grandezze informatiche non è semplice. Tutto quanto riguarda la circuiteria digitale lavora con imultipli di due. Un blocco di memoria indirizzabile con 16 linee, o meglio 16 bit , può contenere 2 alla 16 celle cioè 65.536 celle. Per esprimere gli indirizzi si utilizza il sistema ottald o esadecimale, ma per i multipli si fa una piccola forzatura. La quantità di informazione più comunemente utilizzata è il byte, questo anche perché la codifica ASCCII richiede almeno 7 bit per rappresentare un carattere. Quando le informazioni, organizzate in byte, sono in grande quantità, si utilizzano dei multipli. Si adottano i simboli del sistema metrico decimale, anche se con un significato leggermente diverso, cioè la forzatura Multipli 210 1.024 K Kilo 220 1.048.576 M Mega 230 1.073.741.824 G Giga 240 1.099.511.627.766 T Tera 250 1.125.899.906.842.624 P Peta 260 1.152.921.504.606.846.976 E Exa I prefissi vengono utilizzati sia con i bit ( b ) con i Byte ( B ). Vengono inoltre utilizzate le seguenti unità di misura Velocità di elaborazione Megaflop Mflop Milion floating point operation per second Gigaflop Gflop Bilion floating-point operation per second MIPS Milion instruciont per second Velocità di trasmissinoe dell’informazione bps bit per second chps characte per second KB/sec kilo bytes per second MB/sec mega byte per second GB/sec giga byte per second

Page 59: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

59

3.6 Rappresentare i caratteri

Page 60: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

60

Page 61: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

61

4 I primi elaboratori

Nel XX secolo le idee ed i progetti di Babbage trovano una realizzazione pratica, anche se utilizzando tecniche diverse da quelle esclusivamente meccaniche. I progressi della scienza e della tecnica e la loro diffusione fanno si che i progetti non sono più il frutto di singoli individui ma l’opera di gruppi, lo scambio di informazioni fa si che spesso anche tra gruppi diversi si stabilisce un rapporto di collaborazione . Questa volta la spinta allo sviluppo viene soprattutto dalle esigenze belliche. La prima metà del secolo è sconvolta da due guerre che per estensione l’umanità non aveva mai sperimentato. . Il modello di Babbage appare però inadeguato in due punti, nel fatto che la macchina analitica prevedeva il caricamento separato di istruzioni e dati, con una notevole complessità, ma , ancora peggio, per il fatto che la macchina analitica prevedeva l’acquisizione delle istruzioni dall’esterno, cosa ammissibile per i tempi di una macchina meccanica, ma inaccettabile per le velocità di elaborazione delle macchine elettroniche. Viene introdotto il concetto di stored program machine, basata sull’architettura di Von Neuman. La macchina immagazzina in una memoria interna dati e programmi ed è basata su un’unità di elaborazione, un’unita di input, un’unita di output, un’unità di memoria. La nascita dell’elaboratore si può considerare la terza pietra miliare nella storia del calcolo, dopo l’introduzione dello 0 ( e di conseguenza del sistema decimale, posizionale e pesato ) e quella dei logaritmi.

4.1 Le macchine di Zuse

Lo zero, i logaritmi e l’elaboratore sono le tre tappe fondamentali nella storia del calcolo

Page 62: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

62

A Konrad Zuse ( 1910 – 1995 ) si deve la prima macchina costruita, sulla base del sistema binario, in grado di funzionare sulla base di un controllo realizzato da un lettore che acquisiva le istruzioni da eseguire da un nastro perforato.

Zuse nasce a Berlino nel 1910e conseguita la laurea in ingegneria civile è impiegato come progettista in una fabbrica di aerei, dove ha modo di comprendere quale mole di calcoli richiedano le verifiche strutturali. Se si tiene conto che all’epoca i calcoli erano eseguiti o con l’aiuto del regolo calcolatore o con calcolatrici meccaniche, si può capire come uno dei primi tentativi di Zuse fu di codificare, con degli appositi modelli, il modo di registrare i risultati intermedi. In particolari caselle adiacenti in orizzontale contenevano numeri che dovevano essere sommati tra loro, caselle adiacenti in verticale, numeri che

dovevano essere moltiplicati tra loro. Questo lo portò all’idea che se i numeri potevano venir inseriti in calcolatrici collegate tra di loro come i diagrammi, questo poteva portare all’esecuzione automatica dei calcoli. Oltre a questo ipotizzo di utilizzare un braccio meccanico per leggere e scrivere i valori che congiuntamente ad un calcolatore poteva realizzare una macchina completa. L’unità di memoria fondamentale era costituita da un piolo che poteva assumere due posizioni in una guida ricavata in un lamierino e così rappresentare le due posizioni binarie. Entro il 1937 riuscì a costruire una memoria meccanica basata su tale principio in grado di immagazzinare 16 numeri ognuno di 24 bit, la macchina venne identificata con il codice Z1. I dati venivano acquisiti attraverso nastro, utilizzando della pellicola cinematografica di scarto perforata a mano. Le difficoltà di spostare i segnali, rappresentati da lamine metalliche rendevano però la macchina praticamente inutilizzabile. Per tale motivo Zuse passo al progetto di una nuova unità basate sull’utilizzo di relè, denominata Z2. Per tale macchina sperimentò anche l’utilizzo di tubi vuoto, ma dovette rinunciarvi viste le difficoltà di reperire i necessari componenti, almeno mille tubi, nella Germania prebellica. La macchina manteneva i componenti meccanici della precedente per la memorizzazione dei numeri, per tutti gli altri compiti venivano impiegati i relè. Di tale macchina venne data anche una dimostrazione di funzionamento all’aeronautica militare tedesca, il cui centro di ricerca decise di finanziare la

Fig. 2 Konrad Zuse con la ricostruzione della Z4

Fug.1 Konrad Zuse 1910 - 1995

Page 63: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

63

costruzione di un modello più elaborato, che verrà chiamato Z3. Questa macchina, basata sostanzialmente sulle medesime idee delle precedenti, era costituita da 2600 relè, di cui 1400 per la memoria e 600 per l’unità aritmetica. La macchina era in grado di eseguire quattro addizioni al secondo, di moltiplicare due numeri in cinque secondi. Prima della fine della guerra venne assemblato anche un ultimo modello denominato Z4, che dopo la guerra venne trasferito al politecnico di Zurigo. Nel 1950 questa macchina era ancora l’unico calcolatore funzionante in Europa e resterà operativa sino al 1960.

4.2 Le macchine di Harward Parallelamente al lavoro di Zuse, un’altra serie di macchine venivano sviluppate presso l’università di Harward sotto la guida di Howard Heiken. Purtroppo tra i due gruppi non vi fu alcun contatto a seguito della guerra in corso. Le macchine di Harward non si limitavano all’utilizzo dei relè ma impiegavano tutte le tecnologie all’epoca disponibili, compreso l’utilizzo di nuclei di ferrite per memorizzare le informazioni. Nel suo lavoro Haiken venne molto influenzato dalla lettura delle idee di Babbage, e probabilmente da qui trasse le idee fondamentali di come strutturare il

meccanismo di controllo della sua macchina. La prima macchina, denominata Mark I , venne costruita tra il 1939 ed il 1943 . Il componente fondamentale utilizzato per i registri derivava dai meccanismi meccanici delle calcolatrici IBM prodotte commercialmente, in totale era dotata di 72 registri ognuno in grado di immagazzinare 23 cifre decimali più una per il segno. Le dimensioni della macchina erano mastodontiche, lunga circa 18 metri ed alta tre, era composta da 750.000 parti diversi ed utilizzava 800 chilometri di conduttori per i vari collegamenti interni. La macchina appena in funzione venne subito dedicata a scopi bellici, per la progettazione di navi ed armamenti, Haiken, comandante della riserva della marina venne posto in servizio attivo a capo del dipartimento della marina per il calcolo automatico. Uno degli assistenti di Haiken era il Sottotenente di Vascello Grace Hopper che, insieme ad Haiken continuerà a sviluppare macchine e programmi sia per la Marina che per società private. Sempre la Hopper parteciperà alla definizione del linguaggio COBOL, rimasta in servizio attivo sino alla metà degli anni ’80, raggiungendo

Fig. 4 Grace Hopper , 1907 - 1992

Fig. 3 Howard Haiken

Page 64: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

64

il grado di Commodoro ( Contrammiraglio ), partecipò alla definizione di tutti i maggiori progetti riguardanti i compilatori ed i nuovi linguaggi, sino a poco prima della morte avvenuta nel 1992 all’età di 85 anni. Nel 1997 la marina statunitense ha varato un sottomarino nucleare d’attacco appartenente ad una nuova classe intitolato a Grace Hopper. La nave, interamente a cablaggio su fibra ottica, impiega per la prima volta sistemi software di derivazione commerciale. Mark I resterà in attività sino al 1959, quando viene demolito, tranne alcune parti che verranno salvate e tenute dall’IBM ed alcuni musei. Le idee di Haiken erano disgiunte dalla tecnologia da utilizzare. Conscio del rischio di fallimento che un progetto di tali dimensioni e complessità poteva avere, memore dell’esperienza di Babbage, utilizzo componenti meccanici solo per motivi economici e di disponibilità. Infatti, nel 1945, sempre per conto della marina, inizia la costruzione di una macchina completamente basata su componenti elettromagnetici, denominata Mark II .

La macchina utilizzava 13.000 relè , i numeri erano immagazzinati in BCD. Il Mark II era considerevolmente più veloce del Mark I, era in grado di eseguire una addizione in 125 millisecondi ed una addizione in 750. Terminata la guerra Haiken continuò il lavoro di sviluppo presso l’università di Harward, anche se i suoi progetti vennero sempr

e finanziati da agenzie esterne. Il Mark III, ultimato nel settembre 1949 utilizzava per la prima volta dei tamburi magnetici per immagazzinare dati. In tal modo si realizzava la prima macchina in grado di immagazzinare al suo interno il programma. Questo fu dovuto al fatto che, sulla base delle precedenti macchine Haiken si rese conto di come fosse inutile migliorare la velocità di calcolo della macchina che non sarebbe stata sfruttata vista la lentezza con cui le informazioni venivano acquisite dall’esterno. Mark III era in grado di immagazzinare 4530 numeri a 16 bit, utilizzava 2000 relè e 5000 tubi a vuoto. Il fatto di immagazzinare i

Fig. 6 Mark I , l’unità nastro.

Fig 5. Mark I

Fig. 7 Mark IV , 1947

Page 65: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

65

numeri su cui lavorare in tamburi ruotanti comportava comunque notevoli problemi che vennero risolti con il progetto di una nuova macchina, denominata Mark IV, dove per la prima volta venivano impiegati nuclei di ferrite per realizzare i registri. Il contributo di Haiken risiede essenzialmente in quest’ultimo progresso, la sua opera rappresenta l’anello di congiunzione tra le idee di Babbage ed i primi elaboratori elettronici.

4.3 L’avvento dell’elettronica

Si deve a Thomas Edison ( 1847 – 1931 ) la scoperta che inserendo una piccola placca di metallo in una lampadina e caricando elettricamente la placca si manifestava un flusso di corrente dal filamento incandescente alla placca. Era stato realizzato il primo diodo termoionico. Edison brevetto l’invenzione ma non trovò nessuna applicazione pratica. Nel !890 si dimostrò che la corrente prodotta in un tubo a vuoto consiste di un flusso di particelle cariche negativamente e che si muovono dall’elettrodo negativo a quello positivo. Nel 1909 venne determinata la carica elettrica di tali particelle che vennero denominate elettroni. Nel 1904 lo scienziato inglese Jhon Fleming costruì un tubo a vuoto che permetteva alla corrente di fluire in una sola direzione e nel 1907 venne brevettato da Lee de Forest l’audion, un triodo a vuoto in grado di amplificare piccoli segnali elettrici. Queste scoperte portarono alla costruzione della radio, della televisione e dei dispositivi RADAR.

4.4 Il calcolatore di Atanasoff L’elettronica basata sull’utilizzo dei tubi a vuoto consentì di costruire circuiti per memorizzare informazioni binarie basati su valvole termoioniche, studiate come amplificatori ma che potevano funzionare anche come interruttori comandati da un segnale elettrico. Rispetto ai relais presentavano il vantaggio di non avere organi meccanici in movimento e quindi erano notevolmente più veloci. L’introduzione dell’utilizzo dei tubi a vuoto nella costruzione degli elaboratori fu un contributo allo sviluppo degli elaboratori a lungo dimenticato è dovuto a John V. Atanasoff . La riscoperta delle innovazioni di Atanasoff è dovuto ad una causa intentata nel 1967 alla Sperry Rand Corporation da parte della Honeywell . La Sperry Rand aveva acquistato i diritti sul progetto di ENIAC, che si riteneva all’epoca essere il primo calcolatore elettronico, e faceva pagare i diritti sulla produzione di elaboratori agli altri costruttori, tra i quali anche la Honeywell. I legali di quest’ultima riscoprirono il lavoro di Atanasoff e di un suo laureando, Clifford E. Berry , che tra il 1937 e il 1942 costruirono l’ABC ( Atanasoff Berry Computer ) . I legali della Honeywell rintracciarono Atanasoff e gli sottoposero i progetti di ENIAC. Atanasoff potè rendersi conto che gran parte delle idee e di concetti su cui si basva erano derivate dall’ABC, a seguito delle informazioni fornite da Mauchly . Il 19

Page 66: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

66

Ottobre 1973 il giudice Earl R. Larson della Corte Distrettuale di Mineapolis sentenziò che il brevetto di ENIAC era nullo. A buon titolo si può dunque accreditare a Jhon V. Atanasoff il merito di aver per primo concepito, progettato e costruito il calcolatore digitale elettronico. In effetti non si trattava di una macchina ad uso generale, programmabile , ma era in grado di svolgere in solo compito, risolvere sistemi di equazioni lineari. Comunque in questa macchina vengo impiegate per la prima volta tecniche che influenzeranno tutte le macchine successive. I dati venivano memorizzati in modo fisso su tamburi magnetici rotanti, i precursori dei moderni dischi magnetici. La memoria di lavoro, le celle in cui immagazzinare i dati durante le elaborazioni utilizzavano dei condensatori. Un condensatore una volta caricato mantiene la carica per le cariche elettriche che si stabiliscono sulle sue armature. Con il tempo però il condensatore si scarica a seguito della corrente che fluisce nel materiale dielettrico. Venne perciò studiata una tecnica per ripristinare i valori originari ricaricando continuamente i condensatori carichi con un circuito identificato come di “jogging”. Nei moderni elaboratori la RAM si basa ancora su questa tecnica e il circuito che mantiene la carica viene denominato di “refresh” . Il circuito di “jogging” si basava su un disco rotante dove venivano realizzati i condensatori, i cui terminali venivano in contatto con il circuito di carica a seguito della rotazione del disco. I numeri, rappresentati in binario, venivano sommati dai circuiti di ABC in base a delle tabelle precompilate, i numeri erano memorizzati in registri. La macchina venne abbandonata in seguito all’inizio della guerra ed alla chiamata alle armi di Berry. Solo nel 1967 l’invenzione tornò alla ribalta ma , in effetti, lo stesso Atanasoff ignorava quanto ENIAC fosse dipendente dalle sue invenzioni.

4.5 Gli elaboratori elettronici : ENIAC

Mentre ABC veniva dimenticato gli onori della ribalta furono tutti per

ENIAC che per molto tempo venne considerato il primo calcolatore elettronico. Comunque anche in questo caso non si trattava di una macchina programmabile, come MARK1, ma veniva impostata con dei panelli di permutazione. In genere su base settimanale si predisponevano con

Fig. ENIAC , i pannelli con i circuiti logici.

Fig. ENIAC , il pannelli di perutazione

Page 67: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

67

i collegamenti le formule da calcolare e poi si lavorava per giorni su sequenze di valori diversi. Più che il moderno elaboratore si potrebbe paragonare ad una calcolatrice programmabile. Fu sviluppato per le esigenze belliche. Il secondo conflitto mondiale fu caratterizzato da un’enorme sviluppo tecnologico. La guerra si risolse con una corsa a chi per primo avrebbe sviluppato la bomba atomica. In ogni campo le esigenze di calcolo era pressanti. ENIAC venne sviluppato da un gruppo di scienziati tra cui McCauly. Il progetto venne sviluppato dalla Moore School of Eletrical Engineering presso l’Università della Pensylvania per conto del U.S. Army Ordnance Department Ballistic Research Laboratori che era responsabile di approntare le tabelle di tiro per i cannoni dell’esercito. Le tabelle dovevano essere calcolate, per ogni inclinazione della canna e distanza da colpire, per ogni cannone. Ogni tavola conteneva circa 3000 traiettorie differenti. Il calcolo di una singola traiettoria richiedeva ad un operatore ben addestrato, con l’ausilio di una calcolatrice da tavola dell’epoca, circa 20 ore. Erano già state svilippate delle macchine meccaniche per svolgere tali compiti che richiedevano per lo stesso compito circa 20 minuti, ma erano estremamente difficoltose da impostare ed utilizzare, trattandosi di macchine analogiche, dove ciuoè le grandezze eranno rappresentate con valori proporzionali a quelli effettivi e che quindi variavano in modo continuo. Il progetto di ENIAC segnò anche la fine dell’era in cui i contributi venivano da singoli per passare al lavoro di gruppo, svolta imposta dall’aumento della complessità dei progetti. Alla guida del gruppo erano J.Presper Eckert ( 1919 – 1995 ) e Jhon Mauchly ( 1907 – 1980 ) . Nel 1942 , dopo diversi incontri con Atanasoff ed una visita allo Iowa State College dove l’ABC è in costruzione, Mauchly scrive un breve articolo “The Use of High Speed Vacuum tube Devices for Calculating “ in cu esamina i vantaggi della tecnologia elettronica dei tubi a vuoto rispetto a quella meccanica. Indicava come il calcolo di una traiettoria della tabelle di tiro avrebbe potuto passare da 20 minuti a 100 secondi. All’inizio del 1943 la produzione delle tabelle di tiro era in tale ritardo rispetto alla produzione dei nuovi cannoni da spingere a cercare ogni possibilità per accelerare i calcoli.v Il sottotenente Herman H. Goldstine, assistente professore di matematica prima dell’inizio della guerra, viene incaricato di seguire lo sviluppo di una nuova macchina. Il 9 Aprile 1943 Goldstine, Eckert e Mauchly stendono le specifiche della macchina, sulla base dell’articolo di Mauchly. La macchina si chiamerà Elctronic Numerical Integrator . Mauchly però insisteva sul fatto che la macchina avrebbe dovuto essere destinata anche a scopi più generali per cui venne aggiunto anche And Computer, ENIAC .

4.6 Un caso a parte, LEO Nella storia della costruzione dei primi elaboratori un caso a parte è rappresentato dalla costruzione di LEO, un elaboratore costruito su misura dal committente. La J. Lyons & Co. Era, a

Fig. LEO II , 1957

Page 68: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

68

metà del secolo scorso, una affermata azienda alimentare che gestiva una grande catena di sale da the in Gran Bretagna : Aveva i propri forni, gelaterie, cucine, ma anche le piantagioni e si costruiva persino i propri furgoni. Ma il vero punto di forza era l’avanzatissima capacità gestionale dei problemi di distribuzione, fatturazione e di controllo del magazzino.Nel 1947 due ingegneri vennero inviati negli Stati Uniti per verificare se le macchine all’epoca in costruzione per calcoli scientifici potessero essere utili anche in una azienda commerciale.Visitarono la Moore School (ENIAC, la Burroughs, la NCR e la IBM. Ebbero colloqui con Goldstine e Aiken ad Harward. A seguito di questa visita e dopo aver ulteriormente approfondito i principi di funzionamento delle macchine esaminate la Lyons decise che sarebbe trascorso ancora del tempo prima di avere sul mercato degli elaboratori adatti a scopo commerciale e da qui venne presa la decisione nel 1949 di costruirsi da soli un proprio elaboratore. Con l’aiuto del MathLab di Cambridge iniziò la costruzione del Lyons Electronic Office, basato sull’architettura di Von Neuman, divenne operativo nel 1951 per essere impiegato nella gestione della distribuzione , dei costi e dei profitti dei prodotti da forno. Occupava 465 metri quadrati, utilizzava 5936 valvole, la memoria era costituita da 64 linee di ritardo, richiedeva circa 30 Kwatt di potenza per funzionare. Il successo fu tale che ne vennero realizzate altre due generazioni, LEOII nel 1957 e LEO III, a transistor, nel 1961. Venne fondata una apposita società, LEO Computers che ne vendette 105 in tutto il mondo. Rimane un esempio dell’innovazione guidata dall’utente.

4.7 Von Neuman , la definizione della struttura logica dell’elaboratore

Vari gruppi di lavoro si stavano occupando di sviluppare macchine automatiche per il calcolo ma i vari lavori venivano realizzati in modo empirico, mancavano dei fondamenti teorici che stabilissero i principi su cui costruire queste nuove macchine. Questo contributo si deve a John Von Neuman. Matematico, nato in Ungheria nel 1903 emigrò negli Stati Uniti nel 1933 dove venne nominato professore dello IAS , Istituto per gli studi avanzati. Nel 1937 acquisisce la cittadinanza statunitense e inizia a collaborare con le Forze Armate. Dal confronto con Wiener , Bigelow e Rosenblueth nel campo dello studio delle reti neuronali matura l’ide[a di una analogia tra gli apparati del cervello e quelli delle macchine automatiche. Ne espose per la prima volta i principi nel progetto del EDVAC , si trattava di una macchina con una memoria ampia e un’unità di comando interna che sviluppa i vari compiti mediante algoritmi memorizzati all’interno della medesima. Von Neuman riteneva che un siffatto sistema, rappresentabile come un automa, fosse formalmente analogo al sistema nervoso umano. Nel rapporto venivano descritte cinque unità di base , l’unità aritmetica centrale ( in grado di eseguire le operazioni logico-matematiche ) , l’unità di memoria ( che memorizzava i dati e le istruzioni da eseguire ), l’unità centrale di controllo ( che controllava

Page 69: Introduzione all'informatica2006

Le origini dell’informatica

Capitolo IV – I primi elaboratori

69

la sequenza delle operazioni e controlla il funzionamento delle altre unità ), l’unità di input e l’unità di output. Questa architettura di base nota come di Von Neuman completa quella ipotizzata da Babbage e definisce il moderno elaboratore come una stored program macchine, una macchina in grado di immagazzinare i dati e le istruzioni. L’unità centrale veniva assimilata ai neuroni associativi e le unità di input e output rispettivamente ai neuroni sensoriali e motori. Il rapporta evidenziava inoltre la natura sincrona della macchina, in contrasto con quella asincrona della trasmissione dei segnali. Oggi sappiamo che la struttura del cervello è ben diversa e notevolmente più complessa. Il lavoro di Von Neuman portò allo sviluppo del ECP che iniziato nel 1947 venne completato nel 1951 e ispirò altri progetti come MANIAC e JOHNIAC . Operativo dal 1952 venne utilizzato fino al 1957. Nel 1948 Von Neuman scrive con Goldstine un rapporto dal titolo Planning and Coding Problems fo an Electronic Computing Instrument, dove si sottolineano le differenze che intercorrono tra la formulazione matematica di un problema e la sua codifica, sotto forma delle istruzioni che un elaboratore è chiamato ad eseguire. Si tratta di un processo in cui gli ordini si susseguono in modo dinamico, che permetta passi in avanti e indietro, o sostituzioni nella sequenza controllati dai risultati intermedi del processo di calcolo. Queste idee venivano esplicitate con l’utilizzo di un nuovo strumento, il diagramma di flusso. Si introducono i concetti di istruzioni i sequenza, di ciclo e di selezione. Il rapporto ebbe una vasta circolazione e influenzò in modo determinante la nascita dell’informatica. Da ultimo è bene ricordare che Von Neumann ricoprì diversi importanti incarichi governativi e che la sua influenza contribuì notevolmente allo sviluppo delle nuove tecnologie.

Fig. John Von Neumann.

Page 70: Introduzione all'informatica2006

5 La microelettronica e la nascita del Personal Computer

5.1 I minicalcolatori

I primi elaboratori prodotti in serie si basavano sull’utilizzo di valvole termoioniche ed erano di dimensioni ragguardevoli anche se non paragonabili a ENIAC o a MARKI. Negli anni seguenti le dimensioni andarono rapidamente diminuendo e apparvero una serie di elaboratori che vennero denominati minicalcolatori. Il nome non si riferiva tanto alle prestazioni, che in genere erano paragonabili a quelli di dimensioni maggiori, ma soprattutto alle dimensioni ed al costo. I primi modelli furono quelli commercializzati dalla Digital Equipment Corporation. , il PDP-5 ed il PDP-8, presentati rispettivamente nel 1963 e nel 1965. Nel giro di dieci anni queste macchine furono oggetto di diverse imitazioni e portarono alla nascita di una industria dell’informatica che non produceva più il solo elaboratore ma anche i dispositivi periferici specializzati ed il software di base, i sistemi operativi ed i compilatori, che cambieranno il modo di utilizzare la macchina. Il PDP-5 costava 27.000 dollari, il PDB-8 più potente e notevolmente più piccolo costava 18.000 dollari. Stiamo quindi

Fig. 1 Un modulo di uno dei primi grandi calcolatori commerciali , 1952

Page 71: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

71

parlando di macchine riservate a grosse società o centri di ricerca, non certo ad un uso diffuso. Quello che rese possibile questa rapida evoluzione fu l’evolversi delle tecnologie elettroniche, la sostituzione dapprima delle valvole termoioniche con il transistor, inventato nel 1947 , ed in seguito dal circuito integrato, che porterà al microcalcolatore, un elaboratore basato su una CPU ( Central Processor Unit, l’unità centrale comprendente i circuiti aritmetico-logici e di governo ) realizzata in un unico chip di silicio, una piastrina delle dimensioni di pochi millimetri. Per renderci conto del progresso realizzato tra il 1950 ed il 1970 possiamo esaminare i componenti circuitali rappresentati nelle illustrazioni da 1 a 6. Le dimensioni delle foto sono circa il 40 % delle dimensioni originali. La fig.1 rappresenta il modulo di uno dei primi grandi calcolatori commerciali, presentato nel 1952. L’intero calcolatore aveva circa 300 valvole. I seguenti quattro moduli sono tutti stati

costruiti dalla Digital, il primo ( Fig. 2 )fa parte del PDP-5, 1963, contiene nove transistor in involucri singoli più altri componenti discreti, rappresenta circa la 333 parte del PDP-5. Il secondo modulo ( Fig. 3 ) fa parte del PDP 8/1 del 1968 , ciascun circuito integrato , i contenitori neri rettangolari , contiene da cinque a nove transistor. Il modulo rappresenta circa la centesima parte dei circuiti del PDP-8/1. Il modulo di fig.4 fa parte del PDP-8/A del 1974, contiene 110 circuiti integrati, ciascuno con da 25 a 50 transistor. L’ultimo modulo è un minicalcolatore completo denominato LS-11, sempre della Digital, con 64 Kbit di memoria e con oltre 110000 transistor. Poter cosscheda tutti i componenti che realizzano un elaboratore a costi molto contenuti apre una enorme possibilità di campi di impiego, nel controllo dei processi e di tutti gli automatismi industriali.

Fig. 3 Un modulo del Digital PDP-8/1, 1968

Fig. 2 Un modulo del Digital PDP-5 , 1963

Page 72: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

72

5.2 Il microcalcolatore Il componente fondamentale è il microprocessore, realizzato su un unico chip delle dimensioni di 5 per 7 millimetri contiene tutti i componenti fondamentali, tra cui l’ALU e l’unità di governo, l’interprete dei comandi. Con l’aggiunta delle opportune periferiche il microcalcolatore può essere utilizzato come

macchina per sviluppo di programmi da caricare successivamente in computer destinati a controllo di processi. Nella fig.7 vediamo un esempio, lINTELLEC8. L’interfaccia con l’utente viene realizzata da una telescrivente, in primo piano, e l’output è generato dal perforatore di nastro sulla destra.La tecnologia che ha consentito di sviluppare il microprocessore è stata quella dei semiconduttori a ossido-metallo ( MOS Metal Oxide Semiconductor ) . La prima variante fu la PMOS , basata su canali di materiale tipo P, con cui INTEL costruì il primo microprocessore 4040, con registri da 4 bit. . Era costituito da 2250 transistor su una lastrina di silicio di 2,972 x 4,039 millimetri, incapsulata in una scatola di resina con 16 piedini. Il successore fu l’INTEL 8008 con registri a 8 Bit, nel 1972. I microprocessori non solo realizzano in forma

Fig.4 Un modulo del PDP-8/A , 1974

Fig. 5 Il Digital PDP-8

Page 73: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

73

integrata i circuiti già sperimentati nei grandi elaboratori, la migliorano con l’introduzione di dispositivi come la memoria gestita a stack, che rende

possibile lo sviluppo dei sottoprogrammi e la gestione degli interrupt. Ogni microprocessore è caratterizzato un proprio insieme di istruzione denominato ISA ( Instruction Set Architecture ) . Ogni singola istruzione viene a sua volta eseguita da un microprogramma dentro la CPU. In taluni casi viene anche data la possibilità all’utente di lavorare a livello di microprogramma per modificare o ampliare l’insieme di istruzione. La microelettronica ha anche consentito di realizzare memorie di lavoro di tipo RAM ( Random Access Memory ) in forma integrata e quindi in grande quanità. Tale memoria è

Fig. 7 Intellec 8, 1975

Fig. 6 Il Digital LSI-11 , 1975

Page 74: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

74

necessaria per poter immagazzinare il programma ed i dati da eseguire , realizzando quindi una Stored Program Machine. Il termine RAM indica che il tempo di accesso è indipendente dalla cella a cui si vuole accedere, scelta in modo casuale, questo in contrasto con le memorie di massa di tipo magnetico. Sarebbe però forse più corretto indicarle come memorie di lettura / scrittura. Vi è inoltre l’esigenza di disporre di memorie il cui contenuto sia fisso e si mantenga anche in assenza di alimentazione elettrica. In tali memorie il contenuto viene realizzato come combinazione diretta degli ingressi. Vengono indicate come ROM ( Read Only Memory ) e vengono anch’esse realizzate in forma integrata.

5.3 L’elettronica dello stato solido

Nel 1947 Walter Brattain, Jhon Bardeen e Wiliam Shockley dei Laboratori Bell inventano il transistor e ricevono per questo il premio Nobel nel 1956. Il transistor si basa sull’utilizzo di materiali semiconduttori.

I materiali vengono classificati per la capacità di condurre la corrente elettrica in conduttori ed isolanti. Questa capacità è legata alla struttura atomica dei materiali, alla disponibilità di elettroni legati in modo debole negli strati più esterni e quindi disponibili, con l’applicazione di una forza elettromotrice di lieve intensità, alla conduzione di cariche elettriche. Secondo il modello atomico classico di

Bohr gli elettroni ruotano attorno al nucleo a distanze ben definite. Gli elettroni sulle orbite più interne possiedono una energia inferiore a quelli sulle orbite esterne e, come le orbite possono essere localizzate solo a certe distanze, anche l’energia può assumere solo valori interni a determinate fasce. I diversi possibili stati elettronici vengono spesso indicati con le lettere K, L , M , N ecc. Gli elettroni sulle orbite più esterne risultano meno legati al nucleo e permettono il verificarsi delle reazioni chimiche e l’instaurarsi di legami tra gli atomi , vengono denominati elettroni di valenza. Quando ad un atomo viene fornita energia dall’esterno l’energia viene immagazzinata dagli elettroni negli strati più esterni e un elettrone può anche essere sbalzato dalla sua orbita

Fig. 8 La struttura atomica del silicio drogato

Fig. 11 La giunzione pn e lo strato di svuotamento

Page 75: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

75

Fig. 13 – Il flusso delle cariche in un transistor a giunzione

lasciando l’atomo con una carica totale positiva, andando ad unirsi ad un nuovo atomo di cui incrementa la carica elettrica negativa. Gli atomi che a seguito di tali fenomeni perdono o acquistano un elettrone vengono denominati ioni, positivi o negativi. La presenza di elettroni negli strati esterni debolmente legati al nucleo determina anche le caratteristiche dei materiali dal punto di vista elettrico. Conduttori quelli che dispongo di molti elettroni nella fascia esterna debolmente legata, isolanti quelli che non ne dispongono. Esistono però speciali materiali che manifestano caratteristiche intermedie tra i due citati, tra questi il germanio ed il silicio. In particolare il silicio è un materiale facilmente reperibile e le cariche disponibili per la conduzione sono poche e sono costituite da quegli elettroni che per l’agitazione termica del

materiale vengono sbalzati dal legame che formano con gli atomi. L’insieme di

Page 76: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

76

questi elettroni produce un flusso di particelle negative e quindi una corrente, ma anche la presenza delle lacune, originate dagli atomi dove sono stati sbalzati gli elettroni da origine ad un flusso, questa volta di mancanza di cariche negative e cioè di cariche positive. Le lacune si muovono quando un atomo da un elettrone vicino viene sbalzato nella lacuna e quindi la lacuna si sposta in direzione opposta all’elettrone, come le bolle d’aria in un liquido. Questo flusso di cariche può essere amplificato con un opportuno drogaggio del silicio, cioè con l’aggiunta di piccole parti di altri materiali. La modifica consiste nell’aggiungere a del silicio molto puro ( oltre il 99,99999 % ) una piccola percentuale di materiale pentavalente o trivalente , cioè in cui ogni atomo dispone di cinque o tre elettroni per effettuare legami con gli atomi circostanti . L’aggiunta di questi materiale comporta che nella struttura regolare cristallina formata dagli atomi di silicio si trovano, suddivisi in modo uniforme , degli atomi con un atomo di legame in eccesso ( pentavalenti ) o in difetto ( trivalenti ) . Nel primo caso avremo degli elettroni disponibili ad una ,debole, conduzione di corrente, nel secondo caso delle lacune, anch’esse disponibili ad una debole conduzione. Identificheremo i materiali drogati con elementi pentavalenti, come l’arsenico , il fosforo e l’antimonio, di tipo N, quelli drogati con elementi trivalenti, come l’alluminio, il boro ed il gallio, di tipo P.

5.4 Il diodo a giunzione

Accostando una piastrina di materiale di tipo P ed una di tipo N si forma una giunzione che da origine ad un fenomeno di addensamento di cariche elettriche. Gli elettroni disponibili per la conduzione nello strato N vengono richiamati dalle lacune nel materiale P oltre la giunzione. Inizia quindi un flusso di cariche elettriche negative che vanno a caricare elettricamente ed in valore negativo la zona di materiale P vicina alla giunzione. Questo addensamento di cariche e le corrispondenti cariche positive che rimangono nella zona N dove gli elettroni si sono spostati danno origine ad una barriera di potenziale che rallenta il passaggio di nuove cariche elettriche.

Fig. 14 Diodo e transistor a giunzione, simboli elettrici e comportamento ad un segnale

Page 77: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

77

Fig. 9 Una giunzione pn polarizzata direttamente

Si arriva ad una situazione di equilibrio come raffigurato nella fig. 11 , quando questa differenza di potenziale è tale da impedire completamente il transito di nuove cariche. La zona a cavallo della giunzione dove sono stati svuotati gli elettroni e le lacune viene denominata zona di svuotamento. Il valore della barriera di tensione dipende dal tipo di materiale, per il silicio vale circa 0,7 volt. Il dispostivo così realizzato presenta delle caratteristiche elettriche dipendenti dal tipo di polarizzazione ( cioè la modalità di applicazione del polo positivo e di quello negativo ai due morsetti ). Le due situazioni sono schematizzate nella Fig. 12 e nella Fig 13. Nella prima vediamo come l’applicazione di una tensione esterna con il polo positivo venga applicato alla piastrina P e quello negativo a quella N comporta che i due potenziali elettrici, esterno e di barriera, sono in opposizione. Se la tensione esterna supera il valore di barriera, la differenza di potenziale fa si che la barriera sulla giunzione viene annullata e si instaura una corrente, dovuta ad un flusso di elettroni ed a un flusso di lacune in senso inverso. Nel caso di applicazione di una tensione esterna in senso inverso succede invece quanto evidenziato nella figura 12. In un primo momento gli elettroni di confine della zona di svuotamento vengono ulteriormente allontanati dalla

f.e.m. esterna ed in ugual modo lacune nella zona P vengono riempite da elettroni forniti dal generatore esterno. Questo comporta però un allargamento della zona di svuotamento ed un aumento della tensione ai capi della giunzione. Si perviene

ad una nuova situazione di equilibrio quando la tensione ai capi della barriera diventa uguale a quella esterna. In tale situazione si ferma il movimento di cariche e la relativa corrente. In definitiva un diodo può essere polarizzato in

Fig. 12 Una giunzione pn polarizzata inversamente

Page 78: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

78

due modi. Uno diretto nel quale la corrente può fluire ed uno inverso nel quale la corrente non può fluire.

5.5 Il tranistor BJT

Il diodo è un componente di fondamentale importanza in elettronica e viene impiegato per diversi scopi, primo tra tutti quello di raddrizzare correnti alternate, ma per l’utilizzo nei circuiti digitali binari il componente di maggiore

importanza è il transistor in quanto, come già con le valvole termoioniche, oltre a manifestare un comportamento di amplificatore può anche essere utilizzato come un interruttore comandato con un segnale elettrico. Naturalmente con il vantaggio di essere enormemente più piccolo e di consumare una frazione dell’energia richiesta da una valvola termoionica. Il principio di funzionamento è illustrato dalla fig. 13. Come espresso dalla

Fig. 17 La realizzazione in forma integrata di componenti elettrici passivi

Fig. 16 Il transistor come interruttore

Page 79: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

79

sigla il dispositivo è costituito da componenti in cui la corrente è ottenuta come una sovrapposizione di due flussi ( lacune e elettroni ) e mediante giunzioni. Le giunzioni devono essere opposte quindi realizzate unendo tre placche di materiale p-n-p o n-p-n. Affinché si manifesti l’effetto transistor le due giunzioni devono essere abbastanza vicine perché le due zone di svuotamento vadano a collidere. Inoltre le due giunzioni devono essere polarizzate una in modo diretto ed una in modo inverso. Per ottenere questo il transistor è collegato ad una tensione di alimentazione in corrente continua mediante resistori. A questo punto la situazione è quella illustrata nella figura 13. Le cariche iniettate nella giunzione polarizzata direttamente (a), una volta entrate nella base, sono letteralmente risucchiate dalla zona di svuotamento della giunzione polarizzata inversamente. Secondo il primo principio di Kirchoff la relazione tra le correnti è

BCE III += La corrente in base è trascurabile rispetto a quelle nel collettore e nell’emettitore. In questa situazione un segnale che viene applicato tra i morsetti E e B in serie alla tensione di polarizzazione, si trova amplificato tra i morsetti B e C . Per gli impieghi nell’elettronica digitale il transistor è utilizzato portando il dispositivo in due situazioni, come illustrato in fig.16 . La prima detta di saturazione è quella in cui la giunzione base emettitore è polarizzata direttamente e quindi tra collettore ed emettitore abbiamo conduzione, equivalente ad un interruttore chiuso, la seconda è detta di cutoff, la giunzione tra base ed emettitore non è polarizzata direttamente, tra emettitore e collettore non vi è conduzione, equivalente ad un interruttore aperto.

5.6 I circuiti integrati La realizzazione del transistor bjt e quindi la nascita dell’elettronica dello stato solido, consente di realizzare circuiti di dimensioni molto inferiori rispetto all’utilizzo delle valvole ma siamo pur sempre con componenti che devono essere collegati singolarmente su una scheda. La seconda grande innovazione è stata la realizzazione di più componenti in forma integrata, su un’unica piastrina di materiale semiconduttore , il chip. Il procedimento si basa sulla diffusione in ambiente controllato dei droganti sulle piastrine che, ricoperte da apposite maschere sono diffusi solo in alcune zone.

Fig. 15 Transistor BJT realizzati in forma integrata

Page 80: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

80

Fig. 19 Porte logiche basate su mosfet

Il procedimento è ripetuto più volte con maschere diverse fino ad ottenere l’effetto voluto. Una volta realizzati i singoli componenti nella piastrina si procede alla realizzazione dei collegamenti mediante la deposizione di piste metalliche, allo stesso modo delle schede. Oltre a realizzare componenti attivi come i diodi e i transistor si possono anche realizzare resistori e condensatori, come illustrato nella figura 17. Per le induttanze non si è trovato un modo soddisfacente per

realizzarle in forma integrata. Resistenze e capacità possono essere ottenute solo per valori limitati. Con la realizzazione dei primi circuiti integrati si ottengono già notevoli miglioramenti ma la tecnologia dei componenti integrati ha un grande miglioramento con l’introduzione di un nuovo tipo di dispositivo, il transistor a

effetto di campo. La tecnologia bjt presentava notevoli problemi per la realizzazione in forma integrata. Il transistor a effetto di campo utilizza un principio che in qualche modo ricorda quello delle valvole termoioniche. Il dispositivo rappresentato in fig. 18 rappresenta un transistor a effetto di campo di tipo MOSFET ( Metal Oxide Semiconducto Field Effect Transistor ) . I tre morsetti sono denominati in questo caso sorgente, porta e pozzo. Il passaggio di corrente tra sorgente e pozzo dipende dalla tensione applicata alla porta e alle cariche indotte per effetto elettrostatico ( come sulle armature di un condensatore ) sono le cariche presenti nel canale

Fig. 18 Transistor a effetto di campo

Page 81: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

81

al di sotto della porta che permettono la conduzione. Anche in questo caso un segnale elettrico applicato alla porta si trova modificato tra sorgente e pozzo. Come per il BJT il dispositivo si può utilizzare come interruttore. A seconda che alla porta venga o meno applicata una tensione si ha passaggio di corrente tra sorgente e pozzo. Il dispositivo può essere realizzato sia con un canale in materiale di tipo p che di tipo n. In particolare risulta conveniente dal punto di vista della produzione in forma integrata, la realizzazione di componenti affiancati a canale n ed a canale p, denominata CMOS (Complementary Metal Oxide Semiconduttor), che comporta anche minori consumi. Con la tecnologia PMOS venne realizzato dalla INTEL il primo microprocessore, INTEL4004 , in grado di elaborare blocchi di istruzioni da quattro bit, aveva 2250 transistor, la piastrina di silicio era di 2,972 x 4,039 millimetri e successivamente INTEL8008. Con i transistor MOSFET si possono realizzare i mattoni fondamentali dei circuiti digitali. In fig. 18 vengono illustrati i circuiti che realizzano rispettivamente un invertitore, una porta logica AND ed una porta logica OR. Per il primo, quando viene applicato un segnale di livello alto alla porta, il canale consente la conduzione e quindi abbiamo conduzione elettrica tra sorgente e pozzo ed il potenziale in uscita va a zero, invertendo così il segnale in ingresso. Con lo stesso principio nel secondo circuito abbiamo passaggio di corrente nei primi due transistor solo se entrambi i segnali in ingresso sono alti, realizzando così una NAND che con il terzo transistor che funziona da invertitore diventa una AND. Nel terzo caso basta un solo segnale alto in ingesso per far condurre tra sorgente e pozzo di uno dei due transistor e quindi ottenere un segnale alto in uscita, cioè una porta OR. Nella successiva figura vediamo come utilizzando i mattoni fondamentali si possa costruire un circuito, denominato latch o flip-flop che memorizza in forma stabile, purché alimentato, un bit.

Fig 20 - Un latch

Page 82: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

82

5.7 La produzione dei circuiti microintegrati

Realizzare dei componenti in forma integrata richiede di costruire in una unica piastrina di silicio strati sovrapposti di materiali drogati di tipo P e N. I procedimenti impiegati sono due, a diffusione e ad impiantazione ionica. Nel primo il materiale dove si vuole realizzare la zona viene esposto ad alta temperatura in atmosfera dove è presente in forma gassosa il materiale drogante. Gli atomi di drogante che vengono a contatto della superficie della piastrina si diffondono al suo interno. La profondità delle zone dipende dal tempo di esposizione. Nel secondo metodo ioni di materiale drogante vengono accelerati per mezzo di campi elettrici e grazie all’energia cinetica acquisita direttamente impianti nella struttura cristallina del silicio. Le diverse fasi della realizzazione di un circuito integrato sono rappresentate nella figura xx . Si comincia con il disegno del circuito realizzato con un programma di CAD. Da questo in base alla tecnologia prescelta per la realizzazione . Su questa base si passa alla definizione dei vari strati di materiale P ed N necessari alla loro realizzazione.

Fig.22 – Il processo di produzione di circuiti integrati

Page 83: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

83

Il funzionamento dei circuiti viene studiato con dei programmi di simulazione. Una volta definito il disegno, viene ridotto alle dimensioni reali. I circuiti verranno realizzati su delle lastre di silicio ( wafer ) che vengono prodotte affettando un cilindro di silicio monocristallino prodotto partendo da un unico cristallo in un bagno fuso di silicio puro ( al 99,9999999 % ) a 1420 gradi centigradi. Il cilindro così prodotto, di lunghezza superiore al metro, viene dapprima rettificato al tornio e poi tagliato a fette che vengono levigate per produrre due facce perfettamente parallele. Il prodotto finito ha uno spessore di 0,5 mm. Il diametro dei wafer può essere di 10 , 15 cm o maggiori. Date le dimensioni del circuito da realizzare su una singola fetta ne vengono prodotte diverse decine I diversi layout dei singoli strati da produrre vengono pertanto dupplicati ed affiancati con un procedimento detto a ripetizione. La struttura da realizzare è tridimensionale, gli stratir vengono sia costruiti all’interno del chip che sulla superficie. Le tecniche di produzione si basano su processi di tipo fotografico ad altissima definizione . Per le varie fasi vengono prodotte delle lastre di lavorazione per mezzo di immagini incise su film di cromo su lastra di vetro. Una volta preparate le lastre possono essere mandate all’impianto di produzione. Tutte le fasi di predisposizione delle lastre e di produzione devono avvenire in ambienti estremamente puliti, la presenza di polveri anche molto sottili, può vanificare l’intero procedimento. Gli operatori indossano tute speciali e glia mbientei utilizzano aria che viene continuamente posta in icircolo e feltratura. La scelta dominante del silicio come componente di base per la produzine del chip deriva anche dalle ottime proprietà del suo ossido , che viene utilizzato come isolante. Se si riscalda il wafer di silicio in atmosfera con presenza di ossigeno o di vapor d’acqua, sulla sua superficie si forma il film d’ossido il cui spessore può essere regolato in base al tempo di esposizione ed alla temperatura. La produzione dei circuiti integrati consiste essenzialmente nella realizzazione dei diversi strati che corrispondono ad una determinata maschera. Il wafer viene d’apprima ricoperto con una pellicola di biossido di silicio. Su questo viene deposto uno stratodi nitruro di silicio. Quest’ultimo viene rimosso in modo selettivo, utilizzando una maschera, con un procedimento fotolitografico

Fig. 21 Una maschera per la produzione di circuiti integrati

Page 84: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

84

convenzionale. Utilizzando come mascheratura le zone ove il nitruro di silicio, si procede alla diffusione del materiale drogante. Si continua poi a costruire mascherature con deposizioni di strati, rimozioni selettive, diffusioni di materiali droganti. Dato che le diffusioni vengono fatte in modo successivo, ogni volta il materiale viene sottoposto alla diffusione ad alta temperatura. In tali condizioni anche le diffusioni precedentemente realizzate continuano ad espandersi. Questo effetto deve essere inizialmente previsto. Una volta terminata la costruzione dei diversi strati che compongono i singoli componenti si realizzano i collegamenti tra i dispositivi con

la deposizione di un film di alluminio, anche questa volta con procedimento di mascheratura, il metallo viene posto in un crogiuolo e i wafer vengono disposti al di sopra in un cestello in rapida rotazione. Il processo ha termine con il controllo elettrico. Ogni circuito viene controllato con una macchina che si collega al chip mediante degli aghi. Da ultimo viene incapsulato dopo essere stato collegato con dei sottili fili ad un blocco di piedini, che, una volta incapsulato, realizzano i collegamenti elettrici esterni.

5.8 Il microelabortatore diventa un bene di consumo Nel Gennaio 1975 una rivista di elettronica molto diffusa negli USA,Popular Electronics , annuncia la disponibilità di un computer in scatola di montaggio Altair 8800, il nome deriva dalla destinazione della nave Enterprise in un episodio di Star Trek.. La copertina della rivista Lo qualifica come il primo minicomputer in kit in gradi di rivaleggiare con i modelli commerciali. La macchina era basata sul processore INTEL 8080 a 8 bit e venduto in kit di montaggio a 397 dollari dalla catena di negozi Radio Shake. Tra gli acquirenti della rivista due sedicenni di Seattle,

Fig. 24 Altair 8800 , 1975

Fig. xx Paul Allen e Bill Gates

Fig. 23 – La rivista Popular Elettronics , Gennaio 1975, che annuncia il primo computer di larga diffusione, in kit di montaggio, Altari 8800.

Page 85: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

85

Paul Allen e Bill Gates, che leggendo l’articolo cominciano a progettare il loro futuro. I due intuiscono che macchine come l’ALTAIR8800 potranno avere una enorme diffusione, che porterà rapidamente all’estinzione dei dinosauri dell’epoca, e che probabilmente ci sarebbe stato bisogno di fornire del software per tali macchine. Alcuni anni più tardi i due decidono di fondare una società con tale scopo e dato che si doveva occupare di fornire il software per i microcomputer, la chiamarono Micro Soft.. ALTAIR8800 era un computer sul modello del INTELLREC 8008, i dati e le istruzioni dovevano essere inseriti mediante sedici interruttori sul pannello frontale, che configuravano i singoli bytes, ed inseriti con un tasto di controllo. Era ancora poco più di una curiosità destinata agli appassionati di elettronica ma ne vennero venduti decine di migliaia , aprendo la strada alla creazione di un mercato delle macchine destinate ad uso personale.

Page 86: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

86

5.9 INTEL e la nascita del microprocessore Nel 1968 viene fondata la INTEL Corporation , con lo scopo di produrre chi

complessi. Nel 1971 costruisce il primo microprocessore su singolo chip, INTEL 4004. Il progetto venne commissionato dalla Busicomm che lo utilizzo come memoria di una calcolatrice. Il processore e basato su registri a quattro bit. Resasi conto delle enormi potenzialità del progetto INTEL ricomprò i diritti e sviluppo ulteriormente il progetto ampliandolo ad una

Fig. xx Intel 8008

Intel Earlier Processors Processor Clock

Speed(s) Intro Date(s) Mfg.

Process/ Transistors

Transistors Addressable Memory

Typical Use

Intel386™ DX Processor

33 MHz 25 MHz 20 MHz 16 MHz

Apr. 10, 198933 MHz Apr. 4, 198825 MHz Feb. 16, 198720 MHz Oct. 17, 198516 MHz

1.5- and 1-micron

275,000 4 GB Desktops

80286 12 MHz 10 MHz 6 MHz

February 1982

1.5-micron 134,000 16 MB Desktops (standard CPU for all IBM PCs clones at the time)

80186 12 MHz 10 MHz

1982 Used mostly in controller applications

8088 8 MHz 5 MHz

June 1979 3-micron 29,000 Desktops (standard CPU for all IBM PCs and PC clones at the time)

8086 10 MHz 8 MHz 5 MHz

June 8, 1978 3-micron 29,000 1 MB Portable computing

8085 5 MHz March 1976 3-micron 6,500 Toledo scale. Computed cost from weight and price. High level of integration, operating for first time on a single 5-volt power supply (down from 12 volts).

8080 2 MHz April 1974 6-micron 4,500 64 KB Traffic light controller, Altair computer (first PC).

8008 500-800 KHz

April 1972 10-micron 3,500 16 KB Dumb terminals, general calculators, bottling machines, data/character manipulation

4004 400 KHz Nov. 1971 10-micron 2,300 640 Bytes Busicom calculator, arithmetic manipulation

Fig. Xx I primi microprocessori INTEL

Page 87: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

87

architettura a 8 bit, INTEL 8008. Nella tabella vengono riassunte le caratteristiche dei microprocessori prodotti da INTEL dal 4004 al 486.

5.10 Dal minicomputer al Personal Computer

Abbiamo esaminato come l’introduzione dei componenti integrati e del microprocessore abbiano consentito di realizzare a metà degli anni settanta un microcalcolatore di costo largamente accessibile, ma il computer come noi oggi lo conosciamo è un oggetto che interagisce con l’uomo tramite tastiera e video, che gestisce testi e fogli di calcolo , ben diverso dai primi elaboratori. Le idee che portarono alla nascita del moderno elaboratore traggono la loro origine da un progetto sviluppato negli anni ’40. Il progetto portò alla costruzione della prima machina interattiva per scopi generali, operativa nel 1951, Whirlwind. Il progetto si proponeva di costruire un simulatore di volo che doveva quindi interagire con l’operatore in tempo reale. Realizzata a valvole occupava otto grandi armadi , aveva prestazioni paragonabili ad un personal computer degli anni

ottanta. Le modalità di utilizzo della macchina erano completamente diverse da tutte le altre. Gli utenti si prenotavano per utilizzare la macchina per periodi di quindici minuti , durante i quali potevano sedersi di fronte al monitor della macchina, scrivere e lanciare programmi o eseguire simulazione. Le tecnologie sviluppate per Whirlwind furono successivamente utilizzate nel progetto SAGE, un sistema di controllo esteso a tutti gli USA per prevenire

atttachi aerei. Furono realizzati 23 centri sparsi sul territorio e ognuno dotato di due elaboratori in grado di seguire la traiettoria di un massimo di 400 aerei. Il sistema venne dimesso nel 1984. Le numerose ditte che lavorarono al progetto trasferirono le tecnologie utilizzate nel mondo commerciale,

Fig. xx . Digital PDP-1, 1960

Apple I , la versione sperimentale costruita nel 1976.

Fig. xx Digital PDP-11 , 1970

Page 88: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

88

prima fra tutte la IBM, che nel 1955 divenne il primo produttore a commercializzare un elaboratore basato su una memoria realizzata con nuclei di ferrite, che rimarrà lo standard fino a metà degli anni ’70. SAGE era comandato da consolle comprendente un tubo a raggi catodici, una tastiera e di un puntatore ottico che permetteva all’operatore di selezionare punti sul monitor. Fu sempre in questo progetto che , per permettere l’interconnessione tra i 23 centri mediante linee telefonie venne realizzato il MODEM. L’idea di costruire un elaboratore interattivo venne ripresa da due degli utenti di Whirlwind, Kenneth Olsen e Harlan Anderson, che nel 1957 fondarono una piccola società con lo scopo di costruire computer interattivi, la Digital Equipment Corporation. Nel 1960 la DEC introdusse il suo primo elaboratore programmabile, il PDP-1 di cui vennero venduti 49 esemplari, al costo di 120.000 dollari. La macchina era completamente interattiva, disponeva di un display a raggi catodici integrato, poteva stare in una piccola stanza. La sua architettura era aperta, nel senso che tutti i progetti venivano resi pubblici e gli utenti potevano anche modificarla per i loro scopi.. Sulla base del successo ottenuto, la DEC cominciò a lavorare allo sviluppo di un computer da tavolo, da destinare a piccoli gruppi di lavoro. Il risultato di questo sviluppo fu il già citato PDP-8, un computer talmente piccolo che la pubblicità lo presentava caricato su una mggiolino cabrio. E che costava solamente 18.000 dollari. Costruito nel 1965 ebbe una rapida diffusione e divenne il capostipite di una nuova famiglia di elaboratori che venne indicata con il termine di minicomputer, termine secondo alcuni introdotto a seguito di un’altra rivoluzione dell’epoca, la minigonna. Nel 1975 viene introdotto il già citato Altari 8800 che apre la strada alla costruzione di macchine effettivamente operative. Nel 1976 viene fondata la Apple Computers che nel 1977 presenta il suo Apple II, aveva la tastiera integrata e un design accattivante, costava 1195 dollari, monitor escluso. Apple II disponeva di una visualizzazione grafica e di un mouse. L’interfaccia grafica ed il mouse derivano sempre dal progetto SAGE, ed in particolare al lavoro di Engelbart, che ideò per primo il mouse, le finestre sovrapponibili, l’ipertesto,

la videoscrittura a tutto schermo e diverse altre innovazioni. Queste nuove idee erano state presentate da Engelbert nella Fall Join Computer Conference a San Francisco nel 1968. Le idee furono successivamente sviluppate al PARC, centro di ricerche della Xerox a Palo Alto. Fu qui che vennero realizzati i primi prototipi del personal computer e dell’interfaccia grafica che la Apple avrebbe reso famosa. Fig. xx Apple II , 1975

Page 89: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

89

5.11 Il Personal Computer IBM

Nell’estate del 1980 due emissari della IBM si recano presso la Microsoft per discutere circa la possibilità di costruire un Personal Computer. All’epoca la IBM controllava l’80% del mercato dei grandi computer. L’intenzione era di poter commercializzare il prodotto entro un anno. Per entrare in questo nuovo mercato i dirigenti IBM abbandonarono la strategia fino ad allora seguita di produrre in casa tutto l’hardware ed il software, si scelse di basarsi su componenti facilmente reperibili e su una architettura aperta. Anche per il microprocessore scelse di rivolgersi all’esterno, utilizzando l’INTEL 8086. Per il sistema operativo venne concluso un accordo con Microsoft per

fornirlo in licenza.Il lettore dei floppy disk da 5 pollici ed un qyurto era fornito dalla Tandem Corp. , il monitor arrivava da Formosa, il monitor dal Giappone. Il progetto portò alla realizzazione di una macchina che tecnologicamente non era all’altezza dei già realizzati Apple ma che aveva il suo punto di forza nella semplicità di utilizzo, nell’affidabilità e nella possibilità di copiarne l’architettura, nasceva il mercato parallelo dei cloni. Nel 1982 le vendite del PC-IBM furono il 14 % del già florido mercato dei PC megli USA, mercato allora controllato con il 70 % delle vendite dalal Apple. La macchina basata su una innovativa architettura a 16 Bit, poteva indirizzare fino ad 1 Mbyte di memoria. La scelta di puntare su un prodotto aperto portò rapidamente ad una definizione di uno standard. L’architettura era basata su una struttura modulare, un BUS di comunicazione che verrà denominato ISA ( Industrial Standard Architetture) connetteva i vari sottosistemi. Attraverso dei connettori a pettine la Mother Board poteva essere ampliata con l’installazione di schede prodotte da altri produttori: Era nato il moderno PC, basato su una architettura libera e di cui la IBM era il leader incontrastato Il sistema operativo che la Microsofty produsse per IBM si basava su un precedente

Fig. 26 Il PC-IBM , 1981

Page 90: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

90

lavoro di un’altra piccola società di Seattle, un compilatore del BASIC con l’aggiunta di alcune funzionalità di un sistema operativo. I diritti su questo progetto vennero acquistati dalla MicroSoft che assunse anche l’autore del lavoro, Tim Paterson. Rielaborando il progetto venne prodotto il sistema secondo le richieste di IBM e venne denominato PC-DOS, In effetti al lancio del PC IBM la macchina veniva fornita con tre diversi sistemi operativi, oltre al PC-DOS prodotto da Microsoft vi erano anche il CP/M 86 e UCSD-Pascal-System. Il successo del PC-DOS fu decretato dal fatto che la Microsoft chiese ad IBM un cifra fissa indipendente da quante licenze avrebbe venduto, il che comportò che UCSD Pascal costava 450 $ , il CP/M 86 175 $ ed il PC-DOS 60 $.

Fig. xx Schema della mother-board del PC-IBM

Page 91: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

91

Inoltre la Microsoft incentivò supportandoli i produttori di software per li sistema DOS, questo portò in breve tempo alla nascita di un mercato del software in cui il PC-DOS si impose come standard. Naturalmente però la Microsoft manteneva l’esclusiva per la vendita dei futuri aggiornamenti del prodotto. E con queste arrivarono anche i profitti. Furono queste strategie a portare la Micorsoft a diventare il colosso mondiale odierno. Nella figura xx vediamo come era composta la mother-board del PC-IBM e nella successiva fig. sono rappresentati i componenti principali della scheda. Le dimensioni della piastra sono di 25 x 36 centimetri, Il microprocessore INTEL 8086 si trova in alto a sinistra, alla sua destra vi è uno zoccolo per aggiungere un coprocessore matematico INTEL 8087, in grado di eseguire le operazioni in virgola mobile precluse al 8086. Nella parte centrale della scheda trovano posto i chip con le memorie ROM che immagazzinano il BIOS ( Binary Input output Subsystem ) , la parte fondamentale del sistema operativo, il LOADER , che deve sempre essere disponibile. La memoria di lavoro RAM viene implementata dai chip in basso a sinistra, che potevano essere inseriti su zoccoli per ampliare la memoria sino al massimo configurato sulla scheda nella foto nella parte centrale a destra abbiamo i due banchi di deep-switch per le configurazioni di sistema è l’ INTEL 8255A per la gestione delle porte di I/O a fianco il PIC per la gestione degli INTERRUPT. In alto a sinistra vi sono i

cinque connettori a standard ISA che consentono di inserire delle schede di espansione In alto a destra sopra i microprocessori vi sono i connettori per la tastiera e per il collegamento ad un registratore a cassette. La fig. xx rappresenta la connessione logica dei vari sottosistemi mediante le linee del BUS ISA. La memoria del video viene inclusa nello spazio di indirizzamento della memoria di lavoro secondo una tecnica denominata memory-mapped I/O. La fig. xx rappresenta la schermata di presentazione dell’PC-DOS .

Fig. 25 – Lo schema del Personal Computer IBM

Page 92: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

92

Fig. 27 La scheda madre del PC-IBM , 1981

Page 93: Introduzione all'informatica2006

Le origini dell’informatica

Cap. V -La microelettronica e la nascita del Personal Computer

93

Riferimenti capitolo 5

Andrei G. Vacroux I microcalcolatori Le Scienze Settembre 1975 Bill Gates The road ahead - Viking – 1995 James D. Meindl – Gli elementi de I circuiti microelettronici – Le Scienze Novembre 1978 William C. Holton – L’integrazione su larga scala dei circuiti elettronici – Le Scienze Novembre 1978 Hoo-min D. Toong e Amar Gupta – Personal Computer – Le Scienze Febbraio 1983