Sei sulla pagina 1di 18

Banco di registri e memoria

Corso ACSO – prof. Cristina SILVANO


Politecnico di Milano

Componenti di memoria e circuiti di pilotaggio

‰ L’organizzazione interna della memoria e del banco di registri


prevedono generalmente che le uscite di 2 o più componenti
siano
i collegate
ll t alle
ll stesse
t li
linee di uscita
it (bus)
(b )

‰ Sono necessari opportuni “elementi funzionali” (circuiti di


pilotaggio delle uscite del componente) che garantiscano la
NON interferenza tra i moduli che condividono le stesse linee
di uscita

-2-

Pag. 1
Esempio: 2 registri da n bit collegati ad un bus da n bit

n bit n bit

I I
L R1 L R2
CK U CK U

n bit n bit

n bit

Per il corretto funzionamento deve essere possibile:

‰ isolare elettricamente e
‰ attivare in mutua esclusione
le uscite dei 2 registri da n bit collegate al bus

-3-

Buffer tri-
tri-state

E’ il circuito elementare modellabile come un contatto a tre


posizioni:

‰ in stato di bassa impedenza consente di avere in uscita o il


livello alto (1) o il livello basso (0)
‰ in stato di alta impedenza (Z) isola elettricamente l’uscita
‰ l’uscita tri-state viene gestita da un apposito ingresso di
controllo (Ouput Enable) che, se non attivo, forza lo stato di
alta impedenza

-4-

Pag. 2
Funzionamento di un buffer tri-
tri-state
I U I U
0 0 0 0

ingresso di OE interruttore chiuso


controllo 1

I U I U
1 1 1 1

OE interruttore chiuso
1

I U I U
X Z X Z

OE interruttore aperto
stato di alta
0 oppure 1 0 impedenza

-5-

