๐Ÿ’พ NAND

NAND Flash Internals

NAND ํ”Œ๋ž˜์‹œ ๋‚ด๋ถ€ ๊ตฌ์กฐ ์ƒ์„ธ ๋ถ„์„

NAND Flash Cell ยท String/Array ยท Vth Distribution ยท 3D V-NAND ยท Program/Erase Physics

NAND ํ”Œ๋ž˜์‹œ๋Š” ์ „์› ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋น„ํœ˜๋ฐœ์„ฑ ์ €์žฅ ๋งค์ฒด์ž…๋‹ˆ๋‹ค. ๋ณธ ๋ฌธ์„œ๋Š” NAND์˜ ์…€ ๋ฌผ๋ฆฌ(์ „ํ•˜ ์ €์žฅ), ์…€์„ ์ง๋ ฌ๋กœ ์ž‡๋Š” String ๊ตฌ์กฐ, ์…€๋‹น ๋น„ํŠธ ์ˆ˜์— ๋”ฐ๋ฅธ ๋ฌธํ„ฑ์ „์•• ๋ถ„ํฌ, 2D/3D ๊ตฌ์กฐ, ๊ทธ๋ฆฌ๊ณ  ํ”„๋กœ๊ทธ๋žจ/์†Œ๊ฑฐ์˜ ๋ฌผ๋ฆฌ์™€ ์‹ ๋ขฐ์„ฑ ์—ดํ™”๊นŒ์ง€ NAND ๋‚ด๋ถ€๋ฅผ ์…€ ์ˆ˜์ค€์—์„œ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

NAND๋Š” ๊ฐ™์€ ํ”Œ๋ž˜์‹œ ๊ณ„์—ด์ด๋ผ๋„ NOR์™€ ์—ฐ๊ฒฐ ๋ฐฉ์‹์ด ๋‹ฌ๋ผ, ๋žœ๋ค ์ ‘๊ทผ๋ณด๋‹ค ๋Œ€์šฉ๋Ÿ‰ ์ €์žฅ๊ณผ ์ˆœ์ฐจ ์ฒ˜๋ฆฌ์— ๋” ์ž˜ ๋งž์Šต๋‹ˆ๋‹ค. 3D V-NAND์™€ charge trap ๊ตฌ์กฐ๋Š” ํ‰๋ฉด ๋ฏธ์„ธํ™” ํ•œ๊ณ„๋ฅผ ๋„˜๊ธฐ๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ–ˆ๊ณ , ์˜ค๋Š˜๋‚  TLC/QLC SSD์˜ ๊ณ ์ง‘์ ํ™”๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“  ํ•ต์‹ฌ ์ถ•์ž…๋‹ˆ๋‹ค.

1. NAND ์…€ ๊ตฌ์กฐ โ€” ์ „ํ•˜๋ฅผ ์ ˆ์—ฐ๋ง‰์— ๊ฐ€๋‘๋‹ค

NAND ์…€์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฒŒ์ดํŠธ ์ ˆ์—ฐ๋ง‰ ์•ˆ์— ์ „์ž๋ฅผ ์ฃผ์ž…ยท์ œ๊ฑฐํ•˜์—ฌ ํŠธ๋žœ์ง€์Šคํ„ฐ์˜ ๋ฌธํ„ฑ์ „์••(Vth)์„ ๋ฐ”๊พธ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ „ํ•˜๋ฅผ ์ €์žฅํ•˜๋Š” ๋งค์ฒด์— ๋”ฐ๋ผ Floating Gate(FG) ๋ฐฉ์‹๊ณผ Charge Trap(CT) ๋ฐฉ์‹์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

nand_0010_nand_flash_internals

๊ทธ๋ฆผ 1. Floating Gate vs Charge Trap ์…€ ๊ตฌ์กฐ์™€ ๋น„ํœ˜๋ฐœ์„ฑ ์›๋ฆฌ

Floating Gate vs Charge Trap

๋‘ ๋ฐฉ์‹ ๋ชจ๋‘ ์›๋ฆฌ๋Š” ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ „์ž๋ฅผ ์ฃผ์ž…ํ•˜๋ฉด Vth๊ฐ€ ๋†’์•„์ ธ โ€˜0โ€™(ํ”„๋กœ๊ทธ๋žจ), ์ „์ž๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด Vth๊ฐ€ ๋‚ฎ์•„์ ธ โ€˜1โ€™(์†Œ๊ฑฐ)์ด ๋ฉ๋‹ˆ๋‹ค. ์ฝ๊ธฐ๋Š” ๊ธฐ์ค€์ „์••์„ ๊ฑธ์–ด ์…€์ด ์ผœ์ง€๋Š”์ง€๋กœ ์ €์žฅ๊ฐ’์„ ํŒ๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ์ „ํ•˜๊ฐ€ ์ ˆ์—ฐ๋ง‰์— ๊ฐ‡ํ˜€ ์ „์› ์—†์ด๋„ ์œ ์ง€๋˜๋ฏ€๋กœ ๋น„ํœ˜๋ฐœ์„ฑ์ž…๋‹ˆ๋‹ค.

DRAM/SRAM๊ณผ์˜ ๊ฒฐ์ •์  ์ฐจ์ด

๋น„ํœ˜๋ฐœ์„ฑ์˜ ๋Œ€๊ฐ€ โ€” NAND๋Š” ์ „์› ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋Œ€์‹ , ์“ฐ๊ธฐ ์ „ ๋ฐ˜๋“œ์‹œ ์†Œ๊ฑฐ๊ฐ€ ํ•„์š”ํ•˜๊ณ (erase-before-write), ๋ฐ˜๋ณต ์‚ฌ์šฉ ์‹œ ์ ˆ์—ฐ๋ง‰์ด ๋งˆ๋ชจ๋˜๋ฉฐ(P/E cycle ์ œํ•œ), ์†๋„๊ฐ€ DRAM/SRAM๋ณด๋‹ค ํ›จ์”ฌ ๋А๋ฆฝ๋‹ˆ๋‹ค.

2. NAND String๊ณผ ์–ด๋ ˆ์ด ๊ตฌ์กฐ

โ€˜NANDโ€™๋ผ๋Š” ์ด๋ฆ„์€ ์…€์„ ์ง๋ ฌ๋กœ ์—ฐ๊ฒฐํ•œ ๊ตฌ์กฐ์—์„œ ์œ ๋ž˜ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์…€์„ ํ•œ ์ค„๋กœ ์ง๋ ฌ ์—ฐ๊ฒฐํ•˜๋ฉด ์…€๋‹น ๋ฐฐ์„ ์ด ์ค„์–ด ์ง‘์ ๋„๊ฐ€ ํฌ๊ฒŒ ๋†’์•„์ง‘๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด NAND๊ฐ€ ๋Œ€์šฉ๋Ÿ‰ ์ €์žฅ์— ์ ํ•ฉํ•œ ๊ทผ๋ณธ ์ด์œ ์ž…๋‹ˆ๋‹ค.

NAND Flash Internals

๊ทธ๋ฆผ 2. NAND String(์ง๋ ฌ) ๊ตฌ์กฐ, NOR(๋ณ‘๋ ฌ) ๋Œ€๋น„, Stringโ†’Pageโ†’Block ๊ณ„์ธต

String ๊ตฌ์„ฑ

  • SSL(String Select Line)๊ณผ GSL(Ground Select Line) ์‚ฌ์ด์— ์—ฌ๋Ÿฌ ์…€(WL0~WLn)์ด ์ง๋ ฌ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

  • Word Line(WL)์ด ๊ฐ ์…€์˜ Control Gate๋ฅผ ์ œ์–ดํ•˜๊ณ , Bit Line(BL)์ด String์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์”๋‹ˆ๋‹ค.

  • ์ง๋ ฌ ์—ฐ๊ฒฐ ๋•๋ถ„์— ์…€๋‹น ์ฝ˜ํƒ(๋ฐฐ์„ )์ด ์ค„์–ด NOR๋ณด๋‹ค ํ›จ์”ฌ ๋†’์€ ์ง‘์ ๋„๋ฅผ ๋‹ฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

NAND vs NOR

ํ•ญ๋ชฉ NAND NOR
์—ฐ๊ฒฐ ๊ตฌ์กฐ ์…€์„ ์ง๋ ฌ๋กœ ์—ฐ๊ฒฐ ์…€์„ ๋ณ‘๋ ฌ๋กœ ์—ฐ๊ฒฐ
๋žœ๋ค ์ฝ๊ธฐ ๋А๋ฆผ ๋น ๋ฆ„
์ฝ”๋“œ ์‹คํ–‰ ๋ถ€์ ํ•ฉ ์ ํ•ฉ (XIP)
์ง‘์ ๋„ ๋†’์Œ ๋‚ฎ์Œ
์ฃผ ์šฉ๋„ SSD, ๋ฉ”๋ชจ๋ฆฌ ์นด๋“œ, USB ํŽŒ์›จ์–ด, ๋ถ€ํŠธ ROM

NAND๋Š” page/block ์ค‘์‹ฌ์œผ๋กœ ์›€์ง์ด๊ณ , NOR๋Š” ๋ฐ”์ดํŠธ ๋‹จ์œ„ ์ ‘๊ทผ์ด ์‰ฌ์›Œ ์ฝ”๋“œ ์‹คํ–‰์— ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ํ”Œ๋ž˜์‹œ๋ผ๋„ ์ €์žฅ ๋ฐ€๋„์™€ ์ ‘๊ทผ ๋ฐฉ์‹์—์„œ ๋ชฉํ‘œ๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

Page โ†’ Block ๊ณ„์ธต

  • ๊ฐ™์€ WL์— ์—ฐ๊ฒฐ๋œ ์…€๋“ค์˜ ๋ฌถ์Œ์ด Page๋กœ, ์ฝ๊ธฐ/์“ฐ๊ธฐ์˜ ์ตœ์†Œ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค(๋ณดํ†ต 4~16KB).

  • ์—ฌ๋Ÿฌ String์ด ๋ชจ์—ฌ Block์„ ์ด๋ฃจ๋ฉฐ, ์†Œ๊ฑฐ์˜ ์ตœ์†Œ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค(์ˆ˜๋ฐฑ~์ˆ˜์ฒœ Page).

  • ์ฝ๊ธฐ/์“ฐ๊ธฐ๋Š” Page ๋‹จ์œ„์ธ๋ฐ ์†Œ๊ฑฐ๋Š” Block ๋‹จ์œ„์ธ ๋น„๋Œ€์นญ์ด ๋ฐ”๋กœ FTL(Flash Translation Layer)์ด ํ•„์š”ํ•œ ๊ทผ๋ณธ ์›์ธ์ž…๋‹ˆ๋‹ค.

3. ์…€๋‹น ๋น„ํŠธ ์ˆ˜์™€ ๋ฌธํ„ฑ์ „์•• ๋ถ„ํฌ

ํ•œ ์…€์— ์ €์žฅํ•˜๋Š” ๋น„ํŠธ ์ˆ˜๋Š” ๋ฌธํ„ฑ์ „์••(Vth)์„ ๋ช‡ ๋‹จ๊ณ„๋กœ ๊ตฌ๋ถ„ํ•˜๋А๋ƒ์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ๊ณ„๊ฐ€ ๋งŽ์„์ˆ˜๋ก ๊ฐ™์€ ๋ฉด์ ์— ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์ง€๋งŒ, ์ „์•• ๋ ˆ๋ฒจ ์‚ฌ์ด ๊ฐ„๊ฒฉ์ด ์ข์•„์ ธ ์˜ค๋ฅ˜์— ์ทจ์•ฝํ•ด์ง€๊ณ  ์ˆ˜๋ช…์ด ์งง์•„์ง‘๋‹ˆ๋‹ค.

NAND Flash Internals

๊ทธ๋ฆผ 3. SLC/MLC/TLC/QLC์˜ ๋ฌธํ„ฑ์ „์•• ๋ถ„ํฌ โ€” ๋ ˆ๋ฒจ์ด ๋งŽ์„์ˆ˜๋ก ๋ด‰์šฐ๋ฆฌ ๊ฐ„๊ฒฉ์ด ์ข์•„์ง

16๋ ˆ๋ฒจ(QLC)์€ ์ข์€ ์ „์•• ์ฐฝ์— 16๊ฐœ์˜ ๋ถ„ํฌ๋ฅผ ์šฑ์—ฌ๋„ฃ์–ด์•ผ ํ•˜๋ฏ€๋กœ, ์ž‘์€ ์ „ํ•˜ ๋ณ€๋™์—๋„ ์ธ์ ‘ ๋ ˆ๋ฒจ๊ณผ ๊ฒน์ณ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค๋น„ํŠธ NAND์ผ์ˆ˜๋ก ๊ฐ•๋ ฅํ•œ ECC(LDPC)์™€ ์ •๊ตํ•œ ์ฝ๊ธฐ ๋ณด์ •(Read Retry)์ด ํ•„์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

4. 2D Planar NAND vs 3D V-NAND

