La tendenza a costruire circuiti sempre piu' piccoli e l'integrazione di molte componenti sulla stessa piastrina di silicio porta ad un crollo dei costi, ad una aumento delle prestazioni, e ad un'enorme espansione del mercato. Vengono prodotti cip di silicio che integrano migliaia, poi decine, centinaia di migliaia o milioni di componenti (VLSI , very large scale integration ). |
Negli anni 70 ed 80 vediamo svilupparsi la linea dei supercomputers. Si tratta di macchine fatte per calcoli veloci, adatte ad affrontare problemi matematici complessi. In queste macchine si spinge la tecnologia all'estremo, ed i costi sono altissimi. L'aumentare delle prestazioni delle CPU ed i bassi costi di CPU "commerciali" rispetto allo sviluppo di architetture e PCU dedicate provocano un declino di questa linea negli anni 90, e si finisce per vedere in questo campo macchine parallele, (MPP: massive parallel computers) costituite da aggregati di migliaia di CPU commerciali, collegate da bus o reti ad alte prestazioni. Nel 2000 questa linea e' ridotta ad un mercato di nicchia, seppur molto remunerativo, per un'elenco delle macchine piu' veloci al mondo si rimanda ai benchmark Jack Dongarra et al. in: www.top500.org. Citiamo giusto alcune macchine:
| |
I supercomputers degli anni 80 sono vettoriali, cioe' con cpu dotate di appositi
registri vettoriali per effettuare con una specie di pipeline operazioni
matriciali velocemente.
I computer vettoriali possono lavorare 4-5 volte piu' veloci su calcoli che possano essere espressi in forma vettoriale, ma questo non e' sempre vero, e spesso per sfruttare bene le macchine bisogna riscrivere i programmi. |
Analogamente i computers paralleli danno buone prestazioni su problemi
adatti all'architettura della macchina, il problema deve essere formulato
in modo opportuno ed il programma scritto di conseguenza. Inoltre sono sempre
critici i collegamenti e le interazioni fra i processori.
Vengono proposte parecchie diverse architetture per queste macchine, si
parla di SIMD ( single instruction, multiple data ) quando tutte le CPU
eseguono lo stesso programma su dati diversi, di MIMD
(multiple instruction multiple data) quando le cpu eseguono programmi diversi.
I costi sono sempre enormi, i programmi devono essere scritti appositamente
per le singole macchine per sfruttarne bene le caratteristiche; questi
computer si collocano quindi naturalmente in un mercato di nicchia, mercato che,
al dilagare dei mini computers e delle workstation grafiche, e' sempre
piu' ridotto.
Nei grossi server invece si vede applicato un parallelismo diverso; e' abbastanza comune avere server con piu' di una cpu. In un sistema mono processore sono contemporaneamente attivi molti processi , e si alternano nell'uso della CPU, secondo code gestite dal sistema operativo. Nei multi-processori il sistema operativo assegna i processi in attesa alle diverse cpu ; e' il sistema operativo che impedisce conflitti fra le cpu, per accessi alla memoria condivisa ed uso di periferiche. Ogni processore esegue un processo diverso. Nelle macchine parallele su citate invece un solo programma e' eseguito da molte cpu contemporaneamente.
Negli anni 80 il calcolo e' dominato dai supercomputers, ma, contemporaneamente,
si assiste allo sviluppo vertiginoso dei mini-computers,
e questo rappresenta una svolta decisiva per l'informatica.
La DEC, dopo il pdp 8 ed il pdp 11, produce i Vax, (1978, Vax 11/780 , 1 Mips
fino alla serie 4000 (1990) da 10-30 Mips.)
queste macchine, a 32 bits, possono indirizzare fino a 4 Gb di memoria
ed hanno un sistema di memoria virtuale molto efficiente, il loro
sistema operativo (VMS) permette multiutenza ed interattivita',
ha integrato un buon
software di rete (Decnet) e le versioni successive utilizzaranno interfacce
grafiche (X11, Motif). I costi, che partono da alcune decine di
migliaia di dollari, sono relativamente bassi e le prestazioni non
tanto distanti da quelle dei grossi computers.
Queste macchine hanno uno sviluppo enorme, specie presso le universita'
e gli enti di ricerca, ove ogni dipartimento poteva avere il suo sistema
di calcolo.
Tutto questo contribuisce al declino dei supercomputers. Molto del lavoro che pochi anni prima si faceva nei grandi centri di calcolo viene ora svolto su Vax, a livello dipartimentale. Il Vax ha una diffusione enorme, specie nelle universita' e nei centri di ricerca. La Dec diventa il secondo produttore di computers dopo l'IBM. |
Negli anni 80 si assiste all'introduzione di istruzioni sempre piu' complesse e sempre piu' implementate in hardware. L'esempio estremo era l'architettura VAX, che aveva 2-300 istruzioni, con molti modi diversi di specificare gli operandi. ( si parla di CISC : complex instruction set ).
Ma mentre le macchine CISC diventavano sempre piu' complicate, con un hardware
sempre piu' complesso, inizia un'altra tendenza:
nel 1980 un gruppo di Berkeley (David Patterson, Carlo Sequin) progetta una cpu,
su un circuito VLSI, senza interprete, con poche istruzioni. Questo processore viene
chiamato RISC (Reduced Instruction Set)
Nel 1981 a Stanford John Hennessy crea la cpu MIPS, anche
questa senza interprete.
Il fatto di non avere interprete e solo una cinquantina di istruzioni semplici permette un disegno piu' efficiente della CPU, e si possono facilmente organizzare le diverse fasi di un calcolo (come fetch degli operandi dalla memoria, operazione, store degli operandi nella memoria) in pipelines: in modo cioe' che le fasi possano essere eseguite in contemporanea come in una catena di montaggio, su dati diversi. Si assistette ad un gran dibattito accademico fra i sostenitori delle architetture CISC e RISC, ma siccome in un programma le istruzioni complesse sono usate relativamente poco e per la maggior parte del tempo la cpu esegue istruzioni semplici, le architetture RISC risultano piu' performanti.
Bel 1982 Andy Bechtolsheim, Vinod Khosla, Scott Mc Nealy e Bill Joy, che avevano lavorato su Unix a Berkeley, fondano la SUN. Il computer SUN-1 usa CPU Motorola 68020, ed e' una workstation fatta per lavorare in rete, con sistema Unix, ethernet e tcp/ip. Nel 1987 la SUN adotta il processore SPARC, a 32 bit e 36 Mhz, derivato da un progetto RISC del Berkeley che aveva solo 55 istruzioni intere e 14 float.
Nel 1986 IBM e MIPS rilasciano la prima workstation RISC (serie RISC 2000)
Alla fine degli anni 80 workstation grafiche, che utilizzavano processori RISC, finirono per soppiantare i mini computers. I produttori di Workstation grafiche sono DEC, IBM, HP ,SGI, SUN, ognuna con la sua linea di workstation grafiche, con hardware e software proprietario, tutte basate su architettura RISC e tutte Unix, ma in diverse varianti parzialmente incompatibili.
Attorno al 1995 queste architetture migrano a 64 bits
|
Grossomodo si puo' dire che, rispetto a 32 bits di pari clock, le macchine a 64 bits di questo periodo hanno prestazioni doppie, anche per la miglior struttura dei canali verso la memoria; ma la cosa piu' importante delle architetture a 64 bits e' la possibilita' di indirizzare ed utilizzare una grande quantita' di RAM, il che ne fa candidati ideali per grandi database ed applicazioni che richiedano trattamento rapido di grandi moli di dati, come i grandi server Web.
La DEC, che sull'onda dei mini era arrivata ad essere il secondo produttore di computers dopo l'IBM, si trova in difficolta', e' appesantita dai VAX e dal VMS, la sua rete proprietaria (Decnet) non ha fortuna, non riesce a spingere abbastanza le sue alpha, che pure hanno il processore RISC migliore del momento e finisce per essere comperata dalla Compaq, ma e' smembrata: la parte di rete viene comperata dalla cabletron, le licenze delle alpha vanno a ditte di Taiwan, il gruppo di sviluppo dell'alpha finira' poi all'Intel.
Nel 1989, l'Intel, col 486, adottera' una soluzione ibrida fra CISC e RISC, la cpu ha un core risc, veloce, abbinato ad un CISC con interprete, per le istruzioni complesse.
In questi anni, mentre il calcolo e' dominato dai Vax, e
poi dalle workstation RISC grafiche, inizia
lo sviluppo dei PC, cioe' di
computers per uso personale, a basso costo. La diffusione di queste macchine
diviene capillare e porta l'informatica alla portata di tutti.
Ne vengono venduti centinaia di milioni.
Fra i primi PC ci sono quelli prodotti da IBM, nell'81, utilizzando CPU Intel 8088, a 4.77 Mhz; questo PC sfruttava un bus a 8.33 Mhz. con 63 linee, 20 per indirizzi di RAM, 8 dati, 4 per segnali di controllo, il bus aveva connettori a 62 piedini, a cui potevano essere collegate schede ausiliarie, estendendo cosi' le possibilita' del PC. L'IBM rese pubblici i progetti, e subito altri fornitori ne approfittarono per presentare al pubblico i loro PC, di fatto tutti basati su un modello comune e quindi compatibili. Questa compatibilita' fu alla base del trionfo di questa architettura , a scapito di altri tipi di PC, come gli Apple, che per tanti versi erano migliori, e piu' facili da usare, ma non avevano altrettanto software, periferiche e varianti fra cui scegliere. |
L'IBM stessa fu vittima del successo del PC, con i modelli successivi (il PC/AT , basato sul processore 286), furono aggiunte altre 36 linee al bus, per trasferire dati a 16 bits, ma quando l'IBM cerco' di superare le limitazioni di questa architettura, sviluppando un miglior bus per il PS/2 ( Microchannel o MCA ), questa volta proprietario, il mercato reagi' male e la concorrenza creo' lo standard ISA (Industry Standard Architecture) che in pratica era il vecchio bus IBM ( 8.33 Mhz, 16 bits per indirizzi, max 16.7 MB /sec.) L'IBM fini' per abbandonare il suo bus.
Il sistema operativo per il primo PC IBM era MS DOS, prodotto dalla Microsoft, la grande diffusione dei PC fece crescere enormemente la Microsoft, che ne vendeva il sistema operativo.
Uno dei motivi di diffusione dell'informatica e' stata
l'introduzione di interfacce utente grafiche e facili
da usare.
Con i primi mini si erano diffuse interfacce grafiche
a carattere (terminale vt100 Dec e seccessivi), che avevano
solo limitate capacita' grafiche. Con l'introduzione di interfacce
grafiche evolute si permette l'uso del PC anche a persone
prive di qualunque conoscenza informatica e si amplia
enormemente il mercato.
La Apple, che aveva iniziato a produrre PC nel 1976 ( Apple I), introduce , nel 1983 col computer Lisa, un'interfaccia utente completamente grafica. Lo spunto viene preso dal sistema grafico di un PC della Xerox, lo "Xerox-alto". Un consorzio di produttori mette a punto il sistema X11, in uso su workstation Unix dal 1985. La Microsoft adotta un'interfaccia grafica solo nel 1990, con Windows 3.0, prendendo a modello il sistema della Apple. Successivamente l'IBM produsse OS/2, anche questo con interfaccia grafica, l'OS/2 era migliore di Windows, ma ebbe poco successo, col mercato era gia' invaso dalla Microsoft. Nelle figure a lato il primi Apple, il modello Lisa ed il Machintosh-II. | |
Il mercato delle CPU vede protagonista l'Intel, tallonata da AMD e, per un certo periodo , da Cyrix,
anno | modello | Clock | numero di | RAM | Note |
---|---|---|---|---|---|
MHz | transistors | indirizzabile | |||
1971 | 4004 | 0.108 | 2.300 | 640 KB | cpu a 4 bits |
1972 | 8008 | 0.108 | 3.500 | 16 KB | cpu ad 8 bits |
1974 | 8080 | 2 | 6.000 | 64 KB | cpu general purpose |
1978 | 8086 | 5-10 | 29.000 | 1 MB | cpu a 16 bits |
1979 | 8088 | 5-8 | 29.000 | 1 MB | usato su PC IBM |
1982 | 80286 | 8-12 | 134.000 | 16 MB | con protezione memoria |
1985 | 80386 | 16-33 | 275.000 | 4 GB | cpu a 32 bits |
1989 | 80486 | 25-100 | 1.2 M | 4 GB | 8 KB cache on cip |
1993 | Pentium | 60-233 | 3.1 M | 4 GB | 2 pipeline (superscalare), MMX |
1995 | Pentium pro (P6) | 150-200 | 5.5 M | 4 GB | 2 livelli cache, no MMX, |
1997 | Pentium II | 233-400 | 7.5 M | 4 GB | 2 livelli cache, MMX, slot 1 |
1999 | Pentium III | 500-1.13 Ghz | 9.5-28 M | 4 GB | bus >66 Mhz |
Pipeline 10 stages | |||||
2000 | Pentium IV | 1-2.2 Ghz (2002) 3.8 Ghz nel 2004 | 42 M | 4 GB | Netburst: pipeline 20 stages |
integer ALU "double speed" | |||||
SIMD-2 , bus 4 x 100 Mhz | |||||
Negli anni successivi si assiste ad un ulteriore miniaturizzazione delle componenti, e ad un aumento del clock dei processori, aumento che si arresta nel 2005, poco sotto i 4 Ghz, per problemi termici ed elettrici. Per aumentare le prestazioni si procede quindi a progettare macchine con piu' CPU, ed integrati che contengono piu' di una CPU. Si assiste anche ad un grande aumento di prestazioni delle memorie e divengono comuni dischi di grande capacita' (centinaia di Gbyte).