Banco dei registri ((Register


Register File)

‰ Spesso occorre utilizzare un certo numero di registri paralleli con le


stesse dimensioni e le stesse funzioni (ad es. nel data-path della
CPU)

Registri di Bus di Registro


ingresso ingresso di uscita
dell’ALU all’ALU
Registri dell’ALU

A B A A
+ A B L +
B A U B

‰ I registri vengono organizzati in una struttura a vettore, chiamata


banco dei registri

-6-

Pag. 3
Funzionamento di un banco di registri

‰ Si consideri ad esempio un banco di 8 registri da 16 bit ciascuno,


ovvero un banco 8 × 16
– Ogni registro è identificato da un indirizzo
d (valore binario su 3 bit
compreso tra 0 e 7).
– Gli 8 registri sono convenzionalmente chiamati: R0, R1, …, R7

‰ Più in generale, per specificare l’indirizzo con n ≥ 1 registri


occorrono ⎡log2 n⎤ bit

‰ Le operazioni eseguibili sul banco sono:


– llettura:
tt sii presentano
t iin uscita
it i 16 bit memorizzati
i ti nell registro
i t
indirizzato
– scrittura: si inviano e memorizzano 16 bit nel registro indirizzato

-7-

Interfaccia di un banco di registri

‰ Il banco dei registri ha:


– 3 ingressi per l’indirizzo del registro da leggere / scrivere
– 16 uscite/ingressi dati,
dati per ricevere/inviare il contenuto del registro da leggere/scrivere
– un ingresso di comando: lettura o scrittura (RD: read)
– un ingresso di abilitazione al banco (CS: Chip Select)
– un ingresso di controllo per la gestione delle uscite tri-state (OE: Output Enable)
– un ingresso come segnale di clock (CK)
indirizzo
3
Porta di accesso 8 × 16
dato
16
(in lettura /scrittura)
al banco di registri RD (lettura / scrittura)

8 x 16 CS (abilitazione)
OE
CK (clock)

-8-

Pag. 4
Operazioni di lettura/scrittura

‰ Lettura: ‰ Scrittura
– indirizzo del registro da leggere – indirizzo del registro
g da scrivere
– comando di lettura (RD = 1) – valore del dato da scrivere nel
registro
– comando di Output Enable (OE = 1)
– comando di Output Enable (OE = 0)
– abilitazione del banco (CS = 1)
– comando di scrittura (RD = 0)
– in uscita si ottiene il valore del dato
del registro indirizzato – abilitazione del banco (CS = 1)

Quando CS = 0 le uscite del banco sono a Z (alta impedenza)

-9-

Struttura del banco di registri 8 x 16 bit

rete combinatoria 8 registri paralleli


di controllo con caricamento
indirizzo

dato 3 16 bit R0
16 bit R1
lettura
scrittura 16 16 bit R2
16 bit R3
abilitazione RD
16 bit R4
CS
16 bit R5
Ouput OE 16 bit R6
Enable
16 bit R7

clock CK

- 10 -

Pag. 5
Varianti

‰ I banchi di registri sono disponibili in diverse dimensioni:


8 × 8,
8 16 × 16,
16 32 × 32,
32 ecc.
ecc

‰ Banco di registri multi-porta: il banco di registri può


avere più porte di accesso distinte, in lettura/scrittura
(o anche in sola lettura o sola scrittura) per poter
operare in parallelo su più registri.
‰ Esempio tipico: 2 porte di lettura e 1 porta di scrittura
‰ In caso di più porte di scrittura, il banco è in grado di
gestire i conflitti di scrittura

- 11 -

Banco di Registri con 2 porte di lettura e 1


porta di scrittura
‰ Banco di registri con 2 porte di lettura (Dato A e Dato B dell’ALU) e
una porta di scrittura (risultato in uscita dall’ALU)

Registri di Bus di Registro


Banco di Registri ingresso ingresso in uscita
dell’ALU all’ALU dall’ALU

A A A A
+ A B L +
B B U B

- 12 -

Pag. 6
Banco di Registri ((Register
Register File)

‰ Progettiamo un Register File con n registri, due porte di lettura (DatiA


e DatiB) e una porta di scrittura (Risultato)

Indirizzo Dati A
Dati A
Indirizzo Dati B
Indirizzo Risultato
Dati B
Risultato

- 13 -

Implementazione delle 2 porte di lettura

- 14 -

Pag. 7
Implementazione della porta di scrittura

k-to-n

- 15 -

Memoria

‰ La memoria è un blocco funzionale di tipo sequenziale complesso


– Serve per memorizzare dati e istruzioni, e per permetterne
l’
l’accesso, iin llettura
tt o iin scrittura
itt

‰ Ha una struttura a matrice (vettore di parole), i cui elementi sono


le parole (word) di memoria
– Ogni parola è una sequenza di bit, in numero fissato ≥ 1

‰ Un componente integrato (chip) di memoria si caratterizza


specificando:
• la capacità, misurata in numero totale di bit memorizzabili: di solito si esprime
come prodotto del numero di parole per il numero di bit per parola
• le funzioni: lettura e scrittura, solo lettura
• il numero di porte di accesso
• e il tempo necessario per l’accesso

- 16 -

Pag. 8
Organizzazione a parole

indirizzo bit
di parola
parola
p
0 0 1 7
1 8 bit
2 8 bit
vettore 3 8 bit
di parole 4 8 bit
5 8 bit
6 8 bit
7 8 bit

Capacità: 8 parole × 8 bit per parola = 64 bit


- 17 -

Interfaccia di memoria

‰ Il contenuto della memoria viene letto o scritto una


parola per volta, in un ciclo di clock (più cicli in memorie
lente)
‰ Si accede a una parola di memoria tramite la porta di
accesso alla memoria
‰ La porta di accesso alla memoria può funzionare in
lettura e scrittura (è il caso più frequente), solo in
lettura e teoricamente anche solo in scrittura (caso poco
frequente)

- 18 -

Pag. 9
Segnali dell’interfaccia di memoria

‰ La porta di accesso (interfaccia) alla memoria è formata dai


seguenti segnali:
– Ingressi di indirizzo,
indirizzo che codificano in binario ll’indirizzo
indirizzo della parola su
cui si deve operare
• se la memoria ha capacità di k ≥ 1 parole, occorrono ⎡log2k⎤ ingressi di indirizzo

– Ingresso/Uscita dei dati, per leggere/scrivere una parola di m bit

– Bit di comando di lettura/scrittura, RD (read):


RD = 1 lettura; RD = 0 scrittura

– Bit di comando di abilitazione del componente, CS (Chip Select): CS


= 1 chip attivo, si può accedere al contenuto; CS = 0 chip non attivato

– Bit di comando di abilitazione delle uscite dati, OE (Output Enable):


OE = 1 le uscite sono abilitate; OE = 0 le uscite sono isolate

- 19 -

Componente di memoria

{
indirizzo
n bit
Capacità:
porta di m bit
dato
2 ×m
n

accesso RD (lettura / scrittura)


OE (abilitazione uscite)
CS (abilitazione chip)

‰ Componente integrato (chip) di memoria


‰ Capacità: 2n parole × m bit per parola

- 20 -

Pag. 10
Diagramma temporale
rita rd o d i le ttu ra rita rd o d i s c rittu ra
10 – 50 ns 10 – 50 ns
‰ Capacità: 8 × 8 bit (8 b it d i (8 b it d i d a to )
‰ # bit ind:
i d llog2 8 = 3 bit D a to 5
d t )
10101010 2 00010011 u s c ite
‰ # bit dato: 8 bit is o la te
OE 3 4
le g g e s c riv e
RD 2 3
a b ilita z io n e
c h ip
CS 4 5
(3 b it d i in d iriz z o ) (3 b it d i in d iriz z o )

In d iriz z o 1 000 1 001

le ttu ra s c rittu ra
Tem po
le g g e 1 0 1 0 1 0 1 0 s c riv e 0 0 0 1 0 0 1 1
d a lla p a ro la d i n e lla p a ro la d i
in d iriz z o 0 0 0 in d iriz z o 0 0 1

- 21 -

Cicli di lettura e scrittura

Ciclo di lettura Ciclo di scrittura


1. indirizzo della parola da leggere 1. indirizzo della parola da scrivere
2. comando di lettura (RD = 1) 2. dato da scrivere in ingresso
3. non isolare le uscite dati (OE = 1) 3. comando di scrittura (RD = 0)
4. abilitare il componente (CS = 1) 4. isolare le uscite dati (OE = 0)
5. contenuto della parola disponibile 5. abilitare il componente (CS = 1).
sulle uscite. Ritardo di scrittura: 10 - 50 ns
Ritardo di lettura: 10 - 50 ns

- 22 -

Pag. 11
Organizzazione a matrice

‰ Le memorie vengono viste di solito come vettori


(monodimensionali) di parole
‰ Le memorie di elevata capacità possono in realtà avere
una struttura interna a matrice (bidimensionale), allo
scopo di ridurre i collegamenti interni
‰ In tal caso sono di solito presenti due comandi aggiuntivi
(RAS e CAS), per l’accesso alla memoria:
– RAS:
S Row Address SStrobe
– CAS: Column Address Strobe

- 23 -

Esempio di memoria organizzata a matrice

‰ Memoria con capacità di 16Mbit


‰ Configurazione
g esterna: 2M x 8 bit = 2M Byte
y ((21 bit
indirizzo per byte)
‰ Struttura: matrice 4K(righe) x 4K(colonne)
‰ Riga: 4K bit vista come 512 x 8 bit (29 Byte)
‰ Indirizzi:
– Indirizzo di riga: 12 bit
– Indirizzo di colonna: 9 bit per individuare il byte nella riga
‰ Accesso:
– Indirizzo di riga + RAS (accesso a 4096 bit)
– Indirizzo di colonna + CAS (accesso a 1 byte tra i 512)

- 24 -

Pag. 12
Esempio di organizzazione a matrice (2)

RAS

I20-9 registro
g matrice di celle
decod.
decod
indirizzo 512 × 8
di riga
di riga totale 4096 bit
12 bit

I20-9 \ I8-0 circuito di CS


lett. \ scritt.
21 bit R\W

9 bit registro
decod.
indirizzo
di col. di colonna
I8-0

CAS D7 D0

- 25 -

Banco di memoria

‰ Sono disponibili componenti integrati di memoria di svariate


capacità
– Per esempio: 64 K × 8, 1 M × 8, 1 M × 1, 256 M × 1, …

‰ Per ottenere memorie di capacità elevata, occorre aggregare


più componenti di memoria, realizzando un banco di memoria

‰ I banchi di memoria hanno una struttura a matrice di chip


– Per aumentare la
P l lunghezza
l h d
della
ll parola
l di memoria,
i sii compone
una colonna di chip di memoria, da usare in parallelo
– Per aumentare il numero di parole della memoria, si compone
una riga di chip di memoria, da usare in esclusione

- 26 -

Pag. 13
Esempio

‰ Si supponga di disporre di 4 chip di memoria da 1 M × 8


ciascuno
‰ Si desidera ottenere un banco di memoria da 2 M × 16
‰ Il numero di chip è sufficiente:
4 (1 M × 8) = 32 Mbit e
2 M × 16 = 32 Mbit
‰ Occorre comporre una matrice 2 × 2:
2 righe
i h di 2 chip
hi di memoria i ciascuna
i

- 27 -

Interfaccia processore-
processore-memoria

Processore Memoria
Bus indirizzi
MAR I di i
Indirizzo
n bit
Bus dati
MDR Dato
Capacità
m bit
2n x m
Logica di Bus di controllo
controllo RD (lettura/scrittura)
OE (Output Enable)
CS (Chip
(Chi Select)
S l t)

‰ MAR: Memory Address Register


‰ MDR: Memory Data Register
- 28 -

Pag. 14
Tecnologie di memoria

‰ Esistono svariate tecnologie di memoria, che dipendono:

– dalla capacità della memoria


– dal tempo di accesso a una parola (in lettura o in scrittura)
– dalla politica di accesso: lettura e scrittura, sola lettura,
programmabilità sul campo
– dalla stabilità: volatile o permanente
– dal costo

- 29 -

RAM Statica (SRAM


(SRAM))

‰ Memoria RAM (Random Access Memory)


‰ La memoria SRAM richiede 6 transistor per bit memorizzato
‰ Capacitàà medio-piccola
‰ Tempo di accesso molto breve
‰ Funziona in lettura e scrittura
‰ Volatile: senza alimentazione il contenuto della memoria svanisce
‰ Usi: svariati, in particolare come memoria cache

- 30 -

Pag. 15
RAM Dinamica (DRAM
(DRAM))

‰ La tecnologia DRAM richiede 1 transistor per bit memorizzato


– Sfrutta il fenomeno dell’accumulo temporaneo di carica sul transistor (capacità
parassita)
– Internamente contiene un circuito di rinfresco che rigenera le cariche

‰ Memoria RAM (matrice di transistor) ad altissima densità


‰ Capacità grande-grandissima
‰ Tempo di accesso medio
‰ Funziona in lettura e scrittura
‰ Volatile: senza alimentazione il contenuto della memoria
svanisce
‰ Usi: numerosissimi, la memoria centrale (main memory) dei
calcolatori normalmente è DRAM

- 31 -

ROM

‰ Memoria ROM (Read Only Memory), realizzata come matrice di


transistor
‰ Capacitàà grande
‰ Tempo di accesso medio
‰ Funziona in sola lettura
‰ Persistente: il contenuto permane anche in assenza di
alimentazione
‰ Usi: per memorizzare programmi permanenti, non modificabili;
grandi volumi di produzione
g p

- 32 -

Pag. 16
PROM, EPROM, EEPROM

‰ Capacità e tempo simili alla ROM


‰ Sola lettura e persistenti
‰ Sono programmabili sul campo
campo, tramite un apposito
programmatore:
– PROM (Programmable Read Only Memory): programmabile una
volta sola
– EPROM (Erasable Programmable Read Only Memory): cancellabile
con raggi UV
– EEPROM (Electrically Erasable Programmable Read Only Memory):
cancellabile elettricamente ((si p
può anche scrivere un solo byte
y p per
volta)
‰ Usi: piccoli volumi di produzione, prototipi

- 33 -

Memoria FLASH

‰ Evoluzione della tecnologia EEPROM con densità maggiore e


quindi capacità più elevata
‰ F
Funziona
i iin llettura
tt e scrittura
itt (l
(la scrittura
itt è a bl
blocchi
hi di b
byte)
t )
‰ Persistente: il contenuto permane anche in assenza di
alimentazione
‰ Usi: Basso consumo di energia la rendono adatta nei sistemi
portatili (palmari, telefoni cellulari, fotocamere digitali)
‰ Flash memory stick o pen drive: banco di memoria flash di
capacità dell’ordine del GByte

- 34 -

Pag. 17
Tabella riassuntiva delle tecnologie di memoria

Tipo Categoria Modalità di Scrittura Volatile Usi


cancellazione byte specifici
SRAM lett/scritt elettrica si si cache
DRAM lett/scritt elettrica si si mem. centrale
ROM sola lett nessuna no no grandi vol.

PROM sola lett nessuna no no piccoli vol.

EPROM sola lett luce UV no no prototipi

EEPROM sola lett elettrica si (lenta) no prototipi
FLASH lett/scritt elettrica a blocchi no multimedia

∗Le memorie cancellabili vengono talvolta qualificate come “memorie prevalentemente a

sola lettura” (read-mostly), invece che “a sola lettura” (read-only)

- 35 -

Pag. 18

Potrebbero piacerti anche