21-­‐10-­‐2010 Intel 8086
Intel 8086
 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 (è compatibile con
l'assembly dell'8080), 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 (incluso lo stack pointer).
A. FERRARI
MATERIALE DALLA DISPENSA DI P. OLLARI
 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.
 Il processore ha una velocità di clock tra i 4,77 (nei primi pc IBM) e i 10 MHz.
Wikipedia
X-86
Chip 8086
 Con x-86 si intende l’architettura di microprocessori inizialmente sviluppata
dall’azienda Intel negli anni ’70, e che è ancora oggi predominante sul mercato
mondiale. Altre importanti aziende producono calcolatori basati su questa
tecnologia, i cui diritti sono stati a suo tempo venduti, ad esempio AMD.
 Il nome x-86 deriva dal primo microprocessore della serie, Intel 8086 (1976), a
cui sono seguite numerose versioni via via più potenti che hanno mantenuto il
suffisso nel nome: 8088 (1979), 80186 (1980), 80286 (1982), 80386 (1986),
80486 (1989).
 Sono da considerarsi macchine x-86 anche i modelli successivi all’80486, che
hanno dovuto rinunciare al nome ‘numerico’ per l’impossibilità di brevettarlo:
Pentium (o P5, 1993), Pentium Pro (o P6, 1995), Pentium II (1997), Pentium III
(1999), Pentium 4 (o P7, 2000), Pentium M (2003), Pentium D (2005), Core 2
Duo (o P8, 2006).
 Tutti i processori di questa famiglia sono tutti retrocompatibili e, in particolare,
tutti ancora in grado di eseguire le istruzioni originali dell’ISA primitiva del
progenitore, l’Intel 8086, benché esso fosse una macchina a 16 bit, mentre le
ultime citate sono tutte a 32 bit e, in parte, a 64 bit.
Intel 8088
Chip 8088
 Intel 8088 è un microprocessore a 4.77MHz prodotto dalla Intel
basato sull'8086.
 Ha un'architettura interna a 16 bit (come l'8086), un data bus a 8
bit (la metà dell'8086) e un address bus da 20 bit, quindi l'8088 è in
grado di indirizzare 220 = 1.048.576 byte = 1MB di memoria.
 Questo processore fu utilizzato nei primi PC IBM.
 Quando uscì sul mercato i pregi dell'8088 rispetto all'8086 erano la
frequenza di clock maggiore (4.77 MHz) e il prezzo inferiore.
 Nonostante l'introduzione di modelli successivi e di gran lunga più
avanzati, l'8088 è uscito di produzione solo nel settembre del 2007;
non veniva più usato come processore per PC dal 1992, ma
nell'industria aveva trovato altri interessanti impieghi.
Wikipedia
1 21-­‐10-­‐2010 Architettura 8086
Architettura
Address bus (20 bits)
 L'Intel 8086 (consideriamo l’Intel 8088 come del
tutto equivalente, anche se il bus dati è a 8 bit), è un
microprocessore a 16 bit (ampiezza dei registri e del
Dbus) con 20 linee sull’Abus per un totale di 1Mbyte
di spazio di indirizzamento fisico (220 = 1048756
celle).
 L'unità di interfaccia con il bus o Unità di Controllo è
denominata BIU (Bus Interface Unit), e passa le
istruzioni all'ALU (detta EU da Execution Unit.
Execution Unit
(EU)
AH
AL
BH
BL
CH
CL
DH
General purpose
register
Σ
DL
SP
Segment
register
BP
SI
DI
CS
SS
ALU Data bus
(16 bits)
ALU
ES
IP
Instruction Queue
Flag register
Data bus
(16 bits)
DS
Bus
control
External bus
EU
control
Bus Interface Unit (BIU)
Registri
 L'Intel 8086 possiede 14 registri da 16 bit, di cui quattro registri
per uso generico (AX, BX, CX, DX), a cui si può accedere anche
come se fossero otto registri a 8 bit (AH e AL, BH e BL, CH e CL,
DH e DL), due registri indice per indirizzare in memoria (SI, DI) e
due registri dedicati alla gestione dello stack (BP e SP).
 A questi si aggiungono altri quattro registri detti di segmento (CS,
ES, DS e ES), dedicati specificatamente all’indirizzamento della
Memoria. Completano il set di registri l’Instruction Pointer IP e il
registro PSW (Program Status Word), denominato Flag register.
 Lo spazio degli indirizzi di I/O si avvale di un indirizzamento a 16
bit, per un totale di 64KByte (216 = 65536) registri di Input/Output
disponibili. Completa la sezione di I/O un set di 8 linee di
interruzione hardware (poi ampliato a 16) e un canale DMA per
dispositivi di I/O con ampio traffico.
 La frequenza originale del clock di CPU valeva 4,77 MHz.
Registri
Tebella riassuntiva
 4 registri di uso generale, pur utilizzati frequentemente come registri di memorizzazione
temporanea (a 16 o a 8 bit), sono dedicati a precisi compiti e sono coinvolti
implicitamente in numerose istruzioni.
 AX,
o registro Accumulatore, è predisposto per le istruzioni aritmetiche (somme, sottrazioni, moltiplicazioni e
divisioni).
o registro Base, è l’unico dei registri di uso generale che può specificare un indirizzo di memoria
 BX,
 CX,
 DX,
o registro Contatore, è utilizzato implicitamente nelle istruzioni di conteggio dei cicli
o registro di I/O consente di indirizzare le porte di I/O. Usato anche in moltiplicazioni e divisioni.
 2 registri indice sono usati nelle istruzioni per manipolare array di caratteri (stringhe).
 SI, o registro Indice Sorgente, specifica l’indirizzo da cui leggere l’array
 DI, o registro Indice Destinazione, specifica l’indirizzo in cui scrivere l’array.
 2 registri dedicati allo stack sono in grado di indirizzare in memoria, anche se non
liberamente.
 BP,
o Base Pointer, contiene l’indirizzo di partenza della pila di stack, per poter gestire il passaggio dei parametri delle procedure
 SP,
o Stack pointer, contiene sempre l’indirizzo di memoria dell’ultimo elemento sullo stack.
 IP e Flag, sono registri non modificabili esplicitamente.
 IP,
o Instruction Pointer, contiene la parte meno significativa dell’indirizzo della prossima istruzione da eseguire. Il programmatore non lo
modifica mai.
 Flag, o registro dei Flags, è l’unico registro intepretato a singolo bit, ove ogni bit ha un significato differente e concorre a descrivere lo stato
attuale del Processore dopo l’esecuzione dell’ultima istruzione.
2 21-­‐10-­‐2010 Core i7 Extreme
 Core i7 Extreme è il nome commerciale di una serie di microprocessori x86
di nona generazione sviluppati da Intel e presentati il 17 novembre 2008.
 Le CPU Core i7 Extreme, insieme alle controparti di fascia medio alta Core
i7, sono state le prime incarnazioni della nuova architettura Nehalem,
successiva alla Intel Core Microarchitecture, e che andrà progressivamente
a sostituire in tutti i settori di mercato, prendendo gradualmente il posto
dei Core 2 Duo, Core 2 Quad e Core 2 Extreme.
 Come ormai abitudine da parte di Intel, i processori "Extreme" vengono
proposti per la fascia più alta del mercato desktop (e in un secondo tempo
anche mobile), e oltre ad avere valori di clock più elevati, vengono anche
accompagnati dalla presenza del moltiplicatore sbloccato sia verso il basso
che verso l'alto in modo da semplificare le operazioni di overclock tipiche di
questa fascia di utenti.
Wikipedia
3