PinOut della CPU Z80 – dispensa 3

da | Dic 8, 2023 | Hardware, Z80 | 0 commenti

Questa che vi apprestate a leggere è una dispensa e non certamente un libro e quindi non ha la pretesa di essere esaustiva e autosufficiente. Questa può essere affiancata alla documentazione che è possibile reperire facilmente sia in forma cartacea sia in forma digitale. Per la stesura di questa dispensa oltre alle ovvie informazioni che è possibile reperire in rete ho preso largo spunto dai manuali Z80 Programmazione in linguaggio Assembly e il Nuovo manuale dello Z80. Come per tutti gli altri miei articoli mi scuso di eventuali inesattezze. Buona lettura.

LA CPU E LE SUE CONNESSIONI

In questo articolo andremo a descrivere i vari segnali che la CPU Z80 presenta sui propri piedini. Quando parleremo di ingresso / uscita lo intendiamo rispetto alla CPU. Quella che vediamo sotto è la disposizione funzionale dei segnali e non la loro reale posizione nel package.


 

BUS
Nella CPU sono presenti due tipi di BUS uno definito BUS INDIRIZZI e l’altro definito BUS DATI andiamo a vedere di cosa si tratta.

BUS INDIRIZZI
Questo tipo di bus è definito tri-state perché ha la possibilità di scollegare virtualmente la CPU dal bus indirizzi esterno mettendo questi segnali di uscita in uno stato di alta impedenza.  Le uscite sono attive alte e monodirezionali (quindi è la CPU che genera gli indirizzi). I Segnali A0-A15 costituiscono il bus degli indirizzi in cui A0 è il bit meno significativo. Il bus fornisce gli indirizzi per lo scambio dei dati con la memoria e con i dispositivi di I/O. L’indirizzamento dei dispositivi di I/O viene effettuato utilizzando gli 8 bit meno significativi del bus degli indirizzi, da A0 a A7.

BUS DATI
Questo tipo di bus è definito tri-state perché ha la possibilità di scollegare virtualmente la CPU dal bus indirizzi esterno mettendo questi segnali di uscita in uno stato di alta impedenza.  Le uscite sono attive alte e bidirezionali. I Segnali D0-D7 costituiscono il bus dati in cui D0 è il bit meno significativo. Il bus viene utilizzato per scambiare i dati con la memoria a con i dispositivi di I/O.

SEGNALI DI CONTROLLO

Alcuni testi riportano oltre al BUS DATI e BUS INDIRIZZI anche il BUS DI CONTROLLO DEL SISTEMA, quest’ultimo raccoglie quei segnali che permettono di gestire le operazioni di lettura e scrittura. Avendo chiarito che è possibile trovare un diverso raggruppamento dei segnali della CPU andiamo a descrivere i segnali che lo Z80 ci rende disponibili.

M1 (Ciclo macchina) – Uscita attiva bassa, indica che nel corrente ciclo macchina viene caricato il codice dell’istruzione successiva (Fetch dell’istruzione). Esistono alcune istruzioni, aventi l’opcode costituito da due byte che quindi richiedono due cicli M1 consecutivi.

MREQ (Memory Request) – Uscita tri-state attiva bassa, indica che sul bus degli indirizzi, è presente un indirizzo valido per una operazione di lettura / scrittura.

IORQ (Inputo Output Request) – Uscita tri-state attiva bassa, indica che sugli 8 bit meno significativi del bus indirizzi è presente indirizzo valido per le operazioni di I/O. Il segnale di IORQ viene anche generato insieme al segnale M1 durante il ciclo di riconoscimento di una interruzione.

RD (Read) – Uscita tri-state attiva bassa, indica che la CPU vuole effettuare una lettura dalla memoria o da un dispositivo di I/O.

WR (Write) – Uscita tri-state attiva bassa, indica che il BUS contiene dati validi da scrivere in memoria o in un dispositivo di I/O.

RFSH (Refresh) – Uscita attiva bassa, utilizzata per le memorie dinamiche. Indica che sui bit meno significativi del bus indirizzi è presente un indirizzo valido per il refresh.

