KR101564399B1 - 비휘발성 메모리에서의 판독 디스터브 완화 - Google Patents

비휘발성 메모리에서의 판독 디스터브 완화 Download PDF

Info

Publication number
KR101564399B1
KR101564399B1 KR1020117002375A KR20117002375A KR101564399B1 KR 101564399 B1 KR101564399 B1 KR 101564399B1 KR 1020117002375 A KR1020117002375 A KR 1020117002375A KR 20117002375 A KR20117002375 A KR 20117002375A KR 101564399 B1 KR101564399 B1 KR 101564399B1
Authority
KR
South Korea
Prior art keywords
read
word line
data
storage element
storage elements
Prior art date
Application number
KR1020117002375A
Other languages
English (en)
Other versions
KR20110038083A (ko
Inventor
니마 모크레시
크라우스 슈에그라프
Original Assignee
샌디스크 테크놀로지스, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 샌디스크 테크놀로지스, 인코포레이티드 filed Critical 샌디스크 테크놀로지스, 인코포레이티드
Publication of KR20110038083A publication Critical patent/KR20110038083A/ko
Application granted granted Critical
Publication of KR101564399B1 publication Critical patent/KR101564399B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

비휘발성 저장 소자에서의 판독 디스터브가 감소된다. 일 양상에서, 선택된 워드라인을 판독하기 위한 판독 커맨드가 호스트로부터 수신되면, 판독에 대해 선택되지 않은 워드라인이 무작위로 선택되며, 그 저장 요소들을 감지하여, 선택된 워드라인을 판독하기 위한 최적화된 판독 비교 레벨들을 결정한다. 또는, 선택된 워드라인의 저장 요소들을 판독함에 있어서 얻어지는 에러 정정 메트릭에 기초하여 전체 블록에 대해 리프레시 동작이 표시될 수 있다. 이것은, 선택된 워드라인이 판독을 위해 반복적으로 선택되어, 다른 워드라인들을 부가적인 판독 디스터브에 노출시킬 때에 특히 유용하다. 다른 양상에서, 다수의 데이터 상태들이 저장될 때, 감지로부터, 예를 들어 임계 전압 분포로부터 하나의 판독 비교 레벨이 얻어지고, 다른 판독 비교 레벨들이 공식으로부터 얻어진다.

Description

비휘발성 메모리에서의 판독 디스터브 완화{READ DISTURB MITIGATION IN NON-VOLATILE MEMORY}
본 발명은 비휘발성 메모리에 관한 것이다.
반도체 메모리는 다양한 전자 디바이스들에서 점점 더 대중적으로 이용되고 있다. 예를 들어, 비휘발성 반도체 메모리는 셀룰러 전화들, 디지털 카메라들, 개인 휴대 단말기들, 이동 계산 디바이스들, 비 이동 계산 디바이스들 및 기타 디바이스들에서 이용된다. 전기적으로 소거가능하고 프로그램가능한 판독 전용 메모리(Electrical Erasable Programmable Read Only Memory : EEPROM) 및 플래시 메모리가 그 중에서 가장 일반적인 비휘발성 반도체 메모리들이다. 플래시 메모리(또한 EEPROM 타입임)이기 때문에, 전형적인 완전 기능(full-featured)의 EEPROM과 대조적으로, 전체 메모리 어레이 또는 메모리의 일부의 내용이 한 단계로 소거될 수 있다.
전형적인 EEPROM과 플래시 메모리는 모두, 반도체 기판 내의 채널 영역 위에 위치하고 이 채널 영역으로부터 절연되는 플로팅 게이트를 이용한다. 플로팅 게이트는 소스 영역과 드레인 영역 사이에 위치된다. 제어 게이트가 플로팅 게이트 위에 위치되어, 이 플로팅 게이트로부터 절연된다. 이렇게 형성되는 트랜지스터의 임계 전압(VTH)은 플로팅 게이트 상에 유지되는 전하의 양에 의해 제어된다. 즉, 소스와 드레인 사이의 도통을 허용하기 위해 트랜지스터가 턴온되기 전에 제어 게이트에 인가되어야 하는 최소량의 전압은 플로팅 게이트 상의 전하의 레벨에 의해 제어된다.
일부 EEPROM 및 플래시 메모리 디바이스들은 플로팅 게이트를 갖는 바, 이러한 플로팅 게이트는 두 개의 범위의 전하들을 저장하는 데에 이용되며, 이에 따라 메모리 요소는 두 개의 상태들 간에, 예를 들어 소거 상태(erased state)와 프로그램 상태(programmed state) 간에 프로그램/소거될 수 있다. 이러한 플래시 메모리 디바이스는 종종 이진 플래시 메모리 디바이스로서 지칭되는데, 그 이유는 각각의 메모리 요소가 1비트의 데이터를 저장할 수 있기 때문이다.
다중 상태(다중 레벨이라고도 불림) 플래시 메모리 디바이스는 다수의 개별적인 허용된/유효한 프로그램된 임계 전압 범위들을 식별함으로써 구현된다. 각각의 개별적인 임계 전압 범위는 메모리 디바이스에 엔코드된 데이터 비트들의 세트에 대해 미리결정된 값에 해당한다. 예를 들어, 각각의 메모리 요소는, 그 요소가 4개의 개별적인 임계 전압 범위들에 해당하는 4개의 개별적인 전하 대역들중 하나에 배치될 수 있을 때에, 2비트의 데이터를 저장할 수 있다.
전형적으로, 프로그램 동작 동안 제어 게이트에 인가되는 프로그램 전압(VPGM)은 시간에 따라 크기가 증가하는 일련의 펄스들로서 인가된다. 하나의 가능한 시도에서, 펄스들의 크기는 각각의 연속적인 펄스에 대해 소정의(predetermined) 스텝 사이즈(예를 들어, 0.2-0.4V) 만큼 증가된다. VPGM은 플래시 메모리 요소들의 제어 게이트들에 인가될 수 있다. 프로그램 펄스들 간의 기간들 동안, 검증 동작들이 수행된다. 즉, 병렬로 프로그램되는 요소들의 그룹의 각 요소의 프로그래밍 레벨을 연속적인 프로그래밍 펄스들 사이에서 읽음으로써, 그 요소가 프로그램되고 있는 검증 레벨과 같은지, 아니면 더 큰지를 결정한다. 다중 상태 플래시 메모리 요소들의 어레이들에 있어서, 요소의 각 상태에 대해 검증 단계가 수행되어, 그 요소가 자신의 데이터 관련 검증 레벨에 도달하였는 지를 결정한다. 예를 들어, 4개의 상태로 데이터를 저장할 수 있는 다중 상태 메모리 요소는 3개의 비교 포인트들에 대해 검증 동작을 수행할 필요가 있다.
또한, NAND 스트링 내의 NAND 플래시 메모리 디바이스와 같은 EEPROM 또는 플래시 메모리 디바이스를 프로그램할 때, 전형적으로, VPGM이 제어 게이트에 인가되고 비트라인이 접지됨으로써, 셀 또는 메모리 요소, 예를 들어 저장 요소의 채널로부터 전자들이 플로팅 게이트 내에 주입된다. 전자들이 플로팅 게이트에 누적되면, 그 플로팅 게이트는 음으로 대전되고, 메모리 셀의 임계 전압이 올라가게 되어, 그 메모리 요소는 프로그램 상태에 있는 것으로 여겨진다. 이러한 프로그래밍에 대한 보다 많은 정보는, 그 명칭이 "Source Side Self Boosting Technique for Non-Volatile Memory"인 미국 특허 6,859,397호; 및 2005년 7월 12일 특허되었으며 그 명칭이 "Detecting Over Programmed Memory"인 미국 특허 6,917,542호에서 찾아볼 수 있으며, 이들 모두는 그 전체가 본원의 참조로서 인용된다.
하지만, 계속해서 문제가 되는 하나의 쟁점은 판독 디스터브(read disturb)이다. 판독 디스터브는 다른 저장 요소를 판독하는 동안 어떠한 저장 요소의 상태가 의도하지 않게 변경되는 것이다. 또한, 이러한 문제는, 많은 프로그램/소거 주기들을 겪은 디바이스들 뿐 아니라, 감소된 터널 산화물 두께를 이용하는 보다 새로운 디바이스들에 대해 더욱 악화된다.
본 발명은 비휘발성 저장 시스템에서 판독 디스터브를 줄이는 방법을 제공함으로써 상기 및 기타의 문제들을 해소한다.
일 실시예에서, 비휘발성 저장 소자(storage)를 동작시키는 방법은 비휘발성 저장 요소들의 세트 내의 적어도 하나의 선택된 비휘발성 저장 요소로부터 데이터를 판독할 것을 요청하는 판독 커맨드(read command)를 수신하는 단계를 포함하며, 여기서 상기 적어도 하나의 선택된 비휘발성 저장 요소는 워드라인들의 세트 내의 선택된 워드라인과 관련된다. 이 방법은 또한, 상기 판독 커맨드에 응답하여, 상기 워드라인들의 세트 내의 다른 워드라인을 선택하고, 이 다른 워드라인과 관련된 비휘발성 저장 요소들에 대해 감지 동작들을 수행하며, 그리고 이러한 감지 동작들에 기초하여, 적어도 하나의 판독 비교 레벨을 결정하는 단계를 더 포함한다. 이 방법은 또한, 상기 적어도 하나의 판독 비교 레벨을 이용하여 상기 적어도 하나의 선택된 비휘발성 저장 요소를 판독하는 단계를 더 포함한다.
다른 실시예에서, 비휘발성 저장 소자를 동작시키는 방법은 비휘발성 저장 요소들의 세트 내의 적어도 하나의 선택된 비휘발성 저장 요소로부터 데이터를 판독할 것을 요청하는 판독 커맨드를 수신하는 단계를 포함하며, 여기서 상기 적어도 하나의 선택된 비휘발성 저장 요소는 워드라인들의 세트 내의 선택된 워드라인과 관련된다. 이 방법은 또한, 상기 판독 커맨드에 응답하여, 상기 워드라인들의 세트 내의 다른 워드라인을 선택하고, 에러 정정 프로세스를 수행하는 것을 포함하여, 다른 워드라인과 관련된 비휘발성 저장 요소들로부터 데이터를 감지하며, 그리고 이러한 에러 정정 프로세스에 기초하여 메트릭(metric)을 결정하는 단계를 더 포함한다. 만일 메트릭이 임계치 미만이면, 이 방법은 비휘발성 저장 요소들로부터 감지되는 데이터에 기초하여 결정되는 적어도 하나의 판독 비교 레벨을 이용하여 상기 적어도 하나의 선택된 비휘발성 저장 요소를 판독하는 단계를 더 포함한다. 만일 메트릭이 임계치 보다 크면, 이 방법은 비휘발성 저장 요소들의 세트 내의 데이터의 완전성(integrity)을 조사(investigate)하는 단계 그리고/또는 비휘발성 저장 요소들의 세트 내의 데이터에 대해 리프레시(refresh) 동작을 수행하는 단계를 더 포함한다.
다른 실시예에서, 비휘발성 저장 소자를 동작시키는 방법은 비휘발성 저장 요소들의 세트 내의 적어도 하나의 선택된 비휘발성 저장 요소로부터 데이터를 판독할 것을 요청하는 판독 커맨드를 수신하는 단계를 포함하며, 여기서 상기 비휘발성 저장 요소들의 세트는 데이터를 다중 데이터 상태들로 저장하고, 상기 적어도 하나의 선택된 비휘발성 저장 요소는 워드라인들의 세트 내의 선택된 워드라인과 관련된다. 이 방법은 또한, 상기 판독 커맨드에 응답하여, 상기 워드라인들의 세트 내의 다른 워드라인을 선택하는 단계, 상기 다중 데이터 상태들중 제 1 쌍의 데이터 상태들의 인접하는 상태들을 서로로부터 구별하기 위해, 다른 워드라인과 관련된 비휘발성 저장 요소들에 대해 감지 동작들을 수행하는 단계, 및 이러한 감지 동작들에 기초하여, 상기 제 1 쌍의 데이터 상태들의 인접하는 데이터 상태들 사이에 있는 제 1 판독 비교 레벨을 결정하는 단계를 포함한다. 이 방법은 또한, 상기 제 1 판독 비교 레벨에 기초하여, 상기 다중 데이터 상태들중 제 2 쌍의 데이터 상태들의 인접하는 데이터 상태들 사이에 있는 제 2 판독 비교 레벨을 결정하는 단계, 및 상기 제 2 쌍의 데이터 상태들의 인접하는 상태들을 서로로부터 구별하기 위한 감지 동작들을 수행하지 않으면서, 적어도 상기 제 2 판독 비교 레벨을 이용하여 상기 적어도 하나의 선택된 비휘발성 저장 요소를 판독하는 단계를 더 포함한다.
다른 실시예에서, 비휘발성 저장 소자를 동작시키는 방법은 비휘발성 저장 요소들의 세트로부터 데이터를 판독할 것을 요청하는 판독 커맨드를 수신하는 단계를 포함하며, 여기서 상기 비휘발성 저장 요소들의 세트는 데이터를 다중 데이터 상태들로 저장한다. 이 방법은 또한, 상기 판독 커맨드에 응답하여, 상기 다중 데이터 상태들중 제 1 쌍의 데이터 상태들의 인접하는 상태들을 서로로부터 구별하기 위해 감지 동작들을 수행하는 단계, 및 이러한 감지 동작들에 기초하여, 상기 제 1 쌍의 데이터 상태들의 인접하는 데이터 상태들 사이에 있는 제 1 판독 비교 레벨을 결정하는 단계를 포함한다. 이 방법은 또한, 상기 제 1 판독 비교 레벨에 기초하여, 상기 다중 데이터 상태들중 제 2 쌍의 데이터 상태들의 인접하는 데이터 상태들 사이에 있는 제 2 판독 비교 레벨을 결정하는 단계, 및 상기 제 2 쌍의 데이터 상태들의 인접하는 상태들을 서로로부터 구별하기 위한 감지 동작들을 수행하지 않으면서, 적어도 상기 제 2 판독 비교 레벨을 이용하여 상기 적어도 하나의 선택된 비휘발성 저장 요소를 판독하는 단계를 더 포함한다.
다른 실시예에서, 비휘발성 저장 시스템은 적어도 하나의 선택된 비휘발성 저장 요소를 포함하는 비휘발성 저장 요소들의 세트를 포함한다. 이 시스템은 또한, 선택된 워드라인을 포함하는, 비휘발성 저장 요소들의 세트와 관련된 워드라인들의 세트를 더 포함하며, 상기 적어도 하나의 선택된 비휘발성 저장 요소는 상기 선택된 워드라인과 관련된다. 이 시스템은 상기 워드라인들의 세트와 관련된 적어도 하나의 제어부(control)를 더 포함한다. 이 적어도 하나의 제어부는, (a) 상기 선택된 워드라인과 관련된 상기 적어도 하나의 선택된 비휘발성 저장 요소로부터 데이터를 판독할 것을 요청하는 판독 커맨드를 수신하고, (b) 상기 판독 커맨드에 응답하여, 상기 워드라인 내의 다른 워드라인을 선택하고, 이 다른 워드라인과 관련된 비휘발성 저장 요소들에 대해 감지 동작들을 수행하며, 그리고 이러한 감지 동작들에 기초하여, 적어도 하나의 판독 비교 레벨을 결정하며, 그리고 (c) 상기 적어도 하나의 판독 비교 레벨을 이용하여 상기 적어도 하나의 선택된 비휘발성 저장 요소를 판독한다.
여기에서 제공되는 방법들을 수행하기 위한 대응하는 방법들, 시스템들 및 컴퓨터 판독가능한 또는 프로세서 판독가능한 저장 디바이스들이 제공될 수 있다.
도 1은 NAND 스트링의 평면도이다.
도 2는 도 1의 NAND 스트링의 등가 회로도이다.
도 3은 NAND 플래시 저장 요소들의 어레이의 블록도이다.
도 4는 기판 위에 형성된 NAND 스트링의 단면도를 도시한다.
도 5a는 해당하는 검증 및 판독 전압들과 함께, 비휘발성 저장 요소들의 세트의 최초 임계 전압 분포를 도시한다.
도 5b는 판독 디스터브를 겪는 비휘발성 저장 요소들의 세트의 임계 전압 분포를 도시한다.
도 5c는 도 5b의 임계 전압 분포의 측정 및 해당하는 판독 전압들의 설정을 도시한다.
도 6은 워드라인들의 세트 내의 선택된 워드라인을 도시한다.
도 7은 선택된 워드라인을 다른 워드라인에 기초하여 판독하기 위해 판독 비교 레벨들을 설정하는 프로세스를 도시한다.
도 8은 에러 정정 메트릭(error correction metric) 및 다른 워드라인에 기초하여, 선택된 워드라인을 판독하기 위한 판독 비교 레벨들을 설정하는 프로세스를 도시한다.
도 9는 제 1 판독 비교 레벨로부터 부가적인 판독 비교 레벨들을 결정함으로써, 선택된 워드라인을 판독하기 위한 판독 비교 레벨들을 설정하는 프로세스를 도시한다.
도 10은 제 1 판독 비교 레벨로부터 부가적인 판독 비교 레벨들을 결정함으로써, 선택된 워드라인을 판독하기 위한 판독 비교 레벨들을 설정하는 프로세스를 더 상세하게 도시한다.
도 11은 NAND 플래시 저장 요소들의 어레이의 블록도이다.
도 12는 단일의 로우/컬럼 디코더들 및 판독/기록 회로들을 이용하는 비휘발성 메모리 시스템의 블록도이다.
도 13은 이중의 로우/컬럼 디코더들 및 판독/기록 회로들을 이용하는 비휘발성 메모리 시스템의 블록도이다.
도 14는 감지 블록의 일 실시예를 도시하는 블록도이다.
도 15는 메모리 어레이를 모든 비트라인 메모리 아키텍쳐에 대한 블록들로, 또는 홀수-짝수 메모리 아키텍쳐에 대한 블록들로 구성하는 예를 도시한다.
도 16은 임계 전압 분포들의 예시적인 세트 및 1-패스 프로그래밍을 도시한다.
도 17은 임계 전압 분포들의 예시적인 세트 및 2-패스 프로그래밍을 도시한다.
도 18a-c는 다양한 임계 전압 분포들을 보여주며, 비휘발성 메모리를 프로그램하기 위한 프로세스를 설명한다.
도 19는 비휘발성 메모리를 프로그램하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 20은 프로그래밍 동안 비휘발성 저장 요소들의 제어 게이트들에 인가되는 예시적인 펄스 트레인을 도시한다.
본 발명은 비휘발성 저장 시스템에서 판독 디스터브를 줄이는 방법을 제공한다.
본 발명을 구현하기에 적합한 플래시 메모리 시스템의 일 예는 2개의 선택 게이트 사이에 직렬로 연결된 다수의 트랜지스터가 배열된 NAND 플래시 메모리 구조를 이용한다. 직렬의 트랜지스터들 및 선택 게이트들은 NAND 스트링으로 지칭된다. 도 1은 하나의 NAND 스트링을 도시하는 평면도이다. 도 2는 그 등가 회로이다. 도 1 및 2에 도시된 NAND 스트링은 직렬의 4개의 트랜지스터들(100, 102, 104 및 106)을 포함하는 바, 이들은 제 1 선택 게이트(120)와 제 2 선택 게이트(122) 사이에 샌드위치되어 있다. 선택 게이트(120)는 비트라인(126)에 NAND 스트링 접속을 게이팅(gating)한다. 선택 게이트(122)는 소스 라인(128)에 NAND 스트링 접속을 게이팅한다. 선택 게이트(120)는 제어 게이트(120CG)에 적절한 전압을 인가하여 제어된다. 선택 게이트(122)는 제어 게이트(122CG)에 적절한 전압을 인가하여 제어된다. 트랜지스터들(100, 102, 104 및 106) 각각은 제어 게이트와 플로팅 게이트를 갖는다. 트랜지스터(100)는 제어 게이트(100CG)와 플로팅 게이트(100FG)를 갖는다. 트랜지스터(102)는 제어 게이트(102CG)와 플로팅 게이트(102FG)를 갖는다. 트랜지스터(104)는 제어 게이트(104CG)와 플로팅 게이트(104FG)를 포함한다. 트랜지스터(106)는 제어 게이트(106CG)와 플로팅 게이트(106FG)를 포함한다. 제어 게이트(100CG)는 워드 라인(WL3)에 연결되거나 또는 워드라인이 되고, 제어 게이트(102CG)는 워드 라인(WL2)에 연결되고, 제어 게이트(104CG)는 워드 라인(WL1)에 연결되며, 그리고 제어 게이트(106CG)는 워드 라인(WL0)에 연결된다. 일 실시예에서, 트랜지스터들(100, 102, 104 및 106)은 각각 저장 요소들이며, 메모리 셀들이라고도 불린다. 다른 실시예들에서, 저장 요소들은 다수의 트랜지스터들을 포함하거나, 또는 도 1 및 2에 도시된 것과 다를 수 있다. 선택 게이트(120)는 선택 라인(SGD)에 연결된다. 선택 게이트(122)는 선택 라인(SGS)에 연결된다.
도 3은 3개의 NAND 스트링을 도시하는 회로도이다. NAND 구조를 이용하는 플래시 메모리 시스템에 대한 전형적인 아키텍쳐는 복수개의 NAND 스트링들을 포함할 것이다. 예를 들어, 3개의 NAND 스트링들(320, 340 및 360)이 보다 많은 NAND 스트링들을 갖는 메모리 어레이 내에 도시되어 있다. NAND 스트링들 각각은 2개의 선택 게이트들 및 4개의 저장 요소들을 포함한다. 단순함을 위해 4개의 저장 요소들 만을 나타내었지만, 현대의 NAND 스트링들은, 예를 들어 32개 또는 64개의 저장 요소들까지 포함할 수 있다.
예를 들어, NAND 스트링(320)은 선택 게이트들(322 및 327) 및 저장 요소들(323-326)을 포함하고, NAND 스트링(340)은 선택 게이트들(342 및 347) 및 저장 요소들(343-346)을 포함하며, 그리고 NAND 스트링(360)은 선택 게이트들(362 및 367) 및 저장 요소들(363-366)을 포함한다. 각각의 NAND 스트링은 자신의 선택 게이트들(예를 들어, 선택 게이트들(327, 347 또는 367))에 의해 소스 라인에 연결된다. 선택 라인(SGS)은 소스측 선택 게이트들을 제어하는 데에 이용된다. 다양한 NAND 스트링들(320, 340 및 360)은 선택 게이트들(322, 342, 362) 등의 선택 트랜지스터들에 의해 각각의 비트라인들(321, 341 및 361)에 연결된다. 이러한 선택 트랜지스터들은 드레인 선택 라인(SGD)에 의해 제어된다. 다른 실시예들에서, 선택 라인들은 NAND 스트링들 간에 반드시 공통일 필요는 없다. 즉, 다른 NAND 스트링들에 대해 다른 선택 라인들이 제공될 수 있다. 워드라인(WL3)은 저장 요소들(323, 343 및 363)에 대한 제어 게이트들에 연결된다. 워드라인(WL2)은 저장 요소들(324, 344 및 364)에 대한 제어 게이트들에 연결된다. 워드라인(WL1)은 저장 요소들(325, 345 및 365)에 대한 제어 게이트들에 연결된다. 워드라인(WL0)은 저장 요소들(326, 346 및 366)에 대한 제어 게이트들에 연결된다. 알 수 있는 바와 같이, 각 비트라인 및 각각의 NAND 스트링은 저장 요소들의 어레이 또는 세트의 컬럼들을 포함한다. 워드라인들(WL3, WL2, WL1 및 WL0)은 어레이 또는 세트의 로우들을 포함한다. 각각의 워드라인은 로우 내의 각 저장 요소의 제어 게이트들을 연결한다. 또한, 제어 게이트들은 워드라인들 자체에 의해 제공될 수도 있다. 예를 들어, 워드라인(WL2)은 저장 요소들(324, 344 및 364)에 대한 제어 게이트들을 제공한다. 실제로, 하나의 워드라인 내에는 수천개의 저장 요소들이 있을 수 있다.
각 저장 요소는 데이터를 저장할 수 있다. 예를 들어, 1비트의 디지털 데이터를 저장할 때, 저장 요소의 가능한 임계 전압들(VTH)의 범위는 논리 데이터 "1" 과 "0"이 할당되는 2개의 범위로 분할된다. NAND 타입 플래시 메모리의 일 예에서, 저장 요소가 소거된 후 VTH는 음의 값을 갖고, 논리 "1" 로 정의된다. 프로그래밍 동작 후 VTH는 양의 값을 갖고, 논리 "0" 으로서 정의된다. VTH가 음이고 판독이 시도될 때, 저장 요소는 턴온되어, 논리 "1"이 저장되어 있음을 나타낸다. VTH가 양이고 판독이 시도될 때, 저장 요소는 턴온되지 않게 되어, 논리 0이 저장되어 있음을 나타낸다. 저장 요소는 또한 다중 레벨들의 정보, 예를 들어 다중 비트의 디지털 데이터를 저장할 수 있다. 이 경우, VTH 값의 범위는 데이터 레벨들의 수로 나뉜다. 예를 들어, 4개 레벨의 정보가 저장되는 경우에는, 4개의 VTH 범위가 데이터 값들 "11", "10", "01" 및 "00"에 할당된다. NAND 타입 메모리의 일 예에서, 소거 동작 이후의 VTH는 음이 되고, "11"로서 정의된다. 양의 VTH 값들은 "10", "01" 및 "00"의 상태들에 대해 이용된다. 저장 요소 내에 프로그램된 데이터와 그 요소의 임계 전압 범위들 간의 특정의 관계는 저장 요소들에 대해 채택되는 데이터 엔코딩 방식에 의존한다. 예를 들어, 미국 특허 6,222,762호 및 7,237,074호는 다중 상태 플래시 메모리 셀들에 대한 다양한 데이터 엔코딩 방식들을 설명하며, 이러한 2개의 인용 문헌들은 그 전체가 본원의 참조로서 인용된다.
NAND 타입 플래시 메모리들 및 이들의 동작에 대한 관련 예들은, 본 명세서에 그 전체가 참조 문헌으로서 이용되는 다음의 미국 특허들, 즉 미국 특허 제5,386,422호, 5,570,315호, 5,774,397호, 6,046,935호, 6,456,528호 및 6,522,580호에서 제공된다.
플래시 저장 요소를 프로그램할 때, 프로그램 전압이 저장 요소의 제어 게이트에 인가되고, 저장 요소와 관련된 비트라인은 접지된다. 채널로부터 전자들은 플로팅 게이트에 주입된다. 전자들이 플로팅 게이트에 누적되면, 그 플로팅 게이트는 음으로 대전되고, 저장 요소의 VTH가 올라가게 된다. 프로그램되고 있는 저장 요소의 제어 게이트에 프로그램 전압을 인가하기 위해, 그 프로그램 전압은 적절한 워드라인 상에 인가된다. 상기 설명한 바와 같이, NAND 스트링들 각각의 하나의 저장 요소는 동일한 워드라인을 공유한다. 예를 들어, 도 3의 저장 요소(324)를 프로그램할 때, 프로그램 전압은 저장 요소들(344 및 364)의 제어 게이트들에도 인가될 것이다.
하지만, 다른 NAND 스트링들을 프로그램하는 동안 금지된 NAND 스트링들에서, 그리고 때때로는, 프로그램되는 NAND 스트링들 그 자체에서, 프로그램 디스터브가 발생할 수 있다. 프로그램 디스터브는, 다른 비휘발성 저장 요소들의 프로그래밍으로 인해, 비선택 비휘발성 저장 요소의 임계 전압이 시프트될 때에 일어난다. 프로그램 디스터브는 이전에 프로그램된 저장 요소들 상에서 뿐 아니라, 아직 프로그램되지 않은 소거된 저장 요소들 상에서도 일어날 수 있다. 다양한 프로그램 디스터브 메커니즘(program disturb mechanism)들이 NAND 플래시 메모리와 같은 비휘발성 저장 디바이스들에 대해 이용가능한 동작 윈도우(available operating window)를 제한할 수 있다.
예를 들어, 만일 NAND 스트링(320)이 금지되고(예를 들어, 이것이 현재 프로그램되고 있는 저장 요소를 포함하지 않는 비선택 NAND 스트링이고), NAND 스트링(340)이 프로그램되고 있다면(예를 들어, 이것이 현재 프로그램되고 있는 저장 요소를 포함하는 선택된 NAND 스트링이라면), NAND 스트링(320)에서 프로그램 디스터브가 일어날 수 있다. 예를 들어, 패스 전압(VPASS)이 로우이면, 금지되는 NAND 스트링의 채널은 잘 부스트되지 않으며, 비선택 NAND 스트링의 선택된 워드라인이 의도하지 않게(unintentionally) 프로그램될 수 있다. 다른 가능한 방식에서, 부스트된 전압은 게이트 유도 드레인 누설(Gate Induced Drain Leakage, GIDL) 또는 다른 누설 메커니즘들에 의해 낮아질 수 있으며, 이에 의해 동일한 문제를 야기하게 된다. 이후 프로그램되는 이웃하는 다른 저장 요소들과의 용량성 결합(capacitive coupling)으로 인해 전하 저장 요소의 VTH의 시프트와 같은 다른 효과들도 프로그램 디스터브에 기여할 수 있다.
도 4는 기판 위에 형성되는 NAND 스트링의 단면도를 도시한다. 이러한 단면도는 단순화된 것으로서, 실제 규모대로 도시된 것이 아니다. NAND 스트링(400)은 기판(490) 상에 형성되는, 소스측 선택 게이트(406), 드레인측 선택 게이트(424) 및 8개의 저장 요소들(408, 410, 412, 414, 416, 418, 420 및 422)을 포함한다. 다수의 소스/드레인 영역들(이들중 하나의 예가 소스/드레인 영역(430)이다)이 선택 게이트들(406 및 424) 및 각 저장 요소의 어느 한측 위에 제공된다. 하나의 시도에서, 기판(490)은 3중 웰(triple-well) 기술을 이용하는데, 이는 n웰 영역(494) 내의 p웰 영역(492)을 포함하고, n웰 영역(494)은 p 타입 기판 영역(496) 내에 있다. NAND 스트링 및 그의 비휘발성 저장 요소들은 p웰 영역 위에, 적어도 부분적으로, 형성될 수 있다. VBL의 전위를 갖는 비트라인(426)에 부가하여, VSOURCE의 전위를 갖는 소스 서플라이 라인(404)이 제공된다. 바디 바이어스 전압들과 같은 전압들이 단자(402)를 통해 p웰 영역(492)에 인가되고, 그리고/또는 단자(403)를 통해 n웰 영역(494)에 인가될 수 있다.
프로그램 동작 동안, 제어 게이트 전압(VPGM)이 선택된 워드라인, 본 예에서는 저장 요소(414)와 관련된 WL3에 상에 인가된다. 또한, 저장 요소의 제어 게이트는 워드라인의 일부로서 제공될 수 있다는 것을 염두해야 한다. 예를 들어, WL0, WL1, WL2, WL3, WL4, WL5, WL6 및 WL7은 각각 저장 요소들(408, 410, 412, 414, 416, 418, 420 및 422)의 제어 게이트들을 통해 연장될 수 있다. 하나의 가능한 부스팅 방식에서는, 패스 전압(VPASS)이 NAND 스트링(400)과 관련된 나머지 워드라인들에 인가된다. 일부 부스팅 방식들은 다른 워드라인들에 다른 패스 전압들을 인가한다. VSGS 및 VSGD가 각각 선택 게이트들(406 및 424)에 인가된다.
도 5a-c는 판독 디스터브가 비휘발성 저장 요소들의 세트의 임계 전압 분포를 어떻게 변경시킬 수 있는 지와, 그리고 이러한 문제를 처리하는 프로세스에 관한 것이다. 도 5a는 비휘발성 저장 요소들의 세트의 최초 임계 전압 분포를 도시하는 바, 해당하는 검증 및 판독 전압들을 함께 도시한다. 이를 테면, 최초 임계 전압 분포는 저장 요소들의 세트가 프로그램된 직후에 적용된다. 본 예에서, 8개의 데이터 상태들이 이용된다. 일반적으로, 2개 이상의 데이터 상태들이 이용될 수 있다.
프로그램 동안 검증 레벨들(VV1 내지 VV7)을 이용하여, 프로그래밍이 완료된 것으로서 고려되기 위해 저장 요소가 프로그램되어야 하는 가장 낮은 임계 전압을 정의한다. 일부 저장 요소들은 검증 레벨을 다른 정도(degree)들로 오버슈트(overshoot)시킴으로써, 각 상태에 대한 한정된(finite) 임계 분포를 가져온다.
또한, 정확한 비교 레벨들(판독 기준 전압들이라고 불림)을 제공하는 것이 더욱 중요한데, 왜냐하면 데이터 상태들의 수가 증가하고, 이러한 데이터 상태들은 서로에 대해 더욱 가깝기 때문이다. 본 예시적인 구현에서는, 판독 프로세스에서 판독 비교 레벨들(VR1 내지 VR7)을 이용하여 8개의 데이터 상태들을 구별한다. 예를 들어, 만일 VR1이 저장 요소의 제어 게이트에 인가되고, 그 저장 요소가 도통이 된다면, VR1은 그 저장 요소의 임계 전압(VTH) 보다 높은 것으로 결론이 난다. 유사하게, 저장 요소가 도통이 되지 않는다면, VR1은 그 저장 요소의 임계 전압(VTH) 보다 낮은 것으로 결론이 난다. 따라서, 저장 요소가 판독 비교 레벨들 각각에 대해 도통인지의 여부를 결정함으로써, 그 저장 요소의 데이터 상태를 확인할 수 있다. 다시 말해, 저장 요소의 데이터 상태는, 저장 요소가 비도통이 되는 가장 높은 판독 비교 레벨과 저장 요소가 도통이 되는 가장 낮은 판독 비교 레벨 사이의 상태이다. 또한, 판독 프로세스는 소정의 워드라인과 동시에 관련되는 다수의 저장 요소들의 데이터 상태들을 확인할 수 있다.
또한, 주목할 사항으로서, 해당하는 판독 비교 전압들(예를 들어, VR1 내지 VR7)은, 전형적으로 이전 분포들 바로 위에 있는, 전압 그룹들 사이에 있다. 예를 들어, VR1은 상태 0과 상태 1 사이(상태 0의 분포 바로 위)에 있고, VR2은 상태 1과 상태 2 사이(상태 1의 분포 바로 위)에 있으며, 이하 마찬가지이다. 이에 의해, 판독 디스터브 및 데이터 보유 손실로 인해 임계 전압 분포의 확장(widening)을 가능하게 한다. 전형적으로, 이러한 효과는 보다 높은 상태들에 대해 더 크다. 결과적으로, 도시된 바와 같이, 더 높은 상태들에 대한 상태들 간에 점진적으로 더 큰 간격을 제공하는 것이 바람직하다.
설명한 바와 같이, 판독 디스터브는 임계 전압 분포에 상당한 변경을 가져올 수 있다. 판독 디스터브는 저장 요소로부터의 전하 손실로 인해 양(positive) 임계 전압들을 감소시키고, 저장 요소 내에서의 전하 이득으로 인해 음(negative)의 임계 전압들을 증가시키는 경향이 있다. 몇몇 디바이스들에서, 소거되는 상태 및 아마도 적은 수의 부가적인 이웃 상태들은 음의 임계 전압들을 가질 것이다. 예를 들어, 16-상태 디바이스는 음의 임계 전압을 갖는 상태들 0-4 및 양의 임계 전압을 갖는 상태들 5-15를 가질 수 있다. 한편, 다른 디바이스들에서는, 모든 상태들이 양의 임계 전압을 가질 수 있다.
도 5b는 판독 디스터브를 겪는 비휘발성 저장 요소들의 세트의 임계 전압 분포를 도시한다. 도시된 판독 기준 전압들(VR1 내지 VR7)은 도 5a와 동일하다. 여기서, 각 상태에 대한 임계 전압 분포는, 판독 디스터브로 인해, 도 5a에 나타낸 분포와 비교하여 더 넓고 아랫쪽으로 시프트된다. 또한, 판독 디스터브는 더 높은 데이터 상태에 대해 더 높아질 수 있으며, 이에 따라 시프트도 더 크게 된다. 주목할 사항으로서, 몇몇 경우들에서는, 인접하는 데이터 상태들에 대한 분포들이 겹칠 수 있다. 여기서, 도 5a의 동일한 판독 전압들이 도 5b에 나타낸 데이터 상태들을 판독하는 데에 이용되는 경우 판독 에러들이 야기될 수 있음을 알 수 있는데, 왜냐하면 본 예에서 판독 전압들은 더 낮은 임계 전압 분포에 의해 겹쳐지기 때문이다.
또한, 판독 전압은 다양한 팩터들에 의해 영향을 받을 수 있는데, 이러한 팩터들로는, 프로그래밍/소거 주기의 수(저장 요소들은 되풀이해서 스트레스를 받기 때문에, 판독 디스터브는 더 많은 주기에 대해 더 커지게 된다), 데이터가 기록되는 때와 판독되는 때 사이의 온도 변화(더 높은 온도에서 더 많은 디스터브가 발생한다), 블록 내에서의 저장 요소의 상대적인 위치(블록 내의 말단 워드라인들에 대해 더 적은 디스터브가 발생하는데, 왜냐하면 이러한 말단 워드라인들은 단지 하나의 인접 워드라인에 의해서만 영향을 받기 때문이다), 메모리 디바이스의 파워 서플라이의 레벨(이 레벨은 데이터가 기록되는 때와 데이터가 판독되는 때 사이에서 달라질 수 있고, 판독 디스터브는 저장 요소에 인가되는 전압이 클 수록 더 커지게 된다), 프로그램 전압 레벨(더 큰 프로그램 레벨은 더 많은 스트레스를 야기하여, 더 많은 판독 디스터브를 발생시킨다), 소거 전압 레벨(더 높은 소거 레벨은 더 많은 스트레스를 야기하여, 더 많은 판독 디스터브를 발생시킨다), 및 프로그램, 판독 또는 소거 전압이 인가되는 지속기간(지속 기간이 길수록 더 많은 스트레스를 야기하여, 더 많은 판독 디스터브를 발생시킨다)이 있다.
도 5c는 도 5b의 임계 전압 분포의 측정 및 해당하는 판독 전압들의 설정을 도시한다.
실제 임계 분포를 측정하는 프로세스는 복수의 개별적인 판독 또는 감지 동작들로 메모리 디바이스를 판독하는 것을 포함하는데, 여기서 판독 동작들의 수는 분포 측정의 요구되는 분해능(resolution)에 기초한다. 예를 들어, 만일 메모리 디바이스가 8개의 상태를 이용하여, 저장 요소당 3 비트를 나타내고, 상태당 10 포인트의 분해능이 요구된다면, 판독 동작들은 79개의 임계 레벨들 각각에 대해 수행된다. 도 5c에서, 각 점은 판독 포인트를 나타내고, 실선은 도 5b에 나타낸 것과 동일하다. 각 빈(bin)의 높이가, 그 임계 전압이 이러한 빈에 의해 특정되는 범위 내에 있는 저장 요소들의 수를 나타내는 히스토그램(histogram)이 제공될 수 있다. 가장 적절한 판독 레벨은, 예를 들어 인접하는 상태들 간의 최소값들(minima)로서 결정될 수 있다. 최소값들의 열(range)이 있는 경우, 2개의 데이터 상태들 간의 가장 적절한 판독 레벨은 이러한 2개의 상태들중 더 낮은 상태 분포의 바로 위가 될 수 있다. 여기서, 판독 레벨들(V'R1 내지 V'R7)은 도 5b의 VR1 내지 VR7 레벨들에 대해 최적의 레벨들로 시프트된다. 일반적으로, 설명한 바와 같이, 최대의 데이터 보유 시프트를 가능하게 하기 위해서는, 판독 레벨을 이전 레벨에 대해 가능한한 가깝게 두는 것이 바람직하다. 판독 레벨들(V'R1 내지 V'R7)을 이용하게 되면, 도 5b의 판독 레벨들이 이용되는 경우 야기되는 상당한 판독 에러들을 피할 수 있게 된다.
판독 디스터브는 NAND 플래시 메모리 칩들과 같은 비휘발성 저장 소자에서의 주된 신뢰성 문제이다. 이러한 판독 디스터브는, 저장 요소가 판독 동작 동안 전압을 인가받을 때, 이 저장 요소에 스트레스가 가해질 때에 발생한다. 전압의 크기 및 지속기간이 더 클수록, 더 많은 스트레스를 야기한다. 전압이 인가되는 횟수 역시 한 요인이 될 수 있는데, 부가적인 전압 인가는 부가적인 스트레스와 관련된다. 전압의 크기와 관련하여, 블록 내의 선택된 워드라인이 판독되고 있을 때(인가되는 제어 게이트 판독 전압은 VR로서 지칭됨), 동일한 블록 내의 비선택 워드라인들은 높은 전압(판독-패스 전압, VREAD로서 지칭됨)으로 구동되어, NAND 스트링들 내의 비선택 저장 요소들을 바이패스시킨다. 또한, 이러한 판독-패스 전압은 가장 높은 VR(예를 들어, 8개의 데이터 상태가 있을 때에는 VR7)을 2V와 같은 마진(margin) 만큼 초과하도록 설계되며, 이에 의해 비선택 워드라인들 상의 비선택 저장 요소들의 과구동(overdriving)을 야기하게 된다. 또한, (예를 들어, 16개의 데이터 상태들을 갖는) 저장 요소당 4 비트 기술에 대한 효과적인 판독-패스 전압은, 저장 요소 메모리 마다의 (데이터 상태들에 대한) 이진(2개의 데이터 상태) 및 2 비트에 대한 것 보다 훨씬 더 높을 수 있다. 따라서, 미래의 디바이스들이 부가적인 데이터 상태들을 제공하는 쪽으로 나아감에 따라, 판독 디스터브 문제는 더욱 중요해질 것이다.
전압 크기와 관련하여, 8개의 상태(저장 요소당 3 비트) 디바이스에 대해, (8 × 4) - 1 = 31 번의 판독 비교 동작들이 있을 수 있다. 또한, 요구되는 수명 동안 100,000 번의 판독 동작이 일어난다고 가정한다. 100,000 번의 판독 동작들 및 제로(zero)의 소프트 비트들(soft bits)(예를 들어, 15개의 다른 판독 레벨들에서의 연속적인 판독)에 의해, 블록의 노출(exposure)의 지속기간은 100,000 × 31 ×(각 VREAD에 대한 노출의 지속기간)이 된다. 또한, 한 워드라인 상의 모든 저장 요소들을 판독하는 데에 필요한 시간은, 1 스트로브(strobe)가 이용되는지 또는 2 스트로브 감지가 이용되는 지에 의존한다. 2 스트로브 감지에 의한 총 노출 시간은 1 스트로브 감지에 의한 총 노출 시간의 거의 두배가 될 것이다. 따라서, 저장 요소들은 인가되는 판독 패스 전압들의 크기 및 지속기간에 기초하여 상당한 스트레스에 노출될 것임을 알 수 있다.
너무 자주 판독된 블록들 상의 데이터를 재기록(rewrite)하기 위해, 판독 스크러빙(read scrubbing)을 이용할 수 있다. 이러한 판독 스크러빙의 하나의 구현은, 블록이 재기록되는 스몰 챈스(small chance)를 판독시 마다 트리거(trigger)하는 것에 기초한다. 이러한 스몰 챈스는 난수 발생기(random number generator)를 이용하여 생성된다. 난수 발생기를 이용하는 것이 판독의 실제 수의 카운트를 유지하는 것 보다 더 쉽다. 하지만, 이러한 시도는 자원 집중적(resource intensive)이며, 저장 요소들의 실제 상태를 고려하지 않는다. 다른 가능한 시도에서, 저장 요소들은 에러 정정 코드(ECC)를 이용하여 엔코드된 데이터를 저장하며, ECC 디코딩 엔진(ECC decoding engine)을 판독 동안 모니터하여, 데이터가 잘못되는 정도를 결정한다. 예를 들어, ECC 디코딩 엔진이 수렴(converge)하는 데에 필요한 시간, 또는 수렴하는 데에 필요한 반복 수가 모니터될 수 있다. 이러한 메트릭(metric)들이 임계치를 초과하면, 재기록이 표시된다.
특히, 강한(strong) ECC (SECC)가 이용되면, ECC가 데이터를 정정할 수 있게 하는 상태들로부터, ECC를 작동하지 않게 하는 데에 필요한 상태들을 분리하는 샤프 컷오프 포인트(sharp cutoff point)가 덜 존재하게 된다. 강한 ECC는, 예를 들어 비트 에러들의 5-8% 까지 정정할 수 있다. 이는, SECC를 이용하게 되면, 오정정(miss-correction) 가능성이 없기 때문이다. ECC 페이지 상에서의 실패 비트들(failing bits)의 수가 너무 커지게 되면, SECC 알고리즘은 수렴하지 않을 것이다. 하지만, 이러한 상태에 이르기 전에, 수렴은 속도가 느려지게 된다. SECC 수렴을 달성하는 데에 걸리는 시간, 또는 이것에 필요한 반복 수는 초기 경고 플래그(early warning flag)로서 기능할 수 있다. SECC 수렴이 너무 오래 걸릴 때, 또는 ECC 페이지 상의 실패 비트들의 수가 어떠한 소정의 값을 초과할 때, 제어기는 데이터 또는 분포 마진들(distribution margins)의 조사 판독(investigative read)을 개시하여, 블록이 재기록되어야 하는 지를 결정한다.
일어나는 하나의 문제는, 사용자가 종종 특정 블록 내의 단일 워드라인에 한정되는 데이터의 동일한 청크(chunk)를 반복적으로 판독하는 것에 관심이 있다는 것이다. 블록 내의 비선택 워드라인들 만이 판독 디스터브에 노출될 것이기 때문에, 이러한 환경하에서, 관심있는 선택된 단일 워드라인을 판독하는 것이 블록의 나머지 상의 데이터의 리프레시(refresh) 요구와 관련하여 적절한 시간에 플래그를 올리지 않을 것이다. 또한, 주목할 사항으로서, 웨어 레벨링(wear leveling)이 이용될 때, 블록의 데이터를 재기록하게 되면, 그 데이터를 어떠한 다른 물리적인 블록으로 이동시킬 것이다. 따라서, 몇몇 상황들에서, 특정 워드라인의 하나 이상의 선택된 저장 요소들이 반복적으로 판독됨으로써, 다른 워드라인들 상의 저장 요소들을 판독 디스터브에 노출시키면서, 하나 이상의 선택된 저장 요소들 자체는 프로그램 디스터브를 피하게 된다. 특정 워드라인의 선택된 저장 요소들은, 공통으로 요청되는 데이터가 특정 워드라인 상에 저장되어 있을 때와 같은, 다양한 상황들에서 반복적으로 판독될 수 있다.
결과적으로, ECC 디코딩 엔진은, 특정 워드라인의 선택된 저장 요소들로부터 데이터를 판독할 때의 문제를 나타내지 않을 수 있다. 하지만, (더 많은 판독 디스터브를 겪은) 다른 워드라인의 저장 요소들이 후속적으로 판독될 때, ECC 디코딩 엔진은, 느린 또는 시간 소모적인 수렴과 같은 현저한 문제를 나타내거나, 또는 심지어 수렴하지 않을 수도 있다. 본질적으로, 이것은 너무 느려서, 발견되는 문제를 정정하지 못할 수도 있다. 따라서, ECC 디코딩 엔진의 성능의 점진적인 저하를 모니터하고, 리프레시를 수행하거나 다른 교정 조치를 행하는 때에 대하여 적절한 결정을 할 수 있는 능력이 손상된다.
판독 레벨들은, 도 5c와 관련하여 상기 설명된 특정 워드라인의 저장 요소들과 같은, 저장 요소들의 세트의 현재 임계 전압 분포에 기초하여 결정될 수 있다. 이것은 동적 감지 포인트 획득(dynamic sense point acquisition, DSPA)의 형태이며, 규칙적으로, 예를 들어 블록 내에서의 모든 판독 또는 모든 n>1 판독에 대해 수행되거나, 또는 예외적으로, 예를 들어 ECC 디코딩 엔진 메트릭이 초과될 때에 수행되어, 수렴에 있어서의 어려움을 나타낸다. 상기 동적 감지 포인트 획득은 1, 2, 또는 그 이상의 소프트 비트들을 이용하여 하나 이상의 페이지들을 판독함으로써(즉, 8 상태 저장 요소에 대한 7개의 판독 레벨들 보다 더 높은 분해능에서 판독함으로써), 얼마나 많은 판독 비교 레벨들이 베이스라인 레벨(baseline level)로부터 오프셋(offset)되어야 하는 지를 결정할 수 있다. 전하 이득/손실은, 동적 감지 포인트 획득에 의해 처리될 수 있는 메커니즘들중 하나이다.
도 6은 워드라인들의 세트 내의 선택된 워드라인을 도시한다. 본 예에서, 워드라인들의 세트(600)는 8개의 워드라인들(WL0-WL7)을 갖는다. 선택된 워드라인(615)은, 예를 들어 호스트 판독 커맨드(host read command)에 기초하여, 판독에 대해 선택되는 워드라인이다. 이 워드라인은 관심의 데이터를 저장하는 저장 요소들을 갖는다. 나머지 워드라인들은, 선택된 워드라인(615)의 소스측의 비선택 워드라인들의 세트(620) 및 선택된 워드라인(615)의 드레인측의 비선택 워드라인들의 세트(610)를 포함한다. 선택된 워드라인(605)은 비선택 워드라인으로서, 이는 갱신된 최적화된 판독 전압들을 얻기 위해, 선택된 워드라인(615)을 판독하기 전에 무작위로(randomly) 또는 다른 방법으로 판독될 것으로 선택된다.
일 양상에서는, 선택된 워드라인을 판독하기 위한 판독 커맨드가 수신될 때, 무작위로 선택된 비선택 워드라인에 대해 동적 감지 포인트 획득이 수행될 수 있다. 하나의 시도에서는, 임의의 비선택 워드라인이 선택될 수 있다. 다른 시도에서는, 하나 이상의 예외를 가지고 임의의 비선택 워드라인이 선택될 수 있다. 예를 들어, 블록 내의 첫번째 워드라인과 마지막 워드라인, 및 선택된 워드라인에 인접하는 워드라인들은 배제될 수 있는데, 왜냐하면 이들은 다른 워드라인들 보다 더 많거나 적은 판독 디스터브를 겪을 수 있기 때문이다.
예를 들어, 64개의 워드라인들(WL0-WL63)이 있고, 선택된 워드라인이 WL5라고 가정한다. WL0 및 WL61 이 말단 워드라인들로서 배제되고, WL4 및 WL6 이 WL5에 인접하는 이유로 배제된다고 가정하면, DSPA 특성화(characterization)에 적절한 소정의 워드라인들의 세트는, 예를 들어 WL1-WL3 및 WL7-WL60 이 될 수 있다. 또한, 호스트(또는 제어기)가 WL5를 반복적으로 판독하기를 원하는 경우를 고려한다. 이 경우, 하나의 가능한 시도에서, WL5를 판독하기 위해 발행된 모든 커맨드는 다른 워드라인이 먼저 판독되게 할 것이다. 이러한 다른 워드라인이 DSPA 목적을 위해 판독되는 동안, WL5는 VREAD에 노출됨으로 인해 판독 디스터브에 노출되게 된다. 이렇게 되면, WL5가 후속적으로 판독될 때, 모니터되는 WL5에 대한 ECC 디코딩 엔진 메트릭은 블록을 더 높은 정도로 나타낼 것이다. 따라서, 블록 내의 판독 디스터브 문제의 정확한 초기 경고를 얻을 수 있게 되며, 이에 따라 제어기는 판독 디스터브 문제가 ECC 디코딩 엔진을 압도(overwhelm)시킬 정도로 커지기 전에, 블록을 리프레시하거나, 또는 이를 다른 블록에 기록하는 것과 같은, 정정 동작을 수행할 수 있게 된다. 이러한 시도는 요구될 때에만 판독 스크러빙을 허용한다.
도 7은 선택된 워드라인을 판독하기 위한 판독 비교 레벨들을 다른 워드라인에 기초하여 설정하는 프로세스를 도시한다. 이 프로세스는 단계(700)에서 판독 커맨드를 수신하는 것을 포함할 수 있다. 예를 들어, 메모리 디바이스의 제어기는 외부 호스트 제어기로부터 판독 커맨드를 수신할 수 있다. 또한, 제어기는, 호스트 제어기와 상관없이, 자신이 내부적으로 이용하는 데이터에 대한 판독 커맨드를 발행할 수 있다. 단계(705)는 판독 커맨드로부터 선택된 워드라인을 식별하는 것을 포함한다. 전형적으로, 워드라인은 판독 커맨드 내의 코드 워드(code word)에 의해 식별된다. 단계(710)는 다른 워드라인을 선택하는 것을 포함한다. 예를 들어, 이것은 다른 워드라인을 무작위로 선택하는 것을 포함할 수 있다. 하나의 가능한 시도에서, 선택된 워드라인에 인접하는 워드라인들, 또는 블록의 말단(end-of-block) 워드라인들과 같은 일정한 워드라인들은 배제된다. 이러한 워드라인들은, 특히 드레인측 상에서 선택된 워드라인에 인접하는 워드라인 상에서, 더 높은 정도의 판독 디스터브를 가질 수 있다. 이러한 워드라인들을 피함으로써, 전체 블록을 더 높은 정도로 나타내는 판독 디스터브의 정도를 갖는 워드라인이 선택된다.
하지만, 단계(710)에서, 다른 가능한 시도는 드레인측 상에서 선택된 워드라인에 인접하는 워드라인과 같은, 인접하는 워드라인을 선택하는 것이다. 일반적으로, 이 워드라인은, 블록의 소스측으로부터 드레인측으로 프로그래밍을 진행할 때, 프로그램되지 않았거나 또는 단지 부분적으로만 프로그램된 워드라인이다. 이것은, 전체 블록 내에서 최악의 경우(worst case)의 판독 디스터브의 정도를 갖는 워드라인을 선택하는 것을 포함한다. 만일 선택된 워드라인이 마지막의 드레인측 워드라인이라면, 소스측 상의 인접하는 워드라인이 선택될 수 있다.
단계(715)는 이러한 저장 요소들의 임계 전압 분포를 얻기 위해, 다른 워드라인의 저장 요소들 상에서 감지 동작들을 수행하는 것을 포함한다. 예를 들어, 이것은 도 5c에서 점들로 나타낸 포인트들 각각에 의해 나타낸 바와 같이, 복수의 다른 레벨들에서의 워드라인 전압으로 연속적인 감지 동작들을 수행하는 것을 포함할 수 있다. 단계(720)는 임계 전압 분포에 있어서의 골(vally)들을 식별하는 것을 포함하고, 단계(725)는 이러한 골들에 기초하여 판독 비교 레벨들을 결정하는 것을 포함한다. 예를 들어, 도 5c의 최적화된 판독 비교 레벨들(V'R1-V'R7)을 참조한다.
일단 이러한 최적화된 판독 비교 레벨들이 결정되면, 단계(730)는 이러한 최적화된 판독 비교 레벨들을 이용하여, 선택된 워드라인의 비휘발성 저장 요소들에 대해 판독 동작을 수행하는 것을 포함한다. 단계(735)는, 판독 데이터를 메모리 디바이스의 버퍼로부터 호스트 제어기에 전송하는 것과 같이, 결과들을 보고하는 것을 포함한다. 단계(740)에서, 판독 프로세스가 끝난다.
64개의 워드라인들(WL0-WL63)을 갖는 예를 고려한다. 만일 사용자가 블록의 WL5 상의 페이지를 판독할 것을 요청하면, 선택된 워드라인은 WL5 이다. 이 경우, 먼저, 무작위로 선택된, 또는 그렇지 않으면 DSPA 특성화에 적절한 소정의 워드라인들의 세트로부터 선택된 다른 워드라인에 대해 DSPA 동작이 수행된다. 난수 발생기를 이용하여 다른 워드라인을 선택할 수도 있다. 대안적으로, 다른 워드라인은, 이를 테면 선택된 워드라인으로부터 소정수의 워드라인들 만큼 오프셋된 워드라인을 선택함으로써, 비 무작위로(non-randomly) 선택될 수 있는데, 예를 들어 WL5가 선택된 워드라인이면 WL15를 선택하고, WL35가 선택된 워드라인이면 WL45를 선택하고, 이하 마찬가지이며, 여기서 오프셋은 +10 워드라인이다. 선택된 워드라인이 드레인측에 가까우면, 다른 워드라인은 반대 방향으로의 오프셋(예를 들어, -10 워드라인)에 의해 선택되거나, 또는 첫 번째의 적합한 소스측 워드라인에서 카운팅을 시작하는 모듈로 계산(modulo calculation)에 의해 선택될 수 있는바, 예를 들어 WL60 이 선택된 워드라인일 때, WL8 을 선택한다. 이 경우, 말단 워드라인들인 WL0 및 WL63은 배제된다.
다른 예시적인 시도에서, 선택된 워드라인으로부터 다른 워드라인으로의 오프셋은 각 판독 동작에 대해, 예를 들어 +10 워드라인 만큼 변경된다. 따라서, WL5가 처음으로 판독될 때 WL15를 선택한 다음, WL5가 다시 판독될 때 WL25를 판독하고, 이하 마찬가지로 이어진다. 또 다른 예시적인 시도에서는, 워드라인들의 서브세트가 무작위로 또는 비 무작위로 선택되며, 이러한 서브세트 내의 특정 워드라인이 무작위로 또는 비 무작위로 선택된다. 예를 들어, 예시적인 선택된 워드라인으로서 WL5를 다시 이용하면, 워드라인들의 서브세트들은 다음과 같이 정의될 수 있다. 즉, WL7-15(인접하는 워드라인 WL6을 배제한다), WL16-25, WL26-35, WL36-45, WL46-WL55, WL56-62 및 WL1-WL3(말단 워드라인들 WL63 및 WL0과 인접하는 워드라인 WL4를 배제한다)으로 정의될 수 있다. 하나의 시도에서, WL5가 첫번째로 판독될 때, WL7-15가 선택된 서브세트로서 선택되고, WL6-15 중 하나가 다른 워드라인으로서 무작위로 선택되며; 그리고 WL5가 두번째로 판독될 때, WL16-25가 선택된 서브세트로서 선택되고, WL16-25 중 하나가 다른 워드라인으로서 무작위로 선택되며, 이하 마찬가지이다.
선택된 워드라인이 판독될 때 마다, 또는 보다 덜 빈번하게, 이러한 다른 워드라인을 선택하고 분석하여, 최적의 판독 또는 다른 전압들을 얻을 수 있다. 예를 들어, 다른 워드라인을 선택하고 새로운 전압들을 얻을 지에 대한 결정은 무작위로 또는 비 무작위로 이루어질 수 있으며, 이에 따라, 선택된 워드라인이 판독되는 횟수에 대하여, 평균(average) 간격 또는 고정된 간격으로 각각 주기적으로 일어난다. 또는, 예를 들어 선택된 워드라인이 4번 판독된 이후, 그런 다음 선택된 워드라인이 8번 판독된 이후 등등과 같이, 비균일한 증분이 이용될 수 있다.
새로운 전압들을 얻을 지의 결정은, 다른 워드라인들을 판독하지 않으면서 단일 워드라인을 복수회 판독할 때에 개시된다. 특정 워드라인이 판독된 횟수의 추적을 피할 것이 요구된다면, 임의의 워드라인이 판독될 때 마다 새로운 전압이 얻어진다. 블록 내의 임의의 워드라인이 판독된 횟수를 추적하게 되면, 상기 결정은 임의의 워드라인의 매 n>1 판독 이후 이루어질 수 있다. 블록 내의 임의의 워드라인이 판독된 횟수를 추적하지 않게 되면, 상기 결정은 무작위로 이루어질 수 있는 바, 예를 들어 난수 발생기를 이용하여, 특정의 판독이 다른 워드라인을 선택하고 새로운 전압들을 얻을 것을 필요로 하는 지를 결정한다. 만일 판독 동작이 전체 블록 모두 또는 전체 블록의 많은 부분을 필요로 한다면, 모든 저장 요소들은 유사한 판독 디스터브를 받을 것이며, 이에 따라 워드라인을 선택하고 새로운 전압들을 얻을 필요가 없다. 다양한 다른 시도들이 또한 가능하다. 제어에 의해, 요구되는 방식을 구현하기 위한 적절한 데이터를 유지할 수 있다.
도 8은 에러 정정 메트릭 및 다른 워드라인에 기초하여, 선택된 워드라인을 판독하기 위한 판독 비교 레벨들을 설정하는 프로세스를 도시한다. 단계들(800, 805 및 810)은 도 7의 단계들(700, 705 및 710)에 각각 대응한다. 단계(815)는, ECC 디코딩을 포함하여, 저장 요소들의 임계 전압 분포를 얻기 위해 다른 워드라인의 저장 요소들에 대해 감지 동작들을 수행하는 것을 포함한다. 단계(820)는 ECC 디코딩 프로세스에 기초하여 메트릭을 결정하는 것을 포함한다. 예를 들어, 이러한 메트릭은 수렴하기 위해 걸리는 시간량 그리고/또는 반복수를 나타낼 수 있다. 단계(825)에서, 만일 이러한 메트릭이 임계치(이는 테스팅 그리고/또는 이론적인 계산에 기초하여 설정될 수 있다) 보다 작으면, ECC 디코딩 프로세스는 만족스럽게 진행되고 있는 것이다. 이 경우, 이 프로세스는 단계들(835, 840, 845, 850 및 855)로 진행되는데, 이러한 단계들은 도 7의 단계들(720, 725, 730, 735 및 740)에 각각 대응한다. 결정 단계(825)에서, 만일 메트릭이 임계치 보다 작지 않으면, ECC 디코딩 프로세스는 만족스럽게 진행되지 않고 있는 것이며, 단계(830)에서, 데이터의 완전성(integrity)에 대한 추가의 조사가 행해지며, 그리고/또는 데이터에 대한 리프레시 동작이 수행된다. 이러한 추가의 조사는, 예를 들어 하나 이상의 부가적인 워드라인들의 부가적인 탐험적 판독(exploratory read)을 행하여, 이들이 디코딩에 문제를 가지고 있는 지를 결정하는 것을 포함할 수 있다. 리프레시 동작은, 예를 들어 제 1 블록으로부터의 데이터를 제 2 블록에 카피하고, 제 1 블록을 소거하고, 그 데이터를 다시 제 1 블록에 카피하는 것을 포함할 수 있다.
단계(810)에서, 선택된 워드라인의 드레인측 이웃과 같은, 최악의 경우의 판독 디스터브를 갖는 워드라인이 선택되면, 무작위 선택이 이루어지는 경우 보다, 단계(825)에서 에러 메트릭이 임계치를 초과할 가능성이 더 커지게 된다.
도 9는 제 1 판독 비교 레벨로부터 부가적인 판독 비교 레벨들을 결정함으로써, 선택된 워드라인을 판독하기 위한 판독 비교 레벨들을 설정하는 프로세스를 도시한다. 도 5c에 나타낸 바와 같이, DSPA의 일부로서 모든 데이터 상태들에 대하여 임계 전압 분포를 결정하는 것은, 상당한 수의 감지 동작들을 필요로 하며, 이에 따라 처리 집중적(processing-intensive)이다. 대안적인 시도는, 모든 데이터 상태들 보다 적은 수의 데이터 상태들에 대하여 임계 전압 분포를 결정하고, 결과들을 나머지 데이터 상태들에 대해 외삽(extrapolate)하는 것을 포함한다. 예를 들어, 얻어지는 임계 전압 분포는 2개의 인접하는 데이터 상태들 간을 구별하기에 충분한 전압들의 범위로 제한될 수 있으며, 이러한 결과로부터 최적의 판독 비교 레벨이 결정될 수 있다. 이후, 하나 이상의 다른 데이터 상태들에 대한 최적의 판독 비교 레벨들이 공식(formula)에 기초하여 결정될 수 있다. 이러한 공식을 이용하게 되면, 베이스라인 레벨에 대하여 소정의 데이터 상태에 대한 판독 비교 레벨에 있어서의 오프셋은 다른 데이터 상태들에 대한 오프셋으로 변환될 수 있으며, 이러한 다른 데이터 상태들에 대한 최적의 판독 비교 레벨은 알려진 베이스라인 레벨들 및 각각의 오프셋으로부터 얻어질 수 있다. 하나의 가능한 시도에서, 상기 오프셋들은 측정되는 오프셋과 같게 설정되거나, 또는 측정되는 오프셋의 일부분으로 설정된다. 베이스라인 판독 레벨들은, 어떠한 판독 디스터브도 없을 때의 테스팅 그리고/또는 이론적인 분석으로부터 최적인 것으로서 알려져있는 소정의 레벨들이 될 수 있다.
예를 들어, 8개의 데이터 상태들 및 7개의 판독 레벨들(VR1-VR7)이 있다고 가정한다. 도 5a-c를 또한 참조한다. 임계 전압 분포가 수행되는데, 이는 V'R7을 결정하기에 충분하다. 일단 V'R7이 결정되면, 오프셋 Δ7 = VR7 - V'R7 이 결정될 수 있다. 그런 다음, 나머지 판독 레벨들에 대한 오프셋들이 Δ7의 함수, 예를 들어 Δ1=f1(Δ7), Δ2=f2(Δ7), Δ3=f3(Δ7), Δ4=f4(Δ7), Δ5=f5(Δ7), Δ6=f6(Δ7) 로서 결정될 수 있다. 일반적으로, 상태 i에 대해, Δi=fi(Δ7)이고, V'Ri = VRi + Δi 이며, 여기서 VRi는 베이스라인 판독 레벨이다. 예로서, Δ7은 0.5V가 될 수 있고, 공식은 오프셋이 각각의 더 낮은 판독 레벨에 대해 감소한다는 테스팅 그리고/또는 이론적인 분석을 나타낼 수 있으며, 이로부터 예를 들어, Δ1=0.4×Δ7=0.20V, Δ2=0.5×Δ7=0.25V, Δ3=0.6×Δ7=0.30V, Δ4=0.7×Δ7=0.35V, Δ5=0.8×Δ7=0.40V 및 Δ6=0.9×Δ7=0.45V 를 계산할 수 있다. 이 경우, 상태 1-6에 대한 최적의 판독 비교 레벨들을 V'R1=VR1-0.20V, V'R2=VR2-0.25V, V'R3=VR3-0.30V, V'R4=VR4-0.35V, V'R5=VR5-0.40V 및 V'R6=VR6-0.45V 로서 계산한다. 여기서, 오프셋들은 음인 것으로 가정하는데, 이는 베이스라인 판독 레벨이 양인 경우이다. 만일 베이스라인 판독 레벨이 음이라면, 오프셋은 양이 될 것이다.
따라서, 첫 번째의 판독 비교 전압을 결정하기 위해, 2개의 가장 높은 프로그램된 상태들(예를 들어, 상태 6 및 7)을 포함하는 전압 범위를 판독할 수 있다. 일단 첫 번째의 판독 비교 전압이 결정되면, 다른 상태들에 대한 오프셋들 및 대응하는 최적의 판독 비교 전압들을 결정한다.
주목할 사항으로서, 가장 높은 상태들은 강한 신호 대 잡음비를 제공하며, 이에 의해 결과를 다른 상태들에 정확하게 외삽할 수 있게 하는데, 그 이유는 판독 디스터브가 임계 전압과 함께 증가하기 때문이다. 메모리 디바이스의 특정 기술의 디바이스 레벨 특성화에 기초하여, 일단 가장 높은 상태에 대한 오프셋을 알게 되면, 모든 상태들에 대한 오프셋들을 결정할 수 있을 것이다. 또한, 1개의 데이터 상태 보다는 많지만, 모든 데이터 상태들 보다는 적은 데이터 상태들에 대해 오프셋을 얻고, 이러한 결과들 이용하여 나머지 데이터 상태들에 대해 보다 정확하게 외삽하는 것이 가능하다. 또한, 가장 높은 상태 다음의 상태 역시 좋은 결과를 가져올 수 있다.
마지막 2개의 상태들의 분포들 간의 골은 고도의 정확성을 가지고 결정되어야 하기 때문에, 전압 간격은 미세한 분해능을 가지고 스캔(scan)되어야 한다. 예를 들어, 400mV 범위를 스캔하는 25mV의 스캔 스텝 사이즈(scan step size)는 16번의 판독을 야기하는데, 이는 (16개의 데이터 상태들을 가정하여) 임의의 페이지 상에서 수행되는 (어떠한 소프트 비트들도 갖지 않는) 전형적인 15번의 판독에 가까운 수이다. 이는, 선택된 워드라인이 겪는 VREAD 노출이, 최소한, 선택된 워드라인의 규칙적인 판독 동안 블록의 나머지가 받게 되는 VREAD 노출과 동등해지도록 보장한다. 대부분의 비선택 워드라인들은 VREAD에 대한 노출 시간을 선택된 워드라인의 2배를 겪게 될 것으로 논의될 수 있다. 이를 고려하여, 재기록을 트리거하기 위한 기준들이 더 엄격하게 만들어질 수 있다.
도 9를 참조하면, 단계(900)는 데이터를 판독하기 위해 판독 커맨드를 수신하는 것을 포함한다. 단계(905)는 판독 커맨드로부터 선택된 워드라인을 식별하는 것을 포함한다. 다음으로, 2개의 경로들중 하나를 따라가는데, 하나는 비선택 워드라인을 필요로 하고, 하나는 선택된 워드라인을 필요로 한다. 제 1 경로에서, 단계(910)는 다른 워드라인을 선택하는 것을 포함한다. 단계(915)는, 제 1 쌍의 인접하는 데이터 상태들의 인접하는 데이터 상태들을 구별하기에 충분한 임계 전압을 얻기 위해, 다른 워드라인의 저장 요소들에 대해 감지 동작들을 수행하는 것을 포함한다. 제 2 경로에서, 단계(920)는 단계(915)와 같지만, 선택된 워드라인을 수반한다. 어느 경우이든, 단계(925)는 임계 전압 분포에서의 골을 식별하는 것을 포함하고, 단계(930)는 이러한 골에 기초하여 제 1 판독 비교 레벨을 결정하는 것을 포함한다. 이를 테면, 이것은 도 5c의 V'R7이 될 수 있다.
단계(935)에서, 제 1 판독 비교 레벨, 및 선택적으로는 다른 요인들에 기초하여, 상기 설명한 것과 같은 공식을 이용하여 다른 판독 비교 레벨들을 결정한다. 다른 요인들은, 예를 들어 프로그램/소거 주기들의 수, 워드라인들의 세트 내에서의 선택된 워드라인의 위치, 온도 의존성 및 파워 서플라이 레벨 의존성(박스 940)을 포함한다. 예를 들어, 테스팅 그리고/또는 이론적인 계산은, 특정의 메모리 디바이스에 대해, 이러한 변수들중 임의의 변수가 최적의 판독 레벨에 영향을 미친다는 것을 나타낼 수 있다. 또한, 한 세트의 변수들 하에서 최적인 최적의 판독 비교 레벨은, 다른 세트의 변수들이 존재할 때에 조정될 수 있다. 이를 테면, 다른 데이터 상태들에 대한 오프셋들은 프로그램/소거 주기들의 수에 기초하여 달라질 수 있다. 일예로서, 더 높은 상태들에 대한 오프셋은 더 낮은 상태들에 대한 오프셋 보다 비교적 더 많이 증가할 수 있다. 한 상태의 오프셋들을 다른 상태의 오프셋들에 관련시키는 공식은 그에 따라 조정될 수 있다.
유사하게, 한 워드라인에 대해 결정된 소정 상태에 대한 최적의 판독 레벨은 워드라인 위치에 기초하여 다른 워드라인에 대해 조정되어야 하는 것으로 결정될 수 있다. 워드라인들은 비교적 유사한 레벨의 판독 디스터브를 겪는 워드라인들의 서브세트들로 분류될 수 있다. 예를 들어, 소스측 워드라인들, 중간 워드라인들 및 드레인측 워드라인들로 분류될 수 있다.
온도 의존성과 관련하여, 저장 요소들의 임계 전압은 -2mV/℃ 씩 감소한다. 또한, 더 높은 온도들에서는, 더 많은 디스터브가 발생한다. 따라서, 만일 최적의 판독 비교 레벨들이 결정될 때의 어떠한 베이스라인 레벨 보다 온도가 더 높다면, 이후 온도가 다를 때 이용될 때에 최적의 판독 비교 레벨들이 그에 따라 조정되도록 이러한 사실을 고려해야 한다. 온도 의존 회로는 온도의 표시를 제공할 수 있다. 온도-의존 기준 신호를 제공하는 다양한 기술들이 알려져있다. 하나의 가능한 시도에서는, 밴드갭 회로(band gap circuit)가 이용된다. 예를 들어, 본원의 참조로서 인용되는 미국 특허 6,801,454호(명칭: "Voltage Generation Circuitry Having Temperature Compensation")는 온도 계수에 기초하여 비휘발성 메모리에 판독 전압들을 출력하는 전압 발생 회로를 개시한다. 이 회로는 밴드갭 전류를 이용하는데, 이는 온도 증가에 따라 증가하는 온도-의존 부분(temperature-dependent portion) 및 온도-비의존 부분(temperature-independent portion)을 포함한다.
파워 서플라이 레벨 의존성과 관련하여, 보상된다고 하더라도, 파워 서플라이 레벨은 달라질 수 있으며, 그 결과 감지 동안 이용되는 전압이 달라질 수 있다. 이러한 변화는 최적의 판독 비교 레벨들에 대한 적절한 조정을 제공하기 위해 적절한 회로를 이용하여 추적될 수 있다.
단계(945)는 결정된 판독 비교 레벨들을 이용하여 선택된 워드라인의 저장 요소들에 대해 판독 동작을 수행하는 것을 포함하고, 단계(950)는 결과들을 보고하는 것을 포함하며, 단계(955)에서 프로세스가 끝난다. 도 10은 제 1 판독 비교 레벨로부터 부가적인 판독 비교 레벨들을 결정함으로써, 선택된 워드라인을 판독하기 위한 판독 비교 레벨들을 설정하는 프로세스를 더 상세하게 도시한다. 단계(1000)는 2개의 가장 높은 인접 데이터 상태들(예를 들어, 8개의 상태들이 존재하는 경우, 상태들 6 및 7)(도 5a-c 참조)을 구별하기에 충분한 임계 전압 분포를 얻기 위해, (선택된 워드라인 또는 다른 워드라인의) 저장 요소들 상에서 감지 동작들을 수행하는 것을 포함한다. 다수의 데이터 상태들이 더 낮은 범위로부터 더 높은 범위로 연장되어 있으며, 인접하는 데이터 상태들(6 및 7)은 더 높은 범위 내에 있다.
단계(1005)는 임계 전압 분포 내에서의 골을 식별하는 것을 포함하고, 단계(1010)는 이러한 골에 기초하여 제 1 판독 비교 레벨(V'R7)을 설정하는 것을 포함한다. 단계(1015)는 제 1 판독 비교 레벨과 관련된 베이스라인 판독 레벨 간의 차이(예를 들어, V'R7-VR7)에 기초하여 제 1 시프트(예를 들어, Δ7)를 결정하는 것을 포함한다. 단계(1020)에서, 제 1 시프트 및 선택적으로는 다른 요인들에 기초하여, 다른 판독 비교 레벨들이 공식에 기반하여 결정된다. 각 베이스라인 판독 비교 레벨은, 각 비교 레벨에 대한 부가적인 감지 동작들을 수행하지 않으면서, 최적의 새로운 최적화된 비교 레벨로, 관련된 임계 전압 시프트 만큼, 변경될 수 있다. 따라서, 상태들의 더 낮은 범위에 있는 데이터 상태들에 대해, 최적화된 비교 레벨들이 결정될 수 있는 바, 예를 들어 상태 0 및 1에 대해 V'R1이 결정되고, 상태 1 및 2에 대해 V'R2가 결정되며, 이하 같은 방식으로 결정된다. 다른 요인들은, 예를 들어 프로그램/소거 주기들의 수, 워드라인들의 세트 내에서의 선택된 워드라인의 위치, 온도 의존성 및 파워 서플라이 레벨 의존성(박스 1025)을 포함한다. 단계(1030)는 결정된 판독 비교 레벨들을 이용하여 선택된 워드라인의 저장 요소들에 대해 판독 동작을 수행하는 것을 포함하고, 단계(1035)는 결과들을 보고하는 것을 포함하며, 그리고 단계(1045)에서 프로세스가 끝난다.
도 11은 도 1 및 2에 나타낸 것과 같은 NAND 저장 요소들의 어레이(1100)의 예를 도시한다. 각 컬럼을 따라, 비트라인(1106)은 NAND 스트링(1150)에 대한 드레인 선택 게이트의 드레인 단자(1126)에 결합된다. NAND 스트링들의 각 로우를 따라, 소스 라인(1104)은 NAND 스트링들의 소스 선택 게이트들의 모든 소스 단자들(1128)을 연결할 수 있다. 메모리 시스템의 일부로서의 NAND 아키텍쳐 어레이 및 그 동작의 예는 미국 특허 제5,570,315호, 제5,774,397호 및 제6,046,935호에서 찾아볼 수 있다.
저장 요소들의 어레이는 저장 요소들의 많은 수의 블록들로 분할된다. 플래시 EEPROM 시스템에 대해 공통적인 바와 같이, 블록은 소거의 단위이다. 즉, 각 블록은 함께 소거되는 최소수의 저장 요소들을 포함한다. 전형적으로, 각 블록은 다수의 페이지들로 분할된다. 페이지는 프로그래밍의 단위이다. 일 실시예에서, 개별적인 페이지들은 세그먼트들로 분할되고, 세그먼트들은 기본적인 프로그래밍 동작으로서 한번에 기록되는 최소수의 저장 요소들을 포함한다. 전형적으로, 하나 이상의 데이터 페이지들이 저장 요소들의 하나의 로우에 저장된다. 페이지는 하나 이상의 섹터들을 저장할 수 있다. 섹터는 사용자 데이터 및 오버헤드 데이터를 포함한다. 전형적으로, 오버헤드 데이터는 섹터의 사용자 데이터로부터 계산되는 에러 정정 코드(ECC)를 포함한다. (하기 설명되는) 제어기의 일부는 데이터가 어레이 내에 프로그램되고 있을 때에 ECC를 계산하며, 그리고 또한 언제 데이터가 어레이로부터 판독되는 지를 체크한다. 대안적으로, ECC들 그리고/또는 다른 오버헤드 데이터는 이들이 관련되는 사용자 데이터와 다른 페이지들 내에, 또는 심지어 다른 블록들 내에 저장될 수 있다.
전형적으로, 사용자 데이터의 섹터는 512 바이트들인데, 이는 자기 디스크 드라이브들 내의 섹터의 사이즈에 대응한다. 전형적으로, 오버헤드 데이터는 부가적인 16-20 바이트들이다. 많은 수의 페이지들은, 8페이지로부터, 예를 들어 최대 32, 64, 128 또는 그 이상의 페이지들까지 어디에서든지 블록을 형성한다. 일부 실시예들에서, NAND 스트링들의 하나의 로우는 하나의 블록을 포함한다.
일 실시예에서, 메모리 저장 요소들은, 충분한 시간 주기 동안 p-웰을 소거 전압(예를 들어, 14-22V)으로 올리고, 소스 및 비트라인들이 플로팅되는 동안, 선택된 블록의 워드라인들을 접지시킴으로써, 소거된다. 용량성 결합으로 인해, 비선택 워드라인들, 비트라인들, 선택 라인들 및 공통-소스 역시 소거 전압의 상당 부분(significant fraction)까지 올라간다. 이에 따라, 선택된 저장 요소들의 터널 산화물층들에 강한 전계가 걸리게 되고, 전형적으로 파울러-노드하임 터널링 메커니즘에 의해 플로팅 게이트들의 전자들이 기판측으로 방출됨에 따라, 선택된 저장 요소들의 데이터가 소거된다. 전자들이 플로팅 게이트로부터 p-웰 영역으로 이동함에 따라, 선택된 저장 요소의 임계 전압이 낮아진다. 소거는 전체 메모리 어레이, 개별적인 블록들 또는 다른 단위의 저장 요소들에 대해 수행될 수 있다.
도 12는 단일의 로우/컬럼 디코더들 및 판독/기록 회로들을 이용하는 비휘발성 메모리 시스템의 블록도이다. 이러한 블록도는 본 발명의 일 실시예에 따라, 저장 요소들의 페이지를 병렬로 판독 및 프로그램하기 위한 판독/기록 회로들을 갖는 메모리 디바이스(1296)를 도시한다. 메모리 디바이스(1296)는 하나 이상의 메모리 다이(1298)를 포함한다. 이 메모리 다이(1298)는 저장 요소들의 2차원 어레이(1100), 제어 회로(1210) 및 판독/기록 회로들(1265)을 포함한다. 일부 실시예들에서, 저장 요소들의 어레이는 3차원이 될 수 있다. 메모리 어레이(1100)는 로우 디코더(1230)를 통해 워드 라인들에 의해 어드레스가능하며, 그리고 컬럼 디코더(1260)를 통해 비트라인들에 의해 어드레스가능하다. 판독/기록 회로들(1265)은 다수의 감지 블록들(1200)을 포함하고, 저장 요소들의 페이지가 병렬로 판독 또는 프로그램될 수 있게 한다. 전형적으로, 제어기(1250)는 하나 이상의 메모리 다이(1298)와 동일한 메모리 디바이스(1296)(예를 들어, 제거가능한 저장 카드) 내에 포함된다. 커맨드들 및 데이터는 라인들(1220)을 통해 호스트와 제어기(1250) 사이에, 그리고 라인들(1218)을 통해 제어기와 하나 이상의 메모리 다이(1298) 사이에 전송된다.
제어 회로(1210)는 메모리 어레이(1100) 상에서 메모리 동작들을 수행하기 위해 판독/기록 회로들(1265)과 협동한다. 제어 회로(1210)는 상태 머신(1212), 온칩 어드레스 디코더(1214) 및 전력 제어 모듈(1216)을 포함한다. 상태 머신(1212)은, 프리챠징을 제어하는 것을 포함하여, 메모리 동작들의 칩 레벨 제어를 제공한다. 온칩 어드레스 디코더(1214)는 디코더들(1230 및 1260)에 의해 이용되는 하드웨어 어드레스와 호스트 또는 메모리 제어기에 의해 이용되는 것 간에 어드레스 인터페이스를 제공한다. 전력 제어 모듈(1216)은 메모리 동작들 동안 워드 라인들 및 비트라인들에 공급되는 전력 및 전압들을 제어한다.
어떠한 구현들에 있어서, 도 12의 컴포넌트들중 일부는 결합될 수 있다. 다양한 설계들에서, 저장 요소 어레이(1100) 이외의, 하나 이상의 컴포넌트들은 (단독으로 또는 결합하여) 관리 회로로서 간주될 수 있다. 예를 들어, 하나 이상의 관리 회로들은 제어 회로(1210), 상태 머신(1212), 디코더들(1214/1260), 전력 제어 모듈(1216), 감지 블록들(1200), 판독/기록 회로들(1265), 제어기(1250) 등 중에서 어느 하나 또는 이들의 결합을 포함할 수 있다.
도 13은 이중의 로우/컬럼 디코더들 및 판독/기록 회로들을 이용하는 비휘발성 메모리 시스템의 블록도이다. 여기에서는, 도 12에 나타낸 메모리 디바이스(1296)의 다른 배열이 제공된다. 다양한 주변 회로들에 의한 메모리 어레이(1100)로의 액세스는, 어레이의 반대측들 상에서, 대칭적인 방식으로 실시되며, 이에 따라 각 측 상의 회로들 및 액세스 라인들의 밀도는 반으로 줄어든다. 따라서, 로우 디코더는 로우 디코더들(1230A 및 1230B)로 분할되고, 컬럼 디코더는 컬럼 디코더들(1260A 및 1260B)로 분할된다. 유사하게, 판독/기록 회로들은 바닥으로부터 비트라인들에 연결되는 판독/기록 회로들(1265A) 및 어레이(1100)의 상부로부터 비트라인들에 연결되는 판독/기록 회로들(1265B)로 분할된다. 이러한 방식으로, 판독/기록 모듈들의 밀도는 본질적으로 1/2로 감소된다. 도 13의 디바이스 역시 도 12의 디바이스에 대해 상기 설명한 제어기를 포함할 수 있다.
도 14는 감지 블록의 일 실시예를 도시하는 블록도이다. 개별적인 감지 블록(1200)은 감지 모듈(1280)로서 지칭되는 코어 부분 및 공통 부분(1290)으로 분할된다. 일 실시예에서는, 각 비트라인에 대해 개별적인 감지 모듈(1280)이 있고, 다수의 감지 모듈들(1280)의 세트에 대해 하나의 공통 부분(1290)이 있다. 일 예에서, 감지 블록은 하나의 공통 부분(1290) 및 8개의 감지 모듈들(1280)을 포함한다. 그룹 내의 각 감지 모듈들은 데이터 버스(1272)를 통해 관련 공통 부분과 통신한다. 보다 상세한 사항들에 대해서는, 2006년 6월 29일 공개되었으며 그 명칭이 "Non-Volatile Memory and Method with Shared Processing for an Aggregate of Sense Amplifiers"인 미국 특허 공개 2006/0140007호를 참조하기 바라며, 이는 그 전체가 본원의 참조로서 인용된다.
감지 모듈(1280)은 감지 회로(1270)를 포함하는데, 이 감지 회로는 연결된 비트라인 내의 도통 전류가 소정의 임계 레벨 이상인지, 아니면 미만인지를 결정한다. 감지 모듈(1280)은 또한, 연결된 비트라인 상에 전압 조건을 설정하는 데에 이용되는 비트라인 래치(1282)를 포함한다. 예를 들어, 비트라인 래치(1282)에 래치된 소정의 상태는, 연결된 비트라인이 프로그램 금지를 나타내는 상태(예를 들어, 1.5-3V)로 풀링(pulling)되게 한다.
공통 부분(1290)은 프로세서(1292)와, 데이터 래치들의 세트(1294)와, 그리고 데이터 버스(1220)와 데이터 래치들의 세트(1294) 사이에 결합된 I/O 인터페이스(1296)를 포함한다. 프로세서(1292)는 계산들을 수행한다. 예를 들어, 그 기능들중 하나는 감지된 메모리 셀에 저장된 데이터를 결정하고, 결정된 데이터를 데이터 래치들의 세트에 저장하는 것이다. 데이터 래치들의 세트(1294)는 판독 동작 동안 프로세서(1292)에 의해 결정된 데이터 비트들을 저장하는 데에 이용된다. 이는 또한 프로그램 동작 동안 데이터 버스(1220)로부터 들어오는 데이터 비트들을 저장하는 데에 이용된다. 들어오는 데이터 비트들은 메모리 내에 프로그램될 것으로 의도되는 기록 데이터를 나타낸다. I/O 인터페이스(1296)는 데이터 래치들(1294)과 데이터 버스(1220) 간의 인터페이스를 제공한다.
판독 또는 감지 동안, 시스템의 동작은 어드레스되는 저장 요소로의 서로 다른 제어 게이트 전압들의 공급을 제어하는 상태 머신(1212)의 제어하에 있다. 메모리에 의해 지원되는 다양한 메모리 상태들에 해당하는 미리 정해진 제어 게이트 전압들을 통해 스텝(step)을 밟을 때, 감지 모듈(1280)은 이러한 전압들중 하나에 트립(trip)되고, 감지 모듈(1280)로부터 버스(1272)를 통해 프로세서(1292)에 출력이 제공된다. 이때, 프로세서(1292)는 입력 라인들(1293)을 통해 상태 머신으로부터 인가되는 제어 게이트 전압에 대한 정보 및 감지 모듈의 트리핑 이벤트(tripping event)(들)를 고려하여 결과적인 메모리 상태를 결정한다. 그런 다음, 메모리 상태에 대한 이진 엔코딩을 계산하고, 결과적인 데이터 비트들을 데이터 래치들(1294)에 저장한다. 코어 부분의 다른 실시예에서, 비트라인 래치(1282)는, 감지 모듈(1280)의 출력을 래치하기 위한 래치로서, 그리고 상기 설명한 비트라인 래치로서의 이중 임무를 하게 된다.
어떠한 구현들은 다수의 프로세서들(1292)를 포함할 것임이 예상된다. 일 실시예에서, 각 프로세서(1292)는 출력 라인(미도시)을 포함하며, 이에 따라 출력 라인들 각각은 함께 와이어드-OR(wired-OR)된다. 어떠한 실시예들에서, 출력 라인들은 와이어드-OR 라인에 결합되기 전에 인버트된다. 이러한 구성은, 프로그램 검증 프로세스 동안, 프로그래밍 프로세스가 완료되는 때를 빠르게 결정할 수 있게 하는데, 그 이유는 와이어드-OR를 수신하는 상태 머신이 프로그램되는 모든 비트들이 언제 요구되는 레벨에 도달하는 지를 결정할 수 있기 때문이다. 예를 들어, 각 비트가 자신의 요구되는 레벨에 도달할 때, 그 비트에 대한 논리 제로가 와이어드-OR 라인에 전송된다(또는 데이터 1이 인버트된다). 모든 비트들이 데이터 0을 출력하면(또는 데이터 1이 인버트되면), 상태 머신은 프로그래밍 프로세스를 종료해야함을 알게 된다. 각 프로세서가 8개의 감지 모듈들과 통신하기 때문에, 상태 머신은 와이어드-OR 라인을 8번 판독할 필요가 있거나, 또는 관련된 비트라인들의 결과들을 누적하기 위해 프로세서(1292)에 논리가 부가되며, 이에 따라 상태 머신은 단지 와이어드-OR 라인을 단지 한번만 판독하면 된다. 유사하게, 논리 레벨들을 정확하게 선택함으로써, 글로벌 상태 머신은 첫 번째 비트가 자신의 상태를 변경하고 그에 따라 알고리즘들을 변경하는 때를 검출할 수 있다.
프로그램 또는 검증 동안, 프로그램되어야 하는 데이터는 데이터 버스(1220)로부터 데이터 래치들(1294)의 세트에 저장된다. 상태 머신의 제어하에서의 프로그램 동작은 어드레스되는 저장 요소들의 제어 게이트들에 인가되는 일련의 프로그래밍 전압 펄스들을 포함한다. 각 프로그래밍 펄스 다음에는, 저장 요소가 요구되는 상태로 프로그램되었는 지를 결정하는 리드백(read back)(검증)이 뒤따른다. 프로세서(1292)는 요구되는 메모리 상태에 대해 리드백된 메모리 상태를 모니터한다. 두개가 일치하면, 프로세서(1292)는 비트라인이 프로그램 금지를 나타내는 상태로 풀링될 수 있도록 비트라인 래치(1282)를 설정한다. 이는, 그 제어 게이트 상에 프로그래밍 펄스들이 나타날지라도, 그 비트라인에 결합된 저장 요소가 더 프로그램되는 것을 막는다. 다른 실시예들에서는, 프로세서가 먼저 비트라인 래치(1282)를 로드하고, 감지 회로가 그것을 검증 프로세스 동안 금지 값으로 설정한다.
데이터 래치 스택(1294)은 감지 모듈에 해당하는 데이터 래치들의 스택을 포함한다. 일 실시예에서, 감지 모듈(1280) 마다 3개의 데이터 래치들이 있다. 어떠한 구현들에 있어서(하지만, 요구되지는 않는다), 데이터 래치들은 시프트 레지스터로서 구현되며, 이에 따라 그 내에 저장된 병렬 데이터가 데이터 버스(1220)에 대해 직렬 데이터로 변환되고, 그 반대 경우의 변환도 행해진다. 바람직한 실시예에서, m개의 저장 요소들의 판독/기록 블록에 해당하는 모든 데이터 래치들은 블록 시프트 레지스터를 형성하도록 함께 링크될 수 있으며, 이에 따라 데이터의 블록은 직렬 전송에 의해 입력 또는 출력될 수 있다. 특히, 판독/기록 모듈들의 뱅크는, 이들이 전체 판독/기록 블록에 대한 시프트 레지스터의 일부인것 처럼, 자신의 데이터 래치들의 세트 각각이 데이터 버스로/로부터 직렬로 데이터를 시프트하도록 적합하게 된다.
비휘발성 저장 디바이스들의 다양한 실시예들의 구조 그리고/또는 동작들의 대한 부가적인 정보는, (1) 2007년 3월 27일 특허되었으며, 그 명칭이 "Non-Volatile Memory And Method With Reduced Source Line Bias Errors"인 미국 특허 7,196,931호; (2) 2006년 4월 4일 특허되었으며, 그 명칭이 "Non-Volatile Memory And Method with Improved Sensing"인 미국 특허 7,023,736호; (3) 2006년 5월 16일 특허되었으며, 그 명칭이 "Improved Memory Sensing Circuit And Method For Low Voltage Operation"인 미국 특허 7,046,568호; (4) 2007년 3월 27일 특허되었으며, 그 명칭이 "Compensating for Coupling During Read Operations of Non-Volatile Memory"인 미국 특허 7,196,928호; 및 (5) 2008년 2월 5일 특허되었으며, 그 명칭이 "Reference Sense Amplifier For Non-Volatile Memory"인 미국 특허 7,327,619호에서 찾아볼 수 있다. 바로 위에서 리스트된 5개의 모든 특허 문서들은 그 전체가 본원의 참조로서 인용된다.
도 15는 메모리 어레이를 모든 비트라인 메모리 아키텍쳐(all bit line memory architecture)에 대한 블록들로, 또는 홀수-짝수 메모리 아키텍쳐(odd-even memory architecture)에 대한 블록들로 구성하는 예를 도시한다. 메모리 어레이(1100)의 예시적인 구조들이 설명된다. 하나의 예로서, 1,024개의 블록들로서 분할되는 NAND 플래시 메모리 EEPROM이 설명된다. 각 블록에 저장된 데이터는 동시에 소거될 수 있다. 일 실시예에서, 블록은 동시에 소거되는 저장 요소들의 최소 단위이다. 본 예에서, 각 블록에는, 비트라인들(BL0, BL1, ... BL8511)에 대응하는 8,512개의 컬럼들이 있다. 모든 비트라인(ABL) 아키텍쳐 (아키텍쳐 1510)로서 지칭되는 일 실시예에서, 블록의 모든 비트라인들은 판독 및 프로그램 동작들 동안 동시에 선택될 수 있다. 공통 워드 라인을 따라 있으며, 임의의 비트라인에 연결된 저장 요소들은 동시에 프로그램될 수 있다.
제공되는 예에서는, 4개의 저장 요소들이 직렬로 연결되어 NAND 스트링을 형성한다. 4개의 저장 요소들이 각 NAND 스트링 내에 포함되는 것으로 나타나있지만, 4개 보다 많거나 적은 수(예를 들어, 16, 32, 64 또는 다른 수)가 이용될 수 있다. NAND 스트링의 하나의 단자는 (선택 게이트 드레인 라인들(SGD)에 연결된) 드레인 선택 게이트를 통해 해당하는 비트라인에 연결되고, 다른 단자는 (선택 게이트 소스 라인(SGS)에 연결된) 소스 선택 게이트를 통해 공통-소스에 연결된다.
홀수-짝수 아키텍쳐 (아키텍쳐 1500)으로 지칭되는 다른 실시예에서, 비트라인들은 짝수 비트라인들(BLe) 및 홀수 비트라인들(BLo)로 분할된다. 이러한 홀수/짝수 비트라인 아키텍쳐에 있어서, 공통 워드 라인을 따라 있으며 홀수 비트라인들에 연결된 저장 요소들은 어느 하나의 시간(one time)에 프로그램되는 반면, 공통 워드 라인을 따라 있고 짝수 비트라인들에 연결된 메모리 셀들은 다른 시간(another time)에 프로그램된다. 본 예에서, 각 블록에는, 짝수 컬럼들 및 홀수 컬럼들로 분할되는 8,512개의 컬럼들이 있다. 본 예에서는, 4개의 저장 요소들이 직렬로 연결되어 NAND 스트링을 형성하는 것으로 나타나있다. 비록 4개의 저장 요소들이 각 NAND 스트링에 포함되는 것으로 나타나있지만, 4개 보다 크거나 적은 저장 요소들이 이용될 수 있다.
판독 동작과 프로그래밍 동작중 하나의 구성 동안, 4,256개의 저장 요소들이 동시에 선택된다. 선택된 저장 요소들은 동일한 워드라인 및 동일한 종류의 비트라인(예를 들어, 짝수 또는 홀수)을 갖는다. 따라서, 논리 페이지를 형성하는 532 바이트의 데이터가 동시에 판독 또는 프로그램될 수 있으며, 메모리의 하나의 블록은 적어도 8개의 논리 페이지들(각각 홀수 및 짝수 페이지들을 갖는, 4개의 워드라인들)을 저장할 수 있다. 다중-상태 저장 요소들에 있어서, 각 저장 요소가 2비트의 데이터를 저장할 때(이러한 2비트 각각은 서로 다른 페이지에 저장된다), 하나의 블록은 16개의 논리 페이지들을 저장한다. 또한, 다른 사이즈의 블록들 및 페이지들도 이용될 수 있다.
ABL 또는 홀수-짝수 아키텍쳐에 있어서, 저장 요소들은 p-웰을 소거 전압(예를 들어, 20V)으로 올리고 선택된 블록의 워드라인들을 접지시킴으로써 소거될 수 있다. 소스 및 비트라인들은 플로팅된다. 소거는 전체 메모리 어레이, 개별적인 블록들, 또는 메모리 디바이스의 일부인 저장 요소들의 다른 단위로 수행될 수 있다. 전자들이 저장 요소들의 플로팅 게이트들로부터 p-웰 영역으로 이동함으로써, 그 저장 요소들의 VTH는 음이 된다.
판독 동작 및 검증 동작에 있어서, 선택 게이트들(SGD 및 SGS)은 2.5V 내지 4.5V 범위의 전압에 연결되고, 비선택 워드라인들(예를 들어, 선택된 워드라인이 WL2일 때에는, WL0, WL1 및 WL3)은 판독 패스 전압(VREAD)(전형적으로, 4.5 내지 6V 범위의 전압)으로 올라감으로써, 트랜지스터들을 패스 게이트들로서 동작하게 한다. 선택된 워드라인 WL2에 연결되는 전압의 레벨은, 관련된 저장 요소의 VTH가 이러한 레벨 보다 큰지 아니면 작은 지를 결정하기 위해, 각각의 판독 및 검증 동작에 대해 특정된다. 예를 들어, 2-레벨 저장 요소의 판독 동작에 있어서, 선택된 워드라인 WL2는 접지되며, 이에 따라 VTH가 0V 보다 큰지의 여부가 검출된다. 2-레벨 저장 요소의 검증 동작에 있어서, 선택된 워드라인 WL2는, 예를 들어 0.8V에 연결되며, 이에 따라 VTH가 적어도 0.8V에 도달했는 지가 검증된다. 소스 및 p-웰은 0V가 된다. 짝수 비트 라인들(BLe)인 것으로 가정되는 선택된 비트라인들은, 예를 들어 0.7V의 레벨로 프리챠지된다. VTH가 워드라인 상의 판독 또는 검증 레벨 보다 높으면, 관심있는 저장 요소와 관련된 비트라인(BLe)의 전위 레벨은 비전도성(non-conductive)의 저장 요소때문에 하이 레벨로 유지된다. 한편, VTH가 판독 또는 검증 레벨 보다 낮으면, 관심있는 비트라인(BLe)의 전위 레벨은 로우 레벨, 예를 들어 0.5V 미만으로 감소하는데, 이는 전도성 저장 요소가 비트라인을 디스챠지시키기 때문이다. 이에 의해, 저장 요소의 상태는 비트라인에 연결된 전압 비교기 감지 증폭기에 의해 검출될 수 있다.
상기 설명한 소거, 판독 및 검증 동작은 종래에 알려진 기술들에 따라 수행된다. 따라서, 설명된 많은 세부사항들은 당업자에 의해 달라질 수 있다. 또한, 당업계에 알려진 다른 소거, 판독 및 검증 기술들도 이용될 수 있다.
도 16은 임계 전압 분포들의 예시적인 세트 및 1-패스 프로그래밍을 도시한다. 각 저장 요소가 2비트의 데이터를 저장하는 경우에 대해, 저장 요소 어레이에 대한 예시적인 VTH 분포들이 제공된다. 제 1 임계 전압 분포(E)가 소거된 저장 요소들에 대해 제공된다. 프로그램된 저장 요소들에 대한 3개의 임계 전압 분포들(A, B 및 C)이 또한 도시된다. 일 실시예에서, E 분포 내의 임계 전압들은 음(negative)이며, A, B 및 C 분포들 내의 임계 전압들은 양(positive)이다.
각각의 별개의 임계 전압 범위는 데이터 비트들의 세트에 대한 소정의 값들에 해당한다. 저장 요소 내에 프로그램되는 데이터와 그 저장 요소의 임계 전압 레벨들 간의 특정의 관계는 저장 요소들에 대해 채택되는 데이터 엔코딩 방식에 의존한다. 예를 들어, 2007년 6월 26일 특허된 미국 특허 7,237,074호 및 미국 특허 6,222,762호는 다중 상태 플래시 저장 요소들에 대한 다양한 데이터 엔코딩 방식들을 설명하며, 이러한 2개의 인용 문헌들은 그 전체가 본원의 참조로서 인용된다. 일 실시예에서, 데이터 값들은 그레이 코드 할당(gray code assignment)을 이용하여 임계 전압 범위들에 할당되며, 이에 따라 플로팅 게이트의 임계 전압이 그 이웃의 물리 상태로 잘못하여 시프트되는 경우, 단지 1개의 비트 만이 영향을 받게 될 것이다. 하나의 예는 전압 범위(E)(상태 E)에 대해 "11"을, 임계 전압 범위(A)(상태 A)에 대해 "10"을, 임계 전압 범위(B)(상태 B)에 대해 "00"을, 그리고 임계 전압 범위(C)(상태 C)에 대해 "01"을 할당한다. 하지만, 다른 실시예들에서는, 그레이 코드가 이용되지 않는다. 비록 4개의 상태들을 나타내었지만, 본 발명은 4개 보다 많거나 적은 상태를 포함하는 것들을 포함하는 다른 다수 상태 구조들에 대해서도 이용될 수 있다.
저장 요소들로부터 데이터를 판독하기 위한 3개의 판독 기준 전압들(Vra, Vrb 및 Vrc)을 보여준다. 소정의 저장 요소의 임계 전압이 Vra, Vrb 및 Vrc 보다 큰지 또는 작은지를 테스트함으로써, 시스템은 그 저장 요소의 상태(예를 들어, 프로그래밍 상태)를 결정할 수 있다.
또한, 3개의 검증 기준 전압들(Vva, Vvb 및 Vvc)이 제공된다. 저장 요소들을 상태(A)로 프로그램할 때, 시스템은 이러한 저장 요소들이 Vva 보다 크거나 같은 임계 전압을 갖는 지를 테스트할 것이다. 저장 요소들을 상태(B)로 프로그램할 때, 시스템은 이러한 저장 요소들이 Vvb 보다 크거나 같은 임계 전압을 갖는 지를 테스트할 것이다. 저장 요소들을 상태(C)로 프로그램할 때, 시스템은 이러한 저장 요소들이 Vvc 보다 크거나 같은 자신들의 임계 전압을 갖는 지를 테스트할 것이다.
풀 시퀀스 프로그래밍(full sequence programming)으로서 알려져있는 일 실시예에서, 저장 요소들은 소거 상태(E)로부터 프로그램 상태들(A, B 또는 C)중 임의의 상태로 바로 프로그램될 수 있다. 예를 들어, 프로그램되어야 하는 저장 요소들의 집단(population)이 먼저 소거됨으로써, 그 집단 내의 모든 저장 요소들은 소거 상태(E)가 된다. 그런 다음, 도 20의 제어 게이트 전압 시퀀스에 의해 도시된 것과 같은 일련의 프로그래밍 펄스들을 이용하여, 저장 요소들을 상태들(A, B 또는 C)로 바로 프로그램한다. 어떠한 저장 요소들이 상태(E)로부터 상태(A)로 프로그램되는 동안, 다른 저장 요소들은 상태(E)로부터 상태(B)로 그리고/또는 상태(E)로부터 상태(C)로 프로그램된다. WLn 상에서 상태(E)로부터 상태(C)로 프로그램할 때, WLn-1 아래의 인접하는 플로팅 게이트에 대한 기생 결합(parasitic coupling)의 양이 최대화되는데, 이는 WLn 아래의 플로팅 게이트 상에서의 전하량의 변경이, 상태(E)로부터 상태(A)로 또는 상태(E)로부터 상태(B)로 프로그램할 때의 전하의 변경과 비교하여 가장 크기 때문이다. 상태(E)로부터 상태(B)로 프로그램할 때, 인접하는 플로팅 게이트에 대한 결합의 양은 감소된다. 상태(E)로부터 상태(A)로 프로그램할 때, 결합의 양은 훨씬 더 감소된다.
도 17은 2개의 다른 페이지들, 즉 하위 페이지 및 상위 페이지에 대해 데이터를 저장하는 다중 상태 저장 요소를 프로그래밍하는 2-패스 기술의 일례를 도시한다. 상태 E(11), 상태 A(10), 상태 B(00) 및 상태 C(01)의 4개의 상태가 도시된다. 상태 E에 대해, 양 페이지들은 "1"을 저장한다. 상태 A에 대해, 하위 페이지는 "0"을 저장하고, 상위 페이지는 "1"을 저장한다. 상태 B에 대해, 양 페이지들은 "0"을 저장한다. 상태 C에 대해, 하위 페이지는 "1"을 저장하고, 상위 페이지는 "0"을 저장한다. 비록 특정의 비트 패턴들이 각 상태들에 할당되었지만, 다른 비트 패턴들도 할당될 수 있다는 것을 주목하자.
제 1 프로그래밍 패스에서, 저장 요소의 임계 전압 레벨은 하위 논리 페이지 내에 프로그램될 비트에 따라 설정된다. 만일 그 비트가 논리 "1"이라면, 임계 전압은 변하지 않는데, 그 이유는 이전에 소거된 결과로서 임계 전압이 적절한 상태에 있기 때문이다. 하지만, 만일 프로그램될 비트가 논리 "0"이라면, 저장 요소의 임계 레벨은 화살표(1700)로 나타낸 바와 같이 상태 A로 증가한다. 이에 의해, 제 1 프로그래밍 패스가 끝난다.
제 2 프로그래밍 패스에 있어서, 저장 요소의 임계 전압 레벨은, 상위 논리 페이지 내에 프로그램되고 있는 비트에 따라 설정된다. 만일 상위 논리 페이지 비트가 논리 "1"을 저장하는 경우에는, 어떠한 프로그래밍도 일어나지 않는데, 그 이유는 저장 요소는 하위 페이지 비트의 프로그래밍에 따라, 상태 E 또는 상태 A중 하나에 있기 때문이며, 이들 모두는 "1"의 상위 페이지 비트를 운반(carry)한다. 만일 상위 페이지 비트가 논리 "0"이 될 예정이라면, 임계 전압은 시프트된다. 만일 제 1 패스로 인해 저장 요소가 소거 상태 E로 남아있다면, 제 2 페이즈에서, 저장 요소가 프로그램됨으로써, 화살표(1720)로 나타낸 바와 같이 임계 전압이 증가하여 상태 C 내에 있게 된다. 만일 저장 요소가 제 1 프로그래밍 패스의 결과로서 상태 A로 프로그램되면, 그 저장 요소는 제 2 패스에서 한층 더 프로그램되어, 화살표(1710)로 나타낸 바와 같이, 임계 전압이 증가하여 상태 B 내에 있게 된다. 제 2 패스의 결과는, 하위 페이지에 대한 데이터를 변경하지 않으면서, 상위 페이지에 대해 논리 "0"을 저장하도록 지정된 상태로 저장 요소를 프로그램하는 것이다. 도 16 및 17 모두에 있어서, 인접하는 워드라인 상의 플로팅 게이트에 대한 결합의 양은 최종 상태에 의존한다.
일 실시예에서, 충분한 데이터가 기록되어 전체 페이지를 채운다면, 시스템은 풀 시퀀스 기록을 행하도록 셋업될 수 있다. 만일 충분한 데이터가 풀 페이지에 대해 기록되지 않으면, 프로그래밍 프로세스는 수신된 데이터로 하위 페이지를 프로그램할 수 있다. 후속 데이터가 수신되면, 시스템은 상위 페이지를 프로그램할 것이다. 또 다른 실시예에서, 시스템은 하위 페이지를 프로그램하는 모드에서 기록을 시작하고, 충분한 데이터가 후속하여 수신되어 워드 라인의 저장 요소들 전체(또는 대부분)를 채우는 경우, 풀 시퀀스 프로그래밍 모드로 변환한다. 이러한 실시예에 대한 보다 상세한 사항들은, 2006년 10월 10일 특허되었으며 그 명칭이 "Pipelined Programming of Non-Volatile Memories Using Early Data"인 미국 특허 7,120,051호에 개시되어 있으며, 그 전체 내용은 본원의 참조로서 인용된다.
도 18a-c는 비휘발성 메모리를 프로그램하는 다른 프로세스를 개시하는 바, 이는 임의의 특정의 저장 요소에 대하여, 이전의 페이지들에 대해 인접하는 저장 요소들을 기록한 이후 특정 페이지에 관하여 상기 특정의 저장 요소를 기록함으로써, 플로팅 게이트 대 플로팅 게이트 커플링 효과를 감소시킨다. 하나의 예시적인 구현에서, 비휘발성 저장 요소들은 4개의 데이터 상태를 이용하여 저장 요소 마다 2개의 데이터 비트를 저장한다. 예를 들어, 상태 E는 소거 상태이고, 상태 A, B 및 C는 프로그램 상태라고 가정한다. 상태 E는 데이터 11을 저장한다. 상태 A는 데이터 01을 저장한다. 상태 B는 데이터 10을 저장한다. 상태 C는 데이터 00을 저장한다. 이것은 비-그레이 코딩의 예인데, 그 이유는 양 비트들이 인접하는 상태들 A와 B 사이에서 변하기 때문이다. 또한, 물리 데이터 상태들에 대한 다른 데이터 엔코딩도 이용될 수 있다. 각 저장 요소는 2개의 데이터 페이지를 저장한다. 참조를 위해, 이러한 데이터 페이지는 상위 페이지 및 하위 페이지라 불려지지만, 이것들에는 다른 라벨들이 붙여질 수 있다. 상태 A와 관련하여, 상위 페이지는 비트 0을 저장하고, 하위 비트는 비트 1을 저장한다. 상태 B와 관련하여, 상위 페이지는 비트 1을 저장하고, 하위 페이지는 비트 0을 저장한다. 상태 C와 관련하여, 양 페이지들은 비트 데이터 0을 저장한다.
프로그래밍 프로세스는 2-단계 프로세스이다. 제 1 단계에서는, 하위 페이지가 프로그램된다. 만일 하위 페이지가 데이터 1로 남는 경우, 저장 요소의 상태는 상태 E로 유지된다. 만일 데이터가 0으로 프로그램되어야 하는 경우, 저장 요소의 임계 전압이 올라감으로써, 그 저장 요소는 상태 B'로 프로그램된다. 따라서, 도 18a는 상태 E로부터 상태 B'로의 저장 요소들의 프로그래밍을 나타낸다. 상태 B'는 중간 상태 B를 나타내며, 이에 따라 검증 포인트는 Vvb 보다 낮은 Vvb'로서 도시된다.
일 실시예에서, 저장 요소가 상태 E로부터 상태 B'로 프로그램된 후, NAND 스트링 내의 그 인접하는 저장 요소(WLn+1)는 그 하위 페이지와 관련하여 프로그램될 것이다. 예를 들어, 도 2를 다시 살펴보면, 저장 요소(106)에 대한 하위 페이지가 프로그램된 후, 저장 요소(104)에 대한 하위 페이지가 프로그램된다. 저장 요소(104)를 프로그램한 후, 플로팅 게이트 대 플로팅 게이트 커플링 효과는, 그 저장 요소(104)가 상태 E로부터 상태 B'로 올라간 임계 전압을 갖는 경우, 저장 요소(106)의 외관상(apparent) 임계 전압을 올릴 것이다. 이것은 상태 B'에 대한 임계 전압 분포를 도 18b의 임계 전압 분포(1850)로서 나타낸 것으로 확장(widening)시키는 효과를 갖는다. 이와 같은 임계 전압 분포의 외관상의 확장은 상위 페이지를 프로그램할 때에 교정(remedy)될 것이다.
도 18c는 상위 페이지를 프로그램하는 프로세스를 도시한다. 만일 저장 요소가 소거 상태 E이고, 상위 페이지가 1로 유지된다면, 그 저장 요소는 상태 E로 유지된다. 만일 저장 요소가 상태 E이고, 그 상위 페이지 데이터가 0으로 프로그램되어야 한다면, 저장 요소의 임계 전압이 올라감으로써, 그 저장 요소는 상태 A가 된다. 만일 저장 요소가 중간 임계 전압 분포(1850)에 있고, 상위 페이지 데이터가 1로 유지될 것이라면, 그 저장 요소는 최종 상태 B로 프로그램될 것이다. 만일 저장 요소가 중간 임계 전압 분포(1850)에 있고, 상위 페이지 데이터가 데이터 0으로 될 것이라면, 저장 요소의 임계 전압이 올라감으로써, 그 저장 요소는 상태 C가 된다. 도 18a-c에 도시된 프로세스는 플로팅 게이트 대 플로팅 게이트 커플링의 효과를 감소시키는데, 그 이유는 이웃하는 저장 요소들의 상위 페이지 프로그래밍 만이 소정의 저장 요소의 외관상 임계 전압에 영향을 미치기 때문이다. 교번적인 상태 코딩(alternate state coding)의 예는, 상위 페이지 데이터가 1일 때 분포(1850)로부터 상태 C로 이동시키고, 상위 페이지 데이터가 0일 때 상태 B로 이동시키는 것이다.
비록 도 18a-c가 4개의 데이터 상태들 및 2개의 데이터 페이지들에 대한 예를 제공하지만, 교시되는 개념은 4개 보다 많거나 적은 상태들 및 2개 보다 많거나 적은 페이지들을 갖는 다른 구현들에도 적용될 수 있다.
도 19는 비휘발성 메모리를 프로그램하는 방법의 일 실시예를 설명하는 흐름도이다. 하나의 실시에 있어서, 저장 요소들은 프로그래밍 이전에 (블록들 또는 다른 단위들로) 소거된다. 단계(1900)에서, "데이터 로드" 커맨드가 제어기에 의해 발행되어, 제어 회로(1210)에 의해 수신된다. 단계(1905)에서, 페이지 어드레스를 나타내는 어드레스 데이터가 제어기 또는 호스트로부터 디코더(1214)에 입력된다. 단계(1910)에서, 어드레스되는 페이지에 대한 프로그램 데이터의 페이지가 프로그래밍을 위해 데이터 버퍼에 입력된다. 그 데이터는 래치들의 적절한 세트에 래치된다. 단계(1915)에서, "프로그램" 커맨드가 제어기에 의해 상태 머신(1212)에 발행된다.
"프로그램" 커맨드에 의해 트리거되면, 단계(1910)에서 래치된 데이터는, 선택된 적절한 워드라인에 인가되는 도 20의 펄스 트레인(2000)의 스텝형(stepped) 프로그램 펄스들을 이용하여 상태 머신(1212)에 의해 제어되는 선택된 저장 요소들 내에 프로그램될 것이다. 단계(1920)에서, 프로그램 전압(VPGM)은 시작 펄스(예를 들어, 12V 또는 다른 값)로 초기화되고, 상태 머신(1212)에 의해 유지되는 프로그램 카운터(PC)는 제로로 초기화된다. 단계(1925)에서는, 이전에 설명한 바와 같이, 비선택 비트라인들의 채널들이 프리챠지된다. 단계(1930)에서는, 제 1 VPGM 펄스가 선택된 워드라인에 인가되어, 이러한 선택된 워드라인과 관련된 저장 요소들의 프로그래밍을 시작한다. 만일 특정의 데이터 래치에 논리 "0"이 저장되어, 해당하는 저장 요소가 프로그램되어야 함을 나타내면, 해당하는 비트라인은 접지된다. 한편, 만일 특정의 래치에 논리 "1"이 저장되어, 해당하는 저장 요소가 자신의 현재 데이터 상태를 유지해야 함을 나타내면, 해당하는 비트라인은 1.5-3V에 연결되어, 프로그래밍을 금지한다.
단계(1935)에서, 선택된 저장 요소들의 상태들이 검증된다. 만일 선택된 저장 요소의 목표 임계 전압이 적절한 레벨에 도달했다고 검출되면, 해당하는 데이터 래치에 저장된 데이터는 논리 "1"로 변경된다. 만일 임계 전압이 적절한 레벨에 도달하지 않은 것으로 검출되면, 해당하는 데이터 래치에 저장된 데이터는 변경되지 않는다. 이러한 방식으로, 자신의 해당하는 데이터 래치에 저장된 논리 "1"을 갖는 비트라인은 프로그램될 필요가 없다. 모든 데이터 래치들이 논리 "1"을 저장하고 있을 때, 상태 머신은 (상기 설명한 와이어드-OR 타입 메커니즘을 통해) 선택된 모든 저장 요소들이 프로그램되었음을 알게 된다. 단계(1940)에서, 모든 데이터 래치들이 논리 "1"을 저장하고 있는 지에 대해 체크한다. 모든 데이터 래치들이 논리 "1"을 저장하고 있으면, 프로그래밍 프로세스는 완료되고 성공적이 되는데, 그 이유는 선택된 모든 저장 요소들이 프로그램되고 검증되었기 때문이다. 단계(1945)에서, "패스(PASS)"의 상태가 보고된다. 일부 실시예들에서는, 선택된 모든 저장 요소들이 프로그램된 것으로서 검증되지 않았을 지라도, 프로그래밍 프로세스가 완전하고 성공적인 것으로서 고려된다. 이러한 경우, 불충분한 프로그램된 저장 요소들로 인해, 이후의 판독 동작들 동안 에러들이 발생할 수 있다. 하지만, 이러한 에러들은 ECC에 의해 정정될 수 있다.
단계(1940)에서, 모든 데이터 래치들이 논리 "1"을 저장하고 있지 않는 것으로 결정되면, 프로그래밍 프로세스는 계속된다. 일부 실시예들에서는, 모든 데이터 래치들이 논리 "1"을 저장하고 있지 않을 지라도, 프로그래밍 프로세스가 중단된다. 단계(1950)에서, 프로그램 카운터(PC)가 프로그램 제한 값(PCmax)에 대해 체크된다. 프로그램 제한 값의 일 예는 20이지만, 다른 수들도 이용될 수 있다. 만일 프로그램 카운터(PC)가 PCmax 보다 작지 않으면, 프로그램 프로세스는 실패하게 되며, 단계(1955)에서 "실패(FAIL)"의 상태가 보고된다. 만일 프로그램 카운터(PC)가 PCmax 보다 작으면, 단계(1960)에서, VPGM이 스텝 사이즈 만큼 증가하고, 프로그램 카운터(PC)가 증분된다. 그런 다음, 프로세스는 단계(1930)로 돌아가, 다음 VPGM 펄스를 인가한다.
도 20은 프로그래밍 동안 비휘발성 저장 요소들의 제어 게이트들에 인가되는 예시적인 펄스 트레인을 도시한다. 펄스 트레인(2000)은 프로그래밍을 위해 선택된 워드라인에 인가되는 일련의 프로그램 펄스들(2005, 2010, 2015, 2020, 2025, 2030, 2035, 2040, 2045, 2050...)을 포함한다. 일 실시예에서, 프로그래밍 펄스들은 전압(VPGM)을 갖는 바, 이는 12V에서 시작하여, 예를 들어, 20-25V의 최대값에 이를 때 까지, 각각의 연속적인 프로그래밍 펄스에 대해 증분치(예를 들어, 0.5V) 만큼 증가한다. 프로그램 펄스들 사이에는, 검증 펄스들, 예를 들어 3개의 검증 펄스들이 있다. 어떠한 실시예들에서는, 데이터가 프로그램되고 있는 각 상태, 예를 들어 상태 A, B 및 C에 대해 검증 펄스가 있을 수 있다. 다른 실시예들에서는, 그 보다 더 많거나 적은 검증 펄스들이 있을 수 있다. 각 세트 내의 검증 펄스들은, 이를 테면 Vva, Vvb 및 Vvc(도 17) 또는 Vvb'(도 18a)의 진폭들을 가질 수 있다.
상기 본 발명의 상세한 설명은 예시와 설명의 목적을 위해 제공되었다. 이러한 설명은 본 발명을 속속들이 규명한 것으로서, 또는 본 발명을 개시된 정확한 형태로 한정하는 것으로서 의도되지 않는다. 상기 교시에 비추어 많은 수정들 및 변형들이 가능하다. 설명된 실시예들은 본 발명의 사상과 실제적인 응용예를 최상으로 설명함으로써, 당업자가 다양한 실시예들에서 그리고 고려되는 특정의 용도에 적합한 다양한 변형들에 대해 본 발명을 최상으로 이용할 수 있도록 선택된 것이다. 본 발명의 범위는 첨부된 청구범위에 의해서만 규정된다.

Claims (14)

  1. 비휘발성 저장 소자(storage)를 동작시키는 방법으로서,
    비휘발성 저장 요소들의 세트(1500, 1510) 내의 적어도 하나의 선택된 비휘발성 저장 요소로부터 데이터를 판독할 것을 요청하는 판독 커맨드(read command)를 수신하는 단계(700)와, 여기서 상기 적어도 하나의 선택된 비휘발성 저장 요소는 워드라인들의 세트(600) 내의 선택된 워드라인(WL3)과 관련되며;
    상기 판독 커맨드에 응답하여, 상기 워드라인들의 세트 내의 다른 워드라인(WL5)을 선택하고(710), 상기 다른 워드라인과 관련된 비휘발성 저장 요소들에 대해 감지 동작들을 수행하고(715), 상기 감지 동작들에 기초하여, 적어도 하나의 판독 비교 레벨을 결정하는 단계(725), 상기 다른 워드라인은 상기 선택된 워드라인에 인접하지 않으며; 그리고
    상기 적어도 하나의 판독 비교 레벨을 이용하여 상기 적어도 하나의 선택된 비휘발성 저장 요소를 판독하는 단계(730)를 포함하는 것을 특징으로 하는 비휘발성 저장 소자를 동작시키는 방법.
  2. 제 1 항에 있어서,
    상기 감지 동작들은 적어도 2개의 데이터 상태들이 겹쳐지는(overlap) 임계 전압 분포를 제공하며, 상기 적어도 하나의 판독 비교 레벨은 상기 임계 전압 분포 내의 골(valley)을 식별함으로써 결정되는 것을 특징으로 하는 비휘발성 저장 소자를 동작시키는 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 다른 워드라인의 선택은, 상기 워드라인들의 세트로부터 상기 다른 워드라인을 무작위로(randomly) 선택함으로써 이루어지는 것을 특징으로 하는 비휘발성 저장 소자를 동작시키는 방법.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 다른 워드라인의 선택은, 상기 워드라인들의 세트 내의 적어도 하나의 특정된 워드라인(WL4)을 배제하면서, 상기 워드라인들의 세트로부터 상기 다른 워드라인을 무작위로 선택함으로써 이루어지는 것을 특징으로 하는 비휘발성 저장 소자를 동작시키는 방법.
  5. 삭제
  6. 제 1 항 또는 제 2 항에 있어서,
    상기 감지 동작들에 기초하여, 상기 다른 워드라인과 관련된 상기 비휘발성 저장 요소들에 대한 다수의 판독 비교 레벨들을 결정하는 단계와; 그리고
    상기 다수의 판독 비교 레벨들을 이용하여 상기 적어도 하나의 선택된 비휘발성 저장 요소를 판독하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장 소자를 동작시키는 방법.
  7. 제 1 항 또는 제 2 항에 있어서,
    상기 적어도 하나의 판독 비교 레벨은 제 1 쌍의 데이터 상태들의 인접하는 상태들을 서로로부터 구별하는 제 1 판독 비교 레벨(930)을 포함하며,
    상기 방법은,
    상기 제 1 판독 비교 레벨에 기초하여, 그리고 제 2 쌍의 데이터 상태들의 인접하는 상태들을 서로로부터 구별하기 위한 감지 동작들을 수행하지 않으면서, 상기 제 2 쌍의 데이터 상태들의 인접하는 상태들을 서로로부터 구별하는 제 2 판독 비교 레벨을 결정하는 단계(935)를 더 포함하는 것을 특징으로 하는 비휘발성 저장 소자를 동작시키는 방법.
  8. 비휘발성 저장 시스템으로서,
    적어도 하나의 선택된 비휘발성 저장 요소를 포함하는 비휘발성 저장 요소들의 세트(1500, 1510)와;
    선택된 워드라인(WL3)을 포함하는, 상기 비휘발성 저장 요소들의 세트와 관련된 워드라인들의 세트(600)와, 여기서 상기 적어도 하나의 선택된 비휘발성 저장 요소는 상기 선택된 워드라인과 관련되며; 그리고
    상기 워드라인들의 세트와 통신하는 적어도 하나의 제어 회로(1210, 1250)를 포함하며,
    여기서, 상기 적어도 하나의 제어 회로는, (a) 상기 선택된 워드라인과 관련된 상기 적어도 하나의 선택된 비휘발성 저장 요소로부터 데이터를 판독할 것을 요청하는 판독 커맨드를 수신하고(700), (b) 상기 판독 커맨드에 응답하여, 상기 워드라인 내의 다른 워드라인(WL5)을 선택하고(710), 상기 다른 워드라인과 관련된 비휘발성 저장 요소들에 대해 감지 동작들을 수행하며(715), 상기 감지 동작들에 기초하여, 적어도 하나의 판독 비교 레벨을 결정하며(725), 그리고 (c) 상기 적어도 하나의 판독 비교 레벨을 이용하여 상기 적어도 하나의 선택된 비휘발성 저장 요소를 판독(730)하며,
    상기 감지 동작들은 적어도 2개의 데이터 상태들이 겹쳐지는 임계 전압 분포를 제공하며, 상기 적어도 하나의 판독 비교 레벨은 상기 임계 전압 분포 내의 골을 식별함으로써 결정되는 것을 특징으로 하는 비휘발성 저장 시스템.
  9. 삭제
  10. 제 8 항에 있어서,
    상기 적어도 하나의 제어 회로는, 상기 워드라인들의 세트 내의 적어도 하나의 특정된 워드라인(WL4)을 배제하면서, 상기 워드라인들의 세트로부터 상기 다른 워드라인을 무작위로 선택하는 것을 특징으로 하는 비휘발성 저장 시스템.
  11. 제 8 항 또는 제 10 항에 있어서,
    상기 적어도 하나의 제어 회로는 상기 워드라인들의 세트로부터 상기 다른 워드라인을 무작위로 선택하는 것을 특징으로 하는 비휘발성 저장 시스템.
  12. 제 8 항 또는 제 10 항에 있어서,
    상기 다른 워드라인은 상기 선택된 워드라인에 인접하지 않는 것을 특징으로 하는 비휘발성 저장 시스템.
  13. 제 8 항 또는 제 10 항에 있어서,
    상기 적어도 하나의 제어 회로는, 상기 감지 동작들에 기초하여, 상기 다른 워드라인과 관련된 상기 비휘발성 저장 요소들에 대한 다수의 판독 비교 레벨들을 결정하며, 그리고 상기 다수의 판독 비교 레벨들을 이용하여 상기 적어도 하나의 선택된 비휘발성 저장 요소를 판독하는 것을 특징으로 하는 비휘발성 저장 시스템.
  14. 제 8 항 또는 제 10 항에 있어서,
    상기 적어도 하나의 판독 비교 레벨은 제 1 쌍의 데이터 상태들의 인접하는 상태들을 서로로부터 구별하는 제 1 판독 비교 레벨(930)을 포함하며,
    상기 적어도 하나의 제어 회로는, 상기 제 1 판독 비교 레벨에 기초하여, 그리고 제 2 쌍의 데이터 상태들의 인접하는 상태들을 서로로부터 구별하기 위한 감지 동작들을 수행하지 않으면서, 상기 제 2 쌍의 데이터 상태들의 인접하는 상태들을 서로로부터 구별하는 제 2 판독 비교 레벨을 결정(935)하는 것을 특징으로 하는 비휘발성 저장 시스템.
KR1020117002375A 2008-06-30 2009-06-29 비휘발성 메모리에서의 판독 디스터브 완화 KR101564399B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/165,302 US7808831B2 (en) 2008-06-30 2008-06-30 Read disturb mitigation in non-volatile memory
US12/165,302 2008-06-30

Publications (2)

Publication Number Publication Date
KR20110038083A KR20110038083A (ko) 2011-04-13
KR101564399B1 true KR101564399B1 (ko) 2015-10-30

Family

ID=40941556

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117002375A KR101564399B1 (ko) 2008-06-30 2009-06-29 비휘발성 메모리에서의 판독 디스터브 완화

Country Status (7)

Country Link
US (2) US7808831B2 (ko)
EP (1) EP2301037B1 (ko)
JP (1) JP5444340B2 (ko)
KR (1) KR101564399B1 (ko)
CN (1) CN102077298B (ko)
TW (1) TWI415129B (ko)
WO (1) WO2010002752A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521158B2 (en) 2017-10-11 2019-12-31 SK Hynix Inc. Memory system and operating method of the same
US11978515B2 (en) 2020-03-02 2024-05-07 Winbond Electronics Corp. Semiconductor memory device and reading method

Families Citing this family (171)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007132457A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
WO2007132453A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Distortion estimation and cancellation in memory devices
WO2007132456A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
US8060806B2 (en) 2006-08-27 2011-11-15 Anobit Technologies Ltd. Estimation of non-linear distortion in memory devices
CN101601094B (zh) * 2006-10-30 2013-03-27 苹果公司 使用多个门限读取存储单元的方法
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7924648B2 (en) * 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US7900102B2 (en) 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
US8369141B2 (en) 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
ITRM20070273A1 (it) * 2007-05-16 2008-11-17 Micron Technology Inc Lettura di celle di memoria non volatile a livello mutiplo.
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US8045373B2 (en) * 2007-10-02 2011-10-25 Cypress Semiconductor Corporation Method and apparatus for programming memory cell array
US7773413B2 (en) * 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8527819B2 (en) 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
KR101509836B1 (ko) 2007-11-13 2015-04-06 애플 인크. 멀티 유닛 메모리 디바이스에서의 메모리 유닛의 최적화된 선택
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) * 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US7808831B2 (en) * 2008-06-30 2010-10-05 Sandisk Corporation Read disturb mitigation in non-volatile memory
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8077520B1 (en) * 2008-09-05 2011-12-13 Marvell International Ltd. Determining threshold voltage distribution in flash memory
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
KR101504339B1 (ko) * 2008-11-03 2015-03-24 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함하는 메모리 시스템
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
JP5359570B2 (ja) * 2009-06-03 2013-12-04 富士通株式会社 メモリ試験制御装置およびメモリ試験制御方法
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8134871B2 (en) * 2009-08-05 2012-03-13 Sandisk Technologies Inc. Programming memory with reduced pass voltage disturb and floating gate-to-control gate leakage
JP5361603B2 (ja) * 2009-08-13 2013-12-04 株式会社東芝 コントローラ
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
US8213255B2 (en) * 2010-02-19 2012-07-03 Sandisk Technologies Inc. Non-volatile storage with temperature compensation based on neighbor state information
TWI455142B (zh) * 2010-04-08 2014-10-01 Silicon Motion Inc 快閃記憶體之資料讀取的方法以及資料儲存裝置
US8295095B2 (en) * 2010-04-20 2012-10-23 Micron Technology, Inc. Programming methods for a memory device
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8208310B2 (en) 2010-05-04 2012-06-26 Sandisk Technologies Inc. Mitigating channel coupling effects during sensing of non-volatile storage elements
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8503257B2 (en) 2010-07-30 2013-08-06 Apple Inc. Read disturb scorecard
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US8456911B2 (en) 2011-06-07 2013-06-04 Sandisk Technologies Inc. Intelligent shifting of read pass voltages for non-volatile storage
US8432740B2 (en) * 2011-07-21 2013-04-30 Sandisk Technologies Inc. Program algorithm with staircase waveform decomposed into multiple passes
US8406053B1 (en) * 2011-09-21 2013-03-26 Sandisk Technologies Inc. On chip dynamic read for non-volatile storage
KR101858560B1 (ko) 2011-11-24 2018-05-18 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법과 상기 불휘발성 메모리 장치를 포함하는 메모리 시스템의 동작 방법
US8811081B2 (en) * 2011-12-09 2014-08-19 Sandisk Technologies Inc. Systems and methods of updating read voltages in a memory
KR101941270B1 (ko) * 2012-01-03 2019-04-10 삼성전자주식회사 멀티-레벨 메모리 장치를 제어하는 메모리 제어기 및 그것의 에러 정정 방법
CN107368386B (zh) * 2012-03-29 2021-03-09 英特尔公司 用于处理从非易失性存储器阵列检索的状态置信度数据的方法和设备
WO2013145024A1 (en) * 2012-03-30 2013-10-03 Hitachi, Ltd. Storage system with flash memory, and storage control method
US8923041B2 (en) 2012-04-11 2014-12-30 Everspin Technologies, Inc. Self-referenced sense amplifier for spin torque MRAM
US8838883B2 (en) * 2012-04-13 2014-09-16 Sandisk Technologies Inc. System and method of adjusting a programming step size for a block of a memory
KR102028128B1 (ko) 2012-08-07 2019-10-02 삼성전자주식회사 불휘발성 랜덤 액세스 메모리 및 낸드 플래시 메모리를 포함하는 메모리 시스템의 동작 방법
TWI490865B (zh) * 2012-08-15 2015-07-01 Phison Electronics Corp 資料讀取方法、記憶體控制器與記憶體儲存裝置
US8792281B2 (en) 2012-08-21 2014-07-29 Apple Inc. Read threshold estimation in analog memory cells using simultaneous multi-voltage sense
US9036417B2 (en) 2012-09-06 2015-05-19 Sandisk Technologies Inc. On chip dynamic read level scan and error detection for nonvolatile storage
US20140089763A1 (en) * 2012-09-26 2014-03-27 Asolid Technology Co., Ltd. Flash memory and accessing method thereof
KR101934892B1 (ko) 2012-10-17 2019-01-04 삼성전자 주식회사 메모리 장치의 열화 상태 판정 방법 및 이를 이용한 메모리 시스템
KR102089532B1 (ko) 2013-02-06 2020-03-16 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 시스템의 동작 방법
KR102068163B1 (ko) 2013-02-27 2020-01-20 삼성전자주식회사 불휘발성 메모리 및 불휘발성 메모리의 동작 방법
KR101540795B1 (ko) * 2013-02-28 2015-07-30 실리콘 모션 인코포레이티드 임계 전압 분포에 따라 플래시 메모리에 저장된 데이터를 판독하는 방법과, 이를 위한 메모리 컨트롤러 및 시스템
US9575829B2 (en) 2013-03-13 2017-02-21 Sandisk Technologies Llc Probability-based remedial action for read disturb effects
KR102131802B1 (ko) 2013-03-15 2020-07-08 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법, 비휘발성 메모리 장치, 및 메모리 시스템의 구동 방법
CN105229742A (zh) 2013-04-30 2016-01-06 惠普发展公司,有限责任合伙企业 存储器访问速率
KR102127416B1 (ko) 2013-06-27 2020-06-26 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 읽기 방법
KR102085096B1 (ko) 2013-07-30 2020-03-05 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법
US9245637B2 (en) 2013-09-06 2016-01-26 Sandisk Technologies Inc. Systems and methods for read disturb management in non-volatile memory
US9424179B2 (en) * 2013-10-17 2016-08-23 Seagate Technology Llc Systems and methods for latency based data recycling in a solid state memory system
US9620202B2 (en) 2013-11-01 2017-04-11 Seagate Technology Llc Reduction or elimination of a latency penalty associated with adjusting read thresholds for non-volatile memory
JP6430740B2 (ja) * 2013-11-05 2018-11-28 エルエスアイ コーポレーション ソリッドステートメモリシステムにおけるレイテンシーベースのデータ再利用のシステム及び方法
KR101491691B1 (ko) * 2013-11-26 2015-02-09 에스케이텔레콤 주식회사 메모리장치 및 메모리장치의 동작 방법
GB201322075D0 (en) 2013-12-13 2014-01-29 Ibm Device for selecting a level for at least one read voltage
KR102069274B1 (ko) 2014-02-05 2020-01-22 삼성전자주식회사 메모리 제어 방법
US9286975B2 (en) * 2014-03-11 2016-03-15 Intel Corporation Mitigating read disturb in a cross-point memory
US9230689B2 (en) * 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
KR102221752B1 (ko) 2014-03-20 2021-03-02 삼성전자주식회사 메모리 장치의 프로그램 방법 및 이를 포함하는 데이터 독출 방법
US9495242B2 (en) * 2014-07-30 2016-11-15 International Business Machines Corporation Adaptive error correction in a memory system
KR102178141B1 (ko) 2014-08-01 2020-11-12 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법
KR102318561B1 (ko) 2014-08-19 2021-11-01 삼성전자주식회사 스토리지 장치, 스토리지 장치의 동작 방법
US9244858B1 (en) 2014-08-25 2016-01-26 Sandisk Technologies Inc. System and method of separating read intensive addresses from non-read intensive addresses
KR102128406B1 (ko) 2014-09-26 2020-07-10 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9251909B1 (en) 2014-09-29 2016-02-02 International Business Machines Corporation Background threshold voltage shifting using base and delta threshold voltage shift values in flash memory
KR102251810B1 (ko) * 2014-09-30 2021-05-13 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 장치에 대한 제어 방법
KR102233074B1 (ko) 2014-10-08 2021-03-30 삼성전자주식회사 저장 장치 및 그것의 신뢰성 검증 방법
US9563373B2 (en) 2014-10-21 2017-02-07 International Business Machines Corporation Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management
US9734903B2 (en) 2014-11-11 2017-08-15 Sandisk Technologies Llc Disturb condition detection for a resistive random access memory
US9552885B2 (en) 2014-12-10 2017-01-24 Sandisk Technologies Llc Partial block erase for open block reading in non-volatile memory
US9990279B2 (en) 2014-12-23 2018-06-05 International Business Machines Corporation Page-level health equalization
US10339048B2 (en) 2014-12-23 2019-07-02 International Business Machines Corporation Endurance enhancement scheme using memory re-evaluation
US9543023B2 (en) 2015-01-23 2017-01-10 Sandisk Technologies Llc Partial block erase for block programming in non-volatile memory
US10594793B2 (en) * 2015-01-30 2020-03-17 Pure Storage, Inc. Read-prepare requests to multiple memories
US9224492B1 (en) * 2015-02-17 2015-12-29 Phison Electronics Corp. Memory management method, memory storage device and memory controlling circuit unit
US9773563B2 (en) * 2015-03-27 2017-09-26 Toshiba Memory Corporation Memory controller, memory control method, and coefficient decision method
US10147500B2 (en) * 2015-05-22 2018-12-04 SK Hynix Inc. Hybrid read disturb count management
KR20160138690A (ko) * 2015-05-26 2016-12-06 에스케이하이닉스 주식회사 메모리 장치
CN106257594B (zh) 2015-06-16 2021-01-05 爱思开海力士有限公司 读取干扰收回策略
US9548107B1 (en) * 2015-07-09 2017-01-17 Kabushiki Kaisha Toshiba Semiconductor memory device
US9589655B1 (en) 2015-10-02 2017-03-07 Seagate Technology Llc Fast soft data by detecting leakage current and sensing time
US9910730B2 (en) 2015-10-21 2018-03-06 Sandisk Technologies Llc System for handling erratic word lines for non-volatile memory
US10303536B2 (en) * 2015-10-28 2019-05-28 Via Technologies, Inc. Non-volatile memory device and control method thereof
US10108470B2 (en) 2015-12-28 2018-10-23 Sandisk Technologies Llc Parity storage management
CN105529050B (zh) * 2015-12-31 2019-09-03 记忆科技(深圳)有限公司 一种降低对uwl进行读取发生时间超时错误的方法
KR102661936B1 (ko) 2016-06-27 2024-04-30 삼성전자주식회사 저장 장치
US10026488B2 (en) 2016-08-18 2018-07-17 Sandisk Technologies Llc Non-volatile memory with read disturb detection for open blocks
JP6674361B2 (ja) 2016-09-29 2020-04-01 キオクシア株式会社 メモリシステム
KR20180046067A (ko) 2016-10-27 2018-05-08 에스케이하이닉스 주식회사 메모리 제어 장치 및 방법
US10074440B2 (en) 2016-10-28 2018-09-11 Sandisk Technologies Llc Erase for partially programmed blocks in non-volatile memory
US10163518B2 (en) 2017-01-13 2018-12-25 Samsung Electronics Co., Ltd. Non-volatile memory device for reading data with optimized read voltage
US10095568B2 (en) 2017-02-08 2018-10-09 Seagate Technology Llc Background reads to condition programmed semiconductor memory cells
CN106981302B (zh) * 2017-03-20 2019-05-21 记忆科技(深圳)有限公司 一种快速评估最优读电压的方法
US9928126B1 (en) 2017-06-01 2018-03-27 Apple Inc. Recovery from cross-temperature read failures by programming neighbor word lines
US10008278B1 (en) * 2017-06-11 2018-06-26 Apple Inc. Memory block usage based on block location relative to array edge
US10026483B1 (en) * 2017-06-28 2018-07-17 Western Digital Technologies, Inc. Program temperature aware data scrub
CN109508205B (zh) * 2017-09-15 2024-04-05 北京忆恒创源科技股份有限公司 支持原位操作的nvm芯片、其操作方法以及固态存储设备
KR102457662B1 (ko) * 2017-10-31 2022-10-25 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 저장 장치의 동작 방법
CN108109664A (zh) * 2017-11-29 2018-06-01 深圳忆联信息系统有限公司 一种缓解mlc闪存读干扰问题的方法
KR102591011B1 (ko) 2018-02-26 2023-10-19 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20190102596A (ko) * 2018-02-26 2019-09-04 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
TWI648739B (zh) 2018-03-20 2019-01-21 大陸商深圳大心電子科技有限公司 記憶體管理方法與儲存控制器
TWI650757B (zh) * 2018-03-30 2019-02-11 大陸商深圳大心電子科技有限公司 解碼方法以及儲存控制器
US10489086B1 (en) 2018-05-02 2019-11-26 International Business Machines Corporation Reducing read errors by performing mitigation reads to blocks of non-volatile memory
KR102565913B1 (ko) * 2018-06-12 2023-08-11 에스케이하이닉스 주식회사 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법
KR102559577B1 (ko) 2018-08-08 2023-07-26 삼성전자주식회사 저항성 메모리 장치
KR102499061B1 (ko) 2018-08-22 2023-02-13 삼성전자주식회사 상 변화 메모리 장치를 포함하는 반도체 메모리 장치 및 상 변화 메모리 장치를 액세스하는 방법
JP2020107376A (ja) 2018-12-27 2020-07-09 キオクシア株式会社 メモリシステム
US10741263B2 (en) * 2018-12-31 2020-08-11 Micron Technology, Inc. Standby biasing techniques to reduce read disturbs
CN109871594B (zh) * 2019-01-28 2023-02-03 山东华芯半导体有限公司 一种NAND Flash特性模型建立方法
CN111951865B (zh) * 2019-05-14 2023-04-07 兆易创新科技集团股份有限公司 一种非易失存储器读处理方法及装置
KR20210008195A (ko) 2019-07-10 2021-01-21 삼성전자주식회사 메모리 장치
US11307799B2 (en) * 2019-08-27 2022-04-19 Micron Technology, Inc. Managing threshold voltage drift based on operating characteristics of a memory sub-system
JP2021047690A (ja) * 2019-09-19 2021-03-25 キオクシア株式会社 メモリシステム
US11385984B2 (en) * 2020-02-24 2022-07-12 Western Digital Technologies, Inc. Variable read scan for solid-state storage device quality of service
KR20220037618A (ko) * 2020-09-18 2022-03-25 삼성전자주식회사 시간 분할 샘플링 페이지 버퍼를 이용하여 읽기 동작을 수행하는 스토리지 장치
US11282564B1 (en) * 2020-11-11 2022-03-22 Micron Technology, Inc. Selective wordline scans based on a data state metric
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory
US11868223B2 (en) * 2022-01-19 2024-01-09 Dell Products L.P. Read-disturb-based read temperature information utilization system
US11914494B2 (en) 2022-01-20 2024-02-27 Dell Products L.P. Storage device read-disturb-based read temperature map utilization system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867429A (en) 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
US20050162913A1 (en) 2004-01-26 2005-07-28 Jian Chen Method of reading NAND memory to compensate for coupling between storage elements

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5038703A (en) * 1989-08-21 1991-08-13 Frush Roberta K Device and method to aid in toilet training pets
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
JPH10255487A (ja) * 1997-03-10 1998-09-25 Fujitsu Ltd 半導体メモリ装置
US6018477A (en) * 1998-10-08 2000-01-25 Information Storage Devices, Inc. Intelligent refreshing method and apparatus for increasing multi-level non-volatile memory charge retention reliability
US6587378B2 (en) * 2000-12-13 2003-07-01 Texas Instruments Incorporated Apparatus and method for refreshing a flash memory unit
EP1233421B1 (en) * 2001-02-19 2007-07-11 STMicroelectronics S.r.l. Method for refreshing stored data in an electrically erasable and programmable non-volatile memory
US7057935B2 (en) * 2001-08-30 2006-06-06 Micron Technology, Inc. Erase verify for non-volatile memory
JP3938309B2 (ja) * 2002-01-22 2007-06-27 富士通株式会社 リードディスターブを緩和したフラッシュメモリ
US6751766B2 (en) * 2002-05-20 2004-06-15 Sandisk Corporation Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
US6657891B1 (en) * 2002-11-29 2003-12-02 Kabushiki Kaisha Toshiba Semiconductor memory device for storing multivalued data
US6859397B2 (en) 2003-03-05 2005-02-22 Sandisk Corporation Source side self boosting technique for non-volatile memory
JP3913704B2 (ja) * 2003-04-22 2007-05-09 株式会社東芝 不揮発性半導体記憶装置及びこれを用いた電子装置
US7320100B2 (en) * 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
US6917542B2 (en) 2003-07-29 2005-07-12 Sandisk Corporation Detecting over programmed memory
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US6961267B1 (en) * 2003-12-16 2005-11-01 Advanced Micro Devices, Inc. Method and device for programming cells in a memory array in a narrow distribution
US7177977B2 (en) * 2004-03-19 2007-02-13 Sandisk Corporation Operating non-volatile memory without read disturb limitations
US7141763B2 (en) * 2004-03-26 2006-11-28 Tokyo Electron Limited Method and apparatus for rapid temperature change and control
US7493457B2 (en) * 2004-11-08 2009-02-17 Sandisk Il. Ltd States encoding in multi-bit flash cells for optimizing error rate
US20070101923A1 (en) * 2005-02-28 2007-05-10 Cheryl Pedersen Poochie-bells
US7196928B2 (en) * 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
US7193901B2 (en) * 2005-04-13 2007-03-20 Intel Corporation Monitoring the threshold voltage of frequently read cells
US7173851B1 (en) * 2005-10-18 2007-02-06 Kilopass Technology, Inc. 3.5 transistor non-volatile memory cell using gate breakdown phenomena
US7954037B2 (en) * 2005-10-25 2011-05-31 Sandisk Il Ltd Method for recovering from errors in flash memory
US7262994B2 (en) * 2005-12-06 2007-08-28 Sandisk Corporation System for reducing read disturb for non-volatile storage
WO2007132457A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
JP5095131B2 (ja) * 2006-05-31 2012-12-12 株式会社東芝 半導体記憶装置
US7310272B1 (en) * 2006-06-02 2007-12-18 Sandisk Corporation System for performing data pattern sensitivity compensation using different voltage
US7352628B2 (en) * 2006-06-19 2008-04-01 Sandisk Corporation Systems for programming differently sized margins and sensing with compensations at select states for improved read operations in a non-volatile memory
JP2008059711A (ja) * 2006-09-01 2008-03-13 Toshiba Corp 半導体記憶装置
US7447076B2 (en) * 2006-09-29 2008-11-04 Sandisk Corporation Systems for reverse reading in non-volatile memory with compensation for coupling
US7684247B2 (en) * 2006-09-29 2010-03-23 Sandisk Corporation Reverse reading in non-volatile memory with compensation for coupling
US7903468B2 (en) * 2007-04-23 2011-03-08 Ramot At Telaviv University Ltd. Adaptive dynamic reading of flash memories
US7808831B2 (en) 2008-06-30 2010-10-05 Sandisk Corporation Read disturb mitigation in non-volatile memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867429A (en) 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
US20050162913A1 (en) 2004-01-26 2005-07-28 Jian Chen Method of reading NAND memory to compensate for coupling between storage elements

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521158B2 (en) 2017-10-11 2019-12-31 SK Hynix Inc. Memory system and operating method of the same
US11978515B2 (en) 2020-03-02 2024-05-07 Winbond Electronics Corp. Semiconductor memory device and reading method

