KR101995624B1 - 3차원 메모리 디바이스의 동적 워드 라인 기반 구성을 위한 방법 및 시스템 - Google Patents

3차원 메모리 디바이스의 동적 워드 라인 기반 구성을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR101995624B1
KR101995624B1 KR1020167036803A KR20167036803A KR101995624B1 KR 101995624 B1 KR101995624 B1 KR 101995624B1 KR 1020167036803 A KR1020167036803 A KR 1020167036803A KR 20167036803 A KR20167036803 A KR 20167036803A KR 101995624 B1 KR101995624 B1 KR 101995624B1
Authority
KR
South Korea
Prior art keywords
word line
word lines
memory
data
configuration
Prior art date
Application number
KR1020167036803A
Other languages
English (en)
Other versions
KR20170012462A (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 KR20170012462A publication Critical patent/KR20170012462A/ko
Application granted granted Critical
Publication of KR101995624B1 publication Critical patent/KR101995624B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • 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/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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/10Programming or data input 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/025Detection or location of defective auxiliary circuits, e.g. defective refresh counters in signal lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • H01L27/11582
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B43/00EEPROM devices comprising charge-trapping gate insulators
    • H10B43/20EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels
    • H10B43/23EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels
    • H10B43/27EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels the channels comprising vertical portions, e.g. U-shaped channels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/1202Word line control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/71Three dimensional array

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 제어기는 3D 메모리 디바이스의 각자의 블록과 연관된 복수의 워드 라인들을 제1 구성으로 구성하고 - 여기서 제1 구성은 3D 메모리 디바이스의 기판에 대한 각각의 워드 라인의 수직 위치들에서 적어도 부분적으로 결정된 복수의 워드 라인들의 각각의 워드 라인에 대한 구성 파라미터 세트를 포함함 -, 복수의 워드 라인들이 제1 구성으로 구성되어 있는 동안, 각자의 블록에 데이터를 쓰고 각자의 블록으로부터 데이터를 읽는다. 각자의 블록에 대해, 메모리 제어기는, 각자의 워드 라인에 관한 제1 트리거 조건을 검출한 것에 응답하여, 복수의 워드 라인들의 각자의 워드 라인에 대응하는 각자의 구성 파라미터 세트 내의 제1 파라미터를 조절하고, 제1 파라미터를 조절한 후에, 각자의 워드 라인에 데이터를 쓰고 각자의 워드 라인으로부터 데이터를 읽는다.

Description

3차원 메모리 디바이스의 동적 워드 라인 기반 구성을 위한 방법 및 시스템{METHOD AND SYSTEM FOR DYNAMIC WORD LINE BASED CONFIGURATION OF A THREE-DIMENSIONAL MEMORY DEVICE}
개시된 실시예들은 일반적으로 메모리 시스템에 관한 것으로서, 상세하게는 저장 디바이스(예컨대, 3차원(3D) 메모리 디바이스)가 데이터를 보유하는 신뢰성을 개선시키는 것에 관한 것이다.
비휘발성 데이터 저장 디바이스들은 데이터 및 소프트웨어 애플리케이션들의 증가된 휴대성을 가능하게 하였다. 예를 들어, 플래시 메모리 디바이스의 다중 레벨 셀(multi-level cell)(MLC) 저장 요소들 각각은 다수의 비트의 데이터를 저장할 수 있어, 단일 레벨 셀(single-level cell)(SLC) 플래시 메모리 디바이스들과 비교하여 데이터 저장 밀도를 향상시킬 수 있다. 결과적으로, 플래시 메모리 디바이스들은 사용자들이 대량의 데이터를 저장하고 액세스할 수 있게 한다. 셀당 저장되는 비트 수가 증가함에 따라, 저장된 데이터에서의 비트 오류들이 전형적으로 증가한다. 데이터 저장 디바이스는 데이터에서의 특정의 비트 오류들을 정정하기 위해 ECC(error correcting code) 기법을 사용하여 데이터를 인코딩 및 디코딩할 수 있다. ECC 기법은 사용자 데이터와 같은, 다른 정보를 위한 데이터 저장 용량을 감소시키는 패리티 정보를 이용할 수 있다.
데이터 저장 용량을 추가로 증가시키기 위해, 메모리 디바이스 기술에서의 진보들의 결과, 3차원(3D) 구성을 가지는 메모리 디바이스들이 얻어졌다. 예를 들어, 3D 메모리 디바이스는 다수의 수직으로 적층된 층들의 상이한 층들(예컨대, 상이한 레벨들)에 수직으로 적층되고 배치되는 복수의 메모리 셀들을 포함한다. 수직으로 적층되는 일군의 메모리 셀들이 전도성 채널로 결합될 수 있다. 3D 메모리 디바이스의 제조 동안, 전도성 채널의 형성을 가능하게 하기 위해 다수의 수직으로 적층된 층들을 통해 구멍이 생길 수 있다. 그렇지만, 구멍이 관통하여 연장되는 층들의 수가 증가함에 따라, 구멍의 형성을 제어하는 것이 어렵게 된다. 예를 들어, 구멍의 형상은 다수의 층들 모두를 관통하는 원통형 형상이 아닐 수 있고; 오히려 구멍은 다수의 층들 중 하나 이상의 층들을 관통하는 테이퍼진 형상을 가질 수 있다. 예시를 위해, 다수의 층들을 관통하는 구멍의 단면은 원추형 형상 또는 깔대기 형상을 가질 수 있다. 구멍이 다수의 층들 모두에 걸쳐 일관성있는 형상(예컨대, 일관성있는 직경)을 갖지 않을 때, 하나 이상의 메모리 셀들의 물리적 치수들이 영향을 받을 수 있고, 그 결과 그 메모리 셀들의 성능 저하가 있을 수 있다.
일부 실시예에서, 메모리 제어기는 저장 디바이스(예컨대, 3D 메모리 디바이스)에서의/그에 대한 동작들을 수행하도록 구성된다. 일부 실시예에서, 메모리 제어기는 트리거 조건을 검출한 후에 저장 디바이스의 각자의 워드 라인과 연관된 하나 이상의 구성 파라미터들(예컨대, ECC 인코딩 강도(encoding strength), 프로그래밍 파라미터들, 및/또는 저장 밀도)을 동적으로 조절한다. 트리거 조건은, 임의로, 각자의 워드 라인에 대한 하나 이상의 상태 메트릭들(예컨대, 각자의 워드 라인에 대해 수행된 PE(program-erase) 사이클들의 카운트, 각자의 워드 라인에 쓰여진 바이트 수, 및 각자의 워드 라인의 페이지들로부터 읽혀진 데이터에 대한 BER(bit error rate), 또는 이들의 조합)에 기초한다.
본 개시내용이 보다 상세히 이해될 수 있도록, 보다 상세한 설명이 다양한 구현들의 특징들을 참조하여 행해질 수 있고, 다양한 구현들의 일부가 첨부 도면들에 예시되어 있다. 그렇지만, 이 설명이 다른 효과적인 특징들을 인정할 수 있기 때문에, 첨부 도면들은 본 개시내용의 보다 관련성 있는 특징들을 예시한 것에 불과하고, 따라서 제한하는 것으로 간주되어서는 안된다.
도 1은 일부 실시예에 따른, 데이터 저장 시스템의 일 구현을 나타낸 블록도.
도 2a는 일부 실시예에 따른, 관리 모듈의 일 구현을 나타낸 블록도.
도 2b는 일부 실시예에 따른, 도 2a에 포함된 특성화 벡터 테이블을 나타낸 도면.
도 2c는 일부 실시예에 따른, 도 2b에 포함된 대표적인 특성화 벡터를 나타낸 도면.
도 3a는 일부 실시예에 따른, 시간의 경과에 따른 단일 레벨 플래시 메모리 셀(SLC)에서 발견되는 전압 분포들의 예상도(prophetic diagram).
도 3b는 일부 실시예에 따른, 시간의 경과에 따른 다중 레벨 플래시 메모리 셀(MLC)에서 발견되는 전압 분포들의 예상도.
도 4a는 일부 실시예에 따른, 3차원(3D) 메모리 디바이스의 컬럼(column)의 개략도.
도 4b는 일부 실시예에 따른, 도 4a에서의 컬럼의 일부분의 개략도.
도 5는 일부 실시예에 따른, 3D 메모리 디바이스의 블록의 개략도.
도 6은 일부 실시예에 따른, 3D 메모리 디바이스의 개략도.
도 7은 일부 실시예에 따른, NAND 플래시 구성으로 된 3D 메모리 디바이스의 개략도.
도 8은 일부 실시예에 따른, ReRAM 구성으로 된 3D 메모리 디바이스의 개략도.
도 9는 일부 실시예에 따른, 3D 메모리 디바이스의 각자의 블록을 구성하는 워드 라인들에 대한 제1 구성의 예상도.
도 10은 일부 실시예에 따른, 3D 메모리 디바이스의 각자의 워드 라인의 예상 상태들의 흐름도.
도 11a 내지 도 11c는 일부 실시예에 따른, 3D 메모리 셀 어레이를 갖는 저장 디바이스에서의 동작 방법의 플로우차트 표현.
통상적인 관례에 따라, 도면들에 예시된 다양한 특징들이 축척에 따라 그려져 있지 않을 수 있다. 그에 따라, 다양한 특징들의 치수들이 명확함을 위해 임의로 확장 또는 감소될 수 있다. 그에 부가하여, 도면들 중 일부가 주어진 시스템, 방법 또는 디바이스의 컴포넌트들 모두를 도시하고 있는 것은 아닐 수 있다. 마지막으로, 명세서 및 도면들 전체에 걸쳐 유사한 특징들을 가리키기 위해 유사한 참조 번호들이 사용될 수 있다.
본원에 기술되는 다양한 구현들은 데이터가 저장 디바이스(예컨대, 3D 메모리 디바이스)에 의해 보유될 수 있는 신뢰성을 개선시킬 수 있는 시스템들, 디바이스들, 및/또는 방법들을 포함한다. 일부 구현들은 3D 메모리 디바이스에 대해 워드 라인에 기초한 구성 파라미터들을 동적으로 조절하는 시스템들, 디바이스들, 및/또는 방법들을 포함한다.
일부 실시예에서, 다수의 메모리 셀 블록들 - 각각의 블록은 저장 디바이스의 기판에 대해 상이한 수직 위치들에 배열된 복수의 워드 라인들을 포함함 - 을 포함하는 3차원 메모리 셀 어레이를 포함하는 저장 디바이스에서의 동작 방법이 (예컨대, 저장 디바이스에 내장된 또는 저장 디바이스와 분리된) 메모리 제어기에 의해 수행된다. 다수의 블록들의 각자의 블록에 대해, 본 방법은 각자의 블록에 대응하는 복수의 워드 라인들을 제1 구성으로 구성하는 단계 - 제1 구성은 저장 디바이스의 기판에 대한 각각의 워드 라인의 수직 위치들에서 적어도 부분적으로 결정된 복수의 워드 라인들의 각각의 워드 라인에 대한 각자의 구성 파라미터 세트를 포함함 -; 및 복수의 워드 라인들이 제1 구성에 따라 구성되어 있는 동안, 각자의 블록에 데이터를 쓰고 각자의 블록으로부터 데이터를 읽는 단계를 포함한다. 각자의 블록에 대해, 본 방법은 복수의 워드 라인들의 각자의 워드 라인에 관한 제1 트리거 조건을 검출한 것에 응답하여, 각자의 워드 라인에 대응하는 각자의 구성 파라미터 세트 내의 제1 파라미터를 조절하는 단계; 및 각자의 워드 라인에 대응하는 각자의 구성 파라미터 세트 내의 제1 파라미터를 조절한 후에, 각자의 워드 라인에 데이터를 쓰고 각자의 워드 라인으로부터 데이터를 읽는 단계를 포함한다.
일부 실시예는 하나 이상의 프로세서들; 및 하나 이상의 프로세서들에 의해 실행될 하나 이상의 프로그램들을 저장하는 메모리 - 하나 이상의 프로그램들은 본원에 기술되는 방법들 중 임의의 방법을 수행하거나 그의 수행을 제어하기 위한 명령어들을 포함함 - 를 포함하는 전자 시스템 또는 디바이스(예컨대, 도 1의 데이터 저장 시스템(100) 또는 도 1의 메모리 제어기(120))를 포함한다. 일부 실시예는 전자 시스템 또는 디바이스(예컨대, 도 1의 데이터 저장 시스템(100) 또는 도 1의 메모리 제어기(120))의 하나 이상의 프로세서들에 의해 실행하기 위한 하나 이상의 프로그램들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체 - 하나 이상의 프로그램들은 본원에 기술되는 방법들 중 임의의 방법을 수행하거나 그의 수행을 제어하기 위한 명령어들을 포함함 - 를 포함한다. 일부 실시예는 본원에 기술되는 방법들 중 임의의 방법의 동작들을 수행하거나 그의 수행을 제어하는 수단을 포함하는 전자 시스템 또는 디바이스(예컨대, 도 1의 데이터 저장 시스템(100) 또는 도 1의 메모리 제어기(120))를 포함한다.
첨부 도면들에 예시된 예시적인 구현들의 완전한 이해를 제공하기 위해 많은 상세들이 본원에 기술된다. 그렇지만, 일부 실시예는 구체적인 상세들 중 많은 부분이 없어도 실시될 수 있고, 청구항들의 범주는 청구항들에 구체적으로 인용된 그 특징들 및 양태들에 의해서만 제한된다. 게다가, 본원에 기술되는 구현들의 보다 관련성 있는 양태들을 불필요하게 모호하게 하지 않기 위해 널리 공지된 방법들, 컴포넌트들, 및 회로들이 빠짐없이 상세히 기술되지는 않았다.
도 1은 일부 실시예에 따른 데이터 저장 시스템(100)의 일 구현의 도면이다. 일부 예시적인 특징들이 예시되어 있지만, 다양한 다른 특징들이 간략함을 위해 그리고 본원에 개시되는 예시적인 실시예들의 보다 관련성 있는 양태들을 모호하게 하지 않기 위해 예시되지 않았다. 그를 위해, 비제한적인 예로서, 데이터 저장 시스템(100)은 컴퓨터 시스템(110)과 함께 사용되고, 여기서 데이터 저장 시스템(100)은 메모리 제어기(120) 및 저장 디바이스(130)를 포함한다. 일부 실시예에서, 저장 디바이스(130)는 단일의 메모리 디바이스(예컨대, 휘발성 메모리 디바이스 또는 자기 디스크 저장 디바이스, 광학 디스크 저장 디바이스, 플래시 메모리 디바이스, (본원에 추가로 기술되는 바와 같은) 3차원(3D) 메모리 디바이스, 또는 다른 반도체 NVM 메모리 디바이스와 같은 비휘발성 메모리(NVM) 디바이스)를 포함한다. 일부 실시예에서, 저장 디바이스(130)는 복수의 메모리 디바이스들을 포함하거나 메모리 제어기(120)와 결합된 복수의 메모리 디바이스들 중 하나이다. 일부 실시예에서, 메모리 디바이스는, 각각이 2개 이상의 개별적으로 주소지정가능한 블록들(예컨대, 소거 블록들)을 갖는, 하나 이상의 다이들을 포함한다. 일부 실시예에서, 저장 디바이스(130)는 NAND형 플래시 메모리 또는 NOR형 플래시 메모리를 포함한다. 게다가, 일부 실시예에서, 메모리 제어기(120)는 SSD(solid-state drive) 제어기이다. 그렇지만, 아주 다양한 실시예들의 양태들에 따르면, 하나 이상의 다른 유형들의 저장 매체가 포함될 수 있다.
컴퓨터 시스템(110)은 데이터 연결들(101)을 통해 메모리 제어기(120)와 결합된다. 그렇지만, 일부 실시예에서, 컴퓨터 시스템(110)은 메모리 제어기(120)를 컴포넌트 및/또는 서브시스템으로서 포함한다. 컴퓨터 시스템(110)은, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 디바이스, 넷북, 인터넷 키오스크, PDA(personal digital assistant), 휴대폰, 스마트폰, 게임 디바이스, 웨어러블 컴퓨팅 디바이스, 컴퓨터 서버, 또는 임의의 다른 컴퓨팅 디바이스와 같은, 임의의 적당한 컴퓨팅 디바이스일 수 있다. 컴퓨터 시스템(110)은 때때로 호스트 또는 호스트 시스템이라고 불리운다. 일부 실시예에서, 컴퓨터 시스템(110)은 하나 이상의 프로세서들, 하나 이상의 유형들의 메모리, 디스플레이, 및/또는 키보드, 터치 스크린 디스플레이, 마우스, 트랙패드, 디지털 카메라 및/또는 I/O 기능을 추가하기 위한 임의의 수의 보조 디바이스들과 같은 다른 사용자 인터페이스 컴포넌트들을 포함한다.
저장 디바이스(130)는 연결들(103)을 통해 메모리 제어기(120)와 결합된다. 연결들(103)은 때때로 데이터 연결들이라고 불리우지만, 전형적으로 데이터에 부가하여 커맨드들을 전달하고, 저장 디바이스(130)에 저장될 데이터 값들 및 저장 디바이스(130)로부터 읽혀진 데이터 값들에 부가하여, 임의로 메타데이터, 오류 정정 정보, 및/또는 다른 정보를 전달한다. 그렇지만, 일부 실시예에서, 메모리 제어기(120) 및 저장 디바이스(130)는 동일한 디바이스에 그의 컴포넌트들로서 포함된다. 게다가, 일부 구현에서, 메모리 제어기(120) 및 저장 디바이스(130)는, 모바일 디바이스, 태블릿, 다른 컴퓨터, 또는 컴퓨터 제어 디바이스와 같은, 호스트 디바이스에 내장되고, 본원에 기술되는 방법들은 내장된 메모리 제어기에 의해 수행된다. 저장 디바이스(130)는, 플래시 메모리와 같은, 비휘발성 반도체 메모리 디바이스들(이들로 제한되지 않음)을 비롯한 임의의 수의(즉, 하나 이상의) 메모리 디바이스들을 포함할 수 있다. 예를 들어, 플래시 메모리 디바이스들은 클라우드 컴퓨팅과 같은 응용 분야들에 적당한 엔터프라이즈 저장소를 위해 또는, 하드 디스크 드라이브와 같은, 보조 저장소에 저장된(또는 저장될) 데이터를 캐싱하도록 구성될 수 있다. 그에 부가하여 그리고/또는 대안적으로, 플래시 메모리는 또한 개인용 컴퓨터, 랩톱 컴퓨터 및 태블릿 컴퓨터에 대한 개인용 플래시 드라이브 또는 하드 디스크 대체물과 같은 비교적 보다 작은 규모의 응용분야들을 위해 구성될 수 있다.
도 1에서, (예컨대, 하나 이상의 메모리 디바이스들을 갖는) 저장 디바이스(130)는 복수의 메모리 부분들(131-A, ..., 131-N)을 포함한다. 예를 들어, 각자의 메모리 부분은 저장 디바이스(130) 내의 복수의 메모리 디바이스들 중 하나, 또는 저장 디바이스(130) 내의 각자의 메모리 디바이스와 연관된 다이, 블록(예컨대, 소거 블록과 같은 개별적으로 주소지정가능한 블록), 워드 라인, 또는 페이지이다. 일부 실시예에서, 저장 디바이스(130)는 다수의 개별적으로 주소지정가능한(그리고 따라서 개별적으로 선택가능한) 블록들로 나누어진다. 일부 실시예에서, 개별적으로 선택가능한 블록들은 플래시 메모리 디바이스에서의 최소 크기 소거가능 단위이다. 환언하면, 각각의 블록은 동시에 소거될 수 있는 최소 수의 메모리 셀들을 포함한다. 각각의 블록은 보통 복수의 페이지들 및/또는 워드 라인들로 추가로 나누어지고, 여기서 각각의 페이지 또는 워드 라인은 전형적으로 블록에서의 가장 작은 개별적으로 액세스가능한(읽기가능한) 부분의 예이다. 그렇지만, (예컨대, 어떤 유형들의 플래시 메모리를 사용하는) 일부 실시예에서, 데이터 세트의 가장 작은 개별적으로 액세스가능한 단위는, 페이지의 서브단위인, 섹터이다. 즉, 블록은 복수의 페이지들을 포함하고, 각각의 페이지는 복수의 섹터들을 포함하며, 각각의 섹터는 플래시 메모리 디바이스로부터 데이터를 읽기 위한 최소 데이터 단위이다. 일부 실시예에서, 저장 디바이스(130)는 메모리 동작(예컨대, 읽기, 쓰기, 또는 소거 동작)을 수행할 저장 디바이스(130)의 각자의 부분을 선택하고 저장 디바이스(130)의 각자의 부분에 대해 메모리 동작을 수행하게 하기 위한 읽기/쓰기 회로부(135)를 포함한다.
예를 들어, 하나의 블록은 다수의 페이지들(예컨대, 64개의 페이지들, 128개의 페이지들, 256개의 페이지들, 또는 다른 적당한 수의 페이지들)을 포함한다. 일부 구현에서, 다이 내의 블록들은 복수의 구역(zone)들로 그룹화된다. 전형적으로, 다이의 각각의 블록 구역은, 다이에서의 메모리 셀 어레이의 특정의 1/2 영역(half) 또는 특정의 1/4 영역(quadrant)과 같은, 다이의 물리적으로 개별적인 영역에 있다. 일부 구현에서, 각각의 블록 구역은 어느 정도 독립적으로 관리되고, 이는 병렬 동작들에 대한 병렬성의 정도를 증가시키고 저장 디바이스(130)의 관리를 단순화시킨다.
일부 실시예에서, 메모리 제어기(120)는 관리 모듈(121), 입력 버퍼(123), 출력 버퍼(124), 오류 제어 모듈(125), 및 저장 매체 인터페이스(I/O)(128)를 포함한다. 일부 실시예에서, 메모리 제어기(120)는 간략함을 위해 그리고 본원에 개시되는 예시적인 실시예들의 보다 관련성 있는 특징들을 모호하게 하지 않기 위해 예시되지 않은 다양한 부가 특징들을 포함하고, 특징들의 상이한 배열이 가능할 수 있다. 입력 버퍼(123) 및 출력 버퍼(124)는 데이터 연결들(101)을 통해 컴퓨터 시스템(110)에의 인터페이스를 제공한다. 이와 유사하게, 저장 매체 I/O(128)는 연결들(103)을 통해 저장 디바이스(130)에의 인터페이스를 제공한다. 일부 실시예에서, 저장 매체 I/O(128)는, 읽기 신호들(예컨대, NAND형 플래시 메모리에 대한 읽기 문턱 전압들)을 저장 디바이스(130)에 제공할 수 있는 회로부를 포함하는, 읽기 및 쓰기 회로부를 포함한다.
일부 실시예에서, 관리 모듈(121)은 (예컨대, 관리 모듈(121) 내의) 하나 이상의 프로그램들에서의 명령어들을 실행하도록 구성된 하나 이상의 처리 유닛들(CPU(들), 때때로 하나 이상의 프로세서들이라고도 불리움)(122)을 포함한다. 일부 실시예에서, 하나 이상의 CPU들(122)은 메모리 제어기(120)의 기능 내의 그리고, 어떤 경우에, 그를 벗어난 하나 이상의 컴포넌트들에 의해 공유된다. 관리 모듈(121)은 입력 버퍼(123), 출력 버퍼(124)(연결이 도시되지 않음), 오류 제어 모듈(125), 및 저장 매체 I/O(128)와, 이 컴포넌트들의 동작을 조율하기 위해, 결합된다.
오류 제어 모듈(125)은 저장 매체 I/O(128), 입력 버퍼(123) 및 출력 버퍼(124)와 결합된다. 오류 제어 모듈(125)은 데이터에 의도하지 않게 유입되는 정정가능하지 않은 오류들의 수를 제한하기 위해 제공된다. 일부 실시예에서, 오류 제어 모듈(125)은 관리 모듈(121)의 하나 이상의 CPU들(122)에 의해 소프트웨어로 실행되고, 다른 실시예에서, 오류 제어 모듈(125)은, 전체적으로 또는 부분적으로, 인코딩 및 디코딩 기능들을 수행하는 특수 목적 회로부를 사용하여 구현된다. 그를 위해, 오류 제어 모듈(125)은 인코더(126) 및 디코더(127)를 포함한다. 일부 실시예에서, 오류 제어 모듈(125)은, 리드-솔로몬(Reed-Solomon), 터보 코드(turbo-code), BCH(Bose-Chaudhuri-Hocquenghem), LDPC(low-density parity check), 또는 다른 오류 제어 코드들, 또는 이들의 조합과 같은, 복수의 ECC 기법들(또는 ECC 강도들) 중 하나에 따라 (예컨대, 인코더(126)를 사용해) 데이터를 인코딩하고 (예컨대, 디코더(127)를 사용해) 읽혀진 원시 데이터(raw read data)를 디코딩하도록 구성된다.
본 기술분야의 통상의 기술자라면 다양한 오류 제어 코드들이 상이한 오류 검출 및 정정 능력을 갖는다는 것과, 본 개시내용의 범주를 벗어나는 이유들로 다양한 응용분야들에 대해 특정의 코드들이 선택된다는 것을 잘 알 것이다. 그에 따라, 다양한 유형들의 오류 제어 코드들의 전수적인 검토가 본원에 제공되지 않는다. 더욱이, 본 기술분야의 통상의 기술자라면 각각의 유형 또는 계열의 오류 제어 코드들이 그 유형 또는 계열의 오류 제어 코드들에 특유한 인코딩 및 디코딩 알고리즘들을 가질 수 있다는 것을 잘 알 것이다. 다른 한편으로, 일부 알고리즘들은 다수의 상이한 유형들 또는 계열들의 오류 제어 코드들의 디코딩에서 적어도 어느 정도 이용될 수 있다. 그에 따라, 간결함을 위해, 본 기술분야의 통상의 기술자에 의해 일반적으로 이용가능하고 그에게 알려져 있는 다양한 유형들의 인코딩 및 디코딩 알고리즘들의 전수적인 설명이 본원에서 제공되지 않는다.
쓰기 동작 동안, 입력 버퍼(123)는 컴퓨터 시스템(110)으로부터 저장 디바이스(130)에 저장될 데이터(예컨대, 쓰기 데이터)를 수신한다. 입력 버퍼(123)에 보유된 데이터는, 하나 이상의 코드워드들을 생성하기 위해 오류 제어 코드를 적용하는 것에 의해 데이터를 인코딩하는, 인코더(126)에 의해 이용가능하게 된다. 하나 이상의 코드워드들이, 이용되고 있는 저장 매체의 유형에 의존하는 방식으로 하나 이상의 코드워드들을 저장 디바이스(130)로 전달하는, 저장 매체 I/O(128)에 의해 이용가능하게 된다. 컴퓨터 시스템(호스트)(110)이 저장 디바이스(130)에 데이터를 요청하는 하나 이상의 호스트 읽기 커맨드들을 제어 라인(111)을 통해 메모리 제어기(120)로 송신할 때 읽기 동작이 개시된다. 메모리 제어기(120)는 하나 이상의 호스트 읽기 커맨드들에 의해 명시된 메모리 위치들(주소들)에 따라 읽혀진 원시 데이터를 획득하기 위해 하나 이상의 읽기 액세스 커맨드들을, 저장 매체 I/O(128)를 통해, 저장 디바이스(130)로 송신한다. 저장 매체 I/O(128)는 (예컨대, 하나 이상의 코드워드들을 포함하는) 읽혀진 원시 데이터를 디코더(127)에 제공한다. 디코더(127)는 데이터를 복구하기 위해, 그리고 복구된 데이터에서의 오류들을 오류 제어 코드의 오류 정정 능력 내에서 정정하기 위해 디코딩 프로세스를 인코딩된 데이터에 적용한다. 디코딩이 성공적이면, 디코딩된 데이터가 출력 버퍼(124)에 제공되고, 여기서 디코딩된 데이터가 컴퓨터 시스템(110)에 의해 이용가능하게 된다. 일부 실시예에서, 디코딩이 성공적이지 않으면, 메모리 제어기(120)는 다수의 교정 조치들에 의존하거나 해결가능하지 않은 오류 상태의 표시를 제공할 수 있다.
플래시 메모리 디바이스들은 데이터를, 전하(electrical charge) 또는 전압과 같은, 전기적 값으로서 저장하기 위해 메모리 셀들을 이용한다. 각각의 플래시 메모리 셀은 전형적으로 트랜지스터의 문턱 전압(즉, 트랜지스터를 턴온시키는 데 필요한 전압)을 수정하는 전하를 저장하는 데 사용되는 부유 게이트를 갖는 단일의 트랜지스터를 포함한다. 전하의 크기, 및 전하가 생성하는 대응하는 문턱 전압은 하나 이상의 데이터 값들을 표현하는 데 사용된다. 일부 구현에서, 읽기 동작 동안, 읽기 문턱 전압이 트랜지스터의 제어 게이트에 인가되고, 그 결과 얻어진 감지된 전류 또는 전압이 데이터 값에 매핑된다.
"셀 전압" 및 "메모리 셀 전압"이라는 용어들은, 플래시 메모리 셀과 관련하여, 메모리 셀의 트랜지스터가 전류를 도통시키기 위해 트랜지스터의 게이트에 인가될 필요가 있는 최소 전압인, 메모리 셀의 문턱 전압을 의미한다. 이와 유사하게, 플래시 메모리 셀에 인가되는 읽기 문턱 전압(때때로 읽기 신호 및 읽기 전압이라고도 불리움)은 메모리 셀이 그 게이트 전압에서 전류를 도통하는지를 결정하기 위해 플래시 메모리 셀의 게이트에 인가되는 게이트 전압이다. 일부 구현에서, 플래시 메모리 셀의 트랜지스터가 주어진 읽기 문턱 전압에서 전류를 도통시킬 때 - 이는 셀 전압이 읽기 문턱 전압보다 작다는 것을 나타냄 -, 그 읽기 동작에 대한 원시 데이터 값은 "1"이고, 그렇지 않은 경우, 원시 데이터 값은 "0"이다.
도 2a는 일부 실시예에 따른, 예시적인 관리 모듈(121)을 나타낸 블록도이다. 관리 모듈(121)은 전형적으로 메모리(206)에 저장된 모듈들, 프로그램들 및/또는 명령어들을 실행하고 그로써 처리 동작들을 수행하는 하나 이상의 프로세서들(122)(때때로 CPU(들), 처리 유닛(들), 마이크로프로세서(들), 마이크로컨트롤러(들), 또는 코어(들)라고도 불리움), 메모리(206), 및 이 컴포넌트들을 상호연결시키는 하나 이상의 통신 버스들(208)을 포함한다. 통신 버스들(208)은 시스템 컴포넌트들을 상호연결시키고 그들 사이의 통신을 제어하는 회로부(때때로 칩셋이라고 불리움)를 임의로 포함한다. 관리 모듈(121)은 통신 버스들(208)에 의해 버퍼(123), 버퍼(124), 오류 제어 모듈(125), 및 저장 디바이스(130)와 결합된다. 메모리(206)는 휘발성 메모리(예컨대, DRAM, SRAM, DDR RAM, 또는 다른 랜덤 액세스 고상 메모리 디바이스들과 같은 하나 이상의 고속 랜덤 액세스 메모리), 및/또는 비휘발성 메모리(예컨대, 자기 디스크 저장 디바이스(들), 광학 디스크 저장 디바이스(들), 플래시 메모리 디바이스(들), 3D 메모리 디바이스(들), 또는 다른 비휘발성 고상 저장 디바이스(들)와 같은 하나 이상의 NVM 디바이스들)를 포함한다. 메모리(206)는, 임의로, 하나 이상의 처리 유닛들(122)로부터 원격지에 위치된 하나 이상의 저장 디바이스들을 포함한다. 메모리(206), 또는 대안적으로 메모리(206) 내의 비휘발성 메모리 디바이스(들)는 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 일부 실시예에서, 메모리(206), 또는 메모리(206)의 컴퓨터 판독가능 저장 매체는 이하의 프로그램들, 모듈들, 및 데이터 구조들, 또는 이들의 서브셋 또는 수퍼셋을 저장한다:
Figure 112016128755649-pct00001
저장 디바이스(130)로부터 데이터를 읽기 위한 또는 데이터가 읽혀지게 하기 위한 데이터 읽기 모듈(212);
Figure 112016128755649-pct00002
저장 디바이스(130)에 데이터를 쓰기 위한 또는 데이터가 쓰여지게 하기 위한 데이터 쓰기 모듈(214);
Figure 112016128755649-pct00003
저장 디바이스(130)로부터 데이터를 소거하기 위한 또는 데이터가 소거되게 하기 위한 데이터 소거 모듈(216);
Figure 112016128755649-pct00004
호스트(예컨대, 도 1의 컴퓨터 시스템(110)) 또는 다른 내부 프로세스들로부터 메모리 동작 커맨드들을 수신하기 위한 요청 핸들링 모듈(218);
Figure 112016128755649-pct00005
저장 디바이스(130)의 페이지들 또는 블록들을 균등하게 마모시키기 위해 데이터를 저장하기 위한 저장 디바이스(130)의 페이지들 또는 블록들을 최적으로 결정하기 위한 웨어 레벨링 모듈(220);
Figure 112016128755649-pct00006
(임의로) 저장 디바이스(130)의 각각의 컬럼 또는 블록에 대한 변동 위치(예컨대, 테이퍼 영역(taper region)의 끝)를 결정하기 위한 위치 결정 모듈(222);
Figure 112016128755649-pct00007
(임의로) 저장 디바이스(130)의 각각의 컬럼 또는 블록에 대한 업데이트된 변동 위치를 결정하기 위한 위치 업데이트 모듈(224);
Figure 112016128755649-pct00008
(임의로) 저장 디바이스(130)의 각각의 컬럼 또는 블록에 대한 위치 결정 모듈(222)에 의해 결정된 변동 위치 및/또는 위치 업데이트 모듈(224)에 의해 결정된 업데이트된 변동 위치를 저장하는 위치 테이블(226);
Figure 112016128755649-pct00009
저장 디바이스(130)의 각각의 메모리 부분(예컨대, 다이, 블록, 워드 라인, 또는 페이지 부분)에 대한 하나 이상의 상태 메트릭들 또는 저장 디바이스(130)의 각각의 메모리 부분에 대한 결합된 상태 메트릭을 유지하기 위한 메트릭 유지 모듈(228), 여기서 각자의 메모리 부분에 대한 결합된 상태 메트릭은 각자의 메모리 부분에 대응하는 하나 이상의 상태 메트릭들을 포함하는 미리 정의된 알고리즘에 기초하여 계산됨;
Figure 112016128755649-pct00010
저장 디바이스(130)의 각자의 부분에 관한 트리거 조건을 검출하기 위한 트리거 검출 모듈(230);
Figure 112016128755649-pct00011
저장 디바이스(130)의 각자의 부분에 관한 트리거 조건을 검출한 것에 응답하여 저장 디바이스(130)의 각자의 부분의 하나 이상의 구성 파라미터들을 조절하기 위한 조절 모듈(232);
Figure 112016128755649-pct00012
저장 디바이스(130)의 각자의 부분들에 대한 특성화 데이터를 저장하는 특성화 벡터들(235)의 컬렉션을 저장하는 특성화 벡터 테이블(234); 및
Figure 112016128755649-pct00013
호스트(예컨대, 도 1의 컴퓨터 시스템(110))에 의해 인식되는 논리 주소들을 저장 디바이스(130)의 물리 주소들에 매핑하는 논리-물리 맵을 저장하는 논리-물리 매핑(236).
앞서 살펴본 요소들 각각은 이전에 언급한 메모리 디바이스들 중 하나 이상에 저장될 수 있고, 앞서 기술된 기능을 수행하는 명령어 세트에 대응한다. 앞서 살펴본 모듈들 또는 프로그램들(즉, 명령어 세트들)은 개별적인 소프트웨어 프로그램들, 절차들 또는 모듈들로서 구현될 필요는 없으며, 따라서 이 모듈들의 다양한 서브셋들이 다양한 실시예에서 결합되거나 다른 방식으로 재배열될 수 있다. 일부 실시예에서, 메모리(206)는 앞서 살펴본 모듈들 및 데이터 구조들의 서브셋을 저장할 수 있다. 게다가, 메모리(206)는 앞서 기술되지 않은 부가의 모듈들 및 데이터 구조들을 저장할 수 있다. 일부 실시예에서, 메모리(206), 또는 메모리(206)의 컴퓨터 판독가능 저장 매체에 저장된 프로그램들, 모듈들, 및 데이터 구조들은 도 10 및 도 11a 내지 도 11c를 참조하여 이하에서 기술되는 방법들 중 임의의 방법을 구현하는 명령어들을 제공한다.
도 2a가 관리 모듈(121)을 도시하고 있지만, 도 2a는 본원에 기술되는 실시예들의 구조적 개략으로서보다는 관리 모듈에 존재할 수 있는 다양한 특징들의 기능 설명으로서 더 의도되어 있다. 실제로, 그리고 본 기술분야의 통상의 기술자에 의해 인식되는 바와 같이, 개별적으로 도시된 항목들이 결합될 수 있을 것이고 일부 항목들은 분리될 수 있을 것이다.
도 2b는 일부 실시예에 따른, 특성화 벡터 테이블(234)의 일 구현을 나타낸 블록도이다. 특성화 벡터 테이블(234)은, 각각이 저장 디바이스(130)의 각자의 부분(예컨대, 저장 디바이스(130)의 개별 다이, 블록 구역, 블록, 워드 라인, 워드 라인 구역(예컨대, 기판에 대해 연속적인 수직 위치들에 있는 일군의 워드 라인들), 또는 페이지 부분)과 연관된 특성화 데이터를 저장하는, 특성화 벡터들(235)의 컬렉션을 포함한다. 일부 실시예에서, 특성화 벡터들(235)의 컬렉션 내의 각각의 벡터(예컨대, 벡터(235-1), 벡터(235-2), ..., 벡터(235-N))는 저장 디바이스(130)의 각자의 부분에 대한 적어도 2개의 기간들(예컨대, 시간(T-1) 및 시간(T-2), 또는 X개의 프로그램-소거(PE) 사이클들 및 2X개의 PE 사이클들) 각각 동안 도출된 특성화 데이터(예컨대, 쓰기 용량(bytes written)(260), PE 사이클들(262), BER(264), 및/또는 다른 사용 정보(266))를 저장한다. 일부 구현에서, 특성화 벡터들(235)에 저장된 특성화 데이터는 정적으로 도출된다. 제한이 아닌 예로서, 저장 디바이스(130)(도 1)가 다수의 블록들을 포함하는 일부 실시예에서, 특성화 벡터 테이블(234)은 저장 디바이스(130)의 각각의 개별 블록에 대한 적어도 하나의 특성화 벡터를 포함한다. 다른 예로서, 일부 실시예에서, 특성화 벡터 테이블(234)은 저장 디바이스(130)의 각각의 블록에 대한 일단의 개별 특성화 벡터들(235)을 포함하고, 각각의 다이에 대한 일단의 개별 특성화 벡터들(235)은 블록 내의 각각의 워드 라인 또는 페이지에 대한 적어도 하나의 개별 특성화 벡터를 포함한다. 일부 실시예에서, 특성화 벡터 테이블(234)은 상이한 마모 스테이지들에서 각자의 워드 라인들에 사용하기에 적절한 구성 값들로 미리 프로그래밍되어 있는 일단의 미리 정의된 특성화 벡터들을 갖고; 임의의 한 때에, 블록 내의 각각의 워드 라인 또는 워드 라인 구역은 미리 정의된 특성화 벡터들 중 하나와 연관되어 있다. 특성화 벡터들(235)의 보다 상세한 예시적인 구현들이 도 2c를 참조하여 이하에서 기술된다.
도 2c는 일부 실시예에 따른, (예컨대, 도 2b에 도시된 특성화 벡터들(235) 중 임의의 특성화 벡터에 대응하는) 대표적인 특성화 벡터(250)의 일 구현의 개략도이다. 일부 실시예에서, 저장 디바이스(130)의 각자의 부분에 대해, 특성화 벡터(250)에 저장된 특성화 데이터는 (i) X3(즉, 메모리 셀당 3 비트), X2(즉, 메모리 셀당 2 비트), X1(즉, 메모리 셀당 1 비트), 또는 X0(즉, 폐기된 메모리 셀)과 같은, 저장 디바이스(130)의 각자의 부분 내의 메모리 셀들의 현재 저장 밀도를 표시하는 저장 밀도 필드(252); (ii) 패리티 비트들의 수 및/또는 ECC 기법(예컨대, 리드-솔로몬 코드, 터보 코드, BCH 코드, 또는 LDPC 코드)과 같은 저장 디바이스(130)의 각자의 부분과 연관된 페이지(들)에 저장된 데이터에 대한 ECC 인코딩 강도(및/또는 기법) 필드(254); 및 (iii) 프로그래밍 전압, 프로그래밍 펄스들의 수, 및/또는 각각의 프로그래밍 펄스에 대한 단차(step), 폭, 또는 지속기간과 같은 저장 디바이스(130)의 각자의 부분에 저장된 또는 저장될 데이터와 연관된 하나 이상의 프로그래밍 파라미터들을 표시하는 프로그래밍 파라미터들 필드(256)를 포함한다.
일부 실시예에서, 특성화 벡터(250)에 저장된 특성화 데이터는 하나 이상의 상태 메트릭들(258)을 포함하고, 그의 비제한적인 예들은 (a) 저장 디바이스(130)의 각자의 부분에 쓰여진 데이터의 바이트 수를 표시하는 쓰기 용량 필드(260); (b) 저장 디바이스(130)의 각자의 부분에 대해 수행된 PE 사이클들의 수의 현재 카운트를 표시하는 PE 사이클 필드(262); (c) 저장 디바이스(130)의 각자의 부분의 페이지로부터 읽혀진 코드워드에 포함된 오류들의 수 또는 저장 디바이스(130)의 각자의 부분의 페이지(들)로부터 읽혀진 이전의 N개의 코드워드들에 포함된 오류들의 평균 수를 표시하는 BER(bit error rate) 필드(264); 및 (d) 저장 디바이스(130)의 각자의 부분의 건전성(health), 성능, 및/또는 내구성을 표시하는 다른 사용 정보(266)를 포함한다.
일부 실시예에서, 특성화 벡터(250)에 저장된 특성화 데이터는, 임의로, 저장 디바이스(130)의 각자의 부분에 대한 결합된 상태 메트릭(도 2c에서 상태 메트릭(258)으로 나타내어져 있음)을 포함한다. 일부 실시예에서, 결합된 상태 메트릭은 저장 디바이스(130)의 각자의 부분과 연관된 하나 이상의 사용 파라미터들을 고려하는 (예컨대, 도 2a의 메트릭 유지 모듈(228)에 의해 계산되는) 미리 정의된 알고리즘의 출력과 연관되어 있다. 예를 들어, 미리 정의된 알고리즘은 (a) 저장 디바이스(130)의 각자의 부분에 쓰여진 바이트 수; (b) 저장 디바이스(130)의 각자의 부분에 대해 수행된 PE 사이클들의 수; (c) 저장 디바이스(130)의 각자의 부분의 페이지(들)로부터 읽혀진 코드워드들에 대한 BER; 및 (d) 저장 디바이스(130)의 각자의 부분과 연관된 다른 사용 정보 중 하나 이상을 포함한다. 일부 실시예에서, 특성화 벡터(250)에 저장된 특성화 데이터는 저장 디바이스(130)의 각자의 부분에 대응하는 물리 주소들 또는 물리 주소들의 세트를 표시하는 저장 디바이스(130)의 각자의 부분에 대한 물리 주소들 필드(268)를 포함한다.
도 3a를 참조하여 이하에서 논의되는 바와 같이, 단일 레벨 플래시 메모리 셀(SLC)(때때로 본원에서 "X1"이라고도 불리움)은 1 비트("0" 또는 "1")를 저장한다. 이와 같이, SLC 메모리 디바이스의 저장 밀도는 메모리 셀당 1 비트의 정보이다. 그렇지만, 다중 레벨 플래시 메모리 셀(MLC)은 다중-비트 비트 튜플(multi-bit bit-tuple)을 표현하기 위해 메모리 셀의 전체 전압 범위 내의 상이한 범위들을 사용함으로써 셀당 2 이상의 비트의 정보를 저장할 수 있다. 결국, MLC 메모리 디바이스의 저장 밀도는 셀당 다중 비트(예컨대, 메모리 셀당 2 비트)이다.
도 3a는 일부 실시예에 따른, 단일 레벨 플래시 메모리 셀(SLC)에서 발견되는 전압 분포들(300a)의 간략화된 예상도이다. 도 3a에 도시된 전압 분포들(300a)은 예시를 위해 간략화되었다. 이 예에서, SLC의 전압 범위는 대략적으로 NMOS 트랜지스터의 소스 단자에서의 전압 V SS 부터 NMOS 트랜지스터의 드레인 단자에서의 전압 V DD 까지 걸쳐 있다. 그에 따라, 전압 분포들(300a)는 V SS V DD 사이에 걸쳐 있다.
소스 전압 V SS 와 드레인 전압 V DD 사이의 순차적인 전압 범위들(301 및 302)은, 각각, 대응하는 비트 값들 "1" 및 "0"을 표현하는 데 사용된다. 각각의 전압 범위(301, 302)는 각자의 중심 전압 V 1 (301b), V 0 (302b)을 갖는다. 앞서 기술된 바와 같이, 많은 상황들에서, 인가된 읽기 문턱 전압들에 응답하여 감지되는 메모리 셀 전류는 메모리 셀에 쓰여진 각자의 비트 값에 대응하는 각자의 중심 전압 V 1 (301b) 또는 V 0 (302b)과 상이한 메모리 셀 전압을 나타낸다. 셀 전압, 및/또는 메모리 셀을 읽을 때 감지되는 셀 전압에서의 오류들은 쓰기 동작, 읽기 동작 동안, 또는 데이터가 메모리 셀에 쓰여지는 때와 메모리 셀에 저장된 데이터를 읽기 위해 읽기 동작이 수행되는 때 사이의 셀 전압의 "드리프트"로 인해 일어날 수 있다. 논의의 편의를 위해, 이 효과들이 일괄하여 "셀 전압 드리프트"라고 기술된다. 각각의 전압 범위(301, 302)는 또한 오류 유발 인자들 - 그의 예들은 앞서 언급되었음 - 의 임의의 수의 조합의 결과로서 생길 수 있는 각자의 전압 분포(301a, 302a)를 갖는다.
일부 구현에서, 읽기 문턱 전압 V R 은 인접한 중심 전압들 사이에서 인가된다(예컨대, 인접한 중심 전압들 V 1 (301b)과 V 0 (302b) 사이의 중간 영역에 근접하여 인가됨). 임의로, 일부 구현에서, 읽기 문턱 전압은 전압 범위(301)와 전압 범위(302) 사이에 위치된다. 일부 구현에서, 읽기 문턱 전압 V R 은 전압 분포(301a)와 전압 분포(302a)가 겹치는 곳에 근접한 영역 - 인접한 중심 전압 V 1 (301b)과 V 0 (302b) 사이의 중간 영역에 꼭 근접할 필요는 없음 - 에서 인가된다.
플래시 메모리에서 저장 밀도를 증가시키기 위해, 2개 이상의 비트들이 각각의 메모리 셀(때때로 본원에서 "X2"라고도 불리움)에 의해 저장될 수 있도록, 플래시 메모리가 단일 레벨 셀(SLC) 플래시 메모리로부터 다중 레벨 셀(MLC) 플래시 메모리로 발전되었다. 도 3b를 참조하여 이하에서 논의되는 바와 같이, MLC 플래시 메모리 디바이스는 상이한 비트 튜플들을 표현하기 위해 메모리 셀의 전체 전압 범위 내의 전압 범위들을 사용하여 다수의 비트들을 저장하는 데 사용된다. MLC 플래시 메모리 디바이스는 전형적으로 동일한 제조 프로세스를 사용하여 생성된 SLC 플래시 메모리 디바이스보다 오류가 발생하기 더 쉬운데, 그 이유는 상이한 데이터 값들을 저장하는 데 사용되는 전압들 사이의 유효 전압 차가 MLC 플래시 메모리 디바이스에 대해 더 작기 때문이다. 더욱이, 전기적 변동들, 저장 매체에서의 결함들, 동작 조건들, 디바이스 이력, 및/또는 쓰기-읽기 회로부와 같은, 인자들의 임의의 수의 조합으로 인해, 전형적인 오류는 특정의 MLC에서의 저장된 전압 레벨이 그렇지 않았으면 특정의 비트 튜플의 올바른 저장을 표현하게 될 전압 범위에 인접한 전압 범위에 있는 것을 포함한다. 이하에서 보다 상세히 논의하는 바와 같이, 이러한 오류들의 영향은, 인접한 전압 범위들이 비트 튜플들 사이의 단일 비트 변화들을 표현하도록, 데이터를 그레이 코딩(gray-coding)하는 것에 의해 감소될 수 있다.
도 3b는 일부 실시예에 따른, 시간의 경과에 따른 다중 레벨 플래시 메모리 셀(MLC)에서 발견되는 전압 분포들(300b)의 간략화된 예상도이다. 도 3b에 도시된 전압 분포들(300b)은 예시를 위해 간략화되었다. MLC의 셀 전압은 대략적으로 NMOS 트랜지스터의 소스 단자에서의 전압 V SS 부터 드레인 단자에서의 전압 V DD 까지 걸쳐 있다. 그에 따라, 전압 분포들(300b)는 V SS V DD 사이에 걸쳐 있다.
소스 전압 V SS 와 드레인 전압 V DD 사이의 순차적인 전압 범위들(321, 322, 323, 324)은, 각각, 대응하는 비트 튜플들 "11", "01", "00", "10"을 표현하는 데 사용된다. 각각의 전압 범위(321, 322, 323, 324)는 각자의 중심 전압(321b, 322b, 323b, 324b)을 갖는다. 각각의 전압 범위(321, 322, 323, 324)는 또한 전기적 변동들, 저장 매체에서의 결함들, 동작 조건들, 디바이스 이력(예컨대, PE 사이클들의 수), 및/또는 쓰기-읽기 회로부의 불완전한 성능 또는 설계와 같은, 인자들의 임의의 수의 조합의 결과로서 생길 수 있는 각자의 전압 분포(321a, 322a, 323a, 324a)를 갖는다.
이상적으로는, 쓰기 동작 동안, MLC의 부유 게이트 상의 전하는 대응하는 비트 튜플을 MLC에 쓰기 위해, 그 결과 얻어진 셀 전압이 범위들(321, 322, 323, 324) 중 하나의 범위의 중심에 있도록, 설정될 것이다. 구체적으로는, 그 결과 얻어진 셀 전압은 비트 튜플들 "11", "01", "00" 및 "10" 중 대응하는 비트 튜플을 쓰기 위해 V 11 (321b), V 01 (322b), V 00 (323b), 및 V 10 (324b) 중 하나로 설정될 것이다. 실제로는, 앞서 언급된 인자들로 인해, 초기 셀 전압이 MLC에 쓰여진 데이터에 대한 중심 전압과 상이할 수 있다.
읽기 문턱 전압들 V RA , V RB , 및 V RC 는 인접한 중심 전압들 사이에 배치(예컨대, 인접한 중심 전압들 사이의 중간 지점에 또는 그 근방에 배치)되고, 따라서 전압 범위들(321, 322, 323, 324) 사이에 문턱 전압들을 정의한다. 읽기 동작 동안, 읽기 문턱 전압들 V RA , V RB , 및 V RC 중 하나는 비교 프로세스를 사용하여 셀 전압을 결정하기 위해 인가된다. 그렇지만, 앞서 논의된 다양한 인자들로 인해, 실제의 셀 전압, 및/또는 MLC를 읽을 때 수신되는 셀 전압이 셀에 쓰여지는 데이터 값에 대응하는 각자의 중심 전압 V 11 (321b), V 01 (322b), V 00 (323b), 또는 V 10 (324b)과 상이할 수 있다. 예를 들어, 실제의 셀 전압이 완전히 상이한 전압 범위에 있을 수 있으며, 이는 MLC가 MLC에 쓰여진 것과 상이한 비트 튜플을 저장하고 있다는 것을 강하게 나타낸다. 보다 통상적으로는, 실제의 셀 전압이 읽기 비교 전압들 중 하나에 가까울 수 있어, 2개의 인접한 비트 튜플들 중 어느 것이 MLC에 의해 저장되는지를 확실하게 결정하는 것을 어렵게 만든다.
셀 전압, 및/또는 MLC를 읽을 때 수신되는 셀 전압에서의 오류들은 쓰기 동작, 읽기 동작 동안, 또는 데이터가 MLC에 쓰여지는 때와 MLC에 저장된 데이터를 읽기 위해 읽기 동작이 수행되는 때 사이의 셀 전압의 "드리프트"로 인해 일어날 수 있다. 논의의 편의상, 때때로 셀 전압, 및/또는 MLC를 읽을 때 수신되는 셀 전압에서의 오류들이 일괄하여 "셀 전압 드리프트"라고 불리운다.
셀 전압이 하나의 전압 범위로부터 인접한 전압 범위로 드리프트하는 것의 영향을 감소시키는 하나의 방식은 비트 튜플들을 그레이 코딩하는 것이다. 비트 튜플들을 그레이 코딩하는 것은, 특정의 전압 범위의 각자의 비트 튜플이 인접한 전압 범위의 각자의 비트 튜플과 단지 1 비트만 상이하도록, 비트 튜플들의 할당을 제약하는 것을 포함한다. 예를 들어, 도 3b에 도시된 바와 같이, 인접한 범위들(321 및 322)에 대한 대응하는 비트 튜플들은, 각각, "11" 및 "01"이고, 인접한 범위들(322 및 323)에 대한 대응하는 비트 튜플들은, 각각, "01" 및 "00"이며, 인접한 범위들(323 및 324)에 대한 대응하는 비트 튜플들은, 각각, "00" 및 "10"이다. 그레이 코딩을 사용할 때, 셀 전압이 읽기 비교 전압 레벨에 가깝게 드리프트하는 경우, 오류는 전형적으로 2-비트 비트 튜플 내의 단일 비트로 제한된다.
본 기술 분야의 통상의 기술자라면 1-비트 SLC 및 2-비트 MLC의 상기 논의를 N-비트 메모리 셀들에 어떻게 적용할지를 알 것이다. 때때로 본원에서, 1 비트를 저장하도록 구성된 메모리 셀은 X1로서 지칭되고, 2 비트를 저장하도록 구성된 메모리 셀은 X2로서 지칭되며, 3 비트를 저장하도록 구성된 메모리 셀은 X3으로서 지칭된다. 그에 부가하여, 추가의 프로그래밍을 위해 이용가능하지 않은, 폐기된 메모리 셀은 X0으로서 지칭된다.
도 4a는 일부 실시예에 따른, 메모리 디바이스(예컨대, 도 1의 저장 디바이스(130))의 컬럼(400)의 개략도이다. 컬럼(400)은 3차원(3D) 메모리 구성을 가지는 메모리 디바이스 내에 통합된다. 예를 들어, 컬럼(400)은 도 1의 저장 디바이스(130) 내에 통합된다.
일부 실시예에서, 컬럼(400)은 기판(408)(예컨대, 실리콘 기판) 상에 형성되는 다수의 재료 층들 내에 형성되는 저장 요소들(예컨대, SLC 또는 MLC 플래시 메모리 셀들)을 포함한다. 예시를 위해, 도 4a는 대표적인 층들(410, 412, 및 414)을 나타내고 있다. 예를 들어, 층(410)은 기판(408)에 인접하여 형성된다(즉, 층(410)은 "하부" 층이다). 게다가, 이 예에서, 층(412)은 층(410)에 인접해 있고, 층(414)은 컬럼(400)의 다른 층들보다 기판으로부터 더 멀리 있다(즉, 층(414)은 "상부" 층이다). 일부 실시예에서, 층들(410, 412, 및 414)은 전도성(또는 반전도성) 재료(예컨대, 도핑된 폴리실리콘)를 포함한다. 일부 실시예에서, 컬럼(400)은, 층(410)과 층(412) 사이에 개재된 산화물 층과 같은, 다른 층들을 포함한다.
일부 실시예에서, 컬럼(400)은 구조물(402)을 추가로 포함한다. 구조물(402)을 형성하기 위해, 컬럼(400)의 층들을 관통하게 에칭하여 에칭된 영역(예컨대, "메모리 구멍(memory hole)"과 같은, 캐비티)을 형성하기 위해 에칭 프로세스가 수행된다. 컬럼(400)의 층들을 관통하게 에칭하여 에칭된 영역을 형성한 후에, 에칭된 영역은 구조물(402)을 형성하기 위해 하나 이상의 재료들로 채워진다. 예를 들어, 구조물(402)은 원형 또는 실질적으로 원형인 형상을 가진다. 이 예에서, 기판(408)의 표면에 수직인 구조물(402)의 단면은 원형이다.
일부 실시예에서, 컬럼(400)은, 대표적인 저장 요소들(404 및 406)(예컨대, SLC 또는 MLC 플래시 메모리 셀들)과 같은, 다수의 저장 요소들을 포함한다. 예를 들어, 저장 요소(404)는 도 1에서의 저장 디바이스(130)의 제1 워드 라인의 제1 물리 페이지에 포함되고, 저장 요소(406)는 도 1에서의 저장 디바이스(130)의 제2 워드 라인의 제2 물리 페이지에 포함된다. 저장 요소들(404 및 406)은 구조물(402)에 연결된다.
일부 실시예에서, 구조물(402)은 변형을 갖는다. 예를 들어, 도 4a에 예시된 바와 같이, 구조물(402)은 "원추형" 또는 "테이퍼진" 프로파일을 갖는다. 위치(420)는 구조물(402)의 테이퍼링(tapering)과 연관된 구조물(402)의 영역을 표시한다. 예를 들어, 도 4a에서, 구조물(402)이 (즉, 위치(420)보다 기판(408)에 더 가까운) 위치(420) 아래쪽에서는 테이퍼져 있지 않고, 구조물(402)이 (즉, 위치(420)보다 기판(408)으로부터 더 멀리 있는) 위치(420) 위쪽에서는 테이퍼져 있다. 도 4a에서, 예를 들어, 위치(420)는 저장 요소(404)와 저장 요소(406) 사이에 있는데, 그 이유는 구조물(402)이 대략적으로 저장 요소(404)와 저장 요소(406) 사이에서 "테이퍼링"을 시작하기 때문이다.
위치(420)를 식별하는 것에 의해, 저장 디바이스(130)에서의 동작들의 정확도가 개선될 수 있다. 예를 들어, 위치(420)를 식별하는 것에 의해, 저장 요소들(404 및 406)은 구조물(402)의 테이퍼링으로 인한 저장 요소들(404 및 406)의 물리적 특성들의 차이들을 보상하기 위해 상이한 ECC 파라미터들 및/또는 상이한 메모리 액세스 파라미터들과 연관될 수 있다. 저장 요소들의 물리적 특성들의 차이들이 도 4b를 참조하여 추가로 기술된다.
도 4b는 일부 실시예에 따른, 컬럼(400)의 부분(450)의 개략도이다. 일부 실시예에 따르면, 부분(450)은 구조물(402) 내에 형성된 전하 포획 구조물(454) 및 전도성 채널(456)을 나타내고 있다. 도 4b에서, 제어 게이트(452) 및 제어 게이트(460)는 전하 포획 구조물(454)에 연결된다. 예를 들어, 제어 게이트(452)는 도 4a의 저장 요소(404)에 포함되고, 제어 게이트(460)는 도 4a의 저장 요소(406)에 포함된다. 일부 실시예에서, 제어 게이트들(452 및 460)은, 산화물 영역(458)과 같은, 재료에 의해 분리된다.
일부 실시예에서, 제어 게이트들(452 및 460) 및 산화물 영역(458)은 저장 디바이스(130)의 다수의 층들 내에 형성된다. 예를 들어, 제어 게이트(452)는 폴리실리콘 층 내에 형성되고, 산화물 영역(458)은 산화물 층 내에 형성되며, 제어 게이트(460)는 다른 폴리실리콘 층 내에 형성된다. 일부 실시예에서, 제어 게이트들(452 및 460) 및 산화물 영역(458)은 저장 디바이스(130)의 하나 이상의 "물리 층들" 내에 형성된다. 예를 들어, 물리 층은 제어 게이트(452) 및 산화물 영역(458)을 포함한다.
하나 이상의 부가 재료들이 구조물(402) 내에 형성될 수 있다는 것을 잘 알 것이다. 예를 들어, 전하 포획 구조물(454)이, 실리콘 산화물과 같은, 게이트 유전체에 의해 제어 게이트(452) 및 전도성 채널(456)로부터 분리된다. 일부 실시예에서, 전하 포획 구조물(454)은, 실리콘 질화물과 같은, 절연성 재료를 포함한다. 일부 실시예에서, 전도성 채널(456)은, 금속(예컨대, 구리)과 같은, 전도성 재료를 포함한다.
일부 실시예에서, 값을 저장 요소(404)에 쓰기 위해 그리고 저장 요소(404)에 저장된 값을 감지하기 위해 부분(450)이 바이어싱된다. 일부 실시예에서, 값을 저장 요소(406)에 쓰기 위해 그리고 저장 요소(406)에 저장된 값을 감지하기 위해 부분(450)이 바이어싱된다. 예를 들어, 제어 게이트(452)를 전도성 채널(456)에 대해 바이어싱하는 것에 의해 전하가 전하 포획 구조물(454) 내로 주입되거나 그로부터 배출된다. 이 예에서, 전하 포획 구조물(454) 내의 전하의 양은 저장 요소(404)의 읽기 동작 동안 전도성 채널(456)을 통한 전류의 양에 영향을 미치고, 저장 요소(404)에 저장된 하나 이상의 비트 값들을 나타낸다. 다른 예로서, 제어 게이트(460)를 전도성 채널(456)에 대해 바이어싱하는 것에 의해 전하가 전하 포획 구조물(454) 내로 주입되거나 그로부터 배출된다. 이 예에서, 전하 포획 구조물(454) 내의 전하의 양은 저장 요소(406)의 읽기 동작 동안 전도성 채널(456)을 통한 전류의 양에 영향을 미치고, 저장 요소(406)의 상태를 나타낸다. 저장 요소(406)의 상태는 저장 요소(406)에 의해 저장된 하나 이상의 비트 값들에 대응한다.
도 4b는 구조물(402)과 연관된 변동(또는 "테이퍼링")을 나타내고 있다. 변동은 기판(408)으로부터 제1 거리에서의 구조물(402)의 제1 폭과 기판(408)으로부터 제2 거리에서의 구조물(402)의 제2 폭 사이의 차이에 대응하고, 여기서 제2 거리는 제1 거리보다 더 크다. 추가로 예시하기 위해, 도 4b는 구조물(402)과 연관된 변동이 제어 게이트(452)와 연관되어 있는 채널 폭(462)(예컨대, 채널의 반경)에 영향을 미친다는 것을 나타내고 있다. 도 4b는 제어 게이트(460)와 연관된 채널 폭(464)(예컨대, 채널의 반경)이 구조물(402)의 테이퍼링으로 인해 채널 폭(462)보다 더 작을 수 있는 것을 추가로 나타내고 있다. 채널 폭(464)이 채널 폭(462)보다 더 크기 때문에, 저장 요소(404)(도 4a)의 동작이 저장 요소(406)(도 4a)의 동작과 상이할 수 있다. 예를 들어, 전도성 채널(456)의 폭이 구조물(402)에 의해 도통되는 전류의 양에 영향을 미치기 때문에 채널 폭(462)과 채널 폭(464) 사이의 차이가 부분(450)을 포함하는 메모리 디바이스의 동작에 영향을 미친다. 그에 따라, 제어 게이트(452)를 전압으로 바이어싱하는 것은 전압을 제어 게이트(460)에 인가하는 것에 비해 전도성 채널(456)로 하여금 더 적은 전류를 도통시키게 한다.
대안적으로 또는 그에 부가하여, 일부 실시예에 따르면, 구조물(402)의 변동은 저장 요소(404)와 연관된 게이트-채널간 거리(466)를 저장 요소(406)와 연관된 게이트-채널간 거리(468)보다 더 크게 만든다. 이 경우에, 전하 포획 구조물(454)이 전도성 채널(456)보다 더 큰 테이퍼 효과를 갖는다. 저장 요소(404)의 상태를 프로그래밍하는 쓰기 동작 동안, (예컨대, 전자들을 전도성 채널(456)로부터 전하 포획 구조물(454) 내로 끌어내는 것에 의해) 전하 포획 구조물(454) 내에 전하를 축적시키기 위해 (저장 요소(406)에 비해) 더 큰 전압이 제어 게이트(452)에 인가된다. 따라서, 구조물(402)의 테이퍼링은 저장 요소(404)의 프로그래밍 동작들을 저장 요소(406)에 대해 상이하게 만들고, 그 결과 "올바르지 않은" 상태가 저장 요소(404)에 프로그래밍되고 그리고/또는 그로부터 감지된다.
도 4b는 메모리 디바이스(예컨대,도 1의 저장 디바이스(130))의 다수의 층들을 관통하여 연장되는 구조물(예컨대, 구조물(402))의 변동(예컨대, 테이퍼링)이 메모리 디바이스와 연관된 읽기 동작 및 쓰기 동작에 영향을 미친다는 것을 나타내고 있다. 일부 실시예에서, 부분(450)을 포함하는 메모리 디바이스의 성능이 저장 요소들(404 및 406)에 대해 상이한 ECC 강도들(또는 기법들) 및/또는 메모리 액세스 기법들(예컨대, 프로그래밍 파라미터들)을 사용하는 것에 의해 개선된다. 예를 들어, 구조물(402)의 변동이 위치(420)에서 일어나기 때문에, 메모리 디바이스(예컨대, 도 1의 저장 디바이스(130))의 동작을 개선시키기 위해, 제1 ECC 기법 및/또는 제1 메모리 액세스 기법은 저장 요소(406)와 연관되고, 제2 ECC 기법 및/또는 제2 메모리 액세스 기법은 저장 요소(404)와 연관된다. 예를 들어, 제2 ECC 기법은 구조물(402)의 "테이퍼링"으로 인해 저장 요소(406)에 비해 저장 요소(404)에서 일어나는 더 많은 수의 오류들을 보상한다. 예를 들어, 제2 ECC 기법은 제1 ECC 기법보다 더 높은 오류 정정 능력을 가지며, 이는 오류 정정을 개선시킬 수 있다. 예를 들어, 제2 메모리 액세스 기법은 구조물(402)의 "테이퍼링"으로 인해 저장 요소(406)에 비해 저장 요소(404)에서 일어날 수 있는 더 많은 수의 쓰기 오류들 및/또는 읽기 오류들을 보상한다. 예를 들어, 제2 메모리 액세스 기법은 저장 요소(404)를 "올바른" 상태로 프로그래밍하기 위해 (제1 메모리 액세스 기법에 비해) 상이한 프로그래밍 전압을 사용하여 저장 요소(404)를 프로그래밍한다. 다른 예로서, 제2 메모리 액세스 기법은 (예컨대, 구조물(402)의 테이퍼링에 의해 야기된 저장 요소(404)에서의 프로그래밍 동작의 감소된 유효성을 보상하기 위해) "올바른" 문턱 전압에서 저장 요소(404)를 읽기 위해 (제1 메모리 액세스 기법과 비교하여) 상이한 읽기 전압을 사용하여 저장 요소(404)를 감지한다. 본원에서 추가로 기술되는 바와 같이, ECC 기법들 및/또는 메모리 액세스 기법들이 구조물(402)의 변동의 위치에 기초하여 블록의 물리 페이지들에 선택적으로 적용될 수 있다.
도 5는 일부 실시예에 따른, 블록(500)(예컨대, 저장 요소들의 소거 블록)의 개략도이다. 예를 들어, 블록(500)은 도 1의 저장 디바이스(130)에 포함된다. 도 5에서, 블록(500)은 물리 페이지들(508 및 510)을 적어도 포함하고 도 4a로부터의 컬럼(400)을 추가로 포함한다.
도 5에서, 블록(500)은 컬럼(400)에 부가하여 컬럼들(504 및 506)을 포함한다. 도 5에서, 컬럼들(400, 504, 및 506)은 기판(408) 상에 형성된다. 컬럼들(400, 504, 및 506)은 저장 디바이스(130)(도 1)의 복수의 층들 내에 형성된 복수의 물리 페이지들(예컨대, 저장 요소들의 워드 라인들)을 포함한다. 예를 들어, 물리 페이지들(508 및 510)은 블록(500)의 층들 내에 형성된다. 블록(500)의 각각의 물리 페이지는 다수의 저장 요소들을 포함한다. 일 예로서, 도 4a의 저장 요소(404)는 물리 페이지(508) 내에 형성되고, 도 4a의 저장 요소(406)는 물리 페이지(510) 내에 형성된다.
도 5에서, 컬럼들(400, 504, 및 506)의 각각의 컬럼의 구조물에서 변동(예컨대, 테이퍼링)이 일어난다. 특정의 제조 프로세스에 따라, 블록이 변동을 포함하지 않는(또는 실질적으로 포함하지 않는) 구조물들을 갖는 하나 이상의 컬럼들을 포함할 수 있다는 것을 잘 알 것이다. 도 5에서, 컬럼들(400, 504, 및 506)의 각각의 컬럼 내에서의 변동은 위치(420)에서(또는 대략적으로 위치(420)에서) 일어난다. 일부 실시예에서, 컬럼들(400, 504, 및 506)의 각각의 컬럼 내에서의 변동들이 상이한 위치들에서(예컨대, 기판(408) 위쪽으로 상이한 높이들에서) 일어난다는 것을 잘 알 것이다.
도 5는 구조물의 변동의 위치(예컨대, 위치(420))가 블록(예컨대, 블록(500))의 물리 페이지들 사이에(또는 대략적으로 그 물리 페이지들 사이에) 있을 수 있다는 것을 나타내고 있다. 일부 실시예에서, 메모리 제어기(120)는 위치(420)에 대한 물리 페이지의 위치에 기초하여 블록(500)의 물리 페이지로부터의 데이터를 인코딩, 쓰기, 읽기, 및 디코딩하기 위한 기법들을 적용한다. 도 6을 참조하여 추가로 기술되는 바와 같이, 일부 실시예에서, 위치(420)는 3차원(3D) 메모리의 다수의 레벨들(또는 층들의 그룹들)을 정의한다.
도 6은 일부 실시예에 따른, 3차원(3D) 메모리 디바이스(600)의 개략도이다. 예를 들어, 3D 메모리 디바이스(600)는 저장 디바이스(130)(도 1)에 포함된다. 도 6에서, 3D 메모리 디바이스(600)는 도 5의 블록(500)을 포함하고, 블록들(604 및 606)을 추가로 포함한다. 일부 실시예에서, 블록들(500, 604, 및 606) 각각은 기판(408) 상에 형성된다.
도 6에서, 위치(420)는 레벨(610)을 정의한다. 일부 실시예에 따르면, 레벨(610)은 3D 메모리 디바이스(600)를 다수의 레벨들(예컨대, 기판(408)에 인접해 있는 "하부" 레벨과 기판(408)에 인접해 있지 않은 "상부" 레벨)로 "파티셔닝(partition)"한다. 예를 들어, 레벨(610)은 레벨 k에 있는 블록들(500, 604, 및 606) 각각과 교차하는 평면을 정의하고, 여기서 k는 기판(408)과 위치(420) 사이의 거리를 나타내는 양의 정수이다. 일부 실시예에서, 레벨 k는 기판(408)과 위치(420) 사이의 3D 메모리 디바이스(600)의 물리 페이지들의 수 또는 워드 라인들의 수를 나타낸다.
일부 실시예에서, 레벨(610)은 공통의 레벨 k에 있는 블록들(500, 604, 및 606) 각각과 교차한다. 대안적으로, 일부 실시예에서, 3D 메모리 디바이스(600)를 제조하는 데 사용되는 특정의 제조 프로세스에 따라, 레벨(610)은 상이한 위치들에서 블록들(500, 604, 및 606) 중 2개 이상과 교차한다. 일 예로서, 레벨(610)은 기판(408)으로부터 제1 거리에서 블록(500)과 교차하고, 기판(408)으로부터 제2 거리에서 블록(604)과 교차하며, 기판(408)으로부터 제3 거리에서 블록(606)과 교차한다. 이 예에서, 레벨(610)은, 경사진 평면과 같은, "불균일한" 평면에 대응한다.
일부 실시예에서, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 위치 결정 모듈(222))는 저장 디바이스(130)의 각각의 컬럼 또는 블록에 대한 변동 위치(예컨대, 도 4a 및 도 4b와 도 5 및 도 6의 위치(420)와 같은 테이퍼 영역의 끝)를 결정하고 그 결과 얻어진 위치들을 위치 테이블(226)에 저장한다. 예를 들어, 도 4a를 참조하여, 위치 결정 모듈(222)은 설정 또는 테스트 프로세스 동안 저장 디바이스(130)의 기판에 대해 상이한 수직 위치들을 갖는 상이한 워드 라인들에 있는 메모리 요소들(또는 메모리 셀들)(예컨대, 메모리 요소들(404 및 406))에 동일한 상태를 프로그래밍하는 데 필요하게 되는 프로그래밍 파라미터들을 비교하는 것에 의해 컬럼(400)에 대한 위치(420)를 결정한다. 예를 들어, 제1 워드 라인에 포함된 제1 페이지는, 각자의 상태를 갖는 제1 페이지 내의 메모리 셀들을 프로그래밍하기 위해, 동일한 각자의 상태를 갖는 제2 워드 라인 내의 제2 페이지의 메모리 셀들을 프로그래밍하는 데 필요하게 되는 프로그래밍 파라미터들(예컨대, 프로그래밍 전압, 프로그래밍 펄스들의 수, 및/또는 프로그래밍 펄스들의 지속기간)에 비해 더 강렬한 프로그래밍 파라미터들을 필요로 한다. 이 예를 계속하면, 위치 결정 모듈(222)은, 동일한 각자의 상태를 프로그래밍하는 데 필요하게 되는 프로그래밍 파라미터들의 차이를 야기하는 메모리 디바이스의 테이퍼링 효과로 인해, 변동 위치가 제1 워드 라인과 제2 워드 라인 사이에 위치되어 있다고 결정할 수 있다. 변동 위치를 결정하는 것의 추가적인 논의를 위해, 2014년 5월 8일자로 출원된, 발명의 명칭이 "Structure Variation Detection for a Memory Having a Three-Dimensional Memory Configuration"인 미국 특허 출원 제14/273,031호 - 참고로 그 전체가 본원에 포함됨 - 를 참조하기 바란다.
일부 실시예에서, 위치 결정 모듈(222)은 저장 디바이스(130)의 최초 전원 켜기 시에 저장 디바이스(130)의 각각의 컬럼 또는 블록에 대한 변동 위치를 결정한다. 일부 실시예에서, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 위치 업데이트 모듈(224))는 저장 디바이스(130)의 각각의 컬럼 또는 블록에 대한 업데이트된 변동 위치를 결정하고 위치 테이블(226) 내의 이전 위치들을 그 결과 얻어진 업데이트된 위치들로 덮어쓰기한다. 예를 들어, 위치 업데이트 모듈(224)은, 저장 디바이스(130)의 매 X개의 전원 사이클들마다와 같은, 미리 정의된 스케줄에 따라 저장 디바이스(130)의 각각의 컬럼 또는 블록에 대한 업데이트된 변동 위치들을 결정한다.
일부 실시예에서, 위치 테이블(226)은 각자의 블록 내의 컬럼들에 대한 테이퍼 영역의 끝을 나타내는 저장 디바이스(130)의 각각의 블록에 대한 결정된 위치(420)를 저장한다. 예를 들어, 각자의 블록에 대해, 결정된 위치(420)는 기판에 대해 테이퍼 영역이 끝나는 페이지 또는 워드 라인을 나타낸다. 일부 실시예에서, 위치 테이블(226)은 각자의 컬럼에 대한 테이퍼 영역의 끝을 나타내는 저장 디바이스(130)의 각각의 컬럼에 대한 결정된 위치(420)를 저장한다. 예를 들어, 각자의 컬럼에 대해, 결정된 위치(420)는 기판에 대해 테이퍼 영역이 끝나는 페이지 또는 워드 라인을 나타낸다. 그에 따라, 일부 실시예에서, 메모리 제어기(120)는 각자의 컬럼에 대한 결정된 위치(420) 위쪽에 그리고 아래쪽에 있는 페이지들 또는 워드 라인들로부터의 데이터를 선택적으로 인코딩, 쓰기, 읽기, 및/또는 디코딩할 수 있다. 예를 들어, 각자의 컬럼에 대해, 결정된 위치(420) 위쪽에 있는 페이지들 또는 워드 라인들에 쓰여진 데이터는 제1 ECC 기법으로 인코딩되고, 결정된 위치(420) 아래쪽에 있는 페이지들 또는 워드 라인들에 쓰여진 데이터는 제2 ECC 기법으로 인코딩된다.
도 7은 일부 실시예에 따른, NAND 플래시 구성으로 된 3D 메모리 디바이스(700)의 개략도이다. 예를 들어, 3D 메모리 디바이스(700)는 저장 디바이스(130)(도 1)에 대응한다. 도 7에서, 3D 메모리 디바이스(700)는 복수의 물리 층들(702) - 각각은, 대표적인 메모리 셀(710)과 같은, 복수의 저장 요소들(예컨대, 메모리 셀들)을 가짐 - 을 포함한다. 일부 실시예에서, 저장 요소들은 물리 층들(702) 내에 어레이를 이루어 배열된다.
도 7에서, 대표적인 메모리 셀(710)은 워드 라인/제어 게이트(WL4)(728)와 전도성 채널(712) 사이에 전하 포획 구조물(714)을 포함한다. 전도성 채널(712)을 워드 라인(728)에 대해 바이어싱하는 것에 의해 전하가 전하 포획 구조물(714) 내로 주입되거나 그로부터 배출된다. 예를 들어, 전하 포획 구조물(714)은 실리콘 질화물을 포함하고, 게이트 유전체(예컨대, 실리콘 산화물)에 의해 워드 라인(728) 및 전도성 채널(712)로부터 분리된다. 일부 실시예에서, 전하 포획 구조물(714) 내의 전하의 양은 메모리 셀(710)의 읽기 동작 동안 전도성 채널(712)을 통한 전류의 양에 영향을 미치고, 메모리 셀(710)에 저장된 하나 이상의 비트 값들을 나타낸다.
일부 실시예에서, 3D 메모리 디바이스(700)는, 제1 블록(블록 0)(750), 제2 블록(블록 1)(752), 및 제3 블록(블록 2)(754)을 비롯한, 다수의 소거 블록들을 포함한다. 도 7에서, 블록(750 내지 754) 각각은, 제1 워드 라인(WL0)(720), 제2 워드 라인(WL1)(722), 제3 워드 라인(WL2)(724), 제4 워드 라인(WL3)(726), 및 제5 워드 라인(WL4)(728)으로서 예시된, 워드 라인들의 스택(stack)을 포함하는 물리 층들(702)의 "수직 슬라이스(vertical slice)"를 포함한다. 다수의 전도성 채널들(도 7과 관련하여 실질적으로 수직인 배향을 가짐)은 워드 라인들의 스택을 관통하여 연장된다. 각각의 전도성 채널은 워드 라인들(720 내지 728) 각각에 있는 저장 요소와 결합되어, 저장 요소들의 NAND 스트링을 형성한다. 도 7은, 예시의 명확함을 위해, 3개의 블록들(750 내지 754), 각각의 블록 내의 5개의 워드 라인들(720 내지 728), 및 각각의 블록 내의 3개의 전도성 채널들을 나타내고 있다. 그렇지만, 일부 실시예에서, 3D 메모리 디바이스(700)는 3개 초과의 블록들, 블록당 5개 초과의 워드 라인들, 및 블록당 3개 초과의 전도성 채널들을 포함한다.
일부 실시예에서, 읽기/쓰기 회로부(760)(즉, 읽기/쓰기 회로부(135) 또는 대안적으로 저장 매체 I/O(128) 내의 읽기/쓰기 회로부)는, (예컨대, 기판(704)에 대해) 전도성 채널들의 "상부" 단부에 있는 제1 비트 라인(BL0)(730), 제2 비트 라인(BL1)(732), 및 제3 비트 라인(BL2)(734) 그리고 (기판(704)에 대해) 전도성 채널들의 "하부" 단부에 있는 제1 소스 라인(SL0)(740), 제2 소스 라인(SL1)(742), 및 제3 소스 라인(SL2)(744)으로서 예시되어 있는, 다수의 전도성 라인들을 통해 전도성 채널들과 결합된다. 도 7에서, 읽기/쓰기 회로부(760)는 "P"개의 제어 라인들을 통해 비트 라인들(730 내지 734)과 결합되고, "M"개의 제어 라인들을 통해 소스 라인들(740 내지 744)과 결합되며, "N"개의 제어 라인들을 통해 워드 라인들(720 내지 728)과 결합된다. 일부 실시예에서, P, M, 및 N 각각은 3D 메모리 디바이스(700)의 특정 구성에 기초한 양의 정수 값이다. 도 7에서, P = 3이고, M = 3이며, N = 5이다.
일부 실시예에서, 비트 라인들(730 내지 734) 각각 및 소스 라인들(740 내지 744) 각각은 상이한 전도성 채널들의 동일한 단부(예컨대, 상부 단부 또는 하부 단부)와 결합된다. 예를 들어, 각자의 비트 라인은 전도성 채널(792)의 상부와 결합되고, 각자의 소스 라인은 전도성 채널(712)의 상부와 결합된다. 이 예를 계속하면, 전도성 채널(792)의 하부는 전도성 채널(712)의 하부에 결합(예컨대, 전기적으로 결합)된다. 그에 따라, 이 예에서, 전도성 채널(792)과 전도성 채널(712)은 직렬로 결합되고, 각자의 비트 라인 및 각자의 소스 라인과 결합된다.
도 7에서 전도성 채널들(예컨대, 전도성 채널들(712, 792)) 각각이 단일의 전도성 채널로 예시되어 있지만, 일부 실시예에서, 전도성 채널들 각각은 적층된 구성으로 되어 있는 다수의 전도성 채널들을 포함한다. 예를 들어, 적층된 구성으로 된 다수의 전도성 채널들은 하나 이상의 커넥터들에 의해 결합될 수 있다. 적층된 구성으로 된 다수의 전도성 채널들을 갖는 3D 메모리 디바이스의 추가적인 논의에 대해서는, 2014년 5월 8일자로 출원된, 발명의 명칭이 "Three-Dimensional Memory Device Having Stacked Conductive Channels"인 미국 특허 출원 제14/272,363호 - 참고로 그 전체가 본원에 포함됨 - 를 참조하기 바란다.
일부 실시예에서, 읽기/쓰기 회로부(760)는 메모리 제어기(120)로부터의 메모리 동작 커맨드들(예컨대, 데이터 읽기 모듈(212)로부터의 읽기 커맨드, 데이터 쓰기 모듈(214)로부터의 쓰기 커맨드, 또는 데이터 소거 모듈(216)로부터의 소거 커맨드)을 수신한다. 예를 들어, 데이터는 워드 라인(728)과 결합된 저장 요소들에 저장되고, 읽기/쓰기 회로부(760)는 이 저장 요소들로부터 비트 값들을 읽는다. 다른 예로서, 읽기/쓰기 회로부(760)는, 데이터를 선택된 저장 요소(들)에 쓰기/프로그래밍하기 위해 프로그래밍 전압(예를 들어, 임계 전압과 연관된 전압 펄스 또는 일련의 전압 펄스들)이 선택된 워드 라인(예컨대, 제4 워드 라인(728))의 선택된 저장 요소(들) 양단에 인가되게 하기 위해, 선택 신호들을 워드 라인들(720 내지 728), 비트 라인들(730 내지 734), 및 소스 라인들(740 내지 742)과 결합된 제어 라인들에 인가한다.
예를 들어, 읽기 동작 동안, 메모리 제어기(120)는 호스트(예컨대, 도 1의 컴퓨터 시스템(110))로부터 요청을 수신하고, 그에 응답하여, 선택된 워드 라인의 저장 요소들이 감지되게 하기 위해 제어 라인들에 적절한 신호들을 인가하는 것에 의해 읽기/쓰기 회로부(760)로 하여금 3D 메모리 디바이스(700)의 특정의 저장 요소들로부터 비트들을 읽게 한다.
도 8은 일부 실시예에 따른, ReRAM 구성으로 된 3D 메모리 디바이스(800)의 개략도이다. 예를 들어, 3D 메모리 디바이스(800)는 저장 디바이스(130)(도 1)에 대응한다. 도 8에서, 3D 메모리 디바이스(800)는, 대표적인 워드 라인들(820, 821, 822, 및 823)(그의 일부분만이 도 8에 도시되어 있음)과 같은, (예컨대, 기판의 표면에 실질적으로 평행한) 기판 위쪽의 물리 층들에 있는 복수의 전도성 라인들 및, 대표적인 비트 라인들(810, 811, 812, 및 813)과 같은, 물리 층들을 관통하는 복수의 수직 전도성 라인들을 갖는 수직 비트 라인 ReRAM(Resistive Random Access Memory)을 포함한다.
도 8에서, 비트 라인들(810, 811, 812, 및 813)이 단일의 비트 라인으로서 나타내어져 있지만; 일부 실시예에서, 비트 라인들(810, 811, 812, 및 813)은 적층된 구성으로 된 다수의 부분들을 포함한다. 예를 들어, 적층된 구성으로 된 다수의 부분들은 하나 이상의 커넥터들에 의해 결합될 수 있다. 적층된 구성으로 된 다수의 전도성 채널들을 갖는 3D 메모리 디바이스의 추가적인 논의에 대해서는, 2014년 5월 8일자로 출원된, 발명의 명칭이 "Three-Dimensional Memory Device Having Stacked Conductive Channels"인 미국 특허 출원 제14/272,363호 - 참고로 그 전체가 본원에 포함됨 - 를 참조하기 바란다.
도 8에서, 메모리 디바이스(800)는, 대표적인 저장 요소들(830, 831, 832, 840, 841, 및 842)과 같은, 복수의 저항 기반 저장 요소들(예컨대, 메모리 셀들) - 그 각각은 기판(예컨대, 실리콘 기판) 위쪽의 다수의 물리 층들에 있는 메모리 셀 어레이들 내의 비트 라인 및 워드 라인과 결합됨 - 을 포함한다. 도 8에서, 메모리 디바이스(800)는 또한 워드 라인 구동기들(808) 및 비트 라인 구동기들(806)과 결합된 읽기/쓰기 회로부(804)(즉, 읽기/쓰기 회로부(135) 또는 대안적으로 저장 매체 I/O(128) 내의 읽기/쓰기 회로부)를 포함한다.
도 8에서, 워드 라인들(820, 821, 822, 및 823) 각각은 복수의 핑거(finger)들을 포함한다(예컨대, 제1 워드 라인(820)은 핑거들(824, 825, 826, 및 827)을 포함한다). 일부 실시예에서, 각자의 핑거는 하나 초과의 비트 라인과 결합된다. 도 8에서, 제1 워드 라인(820)의 제1 핑거(824)는 제1 핑거(824)의 제1 단부에 있는 제1 저장 요소(830)를 통해 제1 비트 라인(810)과 결합되고, 제1 핑거(824)의 제2 단부에 있는 제2 저장 요소(840)를 통해 제2 비트 라인(811)과 결합된다.
일부 실시예에서, 각자의 비트 라인은 하나 초과의 워드 라인과 결합된다. 도 8에서, 제1 비트 라인(810)은 제1 저장 요소(830)를 통해 제1 워드 라인(820)과 결합되고, 제3 저장 요소(832)를 통해 제3 워드 라인(822)과 결합된다.
예를 들어, 쓰기 동작 동안, 메모리 제어기(120)는 호스트(예컨대, 도 1의 컴퓨터 시스템(110))로부터 데이터를 수신하고, 그에 응답하여, 데이터(또는 데이터의 표현)를 메모리 디바이스(800)로 송신한다. 예를 들어, 메모리 제어기(120)는, 데이터를 메모리 디바이스(800)로 송신하기 전에, 데이터를 인코딩한다.
일부 실시예에서, 읽기/쓰기 회로부(804)는 메모리 제어기(120)로부터 수신된 데이터를 데이터의 목적지에 따라 메모리 디바이스(800)의 저장 요소들에 쓴다. 예를 들어, 읽기/쓰기 회로부(804)는 쓰기 전압이 선택된 저장 요소 양단에 인가되게 하기 위해 선택 신호들을 워드 라인 구동기들(808) 및 비트 라인 구동기들(806)과 결합된 선택 제어 라인들에 인가한다. 예를 들어, 제1 저장 요소(830)를 선택하기 위해, 읽기/쓰기 회로부(804)는 제1 저장 요소(830)를 통한 프로그래밍 전류(쓰기 전류라고도 지칭됨)를 구동하기 위해 워드 라인 구동기들(808) 및 비트 라인 구동기들(806)을 활성화시킨다. 예를 들어, 제1 쓰기 전류는 제1 논리 값(예컨대, 고저항 상태에 대응하는 값)을 제1 저장 요소(830)에 쓰는 데 사용되고, 제2 쓰기 전류는 제2 논리 값(예컨대, 저저항 상태에 대응하는 값)을 제1 저장 요소(830)에 쓰는 데 사용된다. 이 예에서, 제1 전압을 제1 비트 라인(810)에 그리고 제1 워드 라인(820) 이외의 워드 라인들에 인가하고 제2 전압을 제1 워드 라인(820)에 인가함으로써 제1 저장 요소(830) 양단에 프로그래밍 전압을 발생시키는 것에 의해 프로그래밍 전류가 인가된다. 일부 실시예에서, 메모리 디바이스(800)에서의 누설 전류를 감소시키기 위해 제1 전압이 다른 비트 라인들(예컨대, 비트 라인들(814 및 815))에 인가된다.
예를 들어, 읽기 동작 동안, 메모리 제어기(120)는 호스트(예컨대, 도 1의 컴퓨터 시스템(110))로부터 요청을 수신하고, 그에 응답하여, 읽기 전압이 선택된 저장 요소 양단에 인가되게 하기 위해 선택 신호들을 워드 라인 구동기들(808) 및 비트 라인 구동기들(806)과 결합된 선택 제어 라인들에 인가하는 것에 의해 읽기/쓰기 회로부(804)로 하여금 메모리 디바이스(800)의 특정의 저장 요소들로부터 비트들을 읽게 한다. 예를 들어, 제1 저장 요소(830)를 선택하기 위해, 읽기/쓰기 회로부(804)는 제1 전압(예컨대, 0.7 볼트(V))을 제1 비트 라인(810)에 그리고 제1 워드 라인(820) 이외의 워드 라인들에 인가하기 위해 워드 라인 구동기들(808) 및 비트 라인 구동기들(806)을 활성화시킨다. 이 예에서, 보다 낮은 전압(예컨대, 0 V)이 제1 워드 라인(820)에 인가된다. 이와 같이, 읽기 전압이 제1 저장 요소(830) 양단에 인가되고, 읽기 전압에 대응하는 읽기 전류가 읽기/쓰기 회로부(804)의 감지 증폭기에서 검출될 수 있다. 일부 실시예에서, 읽기 전류는 (옴의 법칙을 통해) 제1 저장 요소(830)의 저항 상태 - 제1 저장 요소(830)에 저장된 논리 값에 대응함 - 에 대응한다. 읽기 동작 동안 제1 저장 요소(830) 및 다른 저장 요소들로부터 읽혀진 논리 값이 메모리 제어기(120)에 제공된다. 그에 따라, 일부 실시예에서, 비트 라인들(810, 811, 812, 및 813) 각각은 다수의 부분들을 포함하고, 특정의 비트 라인의 다수의 부분들은 적층된 구성으로 되어 있을 수 있다.
도 9는 일부 실시예에 따른, 3D 메모리 디바이스(예컨대, 도 6 내지 도 8에, 각각, 예시된 3D 메모리 디바이스들(600, 700, 또는 800) 중 하나로서 구성된 도 1의 저장 디바이스(130))에 대한 제1 구성(900)의 예상도를 나타내고 있다. 일부 실시예에서, 3D 메모리 디바이스는 복수의 블록들을 포함하고, 각각의 블록은 3D 메모리 디바이스의 기판에 대해 수직으로 적층된 복수의 워드 라인들과 연관되어 있다. 일부 실시예에서, 각각의 워드 라인은 복수의 페이지들을 포함한다. 도 9는 제1 구성(900)으로 된 저장 디바이스(130)의 각자의 블록의 워드 라인들 N, N-1, ..., 1, 0에 대한 구성 파라미터들을 나타내고 있다. 도 9에서, 워드 라인 N은 저장 디바이스(130)의 기판으로부터 가장 멀리 있고(예컨대, 상부 워드 라인), 워드 라인 0은 저장 디바이스(130)의 기판에 가장 가깝다(예컨대, 하부 워드 라인).
일부 실시예에서, 특성화 벡터 테이블(234)(도 2a 내지 도 2c)은 저장 디바이스(130)의 각자의 블록의 워드 라인들 N, N-1, ..., 1, 0에 대한 특성화 벡터들(235)을 저장한다. 예를 들어, 워드 라인 N에 대한 각자의 특성화 벡터는 (i) 워드 라인 N에 있는 메모리 셀들에 대한 현재 저장 밀도 구성을 표시하는 저장 밀도 필드(252); (ii) 워드 라인 N과 연관된 페이지(들)에 저장된 데이터에 대한 현재 ECC 인코딩 강도를 표시하는 ECC 인코딩 강도(또는 기법)(254); 및 (iii) 워드 라인 N에 저장된 또는 저장될 데이터와 연관된 하나 이상의 프로그래밍 파라미터들을 표시하는 프로그래밍 파라미터 필드(256)를 포함하는 구성 파라미터 세트를 포함한다.
예를 들어, 제1 구성(900)에서, 워드 라인 N에 대한 각자의 특성화 벡터는 구성 파라미터 세트에 대한 초기값들을 포함한다. 제1 구성(900)에서, 워드 라인과 연관된 구성 파라미터 세트는 본원에서 논의되는 테이퍼링 효과로 인해 저장 디바이스(130)의 기판에 대한 워드 라인의 수직 위치에 의존한다. 일부 실시예에서, 위치 결정 모듈(222)(도 2a)은 3D 메모리 디바이스의 최초 전원 켜기 시에 제1 구성(900)을 결정한다. 예를 들어, 3D 메모리 디바이스의 최초 전원 켜기 시에, 위치 결정 모듈(222)(도 2a)은, 저장 디바이스(130)의 기판에 대한 워드 라인들 N, N-1, ..., 1, 0의 수직 위치들에 기초하여, 저장 디바이스(130)의 각자의 블록의 워드 라인들 N, N-1, ..., 1, 0에 대한 특성화 벡터들(235)(도 2b)을 결정하고 채운다(populate). 일부 실시예에서, 각각의 워드 라인에 있는 페이지는 3D 메모리 디바이스의 제조업체에 의해 저장 디바이스(130)의 기판에 대한 워드 라인의 수직 위치를 나타내는 메타데이터로 프로그래밍된다. 일부 실시예에서, 위치 결정 모듈(222)(도 2a)은, 각자의 블록의 각각의 워드 라인에 대해, 각자의 블록에 대한 결정된 변동 위치(예컨대, 도 4a 및 도 4b와 도 5 및 도 6에서의 위치(420))에 기초하여 저장 디바이스(130)의 기판에 대한 수직 위치를 결정한다.
일부 실시예에서, 제1 구성(900)에서, 워드 라인 0(즉, 저장 디바이스(130)의 기판에 가장 가까운 워드 라인)과 연관된 구성 파라미터 세트는, 워드 라인 N(즉, 저장 디바이스(130)의 기판으로부터 가장 멀리 있는 워드 라인)에 대한 구성 파라미터 세트와 비교하여, 워드 라인 0에 있는 메모리 셀들에 대한 더 낮은 저장 밀도, 워드 라인 0의 페이지들에 저장된 또는 저장될 데이터에 대한 더 강한 ECC 강도, 및 워드 라인 0의 페이지들에 저장된 또는 저장될 데이터에 대한 더 강한(즉, 더 강렬한, 파괴적인 또는 스트레스가 많은) 프로그래밍 파라미터들을 나타낸다. 예를 들어, 제1 구성(900)에서, 워드 라인 0과 연관된 구성 파라미터 세트는 워드 라인 0에 있는 메모리 셀들이 1 비트의 데이터를 저장하도록 구성되어 있고(즉, X1), 워드 라인 0의 페이지들에 저장된 데이터가 LDPC 코드로 인코딩된 데이터(예컨대, 코드워드)를 디코딩하기 위해 P개의 패리티 비트들 및/또는 C개의 CPU 사이클들 또는 디코딩 사이클들의 디코딩 한계와 연관된 LDPC 코드로 인코딩되며, 그 데이터가 프로그래밍 전압 X로 워드 라인 0의 페이지들에 프로그래밍되어 있다는 것을 나타낸다. 이 예를 계속하면, 그에 비해, 제1 구성(900)에서, 워드 라인 N과 연관된 구성 파라미터 세트는 워드 라인 N에 있는 메모리 셀들이 3 비트의 데이터를 저장하도록 구성되어 있고(즉, X3), 워드 라인 N의 페이지들에 저장된 데이터가 LDPC 코드로 인코딩된 데이터를 디코딩하기 위해 M개의 패리티 비트들 및/또는 D개의 CPU 사이클들 또는 디코딩 사이클들의 디코딩 한계와 연관된 LDPC 코드로 인코딩되며(여기서 M < P 및/또는 D < C임), 그 데이터가 프로그래밍 전압 Y로 워드 라인 N의 페이지들에 프로그래밍되어 있다(여기서 Y < X임)는 것을 나타낸다.
도 10은 일부 실시예에 따른, 각자의 워드 라인의 수명 동안 3D 메모리 디바이스의 각자의 워드 라인의 예상 상태들의 흐름도를 나타내고 있다. 예를 들어, 도 10에서 논의되는 각자의 워드 라인은 3D 메모리 디바이스의 각자의 블록과 연관된 복수의 워드 라인들 중 하나(예컨대, 도 9에 도시된 워드 라인들 중 하나)에 대응한다. 도 9를 참조하여 논의된 바와 같이, 제1 구성(900)에서, 각자의 구성 파라미터 세트(초기값들을 가짐)는 3D 메모리 디바이스의 각자의 블록과 연관된 복수의 워드 라인들 각각에 대응한다. 예를 들어, 제1 구성(900)에서, 각자의 워드 라인과 연관된 각자의 구성 파라미터 세트는 (i) 각자의 워드 라인에 있는 메모리 셀들과 연관된 초기 저장 밀도, (ii) 각자의 워드 라인의 페이지들에 저장된 또는 저장될 데이터와 연관된 초기 ECC 인코딩 강도(또는 기법), 및 (iii) 각자의 워드 라인의 페이지들에 저장된 또는 저장될 데이터와 연관된 하나 이상의 초기 프로그래밍 파라미터들을 나타낸다.
이하의 논의에서, 본원에서 워드 라인 구역이라고 불리우는, 인접한 워드 라인들의 그룹들에 대해 구성들, 구성 파라미터들 및 상태 파라미터들이 유지되는 구현들에서, 각자의 워드 라인에 대한 구성들 및 구성 파라미터들은 각자의 워드 라인을 포함하는 워드 라인 구역에 대한 구성들 및 구성 파라미터들이고, 각자의 워드 라인에 대한 상태 메트릭들은 각자의 워드 라인을 포함하는 워드 라인 구역에 대한 상태 메트릭들이다.
일부 실시예에서, 각자의 워드 라인과 연관된 초기 저장 밀도, 초기 ECC 인코딩 기법, 및 하나 이상의 초기 프로그래밍 파라미터들에 부가하여, 각자의 워드 라인에 대한(또는 워드 라인을 포함하는 워드 라인 구역에 대한) 특성화 벡터는 각자의 워드 라인(또는 각자의 워드 라인을 포함하는 워드 라인 구역)의 건전성, 내구성, 및/또는 성능과 연관된 하나 이상의 상태 메트릭들을 포함한다. 일부 실시예에서, 하나 이상의 상태 메트릭들은 (a) 각자의 워드 라인(또는 워드 라인 구역 내의 워드 라인들)에 쓰여진 바이트 수 또는 각자의 워드 라인(또는 워드 라인 구역)의 각각의 페이지에 쓰여진 평균 바이트 수, (b) 각자의 워드 라인(또는 워드 라인 구역)에 대해 수행된 PE 사이클들의 카운트, (c) 각자의 워드 라인(또는 워드 라인 구역)의 페이지들로부터 읽혀진 데이터에 대한 가장 최근에 결정된 BER 또는 각자의 워드 라인(또는 워드 라인 구역)의 페이지들로부터 읽혀진 데이터에 대한 평균 BER, 및 (d) 각자의 워드 라인(또는 워드 라인 구역 내의 워드 라인들)의 건전성, 내구성, 및/또는 성능과 연관된 다른 사용 정보를 포함한다. 일부 실시예에서, 결합된 상태 메트릭이 미리 결정된 알고리즘에 기초하여 앞서 언급된 인자들로부터 계산된다.
예를 들어, 제1 구성(900)에서, 각자의 워드 라인에 대한 하나 이상의 구성 파라미터들은 각자의 워드 라인에 있는 메모리 셀들이 3 비트를 저장하도록 구성되고(즉, X3); 각자의 워드 라인의 페이지들에 저장된 또는 저장될 데이터가 약한 ECC 코드(weak ECC code)로 인코딩되며; 각자의 워드 라인의 페이지들에 저장된 또는 저장될 데이터가 프로그래밍 전압 Q로 프로그래밍된다는 것을 나타낸다. 예를 들어, 약한 ECC 코드는 코드워드에 포함된 쓰기 데이터에 X개의 패리티 비트들을 추가하고, 그리고/또는 약한 ECC 코드로 인코딩된 코드워드는 디코딩하는 데 Y개의 CPU 사이클들 또는 Y개의 디코딩 사이클들의 디코딩 한계를 갖는다.
도 10의 흐름도는 각자의 워드 라인의 수명에 걸쳐(또는 그의 사용 후에) 각자의 워드 라인과 연관된 각자의 구성 파라미터 세트에 대해 수행되는 조절 동작들의 예시적인 시퀀스를 나타낸다.
일부 실시예에서, 메모리 제어기는 각자의 워드 라인의 페이지들에 저장된 데이터에 대한 ECC 인코딩 강도를 증가시킨다(1002). 제1 트리거 조건(예컨대, 각자의 워드 라인의 페이지들로부터 읽혀진 데이터에 대한 BER이 제1 미리 정의된 문턱값을 초과함)을 검출한 것에 응답하여, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 조절 모듈(232))는 각자의 워드 라인과 연관된 특성화 벡터 내의 ECC 인코딩 강도의 값을 증가시킨다. 예를 들어, 증가된 값은 각자의 워드 라인의 페이지들에 저장된 또는 저장될 데이터가 제1 구성(900)에서의 초기의 약한 ECC 코드에 비해 더 강한 ECC 코드(예컨대, BCH 코드 대신에 LDPC 코드, 또는 코드워드당 보다 많은 ECC 비트들을 갖는 LDPC 코드)로 인코딩된다는 것을 나타낸다. 이 예에서, 보다 강한 ECC 코드는 코드워드에 대한 쓰기 데이터에 X개 초과의 패리티 비트들을 추가하고, 그리고/또는 보다 강한 ECC 코드로 디코딩된 코드워드는 Y보다 많은 보다 높은 디코딩 한계(CPU 사이클들 또는 디코딩 사이클들로 명시됨)를 갖는다.
일부 실시예에서, 메모리 제어기는 각자의 워드 라인에 있는 메모리 셀들을 프로그래밍하기 위한 프로그래밍 파라미터(들)의 세기(intensity)를 증가시킨다(1004). 제2 트리거 조건(예컨대, 각자의 워드 라인의 페이지들로부터 읽혀진 데이터에 대한 BER이 제1 미리 정의된 문턱값보다 더 큰 제2 미리 정의된 문턱값을 초과함)을 검출한 것에 응답하여, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 조절 모듈(232))는 각자의 워드 라인과 연관된 특성화 벡터 내의 하나 이상의 프로그래밍 파라미터들의 값들을 증가시킨다. 예를 들어, 증가된 값은 데이터가 Q보다 더 큰 프로그래밍 전압으로 각자의 워드 라인의 페이지들에 저장되거나 저장될 것임을 나타내고, 여기서 Q는 제1 구성(900)에서의 초기 프로그래밍 전압이다. 이 예에서, Q보다 더 큰, 증가된 프로그래밍 전압은 각자의 워드 라인에 있는 메모리 셀들을 보다 빨리 마모시키지만; 증가된 프로그래밍 전압은 각자의 워드 라인에 있는 메모리 셀들이 데이터를 보다 잘 유지하게 할 수 있다.
일부 실시예에서, 메모리 제어기는 각자의 워드 라인에 있는 메모리 셀들의 저장 밀도를 감소시킨다(1006)(예컨대, X3에서 X2로). 제3 트리거 조건(예컨대, 워드 라인에 대해 수행된 PE 사이클들의 카운트가 제1 미리 결정된 카운트를 초과하거나, 동작(1002) 및/또는 동작(1004)이 수행된 후에 BER이 미리 정의된 문턱값을 초과함)을 검출한 것에 응답하여, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 조절 모듈(232))는 각자의 워드 라인에 대한 특성화 벡터 내의 각자의 워드 라인에 있는 메모리 셀들의 저장 밀도에 대응하는 값을 감소시킨다. 예를 들어, 각자의 워드 라인에 있는 메모리 셀들이 X3에서 X2로 재특성화(recharacterize)된다. 일부 실시예에서, 각자의 워드 라인의 페이지들에 저장된 데이터는 재특성화 이전에 3D 메모리 디바이스의 다른 워드 라인들에 있는 페이지들로 마이그레이션(migrate)된다. 일부 실시예에서, 각자의 워드 라인을 포함하는 각자의 블록의 차후의 소거 동작 후에 재특성화가 수행된다. 일부 실시예에서, 재특성화를 수행할 때, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 조절 모듈(232))는 ECC 인코딩 강도의 값을 감소시키고 그리고/또는 각자의 워드 라인과 연관된 특성화 벡터 내의 하나 이상의 프로그래밍 파라미터들의 값을 제1 구성(900)에서의 초기값들(예컨대, 약한 ECC 코드 및 프로그래밍 전압 Q)로 감소시킨다.
일부 실시예에서, 메모리 제어기는 각자의 워드 라인의 페이지들에 저장된 데이터에 대한 ECC 인코딩 강도를 증가시킨다(1008)(예컨대, LDPC). 동작(1006)에서의 재특성화 후에 그리고 제1 트리거 조건(예컨대, 각자의 워드 라인의 페이지들로부터 읽혀진 데이터에 대한 BER이 제1 미리 정의된 문턱값을 초과함)을 검출한 것에 응답하여, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 조절 모듈(232))는 각자의 워드 라인과 연관된 특성화 벡터 내의 ECC 인코딩 강도의 값을 증가시킨다. 예를 들어, 증가된 값은 각자의 워드 라인의 페이지들에 저장된 또는 저장될 데이터가 동작(1002)에서의 ECC 인코딩 강도에 비해 더 강한 ECC 코드(예컨대, LDPC 코드)로 인코딩된다는 것을 나타낸다. 다른 예에서, 보다 강한 ECC 코드는 동작(1008) 이후에 각자의 워드 라인에 쓰여진 각각의 코드워드에 포함된 쓰기 데이터에 X개 초과의 패리티 비트들을 추가하고, 그리고/또는 보다 높은 디코딩 한계(예컨대, 보다 강한 ECC 코드로 인코딩된 코드워드를 디코딩하기 위해 허용된 CPU 사이클들 또는 디코딩 사이클들의 수에 대한 보다 높은 한계)를 갖는다.
일부 실시예에서, 메모리 제어기는 각자의 워드 라인에 있는 메모리 셀들에 대한 프로그래밍 파라미터(들)의 세기를 증가시킨다(1010). 동작(1006)에서의 재특성화 후에 그리고 제2 트리거 조건(예컨대, 각자의 워드 라인의 페이지들로부터 읽혀진 데이터에 대한 BER이 제1 미리 정의된 문턱값보다 더 큰 제2 미리 정의된 문턱값을 초과함)을 검출한 것에 응답하여, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 조절 모듈(232))는 각자의 워드 라인과 연관된 특성화 벡터 내의 하나 이상의 프로그래밍 파라미터들의 값들을 증가시킨다. 예를 들어, 증가된 값은 데이터가 동작(1010)을 수행하기 전에 각자의 워드 라인에 데이터를 쓰기 위해 사용된 프로그래밍 전압보다 더 큰 프로그래밍 전압으로 각자의 워드 라인의 페이지들에 저장되거나 저장될 것임을 나타낸다. 다른 예에서, 증가된 값은 데이터가 Q(예컨대, 제1 구성(900)에서의 초기 프로그래밍 전압)보다 더 큰 프로그래밍 전압으로 각자의 워드 라인의 페이지들에 저장되거나 저장될 것임을 나타낸다.
일부 실시예에서, 메모리 제어기는 각자의 워드 라인에 있는 메모리 셀들의 저장 밀도를 감소시킨다(1012)(예컨대, X2에서 X1로). 제4 트리거 조건(예컨대, 워드 라인에 대해 수행된 PE 사이클들의 카운트가 제1 미리 결정된 카운트보다 더 큰 제2 미리 결정된 카운트를 초과함)을 검출한 것에 응답하여, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 조절 모듈(232))는 각자의 워드 라인에 대한 특성화 벡터 내의 각자의 워드 라인에 있는 메모리 셀들의 저장 밀도에 대응하는 값을 감소시킨다. 예를 들어, 각자의 워드 라인에 있는 메모리 셀들이 X2에서 X1로 재특성화된다. 일부 실시예에서, 동작(1012)의 재특성화를 수행할 때, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 조절 모듈(232))는 ECC 인코딩 강도의 값을 감소시키고 그리고/또는 각자의 워드 라인과 연관된 특성화 벡터 내의 하나 이상의 프로그래밍 파라미터들의 값을 제1 구성(900)에서의 초기값들(예컨대, 약한 ECC 코드 및 프로그래밍 전압 Q)로 감소시킨다.
일부 실시예에서, 메모리 제어기는 각자의 워드 라인의 페이지들에 저장된 데이터에 대한 ECC 인코딩 강도를 증가시킨다(1014)(예컨대, LDPC의 최대 반복). 동작(1012)에서의 재특성화 후에 그리고 제1 트리거 조건(예컨대, 각자의 워드 라인의 페이지들로부터 읽혀진 데이터에 대한 BER이 제1 미리 정의된 문턱값을 초과함)을 검출한 것에 응답하여, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 조절 모듈(232))는 각자의 워드 라인과 연관된 특성화 벡터 내의 ECC 인코딩 강도의 값을 증가시킨다. 예를 들어, 증가된 값은 각자의 워드 라인의 페이지들에 저장된 또는 저장될 데이터가 동작(1014)을 수행하기 전에 각자의 워드 라인에 데이터를 쓸 때 사용된 ECC 인코딩 강도에 비해 더 강한 ECC 코드(예컨대, 코드워드당 증가된 수의 패리티 비트들 또는 ECC 비트들을 갖는 LDPC 코드)로 인코딩된다는 것을 나타낸다. 다른 예에서, 보다 강한 ECC 코드는 각자의 워드 라인에 쓰여질 단일의 각자의 코드워드에 대한 쓰기 데이터에 X개 초과의 패리티 비트들을 추가하고, 그리고/또는 동작(1014)의 수행 이전에 각자의 워드 라인에 데이터를 쓸 때 사용된 ECC 코드보다 더 높은 디코딩 한계(예컨대, 보다 강한 ECC 코드로 인코딩된 코드워드를 디코딩하기 위해 허용된 CPU 사이클들 또는 디코딩 사이클들의 수에 대한 보다 높은 한계)를 갖는다.
일부 실시예에서, 메모리 제어기는 각자의 워드 라인에 있는 메모리 셀들에 대한 프로그래밍 파라미터(들)의 세기를 증가시킨다(1016). 동작(1012)에서의 재특성화 후에 그리고 제2 트리거 조건(예컨대, 각자의 워드 라인의 페이지들로부터 읽혀진 데이터에 대한 BER이 제1 미리 정의된 문턱값보다 더 큰 제2 미리 정의된 문턱값을 초과함)을 검출한 것에 응답하여, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 조절 모듈(232))는 각자의 워드 라인과 연관된 특성화 벡터 내의 하나 이상의 프로그래밍 파라미터들의 값들을 증가시킨다. 예를 들어, 증가된 값은 데이터가 동작(1010)에서의 프로그래밍 전압보다 더 큰 프로그래밍 전압으로 각자의 워드 라인의 페이지들에 저장되거나 저장될 것임을 나타낸다. 다른 예에서, 증가된 값은 데이터가 Q(예컨대, 제1 구성(900)에서의 초기 프로그래밍 전압)보다 더 큰 프로그래밍 전압으로 각자의 워드 라인의 페이지들에 저장되거나 저장될 것임을 나타낸다.
일부 실시예에서, 메모리 제어기는 각자의 워드 라인을 폐기시킨다(1018). 제5 트리거 조건(예컨대, 워드 라인에 대해 수행된 PE 사이클들의 카운트가 제1 및 제2 미리 결정된 카운트들보다 더 큰 제3 미리 결정된 카운트를 초과함)을 검출한 것에 응답하여, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 조절 모듈(232))는 각자의 워드 라인에 대한 특성화 벡터 내의 각자의 워드 라인에 있는 메모리 셀들의 저장 밀도에 대응하는 값을 감소시킨다. 예를 들어, 각자의 워드 라인에 있는 메모리 셀들이 X1에서 X0으로 재특성화된다. 이 예에서, X0은 각자의 워드 라인이 폐기되고 그로써 새로운 데이터가 각자의 워드 라인의 페이지들에 프로그래밍되지 않는다는 것을 나타낸다. 일부 실시예에서, X0의 저장 밀도에 의해 특성화된 워드 라인들에 저장된 데이터가 계속하여 읽혀질 수 있고, 따라서 이 워드 라인들은 읽기 전용 메모리로서 계속 동작한다.
도 10에서의 조절 동작들의 예시적인 시퀀스는 제한하는 것으로 의도되어 있지 않다. 예를 들어, 조절 동작들이 다양한 대안의 순서들로 수행될 수 있다. 일부 구현에서, 앞서 기술된 조절 동작들 중 일부가 수행된다. 일부 구현에서, (예컨대, 각자의 워드 라인과 연관된 제1 구성 또는 다른 인자들에 기초하여) 부가의 조절 동작들이 추가된다. 이를 위해, 도 10은 구성 파라미터들이 ECC 인코딩 강도 -> 프로그래밍 파라미터(들) -> 저장 밀도와 같이 조절되는 조절 동작들의 예시적인 시퀀스를 나타내고 있지만; 조절 파라미터들이, (A) ECC 인코딩 강도 -> ECC 인코딩 강도 -> 프로그래밍 파라미터(들) -> 저장 밀도, 또는 (B) 프로그래밍 파라미터(들) -> 프로그래밍 파라미터(들) -> ECC 인코딩 강도 -> 저장 밀도와 같은, 다양한 다른 순서들로 조절될 수 있다. 일부 실시예에서, 각자의 워드 라인의 ECC 인코딩 강도 및 프로그래밍 파라미터(들)가 각자의 워드 라인의 저장 밀도 이전에 조절된다. 일부 실시예에서, 각자의 워드 라인의 ECC 인코딩 강도 및 프로그래밍 파라미터(들)가 각자의 워드 라인의 저장 밀도를 조절하기 위한 트리거(예컨대, 각자의 워드 라인에 대해 수행된 PE 사이클들)와 상이한 트리거(예컨대, BER)에 따라 조절된다.
일부 실시예에서, 특성화 벡터들이, 개개의 워드 라인별로가 아니라, 워드 라인 구역(즉, 블록 내의 워드 라인들의 서브셋)별로 저장된다. 그 결과, 트리거 조건들이 워드 라인 구역별로 검출되고, 그에 응답하여, 구성 파라미터들도 역시 워드 라인 구역별로 조절된다. 예를 들어, 12개의 워드 라인들이 블록을 구성할 때, 12개의 워드 라인들이, 똑같은 수의 워드 라인들을 포함할 수 있거나 그렇지 않을 수 있는, 2개 또는 3개의 워드 라인 구역들로 분할된다. 다른 예에서, 블록이 블록에 대한 결정된 변동 위치에 의해 나누어질 때, 변동 위치 위쪽에 있는(즉, 기판으로부터 보다 멀리 있는) 워드 라인들은 제1 워드 라인 구역에 포함되고, 변동 위치 아래쪽에 있는(즉, 기판에 보다 가까이 있는) 워드 라인들은 제2 워드 라인 구역에 포함된다.
도 11a 내지 도 11c는 일부 실시예에 따른, 3D 메모리 셀 어레이를 갖는 저장 디바이스에서의 동작 방법(1100)의 플로우차트 표현을 나타내고 있다. 적어도 일부 구현에서, 방법(1100)은 메모리 제어기(예컨대, 도 1의 메모리 제어기(120)) 또는 그의 하나 이상의 컴포넌트들(예컨대, 도 1 및 도 2a의 관리 모듈(121))에 의해 수행된다. 일부 실시예에서, 방법(1100)은 저장 디바이스(예컨대, 도 1의 저장 디바이스(130))와 별개이고 하나 이상의 연결들(예컨대, 도 1의 연결들(103))에 의해 그와 결합된 메모리 제어기(예컨대, 도 1의 메모리 제어기(120))에 의해 수행된다. 일부 실시예에서, 방법(1100)은 비일시적 컴퓨터 판독가능 저장 매체에 저장되어 있는 명령어들에 의해 통제되고, 그 명령어들은 디바이스의 하나 이상의 프로세서들(예컨대, 도 1 및 도 2a의 관리 모듈(121)의 하나 이상의 처리 유닛들(CPU들)(122))에 의해 실행된다. 임의적인 동작들은 파선들(예컨대, 파선 경계들을 갖는 상자들)로 표시되어 있다.
일부 실시예에서, 저장 디바이스(예컨대, 도 1의 저장 디바이스(130))는 하나 이상의 메모리 디바이스들을 포함한다. 하나 이상의 메모리 디바이스들의 각자의 메모리 디바이스는 3차원 메모리 셀 어레이 및 복수의 메모리 셀 블록들을 포함한다. 일부 실시예에서, 각각의 블록은 저장 디바이스의 기판에 대해 상이한 수직 위치들에 배열된 복수의 워드 라인들을 포함한다.
일부 실시예에서, 복수의 워드 라인들은 저장 디바이스의 기판에 대해 X개의 개별 수직 위치들의 각각의 수직 위치에 있는 일단의 워드 라인들을 포함하고, 여기서 X는 2보다 큰 정수이다. 일부 실시예에서, 각각의 워드 라인은 하나 이상의 페이지들을 포함하고, 각각의 페이지는 사용자 데이터 및 페이지에 저장된 사용자 데이터에서 오류들을 검출하고 정정하기 위한 ECC 값들을 저장하기 위한 것이다. 도 9에서, 예를 들어, 3D 메모리 디바이스 내의 복수의 블록들의 각자의 블록은 워드 라인들 N, N-1, ..., 1, 0과 연관되고, 여기서 워드 라인 N은 3D 메모리 디바이스의 기판으로부터 가장 멀리 있고(예컨대, 상부 워드 라인임), 워드 라인 0은 3D 메모리 디바이스의 기판에 가장 가깝다(예컨대, 하부 워드 라인임).
메모리 제어기는 각자의 블록에 대응하는 복수의 워드 라인들을 제1 구성으로 구성하고, 여기서 제1 구성은 저장 디바이스의 기판에 대한 각각의 워드 라인의 수직 위치들에서 적어도 부분적으로 결정된 복수의 워드 라인들의 각각의 워드 라인에 대한 각자의 구성 파라미터 세트를 포함한다(1102). 도 9는, 예를 들어, 제1 구성(900)으로 된 저장 디바이스(130)의 각자의 블록의 워드 라인들 N, N-1, ..., 1, 0에 대한 구성 파라미터들을 개략적으로 나타내고 있다. 일부 실시예에서, 특성화 벡터 테이블(234)(도 2a 내지 도 2c)은 저장 디바이스(130)의 각자의 블록의 워드 라인들 N, N-1, ..., 1, 0에 대한 특성화 벡터들(235)을 저장한다. 예를 들어, 제1 구성(900)에서, 워드 라인 N에 대한 각자의 특성화 벡터는 구성 파라미터 세트에 대한 초기값들을 포함한다. 일부 실시예에서, 위치 결정 모듈(222)(도 2a)은 3D 메모리 디바이스의 최초 전원 켜기 시에 제1 구성(900)을 결정한다. 예를 들어, 3D 메모리 디바이스의 기동 또는 전원 켜기 시에, 위치 결정 모듈(222)(도 2a)은, 저장 디바이스(130)의 기판에 대한 워드 라인들 N, N-1, ..., 1, 0의 수직 위치들에 기초하여, 저장 디바이스(130)의 각자의 블록의 워드 라인들 N, N-1, ..., 1, 0에 대한 특성화 벡터들(235)(도 2b)을 결정하고 채운다(populate). 일부 실시예에서, 각각의 워드 라인에 있는 페이지는 3D 메모리 디바이스의 제조업체에 의해 저장 디바이스(130)의 기판에 대한 워드 라인의 수직 위치를 나타내는 메타데이터로 프로그래밍된다. 일부 실시예에서, 위치 결정 모듈(222)(도 2a)은, 각자의 블록의 각각의 워드 라인에 대해, 블록에 대한 결정된 변동 위치(예컨대, 도 4a 및 도 4b와 도 5 및 도 6에서의 위치(420))에 기초하여 저장 디바이스(130)의 기판에 대한 수직 위치를 결정한다.
일부 실시예에서, 각자의 구성 파라미터 세트는 저장 밀도, ECC 인코딩 강도, 및 하나 이상의 프로그래밍 파라미터들 중 적어도 하나를 포함한다(1104). 일부 실시예에서, 특성화 벡터 테이블(234)은 저장 디바이스(130)의 각자의 블록의 워드 라인들 N, N-1, ..., 1, 0에 대한 특성화 벡터들(235)을 저장한다. 예를 들어, 도 9와 관련하여, 워드 라인 N에 대한 각자의 특성화 벡터는 (i) 워드 라인 N에 있는 메모리 셀들에 대한 현재 저장 밀도 구성을 표시하는 저장 밀도 필드(252); (ii) 워드 라인 N과 연관된 페이지(들)에 저장된 데이터에 대한 현재 ECC 인코딩 강도를 표시하는 ECC 인코딩 강도(또는 기법)(254); 및 (iii) 워드 라인 N에 저장된 또는 저장될 데이터와 연관된 하나 이상의 프로그래밍 파라미터들을 표시하는 프로그래밍 파라미터 필드(256)를 포함하는 구성 파라미터 세트를 포함한다.
일부 실시예에서, 제1 구성에 있는 동안(1106): 수직 위치들의 제1 서브셋에 있는, 각자의 블록에 대응하는 복수의 워드 라인들의 제1 서브셋은 데이터를 제1 저장 밀도로 저장하도록 구성되고, 제1 저장 밀도는 메모리 셀당 B 비트의 저장에 대응하며, 여기서 미리 정의된 비트 수 B는 0보다 크고; 수직 위치들의 제2 서브셋에 있는, 각자의 블록에 대응하는 복수의 워드 라인들의 제2 서브셋은 데이터를 제2 저장 밀도로 저장하도록 구성되고, 제2 저장 밀도는 메모리 셀당 M 비트의 저장에 대응하며, 여기서 M은 0보다 크고 M은 B보다 작다(1128). 도 9를 참조하면, 제1 구성(900)에서, 워드 라인 0(즉, 저장 디바이스(130)의 기판에 가장 가까운 워드 라인)과 연관된 구성 파라미터 세트는, 워드 라인 N(즉, 저장 디바이스(130)의 기판으로부터 가장 멀리 있는 워드 라인)에 대한 구성 파라미터 세트 내의 저장 밀도 필드와 비교하여, 워드 라인 0에 있는 메모리 셀들에 대한 더 낮은 저장 밀도를 나타낸다. 예를 들어, 제1 구성(900)에서, 워드 라인 0과 연관된 구성 파라미터 세트는 워드 라인 0에 있는 메모리 셀들이, 메모리 셀당 1 비트의 데이터를 저장하도록 구성된, X1 메모리 셀들로서 구성된다는 것을 나타낸다. 이 예를 계속하면, 그에 비해, 제1 구성(900)에서, 워드 라인 N과 연관된 구성 파라미터 세트는 워드 라인 N에 있는 메모리 셀들이, 메모리 셀당 3 비트의 데이터를 저장하도록 구성된, X3 메모리 셀들로서 구성된다는 것을 나타낸다.
일부 실시예에서, 제1 구성에 있는 동안(1106): 수직 위치들의 제1 서브셋에 있는, 각자의 블록에 대응하는 복수의 워드 라인들의 제1 서브셋은 제1 ECC 인코딩 강도로 인코딩된 데이터를 저장하도록 구성되고; 수직 위치들의 제2 서브셋에 있는, 각자의 블록에 대응하는 복수의 워드 라인들의 제2 서브셋은 제1 ECC 인코딩 강도보다 더 큰 제2 ECC 인코딩 강도로 인코딩된 데이터를 저장하도록 구성된다(1130). 예를 들어, 제2 ECC 인코딩 강도는 코드워드당 보다 많은 ECC 또는 패리티 비트들을 필요로 하고, 그리고/또는 제1 ECC 인코딩 강도보다 더 높은 디코딩 한계를 갖는다. 도 9를 참조하면, 제1 구성(900)에서, 워드 라인 0(즉, 저장 디바이스(130)의 기판에 가장 가까운 워드 라인)과 연관된 구성 파라미터 세트는, 워드 라인 N(즉, 저장 디바이스(130)의 기판으로부터 가장 멀리 있는 워드 라인)에 대한 구성 파라미터 세트 내의 ECC 인코딩 강도와 비교하여, 워드 라인 0의 페이지들에 저장된 또는 저장될 데이터에 대한 더 강한 ECC 강도를 나타낸다. 예를 들어, 제1 구성(900)에서, 워드 라인 0과 연관된 구성 파라미터 세트는 워드 라인 0의 페이지들에 저장된 데이터가 P개의 패리티 비트들 및/또는 C개의 CPU 사이클들 또는 C개의 디코딩 사이클들의 디코딩 한계와 연관된 LDPC 코드로 인코딩된다는 것을 나타낸다. 이 예를 계속하면, 그에 비해, 제1 구성(900)에서, 워드 라인 N과 연관된 구성 파라미터 세트는 워드 라인 N의 페이지들에 저장된 데이터가 K개의 패리티 비트들 및/또는 D개의 CPU 사이클들 또는 D개의 디코딩 사이클들의 디코딩 한계와 연관된 LDPC 코드로 인코딩된다(여기서 K < P이고 그리고/또는 D < C임)는 것을 나타낸다.
일부 실시예에서, 제1 구성에 있는 동안(1106): 수직 위치들의 제1 서브셋에 있는, 각자의 블록에 대응하는 복수의 워드 라인들의 제1 서브셋은 하나 이상의 프로그래밍 파라미터들의 제1 세트에 따라 데이터를 저장하도록 구성되고; 수직 위치들의 제2 서브셋에 있는, 각자의 블록에 대응하는 복수의 워드 라인들의 제2 서브셋은 하나 이상의 프로그래밍 파라미터들의 제2 세트에 따라 데이터를 저장하도록 구성된다(1132). 도 9를 참조하면, 제1 구성(900)에서, 워드 라인 0(즉, 저장 디바이스(130)의 기판에 가장 가까운 워드 라인)과 연관된 구성 파라미터 세트는, 워드 라인 N(즉, 저장 디바이스(130)의 기판으로부터 가장 멀리 있는 워드 라인)에 대한 구성 파라미터 세트 내의 프로그래밍 파라미터(들)와 비교하여, 워드 라인 0의 페이지들에 저장된 또는 저장될 데이터에 대한 더 강한(즉, 더 강렬한, 파괴적인 또는 스트레스가 많은) 프로그래밍 파라미터(들)를 나타낸다. 예를 들어, 제1 구성(900)에서, 워드 라인 0과 연관된 구성 파라미터 세트는 데이터가 프로그래밍 전압 X로 워드 라인 0의 페이지들에 프로그래밍된다는 것을 나타내다. 이 예를 계속하면, 그에 비해, 제1 구성(900)에서, 워드 라인 N과 연관된 구성 파라미터 세트는 데이터가 프로그래밍 전압 Y로 워드 라인 N의 페이지들에 프로그래밍된다(여기서 Y < X임)는 것을 나타내다.
일부 실시예에서,하나 이상의 프로그래밍 파라미터들의 제2 세트는 각자의 블록에 대응하는 복수의 워드 라인들의 제2 서브셋에 있는 메모리 셀들을 하나 이상의 프로그래밍 파라미터들의 제1 세트보다 더 많은 양의 스트레스에 노출시킨다(1134). 일부 실시예에서, 하나 이상의 프로그래밍 파라미터들은 프로그래밍 전압, 프로그래밍 펄스들의 수, 각각의 프로그래밍 펄스의 단차, 폭, 또는 지속기간, 및/또는 각자의 워드 라인에 있는 메모리 셀들의 각각의 상태에 대한 하나 이상의 읽기 문턱 전압들에 대응한다. 예를 들어, 하나 이상의 프로그래밍 파라미터들의 제2 세트는, 하나 이상의 프로그래밍 파라미터들의 제1 세트에서의 프로그래밍 전압과 비교하여, 각자의 워드 라인에 있는 메모리 셀들을 프로그래밍하기 위한 더 높은 프로그래밍 전압을 포함한다. 이 예를 계속하면, 더 높은 프로그래밍 전압은 각자의 워드 라인에 있는 메모리 셀들에 대해 더 스트레스를 주거나 파괴적이고; 환언하면, 보다 높은 프로그래밍 전압은 보다 높은 프로그래밍 전압을 사용하여 프로그래밍된 메모리 셀들이 보다 낮은 프로그래밍 전압을 사용하여 프로그래밍된 메모리 셀들보다 더 빨리 마모되게 한다.
일부 실시예에서, 각자의 블록에 대응하는 복수의 워드 라인들의 제2 서브셋에 대응하는 수직 위치들의 제2 서브셋은 각자의 블록에 대응하는 복수의 워드 라인들의 제1 서브셋에 대응하는 수직 위치들의 제1 서브셋보다 저장 디바이스의 기판에 더 가깝다(1136). 예를 들어, 도 9에서의 워드 라인들을 참조하면, 복수의 워드 라인들의 제2 서브셋에 대응하는 수직 위치들의 제2 서브셋은 워드 라인 1 및 워드 라인 0에 대응하고, 복수의 워드 라인들의 제1 서브셋에 대응하는 수직 위치들의 제1 서브셋은 워드 라인 N-1 및 워드 라인 N에 대응한다.
복수의 워드 라인들이 제1 구성에 따라 구성되어 있는 동안, 메모리 제어기는 각자의 블록에 데이터를 쓰고 각자의 블록으로부터 데이터를 읽는다(1108). 일부 실시예에서, 메모리 제어기(120)는 데이터가 각자의 워드 라인에 대한 특성화 벡터에 표시된 하나 이상의 구성 파라미터들(예컨대, 저장 밀도, ECC 인코딩 강도, 및 프로그래밍 파라미터(들))에 따라 각자의 블록의 각자의 워드 라인에 있는 페이지들에 쓰여지게 하고 그로부터 읽혀지게 한다. 예를 들어, 메모리 제어기(120)는 사용자 데이터(때때로 쓰기 데이터라고도 불리움)를 논리 주소 또는 일단의 논리 주소들에 쓰라는 커맨드를 호스트(예컨대, 도 1의 컴퓨터 시스템(110))로부터 수신한다. 이 예를 계속하면, 메모리 제어기(120)는 쓰기 커맨드에 의해 식별된 논리 주소 또는 일단의 논리 주소들을 저장 디바이스(130)의 각자의 블록의 각자의 워드 라인에 있는 하나 이상의 페이지들의 물리 주소들에 매핑하기 위해 논리-물리 매핑(236)(도 2a)을 사용한다. 이 예를 계속하면, 메모리 제어기(120)는 사용자 데이터를 인코딩하기 위해 사용되는 ECC 인코딩 강도, 사용자 데이터를 하나 이상의 페이지들에 쓰는 것에 대한 프로그래밍 파라미터(들), 및 각자의 워드 라인에 있는 메모리 셀들과 연관된 현재 저장 밀도를 결정하기 위해 물리 주소들에 기초하여 특성화 벡터 테이블(234)(도 2a 및 도 2b)로부터 각자의 워드 라인과 연관된 특성화 벡터를 선택한다. 이 예를 계속하면, 인코더(126)(도 1)는 결정된 ECC 인코딩 강도에 따라 사용자 데이터를 인코딩하고, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 데이터 읽기 모듈(212) 또는 도 2a의 데이터 쓰기 모듈(214))는 저장 매체 I/O(128)(도 1) 내의 읽기/쓰기 회로부 또는 읽기/쓰기 회로부(135)(도 1)로 하여금 인코딩된 사용자 데이터(즉, 코드워드)를 결정된 프로그래밍 파라미터(들)에 따라 각자의 워드 라인에 있는 하나 이상의 페이지들에 쓰게 한다.
일부 실시예에서, 메모리 제어기는 각자의 블록에 대응하는 복수의 워드 라인들 각각에 대한 하나 이상의 상태 메트릭들을 유지한다(1110). 일부 실시예에서, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 메트릭 유지 모듈(228))는 각자의 블록에 대응하는 복수의 워드 라인들 각각에 대한 하나 이상의 상태 메트릭들을 유지한다. 일부 실시예에서, 각자의 워드 라인과 연관된 하나 이상의 상태 메트릭들은 각자의 워드 라인에 대응하는 특성화 벡터에(또는 각자의 워드 라인을 포함하는 워드 라인 구역에 대응하는 특성화 벡터에) 저장된다. 일부 실시예에서, 각자의 워드 라인(또는 워드 라인 구역)에 대한 특성화 벡터에 저장된 하나 이상의 상태 메트릭들은 (a) 각자의 워드 라인(또는 워드 라인 구역)에 있는 페이지들에 쓰여진 데이터의 바이트 수를 표시하는 쓰기 용량 필드(260); (b) 각자의 워드 라인에 대해 수행된 PE 사이클들의 수의 현재 카운트를 표시하는 PE 사이클 필드(262); (c) 각자의 워드 라인의 페이지들로부터 읽혀진 코드워드에 포함된 오류들의 수를 표시하는 BER 필드(264); 및 (d) 각자의 워드 라인의 건전성, 성능, 및/또는 내구성을 표시하는 다른 사용 정보(266)를 포함한다.
일부 실시예에서, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 메트릭 유지 모듈(228))는 각자의 블록 내의 복수의 워드 라인들 각각(또는 복수의 워드 라인 구역들 각각)에 대한 결합된 상태 메트릭을 유지한다. 일부 실시예에서, 각자의 워드 라인(또는 워드 라인 구역)과 연관된 결합된 상태 메트릭은 각자의 워드 라인(또는 워드 라인 구역)에 대응하는 특성화 벡터에 저장된다. 일부 실시예에서, 결합된 상태 메트릭(258)은 각자의 워드 라인(또는 워드 라인 구역)과 연관된 하나 이상의 사용 파라미터들을 고려하는 (예컨대, 도 2a의 메트릭 유지 모듈(228)에 의해 계산되는) 미리 정의된 알고리즘의 출력과 연관되어 있다. 예를 들어, 미리 정의된 알고리즘은 (a) 각자의 워드 라인(또는 워드 라인 구역)에 쓰여진 바이트 수; (b) 각자의 워드 라인에 대해 수행된 PE 사이클들의 수; (c) 각자의 워드 라인(또는 워드 라인 구역)의 페이지(들)로부터 읽혀진 코드워드들에 대한 BER; 및 (d) 각자의 워드 라인(또는 워드 라인 구역)과 연관된 다른 사용 정보 중 하나 이상을 포함한다.
일부 실시예에서, 복수의 워드 라인들의 각자의 워드 라인에 대한 하나 이상의 상태 메트릭들 중 하나가 하나 이상의 미리 정의된 기준들을 충족시킨다는 결정에 따라, 메모리 제어기는 각자의 워드 라인에 관한 제1 트리거 조건을 검출한다(1112). 일부 실시예에서, 각자의 워드 라인에 대응하는 하나 이상의 상태 메트릭들 중 하나가 하나 이상의 미리 정의된 기준들을 충족시킨다는 결정에 따라, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 트리거 검출 모듈(230))는 각자의 워드 라인에 관한 제1 트리거 조건을 검출한다. 예를 들어, 각자의 워드 라인에 대응하는 하나 이상의 상태 메트릭들이 각자의 워드 라인에 있는 페이지들에 쓰여진 평균 바이트 수가 미리 결정된 바이트 수를 초과한다는 것, 또는 워드 라인의 페이지들로부터 읽혀진 데이터에 대한 평균 BER이 미리 정의된 값을 초과한다는 것을 나타낼 때, 메모리 제어기(120)는 각자의 워드 라인에 대한 제1 트리거 조건을 검출한다. 그에 따라, 메모리 제어기(120)는, 각자의 워드 라인의 페이지들에 쓰여지는 후속 데이터에 대한 ECC 인코딩 강도를 증가시키는 것, 각자의 워드 라인에 대한 프로그래밍 파라미터(들)를 변경하는 것, 또는 각자의 워드 라인에 있는 메모리 셀들의 저장 밀도를 감소시키는 것과 같은, 이하에서 논의되는 바와 같이 각자의 워드 라인에 대응하는 구성 파라미터(들) 중 적어도 하나의 구성 파라미터의 조절을 트리거링한다.
일부 실시예에서, 메모리 제어기는 각자의 블록의 각자의 워드 라인에 관한 커맨드를 수신하고, 커맨드를 수신한 것에 응답하여, 각자의 워드 라인에 관한 제1 트리거 조건을 검출한다(1114). 일부 실시예에서, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 트리거 검출 모듈(230))는 각자의 워드 라인의 구성 파라미터(들)를 조절하기 위해 컴퓨터 시스템(100), 데이터 저장 시스템(100) 내부의 프로세스, 또는 저장 디바이스(130)와 연관된 가속기 모듈로부터 커맨드를 수신한 것에 응답하여 각자의 워드 라인에 관한 트리거 조건을 검출한다.
복수의 워드 라인들의 각자의 워드 라인에 관한 제1 트리거 조건을 (예컨대, BER 또는 커맨드에 기초하여) 검출한 것에 응답하여, 메모리 제어기는 각자의 워드 라인에 대응하는 각자의 구성 파라미터 세트 내의 제1 파라미터를 조절한다(1116). 이와 관련하여, "조절한다"는 "~의 값을 변경한다"는 것을 의미한다. 일부 실시예에서, 각자의 워드 라인에 관한 제1 트리거 조건을 검출한 것에 응답하여, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 조절 모듈(232))는, 저장 밀도, ECC 인코딩 강도, 및/또는 하나 이상의 프로그래밍 파라미터(들)와 같은, 각자의 워드 라인과 연관된 구성 파라미터들 중 적어도 하나를 조절한다. 일부 실시예에서, 각자의 워드 라인에 대한 구성 파라미터들은 우선순위 스케줄(예컨대, 도 10의 조절 동작들의 예시적인 시퀀스에 의해 예시된 바와 같이, ECC 인코딩 강도 -> 프로그래밍 파라미터(들) -> 저장 밀도)에 따라 조절된다. 일부 실시예에서, 각자의 워드 라인에 대한 구성 파라미터들은 조절된 구성 파라미터들을 가지는 미리 정의된 특성화 벡터를 각자의 워드 라인과 연관시키는 것에 의해 조절된다.
예를 들어, 각자의 워드 라인에 관한 제1 트리거 조건을 검출한 것에 응답하여, 조절 모듈(232)은, 각자의 워드 라인에 대응하는 특성화 벡터의 ECC 인코딩 강도 필드(254) 내의 값을 변경하는 것에 의해, 각자의 워드 라인의 페이지(들)에 저장된 또는 저장될 데이터에 대한 ECC 인코딩 강도를 증가시킨다. 대안적으로, 각자의 워드 라인에 대한 ECC 인코딩 강도는 증가된 ECC 인코딩 강도를 명시하는 미리 정의된 특성화 벡터를 각자의 워드 라인과 연관시키는 것에 의해 증가된다. 이 예를 계속하면, 각자의 워드 라인에 대응하는 특성화 벡터의 ECC 인코딩 강도 필드(254) 내의 이전 값은 데이터가 제1 코드(예컨대, BCH 코드)를 사용해 각자의 워드 라인의 페이지(들)에 저장되거나 저장될 것임을 나타낸 반면, 각자의 워드 라인에 대응하는 특성화 벡터의 ECC 인코딩 강도 필드(254) 내의 조절된 값은 데이터가 제1 코드보다 더 많은 패리티 비트들 및/또는 더 높은 디코딩 한계를 갖는 제2 코드(예컨대, LDPC 코드)를 사용해 각자의 워드 라인의 페이지(들)에 저장되거나 저장될 것임을 나타낸다.
각자의 워드 라인에 대응하는 각자의 구성 파라미터 세트 내의 제1 파라미터를 조절한 후에, 메모리 제어기는 각자의 워드 라인에 데이터를 쓰고 각자의 워드 라인으로부터 데이터를 읽는다(1118). 예를 들어, ECC 인코딩 강도 필드의 값을 조절하는 것에 의해 각자의 워드 라인에 대한 특성화 벡터를 업데이트한 후에, 메모리 제어기(120)는 데이터가 각자의 워드 라인에 대한 업데이트된 특성화 벡터에 표시된 구성 파라미터들(예컨대, 저장 밀도, 조절된 ECC 인코딩 강도, 및 프로그래밍 파라미터(들))에 따라 각자의 블록의 각자의 워드 라인에 있는 페이지들에 쓰여지게 하고 그로부터 읽혀지게 한다.
일부 실시예에서, 각자의 워드 라인에 대응하는 각자의 구성 파라미터 세트 내의 제1 파라미터를 조절한 후에, 메모리 제어기는 복수의 워드 라인들의 각자의 워드 라인에 관한 제2 트리거 조건을 검출하고, 여기서 제2 트리거 조건은 제1 트리거 조건과 상이하다(1120). 일부 실시예에서, 각자의 워드 라인에 대응하는 하나 이상의 상태 메트릭들 중 적어도 하나가 하나 이상의 미리 정의된 기준들을 충족시킨다는 결정에 따라, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 트리거 검출 모듈(230))는 각자의 워드 라인에 관한 제2 트리거 조건(예컨대, 동작(1112)에서의 제1 트리거 조건과 상이함)을 검출한다. 예를 들어, 각자의 워드 라인에 대응하는 하나 이상의 상태 메트릭들이 각자의 워드 라인에 대해 수행된 PE 사이클들의 카운트가 미리 결정된 카운트를 초과한다는 것을 나타낼 때, 메모리 제어기(120)는 각자의 워드 라인에 대한 제2 트리거 조건을 검출한다. 예를 들어, 제1 트리거 조건은 각자의 워드 라인의 페이지들로부터 읽혀진 데이터와 연관된 BER이 미리 결정된 문턱값을 초과했다는 결정에 따라 검출되었고, 제2 트리거는 각자의 워드 라인에 대해 수행된 PE 사이클들의 카운트가 미리 결정된 카운트를 초과한다는 결정에 따라 검출된다. 예를 들어, PE 사이클들의 미리 결정된 카운트는 각자의 워드 라인이 현재 저장 밀도 구성에서 수명 만료(end-of-life) 조건에 가까워지고 있다는 것을 나타낸다.
일부 실시예에서, 복수의 워드 라인들의 각자의 워드 라인에 관한 제2 트리거 조건을 검출한 것에 응답하여, 메모리 제어기는 각자의 워드 라인에 대응하는 각자의 구성 파라미터 세트 내의 제2 파라미터를 조절하고, 여기서 제2 파라미터는 제1 파라미터와 상이하다(1122). 예를 들어, 제1 트리거 조건을 검출한 것에 응답하여 동작(1116)에서 ECC 인코딩 필드의 값을 조절하는 것에 의해(또는, 대안적으로, 프로그래밍 파라미터(들) 필드의 값을 조절하는 것에 의해) 각자의 워드 라인에 대응하는 특성화 벡터를 업데이트한 후에, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 조절 모듈(232))는 제2 트리거 조건을 검출한 것에 응답하여 저장 밀도 필드(252)의 값을 조절하는 것에 의해 각자의 워드 라인에 대응하는 특성화 벡터를 업데이트한다. 대안적으로, 각자의 워드 라인에 대한 저장 밀도가 감소된 저장 밀도를 명시하는 미리 정의된 특성화 벡터를 각자의 워드 라인과 연관시키는 것에 의해 감소된다. 이 예를 계속하면, 각자의 워드 라인에 대응하는 특성화 벡터의 저장 밀도 필드(252) 내의 이전 값은 각자의 워드 라인에 있는 메모리 셀들이 X2 메모리 셀들로서 구성되었다는 것을 나타낸 반면, 각자의 워드 라인에 대응하는 특성화 벡터의 저장 밀도 필드(252) 내의 조절된 값은 각자의 워드 라인에 있는 메모리 셀들이 X1 메모리 셀들로서 구성되어 있다는 것을 나타낸다.
일부 실시예에서, 각자의 워드 라인에 대응하는 각자의 구성 파라미터 세트 내의 제2 파라미터를 조절한 후에, 메모리 제어기는 복수의 워드 라인들의 각자의 워드 라인에 관한 미리 정의된 폐기 조건을 검출한다(1124). 일부 실시예에서, 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 트리거 검출 모듈(230))는, 각자의 워드 라인이 미리 정의된 저장 밀도로 구성되고 각자의 워드 라인과 연관된 하나 이상의 상태 메트릭들이 하나 이상의 미리 정의된 기준들을 충족시킨다는 결정에 따라, 각자의 워드 라인에 관한 미리 정의된 폐기 조건을 검출한다. 예를 들어, 워드 라인에 있는 메모리 셀들이 X1 메모리 셀들(예컨대, SLC)로서 구성되고, 각자의 워드 라인에 대한 PE 카운트가 미리 결정된 카운트를 초과하거나 각자의 워드 라인의 페이지들로부터 읽혀진 데이터에 대한 BER이 미리 결정된 문턱값을 초과할 때, 트리거 검출 모듈(230)은 각자의 워드 라인에 관한 폐기 조건을 검출한다.
일부 실시예에서, 복수의 워드 라인들의 각자의 워드 라인에 관한 미리 정의된 폐기 조건을 검출한 것에 응답하여, 메모리 제어기는 각자의 워드 라인을 폐기시키고(1126), 여기서 후속 데이터가 각자의 워드 라인에 쓰여지지 않는다. 일부 실시예에서, 메모리 제어기(120) 또는 그의 컴포넌트(예컨대, 도 2a의 조절 모듈(232))는 폐기 조건을 검출한 것에 응답하여 저장 밀도 필드(252)의 값을 조절하는 것에 의해 각자의 워드 라인에 대응하는 특성화 벡터를 업데이트한다. 이 예를 계속하면, 각자의 워드 라인에 대응하는 특성화 벡터의 저장 밀도 필드(252) 내의 이전 값은 각자의 워드 라인에 있는 메모리 셀들이 X1 메모리 셀들(예컨대, SLC)로서 구성되었다는 것을 나타낸 반면, 각자의 워드 라인에 대응하는 특성화 벡터의 저장 밀도 필드(252) 내의 조절된 값은 각자의 워드 라인에 있는 메모리 셀들이 X0으로서 구성되어 있다는 것을 나타낸다. 대안적으로, 각자의 워드 라인에 대한 저장 밀도가 X0 저장 밀도를 명시하는 미리 정의된 특성화 벡터를 각자의 워드 라인과 연관시키는 것에 의해 X0로 변경된다. 일부 실시예에서, X0으로서 구성된 메모리 셀이 폐기되거나 읽기 전용 메모리로서 사용되고, 메모리 셀이 추가의 프로그래밍을 위해 이용가능하지 않다.
반도체 메모리 디바이스들은 DRAM(dynamic random access memory) 또는 SRAM(static random access memory) 디바이스들과 같은 휘발성 메모리 디바이스들, ReRAM(resistive random access memory), EEPROM(electrically erasable programmable read only memory), 플래시 메모리(EEPROM의 서브셋으로 간주될 수도 있음), FRAM(ferroelectric random access memory), 및 MRAM(magnetoresistive random access memory)과 같은 비휘발성 메모리 디바이스들, 그리고 정보를 저장할 수 있는 다른 반도체 요소들을 포함한다. 각각의 유형의 메모리 디바이스는 상이한 구성들을 가질 수 있다. 예를 들어, 플래시 메모리 디바이스들은 NAND 또는 NOR 구성으로 구성될 수 있다.
메모리 디바이스들은, 임의의 조합으로, 수동 및/또는 능동 요소들로 형성될 수 있다. 비제한적인 예로서, 수동 반도체 메모리 요소들은, 일부 실시예에서, 안티퓨즈(anti-fuse), 상변화 재료 등과 같은, 저항률 스위칭 저장 요소(resistivity switching storage element) 그리고, 임의로, 다이오드 등과 같은, 조정 요소(steering element)를 포함하는, ReRAM 디바이스 요소들을 포함한다. 게다가 비제한적인 예로서, 능동 반도체 메모리 요소들은, 일부 실시예에서, 부유 게이트, 전도성 나노입자들, 또는 전하 저장 유전체 재료와 같은 전하 저장 영역을 포함하는 요소들을 포함하는, EEPROM 및 플래시 메모리 디바이스 요소들을 포함한다.
다수의 메모리 요소들은 직렬로 연결되도록 또는 각각의 요소가 개별적으로 액세스가능하도록 구성될 수 있다. 비제한적인 예로서, NAND 구성으로 된 플래시 메모리 디바이스들(NAND 메모리)은 전형적으로 직렬로 연결된 메모리 요소들을 포함한다. NAND 메모리 어레이는 어레이가 다수의 메모리 스트링(string of memory)들로 이루어지도록 구성될 수 있고, 여기서 스트링은 단일의 비트 라인(bit line)을 공유하고 그룹으로서 액세스되는 다수의 메모리 요소들로 이루어져 있다. 대안적으로, 메모리 요소들은 각각의 요소가 개별적으로 액세스가능하도록 구성될 수 있다(예컨대, NOR 메모리 어레이). NAND 및 NOR 메모리 구성들은 예시적인 것이고, 메모리 요소들이 다른 방식으로 구성될 수 있다.
기판 내에 및/또는 그 상에 위치된 반도체 메모리 요소들이, 2차원 메모리 구조 또는 3차원 메모리 구조와 같이, 2차원 또는 3차원으로 배열될 수 있다.
2차원 메모리 구조에서, 반도체 메모리 요소들은 단일의 평면 또는 단일의 메모리 디바이스 레벨에 배열된다. 전형적으로, 2차원 메모리 구조에서, 메모리 요소들은 메모리 요소들을 지지하는 기판의 주 표면에 실질적으로 평행하게 연장되는 평면에(예컨대, x-z 방향 평면에) 배열된다. 기판은 웨이퍼일 수 있거나 - 웨이퍼 상에 또는 웨이퍼 내에 메모리 요소들의 층이 형성됨 -, 메모리 요소들이 형성된 후에 메모리 요소들에 부착되는 캐리어 기판(carrier substrate)일 수 있다. 비제한적인 예로서, 기판은 실리콘과 같은 반도체를 포함할 수 있다.
메모리 요소들은 정렬된 어레이(ordered array)로 - 예컨대, 복수의 행들 및/또는 열들로 - 단일의 메모리 디바이스 레벨에 배열될 수 있다. 그렇지만, 메모리 요소들은 비규칙적 또는 비직교적 구성들로 배열될 수 있다. 메모리 요소들 각각은 2개 이상의 전극들 또는, 비트 라인들 및 워드 라인들과 같은, 콘택 라인들(contact line)을 가질 수 있다.
3차원 메모리 어레이는 메모리 요소들이 다수의 평면들 또는 다수의 메모리 디바이스 레벨들을 차지함으로써, 구조물을 3차원으로(즉, x, y 및 z 방향으로, 여기서 y 방향은 기판의 주 표면에 실질적으로 수직이고 x 방향 및 z 방향은 그에 실질적으로 평행함) 형성하도록 배열된다.
비제한적인 예로서, 3차원 메모리 구조는 다수의 2차원 메모리 디바이스 레벨들의 스택으로서 수직으로 배열될 수 있다. 다른 비제한적인 예로서, 3차원 메모리 어레이는 다수의 수직 열들(예컨대, 기판의 주 표면에 실질적으로 수직으로, 즉 y 방향으로 연장되는 열들) - 각각의 열은 각각의 열에 다수의 메모리 요소들을 가짐 - 로서 배열될 수 있다. 열들이 2차원 구성으로(예컨대, x-z 평면에) 배열될 수 있고, 그 결과 다수의 수직으로 적층된 메모리 평면들 상에 요소들을 갖는 메모리 요소들의 3차원 배열이 얻어진다. 3차원으로 된 메모리 요소들의 다른 구성들이 또한 3차원 메모리 어레이를 구성할 수 있다.
비제한적인 예로서, 3차원 NAND 메모리 어레이에서, 메모리 요소들이 단일의 수평(예컨대, x-z) 메모리 디바이스 레벨 내에 NAND 스트링을 형성하기 위해 서로 결합될 수 있다. 대안적으로, 메모리 요소들이 다수의 수평 메모리 디바이스 레벨들에 걸쳐 횡단하는 수직 NAND 스트링을 형성하기 위해 서로 결합될 수 있다. 일부 NAND 스트링들은 단일의 메모리 레벨에 있는 메모리 요소들을 포함하는 반면 다른 스트링들은 다수의 메모리 레벨들을 통해 걸쳐 있는 메모리 요소들을 포함하는 다른 3차원 구성들이 생각될 수 있다. 3차원 메모리 어레이들이 또한 NOR 구성으로 그리고 ReRAM 구성으로 설계될 수 있다.
전형적으로 모놀리식 3차원 메모리 어레이에서, 하나 이상의 메모리 디바이스 레벨들이 단일의 기판 위쪽에 형성된다. 임의로, 모놀리식 3차원 메모리 어레이는 또한 적어도 부분적으로 단일의 기판 내에 하나 이상의 메모리 층들을 가질 수 있다. 비제한적인 예로서, 기판은 실리콘과 같은 반도체를 포함할 수 있다. 모놀리식 3차원 어레이에서, 어레이의 각각의 메모리 디바이스 레벨을 구성하는 층들은 어레이의 아래에 있는 메모리 디바이스 레벨들의 층들 상에 형성된다. 그렇지만, 모놀리식 3차원 메모리 어레이의 인접한 메모리 디바이스 레벨들의 층들은 공유되거나 메모리 디바이스 레벨들 사이에 중간 층들을 가질 수 있다.
이어서 다시 말하지만, 2차원 어레이들이 개별적으로 형성된 다음에, 다수의 메모리 층들을 가지는 비모놀리식 메모리 디바이스를 형성하기 위해 하나로 패키징될 수 있다. 예를 들어, 메모리 레벨들을 개별 기판들 상에 형성하고 이어서 메모리 레벨들을 서로의 위에 적층시키는 것에 의해 비모놀리식 적층형 메모리들이 구성될 수 있다. 기판들이 적층 이전에 박형화되거나 메모리 디바이스 레벨들로부터 제거될 수 있지만, 메모리 디바이스 레벨들이 처음에 개별 기판들 상에 형성되기 때문에, 그 결과 얻어진 메모리 어레이들은 모놀리식 3차원 메모리 어레이들이 아니다. 게다가, 적층형 칩 메모리 디바이스를 형성하기 위해, 다수의 2차원 메모리 어레이들 또는 3차원 메모리 어레이들(모놀리식 또는 비모놀리식)이 개별 칩들 상에 형성되고 이어서 하나로 패키징될 수 있다.
메모리 요소들의 동작을 위해 그리고 메모리 요소들과의 통신을 위해 연관된 회로부가 전형적으로 필요하게 된다. 비제한적인 예로서, 메모리 디바이스들은 프로그래밍 및 읽기와 같은 기능들을 달성하기 위해 메모리 요소들을 제어하고 구동하는 데 사용되는 회로부를 가질 수 있다. 이 연관된 회로부는 메모리 요소들과 동일한 기판 상에 그리고/또는 별개의 기판 상에 있을 수 있다. 예를 들어, 메모리 읽기-쓰기 동작들을 위한 제어기는 별개의 제어기 칩 상에 그리고/또는 메모리 요소들과 동일한 기판 상에 위치될 수 있다.
"3차원 메모리 디바이스"(또는 3D 메모리 디바이스)라는 용어는, 모놀리식 또는 비모놀리식 3D 메모리 어레이를 가지는 메모리 디바이스 - 그의 몇몇 비제한적인 예가 앞서 기술되어 있음 - ; 또는 적층형 칩 메모리 디바이스를 형성하기 위해 하나로 패키징되는 2 개 이상의 2D 및/또는 3D 메모리 디바이스들 - 그의 몇몇 비제한적인 예가 앞서 기술되어 있음 - 중 임의의 것을 포함하는, 다수의 메모리 요소 층들 또는 다수의 메모리 요소 레벨들(예컨대, 때때로 다수의 메모리 레벨들이라고 불리움)을 가지는 메모리 디바이스를 의미하는 것으로 본원에서 정의된다.
본 기술 분야의 통상의 기술자는 본원에 기술되고 청구되는 본 발명 또는 발명들이 본원에 기술되는 예시적인 2차원 및 3차원 구조로 제한되지 않고, 그 대신에 본원에 기술되는 바와 같이 그리고 본 기술 분야의 통상의 기술자에 의해 이해되는 바와 같이 본 발명 또는 발명들을 구현하는 데 적당한 모든 관련 메모리 구조를 포함한다는 것을 알 것이다.
비록 "제1", "제2" 등과 같은 용어들이 본원에서 다양한 요소들을 기술하는 데 사용될 수 있지만, 이 요소들이 이 용어들에 의해 제한되어서는 안된다는 것을 이해할 것이다. 이 용어들은 하나의 요소를 다른 요소와 구별하는 데만 사용된다. 예를 들어, 제1 트리거 조건은 제2 트리거 조건이라고 지칭될 수 있고, 이와 유사하게, 제2 트리거 조건이 제1 트리거 조건이라고 지칭될 수 있으며, "제1 트리거 조건"이라고 나오는 모든 것이 일관되게 명칭 변경되고 "제2 트리거 조건"이라고 나오는 모든 것이 일관되게 명칭 변경되는 한, 본 설명의 의미를 변화시키지 않는다. 제1 트리거 조건 및 제2 트리거 조건 둘 다는 트리거 조건이지만, 그들이 동일한 트리거 조건은 아니다.
본원에서 사용되는 용어가 특정의 실시예들을 설명하기 위한 것에 불과하고 청구항들을 제한하는 것으로 의도되어 있지 않다. 실시예들의 설명 및 첨부된 청구항들에서 사용되는 바와 같이, 단수 형태 "어떤", "한" 및 "그"는, 문맥이 명확하게 달리 나타내지 않는 한, 복수 형태도 포함하는 것으로 의도되어 있다. 용어 "및/또는"이, 본원에서 사용되는 바와 같이, 열거된 관련 항목들 중 하나 이상의 항목들의 모든 가능한 조합들을 지칭하고 포괄한다는 것도 잘 알 것이다. 용어 "포함한다" 및/또는 "포함하는"이, 본 명세서에서 사용될 때, 언급된 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 컴포넌트들의 존재를 명시하는 것이고 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 컴포넌트들 및/또는 이들의 그룹들의 존재 또는 추가를 배제하지 않는다는 것도 추가로 잘 알 것이다.
본원에서 사용되는 바와 같이, "~이면"이라는 용어는, 문맥에 따라, 서술된 선행 조건(condition precedent)이 참(true)"일 때" 또는 "그러할 시에" 또는 "그렇다고 결정한 것에 응답하여" 또는 "그렇다는 결정에 따라" 또는 "그렇다고 검출한 것에 응답하여"를 의미하는 것으로 해석될 수 있다. 이와 유사하게, "[서술된 선행 조건이 참]이라고 결정되면" 또는 "[서술된 선행 조건이 참]이면" 또는 "[서술된 선행 조건이 참]일 때"라는 문구는, 문맥에 따라, 서술된 선행 조건이 참"이라고 결정할 시에" 또는 "그렇다고 결정한 것에 응답하여" 또는 "그렇다는 결정에 따라" 또는 "그렇다고 검출할 시에" 또는 "그렇다고 검출한 것에 응답하여"를 의미하는 것으로 해석될 수 있다.
이상의 기재는, 설명을 위해, 특정 구현들을 참조하여 기술되었다. 그렇지만, 이상의 예시적인 논의는 총망라한 것으로도 의도되어 있지 않고 청구항들을 개시된 정확한 형태들로 제한하는 것으로도 의도되어 있지 않다. 이상의 교시내용을 바탕으로 많은 수정들 및 변형들이 가능하다. 동작 원리 및 실제 응용 분야를 본 기술 분야의 다른 통상의 기술자가 실시할 수 있도록 가장 잘 설명하기 위해 구현들이 선택되고 기술되었다.

