Personal computer/Mapping: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Pizeta (discussione | contributi)
m →‎CPU 8088: aggiunta una categoria
Pizeta (discussione | contributi)
Riga 64:
 
==== Cicli di bus ====
 
Il bus degli indirizzi nella CPU 8088 è diviso in tre parti, la prima (AD0 -AD7) è multiplexata in divisione di tempo con il bus dati, la seconda (A8-A15) e la terza (A16-A19) anch'essa multiplexata. Questa strategia permette l'uso più efficiente dei pin del processore, tuttavia richiede delle operazioni aggiuntive per il demultiplex.
 
Ogni ciclo di bus consiste almeno di quattro parti della lunghezza di un clock (''CLK'') denominate '''T1 T2 T3 T4'''.
 
L'indirizzo, sia per un ciclo di lettura che di scrittura, viene emesso durante T1, la lettura o scrittura dei dati avviene in T3, T4 e T2 servono principalmente per cambiare la direzione del bus durante le operazioni in modo da avere in T1 e T3 dei segnali stabili e non flottanti.
 
Nel caso in cui una lettura non sia completata tra lo stato T3 e lo stato T4 vengono aggiunti degli stati di ''wait'' '''TW'''. Ogni stato di wait è della stessa durata di un ciclo di ''CLK''. Il segnale per indicare alla CPU l'avvenuta lettura è il ''READY''.
 
Durante T1 viene emesso il segnale ''ALE'' (''Address Latch Enable'') ad indicare che la prima parte del bus indirizzi corrisponde effettivamente ad un indirizzo e non al bus dati.
 
Nel caso di operazioni I/O lo spazio di indirizzamento è più piccolo di quello della memoria, è infatti da 64K, ovvero bastano 16 bit di indirizzo, vengono usati a questo scopo i pin A0-A15, i bit A16-A19 sono al valore logico basso durante le operazioni di lettura/scrittura in I/O.
 
===== Lettura =====
 
Il ciclo di lettura inizia in T1 con il segnale alto ''ALE'' ed è individuato dal segnale ''DT/R*'' '''basso'''.
 
Durante T2 viene rimosso l'indirizzo dal bus dati che va in uno stato di alta impedenza. Viene inoltre attivato il segnale ''RD'' (essendo attivo basso diventa zero) che causa l'attivazione del driver del bus dati da parte del dispositivo indirizzato. In base al valore di ''IO/M*'' il segnale di ''RD*'' diventa sul bus comandi un ''MRDC*'' o un ''MWRC*''.
 
Dopo un certo periodo (T3 ed eventuali stati TW) saranno disponibili sul bus dei dati validi e il dispositivo indirizzato attiverà il segnale di ''READY''. Gli stati TW sono funzionalmente uguali ad uno stato T3, durante il clock di salita il processore legge il segnale ''READY'', se questo è basso verrà aggiunto uno stato TW, se invece è alto il prossimo stato sarà T4.
 
In T4 il processore legge il bus dati (''AD0-AD7'') e riporta il ''RD*'' ad alto, immediatamente il dispositivo indirizzato entra in 3-state.
 
===== Scrittura =====
 
Anche un ciclo di scrittura comincia con l'attivazione di ''ALE'' e l'emissione dell'indirizzo, questa volta il ''DT/R*'' è '''basso''' ad indicare un ''Data Transmit'' ovvero una scrittura.
 
Durante T2, subito dopo l'emissione dell'indirizzo il processore presenta sul bus dati (''AD0-AD7'') i bit da scrivere nel dispositivo indirizzato. Questi dati rimangono validi fino almeno a metà dello stato T4.
 
Durante T2 T3 e TW il processore abilita il segnale ''WR*'' (lo porta quindi al livello basso). Questo segnale viene attivato subito durante T2 a differenza del ciclo di lettura dove il ''RD*'' viene leggermente ritardato per permettere al bus la transizione.
 
==== 8284 ====