낸드 읽기 교란과 프로그램 교란이 생기는 이유

낸드 읽기 교란과 프로그램 교란이 생기는 이유

같은 복도를 매일 수없이 오가다 보면, 밟고 다니는 바닥만 닳는 게 아닙니다. 그 진동과 발길이 복도에 면한 옆방에도 조금씩 영향을 남기죠.

낸드 플래시에서도 비슷한 일이 벌어집니다. 특정 셀을 읽거나 쓰려고 전압을 거는 동안, 정작 건드리지 않은 이웃 셀의 상태가 아주 조금씩 흔들립니다. 이렇게 읽기 동작이 주변 셀을 흔드는 현상이 낸드 읽기 교란이고, 쓰기 동작이 흔드는 것이 프로그램 교란입니다.

둘 다 내가 건드리지 않은 셀이 피해를 본다는 점에서 닮았지만, 원인과 생기는 자리가 다릅니다. 오늘은 두 교란이 왜, 어떻게 생기는지 나란히 살펴보겠습니다.

낸드 읽기 교란과 프로그램 교란이란

낸드는 여러 셀을 하나의 줄에 직렬로 엮어 놓은 구조입니다. 한 셀을 읽거나 쓰려면 같은 줄에 묶인 다른 셀에도 전압을 걸어 길을 열어 줘야 하죠.

이때 목표가 아닌 셀에 걸린 전압이 그 셀의 문턱 전압을 미세하게 밀어 버립니다. 읽기 과정에서 생기는 이 흔들림이 낸드 읽기 교란입니다.

프로그램 교란은 한 셀에 데이터를 쓰려고 높은 전압을 걸 때, 쓰지 말아야 할 이웃 셀이 덩달아 전하를 얻는 현상입니다. 읽기 교란이 수많은 읽기 횟수가 쌓여 나타난다면, 프로그램 교란은 강한 쓰기 전압 한 번에도 생길 수 있다는 점이 다르죠.

왜 교란이 생길 수밖에 없는가

교란은 불량이라기보다 낸드 구조가 치르는 대가에 가깝습니다. 셀을 직렬로 길게 엮어 면적을 아낀 설계가 그 뿌리죠.

직렬로 묶인 줄에서 가운데 한 셀만 읽으려면, 나머지 셀은 데이터와 상관없이 무조건 전류를 통과시켜야 합니다. 그래서 선택되지 않은 셀에는 저장된 값과 관계없이 켜지도록 높은 패스 전압(Pass Voltage)을 걸죠.

문제는 이 전압이 반복될수록 선택되지 않은 셀에 미약한 전자 주입을 일으킨다는 점입니다. 바로 여기서 낸드 읽기 교란이 싹틉니다. 면적을 아끼려고 셀을 공유하는 한, 교란을 완전히 피하기는 어려운 셈입니다.

읽기 교란이 일어나는 원리

한 페이지를 읽을 때, 선택한 셀에는 값을 판정할 읽기 전압을 걸고, 같은 줄의 나머지 셀에는 패스 전압을 겁니다. 패스 전압은 어떤 값이 저장돼 있든 셀을 켜 전류가 흐르게 하는 역할이죠.

그런데 이 패스 전압은 읽기에 쓰이는 전압치고는 꽤 높습니다. 한두 번이면 표가 안 나지만, 같은 줄을 수만 번 읽으면 선택되지 않은 셀에 전자가 조금씩 쌓여 문턱 전압이 서서히 올라갑니다.

그 결과 원래 지워진 상태였던 셀이 어느 순간 다른 값으로 잘못 읽힐 수 있습니다. 읽기는 전하를 꺼내 보기만 하니 셀을 전혀 건드리지 않는다고 생각하기 쉽지만, 읽기 또한 반복되면 데이터를 조금씩 갉아먹는 동작인 셈이죠.

프로그램 교란이 일어나는 원리

쓰기는 읽기보다 훨씬 높은 프로그램 전압(Program Voltage)을 선택한 워드라인에 겁니다. 이 전압은 터널 산화막을 넘어 전자를 밀어 넣을 만큼 강하죠.

문제는 같은 워드라인에 걸린 전압이, 쓰려는 셀뿐 아니라 그 줄의 다른 셀에도 전해진다는 점입니다. 아직 지워진 상태로 두어야 할 셀까지 원치 않는 전하를 얻으면 값이 틀어집니다.

이를 막으려고 쓰지 않을 줄의 채널 전위를 미리 끌어올리는 셀프 부스팅(Self-boosting)을 씁니다. 채널과 게이트의 전압 차를 줄여 전자가 넘어오지 못하게 하는 방어막인데, 이 부스팅이 완벽하지 않으면 프로그램 교란이 남습니다. 그래서 쓰기 전압의 크기와 펄스 방식을 교란과 쓰기 성공 사이에서 세심하게 저울질합니다.

두 교란의 특징 비교

원인과 대응이 다른 만큼, 두 교란을 한눈에 갈라 두면 이해가 쉽습니다. 표로 정리해 보겠습니다.

구분 읽기 교란 프로그램 교란
원인 전압 패스 전압(읽기 시) 프로그램 전압(쓰기 시)
누적 방식 많은 읽기 횟수로 서서히 강한 쓰기 전압에 비교적 빨리
피해 셀 같은 줄의 비선택 셀 같은 워드라인의 비대상 셀
주 대응 리드 카운트 관리, 리프레시 셀프 부스팅, 전압 조절

핵심 정리

같은 복도를 오가는 발길이 옆방까지 흔들듯, 낸드 읽기 교란과 프로그램 교란은 내가 건드리지 않은 이웃 셀이 전압의 여파로 흔들리는 현상입니다. 셀을 직렬로 공유해 면적을 아낀 구조가 치르는 대가죠.

읽기 교란은 수많은 읽기에 쓰인 패스 전압이 쌓여 서서히 나타나고, 프로그램 교란은 강한 쓰기 전압이 이웃으로 새어 비교적 빠르게 생깁니다. 완전히 없앨 수 없기에, 리드 카운트 관리와 리프레시, 셀프 부스팅과 오류 정정으로 감당할 수준까지 눌러 두는 것이 낸드 운용의 핵심입니다.

면접 대비 질문

면접 대비 질문

Q. 낸드의 읽기 교란과 프로그램 교란은 각각 왜 생기며, 어떻게 완화하나요?

[답변 포인트] 먼저 낸드가 셀을 직렬로 엮어, 한 셀을 읽거나 쓸 때 같은 줄의 다른 셀에도 전압을 걸어야 하는 구조라는 점을 짚으면 됩니다. 읽기 교란은 선택되지 않은 셀에 거는 패스 전압이 읽기를 반복할수록 미약한 전자 주입을 일으켜 문턱 전압을 올리는 현상이고, 프로그램 교란은 선택한 워드라인의 높은 프로그램 전압이 쓰지 말아야 할 이웃 셀에까지 전해져 전하를 넣는 현상이라고 구분해 설명합니다. 완화책으로 읽기 교란은 리드 카운트 관리와 리프레시, 오류 정정을 들고, 프로그램 교란은 비대상 줄의 채널을 끌어올리는 셀프 부스팅과 전압·펄스 조절을 들면 좋습니다. 두 교란 모두 구조상 완전히 없애기 어려워 억제가 목표라는 시각을 덧붙이면 완성도가 높아집니다.