In questo secondo post sulle memorie a semiconduttore ci occuperemo del modo in cui vengono superate le principali limitazioni di una memoria rappresentata come semplice vettore di word. Vengono quindi introdotti i decodificatori di indirizzo, responsabili della semplificazione dei primi circuiti di interfacciamento collegati direttamente alle celle di memoria.
Per superare il problema delle linee di selezione viene introdotto il decodificatore: una determinata parola in memoria è selezionata fornendo il suo indirizzo in formato binario (A0, AK-1), il decodificatore effettua una mappatura dell’indirizzo secondo la relazione K = log2N, dove N sono sempre le linee di selezione e K è l’ampiezza dell’indirizzo fornito al decodificatore dal sistema.
In questo modo si abbatte la complessità del bus degli indirizzi di un fattore importante, oltre che la complessità circuitale del sistema di indirizzamento, perché il decodificatore è progettato in modo tale da adattare la sua forma alla geometria del circuito per poter risparmiare spazio e linee di connessione.
Un altro problema nella realizzazione di una memoria a vettore di grosse dimensioni è dato dal fattore di forma risultante: fisicamente ci si troverebbe davanti a un chip estremamente lungo e stretto. Questo svantaggio del fattore di forma oltre che rendere fisicamente sconveniente la realizzazione dei chip, implica una dispersione dei segnali elettrici sulle lunghe distanze e un aumento della latenza alle porte di ingresso e uscita.
Quindi per evitare di avere un layout circuitale di questo tipo si sceglie di organizzare le celle non più in vettore ma in matrice, così da ottenere un fattore di forma vicino all’unità. Le conseguenze più evidenti sono la razionalizzazione degli spazi in cui sono collocati gli elementi circuitali, la riduzione delle distanze cablate su cui viaggiano i segnali e quindi una quasi uniformità nei tempi di accesso a qualsiasi cella.
Nella stessa riga ora non ci sarà più una sola parola, ma una serie di parole e per poter selezionare una di esse all’interno della matrice è necessario quindi un secondo decodificatore di indirizzo, detto decodificatore di colonna.
Quando si vuole accedere a una determinata parola si attiva l’indirizzo di riga corrispondente, poi siccome in ogni riga sono presenti più parole, si attiva l’indirizzo di colonna corrispondente. Questa doppia selezione è attuata inviando metà indirizzo a ciascun decodificatore in modo da attivare la bit line e la word line che corrispondono alla locazione di memoria desiderata.
Nel prossimo post saranno presentate altre problematiche che riguardano la latenza e la dispersione del segnale nella realizzazione di memorie di grandi dimensioni, risolte con l’utilizzo un ulteriore stadio di interfaccia tra la memoria e il canale di collegamento col sistema.