์ดˆ๊ธฐ NAND๋Š” ์…€์„ ํ‰๋ฉด(๊ฐ€๋กœ)์— ๋ฐฐ์น˜ํ•˜๊ณ  ๋ฏธ์„ธํ™”๋กœ ์ง‘์ ๋„๋ฅผ ๋†’์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ 10nm๋Œ€์— ์ด๋ฅด๋Ÿฌ ์…€ ๊ฐ„๊ฒฉ์ด ๋„ˆ๋ฌด ์ข์•„์ ธ ๊ฐ„์„ญ์ด ์‹ฌํ•ด์ง€๊ณ  ๋ฏธ์„ธํ™”๊ฐ€ ํ•œ๊ณ„์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ โ€˜์ˆ˜์ง ์ ์ธตโ€™์œผ๋กœ ์šฐํšŒํ•œ ๊ฒƒ์ด 3D V-NAND์ž…๋‹ˆ๋‹ค.

NAND Flash Internals

๊ทธ๋ฆผ 4. 2D Planar NAND์™€ 3D V-NAND์˜ ๊ตฌ์กฐ ์ฐจ์ด

3D NAND๊ฐ€ ๊ฐ€์ ธ์˜จ ๋ณ€ํ™”

  • ํ‰๋ฉด ๋ฏธ์„ธํ™” ๋Œ€์‹  ์…€์„ ์ˆ˜์ง์œผ๋กœ ์Œ“์•„(ํ˜„์žฌ 200์ธต ์ด์ƒ) ์ธต์ˆ˜๋ฅผ ๋Š˜๋ ค ์šฉ๋Ÿ‰์„ ํ‚ค์›๋‹ˆ๋‹ค(32โ†’64โ†’128โ†’200์ธต+).

  • ์…€ ํฌ๊ธฐ๋ฅผ ์˜คํžˆ๋ ค ํ‚ค์šฐ๋ฉด์„œ๋„ ์ง‘์ ๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์–ด, ์…€ ๊ฐ„ ๊ฐ„์„ญ์ด ์ค„๊ณ  ์‹ ๋ขฐ์„ฑยท์ˆ˜๋ช…์ด ๊ฐœ์„ ๋ฉ๋‹ˆ๋‹ค.

  • ์ˆ˜์ง ์ ์ธต์—๋Š” Charge Trap ๋ฐฉ์‹์ด ์œ ๋ฆฌํ•˜์—ฌ ๋Œ€๋ถ€๋ถ„์˜ 3D NAND๊ฐ€ CT ๊ธฐ๋ฐ˜์ž…๋‹ˆ๋‹ค.

  • ์ด ๊ธฐ์ˆ ์ด TLC/QLC ๋Œ€์šฉ๋Ÿ‰ํ™”์˜ ํ† ๋Œ€๊ฐ€ ๋˜์–ด, ์˜ค๋Š˜๋‚  SSD์˜ ๊ณ ์šฉ๋Ÿ‰ยท์ €๊ฐ€๊ฒฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค.

5. Program / Erase ๋ฌผ๋ฆฌ์™€ ์‹ ๋ขฐ์„ฑ ์—ดํ™”

NAND์˜ ์“ฐ๊ธฐ(Program)์™€ ์†Œ๊ฑฐ(Erase)๋Š” ์ ˆ์—ฐ๋ง‰์„ ํ†ต๊ณผํ•˜๋Š” ์ „์ž์˜ ํ„ฐ๋„๋ง(FN tunneling)์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ด ๊ฐ•ํ•œ ์ „๊ณ„๊ฐ€ ๋ฐ˜๋ณต๋˜๋ฉด์„œ ์ ˆ์—ฐ๋ง‰์ด ์ ์ฐจ ์†์ƒ๋˜์–ด ๋งˆ๋ชจ๊ฐ€ ๋ˆ„์ ๋ฉ๋‹ˆ๋‹ค.

NAND Flash Internals

๊ทธ๋ฆผ 5. Program/Erase/Read ๋ฌผ๋ฆฌ์™€ NAND์˜ ์‹ ๋ขฐ์„ฑ ์—ดํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜

๊ธฐ๋ณธ ๋™์ž‘

  • Program(์“ฐ๊ธฐ) โ€” Control Gate์— ๋†’์€ ์–‘์ „์••์„ ๊ฑธ์–ด FN ํ„ฐ๋„๋ง์œผ๋กœ ์ „์ž๋ฅผ ์ ˆ์—ฐ๋ง‰ ์•ˆ์— ์ฃผ์ž…ํ•ฉ๋‹ˆ๋‹ค. ISPP(Incremental Step Pulse Programming)๋กœ ํŽ„์Šค๋ฅผ ๋‹จ๊ณ„์ ์œผ๋กœ ๋†’์—ฌ Vth๋ฅผ ์ •๋ฐ€ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ์ˆ˜ํ–‰๋˜๋ฉฐ, 0โ†’1 ์ „ํ™˜์€ ์†Œ๊ฑฐ ์—†์ด๋Š” ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  • Erase(์†Œ๊ฑฐ) โ€” ๊ธฐํŒ/์ฑ„๋„์— ๋†’์€ ์–‘์ „์••์„ ๊ฑธ์–ด ์ „์ž๋ฅผ ์ ˆ์—ฐ๋ง‰ ๋ฐ–์œผ๋กœ ๋ฐฉ์ถœ์‹œํ‚ต๋‹ˆ๋‹ค. Block ๋‹จ์œ„๋กœ ์ผ๊ด„ ์ˆ˜ํ–‰๋˜๋ฉฐ, ๊ฐ•ํ•œ ์ „๊ณ„๊ฐ€ ์ ˆ์—ฐ๋ง‰ ์†์ƒ์˜ ์ฃผ์›์ธ์ž…๋‹ˆ๋‹ค.

  • Read(์ฝ๊ธฐ) โ€” ๊ธฐ์ค€์ „์••(Vref)์„ ๊ฑธ์–ด ์…€์˜ ON/OFF๋กœ ์ €์žฅ๊ฐ’์„ ํŒ๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ๋น„ํŒŒ๊ดด์ ์ด๋ฉฐ ๊ฐ€์žฅ ๋น ๋ฆ…๋‹ˆ๋‹ค. ๋‹ค๋น„ํŠธ ์…€์€ ์—ฌ๋Ÿฌ Vref๋กœ ์—ฌ๋Ÿฌ ๋ฒˆ ์ฝ์Šต๋‹ˆ๋‹ค.

์‹ ๋ขฐ์„ฑ ์—ดํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜

์ด๋Ÿฌํ•œ ์—ดํ™”๋Š” ์ปจํŠธ๋กค๋Ÿฌ์˜ ECC(LDPC), Wear Leveling(๋งˆ๋ชจ ํ‰์ค€ํ™”), Read Retry(์ฝ๊ธฐ ์žฌ์‹œ๋„)๋กœ ๋ณด์ •ยท์™„ํ™”๋ฉ๋‹ˆ๋‹ค. NAND ์…€ ์ž์ฒด๋Š” ๋ถˆ์™„์ „ํ•˜์ง€๋งŒ, ์ด๋ฅผ ์‹œ์Šคํ…œ ์ฐจ์›์—์„œ ๊ด€๋ฆฌํ•˜์—ฌ ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์ €์žฅ์žฅ์น˜๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด SSD ์„ค๊ณ„์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

6. ์žฅ๋‹จ์ ๊ณผ ์ข…ํ•ฉ

