Computers di Quarta Generazione (1980-oggi)



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 ). P4 Northwood e AMD Athlon XP 2000+


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:

  • La prima macchina parallela era stata l'ILLIAC IV (1972 Universita' dell'Illinois) capace di 50 Mflop, che erano tanti nel 72.
  • Le macchine piu' veloci del mondo sono sviluppate negli anni 70 ed 80 da Seymour Cray, considerato il padre dei supercomputers.
  • Alla CDC Cray progetta il CDC 6600, il primo supercomputer, questa macchina faceva 3 Megaflop (milioni di operazioni float al secondo), aveva 400.000 transistor, ed era raffreddata con un circuito al Freon, il suo progetto era basato su idee innovative ed aveva 10 processori ausiliari dedicati all'I/O. Costava 10 milioni di dollari, e la CDC ne vendette un centinaio.
  • La CDC produce nel 1968 il CDC 7600, capace di 15 milioni di istruzioni al secondo
  • Nel 1974 Cray lascia la CDC e fonda la Cray Research, che produce il Cray I, con processore vettoriale, clock a 83 Mhz, parole di 64 bits ed e' capace di 166 Mflop, usa il CDC come front-end. Costa attorno ai 9 milioni di dollari, se ne vendettero una sessantina.
  • Anche senza Cray, la CDC continuo' a produrre supercomputer con la serie Cyber (computers vettoriali, a piu' processori), il Cyber 205 e' del 1981.
  • Il Cray-2 esce nel 1983, e' 10 volte piu' veloce del Cray-1, e' un computer a 4 processori, 1.9 gigaflop di picco.
  • Nel 1989 Cray lascia la sua ditta e fonda la Cray Computer Corporation, qui progetta il Cray-3, una macchina capace di 16 gigaflop, basata su circuiti che usano l'Arseniuro di Gallio invece del silicio, la macchina aveva un clock sul Ghz, a 64 bits, registri vettoriali, piu' processori. Ma la tecnologia dell'AsG si rivela piu' difficile del previsto, la macchina non viene mai terminata e la ditta fallisce. Cray muore in un incidente d'auto nel 1996.
  • Nel 1982 c'e il CRAY XMP, un computer parallelo progettato da Steve S.Chen, capace di 420 Mflops e con un sistema operativo Unix-like (UNICOS).
  • L'IBM produce il 3090, con processore vettoriale, nel 1985.
  • 1986 : Connection machine (Thinking machine corp.) un sistema a parallelismo massiccio, con 16.000 processori.
  • Il Cray T3D (1994) segue una nuova tendenza, e' un array di processori commerciali (max 2048 processori DEC alpha da 150 megaflop , in totale 300 Gflop), e' un MPP, massive parallel computer. Il Cray T3E , del 1995 raggiunge il teraflop.
  • Successivamente i record di prestazioni sono detenuti da macchine costituite aggregando migliaia di processori. La Compaq, con dec alpha, l'IBM con RISC 6000, ed anche con processori Intel. Ci sono poche installazioni di questo tipo al mondo, costo 50-100 milioni di dollari, prestazioni teoriche di migliaia di Gigaflop.
CDC 7600
CRAY 1A  (1977)
CRAY T3E

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.
DEC Vax 11/780 (1983)


Fra gli anni 1950-1970 si era andato affermando l'uso di interpreti, abbinati alla CPU, che decodificavano istruzioni complesse in termini di istruzioni elementari (microistruzioni). Spesso istruzioni imlementate in hardware nel modelli piu' costosi erano interpretate nei modelli piu' economici Un esempio e' il motorola 68000, con un grosso set di istruzioni interpretate e memorie dedicate veloci, read only, che contenevano l'interprete ( control stores).

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
  • La prima CPU RISC a 64 bits e' l'alpha della Digital,inizialmente in tecnologia a 0.5 micron, clock a 100-200 Mhz, E' una architettura innovativa, RISC, superscalare ( cioe' con piu' pipelines); ha pipelines lunghe: 7 stage per interi, 9 per float, ha 3 livelli di cache. La versione 21164 del processore (maggio 1998) va a 600 Mhz, a 0.35 micron, superscalare con 4 pipelines, e fa 2.4 Gflop.
  • La SUN introduce l'ultra-sparc I,con l'idea di poter gestire immagini ed audio, ed ha un apposito set di istruzioni per queste applicazioni (VIS : Visual Instruction Set),
  • la SGI i Mips,
  • l'IBM le Risc ,
  • HP il PA-risc a 64 bits nel 97.
DEC Server alpha

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.


PC IBM - 1981 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.

Il primo Apple 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.

La prima interfaccia grafica
Mac-II

Il mercato delle CPU vede protagonista l'Intel, tallonata da AMD e, per un certo periodo , da Cyrix,

Evoluzione delle CPU Intel dal 1971 al 2000
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
Importante e' l'aumento delle prestazioni che si ha negli anni 90, col 486 e soprattutto col Pentium, che ha una architettura piu' complessa delle CPU precedenti, e maggiori performance. Le performance delle cpu Intel migliorano fino a divenire paragonabili a quelle dei grandi calcolatori, ma ad una frazione del costo.

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).