Lezione 16 Introduzione al sottosistema di memoria

Lezione 16
Introduzione al sottosistema di memoria
http://www.dii.unisi.it/~giorgi/didattica/arcal1
All figures from Computer Organization and Design: The Hardware/Software
Approach, Second Edition, by David Patterson and John Hennessy, are copyrighted material.
(COPYRIGHT 1998 MORGAN KAUFMANN PUBLISHERS, INC. ALL RIGHTS RESERVED.)
Figures may be reproduced only for classroom or personal educational use in
conjunction with the book and only when the above copyright line is included.
They may not be otherwise reproduced, distributed, or incorporated into other
works without the prior written consent of the publisher.
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 1
Other material is adapted from CS152 Copyright (C) 2000 UCB
Dove siamo
• I Cinque Componenti Classici di un Calcolatore
Processore
Input
Parte di
Controllo
Memoria
Parte
Datapath
Output
• Scaletta:
• Tecnologie usate per realizzare le memorie “volatili”: DRAM e SRAM
• Tecnologie usate per l’accesso alla memoria DRAM: EDO, SDRAM, DDR, ...
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 2
Market Share dei Principali Componenti Elettronici
SITUAZIONE RIFERITA ALL’ANNO 2000
SOURCE: Primer on Semiconductors, SG Cowen, 3rd Ed. Jan. 2001
Analog Circuitry
15%
Bipolar Digital
1%
Memory
25%
Optoelectronic
5%
Discretes
9%
Microprocessors
15%
Custom Logic
15%
Microperipherals DSP
6%
3%
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 3
Microcontrollers
6%
ANNO 2007: MEMORIA CIRCA 37% DEL MERCATO TOTALE PER HIGH
PERFORMANCE COMPUTING (SOURCE: BCCRESEARCH.COM)
PREV. 2012: MARKET SHARE COSTANTE, CRESCITA CIRCA 9% ANNUO
Tecnologie usate per realizzare le memorie
• Tecnologie ad accesso sequenziale
• Il tempo di accesso dipende in maniera lineare dalla locazione
fisica
- Nastri
• Tecnologie ad accesso semicasuale
• Il tempo di accesso dipende
sia dalla locazione fisica dell’informazione
che dal particolare istante in cui faccio accesso
- Dischi: dischi-fissi, CDROM, DVD, ...
• Tecnologie ad accesso casuale (Random Access)
• Il tempo di accesso e’ indipendente dalla locazione fisica
dell’informazione
- Memoria principale
- Due tipi: Non-Volatili e Volatili
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 4
Memorie accesso casuale di tipo Non-Volatile
• ROM (Read-Only Memory)
- Non scrivibile (sia vantaggio che svantaggio)
• EPROM (Erasable Programmable Read-Only Memory)
Scrivibile (ma una sola volta)
Cancellabile a livello di chip (raggi UV)
Necessario intervenire con apposito “kit di cancellazione”
• EEPROM (Electrically-Erasable Programmable Read-Only Memory)
Scrivibile (1 sola volta)
Cancellabile a livello di byte (elettricamente)
Dovendo scrivere molti byte si perde molto tempo nelle cancellazioni
• Memoria “Flash”: Evoluzione della EEPROM
Scrivibile (1 sola volta)
Cancellabile a livello di blocco (elettricamente)
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 5
Memorie accesso casuale di tipo Volatile
• Conservano i dati solo se alimentate
• Principali tipi di implementazioni:
• DRAM (Dynamic Random Access Memory)
Alta densita’, basso consumo, basso costo
Lente, dinamiche
Necessita’ di essere “rinfrescata” periodicamente
• SRAM (Static Random Access Memory)
basta alimentare il chip per non perdere i dati
Veloci, statiche
Bassa densita’, alto consumo, alto costo
Approfondimento: v. slide “Costi e Prestazioni delle Memorie”
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 6
Parametri delle Prestazioni della Memoria
ta=tempo
di accesso (Access Time)
• Intervallo fra l’inizio di una lettura (indirizzo su A-bus)
e l’arrivo del PRIMO dato (su D-bus)
tc=tempo
di ciclo (Cycle Time)
• Intervallo fra l’inizio di una lettura e l’inizio della lettura
successiva
tl=tempo
di latenza (Latency Time)
• Tempo di accesso al DATO COMPLETO ovvero alla k-esima
word nel caso in cui la memoria supporti trasferimenti a gruppi
di k word (se k=1 tl=ta).
Es. dischi, ma anche memorie RAM
ω=Banda
(Bandwidth)
• Tasso di trasmissione dei byte (si misura in byte/s)
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 7
Tempi caratteristici delle memorie
A
DQ
A1
A2
Junk
DATA1
Junk
Junk
DATA2
Access Time
Cycle Time
A
DQ
A1
Junk
A2
DATA1
Access Time
Latency Time
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 8
DATA2
DATA3
Junk
DRAM versus SRAM
• Per massimizzare il parametro prestazioni/costo
• Si usa poca memoria SRAM (costosa e veloce)
all’interno del chip (es. registri)
• Si usa una ragionevole quantita’ di DRAM (meno costosa e
relativamente veloce) all’esterno del chip
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 9
Cella di RAM Statica (SRAM)
Cella a 6 Transistor
word
(row select)
word
0
0
1
1
bit
bit
Scrittura
1. Preparare il dato sulle bit-line
2. Selezionare la riga (word-line)
Lettura
1.
2.
3.
4.
*
bit
Precaricare bit e /bit a Vdd
Selezionare la riga (word-line)
La cella preleva carica da bit o /bit
Il Sense-Amplifier in fondo alla colonna
amplifica la differenza fra bit e /bit
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 10
bit
Puo’ essere sostituito da
una resistenza di pull-up
per risparmiare area
Cella a 5 transistor
*in realta’ la linee bit e /bit si caricherenno ad un valore un poco <Vdd
Organizzazione delle celle SRAM: 16-word x 4-bit
Din 3
Din 2
Din 1
Din 0
Wr Driver &
- Precharger +
Wr Driver &
- Precharger +
Wr Driver &
- Precharger +
Wr Driver &
- Precharger +
SRAM
Cell
SRAM
Cell
SRAM
Cell
SRAM
Cell
SRAM
Cell
SRAM
Cell
SRAM
Cell
SRAM
Cell
WE_L
Precharge
‘_L’
attivo basso
Word 0
A1
A2
A3
Address Decoder
A0
Word 1
:
:
:
:
Word 15
E’ piu’ lunga
la bit-line
o la word-line?
SRAM
Cell
SRAM
Cell
SRAM
Cell
SRAM
Cell
- Sense Amp +
- Sense Amp +
- Sense Amp +
- Sense Amp +
Dout 3
Dout 2
Dout 1
Dout 0
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 11
SRAM: Bus dati
0
OE_L
Per Din e Dout si usa un unico filo
•
0 spento
Il motivo principale e’ perche’ sul bus dati posso avere
scambio in entrambe le direzioni (lettura o scrittura)
Per decidere la direzione si usa /OE:
Din o D
DQ
Dout o Q
1 acceso
Output Enable (attivo basso),
• OE_L
per controllare i buffer thristate:
1 sul filo thristate
buffer attivo
buffer disattivo
0 sul file thristate
• Le possibili combinazioni sono:
• Scrittura:
- WE_L attivo (basso), OE_L disattivo (alto)
DQ e’ un ingresso
• Lettura:
- WE_L disattivo (alto), OE_L attivo (basso)
DQ e’ un’uscita
• Evitare di attivare contemporaneamente i segnali WE_L e OE_L
- Il risultato risulta indeterminato
• Quando il chip non deve caricare il bus dati, si disabilita con
- C E_L disattivo
alta impedenza
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 12
SRAM: Diagramma Logico
WE_L
A
N
2N x M
SRAM
OE_L
M
D
• La memoria ha una capacita’ di 2N word ad M-bit
• Altri segnali sempre presenti
• CE_L
• Vcc, GND
Chip Enable
Alimentazione
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 13
SRAM: Temporizzazioni
WE_L
2N x M
SRAM
A
N
Write Timing:
DQ
OE_L
M
D
Read Timing:
High Z
Data In
Data Out
Data Out
Junk
A
Write Address
Read Address
Read Address
OE_L
WE_L
Write
Setup
Time
Write
Pulse
Time, tWP
Write
Hold
Time
Write Cycle Time, tWC
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 14
Read
Access
Time
Read Cycle Time, tRC
Read
Access
Time
Cella di RAM dinamica (DRAM)
• La cella a 6 transistor per quanto
possa sembrare piccola, ha un
peso notevole sull’area totale di
una RAM
• Qual e’ il numero minimo di
transistor che puo’ essere usato
per memorizzare un bit?
Cella DRAM a 1 transistor
word
line
transistor
di passo
• Un solo transistor
l’elemento di memorizzazione
puo’ essere realizzato
con un consensatore
• Condensatore carico
• Condensatore scarico
bit
1 logico
0 logico
• Il transistor consente la lettura e la
scrittura
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 15
Condensatore
DRAM: Funzionamento della cella a 1 transistor
•
word line
Scrittura:
1. Caricare la bit-line col dato
2. Selezionare la riga (word-line)
•
Lettura:
1. Precaricare la bit-line a Vdd/2
2. Selezionare la riga (word-line)
3. Scambio di carica fra cella e bit-line
-
bit
lievissima variazione di tensione sulla bit-line
4. Rilevazione della variazione (Sense-Amplifier molto sofisticato)
-
l’amplificatore deve essere in grado di rilevare una variazione
di carica di circa 1 milione di elettroni
5. Caricare la bit-line col dato letto (scrittura !)
-
•
Ripristino il contenuto della cella
Refresh
1. Effettuo una “finta” lettura di tutte le celle
-
Ripristino il contenuto di ogni cella
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 16
N.B. La cella ha
un solo filo di accesso
(word-line)
separazione ROW/COL
DRAM: Organizzazione logica di memoria a 4 Mbit
11
C
T
R
L
Precharge circuit
R
o
w
R
o
w
11
11
D
e
c
o
d
e
r
L
a
t
c
h
e
s
Storage Cell
Memory Array
(2048 x 2048)
...
C
o
l.
L
a
t
c
h
e
s
word line
bit line
OE_L
RAS_L
CAS_L
WE_L
A0…A10
e dopo…
A11…A21
Sense Amp. , I/O Circuits, Row Buffer
...
Data
OUT
DQ
Data
IN
Column Decoder
11
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 17
Approfondimento:
v. slide “DRAM: Organizzazione fisica di memoria a 4 Mbit”
DRAM: Diagramma Logico
RAS_L
A
9
CAS_L
OE_L
WE_L
256K x 8
DRAM
8
DQ
• Din e Dout sono multiplexati su DQ:
• Scrittura:
- WE_L attivo (basso), OE_L disattivo (alto)
DQ e’ un ingresso
• Lettura:
- WE_L disattivo (alto), OE_L attivo (basso)
DQ e’ un’uscita
• Gli indirizzi di Riga e di Colonna condividono i pin A
• RAS_L va basso
i latch di riga memorizzano i pin A
i latch di colonna memorizzano i pin A
• CAS_L va basso
• Nota: RAS/CAS sono sensibili al fronte in discesa
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 18
Nota: In alcuni chip di DRAM il segnale OE non c’e’
e invece di DQ ci sono Din e Dout
DRAM: Ciclo di scrittura
• L’accesso inizia con l’attivazione di RAS_L
Write Cycle Time
RAS_L
CAS_L
A
Row Address
Col Address
Junk
Data In
Junk
OE_L
WE_L
DQ
Junk
Write Access Time
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 19
Row Address
DRAM: Ciclo di lettura
• L’accesso inizia con l’attivazione di RAS_L
Read Cycle Time
RAS_L
CAS_L
A
Row Address
Col Address
Junk
Row Address
WE_L
OE_L
DQ
High Z
Junk
Data Out
Read Access
Time
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 20
High Z
tRC , tRAC e tCAC
• tRC: tempo minimo fra due accessi a righe
tRC = 110 ns per una DRAM a 4Mbit
• tRAC (e tCAC): tempo minimo fra discesa di RAS (CAS) e dati validi
tRAC e’ data come “velocita’ della DRAM” (tRAC=60ns con tRC=110ns)
tRC = Read Cycle Time
RAS_L
CAS_L
A
Row Address
Col Address
Junk
Row Address
Col Address
Junk
WE_L
OE_L
DQ
High Z
Junk
Data Out
tCAC = Read
Access Time from CAS
tRAC = Read
Access Time from RAS
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 21
High Z
Output Enable
Delay
Data Out
tPC
• tPC: tempo minimo fra l’inizio dell’accesso a una colonna e l’inizio
dell’accesso alla colonna successiva
35 ns per una DRAM a 4Mbit e con tRAC di 60 ns
tPC
(Page Cycle time)
RAS_L
CAS_L
A
Row Address
Col Address
Junk
Row Address
Col Address
Junk
WE_L
OE_L
DQ
High Z
Junk
Data Out
High Z
Output Enable
Delay
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 22
Data Out
DRAM: Prestazioni
• Una DRAM da 60 ns (tRAC) puo’
• Effettuare un accesso a righe distinte ogni 110 ns (tRC)
• Effettuare un accesso a colonna in (tCAC) 15 ns, ma il tempo
fra due accessi a colonna deve essere almeno 35 ns (tPC).
- I ritardi di indirizzamento esterni e tempi di “turnaround” sul
bus fanno si che questo tempo salga a 40-50 ns
• Questi tempi non includono il tempo per inviare l’indirizzo
fuori dal microprocessore (ritardo di indirizzamento)
ne’ il ritardo introdotto dal controller della memoria
• Pilotaggio dei chip di DRAM, controller esterno, bus
turnaround, modulo SIMM, pin, ...
• Per una DRAM da “60 ns” (tRAC) si puo’ dire che e’ gia’ buono
un tempo di accesso pari a 180-250 ns
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 23
Sistema di Memoria
N.B. e’ il DRAM controller che avra’ cura di inviare
successivamente meta’ degli indirizzi ai chip di DRAM
sincronizzandoli sui segnali RAS e CAS
address
n
DRAM
Controller
DRAM
2n x 1
chip
n/2
Memory
Timing
Controller
w
Bus drivers
data
• Il tempo per ricevere un dato (“turnaround time”) e’ dato da
Tc = Tcycle + Tcontroller + Tdriver
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 24
Tecniche per migliorare le prestazioni della memoria
CPU
CPU
CPU
MUX
MEM
BANK
0
MEM
BANK
1
MEM
BANK
2
MEM
BANK
3
MEM
MEM
Interleaving:
Bus Semplice:
Bus largo:
CPU, Bus: 1 word
CPU/Mux: 1 word
CPU, Bus, Memoria
Mux/Memoria: N words Memoria: N Banchi
in tutti i casi un bus
a larghezza fissa
(es. 64 & 256 bits)
(es. 32 bits)
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 25
Interleaving degli accessi in memoria
Cycle Time
Access Time
Time
• Tempo di Ciclo della DRAM (Read/Write)
• Indica quanto frequentemente posso fare accessi
• Tempo di Accesso della DRAM (Read/Write)
• Indica quanto tempo occorre per ottenere il dato rispetto all’inizio
dell’accesso
• Il tempo di Ciclo della DRAM (Read/Write) e’ molto maggiore
del suo Tempo di Accesso DRAM
• Almeno di un fattore 2:1
• Perche’ non iniziare un nuovo accesso mentre sto attendendo il
dato precedente?
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 26
Increasing Bandwidth - Interleaving
Senza interleaving:
CPU
Memory
Dato D1 disponibile
Inizio dell’accesso al dato D1
Inizio dell’accesso al dato D2
Memory
Bank 0
4-way Interleaving:
Accesso al Banco 0
CPU
Memory
Bank 1
Memory
Bank 2
Accesso
al Banco 1
Memory
Bank 3
Accesso
al Banco 2 Accesso
al Banco 3 Posso di nuovo fare accesso al Banco 0
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 27
Confronto fra le tecniche viste
• Modello dei tempi di accesso
•
•
•
•
1 ciclo per inviare l’indirizzo
6 cicli per accedere al dato
1 ciclo per inviare (indietro) il dato
Il blocco minimo di trasferimento sia pari a 4 word
• Bus semplice
= 4 x (1+6+1)
= 32 cicli
• Bus largo
= 1 + 6 + 1
= 8 cicli
• Interleaving
= 1 + 6 + 4x1
= 11 cicli
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 28
Scelta del numero dei banchi
• Il numero di banchi dovrebbe essere circa uguale al numero di
periodi di clock per accedere ad una word di un banco
• Questo consentirebbe di avere un dato ad ogni ciclo di clock
• Problema: la disponibilita’ di DRAM a maggiore capacita’
rende difficile avere piu’ banchi
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 29
DRAM: diminuzione del numero di chip nel tempo
Memoria tipica di un PC
(da Pete MacWilliams, Intel)
4 MB
8 MB
16 MB
32 MB
64 MB
128 MB
256 MB
Generazione di DRAM La capacita’ di un chip di DRAM cresce del 60% / anno
‘86
‘89
‘92
‘96
‘99
‘02
1 Mb 4 Mb 16 Mb 64 Mb 256 Mb 1 Gb
32
8
16
4
8
2
La memoria tipica
“cresce” del 25-30%
all’anno
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 30
4
8
1
2
4
8
1
2
DRAM “Fast Page Mode”, introduzione
Column
Address
• Ho N righe x N colonne x M-bit
• Leggo e scrivo M-bit alla volta
• Ogni accesso a M-bit richiede
un ciclo RAS / CAS
N cols
DRAM
Row
Address
N rows
• Organizzazione classica
della DRAM:
M-bit Output
Primo blocco di M-bit
M bits
Secondo blocco di M-bit
RAS_L
CAS_L
A
Row Address
Col Address
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 31
Junk
Row Address
Col Address
Junk
DRAM “Fast Page Mode” (o “EDO”), funzionamento
• DRAM “Fast Page Mode”
• Ho N x M registri per
memorizzare una riga
Column
Address
N cols
• Dopo che una colonna e’ stata
messa nel registro
Primo blocco
di M-bit
Secondo blocco
di M-bit
Row
Address
N rows
• Ho bisogno solo di CAS per
accedere ai rimanenti
blocchi di M-bit che stanno
sulla stessa riga
• RAS_L rimane attivo mentre
viene abbassato/alzato CAS_L
DRAM
N x M “SRAM”
M-bit Output
Terzo...
M bits
Quarto...
RAS_L
CAS_L
A
Row Address
Col Address
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 32
Col Address
Col Address
Col Address
Prestazioni del sottosistema di memoria
• Possiamo definire come parametro di prestazioni della
memoria
PMEM=1/tRC
• Nel nostro caso si avrebbe per una DRAM con tRAC=50ns
(tempo nominale per una DRAM “XXXXX-5”) e tRC=84ns
PMEM=1/84ns=12MB/s
• Nel caso della EDO DRAM, assumendo per il primo
accesso ancora 50ns, ma per ogni accesso successivo 30ns
PMEM=1/30ns=33MB/s
Come prestazione di picco
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 33
DRAM ad alte prestazioni: SDRAM
• SDRAM (Synchronous DRAM)
• Sono la naturale evoluzione delle EDO DRAM
• Segnali in piu’ rispetto alle DRAM: CLK (Clock), CKE (Clock Enable),
DQM (DQ Mask), BA (Bank Address)
• Il clock consente il pipelining nel datapath fra array interno e DQ
• Inoltre ho un banco interno in piu’, selezionabile dall’estrno
• Il primo accesso ha una latenza di 1-3 cicli
(e cosi’ altri accessi casuali)
• Accessi in sequenza consentono pero’ di ottenere dati ad ogni clock
• Considerando una latenza media di 2 cicli, per una SDRAM a
100 MHz, si ottiene
PMEM= 100MHz/2 = 50MB/s
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 34
Dati di targa sulla latenza delle DRAM Sincrone
• Viene tipicamente riportata un quadrupla di numeri
n1-n2-n3-n4
n1 = tCL = (CAS Latency) tempo da CAS a dato disponibile
n2 = tRCD = (RAS to CAS Delay) tempo da RAS a CAS
n3 = tRP = (RAS Precharge Delay) tempo da precharge a RAS
n4 = tRAS = (Precharge Delay) tempo da RAS a precharge
Esempio:
2-2-2-5
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 35
DRAM ad alte prestazioni: DDR
• DDR (Double Data Rate) SDRAM
• Sono la naturale evoluzione delle SDRAM…
• Segnali in piu’ rispetto alle SDRAM: CLK# (Clock complementare),
BA[1..0](indirizzo di banco su 2 bit), VDDx8, VSSx8
• Si passa da due banchi interni indipendenti a quattro
• Il datapath interno e’ piu’ largo per fornire piu’ banda interna
• I dati sono ricevuti sia sul fronte in salita che su quello in discesa
del clock, fornendo cosi’ un raddoppio dei dati all’esterno
• In corrispondenza di un clock esterno a 100MHz si produce un clock
interno a 143MHz
• Altri accorgimenti elettrici interni consentono di operare a
frequenze cosi’ elevate
• Per una DDR SDRAM a 100 MHz, si ottiene come prestazione
di picco
PMEM= 286 MB/s
(143 x 2)
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 36
DRAM ad alte prestazioni: SLDRAM e DRDRAM
• SLDRAM (Sync-Link DRAM)
• Combina le caratteristiche di SDRAM e DDR SDRAM con l’aggiunta
di un protocollo pacchettizzato command/address/control
• I segnali esterni sono abbastanza diversi da una DRAM
• Le prestazioni di picco a 100MHz sono PMEM= 400 MB/s
• DRDRAM (Direct RDRAM Rambus)
• Sono simili alle SLDRAM per la pacchettizzazione ma sono
concettualmente molto diverse dalle DRAM
• Le prestazioni di picco a 100MHz sono PMEM= 400 MB/s
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 37
SIMM, DIMM, RIMM
• SIMM (Single In-line Memory Module)
• primo tentativo di fornire uno standard per raggruppare chip
di memoria
• Inizialmente uscito con 30 pin, poi esteso a 72 pin, consente
un bus dati fino a 32 bit
• DIMM (Dual In-line Memory Module)
• Hanno 168 pin (184 pin negli standard piu’ recenti (2004))
disposti su due fili e consente di ottenere un bus dati a 64 bit
• RIMM (marchio del consorizio Rambus)
• Il connettore e’ lo stesso delle DIMM a 100MHz standard
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 38
Caratteristiche delle Memorie Non-Volatili
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 39
• Le prestazioni di un calcolatore sono fortemente dipendenti dalla
tecnologia RAM utilizzata
• Es. all’interno del processore un’accesso richiede 0.5 ns
• Un accesso alla memoria principale richiede 50 ns !
• Contromisure
• Specializzare la memoria a seconda dell’uso che ne faccio
- Registri
- Memoria istruzioni
- Memoria dati
- Write buffer
- ...
• Inoltre, si rende necessario l’uso di diverse tecnologie
• Cella di memoria: DRAM o SRAM
• Organizzazione dei banchi: interleaving, fast-page mode
• Throughput: DDR, RAMBUS
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 40
EXTRA SLIDES
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 41
Costo di “1M transistors/bit-forniti” ($)
Costi e Prestazioni delle Memorie
Logic in 1980
10k
1k
HDD in
1980
DRAM in 1980
100
Logic
10
EEPROM
SRAM
ROM
1
Flash
DRAM
0.1
HDD
0.01
1
10
100
ns
1
10
100
µs
1
10
ms
Tempo di Accesso
M.N. Kozicki
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 42
A8 –A0
256
Col. decoder
Col. decoder
Col. decoder
Col. decoder
128 Kbits
512 Sense Amp.
512 Sense Amp.
128 Kbits
128 Kbits
4
…
…
4
6
256
Row
dec.
128 Kbits
512
512 Sense Amp.
512 Sense Amp.
128 Kbits
128 Kbits
256
BLOCCO 3
6
128 Kbits
2
Row
dec.
2
128 Kbits
128 Kbits
Col. decoder
Col. decoder
128 Kbits
512 Sense Amp.
512 Sense Amp.
128 Kbits
128 Kbits
I/O select
8
Row
dec.
8
128 Kbits
Col. decoder
Col. decoder
DRAM: Organizzazione fisica di memoria a 4 Mbit
512
512 Sense Amp.
9
8 8
128 Kbits
128 Kbits
BANCO
Row
dec.
512 Sense Amp.
256
A21 –A13
Row
dec.
9
4
BLOCCO 0
9
A8 –A0
A12 –A9
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 43
128 Kbits
DQ
DRAM: Ciclo di scrittura – Early e Late Write Cycle
• L’accesso inizia con l’attivazione di RAS_L
• Ci sono due modalita’ di scrittura
• Ciclo con Scrittura Anticipata (Early Write Cycle)
• Ciclo con Scrittura Ritardata (Late Write Cycle)
Write Cycle Time
RAS_L
CAS_L
A
Row Address
Col Address
Junk
Data In
Junk
Row Address
Col Address
Junk
OE_L
WE_L
DQ
Junk
Write Access Time
Early Write Cycle: WE_L attivato prima di CAS_L
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 44
Data In
Junk
Write Access Time
Late Write Cycle: WE_L attivato dopo CAS_L
DRAM: Ciclo di lettura – Early e Late Read Cycle
• L’accesso inizia con l’attivazione di RAS_L
• Ci sono due modalita’ di lettura
• Ciclo con Lettura Anticipata (Early Read Cycle)
• Ciclo con Lettura Ritardata (Late Read Cycle)
Read Cycle Time
RAS_L
CAS_L
A
Row Address
Col Address
Junk
Row Address
Col Address
Junk
WE_L
OE_L
DQ
High Z
Junk
Data Out
Read Access
Time
Early Read Cycle: OE_L attivato prima CAS_L
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 45
High Z
Data Out
Output Enable
Delay
Late Read Cycle: OE_L attivato dopo CAS_L
Fattori di aumento (osservati) ai vari livelli
Capacita’
Velocita’ (Latenza)
Logica:
2x ogni 3 anni
2x ogni 3 anni
DRAM:
4x ogni 3 anni
2x ogni 10 anni
Dischi:
4x ogni 3 anni
2x ogni 10 anni
Esempio: evoluzione DRAM
anno
introduzione
capacita’ di
un chip (bit)
1980
64 K
1983
256K
1986
1M
1989
4M
1992
16M
1996 1000:1 64M
1998
128M
2000
256M
2002
512M
2004
1G
2006
2G
tCAC(ns)
accesso alla
colonna per
riga esistente
tRAC(ns)
accesso a
nuova
riga/colonna
Cycle Time
(ns)
75
50
25
20
15
12
10
7
5
5
2.5
150
120
100
80
60
50
50
45
40
35
30
250
220
190
165
120
110
100
90
90
70
60
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 46
3:1
da: Patterson, Hennessy, Patterson, “Computer Architecture: A Quantitative Approach”, 2006
Terminologia delle DRAM
DRAM
Standard
Parametri di merito
Pinout, package,
refresh rate,
capacita’
1)
2)
3)
4)
1)
capacita’
Costo per bit
Banda
latenza
+60%
2) -25%
Tassi di variazione
per anno
3) +20%
4) -7%
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 47
microprocessori
Compatibilita’
binaria,
IEEE 754,
bus di I/O
1) quanti SPEC
2) Costo
1) +60%
2) Circa costante
DRAM nel tempo (previsione)
Generazione di DRAM
Primi esemplari
‘84
‘87
‘90
‘93
‘96
‘99
Capacita’ (x 1bit)
1 Mb
4 Mb
16 Mb
64 Mb
256 Mb
1 Gb
Area chip (mm2)
55
85
130
200
300
450
Area Memoria
(mm2)
30
47
72
110
165
250
Area Cella di
memoria (µm2)
28.84
11.1
4.26
1.64
0.61
0.23
(da Kazuhiro Sakashita, Mitsubishi)
Confronto: 2004, SRAM annunciate da Intel a 65nm: 70Mbit per chip e cella da 0.57um2
Confronto: 2008, SRAM annunciate da IBM a 22nm: la cella e’ grande 0.14um2
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 48
Riepilogo
• Le memorie DRAM sono lente ma poco costose e grandi
• Sono ideali per realizzare la memoria principale del calcolatore
• Le memorie SRAM sono veloci ma costose e piccole, inoltre
dissipano 5 volte piu’ energia delle DRAM
• Sono da usare con cautela quando e’ veramente importante il
tempo di accesso
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 49
Realizzazione Fisica
elettrodo superiore (GND): TiN
Dielettrico:
Ta2O5
metal
bit-line
poly
Elettrodo
word-line inferiore
MOS di passo
Gigabit DRAM
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 50
Cella DRAM a “Stack”
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 51
70 Mbit SRAM
Mark Bohr: Intel 04
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 52
Scaling Gets Tougher
Mark Bohr: Intel 04
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 53
Progress Characterized by a Sequence of One-off Solutions
Mark Bohr: Intel 04
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 54
Asynchronous SRAM Read Timing
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 55
Asynchronous SRAM Write Timing
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 56
Timing Sheet
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 57
Alpha 21264 Integer Register File
6 Write Ports, 4 Read Ports
Sense Amps
& Function
Unit Interface
Read/Write
Ports
Reference:
Design
of High-Performance
Microprocessor
Circuits, A. Chandrakasan, W. Bowhill, F. Fox, IEEE, 2001
Roberto Giorgi,
Universita’
di Siena,
C117L16, Slide
58
Storage
element
Basic DRAM controller
A[20:23]
address Chip
decoder select
Time
delay
gen.
RAS
CAS
Select
A[10:19]
A[0:9]
address
mux
D[0:7]
Memory address bus
DRAM
R/W
• DRAM data must be periodically refreshed
• Needed to keep data correct
• DRAM refresh is done by the DRAM controller using a refresh
counter
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 59
Paged Mode DRAM
RAS#
CAS#
A[0:7]
Data
X
Row
X
Col n
X
Col n+1
X
Data n
X
Col n+2
D n+1
• Multiple accesses to different columns from same row
• Saves RAS and RAS to CAS delay
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 60
D n+2
Extended Data Output RAM
RAS#
CAS#
A[0:7]
X
Row
X
Col n
X
Col n+1
X
Data n
Data
X
Col n+2
Data n+1
Data n+2
• A data output latch enables overlap of the next column address with
current column data
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 61
Burst DRAM
RAS#
CAS#
A[0:7]
X
Row
X
Col n
Data
• Generate a consecutive address by itself
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 62
X
Data n
Data n+1
Data n+2
Synchronous DRAM – SDRAM
•
All signals are referenced to an external clock (100MHz-200MHz)
•
•
Multiple Banks
•
•
Makes timing more precise with other system devices
Multiple pages open simultaneously (one per bank)
Command driven functionality instead of signal driven
•
ACTIVE: selects both the bank and the row to be activated
- ACTIVE to a new bank can be issued while accessing current bank
•
•
Read and write accesses to the SDRAM are burst oriented
•
•
•
READ/WRITE: select column
Successive column locations accessed in the given row
Burst length is programmable: 1, 2, 4, 8, and full-page
A user programmable Mode Register
•
CAS latency, burst length, burst type
•
Auto pre-charge: may close row at last read/write in burst
•
Auto refresh: internal counters generate refresh address
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 63
SDRAM Timing
clock
cmd
ACT
NOP
t RCD
>
20ns
RD
RD
ACT
NOP
RD
ACT
NOP
RD
NOP
t RRD >
20ns
NOP
NOP
BL = 1
t RC>70ns
Bank
Bank 0
X
Bank 0 Bank 0 Bank 1
X
Bank 1 Bank 0
X
Bank 0
X
X
X
Addr
Row i
X
Col j Col k Row i
X
Col n Row l
X
Col q
X
X
X
CL=2
Data
Data j Data k
•
tRCD: ACTIVE to READ/WRITE gap = tRCD(MIN) / clock period
•
tRC: successive ACTIVE to a different row in the same bank
•
tRRD: successive ACTIVE commands to different banks
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 64
Data n
Data q
DDR vs. DDR2
(source: Elpida Memory)
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 65
Posted CAS
(source: Elpida Memory)
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 66
Prospettiva Storica
• Il primo chip di DRAM (1103) introdotto da Intel nell’
Ottobre 1970
• Cycle time 340ns
• Access Time 150ns
• 1k-bit PMOS
Roberto Giorgi, Universita’ di Siena, C117L16, Slide 67
http://www.cpu-museum.com/Bilder/Intel-P1103_1.jpg