ํ•ต์‹ฌ ์ •๋ฆฌ โ€” SRAM์€ ์†๋„๋ฅผ, DRAM์€ ๋ฐ€๋„์™€ ์†๋„์˜ ๊ท ํ˜•์„, NAND๋Š” ๋น„ํœ˜๋ฐœ์„ฑ๊ณผ ๋Œ€์šฉ๋Ÿ‰์„ ์ถ”๊ตฌํ•ฉ๋‹ˆ๋‹ค. NAND๋Š” ์…€์„ ์ง๋ ฌ๋กœ ์ž‡๊ณ (String) ํ•œ ์…€์— ์—ฌ๋Ÿฌ ๋น„ํŠธ๋ฅผ ๋‹ด์œผ๋ฉฐ(TLC/QLC) ์ˆ˜์ง์œผ๋กœ ์Œ“์•„(3D) ๊ทนํ•œ์˜ ์ง‘์ ๋„๋ฅผ ์–ป๋Š” ๋Œ€์‹ , ๋งˆ๋ชจยท๊ฐ„์„ญยท์ „ํ•˜ ๋ˆ„์„ค์ด๋ผ๋Š” ์‹ ๋ขฐ์„ฑ ๋ฌธ์ œ๋ฅผ ECC์™€ FTL๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋ฐฉ์‹ ์ „ํ•˜ ์ €์žฅ ๋งค์ฒด ํŠน์ง•
Floating Gate (FG) ๋„์ฒด(ํด๋ฆฌ์‹ค๋ฆฌ์ฝ˜) ๊ฒŒ์ดํŠธ ์ „ํ†ต์  ๋ฐฉ์‹. ๋„์ฒด๋ผ ๊ฒฐํ•จ ํ•œ ๊ณณ์—์„œ ์ „์ฒด ์ „ํ•˜ ๋ˆ„์„ค ์œ„ํ—˜. ๋ฏธ์„ธํ™”ยท3D ์ ์ธต์— ๋ถˆ๋ฆฌ.
Charge Trap (CT) ๋ถ€๋„์ฒด(Siโ‚ƒNโ‚„) ํŠธ๋žฉ์ธต ์ „ํ•˜๋ฅผ ๊ตญ์†Œ์ ์œผ๋กœ ๊ฐ€๋‘ฌ ๊ฒฐํ•จ์— ๊ฐ•ํ•จ. 3D V-NAND ๋Œ€๋ถ€๋ถ„์ด ์ฑ„ํƒ.
๋ฉ”๋ชจ๋ฆฌ ์ €์žฅ ์›๋ฆฌ ํœ˜๋ฐœ์„ฑ ํ•ต์‹ฌ ํŠน์„ฑ
SRAM (6T) ๊ต์ฐจ๊ฒฐํ•ฉ ์ธ๋ฒ„ํ„ฐ ๋ž˜์น˜ ํœ˜๋ฐœ์„ฑ ์ „์› ์ค‘์—๋งŒ ์œ ์ง€, ์ตœ๊ณ ์†, ์บ์‹œ
DRAM (1T1C) ์ปคํŒจ์‹œํ„ฐ ์ „ํ•˜ ํœ˜๋ฐœ์„ฑ Refresh ํ•„์š”, ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ
NAND ์ ˆ์—ฐ๋ง‰์— ๊ฐ‡ํžŒ ์ „ํ•˜ ๋น„ํœ˜๋ฐœ์„ฑ ์ „์› ์—†์ด ์ˆ˜๋…„ ๋ณด์กด, ๋Œ€์šฉ๋Ÿ‰ ์ €์žฅ
ํ•ญ๋ชฉ NAND NOR
์—ฐ๊ฒฐ ๊ตฌ์กฐ ์ง๋ ฌ ๋ณ‘๋ ฌ (์…€๋งˆ๋‹ค BL ์ฝ˜ํƒ)
์ง‘์ ๋„ ๋†’์Œ ๋‚ฎ์Œ
๋žœ๋ค ์ฝ๊ธฐ ๋А๋ฆผ (ํŽ˜์ด์ง€ ๋‹จ์œ„) ๋น ๋ฆ„ (๋ฐ”์ดํŠธ ๋‹จ์œ„)
์ˆœ์ฐจ R/W ๋น ๋ฆ„ ๋А๋ฆผ
์ฃผ ์šฉ๋„ ๋Œ€์šฉ๋Ÿ‰ ์ €์žฅ (SSD/USB) ์ฝ”๋“œ ์‹คํ–‰ (ํŽŒ์›จ์–ด XIP)
์ข…๋ฅ˜ ๋น„ํŠธ/์…€ ์ „์•• ๋ ˆ๋ฒจ P/E Cycle ์†๋„ ๋น„์šฉ/GB
SLC 1 bit 2 ~100,000 ์ตœ๊ณ  ์ตœ๊ณ ๊ฐ€
MLC 2 bit 4 ~10,000 ๋†’์Œ ๊ณ ๊ฐ€
TLC 3 bit 8 ~3,000 ์ค‘๊ฐ„ ์ค‘๊ฐ„ (์†Œ๋น„์ž ์ฃผ๋ฅ˜)
QLC 4 bit 16 ~1,000 ๋‚ฎ์Œ ์ตœ์ €๊ฐ€ (๋Œ€์šฉ๋Ÿ‰)
๋ฉ”์ปค๋‹ˆ์ฆ˜ ์›์ธ ์˜ํ–ฅ
P/E Cycling (๋งˆ๋ชจ) ๋ฐ˜๋ณต ํ”„๋กœ๊ทธ๋žจ/์†Œ๊ฑฐ๋กœ ํ„ฐ๋„ ์ ˆ์—ฐ๋ง‰ ๊ฒฐํ•จ ๋ˆ„์  ์ „ํ•˜ ์ €์žฅ ๋Šฅ๋ ฅ ์ €ํ•˜, ์ˆ˜๋ช… ์ œํ•œ
Read Disturb ์ธ์ ‘ ์…€ ์ฝ๊ธฐ ์ „์••์ด ๋น„์„ ํƒ ์…€์— ๋ฏธ์„ธ ์ „ํ•˜ ์ฃผ์ž… ๋ฐ˜๋ณต ์ฝ๊ธฐ ์‹œ ๊ฐ’ ๋ณ€์งˆ
Program Disturb ํ”„๋กœ๊ทธ๋žจ ์ค‘ ์ธ์ ‘ ์…€์— ์˜๋„์น˜ ์•Š์€ ์ „ํ•˜ ์ฃผ์ž… ์ด์›ƒ ์…€ ๊ฐ’ ๊ต๋ž€
Retention Loss ์‹œ๊ฐ„ ๊ฒฝ๊ณผ๋กœ ๊ฐ‡ํžŒ ์ „ํ•˜ ๋ˆ„์„ค ์žฅ๊ธฐ ๋ณด๊ด€ ์‹œ ๋ฐ์ดํ„ฐ ๋ณ€์งˆ
Cell-to-Cell ๊ฐ„์„ญ ๋ฏธ์„ธํ™”๋กœ ์ธ์ ‘ ์…€ ์ „ํ•˜์˜ ์ „๊ณ„ ์˜ํ–ฅ ๋‹ค๋น„ํŠธ(TLC/QLC)์—์„œ ์‹ฌ๊ฐ
ํ•ญ๋ชฉ SRAM (6T) DRAM (1T1C) NAND
์…€ ๊ตฌ์„ฑ ํŠธ๋žœ์ง€์Šคํ„ฐ 6 ํŠธ๋žœ์ง€์Šคํ„ฐ 1+์ปคํŒจ์‹œํ„ฐ 1 ํŠธ๋žœ์ง€์Šคํ„ฐ 1 (์ „ํ•˜ ์ €์žฅํ˜•)
์ €์žฅ ์›๋ฆฌ ๋ž˜์น˜ (๋Šฅ๋™) ์ปคํŒจ์‹œํ„ฐ ์ „ํ•˜ ์ ˆ์—ฐ๋ง‰์— ๊ฐ‡ํžŒ ์ „ํ•˜
ํœ˜๋ฐœ์„ฑ ํœ˜๋ฐœ์„ฑ ํœ˜๋ฐœ์„ฑ (Refresh) ๋น„ํœ˜๋ฐœ์„ฑ
์ฝ๊ธฐ ๋น„ํŒŒ๊ดด์  ํŒŒ๊ดด์  (restore) ๋น„ํŒŒ๊ดด์ 
์“ฐ๊ธฐ ์ œ์•ฝ ์ž์œ  ์ž์œ  ์†Œ๊ฑฐ ํ›„ ์“ฐ๊ธฐ, ๋งˆ๋ชจ
์†๋„ ์ตœ๊ณ  (ns ์ดํ•˜) ์ค‘๊ฐ„ (์ˆ˜์‹ญ ns) ๋А๋ฆผ (ยตs~ms)
๋ฐ€๋„/๋น„์šฉ ์ตœ์ €๋ฐ€๋„/์ตœ๊ณ ๊ฐ€ ์ค‘๊ฐ„ ์ตœ๊ณ ๋ฐ€๋„/์ตœ์ €๊ฐ€
์šฉ๋„ CPU ์บ์‹œ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ ๋Œ€์šฉ๋Ÿ‰ ์ €์žฅ

