La storia del PC è legata alla storia dell'Intel, che con la sua linea di processori a basso costo ha
permesso lo sviluppo e l'ampia diffusione dei PC. Altri produttori, come la Motorola, hanno messo
sul mercato CPU di qualità, ma non hanno avuto la stessa diffusione ed importanza dell'Intel.
L'AMD e, per un certo tempo la Cyrix, hanno creato "cloni" delle CPU Intel, quasi completamente
compatibili. L'AMD, coll'Athlon, ha prodotto ad un certo punto processori migliori di quelli
dell'Intel, e con l'Athlon 64 e' stata protagonista dell'evoluzione dei PC verso i 64 bits. Attualmente
Intel ed AMD si spartiscono il mercato delle CPU per PC, ci sono anche altri fornitori, ma di meno
successo. L'architettura di queste CPU e' denominata X86, questi processori hanno un set di
istruzioni di tipo CISC, con parole in little endian order. Le prime versioni di queste CPU avevano
16 registri a 16 bit : 4 registri generali utilizzati per i calcoli e vari registri speciali, che servono a
gestire puntatori alla memoria, gli IRQ, le eccezioni etc.; con i processori 386 i registri furono
portati a 32 bits, vennero poi introdotti registri ed istruzioni per il calcolo float. Le versioni
successive videro aggiunte dedicate alla grafica, come le istruzioni MMX, che utilizzano i registri
float per istruzioni di tipo SIMD, le istruzioni SSE, che utilizzano 8 nuovi registri a 128 bit per il
calcolo float. Pian piano siamo arrivati agli odierni microprocessori i quali hanno subito numerose
evoluzioni rendendoli sempre più potenti ed efficienti.
Con l’Intel 8086 inizia la storia dei PC, esso è l’antenato dei processori odierni, i quali sono delle
evoluzioni che mantengono lo stesso tipo di architettura.
Questo processore racchiudeva in se circa 29.000 transistor e aveva una frequenza di clock di circa
8 Mhz. Il package ha una struttura detta “Dual Line” che significa che ha due file di 20 pin
parallele.
L'unità di interfaccia con il bus (detta BIU da Bus Interface Unit) passa le istruzioni all'unità di
esecuzione (detta EU da Execution Unit attraverso una coda di prefetch, in modo che il fetch e
l'esecuzione delle istruzioni fosse contemporaneo – una forma primitiva di pipelining (le istruzioni
dell'8086 avevano una dimensione tra 1 e 4 byte).
L’Intel 8086 è un microprocessore a 16 bit progettato dalla Intel nel 1978, che diede origine
all'architettura x86. È basato sull'8080 e sull'8085, con un insieme di registri simili, ma a 16 bit.
Ha quattro registri a 16 bit per uso generico, a cui si può accedere come se fossero otto registri a 8
bit, e quattro registri a 16 bit di indice. I registri per i dati sono spesso utilizzati implicitamente dalle
istruzioni, complicando l'uso degli stessi per memorizzare valori temporanei. Ha uno spazio di
indirizzamento a 16 bit per l'I/O cioè può accedere a 65.536 dispositivi di I/O a 8 bit e dispone di
una tabella di vettori per gli interrupt fissa. La maggior parte delle istruzioni possono accedere ad
una sola locazione di memoria, perciò uno degli operandi deve essere un registro. Il risultato viene
memorizzato in uno degli operandi.
Ci sono anche quattro registri per i segmenti che possono essere calcolati dai registri di indice. I
registri di segmento permettono alla cpu di accedere ad un megabyte di memoria in un modo
particolare. Invece di fornire i byte mancanti, come nella maggior parte dei processori che
supportano la segmentazione, l'8086 fa uno shift a sinistra di 4 bit del registro di segmento e lo
somma all'indirizzo. Il risultato è che i segmenti si sovrappongono, il che è stato considerato come
un indice di cattiva progettazione da molti sviluppatori. Anche se questo fu un vantaggio per la
programmazione in linguaggio assembly, dove il controllo sui segmenti è completo, causò
confusione nei linguaggi che fanno molto uso dei puntatori (come ad esempio il linguaggio C). Rese
difficile una rappresentazione efficiente dei puntatori e rese possibile avere due puntatori con valori
diversi ma che puntano ad una stessa locazione di memoria. Inoltre questo scherma rese difficile
aumentare lo spazio di indirizzamento a più di un megabyte.
INTEL 8086
ARCHITETTURA DI UN SISTEMA
BASATO SU MICROPROCESSORE Intel
8086
BUS DI DATI 16 BIT
INPUT
ROM
RAM
CPU
OUTPUT
BUS DI INDIRIZZI 8 BIT
BUS DI CONTROLLO 5 BIT