Flash 메모리의 구조와 NAND·NOR·SSD 동작 원리

Flash 메모리의 플로팅 게이트 원리부터 NAND·NOR 구조, 셀 기술, 3D NAND, SSD 컨트롤러와 성능 특성을 정리한다.

2026-08-14 · 최초 발행 2026-01-06

전하를 저장해 전원이 꺼져도 데이터를 남기는 방식

Flash 메모리는 전기적으로 지우고 다시 기록할 수 있는 비휘발성 반도체 메모리다. 절연된 플로팅 게이트에 전자를 가두는 구조를 이용하며, SSD·USB 드라이브·메모리 카드의 저장 매체로 쓰인다. 기계 부품이 없는 고체 상태 저장장치라는 점에서 HDD를 대체하며 모바일과 데이터센터 스토리지의 표준이 됐다.

이 메모리의 성격은 다음 요소에서 나온다.

  • 전원이 없어도 데이터를 장기간 보존하는 비휘발성 특성
  • 절연된 플로팅 게이트에 전자를 트랩해 데이터를 저장하는 방식
  • 블록 단위로 전기 신호를 인가해 데이터를 지우는 소거 방식
  • 기계적 이동 부품 없이 반도체만으로 구성되는 고체 상태 구조

플로팅 게이트 트랜지스터는 위에서 아래로 다음과 같이 구성된다.

구조 (상단부터):
- 제어 게이트 (Control Gate)
- 절연층 (Oxide)
- 플로팅 게이트 (Floating Gate) ← 전자 저장
- 터널 산화막 (Tunnel Oxide)
- 채널 (Channel)

기록할 때는 Fowler-Nordheim 터널링으로 전자를 플로팅 게이트에 주입한다. 소거 과정에서는 전자를 방출해 게이트를 비우고, 읽기에서는 임계 전압의 차이로 셀 상태를 구분한다. 절연층은 이 전자를 수년간 가둬 데이터 보존을 가능하게 한다.

프로그램 (쓰기)높은 전압 인가전자 플로팅 게이트 주입임계 전압 상승소거소거 전압 인가전자 플로팅 게이트 방출임계 전압 하강

저장장치용 NAND와 코드 실행용 NOR의 차이

NAND Flash는 셀을 NAND 게이트 형태로 직렬 연결한다. 셀 크기가 작아 고밀도·대용량 저장에 유리하고, 블록을 지운 뒤 페이지 단위로 기록하는 구조라 순차 접근에서 높은 처리량을 낸다. 블록 소거 단위는 128KB-256KB, 페이지 프로그램 단위는 4KB-16KB다.

NAND의 계층은 다음과 같다.

계층 구조:
- 다이 (Die): 독립 동작 단위
- 플레인 (Plane): 병렬 동작 그룹
- 블록 (Block): 소거 단위 (128KB-256KB)
- 페이지 (Page): 읽기/쓰기 단위 (4KB-16KB)
- 셀 (Cell): 최소 저장 단위

SSD는 노트북·데스크톱·서버에서 NAND를 사용하며, USB 드라이브와 SD·microSD·CF 메모리 카드도 같은 계열에 속한다. 스마트폰, 태블릿, IoT 같은 임베디드 장치 역시 주요 적용 대상이다.

NOR Flash는 셀마다 독립적으로 접근할 수 있도록 병렬 연결한다. 개별 바이트를 랜덤 읽기할 수 있고, XIP(Execute in Place) 방식으로 메모리에서 직접 코드를 실행할 수 있다. 반면 바이트 단위 프로그래밍은 느리다.

- 섹터 (Sector): 소거 단위 (64KB-128KB)
- 바이트 단위 읽기: 주소 버스로 직접 접근
- 느린 쓰기: 바이트당 수 μs

이 특성 때문에 NOR는 BIOS·UEFI 같은 펌웨어, 부트로더와 OS 커널, 설정·파라미터처럼 소량 데이터를 저장하는 용도, 라우터와 스위치의 펌웨어에 사용된다.

특성           NAND Flash         NOR Flash
--------------------------------------------------------
셀 크기        작음 (~4 F²)       큼 (~10 F²)
읽기 속도      중간 (25 μs/page)  빠름 (수십 ns/byte)
쓰기 속도      빠름 (200 μs/page) 느림 (수 μs/byte)
소거 속도      빠름 (수 ms/block) 느림 (수백 ms/sector)
접근 방식      페이지 단위        바이트 단위
XIP            불가능             가능
용량           대용량 (GB-TB)     소용량 (MB-GB)
비용           저렴               비쌈
주용도         저장장치           코드 실행

