STORIA DEGLI ELABORATORI (prof. Fulvio Ferroni)
LA PREISTORIA
L’ABACO E I BASTONCINI DI NEPERO
Fin dai tempi più antichi l’uomo ha avvertito l’esigenza di disporre di strumenti che agevolassero lo
svolgimento di calcoli ripetitivi e li ha realizzati compatibilmente con le tecnologie di volta in volta
disponibili.
Il primo di tali strumenti può essere considerato l’ABACO usato fin dal 300 - 200 a.c. e costituito
da tavolette su cui venivano disposti sassolini (“calculi” in latino, da cui deriva il termine
“calcolare”). Una variante dell’abaco, il PALLOTTOLIERE viene tuttora utilizzato in alcuni paesi
orientali al posto delle calcolatrici.
Una citazione meritano anche i BASTONCINI DI NEPERO dovuti appunto al matematico scozzese
del ‘500 John Napier (Nepero) con i quali si potevano eseguire agevolmente le moltiplicazioni.
Un abaco
L
A
P
A
SCALINA
La prima macchina automatica di calcolo che sia stata costruita dall’uomo è la PASCALINA
progettata e realizzata dal matematico e filosofo francese Blaise Pascal nel 1642. Era una
calcolatrice meccanica in grado di effettuare addizioni e sottrazioni e di calcolare automaticamente
il riporto nelle addizioni (con un meccanismo a ruote dentate simile a quello degli attuali
contachilometri delle auto).
La PASCALINA fu successivamente migliorata dal matematico e filosofo tedesco Gottfried
Wilhelm Leibnitz che realizzò nel 1671 il CILINDRO DI LEIBNITZ macchina in grado di eseguire
anche moltiplicazioni e divisioni mediante somme e sottrazioni successive.
Queste macchine, pur funzionanti, rimasero oggetti di studio e non ebbero gli utilizzi pratici che i
loro costruttori speravano. Solo nei primi decenni dell’800 la tecnologia permise la realizzazione di
calcolatrici meccaniche abbastanza comode da usare e che quindi ebbero una certa diffusione; la
prima fu l’ARITHMOMETER realizzato dall’inglese Thomas De Colmar nel 1820 e che riprendeva
i principi di funzionamento del CILINDRO DI LEIBNITZ.
Un notevole successo commerciale fu poi ottenuto dalla calcolatrice meccanica MILLIONAIRE
(1892), dello svizzero Otto Steiger, in grado di svolgere moltiplicazioni e divisioni in modo diretto
e non più come successione di somme o sottrazioni.
LA MACCHINA ANALITICA
Nel 1833 l’inglese Charles Babbage progettò la cosiddetta Macchina Analitica che era un sistema in
grado di suddividere un calcolo in elementi più semplici fino ad ottenere il risultato.
Tale macchina prevedeva un “governo”, un “organo
aritmetico”, una “memoria” e degli “organi di entrata
e uscita” con i quali introdurre i dati su cui operare, ricevere i risultati e introdurre anche le istruzioni
relative alle operazioni che la macchina avrebbe
dovuto eseguire.
Come vedremo tale macchina era concettualmente
molto vicina ai moderni elaboratori, ma non poté essere realizzata per i limiti imposti dalla tecnologia di
quei tempi. Il suo schema generale era comunque
talmente vicino a quello dei moderni computer, che la
riscoperta degli scritti di Babbage ha fatto invalidare
alcuni brevetti dell’IBM.
La mancata realizzazione pratica del progetto di
Babbage non impedì alla contessa Lady Ada di
Lovelace, sua amica e figlia del poeta Byron, di
studiare la macchina e proporre anche dei programmi per il suo funzionamento. Così la contessa,
morta nel 1851 a soli 36 anni come il padre, può essere considerata la prima “programmatrice” della
storia dell’informatica; per onorarla il suo nome è stato assegnato ad un moderno linguaggio di
programmazione (linguaggio ADA).
LA MACCHINA A SCHEDE PERFORATE
Nel 1889 negli Stati Uniti Herman Hollerith realizzò la MACCHINA PER STATISTICHE A
SCHEDE PERFORATE che era un congegno capace di svolgere elaborazioni che andavano al di là
dei semplici calcoli e che fu utilizzata per elaborare i dati del censimento del 1890 negli USA. I dati
venivano memorizzati mediante fori su schede di cartoncino delle dimensioni della banconota da un
dollaro (in modo da usare per il trasporto le stesse cassette utilizzate appunto per le banconote) e
venivano elaborati elettricamente dalla macchina mediante degli spazzolini che erano in grado di
rilevare la presenza dei fori e convertirli nei corrispondenti valori numerici.
La macchina di Hollerith ebbe un grande successo in quanto portò ad un notevole abbassamento dei
tempi necessari ad avere i risultati del censimento rispetto ai precedenti elaborati manualmente. Ne
furono quindi costruiti altri esemplari, impiegati anche per compiti di tipo diverso e chiamati
MACCHINE MECCANOGRAFICHE; vennero inoltre realizzate macchine per la perforazione
automatica delle schede, le cosiddette PERFORATRICI DI SCHEDE.
Le
per
che
per
schede
erano
primi
merito
francese
le
perforate
nate ai
dell’800
del
Jacquard
utilizzò
comandare i telai di tessitura secondo un metodo tuttora utilizzato e assunsero, con l’avvento delle
macchine meccanografiche, una grande importanza. Nell’ambito dell’informatica il loro uso come
supporti di ingresso e uscita per i dati si è protratto fino ai primi anni ‘80.
Hollerith può dunque essere considerato l’iniziatore del calcolo meccanografico e tra l’altro, nel
1895, fondò una società che nel 1924 assumerà il nome di “Industrial Business Machines” (IBM) e
successivamente diverrà la più importante società di informatica e una delle più potenti
multinazionali del mondo.
I CALCOLATORI ELETTROMECCANICI DEGLI ANNI ‘40
Per avere altri progressi significativi nella storia del calcolo automatico occorre saltare agli anni
intorno alla seconda guerra mondiale. Nel 1936 l’ingegnere tedesco Konrad Zuse realizzò con
mezzi rudimentali nel salotto di casa lo Z1 il primo calcolatore meccanico della storia che già
prevedeva la rappresentazione binaria dei numeri e il concetto di programma. Zuse continuò poi nei
suoi studi realizzando altri due calcolatori stavolta elettromeccanici: Z2 nel ‘39 e Z3 nel ‘41.
Il calcolatore Z3 in particolare aveva le seguenti
caratteristiche: sistema numerico binario, memoria da 1400 bit, comandi forniti con nastro
perforato, risultati visualizzati tramite una serie di lampade, velocità di 3 secondi per
moltiplicazioni e divisioni.
Questi calcolatori erano basati sui relè che sono interruttori comandati da un elettromagnete in
grado di aprire o chiudere in pochi centesimi di secondo il circuito in cui sono inseriti; al circuito
chiuso (passaggio di corrente) veniva associato il valore 1, al circuito aperto (assenza di corrente)
veniva associato il valore 0. In tale modo questi circuiti erano in grado di rappresentare ognuno un
BIT (BIT è l’acronimo di BInary digiT, indica la più piccola unità di informazione trattabile
singolarmente da un elaboratore e può valere 0 oppure 1). Tale principio di rappresentazione dei bit
rimase valido anche negli elaboratori successivi (ed è tuttora valido) con i relè sostituiti da
dispositivi elettronici: prima le valvole e poi i transistor. Fu dunque negli anni ’40 che venne
definitivamente abbandonata la base di calcolo decimale in favore di quella binaria per quanto
riguarda i computer; essi da allora usano internamente l’alfabeto binario costituito dai soli simboli 0
e 1.
I fondamenti della logica binaria (e quindi della logica di funzionamento degli elaboratori) si
devono al matematico inglese George Boole che li elaborò alla fine del secolo scorso.
Sempre negli anni ‘40, negli USA, venivano portati
avanti studi analoghi a quelli di Zuse e, nel 1944, fu realizzato dal professor Howard Aiken dell’università di Harward il calcolatore MARK1 soprannominato BESSIE, lungo 18 metri ed alto
quasi 3, basato anch’esso sui relè ed in grado di sommare due numeri di 23 cifre in 3/10 di secondo
e moltiplicarli in 6 secondi.
Nel 1946 lo scienziato Ungherese emigrato negli USA Jhon Von Neumann propose, insieme a A.
W. Burks e H. H. Goldstine in un celebre studio dal titolo “Preliminar discussion of the logical
design of an electronic computing instrument”, lo schema logico di una nuova macchina (la
MACCHINA DI VON NEUMANN) riconosciuta da tutti il vero prototipo dei moderni elaboratori
elettronici.
Da quel momento iniziò la vera e propria storia dei computer la cui evoluzione viene spesso
suddivisa in GENERAZIONI.
LE GENERAZIONI DI ELABORATORI ELETTRONICI
PRIMA GENERAZIONE (1946 - 1956)
Nel 1946 presso l’Università della Pennsylvania fu realizzato il primo elaboratore elettronico della
storia, l’ENIAC (Electronical Numerical Integrator and Calculator) commissionato qualche anno
prima dal ministero della difesa degli USA per scopi bellici. Alla base del suo funzionamento erano
le valvole termoioniche che sostituivano i relè dei calcolatori precedenti ma erano molto più veloci
nell’aprire e chiudere i circuiti nei quali erano inserite (tempi dell’ordine di qualche milionesimo di
secondo per commutare un circuito).
Per questo l’ENIAC era molto più veloce del MARK1:
svolgeva 300 moltiplicazioni al secondo e impiegava un’ora a svolgere il lavoro che l’altro svolgeva
in una settimana. Per la sua costruzione furono usate 18.000 valvole, aveva una memoria di 20
parole, era lungo 30 metri, pesava 30 tonnellate, emanava una grande quantità di calore e si
guastava in media una volta al giorno. L’ingresso e l’uscita dei dati avvenivano tramite un lettore ed
un perforatore di schede mentre le “istruzioni” sulle operazioni da svolgere venivano fornite alla
macchina tramite connessioni meccaniche effettuate manualmente su dei pannelli. L’ENIAC
continuò a funzionare fino al 1955.
Molto importante fu poi la realizzazione dell’EDSAC (Electronic Delayed Storage Automatic
Computer) presso l’Università di Cambridge nel 1949 e dell’EDVAC (Electronic Discrete Variable
Automatic Computer) negli USA nel 1950, in quanto essi furono i primi elaboratori progettati
seguendo lo schema logico della MACCHINA DI VON NEUMANN ed anche i primi che
prevedevano la memorizzazione del programma in memoria centrale, come proposto ancora da Von
Neumann. L’EDSAC e l’EDVAC possono quindi essere considerati i veri capostipite dei moderni
elaboratori elettronici.
Dopo questi prototipi, frutto di ricerche e studi isolati, nel 1951 Eckert e Mauchly, che già avevano
costruito l’ENIAC, realizzarono l’UNIVAC I, il primo calcolatore concepito per scopi commerciali.
Iniziò in quel momento lo sviluppo dell’industria informatica con la produzione di macchine
sempre più potenti ed affidabili, i cosiddetti MAINFRAME (ad esempio l’IBM 704 del 1955)
destinati ad essere acquistati dapprima da centri di ricerca, università istituzioni statali e poi anche
aziende private di grosse dimensioni.
Tutti i calcolatori della prima generazione avevano però in comune un grande problema che
riguardava la loro programmazione: le istruzioni che costituivano i programmi dovevano essere
scritte con il cosiddetto LINGUAGGIO MACCHINA cioè in alfabeto binario e quindi solo pochi
specialisti erano in grado di utilizzarli correttamente.
SECONDA GENERAZIONE (1957 - 1963)
La seconda generazione è caratterizzata principalmente dalla nascita dei LINGUAGGI di
programmazione e dall’avvento dei transistor.
I LINGUAGGI di programmazione furono creati con lo scopo di permettere una comunicazione tra
uomo e macchina più agevole di quella possibile fino a quel momento con il linguaggio macchina. I
primi linguaggi ad essere definiti ed utilizzati furono il FORTRAN nel 1957 per le applicazioni
scientifiche e il COBOL nel 1960 per quelle gestionali. Essi sono tuttora utilizzati ma sono stati
affiancati da moltissimi altri linguaggi nati per gli scopi più diversi.
Il transistor, realizzato nel 1954 nei laboratori della Texas Instruments, è un dispositivo
semiconduttore costituito da silicio e germanio in grado di chiudere o aprire un circuito in qualche
decimo di milionesimo di secondo ed è molto più piccolo, economico ed affidabile della valvola.
Grazie all’adozione dei transistor in sostituzione delle valvole i calcolatori aumentarono di potenza
ed affidabilità e poterono essere impiegati (tra l’altro) per i calcoli relativi all’invio dei primi
satelliti nello spazio.
In questo periodo anche in Italia l’informatica muoveva i suoi primi passi: è del 1961 infatti
l’inaugurazione all’Università di Pisa della CEP (Calcolatrice Elettronica Pisana) una macchina
“ibrida”, cioè con circuiti realizzati sia con valvole sia con transistor, il cui progetto era iniziato nel
1954 e che era costata l’equivalente di circa 3.000 miliardi di oggi. Era una macchina molto valida
dal punto di vista della logica di realizzazione e poteva svolgere 70.000 addizioni o 7.000
moltiplicazioni al secondo. Essa fu oggetto di ammirazione in tutta Europa e fu importante anche
per motivi non prettamente scientifici in quanto rappresentò un segno della volontà del nostro paese
di risollevarsi in anni in cui erano ancora presenti le cicatrici della guerra. Per la città e l’Università
di Pisa la CEP fu poi fondamentale: per decenni l’idea dell’informatica in Italia è stata infatti
associata alla città toscana; essa fu anche uno dei pochi luoghi dove si svolgessero ricerche teoriche
sulla materia e, nel 1969, vi fu anche attivato il primo corso di laurea specifico.
Alla realizzazione della CEP aveva partecipato anche l’azienda italiana OLIVETTI, grazie
all’intuito dell’ingegnere Adriano OLIVETTI che aveva compreso l’importanza strategica di questo
settore; egli stipulò una convenzione con l’Università di Pisa e fondò la Divisione Elettronica della
sua azienda. Alla sua morte, nel 1960, purtroppo nessuno colse l’importanza di ciò che era stato
realizzato e dopo pochi anni la Divisione Elettronica venne venduta alla Honeywell, mentre
l’OLIVETTI sceglieva di dedicarsi quasi interamente alle macchine da scrivere ed alle calcolatrici
da tavolo .......!
Da allora l’OLIVETTI ed in generale il nostro paese, non hanno più recitato, se non saltuariamente
(ad esempio con il Personal Computer M24 che a metà degli anni ’80 fu il più venduto in Europa),
un ruolo importante nel campo della ricerca e della realizzazione dei sistemi di elaborazione.
TERZA GENERAZIONE (1964 - 1974)
Come abbiamo detto gli elaboratori della seconda generazione furono essenziali per l’invio in orbita
dei primi satelliti; i grandi viaggi nello spazio e lo sbarco sulla Luna non sarebbero però stati
possibili senza l’aiuto di calcolatori ancora più potenti.
Nel 1964 l’IBM lanciò sul mercato gli elaboratori della serie /360 con lo slogan “The third
generation begins” coniando quindi per l’occasione il termine di “generazione” riferito ai computer.
Tale serie di macchine costituì davvero un salto qualitativo in quanto in essa furono usati per la
prima volta i circuiti integrati.
Un circuito integrato era costituito da un cristallo di
silicio della grandezza di pochi millimetri quadrati (il
“chip”) nel quale venivano stampate direttamente
oppure solo saldate decine di componenti elettroniche
elementari. Con tali dispositivi si ottenne una notevole
diminuzione del consumo di energia e delle
dimensioni dei componenti dei computer e un
incremento dell’affidabilità e delle prestazioni (si
scendeva a qualche miliardesimo di secondo per lo
svolgimento di operazioni elementari).
La terza generazione fu anche caratterizzata dall’uso
sempre maggiore di memorie ausiliarie di tipo disco
magnetico che permettevano un veloce reperimento
delle informazioni in esse immagazzinate e quindi rendevano praticabile e conveniente la gestione
di archivi tramite computer. Questo allargò il campo di applicazione degli elaboratori che iniziarono
ad essere usati anche per problemi di tipo gestionale e non più solo scientifico.
Altri elementi importanti furono da un lato l’avvento dei terminali, con i quali si aveva la
possibilità di utilizzare l’elaboratore anche da distanze considerevoli dal luogo dove esso era
installato, dall’altro la nascita di molti altri linguaggi di programmazione tra i quali il BASIC
(1965) che ha avuto molto successo grazie alla sua facilità d’uso.
QUARTA E QUINTA GENERAZIONE (1975 - anni ‘90)
Nel 1971 il fisico italiano Federico Faggin alla testa di un gruppo di progettazione della Intel,
realizzò il primo microprocessore, chiamato 4004, basandosi su studi teorici di ingegneri
americani.
Le successive evoluzioni furono i microprocessori Intel 8008, 8080, 8088 (in grado di svolgere più
di 300.000 operazioni al secondo).
Tali dispositivi contenevano in un unico chip un’intera unità centrale di
elaborazione di un computer costituita da molti circuiti integrati. Le dimensioni delle macchine
poterono quindi ulteriormente diminuire mentre la velocità e la potenza aumentavano ancora.
Nell’aprile del 1976 due studenti americani, Steve Jobs e Stephen Wonziak, costruirono, nel garage
di casa a Cupertino in California, il primo Personal Computer (P.C.) e fondarono la APPLE. Due
anni dopo con il modello APPLE II iniziò la diffusione di massa di queste macchine.
Nell’agosto del 1981 anche l’IBM immise sul mercato il suo Personal Computer, “pilotato” dal
microprocessore Intel 8088, imprimendo una svolta molto importante nel mercato dell’informatica.
P.C. Apple
Alla base di questi elaboratori di dimensioni ridotte e di prezzo abbordabile c’erano e ci sono anche
oggi microprocessori sempre più perfezionati che vengono utilizzati anche come componenti per la
realizzazione dei moderni MAINFRAME dal costo di molti miliardi e dei MINI computer che
stanno a metà strada per prestazioni e prezzo tra i personal ed i grandi sistemi.
In questi ultimi venti anni si è poi assistito al grande sviluppo della telematica e cioè delle reti di
elaboratori che permettono la trasmissione e l’elaborazione a distanza di dati e informazioni ed il
collegamento tra utilizzatori di computer di tutte le parti del Mondo (si pensi al grande successo
attuale di INTERNET).
Rimane da citare la “quinta generazione” degli elaboratori elettronici della quale fanno parte
macchine che dovrebbero avere la capacità di trattare l’informazione organizzata secondo le sue
proprie caratteristiche, in maniera simile a quanto avviene nel cervello umano. Questo implica la
capacità di elaborare direttamente informazioni come simboli, parole, immagini, voce umana e
soprattutto di comprendere il significato delle stesse e i problemi da risolvere. Tali aspetti
costituiscono i campi di azione e di studio della cosiddetta “informatica sensoriale” e della
“intelligenza artificiale” ed hanno ricevuto una grande attenzione a partire soprattutto dal 1981
quando il governo giapponese annunciò un progetto per la realizzazione degli “elaboratori della
quinta generazione” che dovrebbero avere, tra le altre, le caratteristiche ora illustrate.
Occorre dire che la fase di realizzazione di tali macchine è stata meno veloce rispetto alle
aspettative, sia per alcuni limiti della tecnologia, sia soprattutto per la difficoltà di comprendere a
fondo e simulare artificialmente (anche solo in parte) i meccanismi della mente umana.
In alcuni settori comunque ci sono già risultati promettenti ed applicazioni concrete come nel
campo dei riconoscitori e sintetizzatori vocali, in quello del controllo numerico delle macchine
utensili o ancora in quello dei “sistemi esperti”.
Questi ultimi sono sistemi che memorizzano una grossa mole di informazioni su un certo
argomento (ad esempio in campo medico) in modo da formare la cosiddetta “base delle
conoscenze”; essi sono poi capaci grazie ad un insieme di regole prestabilite, il cosiddetto “motore
inferenziale”, di svolgere elaborazioni logiche simili alle deduzioni umane per fornire risposte a
determinati quesiti e contemporaneamente arricchire la propria base delle conoscenze.
Occorre infine notare che con gli elaboratori della quinta generazione si dovrebbe superare il
concetto di “architettura di Von Neumann”, che come vedremo è rimasto valido fino ad oggi, in
modo da rendere possibile un forte parallelismo nel trattamento delle informazioni e da rendere
praticabile la “programmazione funzionale”. Questa è basata sul fatto che le elaborazioni da
svolgere sono viste solo come applicazioni di funzioni e ignorano la reale rappresentazione dei dati
nella memoria dell’elaboratore contrariamente a quanto avviene con la programmazione “classica”.
Concludiamo con una tabella riassuntiva delle caratteristiche delle cinque generazioni degli
elaboratori elettronici:
Generazione
Prima
Seconda
Terza
Quarta
Quinta
Anni
Elaboratori
1946-56
1957-63
1964-74
1975-oggi
1990-oggi
ENIAC
EDSAC
UNIVAC1
IBM 704
IBM 7090
CDC-6600
IBM 360,370
PDP-11
HONEYWELL 2.000
CRAY XMP
IBM 308
AMDAHL 580
P.C. IBM e APPLE
Tecnologia
Valvole elettroniche.
Tamburi magnetici
Transistor.
Memorie a nuclei
magnetici.
Memorie a semiconduttori.
Dischi magnetici.
Minielaboratori.
LSI
Software
Programma
memorizzato.
Codice macchina.
Linguaggi ad alto livello.
COBOL
ALGOL
FORTRAN
Prestazioni
Memorie di 2 Kb.
10.000 istruz. al sec.
Memorie di 32 Kb.
200.000 istruz. al sec.
PASCAL
Programm. strutturata.
Timesharing.
Computer Graphics.
Basi di dati.
Memorie di 2 Mb.
5 megaistruz. al sec.
Sistemi a elaborazione
distribuita.
VLSI
Microprocessori
Microelaboratori (P.C.).
ADA
Sviluppo estensivo della
elaborazione distribuita.
Fusione di tecnologie per
l’informatica e la
telecomunicazione.
Architetture parallele.
Componenti ottiche.
Scala di integrazione ultra
grande.
Sistemi esperti.
Linguaggi concorrenti.
Programm. funzionale.
Informatica sensoriale.
Memorie da 4 Mb a 4Gb. Da 1 gigaistruz. al sec. a 1
30 megaistruz. al sec.
tetraistruz. al sec.
e con una comparazione tra l’ENIAC ed un moderno (1996) P.C. per dare un’idea, sia pure
sommaria, dell’evoluzione tecnologica che si è avuta nella realizzazione dei sistemi di elaborazione.
ENIAC
Costo
Memoria centrale
Alcuni miliardi
Poche decine di caratteri
PERSONAL COMPUTER
2 - 10 milioni
8 - 32 milioni di caratteri
Dimensioni
Peso
Affidabilità
Potenza di calcolo
30 metri di lunghezza, 180 mq
30 tonnellate
Un guasto al giorno
300 moltiplicazioni al secondo
Alcune decine di cm
Pochi kg
Quasi assoluta
Alcuni milioni di operazioni al secondo