Registri a 16 bit, Bus dati 16 bit, Bus indirizzi 20 bit (1 Mb di memoria).
Seguito a breve distanza dal piu` economico 8088 con bus ad 8 bit.
Il calcolo in virgola mobile e` gestito dall'8087.
E` ancora oggi usato in campo industriale.
Intel 80286
Registri a 16 bit, Bus dati 16 bit, Bus indirizzi 24 bit (16 Mb di memoria).
Il calcolo in virgola mobile e` gestito dall'80287.
E` la prima CPU che dispone del modo protetto, ad ogni applicazione
e` assegnato un livello di privilegio, e il sistema operativo puo` essere
piu` protetto dai malfunzionamenti delle applicazioni. Questa CPU non e`
mai stata utilizzata in tutte le sue potenzialita`, soprattutto perche`
i programmi per potere funzionare in modo protetto dovevano essere riscritti,
e sarebbero stati incompatibili col diffusissimo 8086.
Dal punto di vista software sono state aggiunte circa 30 nuove istruzioni.
Istruzioni modo protetto:
ARPL, regolazione rpl, es ARPL [BX],AX
CALL, chiamata a gate/task, es CALL 08h:0h
CLTS, azzeramento del flag si task, es CLTS
JMP, salto con cambio task o gate, es JMP 20h:0h
LAR, carica i diritti di accesso, es LAR AX,BX
LGDT, carica tabella globale dei descrittori (GDT), es LGDT FWORD [100]
LIDT, carica tabella degli interrupt (IDT), es LIDT FWORD [0]
LLDT, carica tabella locale dei descrittori (LDT), es LLDT AX
LMSW, carica word di stato, es LMSW AX
LSL, carica il limite di un segmento, es LSL AX,AX
LTR, carica il registro di task, es LTR AX
SGDT, memorizza GDT, es SGDT FWORD [BX]
SIDT, memorizza IDT, es SIDT FWORD [100]
SLDT, memorizza LDT, es SLDT AX
SMSW, memorizza word di stato, es SMSW AX
STR, memorizza registro task, es STR AX
VERR, verifica accesso in lettura, es VERR CX
VERW, verifica accesso in scrittura, es VERW DX
Altre istruzioni:
BOUND, controllo indici,es BOUND AX,[BX]
ENTER, creazione stack frame, es ENTER 8,0
IMUL, moltiplicazione, es IMUL AX,BX,5
INS[b,w], lettura da una porta di IO, es REP INSB
LEAVE, complementare a ENTER, es LEAVE
OUTS[b,w], scrittura su una porta di IO, es REP OUTW
POPA, riprisina registri generali, es POPA
PUSHA, salva registri generali, es PUSHA
RCL,RCR,ROL,ROR,SAL,SAR,SHL,SHR, shift immediato != 1, es SHR AX,5
Intel 80386
Registri a 32 bit, bus dati a 32 bit, bus indirizzi 32 bit (4096Mb di memoria).
E` stato successivamente prodotto il 386SX con un bus dati a 16 bit,
e con la possibilita` di utilizzare il coprocessore matematico 80287,
oltre al coprocessore "ufficiale" 80387.
Progettando 386 l'Intel non ha ripetuto gli errori fatti col 286 : la CPU puo` eseguire
codice 8086 pur trovandosi in modo protetto (chiamato modo V86), ed inoltre
e` possibile ritornare in modo reale (cosa non prevista dal 286).
Dal punto di vista software le modifiche sono veramente tante,
sono stati aggiunti 2 registri di segmento, FS e GS (i registri di segmento
sono sempre a 16 bit), 3 registri di controllo (CR0, CR2,CR3),
6 registri di debug (DR0,DR1,DR2,DR3, DR6,DR7),
5 registri di test (TR3,TR4,TR5,TR6,TR7),
e` stato potenziato il meccanismo di indirizzamento,
sono state aggiunte istruzioni sui bit, e shift a 64 bit.
Nuove istruzioni:
BSF, scansione in avanti dei bit, es BSF EAX,EAX
BSR, scansione all'indietro dei bit, es BSF EAX,EBX
BT, test del bit, es BT EAX,23
BTC, test bit e complemento, es BT ECX,12
BTR, test bit e reset, es BT EDX,EAX
BTS, test bit e impostazione, es BTS EDI,EAX
CDQ, estensione del segno di EAX in EDX, es CDQ
CWDE, estensione del segno di AX in EAX, es CWDE
Jcc, salto condizionale near, es JNZ 00120040h
LGS,LSS,LFS, caricamento puntatore, es LSS ESP,[EDI]
MOV, carica da/a registri spaciali, es MOV EAX,CR0
MOVSX, carica con estensione del segno, es MOVSX EAX,DL
MOVZX, carica con estensione dello zero, es MOVZX EAX,AX
SETcc, imposta byte su condizione, es SETNZ AL
SHLD/SHRD, shift a 64 bit, es SHRD EAX,EDX,3
Nuove istruzioni 80387:
FCOS, coseno di ST0, es FCOS
FSIN, seno di ST0, es FSIN
FSINCOS, seno e coseno di ST0, es FSINCOS
FUCOM, confronto senza ordine, es FUCOM ST1
FUCOMP, confronto senza ordine, es FUCOMP ST2
FUCOMPP, confronto senza ordine, es FUCOMPP
Intel 80486
Registri a 32 bit, bus dati a 32 bit, bus indirizzi 32 bit (4096Mb di memoria),
cache interna di 8kb.
Coprocessore matematico integrato, tranne nella versione SX. E` stata prodotto anche
il 486DX4 (1994), ovvero un 486 con frequenza tripla, e con alcune caratteristiche
presenti nei processori Pentium®.
Nuove istruzioni:
BSWAP, inverte l'ordine di memorizzazione dei byte, es BSWAP EAX
CMPXCHG, confronto e scambio, es CMPXCHG DX,BX
INVD, invalidazione della cache, es INVD
INVLPG, invalida un singolo elemento del TLB, es INVLPG [001230040]
WBINVD, write back e invalidazione, es WBINVD
XADD, scambia e somma, es XADD EAX,EBX
Intel Pentium®
Registri a 32 bit, bus dati a 64 bit, bus indirizzi 32 bit (4096Mb di memoria),
doppia pipeline, 8K di cache per codice e 8K per dati, branch prediction. Esiste anche la versione
"con tecnologia MMX" con istruzioni MMX aggiuntive e altre caratteristiche
del Pentium® Pro. Dal punto di vista software e` stato aggiunto il registro CR4
che controlla varie estensioni, che normalmente sono disabilitate, inoltre
i registri MSR (Model Spacific Registers) sostituiscono i
registri TRx presenti
nel 386 e nel 486, ed aggiungono altre funzionalita`.
Nuove istruzioni:
CMPXCHG8B, confronto e scambio di 8 byte, es CMPXCHG8B QWORD [012045000]
Registri a 32 bit, bus dati a 64 bit, bus indirizzi 36 bit (64Gb di memoria),
architettura superscalare con esecuzione fuori ordine, esecuzione speculativa,
branch prediction migliorata, cache di secondo livello integrata nel chip,
ottimizzato per applicazioni a 32 bit. Nuove funzionalita` che
possono essere abilitate tramite il registro CR4, istruzioni
movimento condizionale, registri MTRR (Memory Type and Range Registers).
Ottimizzazione del bus per elaborazioni multi processore.
Nuove istruzioni:
CMOVcc, caricamento condizionale, es CMOVNC EAX,EDI
CPUID, supporto esteso (EAX=2), es CPUID
RDPMC, legge performance monitor, es RDPMC
UD2, istruzione dichiarata non valida (per tutta la famiglia x86), a scopo diagnostico, es UD2
Nuove istruzioni comprocessore:
FCMOVcc, caricamento float condizionale, es FCMOVNC ST4
FCOMI, confronto float settando flag integer, es FCOMI ST3
FCOMIP, confronto float settando flag integer e pop, es FCOMIP ST3
FUCOMI, confronto float senza ordine settando flag integer, es FUCOMI ST3
FUCOMIP, confronto float senza ordine settando flag integer e pop, es FUCOMIP ST3
Intel Pentium® II
Architettura simile al Pentium® Pro, con istruzioni MMX. Sono stati aggiunti
i registri-alias anche per i selettori, cosi` che le applicazioni a 16 bit
sono meno penalizzate, la cache e` di 16Kb per i dati e 16Kb per il codice.
E` stato inoltre abbandonato il tipico contenitore PGA del socket 7, sostituito
dal nuovo SEC (Single Edge Connector). Alcune ottimizzazioni riguardano il bus,
che comunque ha molto in comune col Pentium® Pro.
Nuove istruzioni: