Sei sulla pagina 1di 2

OneNote Online 21/12/17, 19(50

Decodifica indirizzi e Mapping Appunti


giovedì 17 agosto 2017 14:46

Mapping di un dispositivo = collocare la memoria all'interno del nostro


calcolatore (assegnazione alla memoria di un pool di indirizzi)

Decodifica = operazione che consente di comunicare con un particolare
dispositivo assegnato ad un determinato indirizzo

Il trasferimento di una informazione tra agenti del bus avviene con una sequenza
di eventi detti nel loro insieme ciclo di bus.
Ciclo di bus ≠ Ciclo di clock (in un ciclo di bus avvengono molti cicli di clock.
In ogni ciclo di bus un agente master indirizza un agente slave.

Un dispositivo fisico (memoria, interfaccia, etc) è accessibile solo se esso è
mappato in uno spazio di indirizzamento.

Mappare uno spazio di indirizzamento significa associare al dispositivo un "pool"
di indirizzi di quello spazio di indirizzamento.

Per accedere ai dispositivi mappati in uno spazio di indirizzamento è necessario un
ciclo di bus.

Memoria EPROM (Memoria a sola lettura programmabile), capacità a multipli di
2.
Memoria SRAM (Memoria ram statica), minore capacità e alto costo, leggibile e
scrivibile, capacità a multipli di 4 a partire da 2KB.
Memoria DRAM (Memoria ram dinamica), alta capacità a basso costo, necessario
un ciclo di refresh per i dati.

Integrati notevoli
• "244", Driver 3-state ad 8 bit
• "245", Driver 3-state bidirezionale ad 8 bit (transceiver), periferica connessa
ad un bus che legge e scrive sul bus.
Possiede segnale di EN e il segnale DIR che specifica la direzione di
trasferimento dei dati.
• "373", registro CD (campionamento a livello) a 8 bit con uscite 3-state.
Possiede un segnale di comando CK (logica a livello del CD) e un ingresso di
OE* (tri-state a logica negativa).
• "374", registro edge-triggered (campionamento a fronte) a 8 bit con uscite
3-state.
Possiede un segnale di clock CK (logica a fronte del FF-D) e un ingresso di
OE* (tri-state a logica negativa).

È possibile creare un registro edge-triggered con WE* (write eneble) usando
un 374 avente dei MUX che ci permettono di campionare solo quando WE*
= 0 (logica negativa).

• Register file, n registri (n potenza di 2) con 1 read-port e 1 write-port, nel
quale è possibile scrivere/leggere in un determinato registro determinato da
dei bit in ingresso.
Spesso si può scrivere e leggere contemporaneamente (ma su celle di
memoria diverse).

Mapping di dispositivi a 8 bit in sistemi con bus dati da 8 bit
L'assegnamento ad un dispositivo di una finestra di indirizzi in uno spazio di
indirizzamento avverrà generalmente nel rispetto di due condizioni:
• La dimensione della finestra di indirizzi associata ad un dispositivo è potenza
di 2
• La finestra è composta da indirizzi contigui
Generalmente se una periferica ha k bit di indirizzi, al suo interno si troveranno 2k
bit di indirizzo interni.
In generale nei dispositivi di I/O (interfacce), abbiamo k piccolo.
In generale nei dispositivi di memoria k è grande (es: in una ram da 128kb
abbiamo 17 bit).

Morsetti di un dispositivo indirizzabile su 𝟐𝒌 byte
Qualunque dispositivo da 8bit, con all'interno n= 2k elementi indirizzabili
separatamente, possiede al suo interno un decoder di k variabili con ingresso di
enable che seleziona i singoli oggetti indirizzabili.
Solitamente il dispositivo si interfaccia sul bus attraverso i seguenti segnali:
• Indirizzi A[k-1,0], solo le k variabili decodificate dal decoder e individuano il
byte a cui si intende accedere.
• Dati D[7,0], definiscono la porta bidirezionale che consente di scambiare
dati con l'esterno
• Chip Select CS, detto anche chip enable, è il segnale di enable del decoder
interno.
Inoltre il dispositivo espone i seguenti comandi:

https://onenote.officeapps.live.com/o/onenoteframe.aspx?edit…%2FDFE717385FCA08E8%21257737&sc=host%3D%26qt%3DFolders&wdp=7 Pagina 1 di 2
OneNote Online 21/12/17, 19(50

• Read command RD, detto anche output enable, è il comando di lettura che
quando è attivo insieme al CS fa esporre al dispositivo il contenuto della
cella indirizzata.
• Write command WR, è il comando di scrittura e quando è attivo insieme a
CS espongono a scrittura la cella indirizzata.

Mapping allineato di dispositivi a 8 bit in sistemi con bus dati da 8 bit
Considerando un dispositivo D di n= 2k bytes indirizzabili.
Si dice che D è mappato all'indirizzo A se gli indirizzi dei byte di D sono compresi
tra A e A + (n+ 1) .
Si dice che D è allineato se A è un multiplo di 𝒏 (numero di bytes interni al
dispositivo), ovvero se (A) mod (n) = 0 .
Se D è allineato, allora i k bit meno significativi di A sono uguali a 0.

Decodifica completa (per dispositivi allineati) = Utilizzo tutti i bit di indirizzo per
determinare le periferiche
Decodifica semplificata = Si utilizzano il minor numero possibile di bit
aumentando sensibilmente gli spazi di indirizzamento assegnati ad ogni
dispositivo

Parallelismo > 8
Caso 16 bit
Caso bus dati a 16bit = 2 bus dati da 8 bit (bus alto - bus basso)
Sono necessari 2 bit per scambiare i dati con la memoria fisica, detti bus enable, in
particolare:

BE1* BE0*
0 0 Word (16 bit di dati)
0 1 Byte alto (indice dispari)
1 0 Byte basso (indice pari)
1 1 IMPOSSIBILE
I segnali di indirizzamento del processore sono:
• A0 del processore non viene generato (di fatto seleziona il banco - al suo
posto BE1* e BE0*), se lo tenessimo per selezionare il banco potremmo
utilizzarne solo uno alla volta eliminando il parallelismo.
• A1 del processore è connesso ai piedini A0 delle memorie
• A2 del processore è connesso ai piedini A1 delle memorie
Caso a 32 bit




https://onenote.officeapps.live.com/o/onenoteframe.aspx?edit…%2FDFE717385FCA08E8%21257737&sc=host%3D%26qt%3DFolders&wdp=7 Pagina 2 di 2