Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Durante l’esecuzione di un
programma il microcalcolatore utilizza i dati presenti nella memoria, produce dei risultati
intermedi, e infine i risultati finali. La memoria risulta indispensabile per memorizzare, più o
meno temporaneamente, i dati e i risultati.
Per fare un esempio, quando scrivete un programma in linguaggi “ad alto livello” come il C, il
C++, il Pascal, il Java… utilizzate delle variabili per mantenere i dati e i risultati dei calcoli: da
un punto di vista fisico, durante l’esecuzione del programma, le variabili coincideranno con
opportune locazioni di memoria disponibili nel microcalcolatore.
Il microcalcolatore necessita di una memoria adeguatamente veloce, ossia rapidamente
accessibile locazione per locazione attraverso il bus. Per questo motivo le memorie che si
affacciano direttamente al bus sono memorie realizzate a semiconduttore.
Esistono memorie di tipo ROM (Read Only Memory ossia “Memorie a Sola Lettura”) e altre di
tipo RAM (Random Access Memory ossia “Memorie ad Accesso Arbitrario”, scrivibili e
leggibili). Poco più avanti rivedremo meglio la classificazione delle memorie; per il momento ci
concentriamo sulle RAM, in particolare del tipo più semplice: le RAM statiche, che sono le più
adatte per comprendere i concetti generali.
Spesso programmi, dati e risultati sono memorizzati anche su dischi magnetici, su dischi
ottici o altri dispositivi, al fine di garantire una archiviazione duratura delle informazioni. Nella
architettura dei microcalcolatori, questi dispositivi di memorizzazione (definiti in generale come
Memorie di Massa) non fanno parte della “memoria” direttamente affacciata sul bus, ma sono
connessi tramite opportuni dispositivi di Ingresso/Uscita (Controllori di Disco, di Nastro). Da
un punto di vista architetturale, cioè, sono visti come sistemi di archiviazione “esterni” al mondo
che si affaccia al bus.
An-1…A0 Indirizzi. In ingresso al chip, ossia gli n fili necessari per selezionare una
tra le 2n locazioni di memoria che il chip contiene;
Dm-1…D0 Dati. Gli m fili necessari per trasferire i bit di dato da e verso la memoria;
sono di tipo 3-state bidirezionale, in numero pari ai bit di una locazione;
Chip Select Selezione del chip. Un controllo che permette di attivare la funzione
delll'intero chip: se non è asserito, TUTTI gli altri segnali sono ignorati;
Output Enable Abilitazione della lettura. Un controllo che, quando asserito, permette la
lettura dei dati memorizzati nella cella indirizzata (abilita i buffer 3-state);
Write Enable Comando di scrittura. Un controllo che permette la scrittura dei dati nella
cella selezionata. I dati devono ovviamente provenire dall'esterno.
Vediamo adesso, per sommi capi, con quali modalità la CPU, “master” di un generico sistema,
utilizza un chip di memoria a semiconduttore (Fig.2.3). La CPU invia per prima cosa al circuito
di memoria l'indirizzo della locazione
di suo interesse, tramite il bus degli
indirizzi. Trascorso un certo tempo (il
tempo di accesso), tale locazione
sarà disponibile alle terminazioni del
chip. La CPU a questo punto potrà
effettuarvi una "scrittura" (inserimento
informazioni), oppure una "lettura"
(recupero informazioni). Tutte queste
operazioni vengono eseguite dalla
CPU attivando gli opportuni segnali di
controllo in ingresso al circuito di Fig.2.3: Criterio generale di utilizzo della memoria
memoria, come vedremo tra breve.
Nel diagramma temporale è stata utilizzata una simbologia sintetica per indicare lo stato delle
linee DI0..7 e DO0..7: sono state messe in evidenza soltanto le transizioni globali dei livelli logici e
non il valore assunto individualmente dai singoli fili. I numeri ivi riportati rappresentano il valore
codificato, in questo caso espresso in decimale, che ciascun insieme di fili assume, nei vari
intervalli di tempo.
Se in un determinato momento
l'indirizzo applicato al chip è
quello riportato in figura, i
decodificatori attiveranno solo
la colonna 3 e la riga 16, e le
altre rimarranno a zero. Solo la
porta logica a quell’incrocio
risulterà attivata, e solo la
corrispondente locazione di
memoria sarà abilitata a
ricevere i segnali di READ o di
WRITE; tutte le altre celle
risulteranno disabilitate.
Sul piano realizzativo, la
struttura a matrice consente di
posizionare ordinatamente, a
scacchiera, tutti i registri di cui
è composta la memoria,
utilizzando in modo ottimale la
Fig.2.9: Esempio di selezione “a matrice” superficie del silicio su cui è
realizzato il chip.
Nota: dall’analisi della struttura della memoria, dove ogni locazione è raggiungibile tramite un indirizzo,
risulta evidente che non è permesso un accesso contemporaneo a più locazioni alla volta: delle migliaia
di celle sarà disponibile sempre e soltanto una sola cella, quella selezionata. Esistono tuttavia dispositivi,
le cosiddette memorie "a doppia porta", in cui è possibile fornire due indirizzi e selezionare
separatamente due locazioni.
Nella tabella seguente è riportata la tavola di verità della funzione dei segnali di controllo,
peraltro ricavabile esaminando la rete combinatoria della figura precedente.
CS WE OE Funzione
1 x x Chip Inattivo, bus in Hi-Z
0 1 1 Chip Attivo, bus in Hi-Z
0 0 1 Scrittura
0 1 0 Lettura
0 0 0 Scrittura (Protezione)
Per poter scrivere nella cella selezionata, è necessario attivare (portare bassi) sia il CS che il
WE , mentre per leggere si devono attivare il CS e l' OE . La rete combinatoria presenta inoltre
una protezione “logica”: viene impedita la situazione anomala di WE e OE attivati insieme,
privilegiando la scrittura.