---
title: "같은 NAND wordline에 쓰는 동안 다른 셀은 어떻게 그대로 둘까"
author: "브레이브브라우저쓰자"
published_at: "2026-10-10T14:17:04.253Z"
updated_at: "2026-10-05T23:58:34.936Z"
tags: ["program inhibit"]
canonical_url: "https://ariser.io/@writer_a9817d5a8de0/%EA%B0%99%EC%9D%80-nand-wordline%EC%97%90-%EC%93%B0%EB%8A%94-%EB%8F%99%EC%95%88-%EB%8B%A4%EB%A5%B8-%EC%85%80%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C-%EA%B7%B8%EB%8C%80%EB%A1%9C-%EB%91%98%EA%B9%8C"
ai_assisted: true
---

# 같은 NAND wordline에 쓰는 동안 다른 셀은 어떻게 그대로 둘까

이 글은 AI가 활용됐습니다.

[원문](https://ariser.io/@writer_a9817d5a8de0/%EA%B0%99%EC%9D%80-nand-wordline%EC%97%90-%EC%93%B0%EB%8A%94-%EB%8F%99%EC%95%88-%EB%8B%A4%EB%A5%B8-%EC%85%80%EC%9D%80-%EC%96%B4%EB%96%BB%EA%B2%8C-%EA%B7%B8%EB%8C%80%EB%A1%9C-%EB%91%98%EA%B9%8C)

같은 NAND wordline에 연결된 셀들은 높은 program voltage를 함께 본다. 그런데 어떤 bit는 새 state로 쓰고 다른 bit는 그대로 둬야 한다. wordline을 셀마다 끊어 주지 않고 어떻게 선택할까? Program Inhibit는 gate voltage가 같아도 channel 전위를 다르게 만들어 programming에 필요한 전계를 구별한다.

charge 저장형 NAND의 programming에는 저장층으로 charge를 이동시키는 전계가 필요하다. gate가 높다는 조건만으로 모든 셀이 같은 전류를 받는 것은 아니다. channel 전위가 함께 올라가면 gate에서 channel로 걸리는 차이가 줄어든다. 이 차이를 이용해 selected string은 programming을 진행하고 inhibited string은 억제한다.

[SanDisk가 공개한 US7295478B2의 self-boosting 설명](https://patents.google.com/patent/US7295478B2/en)은 inhibited string의 channel을 격리하고 주변 wordline의 capacitive coupling으로 channel 전위를 올려 tunnel oxide의 voltage를 줄이는 구조를 설명한다. 특정 공개 구현의 원리이며 최신 모든 NAND가 같은 bias sequence를 사용한다는 뜻은 아니다. 목표에 도달한 셀을 다음 pulse에서 inhibit하는 역할은 [NAND 신뢰성 원문 2.4절](https://arxiv.org/html/1711.11427)에서도 확인할 수 있다.

## 같은 gate 전압에서 달라진 차이

단순 가상 모델에서 selected gate가 18V이고 program string의 channel이 0V라면 gate-channel 차이는 18V다. inhibited string이 capacitive boosting으로 8V에 올라가면 차이는 10V다. gate에 같은 18V를 넣었어도 두 경로의 차이는 8V다.

이 숫자를 oxide 두께로 나누어 실제 tunneling 전류를 계산하면 안 된다. floating gate 또는 charge-trap stack의 voltage 분배, coupling ratio와 내부 node가 생략됐다. 여기서 계산한 것은 channel을 올리는 방향이 programming 전계를 낮추는 방향이라는 점뿐이다.

| 가상 string | gate | channel | 단순 gate-channel 차이 |
|---|---:|---:|---:|
| program 허용 | 18V | 0V | 18V |
| inhibit·boosted | 18V | 8V | 10V |

실제 tunneling은 전계에 강하게 의존하므로 작은 내부 조건 변화가 원하는 셀과 억제 셀의 차이에 영향을 줄 수 있다. 그래서 inhibit를 단순한 논리 enable bit로만 모델링하면 disturb 경로를 놓친다.

## floating channel을 만들고 유지해야 한다

channel이 전압원에 강하게 묶여 있으면 주변 wordline이 올라가도 전위가 원하는 만큼 boost되지 않을 수 있다. 먼저 적절한 전하 상태를 만들고 select device 등으로 격리한 뒤 coupling을 활용해야 한다. 회로가 channel을 끊는 역할과 wordline이 channel을 올리는 역할이 함께 있다.

격리된 channel에 leakage가 생기면 boosted 전위를 유지하는 데 불리하다. 이미 program된 셀의 state와 channel 구간의 연결도 coupling을 바꿀 수 있다. 공개 patent는 wordline 위치와 이전 상태에 따라 여러 boosting 방식을 나누는 이유를 설명한다. 한 전압 조합을 모든 string에 복사하는 것이 최적이라고 말할 수 없다.

## 멈춘 셀을 다시 쓰지 않는 것도 같은 역할이다

여러 셀을 함께 program할 때 빠른 셀이 먼저 verify를 통과한다. 이후 pulse에서는 그 셀을 inhibit하고 아직 목표에 도달하지 않은 셀을 진행시킨다. inhibit가 부족하면 완료된 셀에도 charge가 더 들어가 threshold가 지나치게 높아질 수 있다. 초기 bit 선택만이 아니라 반복 loop의 완료 상태를 유지하는 기능이다.

반대로 inhibit를 너무 넓게 적용해 아직 부족한 셀이 programming을 받지 못하면 완료되지 않는다. page buffer의 목표 bit·verify 결과와 string bias가 일치해야 한다. algorithm의 mask와 실제 아날로그 전위가 이어지는 지점이므로, 논리 상태 검증만으로 끝낼 수 없다.

Program Inhibit의 질문은 “고전압을 받은 셀이 왜 모두 써지지 않는가”다. 답은 동일 gate 아래에서도 channel 경계 조건을 바꾸어 필요한 전계를 구분한다는 데 있다. 공유 wordline의 효율을 얻는 대신 channel boosting·leakage·state dependence를 관리해야 한다. 누가 pulse를 보았는지보다 누가 충분한 programming 전계를 경험했는지 추적하면 선택적 저장의 원리가 드러난다.

