NAND page 주소가 독립적으로 보여도 program 순서를 지켜야 하는 이유
NAND에서는 서로 다른 page 주소가 독립적인 물리 저장 영역처럼 보인다. MLC의 lower·upper page는 같은 cell의 여러 bit를 나누어 보는 경우가 있다. Paired Page Programming의 순서를 지켜야 하는 이유는 단순한 command 취향이 아니라 공유 threshold와 이웃 간 간섭에 있다.
2bit cell은 최종 네 threshold state 중 하나로 정해진다. 두 page를 program하는 단계 중 첫 단계는 임시 state를 만들고 두 번째가 최종 state로 옮길 수 있다. 중간 data는 이미 host에서 기록했다고 보이더라도 cell의 최종 threshold 설정과 독립적이지 않다. 구체적 bit-to-state와 page 순서는 제품마다 다르므로 실제 datasheet의 program 규칙이 기준이다.
Errors in Flash-Memory-Based Solid-State Drives 2.4절의 그림 10과 3.3절은 특정 planar MLC의 two-step programming을 설명한다. 앞 wordline의 LSB를 쓴 뒤 인접 wordline의 LSB를 쓰고 앞 wordline의 MSB를 완성하는 interleave가 등장한다. 이 예를 최신 모든 TLC·QLC의 보편적 순서로 말해서는 안 된다.
이웃 변화 뒤에 마무리할 기회를 남기기
program된 이웃 cell의 threshold가 크게 올라가면 capacitive coupling으로 victim의 threshold도 움직일 수 있다. 가상 coupling 계수 0.05, 이웃의 변화 3V라면 victim에 0.15V의 변화가 나타나는 단순 model이다. 실제 array의 multiple neighbor·coupling 분포와 program 회로를 생략한 계산이다.
victim을 먼저 최종 2.0V로 완성한 뒤 이웃을 program하면 이 model에서는 2.15V로 밀릴 수 있다. 반면 victim을 중간 상태에 두고 이웃의 주요 변화 뒤 최종 program을 계획하면 그 영향을 반영한 마무리 기회를 남길 수 있다. 이미 overshoot한 셀을 program으로 낮춘다는 뜻은 아니다. 첫 단계가 최종 state를 넘지 않도록 계획하고 남은 상승 구간에서 verify를 진행하는 관점이다.
실제 two-step 순서는 이웃의 모든 간섭을 없애지 않는다. 마지막 단계 이후의 이웃 program도 영향을 줄 수 있다. 어느 단계의 큰 변화를 앞에 두고 어느 정도의 간섭을 남기는지가 algorithm의 정량 tradeoff다.
주소의 순서와 physical 순서는 다를 수 있다
logical page 0, 1, 2를 그 순서대로 쓰는 것만으로 vendor가 요구하는 physical paired-page 순서를 지켰다고 단정할 수 없다. controller가 page를 physical wordline과 bit page에 어떻게 배치하는지 알아야 한다. 관리 표에는 paired 관계, program 가능 순서와 다시 program할 수 있는 조건이 필요하다.
program 직후 read test가 통과한 page도 이후 paired page를 쓰면 새 stress를 받을 수 있다. 그래서 검증은 첫 완료 직후뿐 아니라 관련 upper page와 이웃 wordline을 program한 뒤의 상태를 포함해야 한다. 중간 상태에서의 성공과 모든 후속 단계 뒤의 성공은 같은 검사 범위가 아니다.
buffering과 오류 보호의 비용
두 번째 단계는 첫 단계의 data를 사용해 최종 state를 정한다. 그 중간 data를 잘못 읽으면 뒤의 program이 틀린 state로 확정될 수 있다. controller 또는 chip 내부가 중간 정보를 보존·검증하는 buffer 정책도 중요하다. wordline 순서를 바꾸어 간섭을 낮춘 이득에는 buffer 사용과 schedule 복잡도가 따른다.
또 program 중 power가 사라지면 이미 시작된 cell 상태가 어떻게 남는지 별도 보호가 필요하다. paired 관계를 안다는 사실만으로 원자적 write가 자동으로 생기는 것은 아니다. 데이터 복사·journal·전원 보호를 어느 경계에 적용할지는 제품의 partial program 보장과 system 목표에 달려 있다.
Paired Page Programming을 판단할 때는 page 주소 목록 뒤에 같은 cell의 임시·최종 state와 이웃의 program 순서를 그려 보자. 독립 주소가 공유하는 물리 상태가 드러난다. 지정된 순서는 그 관계를 관리하는 조건이며, 읽기 성공한 기록도 후속 program과 결합한 최종 검증이 있어야 의미가 완성된다.