Capitolo secondo ..................................................................................................2
Il processore e la memoria: modelli a bus .........................................................2
Premessa ............................................................................................................2
1. Collegamento CPU-memoria ....................................................................2
2. Architettura generale CPU-memoria-I/O ..................................................3
3. Tempificazione del colloquio CPU-memoria................................................4
4. Architettura interna alla CPU ....................................................................6
5. Esempio di fase fetch sul bus ....................................................................8
6. Esempio di fase preparazione operandi sul bus.........................................8
7. Esempio di fase esecuzione sul bus.........................................................10
8. Architettura di un modulo di memoria RAM ..........................................11
8.1 Interfaccia verso l’esterno .....................................................................11
8.2 Celle di memoria e loro selezione .........................................................12
9. Architettura di un sistema di memoria RAM ..............................................17
2 Integrazione al Testo di Fondamenti di Informatica II
Capitolo secondo
Il processore e la memoria: modelli a bus
Premessa
Il modello di Von Neumann (vol.I, § I-I.12) è un modello di principio che richiede per la sua realizzazione l'individuazione di un "modello a bus" con il
quale si individuano i percorsi effettivi che dati e linee di controllo percorrono
fra le diverse unità.
I contenuti del vol. II, cap.III-IV forniscono risposte di dettaglio al collegamento CPU-I/O, senza peraltro far riferimento, per motivi di generalità, ad uno
specifico modello a bus.
A complemento dei contenuti citati, questo capitolo fa concreto riferimento
ai modelli a bus in genere adottati dai moderni microprocessori.
1. Collegamento CPU-memoria
Dettagliando quanto illustrato al § III-I-8 (pag.364), e prendendo in esame il
corrispondente modello a bus adottato dai microprocessori, la memoria è collegata alla CPU attraverso (cfr. fig. 1.1):
9 (526/# 75" #8 : :,#
c bit
1
1
! " % # *,$ 23%'&)&)((*,*4++5-- %/%/.. ! &'&'0 0
6/758; *,$ #
m bit
&38
Figura 1.1. Collegamento CPU-Memoria
Capitolo II - Il processore e la memoria: modelli a bus
-
-
3
un bus-dati, collegato al registro MB del processore, sul quale viaggiano bidirezionalmente i dati dalla memoria alla CPU in lettura o viceversa in
scrittura;
un bus-indirizzi, proveniente dal registro MA del processore e diretto verso
la memoria;
i due segnali di controllo provenienti dal processore e diretti alla memoria,
RE (read enable), che chiede alla memoria di effettuare un’operazione di
lettura e WE (write enable) che le chiede una di scrittura.
È da notare che, a seconda dei sistemi, la memoria è indirizzata a parole oppure a byte. Nel primo caso si tratta di calcolatori a voce, nel secondo di calcolatori a caratteri (cfr. § III-I.6).
Se l'indirizzamento è a byte (caratteri), allora si pone il problema di come si
susseguono i byte in memoria. Esistono in proposito due tecniche (cfr. vol. I,
§ III-IV.12 e segg.): in ordine diretto o inverso, detti anche rispettivamente bigendian e little-endian. Nella tecnica ordinata in modo diretto, l'indirizzo è quello del byte più significativo e la parola continua ad indirizzi di byte crescenti
per quelli meno significativi, al contrario della tecnica inversa ove l'indirizzo è
quello del byte meno significativo.
2. Architettura generale CPU-memoria-I/O
In un sistema esiste un numero predeterminato di "bus I/O" (come in alcuni
vecchi modelli di main frame) oppure uno unico (come nell'ormai classico modello a microprocessore) e su ciascun bus sono in genere connessi più dispositivi di I/O. Inoltre, esistono due modelli distinti di collegamento a livello di sistema (cfr. fig. 6.3 in § III-IV.6, cui si rinvia anche per quanto ivi descritto):
−
−
Modello a bus distinti: esistono verso l'esterno due bus fisici distinti l'uno per la memoria, l'altro per l'I/O (nel caso dei vecchi main frame uno
per la memoria, k>1 per l'I/O) (cfr. fig.6.3a); a questo modello fa ad esempio riferimento la fig. 1.2 di vol.I, § III-II.1.5. In termini di caratteristiche del processore si parla allora di "isolated I/O" (cfr. § III-IV.11).
Si noti che questo modello, nato certamente con i main frame, si ritrova
anche in alcuni moderni microprocessori, come nella serie 80x86.
Modello a bus unico: su un unico bus sono collegati memoria e sistema
di I/O (fig.6.3b); in termini di caratteristiche del processore si parla allora di "memory mapped I/O" (cfr. § III-IV.11). Tale modello, nato con
il PDP 11, si ritrova in molti microprocessori moderni, come nella serie
del 68000.
4 Integrazione al Testo di Fondamenti di Informatica II
Il collegamento qui presentato si particolarizza nei casi concreti come accennato in fig. 2.1: l’unico bus di collegamento fra CPU, Memoria e I/O si suddivide in tre bus componenti:
♦ Bus-dati: trasferisce i dati da una unità all'altra;
♦ Bus-indirizzi: comunica l'indirizzo (di memoria o di I/O) dal quale o
verso il quale il dato è indirizzato
♦ Linee di controllo: trasferiscono informazioni o indicatori per il controllo e la tempificazione delle operazioni, ad esempio i segnali RE e WE,
ack e così via.
Dati
Indirizzi
Controllo
<,= >
&38
?A@B?
Figura 2.1 Bus dati, bus indirizzi e bus di controllo
Si ricorda che nei sistemi in cui esiste un collegamento fisico tra interfacce di
I/O e memoria è anche possibile realizzare uno schema di collegamento, detto
DMA (Direct Memory Access) che trasmette blocchi di dati direttamente da o
verso la memoria (cfr. § III.IV.6). Un tale schema è realizzabile sia in sistemi a
bus distinti che a bus unico.
3. Tempificazione del colloquio CPU-memoria
Similmente a quanto accade con l'I/O (cfr. § III-IV.4), lo scambio di dati fra
CPU e memoria va opportunamente tempificato. In analogia a quanto visto nel
citato paragrafo, la tempificazione è detta asincrona (cfr. § III-IV.4.2) se alla
richiesta di operazione di lettura (RE) o scrittura (WE) da parte della CPU, la
memoria "risponde" con un segnale che indica l'avvenuta operazione: questo
segnale è in genere detto ACK (acknowledge); è viceversa detta sincrona se è
basata esclusivamente sull'uso del clock e prevede quindi che l'operazione in
memoria avvenga in un tempo precisato.
Capitolo II - Il processore e la memoria: modelli a bus
5
La soluzione asincrona è più complessa, ma ovviamente preferibile in quanto
rende indipendente il progetto della memoria da quello della CPU e la possibilità di collegare ad una CPU una qualsiasi memoria.
Per illustrare i dettagli della tempificazione si usano diagrammi come quello
di fig. 3.1, ove è in particolare illustrata la tempificazione asincrona per una operazione di lettura. Si noti che per i segnali binari sono indicati espressamente i
due valori 0 ed 1 (ad esempio, al tempo t2 5( passa da 1 a 0) mentre i valori dei
bus sono indicati in generale (ad esempio, al tempo t1 il bus ADDR cambia
valore). In particolare si ha:
-
al tempo t1 il processore pone un indirizzo sul bus apposito;
al tempo t2 il processore invia alla memoria il segnale RE;
al tempo t3 la memoria pone il dato letto sul bus;
al tempo t4 la memoria comunica l'ACK al processore.
DFEGEGHJILKMK
X YGZ[ \[ ]M]^_)`a [ ZB^
jFk
NPO C O
bP`3c4^
_d`a [ Z3^
eFa c `A[ fAgihZ3hdY]L`
DFQSR
CT
CU
CJV
C4W
C
Figura 3.1 Tempificazione asincrona per una operazione di lettura
Si noti la particolare simbologia utilizzata in figura 3.1 per indicare lo stato
ad alta impedenza in cui si viene a trovare il bus dati al di fuori dell’intervallo
temporale in cui la memoria pone su di esso un dato valido. Si osservi, infine,
che per i segnali di comando (RE, WE) e di ack è di regola utilizzata una tempificazione sui fronti. Nel caso del protocollo di figura 3.1, la variazione 1→0 del
segnale 5( segnala alla memoria la volontà del processore di effettuare una lettura, mentre la variazione di livello 0→1 del segnale ACK segnala al processore
6 Integrazione al Testo di Fondamenti di Informatica II
che la memoria ha posto un dato valido sul bus-dati (agendo così da strobe per il
caricamento del registro MB del processore).
4. Architettura interna alla CPU
L'esecuzione dell'algoritmo del processore, mostrato genericamente al § IIII.10, trova la sua concreta realizzazione in uno schema a bus, con il quale i diversi registri di macchina sono collegati in ingresso e/o in uscita ad uno o più
bus interni ("interno" per distinguerlo dal "bus esterno", cfr. ad esempio § IIIVI.4) sui quali fluiscono i dati. In fig. 4.1 è illustrato uno schema ad unico bus
di un ipotetico processore. Sull'unico bus sono collegati tutti i registri di cui alla
fig. 5.1 del § III-I.5 ed inoltre il registro di stato S (cfr. § III.I.13.9) comprendente fra l'altro il registro di condizione CC (cfr. § III.I.13.8); nella figura è inoltre inserito un registro RA, "Register Address".
Unità di controllo
O2
O1
Rete di
controllo
ALU
U
D
Unità Logico-Aritmetica
PC
MA
S
MB
RA
Collegamento con la memoria
R1
l
RI
RN
RU
Registri generali,
accumulatori,
registri indice, …
Collegamento con l’I/O
Figura 4.1 Bus interno di una CPU
Capitolo II - Il processore e la memoria: modelli a bus
7
Il registro RA è destinato a contenere l'indirizzo (ad esempio 0..7) del registro generale che definisce il registro interessato alla operazione. Il banco di registri generali si suppone infatti che operi come una memoria, realizzando le
due microoperazioni R[RA]:=BUS e BUS:=R[RA]. In altri termini, il collegamento fra RA e i registri Ri è mostrato in fig. 4.2: un apposito decodificatore
decodifica RA ed abilita (a seconda dei casi in ingresso o in uscita) uno dei registri verso il BUS.
R0
RA
BUS
R k-1
Figura 4.2 Circuito di selezione per il banco di registri generali
Tutte le microoperazioni di trasferimento dati attraverso le quali si effettua
l'algoritmo del processore ed illustrate al § III-I.10 si realizzano attraverso operazioni di trasferimento attraverso bus di cui al § I.6 (Macchine elementari). Per
alcuni esempi si vedano i paragrafi che seguono.
Si noti che l'architettura esemplificata in figura è una estremamente elementare e non ottimizzata. Nelle architetture reali si ritrovano soluzioni più avanzate realizzate adottando concetti non introdotti in questa sede (p. es. pipeline,
cache, etc.), introducendo nuovi registri oppure eliminandone alcuni (p. es. l'unità logico-aritmetica potrebbe operare direttamente dal BUS, effettuando l'operazione BUS:=O1 (op) BUS).
8 Integrazione al Testo di Fondamenti di Informatica II
5. Esempio di fase fetch sul bus
Si esemplifica in questo paragrafo la realizzazione di una procedura fetch su
una architettura a bus realizzata come in figura 4.1.
1)
3)
4)
6)
BUS:= PC
2) MA:= BUS
{MA:=PC}
invia RE a Memoria, che pone MB:= M[MA]
BUS:= MB
5) D:= BUS
{D:=MB}
PC:=PC+1
ottenuta semplicemente, a partire dalla (formula III.I.10.4), mettendo in evidenza il passaggio attraverso il bus delle microoperazioni MA:=PC, D:=MB.
Si noti che l’ultima operazione può essere eseguita in parallelo alle precedenti
(dopo BUS:=PC), le altre necessariamente in sequenza.
Il modello di cui sopra si riferisce ovviamente ad un calcolatore a voce; per i
calcolatori a caratteri deve evolversi così come indicato al § III.I.10.7.
Soluzioni intermedie possono verificarsi nelle architetture reali. Ad esempio,
nel 68000 l'indirizzamento è a byte (8 bit), una parola di 16 bit individua
compiutamente una istruzione e l'accesso in memoria è appunto con
parallelismo di 16 bit. Si ha allora semplicemente, in luogo di PC:=PC+1,
PC:=PC+2.
6. Esempio di fase preparazione operandi sul bus
La fase di preparazione degli operandi è strettamente legata alla struttura delle istruzioni, alla modifica di indirizzo ed alle tecniche di indirizzamento del
processore, in una parola al linguaggio macchina dello stesso. Si sviluppa qui
soltanto un esempio di un ipotetico processore, nelle seguenti ipotesi:
♦ la classe di istruzione che si esamina comprende due operandi, uno di tipo
memoria, l'altro di tipo registro:
♦ l'istruzione da eseguire sia una istruzione di MOVE di un operando-origine
situato in memoria verso un operando-destinazione di tipo registro;
♦ l'istruzione, che al termine della fase fetch staziona nel registro D, è composta di tre campi:
♦ D.OP che definisce il codice operativo (MOVE nell'esempio),
♦ D.M che definisce il modo di indirizzamento dell'operando-origine,
che nel caso specifico si suppone essere INDIRETTO,
♦ D.R, che definisce l'indirizzo del registro-destinazione (uno degli 8
registri generali);
Capitolo II - Il processore e la memoria: modelli a bus
9
♦ l’operando-origine ha il suo indirizzo posto in memoria, all’indirizzo
immediatamente seguente l’istruzione prelevata in fase di fetch;
♦ al termine della fase di preparazione dell’operando, l’operando-memoria sarà posto in MB, quello di tipo registro è identificato, in quanto in RA è posto il suo indirizzo.
In altri termini, si suppone che l'istruzione si presenti come in figura 6.1, con
la prima parola corrispondente a quella estratta dalla memoria nella fase fetch,
la seconda ancora in memoria, ma necessaria ai fini della preparazione dell'operando. La semantica dell'istruzione è:
D.OP
D.M
D.R
A
Figura 6.1. Esempio di istruzione
RD.R:= M[M[A]]
e cioè: il contenuto della memoria M posto all'indirizzo contenuto all'indirizzo
A deve essere caricato nel registro D.R-esimo.
Le microoperazioni necessarie per realizzare la preparazione dell'operandomemoria sono:
1)
3)
4)
6)
7)
9)
BUS:= PC
2) MA:= BUS
invia read a Memoria, che pone MB:= M[MA]
BUS:= MB
5) MA:=BUS
invia RE a Memoria, che pone MB:= M[MA]
BUS:= MB
8) MA:= BUS
invia RE a Memoria, che pone MB:= M[MA]
{MB:=A}
{MB:=M[A]}
{MB:=M[M[A]]}
Si noti in particolare che nel caso esemplificato la preparazione dell'operando
avviene mediante tre accessi in memoria:
♦ il primo, che costituisce in effetti il completamento del prelievo dell'istruzione, è all'indirizzo seguente quello dell'istruzione medesima (cfr. microperazione 1) e porta in MB l'indirizzo A;
♦ il secondo, che sarebbe anche l'ultimo se l'indirizzamento fosse diretto, porta A in MA (5) e MA] in MB (6),
♦ il terzo porta M[MA] in MA (8) e M[M[A]] in MB (9).
Più semplicemente, le microoperazioni necessarie per realizzare la preparazione dell'operando-registro sono:
10 Integrazione al Testo di Fondamenti di Informatica II
1) BUS:= D.R
2) RA:= BUS
Si noti quanto più semplice è la preparazione dell'operando-registro rispetto a
quello di tipo memoria, oltre al fatto che la memoria a registri è in generale più
veloce della memoria centrale.
7. Esempio di fase esecuzione sul bus
La fase execute di una istruzione è la più semplice di tutte, una volta che sia
stata effettuata la preparazione degli operandi. Per esempio, per completare l'esecuzione dell'operazione di cui al paragrafo precedente è sufficiente realizzare
le microoperazioni:
1) BUS:=MB
2) R[RA]:= BUS
{registro-destinazione :=operando-origine}
Si supponga ora che, ferma restando la tecnica di indirizzamento, l'istruzione
sia una di ADD, nel significato:
RD.R:= RD.R + M[M[A]]
Allora la fase execute sarà:
1) BUS:=MB
2) O1:= BUS
{1° registro-operando di ALU :=operando-memoria}
3) O2:= R[RA]
{2° registro-operando di ALU :=operando-registro}
4) Invio di segnale di controllo ad ALU, che effettua U:=O1:+ O2
5) BUS:=U
6) R[RA]:= BUS
Giova ricordare (§ 4) che gli schemi presentati in questo capitolo sono schemi elementari non ottimizzati, finalizzati didatticamente a favorire la comprensione del meccanismo di funzionamento della unità di controllo sul piano concettuale piuttosto che la sua reale tecnologia.
Capitolo II - Il processore e la memoria: modelli a bus 11
8. Architettura di un modulo di memoria RAM
Si ricorda (cfr. vol.II, § III-I.8) che il modello di memoria assunto si interfaccia con il processore attraverso i due registri MA (memory address) ed MB
(memory buffer) ed i segnali di controllo RE (read enable) e WE (write enable)
ed inoltre (cfr. vol.II, § III.5.6) che una memoria RAM è di solito composta di
moduli o chip. Esamineremo in questa sede l’architettura di un singolo chip
N
con MA di N bit (capacità k=2 ) e parallelismo p (numero di bit di MB).
Esamineremo dapprima un modulo con p=1 (un solo bit di parallelismo), estendendo poi all'
occorrenza al caso p>1.
8.1 Interfaccia verso l’esterno
In primo luogo giova far presente che, oltre ai segnali di cui sopra, in input al
singolo modulo esiste un segnale di abilitazione generale dello stesso, tipicamente detto CS (Chip Select), la cui funzione è appunto quella di abilitare il
chip: nel caso che CS non sia attivo il chip non opera e quindi se sollecitato per
la scrittura (WE) non altera il contenuto di nessuna delle sue celle, se in lettura,
l'uscita MB resterà neutra. Questo è importante soprattutto per quanto si vedrà
al paragrafo successivo.
Il bus MB è unico sia per l'input che per l'output dal modulo e l'interfaccia
della memoria verso l'esterno deve provvedere a renderlo bidirezionale, traendo
da questo un bus interno di input Di ed uno di output Do. Inoltre il bus MB deve
essere disaccoppiato dai bus Di e Do, sia dal punto di vista elettronico sia da
quello logico: a tale scopo spesso si usa un "buffer" interno al chip nel quale
viene memorizzato il dato proveniente da MB prima che esso sia effettivamente
scritto in memoria oppure il dato proveniente dalla memoria dopo di essere stato letto. Nel caso p=1 il buffer è costituito da un flip-flop interno mb atto a memorizzare il bit di MB corrispondente; nel caso p>1, lo schema si ripete per ogni bit. In fig. 8.1 è mostrato uno schema di riferimento per p=1, il quale opera
come segue:
•
•
•
In caso di lettura (RE=1) e sempre che sia CS=1 l'interfaccia genera in
sequenza due segnali: R, che memorizza il bit letto in mb, ed R', che
trasferisce il dato dal buffer mb sul bus MB (l'operazione sarà meglio
analizzata nei prossimi sottoparagrafi).
In caso di scrittura, analogamente, l’interfaccia genera W', che memorizza in mb, e poi W che scrive in memoria.
l'input di mb è multiplexato fra il lato proveniente da MB (abilitato da
W') e quello dalla memoria (abilitato da R, cfr. §§ 8.2, 8.3).
12 Integrazione al Testo di Fondamenti di Informatica II
•
l’output di mb è demultiplexato fra il lato destinato a MB (abilitato da
R') e quello destinato alla memoria (abilitato da W, cfr. §§ 8.2, 8.3).
È da notare che il circuito di lettura che proviene dalla memoria sul bus Do
termina con un tristate diretto verso mb e che, viceversa, il circuito di scrittura
che si dirige verso la memoria con il bus Di inizia con un tristate diretto verso la
memoria (cfr. figg. 8.2, 8.4).
'$9(562/(
&(//(',0(025,$
0(025,$
W
R
n
m
'
' W W’
PE
R’
W’
WE
R’ R
C
CS
MB
RE
'$9(562/$&38
Figura 8.1 Interfaccia di un chip di memoria
8.2 Celle di memoria e loro selezione
La cella di memoria, quella cioè atta a memorizzare un singolo bit, può essere logicamente schematizzata come un flip-flop con un input di abilitazione ed
un terminale che ha la duplice funzione di input e output del bit (i flip-flop
normali, come mb, distinguono il pin di input da quello di output, quelli di memoria li unificano per minimizzare il numero di fili che attraversa il chip); in
fig. 8.2a) è schematizzata la cella di memoria.
8.2.1 Selezione lineare
Le operazioni di lettura e scrittura sono rispettivamente operazioni di trasferimento del bit in ingresso da mb alla cella selezionata tramite il bus interno Di
Capitolo II - Il processore e la memoria: modelli a bus 13
oppure, viceversa, dalla cella selezionata ad mb attraverso il bus di uscita Do. La
selezione, se di tipo lineare, è effettuata da un decoder 1/k che, a partire dagli N
bit di MA, individua una delle k=2N celle elementari. Il modello è pertanto del
tutto simile architetturalmente a quello di fig. 4.2, fatto salvo il fatto che le celle
di memoria sostituiscono i registri e che, attraverso apposite porte tristate il bit è
prelevato oppure inviato da/verso mb (cfr. fig. 8.2b).
M0
bit da scrivere
MA
bit letto
E
M k-1
abilitazione
Do
Di
D
W
R
Fig. 8.2. a) Cella di memoria; b) Architettura interna di un chip di memoria
a selezione lineare
La selezione lineare richiede di distribuire sul chip tanti conduttori di selezione quanta è la capacità del chip: nel caso, ad esempio, di un chip da 1 Mbit,
20
circa un milione di conduttori (per l’esattezza, 1M=2 = 1.048.576). Inoltre, le
celle sono distribuite linearmente (si sviluppano in una sola dimensione)
sull’area del chip, mentre per sfruttare al massimo il silicio sarebbe opportuno
uno schema che occupasse con qualche regolarità le due dimensioni di un piano.
Unico vantaggio di questa tecnica (che è in realtà soltanto una tecnica di riferimento oppure usata per memorie di piccole dimensioni) è quello di consentire
una semplice realizzazione di un chip con p>1. È infatti sufficiente usare la seconda dimensione del piano per distribuirvi le p celle di una parola di memoria:
i conduttori che escono dal decodificatore investono in parallelo le p celle e tutto lo schema di figura si ripete p volte, una per ciascun bit della parola.
14 Integrazione al Testo di Fondamenti di Informatica II
8.2.2 Semiselezione
Molto più efficiente è una soluzione con tecnica a semiselezione basata sul
seguente concetto: gli N bit dell’indirizzo si dividono in due gruppi di N/2 l’uno
(supposto N pari), dei quali l’uno fa capo ad un decoder di riga, l’altro ad uno di
colonna (cfr. fig. 8.3, con N=16). Le celle di memoria si dispongono in un array
N/2
N/2
2 × 2 , in modo che ciascuna cella appartenga ad una riga e ad una colonna.
La selezione di una cella avviene allorché ne sia stata selezionata la riga e la colonna cui appartiene. Questa è una tecnica generale per tutti i problemi di selezione o di decodifica e non soltanto per le memorie: essa riduce il numero dei
conduttori da 2N a 2⋅2N/2 = 2N/2+1 (nel caso di 1 Mbit da 1.048.576 a 2048).
op
MA
(1)
po
(
MA
2)
x,v
xs
tq s x r
x,w
u4v
us
0000
0100
0101
qr
ur
u4w
0001
0010
0011
{5||{
0110
0111
1000
1010
1011
1100
1101
1110
1111
ytz
Figura 8.3 Organizzazione di un modulo RAM a semiselezione
In concreto, con riferimento a memorie RAM con p=1, la selezione orizzontale
avviene come per lo schema a selezione lineare, estendendosi su tutta la riga
(cfr. fig. 8.4), mentre la selezione verticale avviene rendendo attivo il solo bus
verticale selezionato. Se ad esempio è selezionata la i-esima riga e j-esima colonna, il comportamento è il seguente:
•
In scrittura Di è demultiplexato sulle porte tristate di tutte le colonne,
ma soltanto la colonna j lascia passare il suo valore (0 o 1) mentre tutte
le altre restano neutre. Tutte le celle della riga i sono selezionate, ma
soltanto Mij registra il valore mentre le altre della riga non vengono alterate (è questa una proprietà della cella: per essere riscritta deve essere
selezionata e deve avere in ingresso un valore attivo).
Capitolo II - Il processore e la memoria: modelli a bus 15
•
In lettura tutte le celle della riga i inviano i loro valori sui rispettivi busdati di colonna, che, attraverso i tristate di lettura, sono multiplexati
verso Do . Essendo soltanto il tristate della colonna j attivo, il valore di
Mij viene trasferito in Do.
M00
M 0q
M q0
M qq
Do
Di
R
W
N/2
N/2
MA
Figura 8.4 Architettura di un chip a semiselezione
16 Integrazione al Testo di Fondamenti di Informatica II
Nel caso esaminato della semiselezione e p>1 occorre ripetere p volte lo
schema di fig. 8.4, uno per ciascun bit della parola di memoria: i bit omologhi
sono raggiunti dai medesimi segnali di selezione di riga e di colonna; lo schema
globale può avere uno sviluppo planare (occupando ogni bit un’area diversa della superficie) oppure spaziale (usando ad esempio chip multistrato). In figura
8.5 è mostrato lo schema di principio delle due soluzioni.
a)
ELW
ELW
ELW
ELW
b)
ELW
ELW
Figura 8.5 Memorie a semiselezione con parallelismo maggiore di uno:
a) schema planare; b) schema spaziale
Capitolo II - Il processore e la memoria: modelli a bus 17
9. Architettura di un sistema di memoria RAM
Una memoria di capacità C è tipicamente realizzata collegando opportunamente m moduli a capacità C'=C/m, con m potenza di 2. Si supponga allora che
sia (C, C' ed m sono potenze di 2):
c= log2C
q=log2C'
k= log2m
c=q+k
L'indirizzo complessivo MA della locazione di memoria può essere visto allora come composto di due parti: un indirizzo del modulo (k bit) ed un indirizzo
nel modulo (q bit) e i diversi moduli possono essere collegati secondo lo schema di fig. 9.1:
• un decodificatore 1/m decodifica l'indirizzo del modulo e abilita attraverso il chip select uno solo fra gli m moduli;
• gli altri q bit dell'indirizzo sono applicati in parallelo a tutti gli m moduli: soltanto quello selezionato ne sarà influenzato;
• I memory buffer di tutti i moduli sono posti in parallelo: soltanto quello
abilitato produrrà il dato in uscita (gli altri danno uscita neutra) oppure
recepirà il dato in ingresso.
C0
CS 0
MA"
k bit
CS m-1
q bit MA’
C m-1
MB
Figura 9.1 Collegamento di moduli di memoria per aumentare la capacità