Un po` di storia - Roberto Borchia

Transcript

Un po` di storia - Roberto Borchia
Teoria dell’informazione
1
Unità didattica 1
Un po’ di storia
Nel 1943, Thomas Watson, un dirigente IBM affermava: “Credo che il mercato mondiale possa aver
bisogno al massimo di 5 computer”. Nel 1977, Ken Olsen, presidente della DEC diceva: “Non c’è
nessun motivo per cui una persona debba avere un computer a casa”. Vediamo brevemente la storia
che ha smentito in pieno le affermazione dei due personaggi citati, storia che inizia molti anni fa…
Secondo alcuni storici, l’evoluzione delle macchine da calcolo ha avuto inizio quasi 4000 anni fa, in
Cina, quando fu inventato l’abaco. Altri ritengono invece che l’abaco abbia avuto origine presso i
babilonesi; in ogni caso sono pervenuti fino ai nostri giorni esemplari di questa “macchina” che
risalgono a Egiziani, Romani, Maya…
Figura 1 - Abaco romano
La posizione di alcune
sferette su un insieme di
barre dava origine alla
rappresentazione di un
numero.
In realtà la necessità di
rappresentare
ed
utilizzare informazioni
numeriche ha origini
ancora più antiche: i
primi allevatori avevano
la necessità di contare il
numero dei capi di
bestiame e per fare
questo
svilupparono
primitivi
sistemi
di
numerazione, inventando
anche
rappresentazioni
grafiche ancora oggi
visibili su graffiti.
Successivamente nacque la necessità di misurare grandezze quali lunghezze o altezze di edifici (per
esempio le piramidi), e questo spinse l’uomo a migliorare quei sistemi di numerazione, imparando
anche a fare operazioni…
Poi arrivò l’abaco, primo vero strumento utilizzato, come detto, per rappresentare numeri.
Il più antico calcolatore a ingranaggi a noi giunto è la Macchina di
Anticitera dell’87 a.C. (dal nome di una isoletta nei pressi di
Creta). Si tratta di un planetario, mosso da ingranaggi a ruote
dentate, utilizzato per calcolare il sorgere del sole, le fasi lunari, i
movimenti dei pianeti, gli equinozi, i mesi e i giorni della
settimana. Con alcune variazioni avrebbe potuto funzionare anche
come un calcolatore matematico. Infatti, la sua logica di
funzionamento è la stessa dei calcolatori meccanici che le
succedettero nei secoli a venire.
Figura 2 - Macchina di
Anticitera
Figura 3 - Regolo di Nepero
Nel 1650 il matematico inglese E. Gunter inventò il
regolo calcolatore, per calcolare potenze, radici
quadrate e cubiche, utilizzato fino a pochi decenni
fa.
Arriviamo allo strumento ideato da Napier nei
primi anni del 1600 per effettuare
moltiplicazioni e divisioni e per calcolare e
costruire le tavole dei logaritmi; questa
macchina era costituita da bastoncini (o
regoli) che permettevano di moltiplicare o
dividere un numero qualunque per un numero
di una sola cifra, senza ricorrere alla Tavola
Pitagorica. I regoli erano 11, uno fisso e gli
altri mobili.
Figura 4 - Regolo
Fimo a questo punto però le nostre macchine non sono ancora in grado di effettuare operazioni, ma
solo di rappresentarle in un certo modo.
Nel XVII secolo arrivano invece i primi sistemi meccanici che consentono l’esecuzione automatica
delle operazioni.
La prima macchina in grado di
eseguire in modo automatico delle
addizioni è stata la Pascalina, ideata
dal filosofo e matematico francese
Blaise
Pascal
nel
1642.
Figura 5 - Blaise Pascal
Figura 6 - La Pascalina
Figura 7 - Leibniz
Questa macchina era costituita da una serie di
ruote dentate (rappresentanti unità, decine,
centinaia…) collegate mediante opportuni
ingranaggi meccanici; la rotazione di queste
ruote consentiva di effettuare addizioni e
sottrazioni, tenendo conto dei riporti e dei
prestiti.
Teoria dell’informazione
3
Alcuni anni più tardi, nel 1671, il matematico tedesco Gottfried
Leibniz ideò una macchina in grado di effettuare in modo
automatico le quattro operazioni, macchina che però difettava in
precisione. Lo stesso Leibniz ideò il sistema binario, cioè un
sistema per rappresentare i numeri utilizzando solo le cifre 0 e 1 e intuì che tale sistema poteva essere
utilizzato dalle macchine di calcolo automatiche.
Nel 1780 Benjamin Franklin scoprì l’elettricità.
All’inizio del 1800 Joseph Marie Jacquard inventò e diffuse un telaio
di tessitura automatizzato, in grado di leggere le “istruzioni” per la
tessitura da opportune “schede perforate”, che inizialmente erano
delle schede di cartone con dei fori.
La prima macchina di calcolo
prodotta in serie (1500 esemplari)
fu l’ ”aritmometro” (siamo nel
1820).
Figura 8 - Telaio di
Jacquard
Nel 1822, il matematico inglese Charles Babbage (1792-1871)
progettò la sua macchina differenziale, capace di effettuare le
operazioni matematiche di base. Il suo prototipo doveva essere
movimentato da un motore a vapore. Successivamente si applicò
allo sviluppo della “macchina analitica” (1833), in grado di leggere
le istruzioni da schede perforate e di propagare i riporti in modo
automatico (in pratica i risultati delle operazioni potevano essere
utilizzati come operandi per le istruzioni successive).
Figura 9 - Babbage
Figura 10 - Particolare di una ricostruzione
della macchina di Babbage
Figura 11 - La macchina di
Babbage
Nel 1823 Berzelius, chimico svedese, isolò il Silicio:
vedremo a breve come questo elemento rivoluzionerà il
mondo degli elaboratori.
Nel 1847 Charles Boole elaborò i concetti di Leibniz sulla
logica binaria; la sua teoria è ancora oggi alla base del
funzionamento dei moderni calcolatori.
Figura 12 - La tabulatrice di
Hollerith
Nel 1880, l’americano Herman Hollerith ideò la
“macchina tabulatrice”, utilizzata dal governo americano
per leggere da schede perforate i dati del censimento:
visto il successo ottenuto (diminuzione drastica dei tempi
di acquisizione ed elaborazione dei dati, maggiore
precisione…) questa
macchina sancì l’inizio della produzione industriale e della diffusione delle macchine di calcolo
automatiche.
Le schede perforate di Hollerith avevano le dimensioni
delle banconote da un dollaro, formato che consentiva di
utilizzare 80 colonne di fori e che vene utilizzato fino a
pochi decenni fa.
Figura 13 - Scheda perforata
Nei primi anni del 1900 si passò da macchine puramente meccaniche a macchine elettromeccaniche:
queste utilizzavano come elemento base il relè.
APPROFONDIMENTO: il relè.
Il relè, inventato da Joseph Henry nel 1835, è essenzialmente
costituito da una bobina e da una barra metallica. Quando la bobina
viene percorsa da corrente elettrica, il campo magnetico che si viene
a creare, attrae la barretta; quando non scorre corrente ola barretta
viene rilasciata. Il movimento della barretta si ripercuote sugli
elementi meccanici ad essa connessi. I tempi medi di attrazionerilascio della barretta sono dell’ordine di qualche centesimo di
secondo; si parla inoltre di relè aperto o chiuso…
Delle schede perforate aprono o chiudono i relè (un foro mette in
contatto tra di loro uno “spazzolino” di lettura con il relativo
tamburo: il contatto elettrico che ne deriva fa scattare il relè,
mettendo in movimento l’elemento meccanico ad esso connesso.
Figura 14 - Relè
Queste nuove macchine, dette “elettro-meccaniche” o “meccano-grafiche” permettevano l’esecuzione
delle operazioni fondamentali e anche una rappresentazione dei risultati non solo in forma numerica,
ma anche alfanumerica.
Nel 1924 nasce la International Business Machines (IBM), sulla scia della Hollerith’s Tabulating
Machines Company.
Figura 16 - Logo IBM
Figura 15 - Primo
Logo IBM
Teoria dell’informazione
5
Negli anni successivi si assiste alla vera e propria commercializzazione delle macchine a schede
perforate e ad un enorme sforzo da parte degli scienziati per aumentarne l’efficienza, soprattutto in
termini di velocità di calcolo.
I calcolatori elettromeccanici
Siamo ormai vicini ad uno dei periodi più bui del secolo passato (la Seconda Guerra Mondiale) e
proprio grazie a necessità belliche il settore delle macchine da calcolo subisce repentini ed incisivi
cambiamenti.
Nel 1938 un ingegnere
tedesco, Konrad Zuse, realizza
il
primo
calcolatore
elettromeccanico,
lo
Z1,
seguito subito dallo Z2 (2600
relè) e dallo Z3 (che era in
grado di eseguire le 4
operazioni
e
le
radici
quadrate), utilizzato dai Nazisti
fino al termine del conflitto.
Figura 17 - Zuse
Figura 19 - Mark I
Figura 18 - Z1
Parallelamente a queste invenzioni
europee, negli Stati Uniti viene
realizzato, nel 1944, MARK I, il primo
calcolatore elettromeccanico americano;
il suo ideatore fu un ricercatore
dell’Università di Harvard, Howard
Aiken.
Mark I, oltre alle funzionalità di Z3, era in grado di eseguire calcoli trigonometrici, esponenziali e
logaritmici.
Mark I poteva leggere i dati e le istruzioni per manipolarli sia da schede perforate che da serie di
interruttori e forniva i risultati ancora sotto forma di fori su schede o di tabulati stampati da dispositivi
simili a macchine da scrivere. Mark I era costituito da più di 3000 relè collegati da 800 Km di fili
elettrici; le sue dimensioni sono quelle di una grande stanza, il suo peso è di 5 tonnellate ed era in
grado di sommare due numeri di 23 cifre in 3 decimi di secondo e moltiplicarli in 6 secondi; il suo
costo è pari a circa 400000 dollari…
La prima generazione degli elaboratori elettronici
Due anni più tardi, nel 1946, presso l’Università della Pensylvania, viene realizzato l’ENIAC (Electric
Numerical Integrator And Computer), il primo calcolatore a valvole, che segna l’inizio di una nuova
era per il calcolo automatico.
John P. Eckert e John Mauchly, i realizzatori di ENIAC, utilizzarono, per memorizzare le
informazioni, al posto dei relè, dei tubi a vuoto o valvole elettroniche.
Approfondimento: la valvola
La valvola elettronica venne inventata da Ambrose Flemming nel 1905 e perfezionata da Lee De
Forest (ideatore del Triodo, valvola amplificatrice) è essenzialmente costituita da un bulbo di
vetro al cui interno viene creato il vuoto, contenente particolari circuiti elettrici; a seconda della
tensione applicata, la valvola permette o non permette il passaggio degli impulsi elettrici, con
conseguente corrispondenza con i due valori binari 0 e 1 (valvola spenta o accesa).
Figura 20 - Valvole
Con l’utilizzo delle valvole elettroniche vengono
eliminati tutti gli organi meccanici, consentendo
così velocità superiori: ENIAC è in grado di
effettuare 300 moltiplicazioni al secondo. Le
dimensioni di ENIAC sono titaniche: occupa una
superficie di 180 metri quadri, pesa 13 tonnellate,
utilizza 18000 valvole e gli impulsi elettrici che
aprono e chiudono i suoi tubi hanno una
frequenza di 100000 Hz (vengono cioè generati
100000 impulsi al secondo). Un grosso limite di
ENIAC è costituito dai tempi di “preparazione”:
prima di poter eseguire un determinato
“programma”, una squadra di tecnici doveva
collegare manualmente i suoi circuiti elettrici,
lavoro che poteva durare anche alcuni giorni.
Figura 21 - Eniac
ENIAC funzionò fino al 1955; ora è esposto a
Washington, allo Smithsonian Institute.
Negli stessi anni Antanassoff e Berry realizzano
l’ABC (Antanassoff Berry Computer), che contende
ad ENIAC il primato di primo calcolatore.
Figura 22 - Eniac
Teoria dell’informazione
7
Altre tappe fondamentali della storia del calcolo
automatico sono stati l’EDSAC e l’EDVAC;
l’EDSAC (Electronic Delay Storage Automatic
Calculator) fu realizzato nel 1949 a Cambridge, in
Inghilterra, l’EDVAC (Electronic Discrete Variable
Automatic Computer) venne realizzato nel 1950 a
Princeton (USA) e viene considerato come il vero e
proprio predecessore dei moderni computer.
Uno scienziato matematico ungherese, John Von
Neumann, elaborò nell’immediato dopoguerra la
teoria che ancora oggi è alla base dei moderni
calcolatori.
Figura 23 - EDVAC
Con Von Neumann, il calcolatore diventa
“elaboratore”, cioè sulla base dei risultati delle
operazioni intermedie può saltare direttamente ad una determinata
istruzione: in questo modo l’elaboratore con il suo “programma” sono
in grado di risolvere diversi problemi, cioè l’elaboratore non esegue
solamente operazioni aritmetiche, ma anche logiche, sulla base delle
quali prende decisioni (basandosi comunque su un programma scritto
dall’uomo).
In altre parole, se oprima era richiesto l’intervento uman per collegare
in modo particolare i circuiti dei calcolatori, tali da risolvere
determinati problemi, ora tutto ciò viene eseguito automaticamente
Figura 24
Von Neumann
dalla macchina, sulla base di confronti tra dati: grazie
a questa fondamentale innovazione, la velocità degli
elaboratori ha subito un eccezionale incremento.
Dopo questa lunga fase teorica, culminata con la
realizzazione di diversi prototipi di elaboratori
elettronici (oltre a quelli già visti – EDSAC ed
EDVAC – aggiungiamo MADM – Manchester
Automatic Digital Machine – e UNIVAC –UNIversal
Figura 25 - Von Neumann
Automatic Computer), si passa alla fase di
produzione su scala industriale e alla loro diffusione.
In America, IBM inizia a produrre e distribuire
diversi elaboratori: nel 1952 nasce SISTEMA 701, nel 1953 il 650, nel 1954 il 704 (capace di eseguire
circa 50000 addizioni al secondo).
In Europa abbiamo in quegli anni la Siemens (Germania) che produce il 2002 e la Bull in Francia che
produce il Gamma ET.
Gli elaboratori della prima generazione (ma anche quelli dei giorni nostri), in definitiva, sono in grado
di ricevere delle informazioni, di elaborarle e di produrre dei risultati.
I dati e le istruzioni che operano su di essi, sono letti da schede perforate e trasferiti nella memoria
centrale dell’elaboratore. I dati vengono poi processati dall’Unità Aritmetico Logica (ALU), che
esegue le operazioni indicate dalle istruzioni (dal programma quindi); i risultati sono restituiti
mediante stampati o schede perforate.
Tutte queste operazioni sono guidate dall’Unità di Controllo che legge le istruzioni, le interpreta,
coordina la loro esecuzione e il flusso dei dati in modo automatico (precedentemente, negli elaboratori
meccanici, queste fasi eseguite manualmente dagli operatori).
Come già detto, le informazioni elaborate e memorizzate da queste macchine, venivano (e vengono)
rappresentate mediante il sistema di numerazione binario, sistema che utilizza due sole cifre (lo zero e
l’uno) per codificare le informazioni. I componenti fondamentali degli elaboratori vengono fatti
lavorare in due loro stati, cui vengono associate le 2 cifre del sistema binario; le informazioni
manipolate dagli elaboratori sono perciò segnali elettrici, con due soli valori, cui corrispondono i due
stati dei dispositivi elettrici (acceso e spento).
I vantaggi dell’utilizzare segnali binari sono tutti nella semplicità con cui i componenti distinguono i
due livelli (anziché 10 se utilizzassimo il sistema decimale) ed eseguono le operazioni elementari
(anche se oggi si utilizza la logica “fuzzy”, dove i livelli non sono più solo 2, ma questa è un’altra
storia…).
Le cifre del sistema binario vengono dette BIT (da Binary digiT, cifra binaria in inglese).
Le regole con le quali i Bit vengono elaborati sono essenzialmente le leggi dell’algebra di Boole,
elaborate dal matematico Inglese Boole nel 1800; le operazioni elementari (somma, sottrazione,
moltiplicazione e divisione) alla fine vengono tutte ricondotte a particolari operazioni di somma, per
cui ai componenti che costituiscono i circuiti di calcolo di un elaboratore viene richiesto di effettuare
nient’altro che… somme tra bit.
Gli elaboratori della prima generazione memorizzarono le informazioni su particolari dispositivi
magnetici – tamburi rotanti ad alta velocità; diverse testine magnetiche “scrivono” e “leggono” dati e
istruzioni sulla superficie dei tamburi, suddivisa in tanti punti magnetizzati, impiegando per queste
operazioni alcuni millisecondi.
Verso la metà degli anni ’50 si iniziano ad utilizzare le memorie a nuclei di ferrite, di dimensioni e
tempi di lettura/scrittura inferiori rispetto ai tamburi magnetici.
I nuclei di ferrite sono anelli di materiale magnetico, di pochi decimi
di millimetro di diametro, attraversati da due conduttori elettrici
disposti perpendicolarmente tra di loro. In base ai segnali elettrici
fatti passare nei conduttori, ogni anello può venire magnetizzato in
due modi differenti e memorizzare così un uno oppure uno zero.
La presenza di un terzo conduttore che attraversa gli anelli permette
la lettura dei dati memorizzati, con tempi di accesso di pochi
millisecondi.
Come già visto il componente fondamentale dei circuiti preposti
all’elaborazione delle informazioni (l’Unità centrale) è il tubo a
vuoto o valvola elettronica.
I dispositivi di output sono ancora costituiti da perforatori di schede o
da dispositivi di stampa, che convertono i bit in forma intelligibile
facilmente dagli operatori umani.
Figura 26 - Anelli di
ferrite
Sempre in questi anni fanno la loro comparsa
dispositivi ausiliari di memoria, cioè dispositivi esterni
all’elaboratore, in grado di memorizzare grandi
quantità di dati. Questi dispositivi sono nastri e dischi
magnetici. I primi sono dispositivi ad accesso
Figura 27 - Nastri magnetici
Teoria dell’informazione
9
sequenziale: per reperire una particolare informazione è necessario scorrere tutto il nastro fino al
punto cercato; i dischi invece sono dispositivi ad accesso diretto, che consentono di reperire
istantaneamente le informazioni cercate.
I dischi magnetici vennero introdotti nel 1956 nel Sistema 305 Ramac (Random Access Memory
Accounting Computer), la cui memoria è costituita da una pila di dischi rotanti, sui quali vengono
memorizzate, su piste concentriche, le informazioni.
Nei primi anni 50 si assiste ad una crescita esponenziale della richiesta e della produzione di
elaboratori elettronici; vediamo alcune cifre:
o nel 1953 si hanno circa 100 elaboratori in funzione nel mondo
o nel 1958 il numero di calcolatori negli Stati Uniti è di 2500
In Italia le cose procedono più lentamente:
o nel 1954 viene installato presso il Politecnico di Milano il primo elaboratore in Italia
o nel 1957 in Italia si ha il primo utilizzo di una elaboratore in azienda
o nel 1958 abbiamo circa 10 elaboratori in Italia
Nati come strumenti puramente scientifici, gli elaboratori elettronici negli anni 50 si sono via via
diffusi anche nelle aziende e sono ormai diventati un insostituibile strumento per l’elaborazione delle
informazioni.
La seconda generazione degli elaboratori elettronici
Verso la fine degli anni 50 le valvole vengono sostituite dal transistor, e gli elaboratori vengono detti
della “seconda generazione”.
Grazie all’introduzione del transistor, gli elaboratori diventano più veloci, più piccoli e si diffondono
rapidamente in tutto il mondo, estendendo i loro campi di impiego in tutti i settori aziendali e non
solo.
Approfondimento: il transistor
Il transistor venne inventato nel 1946 dagli americani J.
Bardeen, W. M. Brattain e W. Shockley, che vennero
insigniti, grazie a questa loro scoperta, del premio Nobel (nel
1956).
Il transistor è un dispositivo costituito da un cristallo di
semiconduttore (Silicio, Germanio o Arseniuro di Gallio), con
zone “drogate” con impurità di materiali differenti (Boro,
Alluminio…).
A seconda della tensione applicata ai suoi terminali, il
transistor è in grado di permettere oppure no il passaggio di
corrente elettrica. Anche in questo caso, ai due stati del
transistor (conduzione o interdizione) vengono associati i due
valori logici delle variabili booleane utilizzate dagli
elaboratori (0 e 1).
Figura 28 - Il
primo
transistor
Figura 29 - Valvola, transistor
e chip
Il transistor ha dimensioni inferiori rispetto alla valvola elettronica (pochi millimetri), consumi
ridotti, velocità molto superiori (passaggio da 0 a 1 o viceversa in pochi nanosecondi), costi di
produzione molto bassi. E’ evidente quindi come esso abbia permesso la rapida diffusione ed
affermazione degli elaboratori in tutti i settori.
Nel 1955 la Bell realizzò il primo elaboratore a transistor, il TRADIC. Nel 1957 la Siemens
commercializzò il modello 2002.
Tra il 1960 e il 1964, l’IBM costruì il modello 1401 (più di
centomila esemplari) e Olivetti sviluppò ELEA (poco più di 100
esemplari) che rappresentò il primo tentativo italiano di
affacciarsi al mercato degli elaboratori elettronici.
Figura 30 - Logo Olivetti
L’introduzione del transistor ha evidentemente migliorato le prestazioni della CPU. Parallelamente a
questi progressi anche le memorie di massa e i dispositivi di input e di output hanno subito forti
innovazioni.
Le memorie di massa a dischi sono ormai largamente diffuse e consentono velocità di lettura/scrittura
elevate e capacità di memorizzazione di qualche milione di caratteri; inoltre è possibile collegare
assieme più unità a disco in modo da arrivare a capacità di memorizzazione ancora superiori.
Oltre alle unità di memoria di massa “fisse”, cioè interne agli elaboratori, si diffondono memorie
“mobili” a dischi, che possono essere sostituite con altre in breve tempo, consentendo così di
elaborare enormi quantità di dati.
Gli elaboratori della seconda generazione sono inoltre in grado di svolgere operazioni aritmetiche e
operazioni logiche contemporaneamente, di leggere e scrivere schede perforate e leggere e scrivere
dati su supporti magnetici nello stesso tempo.
In questi anni, inoltre, si assiste alla nascita e diffusione delle unità terminali (o semplicemente
“terminali”), connessi al calcolatore centrale: i terminali hanno solo il compito di trasmettere dati
all’elaboratore centrale, che invece li manipoli e li memorizza.
Con la diffusione degli elaboratori, nasce anche la necessità di scrivere programmi adatti a svolgere
determinati compiti.
Nascono e si sviluppano allora i primi “linguaggi di programmazione”.
La terza generazione dei calcolatori elettronici
Alla metà degli anni 60 venne sviluppato un nuovo componente, destinato a rivoluzionare ancora una
volta il mondo degli elaboratori elettronici: si tratta del circuito integrato, che grazie allo sforzo
congiunto di tecnici elettronici, di fisici e di chimici, consente elevatissime velocità, ingombri
ridottissimi ed ottima affidabilità.
I primi elaboratori ad adottare circuiti integrati sono state le macchine della serie 360 IBM (oltre
30000 esemplari nel mondo), il G115 della Honeywell (1000 esemplari) e la serie 9000 della Univac
(2500 esemplari).
Queste macchine sono in grado di eseguire un’operazione in pochi nanosecondi (miliardesimi di
secondo), mille volte più velocemente degli elaboratori a transistor.
Le memorie di massa, ancora costituite da nuclei di ferrite, erano però dispositivi troppo lenti per
affiancare l’elevata velocità di elaborazione delle nuove CPU: per questo motivo vennero introdotti
nuovi tipi di memorie, più veloci, da inserire tra memorie di massa e unità centrale; in queste
memorie, dette di transito, i dati potevano essere letti/scritti velocemente dall’UC e successivamente
trasmessi alle memorie di massa.
Le nuove macchine possono essere “aggiornate” nel tempo, utilizzando appositi moduli che ne
sostituiscono altri diventati obsoleti (lenti, di capacità insufficiente…); inoltre i programmi sviluppati
possono funzionare su macchine differenti (si parla di compatibilità del software), e questo ha porta ad
un incremento del mercato mondiale del software. In altre parole gli elaboratori non sono più
progettati e costruiti per svolgere un determinato compito, ma si adattano a svolgere diversi
programmi, nei settori più disparati.
Teoria dell’informazione
11
Approfondimento: il circuito integrato
Il circuito integrato venne ideato nel 1958 da Kilby (della Texas Instrument).
Una barra di silicio monocristallino, viene suddivisa in tante fette sottilissime, dette Wafer, a loro
volta incise con tecniche fotolitografiche; il processo di incisione va a creare regioni drogate e non
di dimensioni infinitesime, consentendo la creazione di complessi circuiti, costituiti da
innumerevoli componenti (tra cui i transistor, diodi e resistenze) tra di loro interconnessi, di
dimensioni dell’ordine di pochi millimetri.
Figura 31 – Circuiti integrati
Questa miniaturizzazione spinta, consente di ottenere circuiti molto piccoli, velocissimi e dai
consumi ridotti; inoltre si ha una crescita dell’affidabilità e una notevole riduzione dei costi di
produzione.
Negli ani ’60 i circuiti integrati contenevano alcune decine di componenti elettronici (Small Scale
of Integration, SSI); negli anni ’70 si è passati alla Large Scale of Integration, LSI e negli ’80 alla
Very Large Scale of Integration, VLSI, con un numero di componenti sempre maggiore (si arriva
a oltre 100000 componenti su un singolo chip).
Il primo elaboratore a circuiti integrati è stato l’IBM 360. Nel 1970 abbiamo poi il PDP-11 della DEC
e l’IBM 370.
In questi anni nasce un programma particolare, il “sistema operativo” il cui compito è quello di porsi
come interfaccia tra l’hardware e l’utente, coordinando le operazioni svolte dalla macchina e
facilitandone l’utilizzo anche da parte di utenti poco esperti. Gli elaboratori non sono più quindi un
prodotto riservato a pochi (scienziati, tecnici…) ma si stanno diffondendo anche tra i non addetti al
settore.
In questi anni, grazie alla velocità di elaborazione, i calcolatori possono eseguire contemporaneamente
più compiti: si parla allora di multi-programmazione e di time-sharing. Più utenti possono far eseguire
i loro programmi da un unico calcolatore, che riserva ad ogni processo una frazione del suo tempo. Si
afferma sempre più allora le tecnica di utilizzare un elaboratore centrale cui sono collegati diversi
terminali dai quali gli utenti possono eseguire programmi anche diversi.
Infine, parallelamente all’evoluzione della CPU anche i dispositivi di input e output diventano sempre
più veloci e il modo con cui gli utilizzatori inseriscono dati o leggono risultati è sempre più “user
friendly”, cioè vicino all’uomo… Si riescono ormai a leggere mille e più schede perforate al minuto e
le stampanti riescono a produrre oltre 2000 righe di output al minuto; la capacità dei dischi arriva ora a
molti miliardi di caratteri (forse è più facile dire molti GByte - GIGA Byte).
Facendo un confronto tra le tre generazioni di calcolatori, si osserva un miglioramento delle
prestazioni incredibile:
o
o
o
elaboratore a valvole (prima generazione) – circa 2000 moltiplicazioni al secondo
elaboratore a transistor (seconda generazione) – circa 35000 moltiplicazioni al secondo
elaboratore a circuiti integrati (terza generazione) – circa 2 milioni di moltiplicazioni al
secondo
Come detto precedentemente, le memorie a ferrite sono troppo lente per i nuovi circuiti di
elaborazione: nascono allora le memorie a circuiti integrati, che utilizzano la stessa tecnologia delle
CPU e garantiscono tempi di lettura e scrittura rapidissimi. Rimane ancora un limite per quanto
riguarda la capacità di queste memorie, ridotta rispetto alla capacità delle memorie di massa su disco e
spesso insufficiente a contenere l’intero programma che si deve eseguire. Per ovviare a questo
inconveniente, viene utilizzata una parte di memoria di massa come se fosse una grande memoria
principale (viene chiamata “memoria virtuale”) e i programmi vengono suddivisi in “pagine”; solo
una parte del programma si trova in memoria principale, la rimanente parte rimane nella memoria
virtuale e la CPU deciderà di caricarne in memoria un’altra parte quando le servirà.
Il primo elaboratore ad utilizzare la tecnica della memoria virtuale fu l’IBM Sistema 370, che aveva
una memoria centrale di oltre 3Mbyte (3 milioni di caratteri).
Inizia anche a modificarsi il modo con cui le informazioni vengono inserite negli elaboratori: dalle
schede perforate si passa a dispositivi a tastiera e soprattutto a dei supporti magnetici (dischi) sui quali
le informazioni possono essere facilmente registrate (memorizzate) e lette.
Figura 33 - Dischi da 5 ¼ ‘’
Figura 34
Disco da 3 ½ ‘’
Figura 32 - Disco da 8’’
I microprocessori e la quarta generazione dei calcolatori elettronici
Il microprocessore è un particolare circuito integrato che racchiude al suo interno tutte le funzionalità
dell’Unità di Controllo e dell’Unità aritmetico Logica, oltre a particolari circuiti (registri) per
memorizzare dati e istruzioni.
La potenzialità di un microprocessore viene data dalla velocità con cui vengono eseguite le operazioni
e dal numero di bit che possono essere elaborati contemporaneamente: si parla allora di “clock” e di
“bus dati”. Il clock indica il numero di operazioni al secondo che possono
essere eseguite, il bus dati indica invece il numero di bit che costituiscono i
dati elaborati (il bus è un insieme di collegamenti tra i diversi dispositivi del
microprocessore). Il microprocessore ha un bus interno (che collega cioè i
circuiti interni al dispositivo) e un bus esterno che collega il microprocessore
agli altri componenti dell’elaboratore (memorie, dispositivi di input e
output…).
La nascita dei microprocessori avvenne intorno alla metà degli anni 60,
ancora una volta in America. Una delle società cardine per lo studio e la
realizzazione del microprocessore è stata la Bell Telephone di Boston, sede
di prestigiosi laboratori. Alcuni tecnici e scienziati formatosi alla Bell,
fondarono nel 1965 la Fairchild (in California, nella zona che a breve
diventerà la Silicon Valley), azienda ancora
Figura 35 - Intel 4004
Figura 36
Intel 8085
Teoria dell’informazione
13
oggi all’avanguardia nella realizzazione di circuiti integrati. Altri tecnici e scienziati (Robert Noyce e
Gordon Moore) sempre provenienti dai Bell Labs, fondarono nel 1968 la Integrated Electronics
(INTEL) .
Nel 1971 l’ingegnere italiano F. Faggin e gli americani T. Hoff e S.
Mazer producono il primo microprocessore della INTEL, il 4004,
microprocessore a 4 bit (cioè capace di elaborare informazioni a gruppi
di 4 bit), utilizzato in una calcolatrice da tavolo; le potenzialità del
4004 erano molto ridotte, tanto da spingere la INTEL stessa a
realizzare a breve il 8008, microprocessore a 8 bit.
Sempre nel 1971 fecero la loro comparsa i floppy disk da 8’’.
Vista la continua richiesta di elaborazioni sempre più complesse,
venne messo sul mercato il microprocessore 8080, sempre a 8 bit.
Parallelamente altre aziende stavano progettando circuiti dello stesso
tipo: ricordiamo il Motorola 6800 a cui succedette il 68000.
Dopo altri microprocessori a 8 bit (l’8085 e l’8048), INTEL passò
alla tecnologia a 16 bit, producendo l’8088 e l’8086: questi hanno
inizialmente un clock di 4.77 MHz e passano successivamente a 10
MHZ.
Figura 37 - Federico
Faggin
Nel 1972 nasce in California l’era dei Videogiochi, con "Pong" (di Atari): una pallina che rimbalza
sullo schermo e viene rilanciata da due sbarrette che si muovono con due potenziometri. Con Space
Invaders (1978) e Pacman (1980) i progressi diventano strabilianti.
Sempre nel 1972 IBM commercializzò i primi floppy disk, DEC
lanciò il PDP 16 a cui succedette il VAX e B. Gates e S. Allen
fondarono la Trof-O-Data, società che si occupava della
registrazione dei dati del traffico autostradale.
Nel 1973 IBM lancia il primo Hard Disk e successivamente il
Winchester, Hard Disk da 70MB.
Nel 1976, Steve Jobs e Stephan Wozniak realizzarono in modo
Figura 38 - Pong
pionieristico il primo Personal Computer: Apple I; visto
l’inaspettato successo, dopo la vendita di alcuni esemplari di Apple I (in scatola di montaggio),
fondarono la Apple Computer Company.
Figura 39 - Logo Apple
Figura 40 - Apple I
Sempre in quegli anni abbiamo ALTAIR 8800, altro precursore dei Personal Computer prodotto da
Mits: 256 KB di memoria, input garantito da alcuni interruttori manuali e output da una serie di led.
Altair veniva programmato con il primo Basic, sviluppato da Gates e Allen della neo-nata MicroSoft.
A Jobs e Wozniak si unì Mike Markkula (proveniente da
Fairchild e Intel) e nel 1977 venne rilasciato Apple II, il vero
primo Personal Computer.
Apple II aveva dimensioni e costi ridotte rispetto ai
precedenti elaboratori, era dotato di una tastiera per
Figura 41 - Apple II
l’immissione dei dati e utilizzava come
dispositivo di output un normale
televisore: si tratta quindi di tecnologia
alla portata di tutti e proprio questo
sancisce la rapida diffusione del
personal computer in tutto il mondo.
Apple II poteva essere programmato utilizzando il linguaggio BASIC e utilizzava una memoria di
massa costituita da un disco (floppy disk) da 5 ¼ pollici, e anche questo rappresenta una causa del suo
successo.
Nel giro di pochi anni la Apple divenne una ditta affermatissima, con migliaia di addetti e fatturato da
capogiro.
Nello 1976 nasce il primo supercomputer CRAY 1, in grado di eseguire 180 milioni di operazioni al
secondo, utilizzando 200 mila circuiti integrati montati su 3400 schede e collegati con 100 km di cavi;
il suo costo è di 17 milioni di dollari.
Sempre nel 1976 la Zilog rilascia lo Z80 a 8 bit.
Nel 1978 la HAYES lancia sul mercato il primo modem (modulatore-demodulatore), che trasforma i
segnali digitali dei computer in segnali analogici, trasmessi e ricevuti attraverso il telefono. L’utente si
può così collegare con qualsiasi altro computer al mondo.
Nel 1979 IBM produce la prima stampante laser.
Nel 1980 anche l’IBM entra nel mercato del personal computer (altre ditte, come Tandy, si erano già
aggiunte precedentemente); il primo PC IBM venne presentato nel 1981, utilizzava un
microprocessore 8088 con bus interno a 16 bit e soprattutto era molto più potente di tutti i suoi
predecessori.
Parallelamente si svilupparono aziende per la produzione di dispositivi ausiliari compatibili con la
tecnologia IBM.
Altre ditte puntarono ad abbassare i costi dei loro prodotti: ecco allora la Sinclair con lo Spectrum, la
Commodore con il VIC20 e il Commodore 64 e la Texas Instrument.
Figura 42 - Logo Sinclair
Figura 43 - Commodore 64
Figura 45
Logo Commodore
Figura 44
Logo Texas Instrument
Figura 47 - TexasTI994
Figura 46
ZX Spectrum
Nel 1982 il chip Intel 80286 possiede 134 mila transistor.
Teoria dell’informazione
15
Nel 1983 lo studente americano F. Cohen realizza il primo virus per computer, che consisteva in un
insieme di istruzioni capaci di penetrare in un computer via modem o floppy disk, provocando la
distruzione di files e cancellando il contenuto della memoria.
Nel 1984 IBM supera Apple come numero di PC venduti e diviene lo standard di fatto per i Personal
Computer. Il sistema operativo con cui operavano le macchine IBM era il CP/M ideato nel 1974 da G.
Kindall, a cui presto succedette l’MS DOS (MicroSoft Disk Operating System), sviluppato per
microprocessori a 16 bit dalla Microsoft di Paul Allen, Steve Ballmer e Bill Gates, fondata sempre in
USA nel 1977.
Nel 1985 il chip 80386 possiede 275 mila transistor.
Nel 1989 il chip 80486 possiede 1,2 milioni di transistor.
Nel 1993 nasce il PENTIUM: contiene 3,2 milioni di transistor,
15.000 per millimetro quadrato (i transistor utilizzati sono cento
milioni di volte più piccoli del loro primo predecessore). I
laboratori INTEL dove vengono sviluppati questi processori
hanno una purezza dell'aria un milione di volte maggiore di
quella che respiriamo nelle nostre città. L’aria viene filtrata sette
volte al minuto e la temperatura è mantenuta a 21°; l’umidità è
continuamene monitorata e il personale è fornito di cuffia,
camice e mascherina.
Figura 48 - Pentium
Nel 1991 fanno la loro comparsa i primi microprocessori AMD; nel 1992 nascono i Cyrix.
Nel 1994 abbiamo AMD 486DX2 a 80 MHz e Pentium a 100 MHz; negli anni successivi arrivano
Pentium Pro, Pentium II, Pentium MMX, Pentium III (siamo nel 1999) e Pentium IV e AMD Duron e
Athlon (solo per citarne alcuni).
In questi ultimi anni (scriviamo agli inizi del 2002), si assiste ad un vertiginoso incremento della
velocità a cui operano i microprocessori – siamo ormai oltre i 2 GHz – e si parla ormai di tecnologia a
64 bit…
Breve storia dei linguaggi di programmazione, dei sistemi operativi e
del software applicativo.
Poiché la CPU lavora con 0 e 1, un programma sarà costituito da lunghe sequenze di 0 e 1 che
istruiscono la macchina sulle operazioni da svolgere.
Appare evidente che scrivere programmi le cui istruzioni sono costituite da lunghe sequenze di bit
(linguaggio macchina) è un compito assolutamente non banale. Un programma quindi è la sequenza
delle istruzioni che la macchina deve eseguire; il programma viene caricato nella memoria
dell’elaboratore e da lì eseguito, istruzione per istruzione, dalla CPU.
In una fase preliminare, il problema che la macchina deve svolgere, viene rappresentato sotto forma di
diagramma di flusso o flow chart e successivamente tradotto in linguaggio macchina.
Vista la necessità di scrivere direttamente in linguaggio macchina, nasce nel 1957 un linguaggio
simbolico, il FORTRAN (da “traduttore di formule”), sviluppato da John Backus, IBM. Il linguaggio
simbolico sostituisce le sequenze di 0 e 1 con delle sequenze più brevi di lettere e numeri, con
significati ben precisi e facilmente intelligibili dall’uomo. Il programmatore scriverà il programma
utilizzando questi simboli (con un minor rischio di commettere errori) e la macchina dovrà tradurre il
programma scritto con il linguaggio simbolico in linguaggio macchina.
Nel 1958 il LISP venne sviluppato da John McCarthy al MIT.
Nei primi anni 60 vedono la luce altri linguaggi di programmazione simbolici: abbiamo già parlato
del FORTRAN (FORmula TRANslator), principalmente utilizzato per problemi scientifici e tecnici,
abbiamo il COBOL (COmmon Business Oriented Language), principalmente utilizzato per problemi
di tipo economico e finanziario in cui si manipolano molte informazioni con operazioni poco
complesse (i simboli che costituiscono questo linguaggio sono parole normalmente utilizzate nel
mondo del commercio), l’ALGOL (ALGOrithmic Language), che ha contribuito allo lo sviluppo del
FORTRAN e del PASCAL, nato nel 1968 grazie a Niklaus Wirth e Kathleen Jensen.
Nascono in questi anni anche i programmi applicativi, cioè programmi scritti e messi in commercio da
software house adatti a svolgere un ben determinato compito, eventualmente grazie a piccole
modifiche o personalizzazioni; nasce quindi un nuovo settore, che si sviluppa in modo parallelo al
settore hardware, che è appunto il settore software.
Nascono altri linguaggi di programmazione: l’APL (A Programming Language), di Ken Iverson
dell'Università di Harvard (1962), il PL/1 (Programming Language 1), adatto a problemi scientifici e
commerciali, il BASIC (Beginners All-purpouse Symbolic Instruction Code), di facile utilizzo anche
da utenti non esperti (Tom Kurtz e John Kemeny, Dartmouth College).
Nel 1963 abbiamo la nascita del primo software Computer-Aided Design (CAD).
Nel 1969 Ken Thompson elaborò la prima versione del Sistema operativo Unix (all'AT&T's Bell
Laboratories. Nel 1970 venne sviluppato da Charles Moore il linguaggio FORTH.
Nel 1974 Brian Kernighan e Dennis Ritchie svilupparono il linguaggio di programmazione C.
Nel 1975 Bill Gates e Paul Allen svilupparono un nuovo BASIC, l’MSBASIC, utilizzato da Altari.
Nel 1979 uscirono i primi word processor (Apple Writer e Wordstar), il primo foglio elettronico
(VisiCalc per Apple II), Vulcan database program (dbase II), il linguaggio ADA, il Modula I (di
Wirth); Apple Computer rilasciò il DOS 3.2 (Disk Operating System), sviluppato dall'Applesoft.
Nel 1980 abbiamo il sistema operativo Unix BSD 4.1. Logo Computer Systems (Canada)
commercializzò il suo linguaggio: il LOGO.
Nel 1981 Microsoft rilasciò MS-DOS 1.0, (su un prototipo IBM 5150, noto come IBM PC).
Nel 1982 abbiamo il Fortran per sistemi MS-DOS, MBA (pacchetto con word processor, foglio
elettronico, grafica...), il foglio elettronico Lotus 123, il GW Basic e l'MS Cobol di MicroSoft. L'anno
successivo vedono la luce i word processor MicroSoft Word e WordPerfect (della Satellite Software),
il C++ (evoluzione del C), il Turbo Pascal della Borland, un prototipo di Windows, OS/2 e Netware di
Novell (per quanto riguarda i sistemi operativi). Il 1985 diede i natali a MSDOS 3.0 e X Windows per
sistemi Unix e il 1986 a MS Windows 1.0 e a QBasic 1.0 (sempre Microsoft); nel 1987 abbiamo
Windows 2.0, nel 1988 MS Office 1.0 (suite di programmi per l'ufficio), nel 1990 Windows 3.0, nel
1991 MS Word ed Excel 3.0, Linux, Windows NT.
Nel 1992 arrivano Windows 3.2, IBM OS/2 2.0, MS DOS 6.0, MS Access 1.0; nel 1993 Mosaic (il
primo browser), nel 1994 Apple Quick Time 2.0, Netscape Navigator, le Norton Utilities 3.0, MS
Word 6 per Mac; nel 1995 Borland Delphi, Windows 95, MS Internet Explorer; nel 1996 Windows
NT 4, nel 1998 Windows 98, nel 2000 Windows 2000 e ME...
Bibliografia essenziale
P. Bishop, L'informatica, Jackson.
AA.VV., La scienza dei calcolatori e La cultura del calcolatore, I quaderni de Le Scienze, n. 56 e 75.
M. Bozzo, La grande storia del computer, Dedalo.
G. Ifrah, Storia universale dei numeri, Mondadori