Il ruolo critico del segnale INTA (Interrupt Acknowledge) nel microprocessore 8085
Il segnale INTA (Interrupt Acknowledge) è un pin di output dedicato (attivo basso) sul microprocessore Intel 8085 che gioca un ruolo fondamentale nella sequenza di gestione degli interrupt. Non è solo una stretta di mano — orchestra il processo di interrupt vettorizzato che consente alla CPU di identificare quale dispositivo ha interrotto e dove risiede la routine di servizio.
Sequenza di interrupt e ruolo di INTA
- Il dispositivo attiva INTR: il periferico porta INTR (pin 10) alto (trigger a livello).
- La CPU campiona INTR: alla fine del ciclo di istruzione corrente (se INTE=1 tramite EI).
- La CPU attiva INTA (primo impulso): l'8085 porta INTA (pin 11) basso per il primo ciclo macchina di acknowledge interrupt. Questo dice al dispositivo che ha interrotto: "Ti vedo. Metti il tuo vettore di interrupt sul bus dati."
- Il dispositivo risponde: il controller di interrupt esterno (es. 8259A PIC) o logica a porte semplici posiziona un opcode RST n (0xC7, 0xCF, 0xD7, 0xDF, 0xE7, 0xEF, 0xF7, 0xFF per RST 0–7) sul bus dati (D0–D7).
- La CPU legge il vettore: l'8085 legge l'opcode durante questo ciclo.
- La CPU attiva INTA (secondo e terzo impulso): per RST simile a CALL, l'8085 emette due ulteriori impulsi INTA per leggere l'indirizzo a 16 bit (byte basso, byte alto) — ma RST è un opcode a 1 byte, quindi è necessario un solo INTA per RST. L'8085 genera 3 impulsi INTA per CALL; per RST, usa il singolo byte come vettore.
- PC salvato, salto a ISR: l'8085 push del PC nello stack, carica PC = 8 × n (indirizzo vettore RST n: 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38). Esegue ISR.
- EI / RET: l'ISR termina con
EI(riabilita interrupt) eRET(pop PC).
Perché INTA è critico
1. Sincronizzazione e tempistica
INTA fornisce la finestra temporale esatta per il periferico/controller di interrupt per posizionare il vettore sul bus. Senza di esso, la CPU potrebbe leggere spazzatura o il dispositivo potrebbe guidare il bus al momento sbagliato (contenzione bus). La tempistica INTA dell'8085 (T1–T3 del ciclo macchina INTA) è sincronizzata con ALE, RD, WR — consentendo un'interfaccia affidabile con 8259A, 8279 o semplici circuiti generatori RST.
2. Interrupt vettorizzati e priorità
INTA è l'abilitatore di interrupt vettorizzati. Con un 8259A PIC:
- L'8259A riceve IR0–IR7.
- Risolve la priorità (fissa, rotante, maschera speciale).
- Su INTA, l'8259A emette opcode CALL (0xCD) + byte basso/alto dell'indirizzo ISR.
- L'8085 salta a un indirizzo ISR specifico — non tabella RST fissa.
Senza INTA, niente interrupt vettorizzati → tutti gli interrupt saltano alle stesse posizioni fisse (RST 0–7) → necessario polling software per identificare la sorgente → lento, inefficiente.
3. Dispatch della Interrupt Service Routine (ISR)
INTA attiva direttamente la sequenza hardware: push PC → fetch vettore → carica PC → esecuzione ISR. È il segnale hardware "vai" che transita il controllo dal programma principale al gestore di interrupt. Glitch su INTA = interrupt persi/malvettorizzati = crash del sistema.
4. Debug e diagnostica
- Analizzatore logico / Oscilloscopio su INTA: verifica frequenza interrupt, annidamento, latenza (INTR a INTA), interrupt spuri.
- INTA mancante: dispositivo bloccato che attiva INTR, 8259A non risponde, guasto buffer bus.
- INTA extra: rumore, 8259A glitchy, ri-attivazione software.
INTA vs. Altri segnali
| Segnale | Direzione | Ruolo |
|---|---|---|
| INTR | Input | Il dispositivo richiede interrupt |
| INTA | Output | La CPU riconosce, richiede vettore |
| RST 5.5/6.5/7.5 | Input | Mascherabile, vettorizzato (fisso), edge-triggered — nessun INTA necessario |
| TRAP | Input | Non mascherabile, vettorizzato (0x24), edge+level — nessun INTA necessario |
Solo INTR (pin 10) usa INTA (pin 11). I tre pin RST e TRAP hanno vettori dedicati — nessun fetch vettore bus richiesto.
Sommario
INTA è il perno della gestione flessibile degli interrupt sull'8085. Trasforma un semplice segnale "qualcosa è successo" (INTR) in un switch di contesto vettorizzato, prioritario, accelerato hardware. Padronizzare la tempistica INTA e l'interfacciamento 8259A è essenziale per qualsiasi serio design di sistema 8085.