์žฅ์ 

  • ์…€์„ ์ง๋ ฌ๋กœ ๋ฌถ์–ด ๋ฐฐ์„  ์ˆ˜๋ฅผ ์ค„์ด๋ฏ€๋กœ ๋ฉด์  ํšจ์œจ์ด ๋†’๊ณ , ๊ฐ™์€ ์‹ค๋ฆฌ์ฝ˜ ๋ฉด์ ์—์„œ ๋” ํฐ ์šฉ๋Ÿ‰์„ ์–ป๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

  • 3D ์ ์ธต๊ณผ charge trap ์กฐํ•ฉ์€ ํ‰๋ฉด ๋ฏธ์„ธํ™”์˜ ํ•œ๊ณ„๋ฅผ ์šฐํšŒํ•˜๋ฉฐ, ์…€ ๊ฐ„ ๊ฐ„์„ญ์„ ์ค„์ด๋Š” ๋ฐ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • ์ „์›์ด ๊บผ์ ธ๋„ ์ „ํ•˜๋ฅผ ์œ ์ง€ํ•˜๋ฏ€๋กœ ์ €์žฅ ๋งค์ฒด๋กœ์„œ์˜ ๋น„ํœ˜๋ฐœ์„ฑ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค.

ํ•œ๊ณ„

  • page write, block erase ์ œ์•ฝ ๋•Œ๋ฌธ์— in-place overwrite๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ , FTL๊ณผ GC๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

  • ์…€๋‹น ๋น„ํŠธ ์ˆ˜๊ฐ€ ๋Š˜์ˆ˜๋ก ๋ฌธํ„ฑ์ „์•• ์—ฌ์œ ๊ฐ€ ์ค„์–ด ์˜ค๋ฅ˜์œจ๊ณผ ์ˆ˜๋ช… ๋ถ€๋‹ด์ด ์ปค์ง‘๋‹ˆ๋‹ค.

  • ๋ฐ˜๋ณต program/erase์™€ read disturb, retention loss ๋•Œ๋ฌธ์— ์ปจํŠธ๋กค๋Ÿฌ ์ˆ˜์ค€์˜ ECC์™€ ๋ณด์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

