Ciao, Visitatore!
 
 

🔍
RECENSIONE

Recensione

maijin
maijin (28 pt) 02-Feb-2026 19:20

Intel D8086-2 – microprocessore 16 bit HMOS a 8 MHZ

Definizione

Il D8086-2 è una variante dell’8086 prodotta da Intel, un microprocessore 16 bit con bus esterno multiplexato indirizzi/dati, pensato per sistemi a microprocessore con memoria e periferiche esterne su bus parallelo. Il suffisso “-2” identifica la versione con frequenza nominale fino a 8 MHZ, collocandosi tra l’8086 “base” e l’8086-1.

Dal punto di vista architetturale, l’8086 introduce un modello a segmenti e una separazione interna in unità di bus e unità di esecuzione, con meccanismo di prefetch che migliora l’uso della banda di memoria rispetto a un’esecuzione strettamente sequenziale.

Bus interface unit (BIU) ed execution unit (EU): prefetch e coda istruzioni

Le funzioni interne sono divise logicamente in due blocchi:

  • BIU (bus interface unit): si occupa di fetch delle istruzioni, gestione della coda interna, accessi a memoria/I/O e rilocazione degli indirizzi (segmentazione).

  • EU (execution unit): decodifica ed esegue le istruzioni, richiedendo al BIU gli operandi e demandando al BIU letture/scritture esterne.

L’aspetto pratico è che la BIU può precaricare istruzioni mentre la EU sta eseguendo: fino a 6 byte dello stream istruzioni possono essere accodati, riducendo i “buchi” sul bus e migliorando le prestazioni percepite a parità di frequenza.


Organizzazione memoria: 20 bit di indirizzamento e segmenti da 64K

L’8086 fornisce un indirizzo a 20 bit, quindi indirizza direttamente fino a 1 MB di spazio (00000h–FFFFFh). La memoria è organizzata logicamente in segmenti:

  • Code, data, extra data, stack: ciascuno fino a 64 KB.

  • I segmenti sono allineati su confini di 16 byte (paragraph boundary).

  • Le referenze memoria sono calcolate come base di segmento + offset, con selezione del registro di segmento tipicamente automatizzata dalle regole dell’architettura.

In pratica, questo modello consente programmi strutturati e rilocabili, ma richiede gestione consapevole dei segmenti (specie in assembly o nei runtime più vicini all’hardware).


Bus esterno: 16 bit, banche alta/bassa e gestione byte pari/dispari

Fisicamente la memoria è vista come due banche da 8 bit:

  • low bank su D7–D0

  • high bank su D15–D8

Il processore usa A0 e BHE per abilitare selettivamente byte pari/dispari o una word intera. Le word possono trovarsi anche su indirizzi dispari: in quel caso il BIU esegue due accessi esterni (penalità di prestazione per operandi word, non per fetch istruzioni, che tipicamente avviene a word).


Minimum mode e maximum mode: perché esistono due modalità

Il pin MN/MX definisce la modalità di sistema:

  • Minimum mode: l’8086 genera direttamente i segnali di controllo del bus (sistemi semplici, single-processor).

  • Maximum mode: l’8086 emette linee di status codificate (S0–S2) e un controllore esterno (tipicamente 8288) genera i comandi di bus in stile MULTIBUS; utile per sistemi più complessi e con coprocessori/altre master sul bus.

In pratica, maximum mode è la scelta tipica quando si vogliono configurazioni più “modulari” (coprocessore matematico, DMA/bus mastering evoluto, architetture più strutturate).


Segnali chiave e progettazione del sistema

Alcuni segnali risultano centrali nel progetto:

  • ALE per latchare l’indirizzo durante T1 (dato che AD0–AD15 sono multiplexati).

  • READY per inserire wait states con memorie lente.

  • HOLD/HLDA (minimum) oppure RQ/GT (maximum) per arbitraggio bus con altri master.

  • LOCK per sequenze critiche (impedisce ad altri master di acquisire il bus durante finestre sensibili).

  • QS0/QS1 per monitorare lo stato della coda istruzioni (utile in debug o logiche esterne di tracking).


Schizzo dei collegamenti più importanti

AD15..AD0 (indirizzo/dati multiplexati) A19..A16 + BHE/A0 ┌────────────────────────────────────────────────────────────────────────┐ │ D8086-2 │ │ │ │ AD15..AD0 ────────────────┬───────────────► 8282/8283 (latch indirizzi)│ │ │ │ │ └───────────────► 8286/8287 (transceiver dati)│ │ │ │ ALE ─────────────────────────► latch enable │ │ RD/WR o (S0..S2 + 8288) ─────► controlli di bus │ │ READY ───────────────────────► wait states │ │ MN/MX ───────────────────────► minimum / maximum mode │ └────────────────────────────────────────────────────────────────────────┘ │ ├────────► memoria (RAM/ROM) su bus 16 bit (banche high/low) └────────► periferiche I/O (read/write I/O cycles)

Tabella 1 – Dati di identificazione e specifiche

CaratteristicaValore indicativo
DispositivoIntel D8086-2
ClasseMicroprocessore 16 bit
TecnologiaHMOS (famiglia 8086)
Frequenza nominaleFino a 8 MHZ (speed grade “-2”)
Indirizzamento20 bit, spazio fino a 1 MB
Bus dati esterno16 bit (con gestione byte tramite A0/BHE)
Bus indirizzi esternoFino a A19 (con AD multiplexati e latch esterni)
Package tipico40 pin (DIP/CERDIP e versioni plastic)
Modalità di sistemaMinimum mode / maximum mode tramite MN/MX


Tabella 2 – Aspetti operativi e progettuali

AspettoSignificato pratico
BIU/EU con prefetchMigliore utilizzo del bus: la BIU può accodare fino a 6 byte di istruzioni mentre la EU esegue
Segmentazione 64KStruttura code/data/stack: potente ma richiede gestione corretta di base+offset
AD multiplexatiServe latch esterno (ALE + 8282/8283 o equivalenti) per stabilizzare gli indirizzi
READY e wait statesConsente l’uso di memorie/periferiche più lente senza violare i timing
Minimum vs maximum modeMinimum: controllo bus “diretto”. Maximum: status + controllore (8288) per sistemi più complessi
A0/BHE e banche memoriaAccessi efficienti su word allineate; penalità su word a indirizzo dispari (due cicli)
LOCK e arbitraggio busProtegge sequenze critiche e riduce rischi di contesa in sistemi multi-master