Perché i Latch Sono Essenziali sul Bus Multiplexato AD0-AD15 dell'8086
Il microprocessore Intel 8086 utilizza un bus indirizzo/dati multiplexato nel tempo (AD0-AD15) per ridurre il numero di pin sul suo package DIP a 40 pin. Questa scelta di design—trasportare indirizzi di memoria durante T1 e dati durante T2-T4—crea una sfida di timing fondamentale che i latch esterni risolvono.
Il Problema del Multiplexing
Durante ogni ciclo del bus:
- Stato T1: Indirizzo valido appare su AD0-AD15 (e A16-A19/S3-S6)
- Stati T2-T4: Le stesse linee trasportano dati di lettura/scrittura
Dispositivi di memoria e I/O necessitano che l'indirizzo sia stabile per l'intero ciclo per decodificare i chip select, pilotare indirizzi riga/colonna (DRAM) o configurare registri periferici. Ma l'8086 presenta l'indirizzo solo per ~125 ns (a 5 MHz) prima di sovrascriverlo con i dati.
Come i Latch Risolvono Questo Problema
L'8086 fornisce un impulso ALE (Address Latch Enable) durante T1. Latch trasparenti esterni (tipicamente 74LS373 octal D-latch) catturano l'indirizzo quando ALE è alto e lo mantengono quando ALE scende:
8086 AD0-AD15 ───►┬──► 74LS373 ──► Bus Indirizzo Demultiplexato (A0-A15) │ ALE ──┘ (Attivo alto, impulso durante T1)
Parametri di Timing Critici
- tLHLL (larghezza impulso ALE): Min 60 ns @ 5 MHz
- tAVLL (indirizzo valido a ALE basso): Min 50 ns setup
- tLLAX (tempo di mantenimento indirizzo dopo ALE basso): Min 30 ns
- Ritardo di propagazione 74LS373: ~18 ns tipico
Oltre la Demultiplexing di Base
Sincronizzazione Asincrona Periferica
L'ingresso READY dell'8086 consente a memorie/periferiche lente di inserire stati di attesa. I latch mantengono l'indirizzo valido durante questi cicli estesi, prevenendo il decadimento dell'indirizzo che corromperebbe il refresh DRAM o la selezione dei registri periferici.
Coordinamento del Controllore DMA
Quando il controllore DMA 8237 prende il controllo del bus, utilizza anch'esso ALE per latchare gli indirizzi. La stessa circuiteria di latch serve sia i cicli CPU che DMA, garantendo tempistiche di indirizzo consistenti indipendentemente dal master del bus.
Requisiti del Sottosistema di Memoria
- EPROM/ROM: Necessitano di indirizzo stabile per l'intero tempo di accesso (150-450 ns)
- SRAM: Richiedono setup/hold dell'indirizzo attorno all'abilitazione chip
- DRAM: Necessitano di sequenziamento indirizzo riga (RAS) poi indirizzo colonna (CAS)
- I/O Mappato in Memoria: Le periferiche decodificano l'indirizzo per la selezione dei registri
Considerazioni di Design
In modalità minima (MN/MX̅ = 1), l'8086 genera ALE direttamente. In modalità massima, il controllore bus 8288 genera ALE dai segnali di stato (S0-S2). In entrambi i modi, due 74LS373 (per indirizzo a 16 bit) o tre (se si lattano A16-A19) sono standard in ogni sistema 8086.
Prospettiva moderna: questa architettura di bus multiplexato, sebbene efficiente in termini di pin, è diventata un collo di bottiglia a frequenze più elevate. L'80286 e i processori successivi sono passati a bus indirizzo/dati separati, eliminando la necessità di latch esterni—ma la soluzione dell'8086 rimane un esempio didattico dei trade-off del time-multiplexing.