Personal computer/Mapping: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Pizeta (discussione | contributi)
Pizeta (discussione | contributi)
Riga 65:
 
=== Decodifica semplificata ===
 
La decodifica semplificata o ''parziale'' viene effettuata eliminando alcuni bit dall'espressione dei ''chip select'' dei dispositivi mappati, mantenendo il corretto funzionamento del sistema.
 
Se considero un sistema con indirizzi a 10 bit e due elementi di memoria da 256K ( 8 bit ) mappate in questo modo
 
0 00H
0 FFH -> chip1
1 00H
1 FFH -> chip2
2 00H
2 FFH
3 00H
3 FFH
I segnali dei ''cihp select'' in logica positiva sono
''CSchip1'' = !A9 * !A8
''CSchip2'' = !A9 * A8
Le due espressioni dei chip select individiano univocamente una finestra di 256K all'interno dello spazio di indirizzamento, che tuttavia presenta degli spazio liberi (la metà ''alta''). Si può quindi pensare di eliminare l'univocità delle finestre selezionate mantenendo la separazione delle finestre.
 
Ad esempio eliminando il bit A9 dell'espressione del chip select si ottiene
''CSchip1'' = !A8
''CSchip2'' = A8
che indirizzano le seguenti finestre
0 00H
0 FFH <- CSchip1
1 00H
1 FFH <- CSchip2
2 00H
2 FFH <- CSchip1
3 00H
3 FFH <- CSchip2
Ogni segnale di ''chip select'' individua due finestre nello spazio di indirizzamento, ognuna da 256K.
Con queste espressioni dei chip select il chip1 risulta mappato in due finestre, così come il chip2 ma non essendoci sovrapposizione tra i ''chip select'' dei due dispositivi questa codifica semplificata risulta corretta.
 
Mentre da un lato con la decodifica parziale si ottengono delle espressioni semplificate per i ''chip select'' (nell'esempio un solo bit piuttosto che due), dall'altro si ha un forte spreco delle risorse. Eliminando ''n'' bit dall'espressione dei ''chip select'' ogni dispositivo va ad occupare 2^n posizioni.
 
== Gestione delle interfacce tramite programma ==