셀당 저장 비트가 만드는 성능·비용·수명 균형

SLC(Single-Level Cell)는 셀 하나에 1비트를 저장하며 상태는 0 또는 1이다. 읽기·쓰기 성능이 가장 높고 50,000-100,000 P/E 사이클의 내구성을 갖지만 비트당 가격도 가장 높다. 엔터프라이즈 SSD와 산업용 장비에 쓰인다.

MLC(Multi-Level Cell)는 셀 하나에 2비트를 저장해 00, 01, 10, 11의 4가지 전압 레벨을 구분한다. SLC보다 느리지만 실용적인 성능을 제공하며, 수명은 3,000-10,000 P/E 사이클이다. 소비자용 SSD와 메모리 카드에서 성능과 비용의 균형점으로 활용된다.

TLC(Triple-Level Cell)는 셀당 3비트와 8가지 전압 레벨을 사용한다. 프로그래밍 시간이 늘어나고 수명은 1,000-3,000 P/E 사이클로 낮아지지만, 비트당 비용이 낮아 대용량 SSD와 USB 드라이브에 적합하다.

QLC(Quad-Level Cell)는 셀당 4비트, 16가지 전압 레벨을 저장한다. 더 정밀한 제어가 필요해 속도는 느리고 수명은 100-1,000 P/E 사이클이지만, 비트당 비용이 가장 낮다. 읽기 중심 워크로드와 아카이브 용도에 쓰인다.

성능↓비용↓성능↓비용↓성능↓비용↓내구성↑용량↑SLC(1bit)MLC(2bit)TLC(3bit)QLC(4bit)

평면 구조의 한계를 넘는 3D NAND

평면 NAND는 15nm 이하 공정에서 셀 간 간섭이 증가하고, 셀 간격 감소에 따른 누설로 신뢰성이 떨어진다. 극자외선 리소그래피가 필요해지면서 비용 부담도 커진다.

3D NAND는 셀을 수직으로 쌓아 이 한계를 다룬다. 64-176 레이어를 적층하고 워드라인을 수직 배치하며, Bit Line은 구조를 수직으로 관통한다. 레이어당 용량을 높여 밀도 향상을 꾀하는 방식이다.

Samsung의 V-NAND는 플로팅 게이트 대신 질화막을 쓰는 CTF(Charge Trap Flash)와 실리콘 필라 형태의 수직 채널을 사용한다. 최신 세대는 128-176 레이어이며, TLC와 QLC에서도 높은 내구성을 목표로 한다.

Intel/Micron의 3D XPoint는 Flash와 다른 원리의 상변화 메모리다. DRAM과 유사한 인터페이스로 바이트 접근을 제공하며, Flash보다 읽기는 1000배 빠르고 P/E 사이클도 1000배 높다. Intel Optane이 이 기술을 사용한 제품이다.

컨트롤러가 Flash의 제약을 관리하는 방법

SSD 컨트롤러는 논리 주소와 물리 주소를 연결하는 FTL(Flash Translation Layer)을 비롯해 Wear Leveling, Bad Block Management, ECC(Error Correction Code), 가비지 컬렉션을 담당한다. 무효 페이지를 정리하고 블록을 재생하는 과정도 컨트롤러의 역할이다.

FTL의 매핑 방식은 공간과 접근 성능 사이에서 선택된다.

페이지 매핑:
- 모든 페이지 개별 매핑
- 빠른 랜덤 접근
- 큰 매핑 테이블 (RAM 소비)

블록 매핑:
- 블록 단위 매핑
- 작은 매핑 테이블
- 느린 랜덤 쓰기

하이브리드:
- 로그 블록 + 데이터 블록
- 균형잡힌 성능

Wear Leveling은 특정 블록에 쓰기가 집중되지 않도록 사용 횟수를 기준으로 기록 위치를 분산한다.

쓰기 요청FTL블록 사용 횟수 확인적게 사용된 블록 선택데이터 기록사용 횟수 갱신

오류 정정에는 수십 비트를 정정하는 전통적인 BCH 코드와, 수백 비트 정정이 가능해 TLC·QLC에서 필수가 되는 LDPC(Low-Density Parity-Check)가 쓰인다. 소프트 디코딩은 아날로그 신호 레벨을 활용하며, SSD 내부 RAID 구성에서는 RAID 패리티도 사용된다.

읽기·프로그램·소거가 같은 속도로 움직이지 않는 이유

TLC NAND의 전형적 타이밍은 읽기 25-50 μs/page, 프로그램 200-800 μs/page, 소거 1-3 ms/block이다. 읽기는 쓰기보다 수십 배 빠르고, 소거는 프로그램보다 수백 배 느리다.

전형적 타이밍 (TLC NAND):
- 읽기: 25-50 μs/page
- 프로그램: 200-800 μs/page
- 소거: 1-3 ms/block

→ 읽기가 쓰기보다 수십 배 빠름
→ 소거가 프로그램보다 수백 배 느림

Write Amplification은 실제로 기록된 데이터량을 호스트 쓰기 요청량으로 나눈 값이다. 가비지 컬렉션과 블록 소거 오버헤드가 이를 키우며, 성능 저하와 수명 단축으로 이어진다. Over-provisioning과 TRIM 지원은 이를 완화하는 수단이다.

TRIM은 삭제된 페이지를 SSD에 알리는 명령이다. 가비지 컬렉션의 효율을 높이고 Write Amplification을 줄이지만, OS(Windows, Linux, macOS)와 SSD가 모두 지원해야 한다.

SSD 인터페이스와 예비 영역의 역할

SSD는 실제 저장 매체인 NAND Flash 다이, ARM/RISC-V 프로세서와 전용 로직으로 구성된 컨트롤러, FTL 매핑 테이블과 쓰기 버퍼를 위한 DRAM 캐시, SATA·NVMe·PCIe 인터페이스로 구성된다.

NVMe(Non-Volatile Memory Express)는 PCIe 기반 고속 인터페이스다. 16 GT/s - 32 GT/s 속도를 사용하고 64K 큐와 큐당 64K 명령을 지원한다. SATA 대비 지연을 50% 이상 낮추며, PCIe 4.0 x4에서는 7000 MB/s 이상의 대역폭을 제공한다.

Over-Provisioning은 표시 용량보다 많은 NAND를 예비 영역으로 두는 방식이다. 제품에 따라 7-28% 비율을 사용하며, Wear Leveling을 위한 공간을 확보하고 가비지 컬렉션 효율을 높여 지속 쓰기 성능 유지에 기여한다.

수명과 신뢰성 문제를 다루는 기법

Flash는 TLC·QLC에서 1,000-3,000 P/E 사이클로 제한되는 수명을 가진다. 반복 읽기로 인접 셀 데이터가 손상되는 읽기 디스터브, 장기 방치에 따른 전하 누설과 데이터 손실 위험, 여유 블록 부족 시 성능이 급격히 떨어지는 Write Cliff도 관리 대상이다.

이를 위해 LDPC 코드로 비트 오류를 정정하고, 데이터를 주기적으로 다시 기록하는 리프레시를 수행한다. TLC·QLC 블록을 일시적으로 SLC 모드로 사용하는 SLC 캐싱과, 사용률에 맞춰 OP를 조정하는 동적 Over-provisioning도 활용된다.

더 높은 집적도와 스토리지 내부 처리의 방향

PLC(Penta-Level Cell)는 셀당 5비트와 32가지 전압 레벨을 저장한다. 신뢰성과 성능 과제가 남아 연구 단계에 있으며, 비용을 추가로 낮출 잠재력이 있는 반면 ECC 복잡도는 급격히 증가한다.

Computational Storage는 SSD 내부에서 데이터를 처리하는 방식이다. 데이터베이스 쿼리, 압축, 암호화 작업을 스토리지로 오프로드해 호스트 CPU 부하를 경감하며, SNIA Computational Storage 워킹 그룹이 관련 표준을 다룬다.

QLC 이후에는 호스트가 블록 할당을 직접 제어하는 ZNS(Zoned Namespace) SSD, 객체 스토리지에 최적화한 Key-Value SSD, 머신러닝으로 워크로드를 예측하고 최적화하는 AI 기반 FTL이 이어진다. Flash는 다중 레벨 저장과 3D 적층을 통해 TB급 용량을 구현했으며, 쓰기 수명과 비대칭 성능의 제약은 FTL과 ECC로 계속 다뤄지고 있다.

Flash 메모리NANDNORSSDNVMe운영체제