Storia
Il microprocessore nasce nel 1971 a Santa Clara, in California, nella sede della nascente Intel, fondata nel 1969. Dopo avere introdotto la prima memoria a semiconduttore (il chip Intel 1101A) essa presenta il primo sistema a microprocessore, costituito da 4 chip e denominato MCS-4 (MicroComputer System 4). Prima del microprocessore il concetto di calcolatore era conosciuto solamente dalle grandi aziende e da alcuni governi, anche perché le macchine usate per il calcolo erano enormi e costosissime da produrre. Nemmeno l’introduzione, circa 10 anni prima, del circuito integrato (un circuito integrato è un dispositivo formato da una piccola piastra di silicio (chip) su cui sono raggruppati componenti elettronici diversi come condensatori, resistenze e transistor. Il numero di componenti raggruppabili su un singolo chip viene chiamato scala di integrazione (o livello di integrazione) ed è cresciuto da poche decine di componenti a migliaia o milioni di componenti su uno stesso chip.) da parte della Texas Instruments permise di ridurre in modo significativo il costo, l’ingombro e il consumo delle macchine di calcolo.
Il circuito integrato tendeva sì a ridurre la grandezza di componenti elettronici discreti (come transistor e resistenze), miniaturizzandoli su di un circuito di qualche millimetro quadrato, ma per svolgere i compiti di un elaboratore di media potenza erano necessari diverse centinaia di circuiti integrati (o “chip”), ed il tutto era comunque complicato e costoso. Poi il 15 novembre 1971 Intel decretò la svolta. Senza precedenti! Infatti il Sistema di Calcolo Integrato MCS-4, con soli 4 Circuiti Integrati, svolgeva il 70% delle funzioni tipiche di un sistema di calcolo di bassa potenza quale poteva essere un registratore di cassa elettronico, che allora conteneva oltre 40 circuiti integrati, ognuno progettato per eseguire una specifica funzione. In effetti non si trattava più di semplici circuiti integrati. I 4 chip del Sistema MCS-4 integravano tutta la logica di un sistema di calcolo completo, seppur di bassa potenza. Infatti erano presenti un chip di memoria ROM, uno di memoria RAM, un chip di controllo ed il microprocessore (o CPU, Central Processing Unit) vero e proprio, chiamato Intel 4004 (foto). Tutte le funzioni di calcolo matematico erano svolte all'interno di questo chip da 2.300 transistor. Più in profondità, il 4004 era un processore a 4-Bit con un set di circa 60 istruzioni (alcune ad 8-Bit) e con registri a 4-Bit. La potenza di calcolo pare si attestasse sui livelli del mastodontico ENIAC (una macchina con 18.000 valvole) ma con la limitata possibilità di gestione dei dati dovuta ai solo 4-Bit che poteva trattare (la struttura dell’ENIAC pare fosse invece a 44-Bit!). Su 4-Bit, infatti, era possibile codificare solo 16 simboli, per cui non era possibile impiegare questo chip per funzioni quali calcolo scientifico (dove vi sono simboli e funzioni avanzate) o videoscrittura (dove era necessario rappresentare i simboli dell’alfabeto). In pratica era un microprocessore adatto ad una calcolatrice (ed in effetti le odierne calcolatrici hanno proprio processori a 4-Bit, molto simili al 4004, in pratica è come avere un “ENIAC” nel palmo della mano!) e non ad un vero computer! Ma Intel ebbe subito la consapevolezza che il nuovo componente da lei progettato, il Microprocessore, potesse ulteriormente accrescere le sue potenzialità. In seguito il 4004 venne affiancato dal processore 4040, che possedeva la stessa architettura del 4004 ma integrata in se alcune delle componenti elettriche esterne al 4004! Il bus dati era a 12-Bit multiplexato (in pratica era un bus “serializzato”, che permetteva di impiegare meno piedini rispetto ad un bus da 12-Bit “parallelo”, come quelli usati dalla maggior parte dei processori successivi).Qualche anno più tardi Intel introduce il primo processore ad 8-Bit, l’Intel 8008. Si tratta in effetti di un processore assai simile al 4004, ma che permette di estendere le funzioni di calcolo alla manipolazione dei dati e dei simboli. Infatti con 8-Bit era possibile rappresentare 256 simboli differenti. Ma le limitazioni intrinseche dell’architettura, troppo legata al 4004, non permettevano ancora di raggiungere quel non-plus-ultra che serviva nell’impiego del nascente computing.
In pratica possiamo considerare il chip 8008 come un processore ad 8-Bit per calcolatrice. In questo caso, però, con la differenza di poter manipolare anche dati non strettamente numerici, quindi siamo di fronte al primo processore per calcolatrice scientifica! Il set di istruzioni pare fosse ancora lo stesso del 4004, solo che in questo caso completamente ad 8-Bit, inoltre il chip ebbe impieghi come controller! Ma il primo vero processore per computer, anch’esso ad 8-Bit, fu il chip 8080. Intel confezionò un processore senza precedenti. Tutte le funzioni principali di un computer di media potenza erano svolte da questo chip. Era il periodo dei minicomputer, i primi computer con componenti integrati (non veri microprocessori! In queste macchine il processore era in pratica contenuto su una scheda che integrava diversi circuiti integrati) che non misuravano più tre metri in altezza e consumavano come 50 stufe. Ma certamente queste macchine non erano alla portata del grande pubblico. Da tempo molte aziende cercavano qualcosa che potesse fare la differenza. Ebbene il primo spiraglio venne proprio con l’introduzione dell’8080. Esso venne così impiegato nel primo computer da casa, il famosissimo, anche perché ebbe un successo enorme, Altair (simile al C64). Il primo Personal Computer arriverà solo nel 1981, con il PC IBM.
Il microprocessore Intel 8080A, ad 8-Bit
L’Intel 8080 disponeva di un’architettura del tutto nuova. In primo luogo era completamente ad 8-Bit, con registri ad 8-Bit e bus dati ad 8-Bit. La manipolazione dei dati veniva estesa con nuove funzioni implementate in un set di istruzioni più ampio e completamente ad 8-Bit e veniva impiegata la gestione delle priorità tramite Interrupt. L’Interrupt è in effetti stato introdotto già con l’8008, ma solo con l’8080 viene correttamente supportato. Si tratta di comunicare con il processore tramite degli impulsi che gli indicano di fermarsi per dare ascolto ad una periferica che chiede di essere esaudita. Viene supportata anche una maggiore quantità di memoria (64-KB).
La maggiore quantità di memoria indirizzabile permetteva la manipolazione anche di dati grafici, matematici e scientifici. Ma l’8080 conteneva anche degli errori! I cosiddetti “bug” sono delle imperfezioni che sono presenti in qualsiasi circuito integrato, anche che non sia un processore. Nei processori, però, i bug possono provocare problemi ai programmi che vi si eseguono, per cui sono molto più fastidiosi. In effetti i bug sono imprevedibili ed è praticamente impossibile eliminarli. La sofisticazione insita nei microcircuiti dei processori è tale che, per quanti controlli si effettuino (e non sono pochi, in quanto ogni microprocessore è sottoposto a severi test per molti giorni) non si potranno mai eliminare tutti. È anche capitato che alcuni bug si siano poi rivelati utili per alcuni scopi, mentre altri, come quello famoso del Pentium, ha dato non pochi grattacapi sia a Intel che agli utenti. Qualunque processore possiede diversi bug, più o meno gravi. La maggior parte si conoscono in seguito alle stesse prove effettuate dalle fabbriche di microprocessori, e molte, quelle più insidiose, vengono via via corrette nelle successive revisioni dello stesso processore. Ma su un processore nuovo è possibile che compaiano altri bug, di tipo diverso. Comunque la maggioranza dei bug possono essere aggirati dai programmatori, che impiegano le disposizioni della casa produttrice del chip per creare stratagemmi atti a bypassare gli eventi catastrofici che i bug possono innescare. Ma non sempre questo è possibile. Tuttavia bug molto insidiosi ve ne sono stati pochi, il più insidioso dei quali fu proprio quello del Pentium. In seguito Intel ha fornito, per ogni suo processore, la lista completa di tutti i bug presenti nelle sue CPU, in modo da scongiurare problemi. Altre volte, alcuni bug sono stati addirittura spacciati per “advanced feature” (funzioni avanzate). E fu il caso proprio dell’8080. Esso presentava un bug, abbastanza insidioso (ma non catastrofico) che in un primo momento venne spacciato come funzione in più del processore, mentre in seguito venne corretto con l’introduzione dell’8080A. Volendo ancora estendere le funzionalità dell’8080A Intel presentò poi l’8085, ancora ad 8-Bit ma più potente ed evoluto. Pare che integrasse lo stesso set di istruzioni dell’8080, aggiungendo solo due istruzioni in più, inoltre integrava al suo interno alcune sezioni a 16-Bit (ma manipolava comunque dati ad 8-Bit). A quest’ultimo si inspirò lo Z80 della Zilog, il primo processore non-Intel ad avere un grosso successo commerciale dopo l’8080.
Nel 1978 nasce l’era dei 16-Bit. Il primo processore a 16-Bit della Intel si chiama 8086 ed estende enormemente le prestazioni e le potenzialità dei predecessori (è dieci volte più veloce del 4004). L’architettura è completamente a 16-Bit, con registri a 16-Bit e bus dati a 16-Bit, mentre il bus indirizzi era 20-Bit. Da notare che il bus indirizzi non concerne al raggiungimento delle prestazioni. Un bus dati a 16-Bit è più veloce di uno ad 8-Bit perché trasferisce più dati nello stesso tempo. Il bus indirizzi non trasferisce dati. Il bus indirizzi determina appunto gli “indirizzi di memoria” che il processore potrà direttamente utilizzare. Più è ampio questo bus, più ampia è la quantità di memoria che il processore sarà in grado di supportare. Con 20-Bit il processore 8086 è capace di “indirizzare” un massimo di 1.024-KB di memoria (1-MB). Anche se installassimo 2-MB, il processore non vedrà più di 1-MB di memoria. Con il processore 8086 nasce, effettivamente, l’architettura (anche detta binaria, perché relativa alle istruzioni binarie che definiscono le funzionalità dell’architettura stessa) 80×86, definita anche come iAPX86. Il set d’istruzioni base, a 16-Bit, resterà la base per tutti i futuri processori Intel. Resterà a 16-Bit fino al 286, e sarà esteso a 32-Bit, restando sempre e comunque compatibile con quello a 16-Bit, a partire dall’80386. Solo con il Pentium Pro sarà aggiunta una nuova istruzione. La compatibilità verso il passato dei processori x86 è stata una delle più grandi peculiarità che ha decretato il successo di quest’architettura. In questo modo tutti i successori dell’8086 avrebbero potuto eseguire i programmi scritti in origine per l’8086, anche se, a lungo andare, questa certezza venne in parte vanificata.
Ma quando IBM decise di produrre il suo Personal Computer, presentato nel 1982, essa impiegò la versione ridotta, e a basso costo, dell’8086. Si trattava dell’8088. Aveva 40 pin, come anche l’8086, e la sua struttura interna era basata sul vero nucleo 8086, l’unica differenza era l’impiego di un bus dati esterno (verso la scheda madre), a soli 8-Bit che permetteva di adattare le schede madri ad 8-Bit, meno costose. Per il resto restava invariato anche il bus indirizzi, sempre a 20-Bit. Il fatto che il bus dati fosse ad 8-Bit implicava che il processore fosse più lento nelle operazioni di lettura dei dati dalla memoria o nel trasferimento degli stessi verso l’esterno. In pratica un 8086 trasferiva i dati in un solo impulso di clock, mentre l’8088 trasferiva gli stessi 16-Bit in due tempi, in due cicli di clock. IBM lo scelse per contenere i costi! L’8088 potrebbe essere considerato alla stregua dell’odierno Celeron. Infine, IBM ed Intel ebbero un successo senza precedenti!
Nel corso degli anni l’8088 e l’8086 vennero anche “clonati” da diverse società (Siemens, AMD, Philips, NEC, Fujitsu, OKI ed altre) che ottennero specifiche licenze da Intel. In effetti la stessa IBM intimò ad Intel di scegliere una second source (ovvero una seconda società del silicio) alla quale affidare parte della produzione dell’8088, altrimenti si sarebbe rivolta a qualche altra società (pensate se Intel non avesse accettato! IBM avrebbe potuto chiudere un contratto con Motorola molto tempo prima, o comunque l’avrebbe chiuso con qualche altra società del silicio). E secondo indiscrezioni Intel, in un primo momento, avrebbe scelto la giapponese NEC, con la quale aveva avuto già rapporti precedenti. Alla fine, però, Intel finì per scegliere AMD (si dice che vi furono pressioni da parte di IBM, se non da parte dello stesso governo americano). Insomma si insinuò la “paura” di esportare nelle mani di una società giapponese la nascente tecnologia del silicio americana e quindi la scelta finì su AMD (a quanto sembra) che era americana, ma Intel, che pare avesse già avuto contatti con NEC per il licensing dei progetti 8088/8086, lasciò comunque a NEC la facoltà di adottare le licenze di queste CPU, senza però poter sfruttare il nome originale! Per questo NEC, qualche tempo dopo, creò i processori V20 (8088 compatibile) e V30 (8086 compatibile) ottenendo delle speciali licenze dalla stessa Intel. In origine i processori 8086 ed 8088 funzionavano a 4, 8 e 10-MHz. Successivamente, in particolare i cloni, raggiunsero frequenze più elevate (fino a 12-MHz ed oltre).Sempre nel 1978 Intel presentò anche la versione microcontroller dell’8086. Si trattava del processore Intel 80186 ad alta integrazione. Si trattava di processore che integrava lo stesso nucleo a 16-Bit dell’8086 con tanto di bus indirizzi a 20-Bit e indirizzamento ad 1-MB di memoria RAM. Erano forse state integrate delle istruzioni aggiuntive, che contemplavano la manipolazione dati in ambito industriale (controllo numerico ecc.).
Oltre al nucleo dell’8086, sullo stesso circuito del processore erano state integrate molte delle periferiche esterne dell’8086, in modo da rendere il processore semplice da implementare. Si trattava del primo processore ad altissima integrazione. In pratica buona parte delle componenti del PC IBM erano contenute in un solo circuito da 68 piedini. Ma sebbene l’architettura base risultava essere la stessa dell’8086, le nuove funzionalità aggiunte resero necessario un numero di pin aggiuntivi. Ma nel periodo che spazia dal 1978 al 1984 la mentalità informatica non si rivelò pronta ad un così grande passo. Ancora oggi, sebbene i processori si siano sempre più evoluti nella direzione tracciata dall’80186 (integrare quanti più componenti nello stesso chip) non abbiamo un vero computer su singolo chip. Unica piccola avvisaglia è stato il MediaGX di Cyrix, che integrava audio e video sul processore. Si attendeva inoltre Intel, che doveva presentare Timna, un Celeron con Audio e Video integrati, ma ormai anche questo progetto è stato abbandonato. Premettiamo che Intel presentò già nel 1989 un processore che integrava una sezione grafica ad alte prestazioni. Si trattava del processore RISC 80860 (Intel 860) a 32/64-Bit. Ma anche questo chip è stato via via rimpiazzato dalla crescente avanzata delle società produttrici di soluzioni grafiche. I processori grafici attuali contano dai 6 ai 9 milioni di transistor. Nel 1989 il processore 80860 integrava una sezione grafica avanzata (per quel periodo) in soli 1.200.000 transistor (che comprendevano processore e sezione grafica, ovviamente). Ma integrare oggi uno dei processori grafici più evoluti in un processore come un Celeron sarebbe fare lo stesso sbaglio fatto da Intel con l’80186. Forse anche per questa difficoltà Timna è stato abbandonato. Insomma Intel possiede la capacità tecnologica necessaria a produrre un singolo chip che implementi tutto un vero computer, ma ancora oggi il costo proibitivo di una tale soluzione sarebbe un sicuro fallimento commerciale. Per questo Intel, anche guardando agli errori passati, ha dovuto sempre cercare un compromesso.
Stessa cosa avvenne anche con il Pentium Pro. E allo stesso modo l’alta integrazione unità alla grande potenza non bastarono a fare accettare un processore che costava quattro volte un semplice Pentium. Per questo, ancora una volta, Intel ha risemplificato il Pentium Pro per renderlo maggiormente economico e lo ha fatto diventare Pentium II.
Tornando all’80186, la stessa IBM preferì attendere l’80286 (successore dello stesso 80186) per rimpiazzare l’ormai limitato 8086. L’80186 era in pratica identico all’8086 quando non eseguiva operazioni prettamente microcontroller, e pur essendo assai integrato, la sua potenza elaborativa non era così eclatante come ci si sarebbe aspettati. Fu anche questo aspetto a rendere poco appetibile il chip. Il costo della soluzione, probabilmente più che doppio rispetto ad un sistema 8086, non giustificava un incremento di prestazioni che sembrava essere assai limitato (meno del doppio a quanto sembra). Per fortuna che al mancato successo in campo PC non seguì pari sfortuna nel campo industriale. Il processore 80186, per le sue peculiarità microcontroller, è stato ampiamente impiegato in sistemi industriali per il controllo delle macchine e poi, via via che anche il prezzo si ridusse a causa dell’evoluzione generazionale dei processori Intel, venne impiegato in diverse mansioni negli stessi Personal Computer (come controller per Hard Disk, come controller IDE intelligente e ad alta velocità, come controller su schede di rete e in moltissime altre applicazioni, che spaziavano dall’ambito video a quello della gestione dei segnali, anche come pseudo-DSP, e via dicendo). Lo si poteva trovare In molte macchine 386 e 486 e ancora in alcune macchine Pentium su alcuni Hard Disk della società Maxtor nella sua versione 80196 (80186 ulteriormente evoluto, ancora oggi assai usato in molti apparecchi, anche di recente generazione, quali scanner e simili). Anche dell’80186 venne creata una versione dotata di un bus dati ad 8-Bit. Si trattava dell’80188, che in pratica ricalcava quello che l’8088 era per l’8086. Il bus dati ad 8-Bit riduceva le prestazioni di I/O ma garantiva una maggiore economicità della soluzione. 80186 e 80188 vennero impiegati anche in alcune macchine portatili (per via della loro alta integrazione, che permetteva di ridurre l’ingombro delle schede madri e di ridurre anche il consumo di corrente) e si potevano, e si possono ancora oggi trovare, anche in sistemi di telecomunicazione, in particolari sistemi di elaborazione industriale o anche in sistemi medicali per ospedali, in alcune workstation, anche con processore principale non Intel, in alcune stampanti o scanner di qualche tempo addietro e anche nelle macchine Acorn Archimedes che impiegavano il processore ARM (acronimo della società, Acorn RISC Machine della prestigiosa Università di Cambridge, in Inghilterra) a 32-Bit (che, qualche tempo fa, faceva concorrenza alle CPU di Apple e Amiga e ai processori Intel a 32-Bit). Successivamente il processore ARM divenne StrongARM, grazie ad un accordo con la prestigiosa Digital (produttrice del superprocessore Alpha) che poi venne acquisita da Compaq e cedette la divisione di produzione del silicio ad Intel (che ora produce anche gli stessi chip Alpha che Digital/Compaq commercializza ancora), insieme al progetto dello stesso StrongARM, che Intel continua a produrre. L’80186 (come il fratello 80188) venne quindi usato poco come processore principale del PC, mentre trovò impiego su alcuni PC portatili per via della sua alta integrazione e il ridotto ingombro e soprattutto in PC industriali e per apparecchiature mediche. Esiste poi, come accennato, una versione ulteriormente avanzata, chiamata 80196 (ed esiste anche la controparte 80188, l’80198), progettata da Intel per estendere le funzionalità standard dell’80186 e tenerle al passo coi tempi!
- Scienze