ELEMANIA
Z80 - Cicli input e di output
Cicli di input e output

Abbiamo già visto in precedenza la sequenza di operazioni che lo Z80 esegue per accedere a una locazione di memoria in lettura o in scrittura (rispettivamente dette ciclo di lettura e ciclo di scrittura in memoria). La figura qui sotto serve da richiamo della sequenza di temporizzazione dei segnali nei due differenti cicli:


Ciclo di lettura in memoria

Ciclo di scrittura in memoria

Analogamente si parla di ciclo di input (input cycle) e ciclo di output (output cycle) quando si vuole leggere o scrivere da una porta di ingresso o uscita:


Ciclo di input

Ciclo di output

Sostanzialmente i cicli di lettura/scrittura in memoria e quelli di input/output da porte di I/O sono molto simili. Le uniche differenze sostanziali sono:

Input Output Memory Mapped e Standard

In generale esistono due modi distinti per collegare dal punto di vista logico un microprocessore con i dispositivi di ingresso e uscita. La distinzione riguarda l’indirizzamento dei porti, che può avvenire:

Troviamo applicato il primo metodo nei processori come il 68000 e discendenti, mentre il secondo è preferito da molti altri processori (come quelli Intel e lo Z80). I microprocessori che utilizzano il metodo Memory Mapped non possiedono istruzioni specializzate per l’ingresso e l’uscita, perché da un punto di vista hardware il processore non distingue tra dispositivi di memoria e di ingresso/uscita. L’unico spazio di indirizzamento é utilizzato sia per i chip di memoria, sia per i porti, e la distinzione tra i vari elementi si ottiene soltanto per mezzo dell’indirizzo. Per scrivere e leggere nei porti di I/O si usano le stesse istruzioni utilizzate per la memoria. Si ritiene che questo da un punto di vista della programmazione sia un vantaggio, per certi versi, in quanto permette di applicare ai porti la potenza delle istruzioni utilizzate per la memoria, ma che costituisca anche uno svantaggio, poiché l’assenza di istruzioni specializzate per l’ingresso/uscita rendono molto meno “leggibile” il codice assembly.

Occorre notare che la realizzazione di porti Memory Mapped in un sistema Standard (come quello dello Z80) non é impedita da nulla, nel caso lo si ritenesse necessario. Dunque volendo sarebbe possibile leggere e scrivere dalle periferiche usando le normali istruzioni di caricamento (LD): in questo caso una parte dello spazio degli indirizzi della memoria dovrebbe però essere riservata ai dispositivi di input e output.

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it