ELEMANIA
Digitale - Indirizzi in memoria
Parole e indirizzi

I dispositivi di memoria primaria a semiconduttore sono internamente organizzati in parole (word). Una parola di memoria è il minimo gruppo di bit che è possibile leggere o scrivere in memoria.

E' utile pensare alla memoria come a un armadio suddiviso in molti cassetti. Ogni cassetto rappresenta una singola parola e ogni parola è composta da un certo numero di bit (es. 8, 16). Possiamo pensare ai bit come a suddivisioni interne a ogni cassetto,

Non è possibile accedere ai singoli bit di una parola individualmente. Ogni operazione dev'essere compiuta sull'intera parola (allo stesso modo per accedere alle suddivisioni interne è necessario aprire l'intero cassetto).

Per distinguere una parola da un'altra le singole parole vengono numerate con un numero progressivo (detto indirizzo, address) che inizia da zero (la prima parola):

Fuori di metafora, ogni cassetto è in pratica un registro e la memoria può essere pensata come un insieme di registri, tutti con lo stesso numero di bit e contrassegnati ognuno da un indirizzo.

Organizzazione di una memoria a semiconduttore

Si dice organizzazione di una memoria a semiconduttore il modo in cui essa è internamente suddivisa in parole. Facciamo un semplice esempio e consideriamo una memoria composta da 64 parole da 4 bit ciascuna. L'organizzazione di questa memoria sarà dunque 64 x 4 bit e la capacità totale che si ottiene facendo il precedente prodotto è 256 bit.

Ad ogni parola corrisponde un diverso indirizzo compreso fra 0 (indirizzo della prima parola) e 63 (indirizzo dell'ultima parola in memoria). Siccome 26 = 64, dovrebbe essere evidente che occorrono 6 bit per specificare l'indirizzo di ogni singola parola nella nostra memoria.

In generale il numero di piedini di indirizzo n è tale per cui 2n è il numero di parole in memoria. Per esempio una memoria con 8 pin di indirizzo conterrà 28 = 256 parole. A causa del sistema binario utilizzato, il numero di parole in una memoria è sempre una potenza esatta di due.

Potremmo dunque ipotizzare la seguente piedinatura per il nostro integrato (trascurando per il momento i pin di alimentazione e di massa):

I0, I1, I2, I3 sono i pin di dato di ingresso e U0, U1, U2, U3 sono i pin di dato in uscita. Facciamo notare per inciso che spesso la piedinatura è più semplice: in molte memorie c'è un unico gruppo di pin, utilizzati in modo bidirezionale (sia per leggere che per scrivere un dato).

A0, A1, A2, A3, A4 e A5 sono i pin di indirizzo.

R/W serve per indicare se si vuole effettuare un'operazione di scrittura (R/W = L) oppure di lettura (R/W = H) in memoria. Le due operazioni sono mutuamente esclusive e perciò basta un solo piedino per specificarle.

Si noti che la suddivisione della memoria in parole e l'uso degli indirizzi riduce notevolmente il numero di pin necessari (infatti per accedere singolarmente a 256 bit in lettura e scrittura occorrerebbero almeno 256+256=512 piedini!).

Scrittura in memoria

La scrittura di una parola in memoria richiede una sequenza ben precisa di operazioni:

  1. l'indirizzo della parola da scrivere dev'essere messo sui pin A0,...,A5;
  2. il dato che si vuole scrivere dev'essere messo sui pin I0,...,I3
  3. dev'essere selezionata l'operazione di scrittura (R/W = L);
  4. infine, trascorso il tempo necessario alla memorizzazione dei dati, l'operazione di scrittura deve essere disabilitata (R/W = H).

Come vedremo meglio in seguito, è importante che dato e indirizzo siano presentati prima di dare il comando di scrittura. In caso contrario il dato scritto in memoria potrebbe risultare errato.

Durante un operazione di scrittura il valore presente sui piedini di uscita U0,..,U3 non ha nessun particolare significato. In molti integrati di memoria durante la scrittura in pin di uscita non hanno nessun valore logico, ma si trovano in uno stato detto di alta impedenza.

Lettura in memoria

La sequenza di operazioni necessarie per effettuare una lettura in memoria sono le seguenti:

  1. per prima cosa viene selezionata l'operazione di lettura (R/W = H, di solito questa è l'operazione selezionata normalmente, tranne quando si fa una scrittura in memoria);
  2. quindi viene presentato l'indirizzo da leggere sui pin A0,..., A5;
  3. infine il dato memorizzato in quell'indirizzo viene fornito sui pin di uscita U0,...,U3.

E' molto importante il fatto che normalmente sia selezionata l'operazione di lettura (R/W = H). Infatti, a differenza della scrittura, la lettura non modifica il contenuto della memoria e non presenta rischi di errore. Pertanto, anche quando la memoria non viene "usata", bisogna mantenere R/W = H.

Per approfondire: HADES, un ambiente di simulazione interattivo in java per le memorie (e non solo)

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it