|
Appunti informatica |
|
Visite: 1589 | Gradito: | [ Medio appunti ] |
Leggi anche appunti:Sistemi Distribuiti: IntroduzioneSistemi Distribuiti: Introduzione I sistemi distribuiti nascono negli Protezione e SicurezzaProtezione e Sicurezza Si parla di protezione in presenza di meccanismi, messi Dvd : morira' il cd?Dvd : morira' il cd? Sono passati poco più di 14 anni da quando nel 1982 |
Il microprocessore: storia ed evoluzione
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. Oggi forse sorridiamo pensando a quanto sia insignificante questo processore paragonato, ad esempio, al Pentium 4, ma allora esso fu il primo vero computer su singolo chip. 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) 80x86, 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!
Appunti su: |
|