You are on page 1of 13

Memory Cells – SRAM

SRAM (Static RAM)


▪ 6T SRAM Cell SRAMs
𝐖𝐋

𝐁𝐋 𝐕𝐃𝐃 𝐁𝐋

M2 M4

Q
M6
Q
M5

M1 M3

6T SRAM cell Die photo of Intel Core i3-8300

Q Q Q Q
0 1 1 0

cell with data 0 cell with data 1

▪ Cross-coupled inverter(M1~M4)와 2개의 access transistor(M5, M6)로 구성


▪ CMOS(Complementary metal–oxide–semiconductor) process로 구현
▪ High speed, poor density → cache memory에 사용
SRAM read/write
𝐖𝐋 0→1

▪ Write 𝐁𝐋 𝐕𝐃𝐃 𝐁𝐋

M2 M4
1) 저장하려는 data에 맞게 BL, BL 설정 Q
M6 1
2) WL을 high(1)로 설정 0 M5
Q
1→0
0→1

M1 M3

▪ Read 𝐖𝐋 0→1
𝐁𝐋 𝐕𝐃𝐃 𝐁𝐋

1) BL, BL 을 high(1)로 charge시킴 (precharge)


2) WL을 high(1)로 설정 M2 M4

3) BL, BL 중 한쪽이 discharge되는 것을 감지 1


Q
M6
Q
1→0 M5 1
0
M1 M3
Memory Cells – DRAM
DRAM
▪ 1T1C DRAM Cell

𝐁𝐋
𝐖𝐋

1T1C DRAM cell

Intel’s 22nm embedded DRAM stack SAMSUNG LPDDR4 chips

– Transistor/Capacitor pair로 구성
– Access transistor를 통해 원하는 cell에 접근
– Capacitor를 charge/discharge하여 data를 저장
– Leakage에 의해 data가 소실되므로 일정 주기로 값을 다시 써줘야 함(refresh)
(e.g. SAMSUNG LPDDR4는 8192개의 row에 대해 32ms내에 refresh 수행
→ 약 3.904us마다 refresh가 수행된다)
– (상대적으로) Slow speed, high density
DRAM read/write
▪ Write
𝐁𝐋
1) 저장하려는 data에 맞게 𝐖𝐋
0→1

BL을 high(1) 또는 low(0)로 설정


2) WL을 high(1)로 설정 1 0→1 𝐶𝑛𝑜𝑑𝑒
0 1→0

▪ Read
1) BL을 high(1) 와 low(0) 𝐁𝐋
사이의 값으로 precharge 0→1
𝐖𝐋
2) WL을 high로 설정
3) Capacitor의 charge에 따라 1 𝐶𝑛𝑜𝑑𝑒
0
BL의 capacitance가
high/low방향으로 charge/discharge Δ𝑉 ~ 𝐶𝑛𝑜𝑑𝑒 /𝐶𝐵𝐿

4) BL의 capacitance가 이동한 방향을 감지


Memory Cells – Flash
Flash cell (Floating gate MOSFET)
MOSFET Flash memory cell

Control gate

Control gate Metal


Oxide
Drain Metal Source Drain Floating gate Source
구조 Oxide
Oxide

Substrate (Silicon) Substrate (Silicon)

Schematic
symbol

사용 목적 - 스위치 (Turn on/off) - 정보 저장 (Non-volatile)


Flash write
▪ Program & Erase
– FN (Fowler-Nordheim) Tunneling 원리 이용
• 일반 전압으로는 전자가 oxide를 통과할 수 없음
• 강한 전압을 걸어주면 전자가 oxide를 통과 (Tunneling)
• 전자가 floating gate에 들어가면 cell의 threshold voltage가 높아짐
(program), 반대로 빠져나오면 threshold voltage가 낮아짐 (erase)

𝐼𝐷𝑆
20V 0V

program
Store Store
0V 0V Floating Floating
‘1’ ‘0’
erase

𝑉𝑡ℎ.𝑒 𝑉𝑡ℎ.𝑝 𝑉𝑔

0V 20V

Program Erase
Flash read

– Program/Erase 상태에 있는 cell에 대해 둘을 구분할 수 있는 적


당한 𝑉𝑟𝑒𝑎𝑑 를 선택
– Gate에 𝑉𝑟𝑒𝑎𝑑 를 걸어주면
→ erase 상태 cell은 on, program 상태 cell은 off

𝐼𝐷𝑆
𝑉𝑟𝑒𝑎𝑑 𝑉𝑟𝑒𝑎𝑑

program
Read Read
‘1’ ‘0’
erase

𝑉𝑡ℎ.𝑒 𝑉𝑡ℎ.𝑝 𝑉𝑔

Programmed cell Erased cell

𝑉𝑟𝑒𝑎𝑑
Flash multi-value
▪ MLC (Multi Level Cell)
– 하나의 cell이 여러 개의 값을 가질 수 있음
– 각 state가 구별되는 구간을 2𝑛 개의 구간으로 나누면 하나의 cell에 여러
개의 bit를 저장하는 것이 가능
𝐶𝑒𝑙𝑙 #

SLC
‘1’ ‘0’

𝐶𝑒𝑙𝑙 # 𝑉𝑝𝑎𝑠𝑠 𝑉𝑡ℎ

MLC
‘11’ ‘10’ ‘01’ ‘00’

𝐶𝑒𝑙𝑙 # 𝑉𝑝𝑎𝑠𝑠 𝑉𝑡ℎ

TLC
‘111’ ‘110’ ‘101’ ‘100’ ‘011’ ‘010’ ‘001’ ‘000’

𝑉𝑝𝑎𝑠𝑠 𝑉𝑡ℎ
Summary
SRAM DRAM FLASH

WL
WL WL

Cell
BL BL
BL BL

6T (CMOS) 1T1C (NMOS + Capacitor) 1T (FG)


큼 중간 작음
Cell size*
(0.0346𝜇𝑚𝟐 ) (0.00265𝜇𝑚𝟐 ) (0.0009𝜇𝑚𝟐 )

Cost/GB $$$ $$ $

Access time 빠름 (1~10ns) 중간 (~100ns) 느림 (us 단위)

Power 소모 Low High (Refresh 때문) Low

Volatile/Non-volatile Volatile Volatile Non-volatile

Usage On-chip cache Main memory External memory

기타 - Refresh Wear out

▪ MM01-LOGIC의 Metal 0/1 half pitch = 18nm * 2017IRDS (https://irds.ieee.org/roadmap-2017)


▪ MM02-DRAM(의 half pitch = (Cell area / Cell size factor)^0.5 = 21nm
▪ MM03-FLASH의 uncontacted poly half pitch = 15nm

You might also like