ERNESTO HOFMANN – Laureato in fisica, programmatore, manager, consulente, storico dirigente in IBM, azienda per la quale ha lavorato per oltre quarant’anni, Ernesto Hofmann è una delle grandi figure di riferimento della storia dell’informatica.
INTRODUZIONE
Il microprocessore è un chip, un circuito integrato che si presenta fisicamente come un piccolo quadrato di circa 2 X 2 centimetri, posto all’interno dei computer. Il microprocessore è in pratica il “cervello” del computer, nel senso che è ciò che consente al computer di effettuare qualsiasi operazione di calcolo e di elaborazione delle informazioni. L’invenzione del microprocessore risale al 1971, anno in cui viene messo in commercio il 4004 della Intel, che è stato ideato dall’italiano Federico Faggin e dallo statunitense Marcian Hoff e che è considerato il primo microprocessore della storia. È dunque un italiano il padre del microprocessore, Federico Faggin, che ha raccontato la sua storia in un libro pubblicato da Mondadori e intitolato “Silicio. Dall’invenzione del microprocessore alla scienza della consapevolezza”. Perché questa invenzione è decisiva nella storia dell’informatica? Prima del 1971 i computer avevano processori costituiti da grandi valvole e – a partire dal 1948 – da transistor, dispositivi elettronici che sono costituiti da silicio (che è un cristallo semiconduttore) e che erano in origine degli oggetti ingombranti, lenti e molto costosi. I computer erano dunque delle enormi macchine, che occupavano una superficie di decine di metri quadrati, pesavano diverse tonnellate e avevano altissimi costi di costruzione e di gestione. Con il microprocessore si trova il modo di stampare i transistor su dischi di silicio, stampandoli in scala sempre più ridotta, e aprendo dunque la possibilità di costruire computer piccoli e a basso costo. Il microprocessore rappresenta dunque l’invenzione che ha aperto la strada della rivoluzione informatica, rendendo possibile la nascita dei personal computer, e – in seguito – l’avvento dei telefoni cellulari e poi degli smartphone. La prima chiave di volta della rivoluzione informatica è dunque la miniaturizzazione, ovvero: tante funzioni e tante informazioni in poco spazio.
IL COMMENTO DI ERNESTO HOFMANN
Il microprocessore è il risultato di una lunghissima evoluzione intellettuale, nata addirittura con la creazione dell’algebra, quella disciplina matematica cui ci si avvicina alle scuole medie e che per i più si identifica con la soluzione delle equazioni di secondo grado. Ma l’algebra è una disciplina ben più vasta. In estrema sintesi, l’algebra è una branca della matematica che si occupa dei simboli e delle regole per manipolarli. Nell’algebra elementare, quei simboli (oggi scritti come lettere latine e greche) rappresentano quantità senza valori fissi, noti come variabili. Proprio come le frasi descrivono le relazioni tra parole specifiche, in algebra, le equazioni descrivono le relazioni tra le variabili. Nel Rinascimento i grandi algebristi italiani riuscirono a dare una forma sempre più elegante alla soluzione delle equazioni arrivando a risolvere anche le equazioni di quarto grado. Ma trovarono l’insormontabile ostacolo delle equazioni di quinto grado per le quali l’algebra non poteva più fornire una formula per risolverle. Il genio di un ragazzo, Évariste Galois, permise nell’Ottocento di comprenderne la ragione e al tempo stesso di creare una nuova possente branca della matematica su cui si fonda gran parte della fisica moderna, ossia la teoria dei gruppi. All’incirca negli stessi anni un matematico inglese si occupò anche lui, in maniera quanto mai approfondita e originale, dell’algebra, cercando di dare una forma simbolica al sistema logico di Aristotele, ossia in sostanza al sillogismo. Boole scrisse un trattato sull’argomento nel 1854, intitolato Un’indagine sulle leggi del pensiero, su cui si fondano le teorie matematiche della logica e delle probabilità, e che codificava diverse regole di relazione tra quantità matematiche limitate a uno dei due possibili valori: vero o falso, 1 o 0. Il suo sistema matematico divenne noto come algebra booleana. Tutte le operazioni aritmetiche eseguite con quantità booleane hanno solo uno dei due possibili risultati: 1 o 0. Non esistono entità come “2” o “-1” o “1/2” nel mondo booleano. È un mondo in cui tutte le altre possibilità, oltre a 0 o 1, non sono valide per definizione. Come si potrebbe intuire, questo non è il tipo di matematica che si desidera utilizzare quando si fa un bilancio di un’azienda. Tuttavia, Claude Shannon, il padre della teoria dell’informazione, intuì che l’algebra booleana potesse essere applicata ai circuiti elettrici di un computer, nel quale tutti i segnali sono caratterizzati come “alti” (1) o “bassi” (0). La sua tesi di dottorato del 1938, per il conseguimento del titolo di Master of Science, intitolata A Symbolic Analysis of Relay and Switching Circuits, applicò la teoria di Boole in un modo che lo stesso Boole non avrebbe mai potuto immaginare, fornendoci un potente strumento matematico per la progettazione e l’analisi di circuiti digitali. Nella sua tesi Shannon mise in relazione diretta l’algebra booleana e le reti elettromeccaniche digitali, basate su relè, allora utilizzate nelle comunicazioni telefoniche. La tesi dimostrò che le reti digitali potevano essere utilizzate per risolvere equazioni booleane e che quindi, all’inverso, l’algebra di Boole poteva essere usata per descrivere una rete digitale. La tesi, che non attirò immediatamente una grande attenzione, divenne sempre più conosciuta durante e dopo la seconda guerra mondiale. Da allora la relazione tra circuiti digitali ed algebra di Boole è divenuta il fondamento dello sviluppo dei circuiti che rappresentano la base della moderna microelettronica digitale. La tesi di Shannon viene oggi considerata la più importante ed anche la più famosa tesi del XX secolo. Tra la tesi di Shannon e la costruzione dei primi computer intercorse diverso tempo. Molteplici erano le difficoltà da superare. Per costruire gli operatori logici di Boole, ossia gli OR o gli AND (e altri operatori), con i quali è possibile costruire algoritmi in grado di eseguire tutte le operazioni dell’aritmetica, occorrevano componenti circuitali cosiddetti attivi, ossia in grado di modificare il proprio stato. Potremmo dire in estrema sintesi che occorrevano come dei rubinetti che dovevano venire aperti o chiusi per consentire il passaggio della corrente elettrica. E questi rubinetti dovevano a loro volta essere aperti o chiusi da altri impulsi elettrici. In un rubinetto di casa l’acqua scorre se una mano apre o chiude il rubinetto stesso, ma in un computer la corrente scorre attraverso la porta logica (ossia il rubinetto della nostra metafora) se un’altra corrente la apre o la chiude. Il computer è quindi governato da due tipi di correnti mutuamente correlate. Negli anni quaranta, quando i primi computer presero forma, gli unici dispositivi per creare tali porte logiche erano i relè o le valvole termoioniche, entrambi di significative dimensioni. Ma l’antivigilia di Natale del 1947 tre ricercatori della Bell Telephone Company, Bardeen, Brattain e Shockley, realizzarono un dispositivo basato su principi completamente diversi, il transistor. Non è questa la sede nella quale descrivere i transistor, e in particolare quello al germanio utilizzato dai tre ricercatori. Basti dire che fin dall’inizio il transistor era più piccolo di una valvola e in prospettiva realizzabile a costi nettamente inferiori. Ci vollero diversi anni tuttavia perché si cominciassero a costruire transistor utilizzabili per la creazione di un computer. Durante questa prima fase occorre tenere presente che i transistor erano entità a sé stanti, che andavano comunque collegate con altre parti circuitali essenziali per il funzionamento complessivo di un circuito, parti che sono l’essenza dell’elettronica, ossia le capacità, le resistenze e le induttanze. I circuiti che venivano così costruiti (denominati circuiti ibridi e non “integrati”) venivano disposti su opportune schede che a loro volta venivano montate insieme su opportuni telai. Alla fine risultava un aggregato che disponeva di qualche migliaio di transistor e che era in grado di eseguire qualche migliaio di istruzioni al secondo, occupando un considerevole spazio. Per creare un circuito integrato (quella che poi sarebbe diventata la Large Scale Integration) era necessario costruire componenti attivi (transistor) e passivi (resistenze,..) con lo stesso processo costruttivo. Inoltre c’era un aspetto che non va sottovalutato. I segnali elettrici si dovevano poter propagare da una scheda a un’altra, e questo richiedeva che essi fossero abbastanza robusti. Già allora si era compreso che si potevano costruire essenzialmente due tipi di transistor: quelli cosiddetti a effetto di campo e quelli bipolari. I secondi erano molto più voluminosi ma producevano segnali ben più robusti. E quindi si doveva optare per questo tipo di transistor. Non va dimenticato che l’adozione dei transistor bipolari è rimasta in essere nei grandi computer fino quasi alla metà degli anni Novanta del XX secolo. E questo ci porta a una considerazione di fondo, essenziale per comprendere quali fossero i vincoli nella costruzione del cosiddetto microprocessore. Il computer deve poter eseguire un elevato numero di istruzioni al secondo, ma per fare questo ha bisogno di un grande numero di circuiti. Non c’è una legge precisa che dica quanti circuiti siano necessari per quante istruzioni al secondo, ma è intuibile che siano tanti. Al crescere della fame di potenza di calcolo (per via di applicazioni software sempre più raffinate) occorreva più potenza di calcolo e quindi servivano più circuiti. Ma il computer non poteva occupare uno spazio indefinitamente grande. Ci sono problemi di sincronizzazione tra funzioni circuitali diverse che richiedono che i segnali non possano viaggiare per più di tanto. E quindi non era possibile creare allora un computer grande quanto un campo di calcio. Oggi con i microprocessori le cose sono un po’ diverse perché è possibile aggregare migliaia di microprocessori, ognuno dei quali esegue un frammento dell’applicazione software ed quindi è quasi semi-indipendente dagli altri. Negli anni ‘50-‘60-‘70 del XX secolo ciò non era nemmeno ipotizzabile. Ricordo che negli anni ’60 si parlava con reverenza del computer da 1000 Mips come di una frontiera difficilmente raggiungibile (Mips: milioni di istruzioni al secondo), ma oggi enormemente superata. Quindi il grande vincolo dell’epoca era quello di lottare con la tecnologia dei transistor per perfezionarla e miniaturizzarla fin dove consentito, affinché si potessero costruire in un volume ridotto il maggior numero possibile di circuiti. Si trattava quindi di produrre tanti transistor e in uno spazio di ridotte dimensioni. La soluzione fu trovata con una straordinaria tecnologia, la fotolitografia, che è alla base della ormai celebre legge di Moore, secondo la quale il numero di circuiti disponibili raddoppia ogni due anni a parità di costo, e che di fatto ha consentito la prodigiosa evoluzione della microelettronica. Un accenno alla fotolitografia è quindi essenziale per comprendere bene l’avvento del microprocessore. Detto in termini quanto mai semplificati, la fotolitografia consiste nell’esporre una sottile fetta di silicio (un wafer) sia a luce di varia intensità e lunghezza d’onda sia all’azione di opportune sostanze chimiche, attraverso una sequenza di passi che potremmo approssimare a una ventina. Per raccontarla meglio, in modo semplice, potremmo dire che viene presa della sabbia possibilmente pura (per esempio brasiliana) e caricata in un forno, dove viene riscaldata fin quando diventa un brodo di atomi di silicio. A questo punto viene introdotto dall’alto un cristallo (monocristallino) di silicio che viene fatto ruotare lentamente mentre viene al tempo stesso sollevato. Durante questo processo atomi liberi di silicio (nel brodo) si aggregano sul cristallo e salendo viene a formarsi una sbarra cilindrica, anche perché nella salita il silicio si raffredda. Sembra un po’ il meccanismo di creazione dello zucchero filato! Alla fine emerge una sbarra che oggi ha un diametro straordinario. A miei tempi, negli anni ‘60-‘70 del XX secolo, la sbarra aveva un diametro di pochi cm, mentre ora supera ampiamente i 30-40 cm. Questa sbarra viene tagliata in fette (wafer) e ciascuna di queste fette viene sottoposta all’azione della fotolitografia che disegnerà sulle fette stesse i circuiti. Alla fine su di un wafer saranno presenti innumerevoli circuiti. Il punto è che molti di essi saranno guasti, per imperfezioni del materiale di partenza o del processo costruttivo. Allora il wafer stesso viene sezionato in frammenti (chip) che poi andranno riassemblati (anche in migliaia) per formare il computer. I segnali devono viaggiare da chip a chip e quindi devono essere robusti: ecco perché venivano preferiti i transistor bipolari. Ma con gli anni la tecnologia a effetto di campo ha fatto progressi straordinari ed è diventata in grado di popolare un chip con miliardi di transistor e quindi non serve più la tecnologia bipolare e il computer si può costruite con pochi chip, se non addirittura con uno solo, ossia il microprocessore. Questa è la storia raccontata in estrema sintesi. Ma occorre essere più precisi per comprendere meglio come è nato il microprocessore.
Nel 1955 Jules Andrus e Walter L. Bond dei Laboratori Bell iniziarono ad adattare le tecniche fotolitografiche esistenti per disegnare sui wafer di silicio circuiti molto più fini e complessi utilizzando uno strato di biossido di silicio che veniva creato al di sopra del wafer (di silicio). Questo strato veniva fatto crescere sul wafer e quindi, utilizzando opportune maschere, veniva dissolto in alcuni punti precisi secondo il disegno dell’elemento circuitale che si voleva costruire. Attraverso opportune maschere ottiche venivano definite aree precise nello strato di biossido, che poi venivano “aperte” mediante incisione chimica. Le impurità venivano diffuse attraverso queste aperture nel silicio sottostante per stabilire le zone di silicio di tipo n o di tipo p necessarie per creare i transistor (o i diodi). Nel 1958, e a seguito di ulteriori ricerche su cui sorvoliamo, Jay Last e Robert Noyce furono così in grado di costruire alla Fairchild una delle prime fotocamere cosiddette “step-and-repeat” per realizzare molti transistor identici su di un singolo wafer di silicio. A questo punto si può facilmente intuire che con l’evoluzione della fotolitografia sarebbe rapidamente cresciuta la capacità di calcolo dei computer e in prospettiva si poteva immaginare che il computer stesso avrebbe potuto essere creato su di un solo chip. Oggi la fotolitografia consente di costruire transistor con sezioni intrinseche delle dimensioni di qualche nanometro: qualcosa di incredibile. In virtù di quanto abbiamo detto non deve quindi sorprenderci il fatto che alla fine degli anni ’60 del XX secolo si fosse anche cominciato a considerare sempre più spesso se fosse possibile costruire un computer su di un solo chip. Tuttavia si pensava che la tecnologia dei circuiti integrati non fosse ancora pronta. Ted Hoff era stato probabilmente il primo a riconoscere che la nuova tecnologia della Intel (non bipolare ma a effetto di campo) potesse rendere possibile il creare una CPU a chip singolo, soprattutto se fosse stata sviluppata un’architettura di computer sufficientemente semplice. Sorvolando sulle ricerche allora fatte da Gilbert Hyatt alla Micro Computer, ricerche che avevano persino portato a una disputa legale tra lo stesso Hyatt e i fondatori della Intel, ossia Robert Noyce e Gordon Moore, possiamo osservare che Noyce e Moore si impegnarono al massimo per fare di Intel uno dei maggiori produttori di chip al mondo. In quegli stessi anni diverse ricerche negli USA vennero condotte per realizzare un chip che funzionasse come un computer, e tra queste la Four-Phase Systems, una società appena fondata da ex ingegneri Fairchild, guidati da Lee Boysel, che progettò l’AL1, un chip, contenente otto registri e un ALU. Furono avviate ricerche anche da Gary Boone e Michael Cochran nella Texas Instruments e nel 1971 il chip della Texas era pronto: il TMS 1000 che divenne un prodotto commerciale nel 1974. Ma all’inizio del 1969, una piccola azienda giapponese di microelettronica, la Busicom , stava progettando una gamma di calcolatrici programmabili di prossima generazione. Busicom aveva contattato la allora poco conosciuta Intel, e nell’aprile 1969 fu firmato un contratto per sviluppare un chip set personalizzato per un piccolo computer. Busicom propose alla Intel di produrre un set di 7 chip personalizzati. I progettisti giapponesi desideravano chip separati per il controllo del programma, per l’aritmetica decimale, per la ROM, per l’aritmetica binaria, per il controllo della stampante, per le porte di uscita e per la logica di temporizzazione. Intel allora incaricò il suo responsabile delle applicazioni, Ted Hoff, e successivamente gli ingegneri Federico Faggin e Stan Mazor, di avviare un progetto congiunto con il progettista della Busicom, Masatoshi Shima. Ted Hoff comprese molto presto che il disegno a 7 chip non poteva soddisfare gli obiettivi di costo per il progetto e sarebbe stato troppo complesso. E si rese anche conto che la Intel poteva realizzare quattro chip in grado di eseguire il lavoro dei sette proposti da Busicom. Intel e Busicom raggiunsero quindi un accordo per finanziare questo secondo progetto che vide rapidamente la luce.
Così Intel riuscì a realizzare nel marzo del 1971 la prima CPU a chip singolo, il cosiddetto microprocessore 4004. Inizialmente il chipset 4000 era costituito da 4 chip: 4004, 4001 (la ROM), 4002 (la RAM), 4003 (il registro a scorrimento). Federico Faggin guidò il team di progettazione insieme a Ted Hoff e Stan Mazor, che prepararono il software per il nuovo chip. Era avvenuta una vera una rivoluzione nella microelettronica. Il team aveva creato un chip che consisteva di 2300 transistor con tecnologia P-MOS su di un’area di silicio di circa 3 x 4 millimetri, utilizzando una risoluzione fotolitografica di 10 micron (oggi si lavora intorno ai nanometri: ecco la legge di Moore in azione!). Il chip aveva di fatto la stessa capacità di calcolo del celebre ENIAC costruito durante la seconda guerra mondiale con 18000 valvole termoioniche. L’Intel 4004 utilizzava l’aritmetica decimale in codice binario su una parola a 4 bit, eseguiva circa 100000 istruzioni al secondo, con un set di 45 istruzioni. Il clock operava a 108 kHz, mentre la velocità di clock massima era di 740 kHz. Il 4004 utilizzava un bus di memoria a 4 bit per il trasferimento, indirizzi a 12 bit, istruzioni a 8 bit e parola dati a 4 bit. Il set di registri conteneva 16 registri di 4 bit ciascuno. Si chiamava “Microcomputer on a chip” (il termine microprocessore non fu usato fino al 1972.) La prima pubblicità conosciuta per il 4004 risale al novembre 1971, e apparve su Electronic News. Intel decise rapidamente di riacquistare il disegno e diritti di commercializzazione del 4004 da Busicom per 60000 dollari. E questa fu una mossa strategicamente vincente: Intel sarebbe diventata un gigante della microelettronica.
Tuttavia Intel non fu l’unica a capire l’importanza e il ruolo strategico dei microprocessori. Poco tempo dopo, nel 1974, la Motorola presentò il suo microprocessore 6800 e quindi nel 1976 apparve lo Zilog Z80 creato dalla Zilog, fondata nel 1974 dallo stesso Federico Faggin. Nel 1973 la National Semiconductor introdusse il primo microprocessore IMP-16 a 16 bit, seguito successivamente rapidamente dal TMS 9900 della Texas Instruments, introdotto nel 1976. I microprocessori a questo punto cominciarono ad evolversi anche secondo una denominazione sempre più in uso: a 8 bit, a 16 bit, a 32 bit. Cosa significava? In generale, un microprocessore a N bit ha una ALU (Arithmetic Logic Unit), registri, un bus di indirizzi o bus di dati con capacità di trasferire simultaneamente N bit. Questa è una definizione piuttosto ampia, perché alcune architetture di microprocessori hanno un misto di capacità di trasferimento diverse, internamente e verso l’esterno. Detto in termini semplici, disporre di 16 bit significa allora poter trasportare i dati al proprio interno due volte più velocemente di un microprocessore a 8 bit. Inoltre nell’esecuzione di funzioni matematiche, il microprocessore a 16 bit è più preciso e affidabile di quello a 8 bit. Intel creò il suo primo processore a 16 bit, l’8086, nel 1978. Era compatibile con l’8080 e l’8085 (un derivato dell’8080). Il chip 8086 divenne allora il microprocessore più popolare andando a costituire il cuore di innumerevoli dispositivi microelettronici di quel tempo. Il più significativo dei progetti a 32 bit fu il Motorola MC68000, introdotto nel 1979. Il 68K, come veniva colloquialmente denominato, disponeva di registri a 32 bit ma utilizzava i percorsi interni per il trasferimento dei dati a 16 bit e un bus dati esterno a 16 bit per ridurre numero di pin e supportava solo indirizzi a 24 bit. Motorola lo descriveva correttamente come un processore a 16 bit, sebbene avesse di fatto chiaramente un’architettura a 32 bit. La combinazione di prestazioni elevate, ampio spazio di memoria (16 megabyte (2 ^ 24)) e costi piuttosto bassi lo rese il progetto di CPU più popolare della sua classe. Giusto per fare un esempio due famiglie di prodotti di enorme successo commerciale, come Apple Lisa e Macintosh, utilizzavano il 68000, così come molti altri progetti a metà degli anni ’80, tra cui Atari ST e Commodore Amiga. Il primo microprocessore al mondo a chip singolo completamente a 32 bit, con percorsi dati a 32 bit, bus a 32 bit e indirizzi a 32 bit, è stato l’AT & T Bell Labs BELLMAC-32A, con i primi prodotti disponibili già nel 1980 e quindi con una produzione generale in 1982.Ma siamo già nel 1982 e i Personal Computer, cresciuti sui microprocessori, stanno ormai prendendo il largo dando un formidabile impulso all’evoluzione dell’informatica.
IMMAGINI
INTEL 404 – IL PRIMO MICROPROCESSORE DELLA STORIA (1971)
FEDERICO FAGGIN CON UNO DEI PRIMI MICROPRPOCESSORI INTEL
COMPUTER ENIAC (ANNI QUARANTA) – Il computer occupava una superficie di 180 metri quadrati e aveva un peso di 30 tonnellate