Sunteți pe pagina 1din 35

Memorii RAM

- Probleme specifice memoriilor


- Celula SRAM: funcionare, proprieti
- Celula DRAM: funcionare, proprieti
- Principiul ierarhizrii memoriei

Memoria ideala
Timp de acces 0 (latenta 0)
Capacitate de stocare infinita
Cost 0
Evident contradictorii

Pb: proiectare memorie RAM de 1MB


Celula de memorie pe care o tim: bistabilul D
(latch)

Ideea:
pt READ: Sel1 activ, Sel2 activ valoarea q pe b0
Pt WRITE: Sel1 activ, Sel2 inactiv valoarea lui b0 scris n celula;
apoi Sel2 activ e memorat

Pb: proiectare memorie RAM de 1MB

Pb: proiectare memorie RAM de 1MB


Ce capacitate parazit este pe b0?
Neglijnd Cfir, Cconexiuni, etc:
Cp~ n*2*CSD ~ 2*106*CSDTG

E mult/ putin?
Ce efect are?
Ce capacitate parazit este pe Sel?
Cp~2mCTG~2*m(CGp+CGn)=4m*CGn - mult mai mic
pt m=8, 16, 32

Comparaie Cp
CSD ~0.25mCG = 2CG (pt m=8)
Cp ~5*105*CG

(memorie de 1 MB)
Ca ordin de mrime:
Inversor care comand 5 pori (tot inversoare)
Cp=5*(CGp+CGn)~10 *(CGp+CGn)~30CGn

Inversor conectat la magistral intern:


Ex 5 intrri de pori (tot inversoare) i 11 disp care pot scrie
(10 n High Z)
Cp~30CGn+10*(CSDp+CSDn)~45CGn

Cp mem > 104*Cp porti!!


Acelai tp dimensiune de 104 ori mai mare!!

Probleme specifice memoriilor


Cp uria pe bitline - trebuie o alt abordare
pentru citire (i scriere)
Nu TG, nu stlp totemic

Cu ct dimensiunea mem. (capacitatea de


stocare) e mai mare Cp mai mare, deci mai
lent
Pt c Cp sel << Cp b arhitectur mai echilibrat
aprox un ptrat 2n linii x 2m coloane
selectie separata linie + coloana pt w (ev. mai multe)

Memorii RAM Statice (SRAM)


Celula:

Memorii SRAM
Dispare TG: cum mai scriem 1??
Reprezentare valori memorate:
q=1 (q\=0) valoarea 1
q=0 (q\=1) valoarea 0

Memorii SRAM scriere 0


Decodificare adresa
Aplicare b0=0, b0\=1 precharge (drivere f
puternice)
Selectie coloana si scrierea
Se scrie practic q=0 si se propaga
apoi, q\=1 (de ce?)
Dim. tranzistoare: kw1 ~ 1.5*kp1
(ce Zw/ Zp??)

Memorii SRAM scriere 1


Decodificare adresa
Aplicare b0=1, b0\=0 precharge (drivere f
puternice)
Selectie coloana si scrierea
Se scrie practic q\=0 si se propaga apoi, q=1
Dim. tranzistoare: kw2 ~ 1.5*kp2

Memorii SRAM - citire


Decodificare adresa
Aplicare b0=1, b0\=1
- precharge; decuplare V, Cp ncrcate
Selectie celul
Citirea: determinare valoare cf
diferentei bitline- (bitline\)
Dim. tranzistoare:
kn1,2 ~ 1.5*kw1,2
Pt q=0 (sau q\=0), q s nu se apropie de Vp; inv. sarc. sat.
(datorit valorii 1 de pe b0 (sau b0\)

Memorii SRAM layout celul

Fig IBM AN Understanding SRAM Operation

Memorii SRAM: concluzii


Data memorat e meninut orict de mult
dac e alimentat (bucl regenerativ)
(static)
La dispariia alimentrii data se pierde
(volatil)
La citire data nu se modific
6 T, de dimensiuni diferite (arie relativ MARE)
Scriere, citire: fr ntrzieri ale celulei
Citire, detecia dif relativ rapid
Memorie relativ RAPID

Memorii RAM dinamice (DRAM)


Reducerea agresiv a ariei/ costului cretere
a capacitii de stocare
Celula: 1T + 1C
1/0=C ncrcat/ descrcat

Memorii RAM dinamice (DRAM)


Descrcare/ncrcare condensator:
n timp (I f. mic prin T blocat) 1 se pierde/ Se
pierde i 0?
La citire

Rescriere valoare (refresh):


Periodic
Dup fiecare citire

Memorii DRAM: scrierea


(principiu)
Decodificare adresa
Aplicare b0=1, sau b0=0
Selectie rand
Selectie coloana si scrierea
Cum se propag 1?
WSel adus la VDD+Vp

Memorii DRAM: citirea


(principiu)
Decodificare adresa
Aplicare b=1
- Precharge Cp
Selectie rand
Decodificare coloan
Citirea: determinare 1/0
cf evolutiei tensiunii b
(apoi refacerea valorii citite)
- 0: b tinde s scad/ 1: neschimbat

Memorii DRAM: citirea


(real)
Aplicare b=VDD/2
- Precharge Cp
Citirea: determinare 1/0
cf evolutiei tensiunii b
si refacerea valorii citite
- 0: b tinde s scad, devine 0 L
- 1: b tinde s creasc, devine 1 L

Memorii DRAM: citirea


Circuit pentru determinare valoare (i
rescrierea ei) amplasare (principiu)
Nr egal de celule
b adus la VDD/2 (stnga i dreapta)
Selecie celul citit

Memorii DRAM: citirea


n dreapta V = ct
n stnga: Cp nc. la VDD/2
Pt val 0 logic C la 0 V (aprox.)
Pt val 1 logic C la VDD (aprox.)

Egalizare tensiune Vfinal = ?

Memorii DRAM: citirea


Conservarea sarcinii:
Cp Vfinal +C Vfinal =CpVDD/2 (pt Vc=0)
Vfinal =Cp/2/(C+Cp) VDD
DAC Cp=10 C
Vfinal =5C/(11C) VDD=0.45 VDD

Similar, pt Vc=VDD
Vfinal =(C+Cp/2)/(C+Cp) VDD=6C/(11C) VDD=0.55 VDD

(pt Cp mai mare, D prea mic)

Memorii DRAM: citirea


Circuitul de citire + refresh
(sense amp)
Selectat dup ce
celula a fost selectat
Pt V1=V2=VDD/2
stare metastabil
Pt V1 > VDD/2 q =1, q\=0
Pt V1 < VDD/2 q =0, q\=1

Memorii DRAM: citirea


q meninut = refresh!
(se reface data initial
in celul)
Similar refresh
periodic = citire +
rescriere (pe rnd
toate celulele!)

Memorii DRAM: concluzii


Data memorat (pe C) tinde s se piard
Trebuie refresh period
La dispariia alimentrii data se pierde
(volatil)
La citire data se modific trebuie refresh
dup fiecare citire
1 T + 1 C (arie relativ MIC)
Ieftin, circuite de capacitate mare

Memorii DRAM: viteza


Scriere, citire: ntrzieri importante
Memorie relativ LENT

Scriere: ncrcare/ desc C - Circ RC:


Compromis vitez/ arie n dim T
Scriere 1 mai lent (tranz nMOS, nu TG)

Citire: timp de variaie tensiune pe


condensatoare + timp de rescriere
Refresh periodic = citire + rescriere complet
n plus, pt capacitate mare de memorare =
scdere suplimentar vitez

Comparatii celule SRAM/ DRAM


Viteza de acces (citire, scriere):
SRAM mai rapid, DRAM mai lent

Densitate:
DRAM mai mare, SRAM mai mica (arie mare dat.
celor 6 tranzistoare si marimii lor)

Cost (practic 1/ densitate):


Mai mic pentru DRAM

In plus: DRAM necesit refresh periodic (100


ms 1 ms)

Overview memorii; problema


Dimensiune mare = mai lenta

SRAM, 512 Bytes, sub-nanosec


SRAM, KByte~MByte, ~nanosec
DRAM, Gigabyte, ~50+ nanosec
Hard Disk, Terabyte, ~10 millisec

Viteza de acces = mai scumpa


SRAM, ~ 10$ per Megabyte
DRAM, ~ 0.1$ per Megabyte
Hard Disk ~ 1$ per Gigabyte
(valori aprox. actuale, evolueaza odata cu tehnologia)

Soluii
Arhitecturi avansate pt memoriile DRAM pt
vitez n limite acceptabile
Organizare ierarhic a memoriei; sistem cache

Organizarea unei memorii (DRAM):


principiu

Optim intre nr linii si nr de coloane


pentru viteza (si dimensiune)
Fig. Prof. Onur Mutlu

Functionarea
unui
banc
DRAM
Access Address:
Rows

Row address 0
1

Columns
Row decoder

(Row 0, Column 0)
(Row 0, Column 1)
(Row 0, Column 85)
(Row 1, Column 0)

Row 01
Row
Empty

Column address 85
0
1

Row Buffer CONFLICT


HIT
!

Column mux
Data
31

Slide Prof. Onur Mutlu

Ierarhia memoriei

Info completa (backup):


Mare, lenta
Fig. Prof. Onur Mutlu

Pret mai mic/ byte

Control f. bun face ca


memoria sa para:
- Rapida ca
- Mare ca

Rapida
mica

Viteza mai mare

Folosita la acest moment:

Ierarhia memoriei azi


Register File
32 words, sub-nsec

Memory
Abstraction

compilator
register spilling

L1 cache (SRAM)
~32 KB, ~nsec

L2 cache (SRAM)
512 KB ~ 1MB, few nsec

L3 cache (SRAM),
.....

Main memory (DRAM),


GB, ~ 50 nsec

Swap Disk
100 GB, ~10 msec

Automatic
HW cache
management

automatic
demand
paging
Fig. Prof. Onur Mutlu

DRAM BANKS

L2 CACHE 3
L2 CACHE 2

SHARED
SHAREDL3
L3CACHE
CACHE

DRAM MEMORY
CONTROLLER

DRAM
DRAMINTERFACE
INTERFACE

L2 CACHE 1
L2 CACHE 0

CORE 3

CORE 2

CORE 1
CORE 0

Bibliografie
Notitele din clasa (pt examen)
Prof. Onur Mutlu
Carnegie Mellon University
Spring 2013, 3/27/2013
18-447: Computer Architecture
Lectures 22 25 (lectura sumplimentara, pt
inteles in detaliu arhitectura memoriei DRAM si
cache si functionarea lor detaliata; NU este
pentru examen)

S-ar putea să vă placă și