Intel 8086
Intel 8086 Central processing unit | |
---|---|
Prodotto | dal 1978 al 1992 |
Produttore | Intel, AMD, NEC, Fujitsu, Harris (Intersil), OKI, Siemens AG, Texas Instruments, Mitsubishi. |
Predecessore | Intel 8080 e Intel 8085 |
Successore | Intel 80186, Intel 80286 e Intel 8088 |
Specifiche tecniche | |
Frequenza CPU | 3 MHz / 8 MHz |
Set di istruzioni | x86-16 |
Package | 40 pin DIP |
L'Intel 8086 (chiamato anche iAPx86 durante i primi anni ottanta[1]) è un microprocessore a 16 bit progettato da Intel nel 1978, che diede origine all'architettura x86.
È basato sull'8080 e sull'8085; è compatibile con l'assembly dell'8080, ha un insieme di registri simili, ma a 16 bit. L'unità di interfaccia con il bus (denominata BIU, Bus Interface Unit) passa le istruzioni all'unità di esecuzione (denominata SEPPE, SEquential Post Processing Execution) attraverso una coda FIFO di prefetch di 6 byte, in modo che il fetch e l'esecuzione delle istruzioni fosse contemporaneo, come una forma primitiva di pipelining.
Le istruzioni dell'8086 avevano una dimensione tra 1 e 6 byte.
Caratteristiche
[modifica | modifica wikitesto]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). 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 può 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 possono sovrapporre (parzialmente o totalmente), il che è stato considerato come un indice di cattiva progettazione da molti sviluppatori.
Anche se questo è un vantaggio per la programmazione in linguaggio assembly, dove il controllo sui segmenti è completo, ciò causa invece confusione nei linguaggi che fanno molto uso dei puntatori (come ad esempio il linguaggio C). Lo schema di segmentazione dell'8086 rende difficile una rappresentazione efficiente dei puntatori ed è possibile avere due puntatori con valori diversi che puntano ad una stessa locazione di memoria. Inoltre non si può estendere facilmente per aumentare lo spazio di indirizzamento a più di un megabyte. In effetti questo è stato realizzato nell'Intel 80286 cambiando radicalmente lo schema di indirizzamento.
Il processore ha una velocità di clock tra i 4,77 (nei primi PC IBM) e i 10 MHz.
Tempi di esecuzione in cicli (stime):
- addizione: 3–4 (registri), 9+IE–25+IE (accesso in memoria);
- moltiplicazione: 70–118 (registri), 76+IE–143+IE (accesso in memoria);
- copia valori: 2 (registri), 8+IE–14+IE (accesso in memoria);
- salto "near": 11–15 (registri), 18+IE (accesso in memoria);
- salto "far": 15 (registri), 24+IE (accesso in memoria);
IE: tempo per calcolare l'indirizzo effettivo, tra i 5 e i 12 cicli.
L'8086 non prevede nessuna istruzione per i calcoli in virgola mobile, ma può essere collegato ad un coprocessore matematico per aggiungere questa caratteristica. Lo standard era l'Intel 8087, ma produttori come Weitek offrirono presto alternative con prestazioni superiori.
L'8086 fu clonato dai processori NEC V20, V25 e V30.
Microcomputer che usano l'8086
[modifica | modifica wikitesto]Il primo microcomputer commerciale costruito utilizzando l'8086 fu il Mycron 2000.
Anche la IBM Displaywriter, una macchina per la scrittura di testi, utilizzava l'8086.
Era basato sull'8086 anche M24: il primo e più famoso dei computer PC-compatibili costruiti in Italia da Olivetti.
I PC IBM utilizzavano la versione interfacciata esternamente a 8 bit del medesimo processore, l'Intel 8088.
Anche l'IBM System/2 Model 30, utilizzava l'8086.
Il microcomputer Giano 88, prodotto da Elit Micromegas intorno al 1980, utilizzava un Intel 8088, con il quale, grazie ad un sistema operativo proprietario, riusciva a gestire fino a 4 terminali.
Note
[modifica | modifica wikitesto]- ^ iAPX 86, iAPX 88 user's manual (PDF), su bitsavers.informatik.uni-stuttgart.de (archiviato dall'url originale il 3 aprile 2013).
Bibliografia
[modifica | modifica wikitesto]- Microprocessori, Gruppo Editoriale Jackson, 1988, pp. 184-200, ISBN 88-256-0068-2.
- James W. Coffron, 8086-8088 - Programmazione, Gruppo Editoriale Jackson, 1989, ISBN 88-256-0108-5.
- Assembler 8086/8088: dallo Z-80 all'8086/88 (JPG), in MCmicrocomputer, n. 45, Roma, Technimedia, ottobre 1985, pp. 100-101, ISSN 1123-2714 . La rubrica continua nei numeri successivi fino al n° 69.
Altri progetti
[modifica | modifica wikitesto]- Wikibooks contiene testi o manuali sull'Intel 8086
- Wikimedia Commons contiene immagini o altri file sull'Intel 8086
Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Opere riguardanti Intel 8086 (Microprocessor), su Open Library, Internet Archive.
- (EN) Denis Howe, Intel 8086, in Free On-line Dictionary of Computing. Disponibile con licenza GFDL
- 8086: bizzarrie di un’architettura dominante, su appuntidigitali.it, 14 gennaio 2009.
- (EN) 8086/88 class ICs (immagini e descrizioni della serie), su cpu-collection.de.
Controllo di autorità | LCCN (EN) sh85067150 · BNF (FR) cb119695250 (data) · J9U (EN, HE) 987007555629005171 |
---|