7. ๊ด€๋ จ ๊ธฐ์ˆ 

  • nand_0005_nand_nvme_ssd_analysis.html - FTL, NVMe, OS I/O ์Šคํƒ๊ณผ NAND์˜ ์—ฐ๊ฒฐ ๋ฐฉ์‹

  • nand_0020_ftl_wearleveling_garbagecollection.html - L2P ๋งคํ•‘, GC, Wear Leveling, OP

  • nand_0015_vfs_fs_pagecache_blockio.html - page cache, blk-mq, TRIM/Discard ๊ฒฝ๋กœ

  • system_0020_ecc_error_correction.html - ECC, LDPC, ๋น„ํŠธ ์˜ค๋ฅ˜ ์ •์ • ๋ฐฐ๊ฒฝ

  • system_0025_nvme_architecture.html - NVMe ํ ๊ตฌ์กฐ์™€ ํ˜ธ์ŠคํŠธ ์ธํ„ฐํŽ˜์ด์Šค

  • https://en.wikipedia.org/wiki/Flash_memory - NOR/NAND flash ๊ฐœ์š”์™€ ๊ณ„์ธต ์„ค๋ช…

  • https://en.wikipedia.org/wiki/Charge_trap_flash - charge trap, 3D NAND, vertical ๊ตฌ์กฐ ์„ค๋ช…

8. ํ•ต์‹ฌ ์ •๋ฆฌ

NAND Flash๋Š” ์…€์„ ์ง๋ ฌ๋กœ ์—ฐ๊ฒฐํ•ด ์ง‘์ ๋„๋ฅผ ๋†’์ด๊ณ , ํ•œ ์…€์— ๋” ๋งŽ์€ ๋น„ํŠธ๋ฅผ ๋‹ด์œผ๋ฉฐ, 3D ์ ์ธต์œผ๋กœ ํ‰๋ฉด ๋ฏธ์„ธํ™”์˜ ํ•œ๊ณ„๋ฅผ ๋„˜๋Š” ์ €์žฅ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ๋Œ€์‹  page/block์˜ ๋น„๋Œ€์นญ ๋™์ž‘๊ณผ P/E ๋งˆ๋ชจ, read disturb, retention loss๋ฅผ ๊ฐ์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์‹ค์ œ ์ œํ’ˆ์€ FTL, GC, Wear Leveling, ECC๋ฅผ ํ•จ๊ป˜ ์จ์„œ NAND์˜ ๋ฌผ๋ฆฌ์  ํ•œ๊ณ„๋ฅผ ์‹œ์Šคํ…œ ์ฐจ์›์—์„œ ํก์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ NAND๋Š” ๋ฒ”์šฉ ์ €์žฅ์žฅ์น˜์˜ ํ•ต์‹ฌ์ด ๋˜์—ˆ๊ณ , 3D charge trap ๊ตฌ์กฐ๋Š” ๊ทธ ์ค‘์‹ฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.