Also Published As

Publication number Publication date
JP5444340B2 (ja) 2014-03-19
EP2301037A1 (en) 2011-03-30
US20090323412A1 (en) 2009-12-31
US20100271874A1 (en) 2010-10-28
CN102077298A (zh) 2011-05-25
TWI415129B (zh) 2013-11-11
EP2301037B1 (en) 2013-03-20
US7876620B2 (en) 2011-01-25
TW201007738A (en) 2010-02-16
CN102077298B (zh) 2014-03-12
KR20110038083A (ko) 2011-04-13
JP2011527067A (ja) 2011-10-20
US7808831B2 (en) 2010-10-05
WO2010002752A1 (en) 2010-01-07

Similar Documents

Publication Publication Date Title
KR101564399B1 (ko) 비휘발성 메모리에서의 판독 디스터브 완화
CN106688042B (zh) 用于数据刷新的部分块擦除
TWI410975B (zh) 具有狀態電壓位準的調適性設定之非揮發性記憶體及其方法
EP2332146B1 (en) Data state-based temperature compensation during sensing in non-volatile memory
JP5575244B2 (ja) 選択的なメモリセルプログラムおよび消去
JP4954223B2 (ja) フローティングゲート結合に対する補償を伴う不揮発性記憶装置に対する読み出し動作
KR101655352B1 (ko) 고유 임계 전압 분포 탐지에 의한 메모리의 프로그램 디스터브 예측
KR101569862B1 (ko) 비휘발성 저장 소자를 위한 소거-검증 프로세스
KR101020812B1 (ko) 비휘발성 메모리에서 개선된 판독 동작을 위해 선택 상태에서 보상을 사용하여 감지 및 다른 크기의 마진 프로그래밍
EP2345038B1 (en) Multi-pass programming for memory using word line coupling
KR101428767B1 (ko) 비휘발성 저장소자의 판독 동작 동안에 파워 소모의 감소
KR101100359B1 (ko) 인접 메모리 셀의 저장 상태를 고려하여 비휘발성 메모리 셀을 판독하는 방법
KR20090007297A (ko) 다른 전압들을 이용한 비휘발성 저장 장치에 대한 검증 동작
KR101080394B1 (ko) 비휘발성 저장장치에 대한 저항 감지 및 보상

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee