Sunteți pe pagina 1din 35

Memorii RAM

- Probleme specifice memoriilor


- Celula SRAM: funcționare, proprietăți
- Celula DRAM: funcționare, proprietăți
- Principiul ierarhizării 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?
• Neglijând 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
Comparație Cp
• CSD ~0.25mCG = 2CG (pt m=8)
• Cp ~5*105*CG
(memorie de 1 MB)
Ca ordin de mărime:
• Inversor care comandă 5 porți (tot inversoare)
– Cp=5*(CGp+CGn)~10 *(CGp+CGn)~30CGn
• Inversor conectat la magistrală internă:
– Ex 5 intrări de porți (tot inversoare) și 11 disp care pot scrie
(10 în High Z)
– Cp~30CGn+10*(CSDp+CSDn)~45CGn
• Cp mem > 104*Cp porti!!
• Același 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 stâlp totemic
• Cu cât 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 pătrat 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 încărcate
• 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 menținută oricât de mult
dacă e alimentată (buclă regenerativă) –
(“statică”)
• La dispariția alimentării data se pierde
(“volatilă”)
• La citire data nu se modifică
• 6 T, de dimensiuni diferite (arie relativ MARE)
• Scriere, citire: fără întârzieri ale celulei
– Citire, detecția dif – relativ rapidă
– Memorie relativ RAPIDĂ
Memorii RAM dinamice (DRAM)
• Reducerea agresivă a ariei/ costului – creștere
a capacității de stocare
• Celula: 1T + 1C
• 1/0=C încărcat/ descărcat
Memorii RAM dinamice (DRAM)
• Descărcare/încărcare 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 (stânga și dreapta)
• Selecție celulă citită
Memorii DRAM: citirea
• În dreapta V = ct
• În stânga: 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 menținută = refresh!
• (se reface data initială
in celulă)

• Similar – refresh
periodic = citire +
rescriere (pe rând
toate celulele!)
Memorii DRAM: concluzii
• Data memorată (pe C) tinde să se piardă
• Trebuie refresh period
• La dispariția alimentării 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: întârzieri importante
– Memorie relativ LENTĂ
• Scriere: încărcare/ desc C - Circ RC:
– Compromis viteză/ arie în dim T
– Scriere 1 mai lentă (tranz nMOS, nu TG)
• Citire: timp de variație tensiune pe
condensatoare + timp de rescriere
• Refresh periodic = citire + rescriere completă
• În plus, pt capacitate mare de memorare =
scădere 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)
Soluții

• 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
Access Address:
unui banc DRAM
(Row 0, Column 0) Columns
(Row 0, Column 1)
(Row 0, Column 85)

Row decoder
(Row 1, Column 0)

Rows
Row address 0
1

Row 01
Row
Empty Row Buffer CONFLICT
HIT !

Column address 85
0
1 Column mux

Data

31 Slide Prof. Onur Mutlu


Ierarhia memoriei
Folosita la acest moment: Rapida
mica

Control f. bun face ca


memoria sa para:

Pret mai mic/ byte


- Rapida ca

Viteza mai mare


- Mare ca

Info completa (backup):


Mare, lenta
Fig. Prof. Onur Mutlu
Ierarhia memoriei azi
Register File
32 words, sub-nsec compilator
Memory register spilling
L1 cache (SRAM)
Abstraction ~32 KB, ~nsec

L2 cache (SRAM)
512 KB ~ 1MB, few nsec
Automatic
HW cache
L3 cache (SRAM),
management
.....

Main memory (DRAM),


GB, ~ 50 nsec
automatic
demand
Swap Disk
100 GB, ~10 msec paging
Fig. Prof. Onur Mutlu
DRAM BANKS
DRAM
DRAMINTERFACE
INTERFACE
DRAM MEMORY
CORE 1

CORE 3
CONTROLLER

L2 CACHE 1 L2 CACHE 3
L2 CACHE 0 L2 CACHE 2

CORE 2
CORE 0
SHARED
SHAREDL3
L3CACHE
CACHE
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