플래시 메모리
더 많은 작업
플래시 메모리(Flash Memory)는 전원이 꺼져도 내용이 유지되고, 전기적으로 블록 단위로 한꺼번에 지운 뒤 다시 쓸 수 있는 반도체 비휘발성 메모리이다.
플래시 메모리는 1980년대 초 도시바의 마스오카 후지오가 EEPROM 을 바탕으로 고안했다. EEPROM 은 바이트 단위로 지울 수 있지만 셀이 크고 비싸다. 플래시는 지우는 단위를 큰 블록으로 묶어 셀 구조를 단순하게 만들고 집적도를 크게 높였다. 블록 전체가 번쩍(flash) 한 번에 지워진다는 데서 이름이 붙었다.
USB 메모리, 메모리 카드, 스마트폰 저장장치(eMMC, UFS), SSD, 기기의 펌웨어 저장 등에 쓰이며 오늘날 가장 널리 쓰이는 비휘발성 반도체 메모리이다.
플래시의 셀은 MOS 트랜지스터의 제어 게이트와 채널 사이에 절연막으로 둘러싸인 전하 저장층을 하나 더 둔 구조이다. 저장층에 전자가 갇혀 있으면 트랜지스터를 켜는 데 필요한 문턱 전압(Vth)이 높아지고, 없으면 낮다. 이 문턱 전압 차이로 0 과 1 을 구분한다. 절연막에 갇힌 전자는 전원이 없어도 빠져나가지 않으므로 비휘발성이 된다.
- 플로팅 게이트(Floating Gate): 저장층이 도체(폴리실리콘)인 전통적 구조
- 차지 트랩(CTF, Charge Trap Flash): 저장층을 질화막 같은 부도체로 만들어 전자를 가두는 구조. 셀 간 간섭이 적어 3D NAND 에 주로 쓴다
| 동작 | 방법 | 단위 |
|---|---|---|
| 읽기 | 기준 전압을 걸어 셀에 전류가 흐르는지로 문턱 전압을 판별 | 페이지(NAND) |
| 쓰기(프로그램) | 제어 게이트에 고전압을 걸어 전자를 저장층으로 주입. NAND 는 F-N 터널링, NOR 는 열전자 주입(CHE)을 주로 씀 | 페이지(NAND)·바이트/워드(NOR) |
| 지우기 | 기판 쪽에 고전압을 걸어 저장층의 전자를 F-N 터널링으로 빼냄 | 블록 |
쓰기는 1→0 방향만 가능하고, 0 을 1 로 되돌리려면 블록 전체를 지워야 한다. 그래서 덮어쓰기가 안 되고 지운 뒤에 써야 한다(Erase-before-Write).
플래시 메모리는 페이지 단위로 읽고 쓰며 블록 단위로 지운다. 트랙·섹터는 원판이 돌고 헤드가 움직이는 자기 디스크의 저장 단위이고, 회전 부품이 없는 플래시 메모리에는 트랙이 없다 → 하드 디스크 드라이브
셀을 연결하는 방식에 따라 나뉜다. NAND 는 셀을 직렬로 묶어 셀 하나당 면적이 작고, NOR 는 셀마다 비트선에 병렬로 연결해 개별 접근이 쉽다.
| 구분 | NAND 플래시 | NOR 플래시 |
|---|---|---|
| 셀 연결 | 직렬(스트링) | 병렬 |
| 집적도·비트당 가격 | 높음·저렴 | 낮음·비쌈 |
| 읽기 | 페이지 단위, 임의 접근 느림 | 바이트 단위 임의 접근 빠름 |
| 쓰기·지우기 | 빠름 | 느림 |
| 코드 직접 실행(XIP) | 불가(RAM 에 올려 실행) | 가능 |
| 용도 | SSD, USB 메모리, 메모리 카드, 스마트폰 저장장치 | 부트 코드·펌웨어 저장(BIOS/UEFI, 임베디드 기기) |
한 셀의 문턱 전압을 여러 단계로 나누면 셀 하나에 여러 비트를 저장할 수 있다. n 비트를 저장하려면 2ⁿ 개의 전압 상태를 구분해야 한다.
| 구분 | 셀당 비트 | 전압 상태 수 | 쓰기·지우기 수명(P/E 사이클, 대략) | 특징·용도 |
|---|---|---|---|---|
| SLC(Single Level Cell) | 1 | 2 | 수만~10만 회 | 가장 빠르고 수명이 길며 오류가 적다. 비싸다. 산업·기업용, SSD 캐시 |
| MLC(Multi Level Cell) | 2 | 4 | 수천~1만 회 | 성능·수명과 용량의 절충. 고급 소비자용·기업용 |
| TLC(Triple Level Cell) | 3 | 8 | 1천~3천 회 | 소비자용 SSD·스마트폰의 주력 |
| QLC(Quad Level Cell) | 4 | 16 | 수백~1천 회 | 대용량·저가, 쓰기 성능과 수명이 낮다 → QLC SSD |
| PLC(Penta Level Cell) | 5 | 32 | 더 낮음 | 개발 단계 |
셀당 비트가 늘수록 같은 면적에 더 많이 담아 용량과 가격은 좋아지지만, 전압 상태 사이의 간격이 좁아져 다음이 나빠진다.
- 속도: 상태를 정밀하게 맞추고 구분하느라 쓰기·읽기가 느려진다
- 수명: 절연막이 조금만 손상돼도 상태가 섞여 P/E 사이클이 짧아진다
- 신뢰성: 비트 오류율이 높아져 더 강한 오류 정정 부호(BCH, LDPC)가 필요하다
- 데이터 보존: 전하가 조금만 새도 값이 바뀌어 보존 기간이 짧아진다
TLC·QLC 제품은 빈 공간 일부를 SLC 처럼 1비트만 써서 빠르게 받아 두었다가 나중에 옮겨 담는 SLC 캐싱으로 쓰기 성능을 보완한다.
평면(2D)에서 셀을 계속 줄이자 셀 사이 간섭과 전하 누설이 커져 미세화가 한계에 이르렀다. 3D NAND(삼성전자는 V-NAND 라고 부른다)는 셀을 수직으로 수십~수백 층 쌓아 면적당 용량을 늘린다. 미세 공정에 덜 의존하므로 셀을 상대적으로 크게 유지할 수 있어 신뢰성도 좋아졌다.
| 제약 | 관리 기법 |
|---|---|
| 덮어쓰기 불가(지운 뒤 쓰기), 쓰기는 페이지·지우기는 블록 단위 | FTL(Flash Translation Layer)이 논리 주소를 물리 주소로 사상해, 갱신 데이터를 빈 페이지에 새로 쓰고 옛 페이지는 무효로 표시한다 |
| 무효 페이지가 쌓여 빈 블록이 부족해짐 | 가비지 컬렉션: 유효 페이지만 다른 블록으로 옮기고 블록을 지워 재사용한다. TRIM 명령으로 운영체제가 지운 파일의 블록을 알려 주면 효율이 오른다 |
| 블록마다 지우기 횟수 한계 | 마모 평준화(Wear Leveling): 쓰기를 모든 블록에 고르게 분산한다 |
| 불량 블록 발생 | 불량 블록 관리: 제조·사용 중 생긴 불량 블록을 예비 블록으로 대체한다 |
| 비트 오류, 읽기 교란, 전하 누설 | ECC(BCH, LDPC), 주기적 데이터 재기록(리프레시) |
| 쓰기 증폭(Write Amplification) | 오버 프로비저닝: 사용자에게 보이지 않는 여유 공간을 두어 가비지 컬렉션 부담을 줄인다 |
- 장점
- 비휘발성, 기계 구동부가 없어 충격에 강하고 소음·발열이 적다
- 하드 디스크보다 임의 접근이 훨씬 빠르다
- 작고 가볍고 전력 소모가 적어 모바일 기기에 적합하다
- 단점
- 쓰기·지우기 횟수에 한계가 있다
- 지운 뒤에 써야 하고 지우는 단위가 커서 FTL 같은 관리 계층이 필요하다
- DRAM 보다 느리고, 비트당 가격은 하드 디스크보다 비싸다
- 장기간 전원 없이 두면 데이터가 손실될 수 있다