HALT – Uscita, attiva bassa. Indica che la CPU ha eseguito un’istruzione di HALT ed è in attesa di un segnale di interruzione non mascherabile o mascherabile (se quest’ultima è stata precedentemente abilitata) per poter riprendere l’esecuzione del programma. Finché perdura lo stato di halt, la CPU esegue continuamente delle istruzioni NOP (No Operation) per mantenere l’attività di refresh in quanto il perdurare di questo stato potrebbe portare alla perdita dei dati contenuti nelle memorie dinamiche.

WAIT – Ingresso, attivo basso. WAIT indica alla CPU che la memoria o il dispositivo di I/O non è pronto per un trasferimento dati. Finché questo segnale è attivo la CPU rimane in stato di attesa. Questo segnale permette che dispositivi di I/O o di memoria di qualunque velocità si sincronizzino con la velocità della CPU, rimane attivo fino a quando permane la situazione di indisponibilità.

INT (Richiesta di interruzione) – Ingresso, attivo basso. Il segnale di richiesta di interruzione viene generato dai dispositivi di I/O. La richiesta viene soddisfatta alla fine dell’istruzione in corso, quando lo prevede il programma in esecuzione, sotto le due condizioni: – sia abilitato il flip-flop interno di abilitazione dell’interruzione (IFF) controllato dal software: – Il segnale BUSRQ non sia attivo. Quando la CPU accetta l’interruzione, viene inviato un segnale di riconoscimento dell’interruzione (IORQ contemporaneamente a M1) all’inizio del ciclo successivo di lettura dell’interruzione. La CPU può rispondere all’interruzione in tre modi diversi: modo 0, 1, 2.

NMI (Interruzione non mascherabile) – Ingresso, attivo sul fronte di discesa. La linea di richiesta di interruzione non mascherabile ha priorità superiore rispetto alla linea INT ed è attiva alla fine dell’istruzione in corso, indipendentemente dallo stato del flip flop di abilitazione dell’interruzione.

RESET – Ingresso. Inizializza la CPU: azzera i registri PC, I e R. Predispone la gestione degli interrupt in modalità 0.

BUSRQ (Bus Request) – Ingresso, attivo basso. Il segnale viene usato per richiedere alla CPU di porre il bus degli indirizzi, il bus dei dati e i segnali di controllo in uscita nello stato di alta impedenza, in modo che tali linee possano essere controllate dal dispositivo che ne ha fatto richiesta. Quando BUSRQ viene attivato, la CPU pone il bus nello stato di alta impedenza al termine del ciclo macchina in corso.

BUSAK (Bus Aknowledge) – Uscita, attiva bassa. Questo segnale è utilizzato per indicare al dispositivo richiedente che il bus degli indirizzi, quello dei dati e i segnali tri-state di controllo dei bus della CPU sono stati posti nello stato di alta impedenza e che il dispositivo esterno può controllare tali linee.

CLOCK – Ingresso a una sola fase.

Se siete interessati qui trovate la quarta dispensa.

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Dr. Kazuhiko Nishi MSX0/MSX3 keynote

Temporizzazioni della CPU Z80 – dispensa 4

Questa che vi apprestate a leggere è una dispensa e non certamente un libro e quindi non ha la pretesa di essere esaustiva e autosufficiente. Questa può essere affiancata alla documentazione che è possibile reperire facilmente sia in forma cartacea sia in forma...

Dr. Kazuhiko Nishi MSX0/MSX3 keynote

I registri della CPU Z80 – dispensa 2

Questa che vi apprestate a leggere è una dispensa e non certamente un libro e quindi non ha la pretesa di essere esaustiva e autosufficiente. Questa può essere affiancata alla documentazione che è possibile reperire facilmente sia in forma cartacea sia in forma...

Dr. Kazuhiko Nishi MSX0/MSX3 keynote

Introduzione alla CPU Z80 – dispensa 1

Questa che vi apprestate a leggere è una dispensa e non certamente un libro e quindi non ha la pretesa di essere esaustiva e autosufficiente. Questa può essere affiancata alla documentazione che è possibile reperire facilmente sia in forma cartacea sia in forma...

it_ITIT_IT