낸드 ISPP 프로그램, 조금씩 써 올려 검증하는 법

낸드 ISPP 프로그램, 조금씩 써 올려 검증하는 법

눈금이 그어진 수조에 정확한 높이까지 물을 채워야 한다고 해 보죠. 한 번에 콸콸 부으면 거의 틀림없이 목표 눈금을 지나쳐 넘쳐 버립니다.

그래서 조심스러운 사람은 조금 붓고 눈금을 보고, 또 조금 붓고 다시 확인합니다. 낸드 ISPP 프로그램이 셀에 값을 써 넣는 방식이 바로 이 조심스러운 물 붓기와 똑 닮았습니다. 전하를 조금씩 밀어 넣고 매번 확인하며 목표에 다가가죠.

오늘은 낸드가 왜 한 번에 쓰지 않고 조금씩 올리며 검증하는지, 그 원리를 단계별로 풀어 보겠습니다.

수조에 물을 한 번에 콸콸 붓지 않는 이유

낸드 플래시는 셀 안의 전하 저장층에 전자를 밀어 넣어 값을 기록합니다. 전자가 쌓이면 트랜지스터를 켜는 데 필요한 문턱 전압(Vth, Threshold Voltage)이 올라가죠.

이 문턱 전압이 어느 높이에 있느냐로 저장된 값이 정해집니다. 수조의 물 높이로 값을 표시하는 것과 같은 셈입니다.

전자를 밀어 넣는 힘은 FN 터널링(Fowler-Nordheim Tunneling)입니다. 워드라인에 높은 전압을 걸면 얇은 절연막을 뚫고 전자가 저장층으로 넘어가는 현상이죠.

낸드 ISPP 프로그램이 조금씩 올리는 까닭

문제는 한 번에 센 펄스를 주면 문턱 전압이 목표를 훌쩍 지나친다는 점입니다. 더 큰 문제는, 프로그램은 전하를 더하기만 할 뿐 조금 빼서 되돌릴 수가 없다는 것이죠.

지나치게 써 버린 셀은 그 블록 전체를 지우기 전에는 고칠 수 없습니다. 수조로 치면 물을 덜어낼 수 없어, 넘치면 수조를 통째로 비우고 다시 시작해야 하는 셈입니다.

게다가 셀마다 전자가 들어가는 속도가 조금씩 다릅니다. 그래서 낸드 ISPP 프로그램은 한 번에 끝내는 대신, 작은 펄스를 거듭 주며 목표에 살살 다가갑니다. 특히 한 셀에 여러 비트를 담는 요즘 낸드는 값 사이 간격이 좁아, 분포를 촘촘히 모으는 이 방식이 더욱 중요해졌죠.

프로그램과 검증을 번갈아 도는 원리

ISPP는 이름 그대로 프로그램 전압을 한 계단씩 높여 가며 반복하는 방식입니다. 한 번 올리고 확인하는 과정을 묶어 보면 흐름이 분명해집니다.

ISPP 프로그램과 검증 흐름

  1. 프로그램 펄스: 선택된 워드라인에 프로그램 전압을 걸어 전자를 조금 밀어 넣습니다.
  2. 검증 읽기: 목표 문턱 전압에 도달했는지 셀을 바로 읽어 확인합니다.
  3. 통과 셀 금지: 목표에 닿은 셀은 비트라인 전압을 걸어 더 써지지 않도록 막습니다.
  4. 전압 올리기: 아직 못 미친 셀을 위해 프로그램 전압을 정해진 폭만큼 높입니다.
  5. 반복: 모든 셀이 통과하거나 최대 횟수에 이를 때까지 1~4를 되풀이합니다.

여기서 핵심은 매 계단마다 끼어드는 검증 읽기입니다. 목표에 닿은 셀을 바로 멈춰 세우기 때문에, 각 셀이 서로 다른 속도로 차더라도 비슷한 높이에서 가지런히 멈추게 되죠.

이미 통과한 셀을 더 써지지 않게 막는 장치도 중요합니다. 넘치지 않도록 수도꼭지를 잠그듯, 통과한 셀의 채널 전압을 띄워 전자가 더 들어가지 못하게 합니다.

스텝을 작게 할수록 생기는 맞교환

그렇다면 계단을 아주 잘게 쪼개면 될까요. 스텝을 작게 할수록 문턱 전압 분포는 촘촘해지고 지나침도 줄어듭니다.

대신 그만큼 펄스와 검증을 더 많이 반복해야 하니 프로그램 속도가 느려집니다. 반대로 스텝을 키우면 빨라지지만 분포가 넓게 퍼지고 지나칠 위험이 커지죠.

한 번의 펄스로 문턱 전압을 목표에 정확히 맞춘다고 생각하기 쉽지만, 실제로는 이 되풀이가 분포를 좁혀 줍니다. 분포가 촘촘할수록 값 사이 여유가 넓어져 읽기 오류가 줄기 때문에, 스텝 크기는 속도와 신뢰성 사이의 저울질로 정해집니다.

프로그램 펄스 스텝 크기에 따른 영향 비교

프로그램 전압을 얼마씩 올리느냐에 따라 결과가 갈립니다. 아래 표로 두 방향을 견주어 보죠.

구분 작은 스텝 큰 스텝
문턱 전압 분포 촘촘하고 좁음 넓게 퍼짐
프로그램 속도 느림 빠름
반복 횟수 많음 적음
지나침 위험 작음 큼
유리한 쪽 다중 비트 셀의 신뢰성 쓰기 속도

핵심 정리

눈금을 지나치지 않으려 물을 조금 붓고 확인하기를 되풀이하듯, 낸드 ISPP 프로그램은 전하를 작은 펄스로 조금씩 밀어 넣고 매번 검증하며 목표 문턱 전압에 다가갑니다.

전하를 되돌릴 수 없고 셀마다 속도가 다르기에, 통과한 셀을 멈춰 세우며 분포를 촘촘히 모으는 것이 핵심입니다. 스텝을 작게 하면 분포는 좁아지지만 느려지는 맞교환이 있어, 속도와 신뢰성을 저울질해 설계하죠.

면접 대비 질문

면접 대비 질문

Q. 낸드 플래시가 ISPP처럼 프로그램과 검증을 반복하는 이유를 설명해 보세요.

[답변 포인트] 먼저 낸드 프로그램은 전하 저장층에 전자를 밀어 넣어 문턱 전압을 올리는 동작이고, 전하를 더하기만 할 뿐 조금 빼서 되돌릴 수 없다는 점을 짚으면 됩니다. 그래서 한 번에 센 펄스를 주면 목표를 지나치기 쉬운데, 지나친 셀은 블록 전체를 지우기 전에는 고칠 수 없다는 점이 핵심입니다. 셀마다 프로그램 속도가 다르다는 점도 더하면 좋습니다. 이를 피하려고 작은 프로그램 펄스를 주고 검증 읽기로 목표 도달 여부를 확인한 뒤, 통과한 셀은 비트라인으로 금지하고 못 미친 셀만 전압을 한 계단 올려 다시 쓰는 과정을 반복한다고 설명하면 됩니다. 이렇게 하면 문턱 전압 분포가 촘촘해져 특히 다중 비트 셀에서 읽기 여유가 커지고, 스텝 크기는 분포 폭과 쓰기 속도 사이의 맞교환이라는 점까지 덧붙이면 완성도가 높아집니다.