NAND Flash Memory: STRAW 기법

YUSUN JUN·2026년 5월 15일

이 포스팅에서는 학습공동체 발표용으로, NAND Flash Memory에 대해 알아보고, 제가 현재 관심 있는 분야의 랩실에 대한 논문을 두 가지 분석해보겠습니다. 학부생이기 때문에 제가 이해할 수 있는 선에서만 정리했습니다.

NAND Flash Memory란?

1. 비휘발성 메모리

휘발성 메모리는 반도체에 저장된 메모리에서 전원이 꺼지면 데이터가 바로 날아가는 메모리를 뜻한다. 저장할 데이터가 잠시 머물다가 이동하는 캐시 기능으로 주로 사용되고, 대표적으로는 DRAM이 있다. 반면, 비휘발성 메모리는 전원이 꺼져도 데이터가 저장된다. 캐시메모리에서 받은 데이터를 반영구적으로 저장할 수 있는 디바이스로 사용되며, 대표적으로는 낸드플래시가 있다.

2. NAND Flash의 구조

모스펫구조 + Floating gate를 추가한 구조이다.
Control Gate에 전압을 인가해서 저항을 Floating Gate에 올려 보내, Floating Gate 내 포획된 전자량에 따라 문턱전압(Vth) 값을 조절한다.

3. NAND Flash의 계층 구조

  1. SSD
  2. Channel / Chip / Die / Plane
  3. Block
  4. Page
  5. Wordline, WL

(잠시, 기본 개념!)
Page: 데이터를 읽고 쓰는 기본 단위
Block: 여러 Page의 묶음이며 삭제의 기본 단위
Wordline, WL: 같은 제어선에 연결된 메모리 셀들의 묶음

4. NAND Flash의 종류

한 cell에 몇 bit를 저장하느냐에 따라 나뉜다.
SLC: 1 bit/cell
MLC: 2 bit/cell
TLC: 3 bit/cell
QLC: 4 bit/cell
저장 밀도는 QLC가 높지만, 신뢰성은 더 취약하다.

5. SSD와 NAND Flash의 관계

SSD는 NAND Flash Memory 칩들로 구성된다.

6. SSD 내부 작동 과정

  1. 논리 주소 LBA를 실제 NAND 물리 주소로 변환
  2. 빈 page 관리
  3. garbage collection
  4. wear leveling
  5. bad block 관리
  6. ECC를 통한 오류 정정
  7. read disturb 관리
  8. retention error 관리

이런 일을 담당하는 SSD 내부 계층이 FTL(Flash Translation Layer)이다.


문제 상황: Read Disturbance란 무엇인가?

STRAW: A Stress-Aware WL-Based Read Reclaim Technique for High-Density NAND Flash-Based SSDs (Myoungjun Chun, Jaeyong Lee, Inhyuk Choi, Jisung Park, Myungsuk Kim, and Jihong Kim, 2025) 논문 분석

NAND Flash에서는 데이터를 읽을 때, 목표 셀만 조용히 읽을 수 있는 것이 아니다. 특정 Page 또는 Wordline을 읽기 위해 주변 Wordline에도 전압이 걸린다.
이때 반복적으로 읽기를 수행하면, 읽기 대상이 아닌 주변 셀들의 전하 상태가 조금씩 변할 수 있습니다. 이것을 read disturbance라고 한다. 이는 데이터 오류를 발생시킬 수 있다. (Vth분포가 변하면서 bit error가 증가)

기존 해결방법: Read Reclaim, RR

기존 SSD에서는 read disturbance를 막기 위해 Read Reclaim, RR이라는 작업을 한다.

RR의 작동 방식

  1. 어떤 Block의 read count, RC를 센다.
  2. RC가 임계값 RCMAX를 넘으면, 해당 Block 안의 valid page를 다른 free page로 복사한다.
  3. 기존 Block은 나중에 erase 대상이 된다.
    => "너무 많이 읽힌 블록은 위험하니 데이터를 다른 곳으로 옮기자"는 방식.

문제점

위 과정이 Block 단위이기 때문에, Block 안에 있는 모든 데이터가 위험하지 않은데도, 기준을 넘으면 Block 안의 valid page들을 대량으로 복사해야 한다. 이 복사는 SSD 내부 write를 증가시킨다.

그 결과, 아래와 같은 문제가 발생한다:

  • 성능 저하
  • write amplification 증가
  • NAND 수명 감소
  • garbage collection 부담 증가

기존 2D NAND에서는 하나의 Page를 읽을 때 같은 Block 안의 여러 Wordline들이 비교적 비슷하게 영향을 받는다고 볼 수 있으나,
최신 고밀도 3D NAND에서는 read disturbance가 균일하지 않다.
이유는 아래 두 가지로 볼 수 있다.
1. 인접 Wordline이 훨씬 더 큰 영향을 받음
고밀도 3D NAND에서 특정 Wordline을 읽을 때, 바로 옆 Wordline에는 더 높은 pass voltage가 걸리기 때문에 인접 WL에 걸리는 전압이 비인접 WL에 걸리는 전압보다 약 0.4V 높고, 이는 지수적으로 증가해 실제 disturbance 영향은 크게 달라질 수 있다.
2. Wordline마다 공정 편차 때문에 버틸 수 있는 정도가 다름
같은 Block 안에서도 Wordline마다 read disturbance를 견디는 능력이 다르다.

이 논문에서의 제안: STRAW(STRESS-Aware WL-Based Read Reclaim)

핵심 아이디어

Block 전체 read count만 보지 말고, 각 Wordline이 실제로 얼마나 disturbance stress를 받았는지 추정해서, 위험한 Wordline만 read reclaim한다.
=> 관리 단위를 Block에서 WL로 더 세밀하게 낮춥니다.

기존 방식:

Block 단위로 read count 관리
Block 전체 valid page 복사

STRAW:

WL 단위로 stress 추정
위험한 WL의 valid page만 복사

사용된 알고리즘: Space-Saving 알고리즘, SS

underestimate하지 않는 성질로 적은 counter로 read count를 안전하게 추정한다.


앞선 논문과 같은 문제점으로 인해 해당 논문에서 고안한 방법을 추가적으로 설명하겠다.

STRAW: Stress-Aware WL-Based Read Disturbance Management for High-Density NAND Flash Memory (Myoungjun Chun, Jaeyong Lee, Inhyuk Choi, Jisung Park, Myungsuk Kim and Jihong Kim, 2026)

SR2

WR2 방식은 이미 쌓인 stress를 보고 필요한 WL만 reclaim하는 방법이라면, 이는 "read operation 자체가 valid WL에 주는 stress를 줄이는 방법"이다.

  1. read disturbance stress는 Vpass가 높을수록 커진다.
  2. 따라서 valid WL에 걸리는 Vpass 를 낮추면 read disturbance가 줄어든다.
  3. 하지만 무작정 Vpass를 낮추면 target page의 read error가 증가할 수 있다.
  4. 그래서 invalid WL에는 오히려 높은 Vpass를 걸어 target page read margin을 확보한다.
  5. 확보한 margin을 이용해 valid non-adjacent WL의 Vpass를 낮춘다.

=> valid/invalid 상태에 따라 WL별로 다른 Vpass를 적용한다.

WR2 & SR2

WR2가 어떤 WL을 reclaim하면, 기존 위치의 WL은 invalid가 된다.
그러면 이후 SR2가 활용할 수 있는 invalid WL이 늘어난다.
invalid WL이 많아질수록 SR2는 valid WL의 Vpass 를 더 안전하게 낮출 수 있다.

  1. WR2는 위험한 WL을 골라 reclaim한다.
  2. reclaim된 WL은 invalid가 된다.
  3. invalid WL이 많아지면 SR2의 적용 가능성이 커진다.
  4. SR2는 valid WL의 disturbance 증가 속도를 낮춘다.
  5. 그러면 다음 RR이 더 늦게 발생한다.

STRAWFTL

STRAW를 FTL에 구현한 것이다. page-level FTL에 read disturbance 관리 기능을 추가한 형태로, page-level FTL에 아래 세 가지 자료구조를 추가한다.
1. RPT: Read-reclaim Parameter Table - WR2를 위한 table
2. REC: Resource-Efficient Counters - WL별 read count를 추적하는 counter 구조
3. PVT: Pass-through Voltage Table - SR2를 위한 table

주요기법

valid WL에 쌓이는 stress 자체를 줄인다.

알고리즘

Space-Saving counter + voltage scaling policy

앞선 논문과의 비교점

앞선 논문에서처럼 위험한 WL만 reclaim하는 것에 그치지 않고,
read operation 자체가 valid WL에 주는 stress를 줄이는 방법을 고안했다.
즉, disturbance가 쌓이는 속도 자체를 낮췄다.
또한 SR2매커니즘을 추가해 기존 WL-level RR만으로는 해결하기 어려운 문제를 다루었다.


기사, 논문 출처

  • SK하이닉스 반도체 특강 (https://news.skhynix.co.kr/principle-of-nand-flash-memory/)
  • STRAW: A Stress-Aware WL-Based Read Reclaim Technique for High-Density NAND Flash-Based SSDs (Myoungjun Chun, Jaeyong Lee, Inhyuk Choi, Jisung Park, Myungsuk Kim, and Jihong Kim, 2025)
  • STRAW: Stress-Aware WL-Based Read Disturbance Management for High-Density NAND Flash Memory (Myoungjun Chun, Jaeyong Lee, Inhyuk Choi, Jisung Park, Myungsuk Kim and Jihong Kim, 2026)

0개의 댓글