Arquitetura de Interfaceamento de Memória do 8086
A interface de memória do 8086 gerencia comunicação entre a CPU e memória externa (RAM/ROM) em seu espaço de endereço de 1MB (barramento de endereço de 20 bits).
1. Decodificação de Endereço
O 8086 produz endereços de 20 bits (A0–A19) via AD0–AD15 multiplexados e A16–A19. Decodificação selechips de memória específicos:
- Decodificação Completa: Todos 20 bits decodificados – endereço único para cada localização (sem sombras)
- Decodificação Parcial: Menos bits decodificados – hardware mais simples, mas sombras de endereço (aliases)
Exemplo: 64KB RAM em 00000H–0FFFFH, 32KB ROM em F8000H–FFFFFH
RAM_CS = A19'·A18'·A17'·A16' (0000xxxx xxxx xxxx) ROM_CS = A19·A18·A17·A16 (1111xxxx xxxx xxxx)
2. Geração de Sinais de Controle
O 8086 emite sinais de status (S0–S2) decodificados pelo Controlador de Barramento 8288 em:
- MRDC (Comando de Leitura de Memória)
- MWTC (Comando de Escrita de Memória)
- DEN (Data Enable – direção do transceptor)
- DT/R (Data Transmit/Receive)
- ALE (Address Latch Enable – desmultiplexa barramento AD)
3. Temporização Leitura/Escrita
- T1: Endereço em AD0–AD15, A16–A19; ALE trava endereço
- T2: Barramento de dados em alta impedância; MRDC/MWTC ativados
- T3: Memória coloca dados (leitura) / CPU conduz dados (escrita)
- T4: Sinais desativados; ciclo termina
- Estados de espera (Tw) inseridos via READY para memória lenta
4. Bank Switching e Expansão
- 8086 vê 1MB máx; bank switching mapeia >1MB paginando banks em janelas de endereço
- Implementado via latch controlando linhas de endereço altas (A19–Axx)
- Usado em sistemas embarcados, extensores DOS (EMS/XMS)
5. Componentes-Chave de Interface
- 8282/8283: Latches de endereço (desmultiplexa barramento AD)
- 8286/8287: Transceptores de dados (buffer D0–D15)
- 8288: Controlador de barramento (gera MRDC, MWTC, IORC, IOWC)
- Decodificadores (74LS138, PAL/GAL): Chip selects de bits altos de endereço
6. Modo Mínimo vs Máximo
- Modo Mínimo (MN/MX=1): 8086 gera sinais de controle diretamente (sem 8288)
- Modo Máximo (MN/MX=0): 8288 necessário; suporta multiprocessamento (LOCK, RQ/GT)
Interfaceamento de memória adequado garante acesso a dados confiável e oportuno – a base da operação do sistema 8086.