Claims (27)

  1. 다수의 메모리 셀 블록들 - 각각의 블록은 저장 디바이스의 기판에 대해 상이한 수직 위치들에 배열된 복수의 워드 라인들을 포함함 - 을 포함하는 3차원 비휘발성 메모리 셀 어레이를 포함하는 저장 디바이스에서의 동작 방법으로서,
    상기 다수의 블록들의 각자의 블록에 대해,
    상기 각자의 블록에 대응하는 상기 복수의 워드 라인들을 제1 구성으로 구성하는 동작 - 상기 제1 구성은 상기 저장 디바이스의 상기 기판에 대한 각각의 워드 라인의 상기 수직 위치들에서 적어도 부분적으로 결정된 상기 복수의 워드 라인들의 각각의 워드 라인에 대한 각자의 구성 파라미터 세트를 포함하고, 상기 수직 위치들에서 적어도 부분적으로 결정된 상기 각자의 구성 파라미터 세트는 각자의 워드 라인에 대응하는 제1 파라미터를 포함함 -;
    상기 복수의 워드 라인들이 상기 제1 구성에 따라 구성되어 있는 동안, 상기 각자의 블록에 데이터를 쓰고 상기 각자의 블록으로부터 데이터를 읽는 동작;
    상기 복수의 워드 라인들의 각자의 워드 라인에 관한 제1 트리거 조건을 검출하는 것에 응답하여, 상기 각자의 워드 라인에 대응하는 상기 각자의 구성 파라미터 세트 내의 상기 제1 파라미터를 조절하는 동작 - 상기 제1 파라미터를 조절하는 동작은 상기 각자의 워드 라인의 메모리 셀들에 저장된 데이터의 저장 밀도를 감소시키는 동작을 포함함 -; 및
    상기 각자의 워드 라인에 대응하는 상기 각자의 구성 파라미터 세트 내의 상기 제1 파라미터를 조절한 후에, 상기 각자의 워드 라인에 데이터를 쓰고 상기 각자의 워드 라인으로부터 데이터를 읽는 동작
    을 포함하는 동작들을 수행하는 단계를 포함하고,
    상기 제1 구성에 있는 동안:
    상기 수직 위치들의 제1 인접 서브셋에 있는, 상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 제1 서브셋은 데이터를 제1 저장 밀도로 저장하도록 구성되고 - 상기 제1 저장 밀도는 메모리 셀당 B 비트들을 저장하는 것에 대응하고, 미리 정의된 비트 수 B는 0보다 큼 -; 그리고
    상기 수직 위치들의 제2 인접 서브셋에 있는, 상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 제2 서브셋은 데이터를 제2 저장 밀도로 저장하도록 구성되고 - 상기 제2 저장 밀도는 메모리 셀당 M 비트들을 저장하는 것에 대응하고, M은 0보다 크고 M은 B보다 작음 -,
    상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 상기 제2 서브셋에 대응하는 상기 수직 위치들의 상기 제2 인접 서브셋은 상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 상기 제1 서브셋에 대응하는 상기 수직 위치들의 상기 제1 인접 서브셋보다 상기 저장 디바이스의 상기 기판에 더 가까운, 방법.
  2. 제1항에 있어서,
    상기 각자의 블록에 대해:
    상기 각자의 워드 라인에 대응하는 상기 각자의 구성 파라미터 세트 내의 상기 제1 파라미터를 조절한 후에, 상기 복수의 워드 라인들의 상기 각자의 워드 라인에 관한 제2 트리거 조건을 검출하는 단계 - 상기 제2 트리거 조건은 상기 제1 트리거 조건과 상이함 -; 및
    상기 복수의 워드 라인들의 상기 각자의 워드 라인에 관한 상기 제2 트리거 조건을 검출하는 것에 응답하여, 상기 각자의 워드 라인에 대응하는 상기 각자의 구성 파라미터 세트 내의 제2 파라미터를 조절하는 단계 - 상기 제2 파라미터는 상기 제1 파라미터와 상이함 - 를 더 포함하는, 방법.
  3. 제2항에 있어서,
    상기 각자의 워드 라인에 대응하는 상기 각자의 구성 파라미터 세트 내의 상기 제2 파라미터를 조절한 후에, 상기 복수의 워드 라인들의 상기 각자의 워드 라인에 관한 미리 정의된 폐기 조건을 검출하는 단계; 및
    상기 복수의 워드 라인들의 상기 각자의 워드 라인에 관한 상기 미리 정의된 폐기 조건을 검출하는 것에 응답하여, 상기 각자의 워드 라인을 폐기하는 단계 - 후속 데이터가 상기 각자의 워드 라인에 쓰여지지 않음 - 를 더 포함하는, 방법.
  4. 제1항에 있어서, 상기 각자의 구성 파라미터 세트는 저장 밀도, ECC 인코딩 강도, 및 하나 이상의 프로그래밍 파라미터들 중 적어도 하나를 포함하는, 방법.
  5. 제1항에 있어서,
    상기 각자의 블록에 대응하는 상기 복수의 워드 라인들 각각에 대한 하나 이상의 상태 메트릭들을 유지하는 단계를 더 포함하는, 방법.
  6. 제5항에 있어서,
    상기 복수의 워드 라인들의 상기 각자의 워드 라인에 대한 상기 하나 이상의 상태 메트릭들 중 하나가 하나 이상의 미리 정의된 기준들을 충족시킨다는 결정에 따라, 상기 각자의 워드 라인에 관한 상기 제1 트리거 조건을 검출하는 단계를 더 포함하는, 방법.
  7. 제1항에 있어서,
    상기 각자의 블록의 상기 각자의 워드 라인에 관한 커맨드를 수신하는 단계; 및
    상기 커맨드를 수신한 것에 응답하여, 상기 각자의 워드 라인에 관한 상기 제1 트리거 조건을 검출하는 단계를 더 포함하는, 방법.
  8. 삭제
  9. 삭제
  10. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 제1 구성에 있는 동안:
    상기 수직 위치들의 제1 인접 서브셋에 있는, 상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 제1 서브셋은 제1 ECC 인코딩 강도로 인코딩된 데이터를 저장하도록 구성되고;
    상기 수직 위치들의 제2 인접 서브셋에 있는, 상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 제2 서브셋은 상기 제1 ECC 인코딩 강도보다 더 큰 제2 ECC 인코딩 강도로 인코딩된 데이터를 저장하도록 구성되는, 방법.
  11. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 제1 구성에 있는 동안:
    상기 수직 위치들의 제1 인접 서브셋에 있는, 상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 제1 서브셋은 하나 이상의 프로그래밍 파라미터들의 제1 세트에 따라 데이터를 저장하도록 구성되고;
    상기 수직 위치들의 제2 인접 서브셋에 있는, 상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 제2 서브셋은 하나 이상의 프로그래밍 파라미터들의 제2 세트에 따라 데이터를 저장하도록 구성되는, 방법.
  12. 제11항에 있어서, 상기 하나 이상의 프로그래밍 파라미터들의 제2 세트는 상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 상기 제2 서브셋에 있는 메모리 셀들을 상기 하나 이상의 프로그래밍 파라미터들의 제1 세트보다 더 많은 양의 스트레스에 노출시키는, 방법.
  13. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 복수의 워드 라인들은 상기 저장 디바이스의 상기 기판에 대해 X개의 개별 수직 위치들의 각각의 수직 위치에 있는 워드 라인들의 세트를 포함하고, X는 2보다 큰 정수인, 방법.
  14. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 저장 디바이스는 하나 이상의 3차원(3D) 메모리 디바이스 - 하나 이상의 3D 메모리 디바이스 각각은 메모리 셀들의 3D 어레이를 가짐 - 및 상기 하나 이상의 3D 메모리 디바이스 내의 메모리 소자들의 동작과 관련된 회로를 포함하는, 방법.
  15. 제14항에 있어서, 상기 회로 및 상기 하나 이상의 3D 메모리 디바이스의 각자의 3D 메모리 디바이스 내의 하나 이상의 메모리 소자들은 동일한 기판 상에 있는, 방법.
  16. 저장 시스템으로서,
    다수의 메모리 셀 블록들 - 각각의 블록은 저장 디바이스의 기판에 대해 상이한 수직 위치들에 배열된 복수의 워드 라인들을 포함함 - 을 포함하는 3차원 비휘발성 메모리 셀 어레이를 포함하는 상기 저장 디바이스; 및
    하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 하나 이상의 프로그램을 저장하는 메모리를 갖는 메모리 제어기
    를 포함하고,
    상기 하나 이상의 프로그램은:
    상기 다수의 블록들의 각자의 블록에 대해,
    상기 각자의 블록에 대응하는 상기 복수의 워드 라인들을 제1 구성으로 구성하는 동작 - 상기 제1 구성은 상기 저장 디바이스의 상기 기판에 대한 각각의 워드 라인의 상기 수직 위치들에서 적어도 부분적으로 결정된 상기 복수의 워드 라인들의 각각의 워드 라인에 대한 각자의 구성 파라미터 세트를 포함하고, 상기 수직 위치들에서 적어도 부분적으로 결정된 상기 각자의 구성 파라미터 세트는 각자의 워드 라인에 대응하는 제1 파라미터를 포함함 -;
    상기 복수의 워드 라인들이 상기 제1 구성에 따라 구성되어 있는 동안, 상기 각자의 블록에 데이터를 쓰고 상기 각자의 블록으로부터 데이터를 읽는 동작;
    상기 복수의 워드 라인들의 각자의 워드 라인에 관한 제1 트리거 조건을 검출하는 것에 응답하여, 상기 각자의 워드 라인에 대응하는 상기 각자의 구성 파라미터 세트 내의 상기 제1 파라미터를 조절하는 동작 - 상기 제1 파라미터를 조절하는 동작은 상기 각자의 워드 라인의 메모리 셀들에 저장된 데이터의 저장 밀도를 감소시키는 동작을 포함함 -; 및
    상기 각자의 워드 라인에 대응하는 상기 각자의 구성 파라미터 세트 내의 상기 제1 파라미터를 조절한 후에, 상기 각자의 워드 라인에 데이터를 쓰고 상기 각자의 워드 라인으로부터 데이터를 읽는 동작
    을 포함하는 동작들을 수행하기 위한 명령어들을 포함하고,
    상기 제1 구성에 있는 동안:
    상기 수직 위치들의 제1 인접 서브셋에 있는, 상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 제1 서브셋은 데이터를 제1 저장 밀도로 저장하도록 구성되고 - 상기 제1 저장 밀도는 메모리 셀당 B 비트들을 저장하는 것에 대응하고, 미리 정의된 비트 수 B는 0보다 큼 -; 그리고
    상기 수직 위치들의 제2 인접 서브셋에 있는, 상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 제2 서브셋은 데이터를 제2 저장 밀도로 저장하도록 구성되고 - 상기 제2 저장 밀도는 메모리 셀당 M 비트들을 저장하는 것에 대응하고, M은 0보다 크고 M은 B보다 작음 -,
    상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 상기 제2 서브셋에 대응하는 상기 수직 위치들의 상기 제2 인접 서브셋은 상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 상기 제1 서브셋에 대응하는 상기 수직 위치들의 상기 제1 인접 서브셋보다 상기 저장 디바이스의 상기 기판에 더 가까운, 저장 시스템.
  17. 제16항에 있어서, 상기 하나 이상의 프로그램은,
    상기 각자의 블록에 대해:
    상기 각자의 워드 라인에 대응하는 상기 각자의 구성 파라미터 세트 내의 상기 제1 파라미터를 조절한 후에, 상기 복수의 워드 라인들의 상기 각자의 워드 라인에 관한 제2 트리거 조건을 검출하고 - 상기 제2 트리거 조건은 상기 제1 트리거 조건과 상이함 -; 그리고
    상기 복수의 워드 라인들의 상기 각자의 워드 라인에 관한 상기 제2 트리거 조건을 검출하는 것에 응답하여, 상기 각자의 워드 라인에 대응하는 상기 각자의 구성 파라미터 세트 내의 제2 파라미터를 조절 - 상기 제2 파라미터는 상기 제1 파라미터와 상이함 -
    하기 위한 명령어들을 더 포함하는, 저장 시스템.
  18. 제17항에 있어서, 상기 하나 이상의 프로그램은,
    상기 각자의 워드 라인에 대응하는 상기 각자의 구성 파라미터 세트 내의 상기 제2 파라미터를 조절한 후에, 상기 복수의 워드 라인들의 상기 각자의 워드 라인에 관한 미리 정의된 폐기 조건을 검출하고; 그리고
    상기 복수의 워드 라인들의 상기 각자의 워드 라인에 관한 상기 미리 정의된 폐기 조건을 검출하는 것에 응답하여, 상기 각자의 워드 라인을 폐기 - 후속 데이터가 상기 각자의 워드 라인에 쓰여지지 않음 -
    하기 위한 명령어들을 더 포함하는, 저장 시스템.
  19. 제16항 내지 제18항 중 어느 한 항에 있어서, 상기 하나 이상의 프로그램은상기 각자의 블록에 대응하는 상기 복수의 워드 라인들 각각에 대한 하나 이상의 상태 메트릭들을 유지하기 위한 명령어들을 더 포함하는, 저장 시스템.
  20. 제19항에 있어서, 상기 하나 이상의 프로그램은 상기 복수의 워드 라인들의 상기 각자의 워드 라인에 대한 상기 하나 이상의 상태 메트릭들 중 하나가 하나 이상의 미리 정의된 기준들을 충족시킨다는 결정에 따라, 상기 각자의 워드 라인에 관한 상기 제1 트리거 조건을 검출하기 위한 명령어들을 더 포함하는, 저장 시스템.
  21. 하나 이상의 프로그램을 저장하는 비-일시적 컴퓨터 판독가능 저장 매체로서,
    상기 하나 이상의 프로그램은 명령어들을 포함하고, 상기 명령어들은 하나 이상의 프로세서를 갖는 메모리 제어기에 의해 실행되는 경우, 상기 메모리 제어기로 하여금:
    다수의 메모리 셀 블록들 - 각각의 블록은 저장 디바이스의 기판에 대해 상이한 수직 위치들에 배열된 복수의 워드 라인들을 포함함 - 을 포함하는 3차원 비휘발성 메모리 셀 어레이를 포함하고, 상기 메모리 제어기에 결합된, 저장 디바이스의 각자의 블록에 대하여,
    상기 각자의 블록에 대응하는 상기 복수의 워드 라인들을 제1 구성으로 구성하는 동작 - 상기 제1 구성은 상기 저장 디바이스의 상기 기판에 대한 각각의 워드 라인의 상기 수직 위치들에서 적어도 부분적으로 결정된 상기 복수의 워드 라인들의 각각의 워드 라인에 대한 각자의 구성 파라미터 세트를 포함하고, 상기 수직 위치들에서 적어도 부분적으로 결정된 상기 각자의 구성 파라미터 세트는 각자의 워드 라인에 대응하는 제1 파라미터를 포함함 -;
    상기 복수의 워드 라인들이 상기 제1 구성에 따라 구성되어 있는 동안, 상기 각자의 블록에 데이터를 쓰고 상기 각자의 블록으로부터 데이터를 읽는 동작;
    상기 복수의 워드 라인들의 각자의 워드 라인에 관한 제1 트리거 조건을 검출하는 것에 응답하여, 상기 각자의 워드 라인에 대응하는 상기 각자의 구성 파라미터 세트 내의 상기 제1 파라미터를 조절하는 동작 - 상기 제1 파라미터를 조절하는 동작은 상기 각자의 워드 라인의 메모리 셀들에 저장된 데이터의 저장 밀도를 감소시키는 동작을 포함함 -; 및
    상기 각자의 워드 라인에 대응하는 상기 각자의 구성 파라미터 세트 내의 상기 제1 파라미터를 조절한 후에, 상기 각자의 워드 라인에 데이터를 쓰고 상기 각자의 워드 라인으로부터 데이터를 읽는 동작
    을 포함하는 동작들을 수행하게 하고,
    상기 제1 구성에 있는 동안:
    상기 수직 위치들의 제1 인접 서브셋에 있는, 상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 제1 서브셋은 데이터를 제1 저장 밀도로 저장하도록 구성되고 - 상기 제1 저장 밀도는 메모리 셀당 B 비트들을 저장하는 것에 대응하고, 미리 정의된 비트 수 B는 0보다 큼 -; 그리고
    상기 수직 위치들의 제2 인접 서브셋에 있는, 상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 제2 서브셋은 데이터를 제2 저장 밀도로 저장하도록 구성되고 - 상기 제2 저장 밀도는 메모리 셀당 M 비트들을 저장하는 것에 대응하고, M은 0보다 크고 M은 B보다 작음 -,
    상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 상기 제2 서브셋에 대응하는 상기 수직 위치들의 상기 제2 인접 서브셋은 상기 각자의 블록에 대응하는 상기 복수의 워드 라인들의 상기 제1 서브셋에 대응하는 상기 수직 위치들의 상기 제1 인접 서브셋보다 상기 저장 디바이스의 상기 기판에 더 가까운, 하나 이상의 프로그램을 저장하는 비-일시적 컴퓨터 판독가능 저장 매체.
  22. 제21항에 있어서,
    상기 명령어들은 상기 메모리 제어기로 하여금,
    상기 각자의 블록에 대해:
    상기 각자의 워드 라인에 대응하는 상기 각자의 구성 파라미터 세트 내의 상기 제1 파라미터를 조절한 후에, 상기 복수의 워드 라인들의 상기 각자의 워드 라인에 관한 제2 트리거 조건을 검출하는 동작 - 상기 제2 트리거 조건은 상기 제1 트리거 조건과 상이함 -; 및
    상기 복수의 워드 라인들의 상기 각자의 워드 라인에 관한 상기 제2 트리거 조건을 검출하는 것에 응답하여, 상기 각자의 워드 라인에 대응하는 상기 각자의 구성 파라미터 세트 내의 제2 파라미터를 조절하는 동작 - 상기 제2 파라미터는 상기 제1 파라미터와 상이함 -
    을 더 포함하는 동작들을 수행하게 하는, 하나 이상의 프로그램을 저장하는 비-일시적 컴퓨터 판독가능 저장 매체.
  23. 제22항에 있어서, 상기 명령어들은 상기 메모리 제어기로 하여금,
    상기 각자의 워드 라인에 대응하는 상기 각자의 구성 파라미터 세트 내의 상기 제2 파라미터를 조절한 후에, 상기 복수의 워드 라인들의 상기 각자의 워드 라인에 관한 미리 정의된 폐기 조건을 검출하는 동작; 및
    상기 복수의 워드 라인들의 상기 각자의 워드 라인에 관한 상기 미리 정의된 폐기 조건을 검출하는 것에 응답하여, 상기 각자의 워드 라인을 폐기하는 동작 - 후속 데이터가 상기 각자의 워드 라인에 쓰여지지 않음 -
    을 더 포함하는 동작들을 수행하게 하는, 하나 이상의 프로그램을 저장하는 비-일시적 컴퓨터 판독가능 저장 매체.
  24. 제21항 내지 제23항 중 어느 한 항에 있어서,
    상기 명령어들은 상기 메모리 제어기로 하여금, 상기 각자의 블록에 대응하는 상기 복수의 워드 라인들 각각에 대한 하나 이상의 상태 메트릭들을 유지하는 동작을 더 포함하는 동작들을 수행하게 하는, 하나 이상의 프로그램을 저장하는 비-일시적 컴퓨터 판독가능 저장 매체.
  25. 제24항에 있어서, 상기 명령어들은 상기 메모리 제어기로 하여금, 상기 복수의 워드 라인들의 상기 각자의 워드 라인에 대한 상기 하나 이상의 상태 메트릭들 중 하나가 하나 이상의 미리 정의된 기준들을 충족시킨다는 결정에 따라, 상기 각자의 워드 라인에 관한 상기 제1 트리거 조건을 검출하는 동작을 더 포함하는 동작들을 수행하게 하는, 하나 이상의 프로그램을 저장하는 비-일시적 컴퓨터 판독가능 저장 매체.
  26. 삭제
  27. 삭제
KR1020167036803A 2014-05-30 2015-05-14 3차원 메모리 디바이스의 동적 워드 라인 기반 구성을 위한 방법 및 시스템 KR101995624B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462005930P 2014-05-30 2014-05-30
US62/005,930 2014-05-30
US14/298,841 US8891303B1 (en) 2014-05-30 2014-06-06 Method and system for dynamic word line based configuration of a three-dimensional memory device
US14/298,841 2014-06-06
PCT/US2015/030851 WO2015183581A1 (en) 2014-05-30 2015-05-14 Method and system for dynamic word line based configuration of a three-dimensional memory device

Publications (2)

Publication Number Publication Date
KR20170012462A KR20170012462A (ko) 2017-02-02
KR101995624B1 true KR101995624B1 (ko) 2019-07-02

Family

ID=51870172

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167036803A KR101995624B1 (ko) 2014-05-30 2015-05-14 3차원 메모리 디바이스의 동적 워드 라인 기반 구성을 위한 방법 및 시스템

Country Status (5)

Country Link
US (2) US8891303B1 (ko)
EP (1) EP3149744B1 (ko)
KR (1) KR101995624B1 (ko)
CN (1) CN106663043B (ko)
WO (1) WO2015183581A1 (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9183086B2 (en) 2013-06-03 2015-11-10 Sandisk Technologies Inc. Selection of data for redundancy calculation in three dimensional nonvolatile memory
US9177673B2 (en) * 2013-10-28 2015-11-03 Sandisk Technologies Inc. Selection of data for redundancy calculation by likely error rate
WO2016051599A1 (ja) * 2014-10-03 2016-04-07 株式会社日立製作所 メモリコントローラ及びデータ制御方法
US10579833B1 (en) * 2014-12-16 2020-03-03 Thales Esecurity, Inc. Tamper detection circuit assemblies and related manufacturing processes
US9786386B2 (en) 2015-02-27 2017-10-10 Microsoft Technology Licensing, Llc Dynamic approximate storage for custom applications
US10120753B2 (en) * 2015-05-26 2018-11-06 Micron Technology, Inc. Methods and apparatuses for error correction
KR102295528B1 (ko) * 2015-08-25 2021-08-30 삼성전자 주식회사 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법
US9916899B2 (en) * 2015-08-31 2018-03-13 Micron Technology, Inc. Storing information and updating management data in non-volatile memory
US9691473B2 (en) 2015-09-22 2017-06-27 Sandisk Technologies Llc Adaptive operation of 3D memory
US9401216B1 (en) 2015-09-22 2016-07-26 Sandisk Technologies Llc Adaptive operation of 3D NAND memory
US9548124B1 (en) 2015-10-14 2017-01-17 Sandisk Technologies Llc Word line dependent programming in a memory device
US10007462B1 (en) 2016-03-31 2018-06-26 EMC IP Holding Company LLC Method and system for adaptive data migration in solid state memory
CN111679787B (zh) 2016-04-27 2023-07-18 慧荣科技股份有限公司 闪存装置、闪存控制器及闪存存储管理方法
US10110255B2 (en) 2016-04-27 2018-10-23 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and memory device
CN107391296B (zh) 2016-04-27 2020-11-06 慧荣科技股份有限公司 存取闪存模块的方法及相关的闪存控制器与记忆装置
CN107391026B (zh) 2016-04-27 2020-06-02 慧荣科技股份有限公司 闪存装置及闪存存储管理方法
US10289487B2 (en) 2016-04-27 2019-05-14 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and memory device
US10019314B2 (en) 2016-04-27 2018-07-10 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
US10474370B1 (en) * 2016-05-20 2019-11-12 EMC IP Holding Company LLC Method and system for mitigating the effect of write and read disturbances in solid state memory regions
US10599342B2 (en) 2016-12-30 2020-03-24 EMC IP Holding Company LLC Method and system for offset mirroring in a storage system
US10416904B1 (en) 2016-12-30 2019-09-17 EMC IP Holding Company LLC Method and system for recovering storage object records in solid state memory
US10289550B1 (en) 2016-12-30 2019-05-14 EMC IP Holding Company LLC Method and system for dynamic write-back cache sizing in solid state memory storage
US10338983B2 (en) 2016-12-30 2019-07-02 EMC IP Holding Company LLC Method and system for online program/erase count estimation
US11069418B1 (en) 2016-12-30 2021-07-20 EMC IP Holding Company LLC Method and system for offline program/erase count estimation
JP2018160303A (ja) * 2017-03-23 2018-10-11 東芝メモリ株式会社 半導体記憶装置
US10324634B2 (en) 2017-04-07 2019-06-18 Micron Technology, Inc. Methods of bit-flagged sketch-based memory management and memory devices utilizing the same
US10379757B2 (en) 2017-04-07 2019-08-13 Micron Technology, Inc. Methods of sketch-based memory management and memory devices utilizing the same
US10403366B1 (en) * 2017-04-28 2019-09-03 EMC IP Holding Company LLC Method and system for adapting solid state memory write parameters to satisfy performance goals based on degree of read errors
US10290331B1 (en) 2017-04-28 2019-05-14 EMC IP Holding Company LLC Method and system for modulating read operations to support error correction in solid state memory
CN107527655A (zh) * 2017-09-12 2017-12-29 山东大学 一种闪存存储器混合读写方法及混合读写闪存存储器
KR102353405B1 (ko) * 2017-09-19 2022-01-19 삼성전자주식회사 특성 데이터 전처리 시스템, 장치, 방법 및 이를 이용한 메모리 제어 시스템
US10553285B2 (en) * 2017-11-28 2020-02-04 Western Digital Technologies, Inc. Single-port memory with opportunistic writes
KR102449346B1 (ko) * 2017-12-12 2022-10-04 삼성전자주식회사 메모리 장치의 내부 상태에 따라 메모리 컨트롤러의 동작을 가변하는 메모리 시스템
KR20220103205A (ko) 2017-12-29 2022-07-21 마이크론 테크놀로지, 인크. 정정 불가능 ecc
KR102421103B1 (ko) * 2018-01-04 2022-07-14 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 시스템 및 그것들의 동작 방법
KR102471276B1 (ko) * 2018-01-08 2022-11-28 삼성전자주식회사 메모리 장치
TWI647566B (zh) 2018-01-19 2019-01-11 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
US10643692B2 (en) 2018-03-02 2020-05-05 Sandisk Technologies Llc Adaptive programming voltage for non-volatile memory devices
CN109979508A (zh) 2019-03-15 2019-07-05 合肥沛睿微电子股份有限公司 固态硬盘装置与相关的固态硬盘控制电路
KR20200144389A (ko) 2019-06-18 2020-12-29 삼성전자주식회사 스토리지 장치 및 그것의 액세스 방법
KR102676339B1 (ko) 2019-07-03 2024-06-19 에스케이하이닉스 주식회사 메모리 장치의 동작 방법
KR20210025249A (ko) 2019-08-27 2021-03-09 삼성전자주식회사 메모리 시스템 및 그 동작 방법
US11069417B2 (en) 2019-08-27 2021-07-20 Samsung Electronics Co., Ltd. Memory system and method of operating the same
KR20210066630A (ko) * 2019-11-28 2021-06-07 삼성전자주식회사 스토리지 장치, 및 상기 스토리지 장치의 동작 방법
KR20210070761A (ko) * 2019-12-05 2021-06-15 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법
KR20210088916A (ko) * 2020-01-07 2021-07-15 에스케이하이닉스 주식회사 이전에 발생한 에러 분석을 통해 에러대응동작을 선택하기 위한 메모리 시스템 및 메모리 시스템을 포함하는 데이터 처리 시스템
CN112242157B (zh) * 2020-09-30 2022-08-09 杭州海康存储科技有限公司 数据读电压的确定方法、参数确定方法、装置及设备
US11923025B2 (en) * 2020-12-22 2024-03-05 Kioxia Corporation Generation of programming parameters for non-volatile memory device based on physical device parameters
US12112821B2 (en) 2021-06-21 2024-10-08 Seagate Technology Llc Read destructive memory wear leveling system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080159007A1 (en) * 2006-12-30 2008-07-03 Deepak Chandra Sekar Non-volatile storage with bias based on selected word line
US20110199833A1 (en) * 2010-02-17 2011-08-18 Samsung Electronics Co., Ltd. Non-volatile memory devices, operating methods thereof and memory systems including the same

Family Cites Families (250)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4916652A (en) 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US5416915A (en) 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
US5537555A (en) 1993-03-22 1996-07-16 Compaq Computer Corporation Fully pipelined and highly concurrent memory controller
US5519847A (en) 1993-06-30 1996-05-21 Intel Corporation Method of pipelining sequential writes in a flash memory
US5524231A (en) 1993-06-30 1996-06-04 Intel Corporation Nonvolatile memory card with an address table and an address translation logic for mapping out defective blocks within the memory card
US5708849A (en) 1994-01-26 1998-01-13 Intel Corporation Implementing scatter/gather operations in a direct memory access device on a personal computer
GB9419246D0 (en) 1994-09-23 1994-11-09 Cambridge Consultants Data processing circuits and interfaces
US5666114A (en) 1994-11-22 1997-09-09 International Business Machines Corporation Method and means for managing linear mapped address spaces storing compressed data at the storage subsystem control unit or device level
US5530705A (en) 1995-02-08 1996-06-25 International Business Machines Corporation Soft error recovery system and method
JP3807745B2 (ja) 1995-06-14 2006-08-09 株式会社ルネサステクノロジ 半導体メモリ、メモリデバイス及びメモリカード
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6134148A (en) 1997-09-30 2000-10-17 Hitachi, Ltd. Semiconductor integrated circuit and data processing system
JPH10125092A (ja) 1996-10-22 1998-05-15 Advantest Corp フラッシュメモリ試験装置
US5943692A (en) 1997-04-30 1999-08-24 International Business Machines Corporation Mobile client computer system with flash memory management utilizing a virtual address map and variable length data
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
JPH11126497A (ja) 1997-10-22 1999-05-11 Oki Electric Ind Co Ltd 不揮発性半導体記憶装置
US6018304A (en) 1997-12-18 2000-01-25 Texas Instruments Incorporated Method and apparatus for high-rate n/n+1 low-complexity modulation codes with adjustable codeword length and error control capability
US5953255A (en) 1997-12-24 1999-09-14 Aplus Flash Technology, Inc. Low voltage, low current hot-hole injection erase and hot-electron programmable flash memory with enhanced endurance
US6070074A (en) 1998-04-24 2000-05-30 Trw Inc. Method for enhancing the performance of a regenerative satellite communications system
US6138261A (en) 1998-04-29 2000-10-24 Trw Inc. Concatenated coding system for satellite communications
US6182264B1 (en) 1998-05-22 2001-01-30 Vlsi Technology, Inc. Smart dynamic selection of error correction methods for DECT based data services
US7111293B1 (en) 1998-06-03 2006-09-19 Ants Software, Inc. Method for increased concurrency in a computer system
US6192092B1 (en) 1998-06-15 2001-02-20 Intel Corp. Method and apparatus for clock skew compensation
US6505305B1 (en) 1998-07-16 2003-01-07 Compaq Information Technologies Group, L.P. Fail-over of multiple memory blocks in multiple memory modules in computer system
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6295592B1 (en) 1998-07-31 2001-09-25 Micron Technology, Inc. Method of processing memory requests in a pipelined memory controller
US6438661B1 (en) 1999-03-03 2002-08-20 International Business Machines Corporation Method, system, and program for managing meta data in a storage system and rebuilding lost meta data in cache
US6449625B1 (en) 1999-04-20 2002-09-10 Lucent Technologies Inc. Use of a two-way stack approach to optimize flash memory management for embedded database systems
US6564271B2 (en) 1999-06-09 2003-05-13 Qlogic Corporation Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
US20050114587A1 (en) 2003-11-22 2005-05-26 Super Talent Electronics Inc. ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines
US20080282128A1 (en) 1999-08-04 2008-11-13 Super Talent Electronics, Inc. Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
US7318117B2 (en) 2004-02-26 2008-01-08 Super Talent Electronics, Inc. Managing flash memory including recycling obsolete sectors
US6484224B1 (en) 1999-11-29 2002-11-19 Cisco Technology Inc. Multi-interface symmetric multiprocessor
DE19961138C2 (de) 1999-12-17 2001-11-22 Siemens Ag Multiport-RAM-Speichervorrichtung
US8341332B2 (en) 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US8452912B2 (en) 2007-10-11 2013-05-28 Super Talent Electronics, Inc. Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read
US8266367B2 (en) 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US8037234B2 (en) 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
US7082056B2 (en) 2004-03-12 2006-07-25 Super Talent Electronics, Inc. Flash memory device and architecture with multi level cells
US20020152305A1 (en) 2000-03-03 2002-10-17 Jackson Gregory J. Systems and methods for resource utilization analysis in information management environments
US6516437B1 (en) 2000-03-07 2003-02-04 General Electric Company Turbo decoder control for use with a programmable interleaver, variable block length, and multiple code rates
US6615307B1 (en) 2000-05-10 2003-09-02 Micron Technology, Inc. Flash with consistent latency for read operations
US20030188045A1 (en) 2000-04-13 2003-10-02 Jacobson Michael B. System and method for distributing storage controller tasks
US6678788B1 (en) 2000-05-26 2004-01-13 Emc Corporation Data type and topological data categorization and ordering for a mass storage system
US6442076B1 (en) 2000-06-30 2002-08-27 Micron Technology, Inc. Flash memory with multiple status reading capability
US6980985B1 (en) 2000-08-30 2005-12-27 At&T Corp. Distributed evalulation of directory queries using a topology cache
US6738870B2 (en) 2000-12-22 2004-05-18 International Business Machines Corporation High speed remote storage controller
US20020174295A1 (en) 2001-01-29 2002-11-21 Ulrich Thomas R. Enhanced file system failure tolerance
US7017107B2 (en) 2001-04-30 2006-03-21 Sun Microsystems, Inc. Storage array employing scrubbing operations at the disk-controller level
US6938253B2 (en) 2001-05-02 2005-08-30 Portalplayer, Inc. Multiprocessor communication system and method
US6757768B1 (en) 2001-05-17 2004-06-29 Cisco Technology, Inc. Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
US7068603B2 (en) 2001-07-06 2006-06-27 Juniper Networks, Inc. Cross-bar switch
US6836815B1 (en) 2001-07-11 2004-12-28 Pasternak Solutions Llc Layered crossbar for interconnection of multiple processors and shared memories
JP4569055B2 (ja) 2001-08-06 2010-10-27 ソニー株式会社 信号処理装置及び信号処理方法
TW539946B (en) 2001-08-07 2003-07-01 Solid State System Company Ltd Window-based flash memory storage system, and the management method and the access method thereof
JP4437519B2 (ja) 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
US7111292B2 (en) 2001-09-10 2006-09-19 Texas Instruments Incorporated Apparatus and method for secure program upgrade
US7028213B2 (en) 2001-09-28 2006-04-11 Hewlett-Packard Development Company, L.P. Error indication in a raid memory system
US7032123B2 (en) 2001-10-19 2006-04-18 Sun Microsystems, Inc. Error recovery
JP3663377B2 (ja) 2001-10-23 2005-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記憶装置、読み出しデータの処理装置および読み出しデータの処理方法
US7380085B2 (en) 2001-11-14 2008-05-27 Intel Corporation Memory adapted to provide dedicated and or shared memory to multiple processors and method therefor
US6798696B2 (en) 2001-12-04 2004-09-28 Renesas Technology Corp. Method of controlling the operation of non-volatile semiconductor memory chips
US6871257B2 (en) 2002-02-22 2005-03-22 Sandisk Corporation Pipelined parallel programming operation in a non-volatile memory system
US6836808B2 (en) 2002-02-25 2004-12-28 International Business Machines Corporation Pipelined packet processing
KR100476888B1 (ko) 2002-04-04 2005-03-17 삼성전자주식회사 온도보상기능을 가진 멀티비트 플래쉬메모리
JP4079684B2 (ja) 2002-05-08 2008-04-23 株式会社日立製作所 ヒープメモリ管理方法およびそれを用いた計算機システム
US6895464B2 (en) 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US6978343B1 (en) 2002-08-05 2005-12-20 Netlogic Microsystems, Inc. Error-correcting content addressable memory
US7051155B2 (en) 2002-08-05 2006-05-23 Sun Microsystems, Inc. Method and system for striping data to accommodate integrity metadata
US20040153902A1 (en) 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
US7043505B1 (en) 2003-01-28 2006-05-09 Unisys Corporation Method variation for collecting stability data from proprietary systems
US7162678B2 (en) 2003-03-14 2007-01-09 Quantum Corporation Extended error correction codes
KR100543447B1 (ko) 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
US7527466B2 (en) 2003-04-03 2009-05-05 Simmons Robert J Building-erection structural member transporter
WO2004099985A1 (ja) 2003-05-09 2004-11-18 Fujitsu Limited 実行環境の危険予測/回避方法,システム,プログラムおよびその記録媒体
EP2528000B1 (en) 2003-05-23 2017-07-26 IP Reservoir, LLC Intelligent data storage and processing using FPGA devices
US7877647B2 (en) 2003-05-23 2011-01-25 Hewlett-Packard Development Company, L.P. Correcting a target address in parallel with determining whether the target address was received in error
US7685254B2 (en) 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7054968B2 (en) 2003-09-16 2006-05-30 Denali Software, Inc. Method and apparatus for multi-port memory controller
US7100002B2 (en) 2003-09-16 2006-08-29 Denali Software, Inc. Port independent data transaction interface for multi-port devices
US7523157B2 (en) 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US7173852B2 (en) 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7401174B2 (en) 2003-12-16 2008-07-15 Matsushita Electric Industrial Co., Ltd. File system defragmentation and data processing method and apparatus for an information recording medium
US7376887B2 (en) 2003-12-22 2008-05-20 International Business Machines Corporation Method for fast ECC memory testing by software including ECC check byte
US7328377B1 (en) 2004-01-27 2008-02-05 Altera Corporation Error correction for programmable logic integrated circuits
JP4477365B2 (ja) 2004-01-29 2010-06-09 株式会社日立製作所 複数インタフェースを有する記憶装置、および、その記憶装置の制御方法
US7389465B2 (en) 2004-01-30 2008-06-17 Micron Technology, Inc. Error detection and correction scheme for a memory device
US7350044B2 (en) 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
JP3892851B2 (ja) 2004-02-04 2007-03-14 株式会社東芝 メモリカード及び半導体装置
US20080147964A1 (en) 2004-02-26 2008-06-19 Chow David Q Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function
US7020017B2 (en) 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US20050273560A1 (en) 2004-06-03 2005-12-08 Hulbert Jared E Method and apparatus to avoid incoherency between a cache memory and flash memory
US7334179B2 (en) 2004-06-04 2008-02-19 Broadcom Corporation Method and system for detecting and correcting errors while accessing memory devices in microprocessor systems
US7159069B2 (en) 2004-06-23 2007-01-02 Atmel Corporation Simultaneous external read operation during internal programming in a flash memory device
EP1797645B1 (en) 2004-08-30 2018-08-01 Google LLC Systems and methods for providing nonvolatile memory management in wireless phones
US7761678B1 (en) 2004-09-29 2010-07-20 Verisign, Inc. Method and apparatus for an improved file repository
US7849381B2 (en) * 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US20060156177A1 (en) 2004-12-29 2006-07-13 Sailesh Kottapalli Method and apparatus for recovering from soft errors in register files
KR100648281B1 (ko) 2005-01-14 2006-11-23 삼성전자주식회사 보안 리던던시 블록을 구비한 낸드 플래시 메모리 장치
US7657696B2 (en) 2005-02-25 2010-02-02 Lsi Corporation Method to detect NAND-flash parameters by hardware automatically
US7707232B2 (en) 2005-05-13 2010-04-27 Microsoft Corporation Implementation for collecting unmanaged memory
US7934049B2 (en) 2005-09-14 2011-04-26 Sandisk Corporation Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory
KR100705220B1 (ko) 2005-09-15 2007-04-06 주식회사 하이닉스반도체 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법
US20080256415A1 (en) 2005-09-27 2008-10-16 Nxp B.V. Error Detection/Correction Circuit as Well as Corresponding Method
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
KR100715147B1 (ko) 2005-10-06 2007-05-10 삼성전자주식회사 전류소모를 감소시키는 내부전원전압 발생회로를 가지는멀티칩 반도체 메모리 장치
US20070083697A1 (en) 2005-10-07 2007-04-12 Microsoft Corporation Flash memory management
US8223553B2 (en) 2005-10-12 2012-07-17 Macronix International Co., Ltd. Systems and methods for programming a memory device
KR101021465B1 (ko) 2005-10-26 2011-03-15 삼성전자주식회사 저밀도 패리티 검사 코드를 사용하는 통신 시스템에서 신호수신 장치 및 방법
KR100966043B1 (ko) 2005-10-31 2010-06-25 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 신호 송수신 장치 및 방법
US7500062B2 (en) 2005-11-17 2009-03-03 International Business Machines Corporation Fast path memory read request processing in a multi-level memory architecture
WO2007058617A1 (en) 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
US7562283B2 (en) 2005-12-27 2009-07-14 D.S.P. Group Ltd. Systems and methods for error correction using binary coded hexidecimal or hamming decoding
US7546515B2 (en) 2005-12-27 2009-06-09 Sandisk Corporation Method of storing downloadable firmware on bulk media
US7349264B2 (en) 2005-12-28 2008-03-25 Sandisk Corporation Alternate sensing techniques for non-volatile memories
WO2007080586A2 (en) 2006-01-10 2007-07-19 Saifun Semiconductors Ltd. Rd algorithm improvement for nrom technology
US7609561B2 (en) 2006-01-18 2009-10-27 Apple Inc. Disabling faulty flash memory dies
KR100725410B1 (ko) 2006-01-20 2007-06-07 삼성전자주식회사 전원 상태에 따라 비휘발성 메모리의 블록 회수를 수행하는장치 및 그 방법
US20070234143A1 (en) 2006-01-25 2007-10-04 Samsung Electronics Co., Ltd. Semiconductor memory devices and methods of testing for failed bits of semiconductor memory devices
JP4859471B2 (ja) 2006-02-02 2012-01-25 株式会社日立製作所 ストレージシステム及びストレージコントローラ
US7870326B2 (en) 2006-07-28 2011-01-11 Samsung Electronics Co., Ltd. Multiprocessor system and method thereof
US7681106B2 (en) 2006-03-29 2010-03-16 Freescale Semiconductor, Inc. Error correction device and methods thereof
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US20070245061A1 (en) 2006-04-13 2007-10-18 Intel Corporation Multiplexing a parallel bus interface and a flash memory interface
US7685494B1 (en) 2006-05-08 2010-03-23 Marvell International, Ltd. Error correction coding for varying signal-to-noise ratio channels
US7707481B2 (en) 2006-05-16 2010-04-27 Pitney Bowes Inc. System and method for efficient uncorrectable error detection in flash memory
US20070300130A1 (en) 2006-05-17 2007-12-27 Sandisk Corporation Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices
US7606084B2 (en) 2006-06-19 2009-10-20 Sandisk Corporation Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
JP4842719B2 (ja) 2006-06-28 2011-12-21 株式会社日立製作所 ストレージシステム及びそのデータ保護方法
US7774684B2 (en) 2006-06-30 2010-08-10 Intel Corporation Reliability, availability, and serviceability in a memory device
JP2008047273A (ja) 2006-07-20 2008-02-28 Toshiba Corp 半導体記憶装置およびその制御方法
US7831895B2 (en) 2006-07-25 2010-11-09 Communications Coding Corporation Universal error control coding system for digital communication and data storage systems
WO2008013228A1 (fr) 2006-07-26 2008-01-31 Panasonic Corporation Contrôleur de mémoire, dispositif de stockage non-volatile, dispositif d'accès et système de stockage non-volatile
TW200813724A (en) 2006-07-28 2008-03-16 Samsung Electronics Co Ltd Multipath accessible semiconductor memory device with host interface between processors
US20080052446A1 (en) 2006-08-28 2008-02-28 Sandisk Il Ltd. Logical super block mapping for NAND flash memory
TW200816651A (en) 2006-09-25 2008-04-01 Sunplus Technology Co Ltd Decoding method and system of real-time wireless channel estimation
US7886204B2 (en) 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
US8171380B2 (en) 2006-10-10 2012-05-01 Marvell World Trade Ltd. Adaptive systems and methods for storing and retrieving data to and from memory cells
JP2008117195A (ja) 2006-11-06 2008-05-22 Hitachi Ltd 半導体記憶装置
TWI307100B (en) 2006-11-07 2009-03-01 Macronix Int Co Ltd Memory and method for reading error checking thereof
JP2008123330A (ja) 2006-11-14 2008-05-29 Toshiba Corp 不揮発性半導体記憶装置
KR100808664B1 (ko) 2006-12-08 2008-03-07 한국전자통신연구원 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
KR100881669B1 (ko) 2006-12-18 2009-02-06 삼성전자주식회사 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치
TW200828328A (en) 2006-12-28 2008-07-01 Genesys Logic Inc Method of improving accessing reliability of flash memory
KR100842680B1 (ko) 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US7603490B2 (en) 2007-01-10 2009-10-13 International Business Machines Corporation Barrier and interrupt mechanism for high latency and out of order DMA device
KR100855587B1 (ko) 2007-01-17 2008-09-01 삼성전자주식회사 메일박스 영역을 가지는 멀티 패스 액세스블 반도체 메모리장치 및 그에 따른 메일박스 액세스 제어방법
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
US7913022B1 (en) 2007-02-14 2011-03-22 Xilinx, Inc. Port interface modules (PIMs) in a multi-port memory controller (MPMC)
US7646636B2 (en) 2007-02-16 2010-01-12 Mosaid Technologies Incorporated Non-volatile memory with dynamic multi-mode operation
KR100918707B1 (ko) 2007-03-12 2009-09-23 삼성전자주식회사 플래시 메모리를 기반으로 한 메모리 시스템
JP4897524B2 (ja) 2007-03-15 2012-03-14 株式会社日立製作所 ストレージシステム及びストレージシステムのライト性能低下防止方法
TWI368224B (en) 2007-03-19 2012-07-11 A Data Technology Co Ltd Wear-leveling management and file distribution management of hybrid density memory
KR100907218B1 (ko) 2007-03-28 2009-07-10 삼성전자주식회사 읽기 레벨 제어 장치 및 그 방법
WO2008121553A1 (en) 2007-03-29 2008-10-09 Sandisk Corporation Non-volatile storage with decoding of data using reliability metrics based on multiple reads
WO2008121577A1 (en) 2007-03-31 2008-10-09 Sandisk Corporation Soft bit data transmission for error correction control in non-volatile memory
US8032724B1 (en) 2007-04-04 2011-10-04 Marvell International Ltd. Demand-driven opportunistic garbage collection in memory components
US7996642B1 (en) 2007-04-25 2011-08-09 Marvell International Ltd. Digital locked loop on channel tagged memory requests for memory optimization
US8151171B2 (en) 2007-05-07 2012-04-03 Broadcom Corporation Operational parameter adaptable LDPC (low density parity check) decoder
US7743203B2 (en) 2007-05-11 2010-06-22 Spansion Llc Managing flash memory based upon usage history
US8073648B2 (en) 2007-05-14 2011-12-06 Sandisk Il Ltd. Measuring threshold voltage distribution in memory using an aggregate characteristic
KR100891005B1 (ko) 2007-06-28 2009-03-31 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법
US7802132B2 (en) 2007-08-17 2010-09-21 Intel Corporation Technique to improve and extend endurance and reliability of multi-level memory cells in a memory device
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
US8095851B2 (en) 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
US8139412B2 (en) 2007-10-31 2012-03-20 Agere Systems Inc. Systematic error correction for multi-level flash memory
US8429492B2 (en) 2007-11-30 2013-04-23 Marvell World Trade Ltd. Error correcting code predication system and method
US7962695B2 (en) * 2007-12-04 2011-06-14 International Business Machines Corporation Method and system for integrating SRAM and DRAM architecture in set associative cache
US8621138B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Flash storage controller execute loop
EP2225643B1 (en) 2007-12-28 2020-05-06 Toshiba Memory Corporation Semiconductor storage device
US20090172335A1 (en) 2007-12-31 2009-07-02 Anand Krishnamurthi Kulkarni Flash devices with raid
US8159874B2 (en) 2008-01-22 2012-04-17 Micron Technology, Inc. Cell operation monitoring
US8271515B2 (en) 2008-01-29 2012-09-18 Cadence Design Systems, Inc. System and method for providing copyback data integrity in a non-volatile memory system
JP4617405B2 (ja) 2008-02-05 2011-01-26 富士通株式会社 不良メモリを検出する電子機器、不良メモリ検出方法およびそのためのプログラム
JP4672743B2 (ja) 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8185706B2 (en) 2008-04-30 2012-05-22 Apple Inc. Copyback optimization for memory system
KR101412974B1 (ko) 2008-05-28 2014-06-30 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
US8060719B2 (en) 2008-05-28 2011-11-15 Micron Technology, Inc. Hybrid memory management
KR101412690B1 (ko) 2008-05-28 2014-06-27 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
US9123422B2 (en) 2012-07-02 2015-09-01 Super Talent Technology, Corp. Endurance and retention flash controller with programmable binary-levels-per-cell bits identifying pages or blocks as having triple, multi, or single-level flash-memory cells
US8959280B2 (en) 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US8880775B2 (en) 2008-06-20 2014-11-04 Seagate Technology Llc System and method of garbage collection in a memory device
US8627169B2 (en) 2008-06-20 2014-01-07 Cadence Design Systems, Inc. Method and apparatus for dynamically configurable multi level error correction
KR101490421B1 (ko) 2008-07-11 2015-02-06 삼성전자주식회사 메모리 셀 사이의 간섭을 억제할 수 있는 불휘발성 메모리장치, 컴퓨팅 시스템 및 그것의 프로그램 방법
US8130552B2 (en) 2008-09-11 2012-03-06 Sandisk Technologies Inc. Multi-pass programming for memory with reduced data storage requirement
JP5193796B2 (ja) * 2008-10-21 2013-05-08 株式会社東芝 3次元積層型不揮発性半導体メモリ
KR101484556B1 (ko) 2008-10-28 2015-01-20 삼성전자주식회사 독출 보상 회로
KR101483533B1 (ko) * 2008-11-06 2015-01-20 삼성전자주식회사 불휘발성 메모리 소자 및 그의 제조방법
KR20100058166A (ko) 2008-11-24 2010-06-03 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템
US9128699B2 (en) 2008-12-22 2015-09-08 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
US8645749B2 (en) 2009-02-04 2014-02-04 Micron Technology, Inc. Systems and methods for storing and recovering controller data in non-volatile memory devices
KR20100090439A (ko) 2009-02-06 2010-08-16 주식회사 하이닉스반도체 불휘발성 메모리 장치의 독출 방법 및 이를 구현하는 불휘발성 메모리 장치
KR20100093885A (ko) 2009-02-17 2010-08-26 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
KR101575248B1 (ko) 2009-04-30 2015-12-07 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템
US20100281207A1 (en) 2009-04-30 2010-11-04 Miller Steven C Flash-based data archive storage system
US8151137B2 (en) 2009-05-28 2012-04-03 Lsi Corporation Systems and methods for governing the life cycle of a solid state drive
US20100332922A1 (en) 2009-06-30 2010-12-30 Mediatek Inc. Method for managing device and solid state disk drive utilizing the same
US20100332950A1 (en) 2009-06-30 2010-12-30 Gurkirat Billing Bit error threshold and content addressable memory to address a remapped memory device
US8412985B1 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Hardwired remapped memory
US8412987B2 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Non-volatile memory to store memory remap information
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US7941696B2 (en) 2009-08-11 2011-05-10 Texas Memory Systems, Inc. Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes
US8495423B2 (en) 2009-08-11 2013-07-23 International Business Machines Corporation Flash-based memory system with robust backup and restart features and removable modules
US8464106B2 (en) 2009-08-24 2013-06-11 Ocz Technology Group, Inc. Computer system with backup function and method therefor
WO2011031903A2 (en) 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
JP5197544B2 (ja) 2009-10-05 2013-05-15 株式会社東芝 メモリシステム
US8364929B2 (en) 2009-10-23 2013-01-29 Seagate Technology Llc Enabling spanning for a storage device
US8312349B2 (en) 2009-10-27 2012-11-13 Micron Technology, Inc. Error detection/correction based memory management
CN101699406B (zh) 2009-11-12 2011-12-14 威盛电子股份有限公司 数据储存系统与方法
US8130553B2 (en) 2009-12-02 2012-03-06 Seagate Technology Llc Systems and methods for low wear operation of solid state memory
US8327226B2 (en) 2010-02-03 2012-12-04 Seagate Technology Llc Adjustable error correction code length in an electrical storage device
US8213255B2 (en) 2010-02-19 2012-07-03 Sandisk Technologies Inc. Non-volatile storage with temperature compensation based on neighbor state information
KR101633048B1 (ko) 2010-02-25 2016-06-24 삼성전자주식회사 메모리 시스템 및 그것의 데이터 처리 방법
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US8799747B2 (en) 2010-06-03 2014-08-05 Seagate Technology Llc Data hardening to compensate for loss of data retention characteristics in a non-volatile memory
KR20120003283A (ko) 2010-07-02 2012-01-10 삼성전자주식회사 데이터 저장 장치 및 그것의 배드 블록 관리 방법
US8656256B2 (en) 2010-07-07 2014-02-18 Stec, Inc. Apparatus and method for multi-mode operation of a flash memory device
US8737136B2 (en) 2010-07-09 2014-05-27 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
JP5066241B2 (ja) 2010-09-24 2012-11-07 株式会社東芝 メモリシステム
US8738846B2 (en) 2010-10-15 2014-05-27 Arkologic Limited File system-aware solid-state storage management system
KR101606718B1 (ko) 2010-10-27 2016-03-28 엘에스아이 코포레이션 플래시 메모리 기반 데이터 저장을 위한 적응적 ecc 기술들
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US9569320B2 (en) 2010-12-01 2017-02-14 Seagate Technology Llc Non-volatile memory program failure recovery via redundant arrays
US20120144110A1 (en) 2010-12-02 2012-06-07 Lsi Corporation Methods and structure for storage migration using storage array managed server agents
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US8886990B2 (en) 2011-01-27 2014-11-11 Apple Inc. Block management schemes in hybrid SLC/MLC memory
US9047955B2 (en) 2011-03-30 2015-06-02 Stec, Inc. Adjusting operating parameters for memory cells based on wordline address and cycle information
WO2012148828A2 (en) 2011-04-26 2012-11-01 Lsi Corporation Variable over-provisioning for non-volatile storage
KR101733620B1 (ko) 2011-05-25 2017-05-11 삼성전자주식회사 기판에 적층된 복수의 메모리 셀들을 포함하는 불휘발성 메모리
US8711665B1 (en) 2011-10-26 2014-04-29 Western Digital Technologies, Inc. Method and apparatus for determining storage capacity error for a data storage device
KR20130060791A (ko) 2011-11-30 2013-06-10 삼성전자주식회사 마모도 제어 로직을 포함하는 메모리 시스템, 데이터 저장 장치, 메모리 카드, 그리고 솔리드 스테이트 드라이브
KR101856130B1 (ko) * 2012-01-04 2018-05-10 삼성전자주식회사 비휘발성 메모리 장치, 그리고 그것을 포함하는 메모리 시스템
US9021333B1 (en) * 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for recovering data from failed portions of a flash drive
US9021336B1 (en) * 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages
US8793556B1 (en) * 2012-05-22 2014-07-29 Pmc-Sierra, Inc. Systems and methods for reclaiming flash blocks of a flash drive
US8761108B2 (en) * 2012-06-25 2014-06-24 Telefonaktiebolaget L M Ericsson (Publ) Table based link adaption for wireless communication transmissions with one codeword
US20140052925A1 (en) 2012-08-17 2014-02-20 Dell Products L.P. System and method for write-life extension of storage resources
US8898548B1 (en) 2012-08-24 2014-11-25 Western Digital Technologies, Inc. Methods, data storage devices and systems having variable size ECC page size
US8862810B2 (en) 2012-09-27 2014-10-14 Arkologic Limited Solid state device write operation management system
US8830717B2 (en) * 2012-11-29 2014-09-09 Sandisk Technologies Inc. Optimized configurable NAND parameters
US9141532B2 (en) 2012-12-26 2015-09-22 Western Digital Technologies, Inc. Dynamic overprovisioning for data storage systems
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9804960B2 (en) 2013-03-14 2017-10-31 Western Digital Technologies, Inc. Overprovision capacity in a data storage device
US10073626B2 (en) 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
US9524113B2 (en) 2013-05-24 2016-12-20 Seagate Technology Llc Variable redundancy in a solid state drive
US9645924B2 (en) 2013-12-16 2017-05-09 International Business Machines Corporation Garbage collection scaling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080159007A1 (en) * 2006-12-30 2008-07-03 Deepak Chandra Sekar Non-volatile storage with bias based on selected word line
US20110199833A1 (en) * 2010-02-17 2011-08-18 Samsung Electronics Co., Ltd. Non-volatile memory devices, operating methods thereof and memory systems including the same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KGIL T et al.: Improving NAND Flash Based Disk Cache" computer architecture, 2008. ISCA '08. 35TH International Symposium on, IEEE, 21 June 2008, pp.327-338.

Also Published As

Publication number Publication date
US8891303B1 (en) 2014-11-18
WO2015183581A1 (en) 2015-12-03
CN106663043A (zh) 2017-05-10
EP3149744B1 (en) 2020-03-25
CN106663043B (zh) 2019-10-01
EP3149744A1 (en) 2017-04-05
KR20170012462A (ko) 2017-02-02
US9898364B2 (en) 2018-02-20
US20150347229A1 (en) 2015-12-03

Similar Documents

Publication Publication Date Title
KR101995624B1 (ko) 3차원 메모리 디바이스의 동적 워드 라인 기반 구성을 위한 방법 및 시스템
US10008273B2 (en) Cell current based bit line voltage
US9786372B2 (en) Nonvolatile memory device and wordline driving method thereof
EP3158454B1 (en) Sub-block garbage collection
US10452471B2 (en) Non-volatile memory with dynamic write abort detection and recovery
US9904621B2 (en) Methods and systems for flash buffer sizing
US9647697B2 (en) Method and system for determining soft information offsets
US10938421B2 (en) Decoding optimization for channel mismatch
US8996838B1 (en) Structure variation detection for a memory having a three-dimensional memory configuration
US20160170682A1 (en) Tag-based wear leveling for a data storage device
US9645749B2 (en) Method and system for recharacterizing the storage density of a memory device or a portion thereof
WO2017027094A1 (en) Soft bit techniques for reading a data storage device
US9257186B2 (en) Memory access techniques for a memory having a three-dimensional memory configuration
US9679661B1 (en) Non-volatile storage system with self-test for read performance enhancement feature setup
US9311183B2 (en) Adaptive target charge to equalize bit errors across page types
US9524794B1 (en) Constrained data shaping
US9244764B2 (en) Error correcting code techniques for a memory having a three-dimensional memory configuration
US20240071554A1 (en) Block family error avoidance bin scans after memory device power-on
CN118351918A (zh) 实施全局字线偏置电压以进行读取状态转变

Legal Events

Date Code Title Description
AMND Amendment
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant