KR20230013128A - 프로그래밍 실패에 대한 독립 디스크 스트라이핑의 중복 어레이를 위한 방법 및 그 장치 - Google Patents

프로그래밍 실패에 대한 독립 디스크 스트라이핑의 중복 어레이를 위한 방법 및 그 장치 Download PDF

Info

Publication number
KR20230013128A
KR20230013128A KR1020227044886A KR20227044886A KR20230013128A KR 20230013128 A KR20230013128 A KR 20230013128A KR 1020227044886 A KR1020227044886 A KR 1020227044886A KR 20227044886 A KR20227044886 A KR 20227044886A KR 20230013128 A KR20230013128 A KR 20230013128A
Authority
KR
South Korea
Prior art keywords
parity data
data portion
stripes
stripe
data
Prior art date
Application number
KR1020227044886A
Other languages
English (en)
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 KR20230013128A publication Critical patent/KR20230013128A/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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1032Simple parity
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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
    • 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/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/025Geometric lay-out considerations of storage- and peripheral-blocks in a semiconductor storage device
    • 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
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 장치는 N개의 다이에 메모리 데이터가 저장된 복수의 메모리 셀을 포함한다. N개의 다이의 각각은 M개의 평면을 포함한다. M개 평면의 각각은 메모리 블록을 포함한다. 장치는 또한 M개 평면의 각각에서 및 N개의 다이의 각각에서의 메모리 블록에서 J개의 층을 결정하도록 구성된 제어기를 포함하며, J개 층의 각각은 인접한 게이트 도전성 층의 쌍을 포함한다. 제어기는 또한 스트라이프의 M개 세트를 결정하도록 구성되며, 스트라이프의 M개 세트 각각은 M개 평면의 각각의 것에 저장된 복수의 데이터 부분을 포함한다. 제어기는 또한 패리티 데이터 부분의 M개 세트를 결정하도록 구성된다. 제어기는 또한 패리티 데이터 부분의 M개 세트를 저장하도록 임시 저장 유닛을 제어하기 위해 구성된다.

Description

프로그래밍 실패에 대한 독립 디스크 스트라이핑의 중복 어레이를 위한 방법 및 그 장치
본 개시는 데이터 저장 방법 및 장치에 관한 것이다.
인터넷 및 다양한 미션-크리티컬(mission-critical) 애플리케이션에서의 급속한 성장으로, 데이터 무결성을 보존하고 중요한 정보로의 연속적인 액세스를 보장하는 중요성은 과장될 수 없다. 신뢰성 있는 데이터를 보존하고 액세스할 때 요구를 만족시키기 위해, 독립 디스크의 중복 어레이(RAID) 알고리즘이 NAND 메모리 디바이스에서 성능, 신뢰성, 전력 소비, 및 확장성을 개선하기 위해 사용되어 왔다. RAID 알고리즘은 다수의 저장 유닛으로부터 대용량 신뢰 데이터 저장소를 생성하기 위해 스트라이핑, 미러링, 및/또는 패리티의 기술을 이용한다.
RAID의 상이한 레벨 중에서, RAID 5라고도 불리워지는, RAID의 레벨 5가 NAND 메모리 디바이스에서 데이터 무결성을 보존하는데 일반적으로 사용된다. RAID 5는 분산된 패리티(예컨대, 중복 정보)를 가진 블록-레벨 스트라이핑을 이용한다. 패리티 정보는 드라이브 간에 분포된다. 단일 드라이브의 실패 시, 실패한 드라이브에서의 데이터는 메모리 데이터가 손실되지 않도록 분산된 패리티 및 드라이브의 나머지로부터 검색될 수 있다.
일 예에서, 메모리 장치가 제공된다. 장치는 N개의 다이에 메모리 데이터가 저장된 복수의 메모리 셀을 포함한다. N개의 다이의 각각은 M개의 평면을 포함한다. M개 평면의 각각은 메모리 블록을 포함한다. N 및 M은 각각 양의 정수이다. 장치는 또한 복수의 메모리 셀에 동작 가능하게 결합된 제어기를 포함한다. 제어기는 M개 평면의 각각에서 및 N개의 다이의 각각에서의 메모리 블록에서 J개의 층을 결정하도록 구성되며, J개 층의 각각은 인접한 게이트 도전성 층의 쌍을 포함한다. J는 양의 정수이다. 제어기는 또한 스트라이프의 M개 세트를 결정하도록 구성된다. 스트라이프의 M개 세트 각각은 M개 평면의 각각의 것에 저장된 복수의 데이터 부분을 포함한다. 제어기는 또한 패리티 데이터 부분의 M개 세트를 결정하도록 구성된다. 패리티 데이터 부분의 M개 세트 각각은 M개 스트라이프의 각각의 것에 대응한다. 제어기는 또한 패리티 데이터 부분의 M개 세트를 저장하도록 임시 저장 유닛을 제어하기 위해 구성된다.
또 다른 예에서, 메모리 장치가 제공된다. 상기 장치는 N개의 다이에 메모리 데이터가 저장된 복수의 메모리 셀을 포함한다. N개의 다이의 각각은 M개의 평면을 포함한다. M개 평면의 각각은 메모리 블록을 포함한다. N 및 M은 각각 양의 정수이다. 상기 장치는 복수의 메모리 셀에 동작 가능하게 결합된 제어기를 포함한다. 제어기는 M개 평면의 각각에서 및 N개의 다이의 각각에서의 메모리 블록에서 J개의 층을 결정하도록 구성된다. J개 층의 각각은 인접한 게이트 도전성 층의 쌍을 포함한다. J는 적어도 2의 양의 정수이다. 제어기는 또한 각각이 M개 평면에서 동일한 레벨의 M개 층에 대응하며 M×N개의 데이터 부분을 포함한 J개의 스트라이프를 결정하도록 구성된다. M×N개 데이터 부분의 각각은 각각의 M개 층의 각각의 부분에 저장된다. 제어기는 또한 각각이 각각의 스트라이프에 대응하는 J개 패리티 데이터 부분을 결정하도록 구성된다. 제어기는 또한 J개 패리티 데이터 부분을 저장하도록 임시 저장 유닛을 제어하기 위해 구성된다.
또 다른 예에서, RAID 스트라이핑을 사용하여 메모리 장치를 동작시키기 위한 방법이 제공된다. 상기 장치는 N개의 다이에 메모리 데이터가 저장된 복수의 메모리 셀을 포함한다. N개의 다이의 각각은 M개의 평면을 포함한다. M개 평면의 각각은 메모리 블록을 포함한다. N 및 M은 각각 양의 정수이다. 상기 방법은 M개 평면의 각각에서 및 N개의 다이의 각각에서의 메모리 블록에서 J개의 층을 결정하는 단계를 포함한다. J개 층의 각각은 인접한 게이트 도전성 층의 쌍을 포함한다. J는 양의 정수이다. 상기 방법은 또한 스트라이프의 M개 세트를 결정하는 단계를 포함하며, 상기 스트라이프의 M개 세트의 각각은 M개 평면의 각각의 것에 저장된 복수의 데이터 부분을 포함한다. 상기 방법은 또한 패리티 데이터 부분의 M개 세트를 결정하는 단계를 포함한다. 패리티 데이터 부분의 M개 세트의 각각은 M개 스트라이프의 각각의 것에 대응한다. 상기 방법은 패리티 데이터 부분의 M개 세트를 저장하도록 임시 저장 유닛을 제어하는 단계를 추가로 포함한다.
또 다른 예에서, RAID 스트라이핑을 사용하여 메모리 장치를 동작시키기 위한 방법이 제공된다. 상기 장치는 N개의 다이에 메모리 데이터가 저장된 복수의 메모리 셀을 포함한다. N개의 다이의 각각은 M개의 평면을 포함한다. M개 평면의 각각은 메모리 블록을 포함한다. N 및 M은 각각 양의 정수이다. 상기 방법은 M개 평면의 각각에서 및 N개의 다이의 각각에서의 메모리 블록에서 J개의 층을 결정하는 단계를 포함한다. J개 층의 각각은 인접한 게이트 도전성 층의 쌍을 포함한다. J는 적어도 2의 양의 정수이다. 상기 방법은 또한 각각이 M개 평면에서 동일한 레벨의 M개 층에 대응하며 M×N개의 데이터 부분을 포함한 J개의 스트라이프를 결정하는 단계를 포함한다. M×N개의 데이터 부분의 각각은 각각의 M개 층의 각각의 부분에 저장된다. 상기 방법은 각각이 각각의 스트라이프에 대응하는 J개의 패리티 데이터 부분을 결정하는 단계를 추가로 포함한다. 상기 방법은 J개의 패리티 데이터 부분을 저장하도록 임시 저장 유닛을 제어하는 단계를 추가로 포함한다.
본원에 통합되며 명세서의 부분을 형성하는, 수반된 도면은 본 개시의 구현예를 예시하며, 설명과 함께, 또한 본 개시의 원리를 설명하고 관련 기술에서의 숙련자가 본 개시를 만들고 사용할 수 있게 하도록 작용한다.
도 1a는 본 개시의 일부 양상에 따른, 호스트 프로세서, 플래시 메모리 제어기, 랜덤-액세스 메모리(RAM), 및 NAND 메모리를 포함한 장치의 개략도를 예시한다.
도 1b는 본 개시의 일부 양상에 따른, 플래시 메모리 제어기의 개략도를 예시한다.
도 2는 본 개시의 일부 양상에 따른, NAND 메모리에서 RAID 알고리즘에 대한 대표적인 스트라이핑 구성의 개략도이다.
도 3a 및 도 3b는 본 개시의 일부 양상에 따른, NAND 메모리에서 RAID 알고리즘에 대한 또 다른 대표적인 스트라이핑 구성의 개략도이다.
도 4a 내지 도 4c는 본 개시의 일부 양상에 따른, NAND 메모리에서 RAID 알고리즘에 대한 또 다른 대표적인 스트라이핑 구성의 개략도이다.
도 5a는 본 개시의 일부 양상에 따른, 도 2에서의 방법에서 생성된, 대표적인 패리티 데이터 저장을 예시한다.
도 5b는 본 개시의 일부 양상에 따른, 도 3a 및 도 3b에서의 방법에서 생성된 대표적인 패리티 데이터 저장을 예시한다.
도 5c는 본 개시의 일부 양상에 따른, 도 4a 내지 도 4c에서의 방법에서 생성된 대표적인 패리티 데이터 저장을 예시한다.
도 5d는 본 개시의 일부 양상에 따른, 도 4a 내지 도 4c에서의 방법에서 생성된, 또 다른 대표적인 패리티 데이터 저장을 예시한다.
도 6a는 본 개시의 일부 양상에 따라, 도 2에서 NAND 메모리를 동작시키기 위한 방법의 흐름도를 예시한다.
도 6b는 본 개시의 일부 양상에 따라, 도 3a 및 도 3b에서 NAND 메모리를 동작시키기 위한 방법의 흐름도를 예시한다.
도 6c는 본 개시의 일부 양상에 따라, 도 4a 내지 도 4c에서 NAND 메모리를 동작시키기 위한 방법의 흐름도를 예시한다.
도 7은 본 개시의 일부 양상에 따라, NAND 메모리의 특정한 구성요소를 도시한 개략도를 예시한다.
본 개시의 양상은 수반된 도면을 참조하여 설명될 것이다.
특정 구성 및 배열이 논의되지만, 이것은 단지 예시적인 목적을 위해 행해진다는 것이 이해되어야 한다. 이와 같이, 다른 구성 및 배열은 본 개시의 범위로부터 벗어나지 않고 사용될 수 있다. 또한, 본 개시는 또한 다양한 다른 애플리케이션에서 이용될 수 있다. 본 개시에서 설명된 바와 같이 기능적 및 구조적 특징은 서로 및 도면에 구체적으로 묘사되지 않은 방식으로 조합되고, 조정되고, 수정될 수 있으며, 따라서 이들 조합, 조정, 및 수정은 본 개시의 범위 내에 있다.
일반적으로, 전문 용어가 적어도 부분적으로 맥락에서의 사용으로부터 이해될 수 있다. 예를 들어, 본원에서 사용된 바와 같이 용어 "하나 이상"은 적어도 부분적으로 맥락에 의존하여, 단수형 의미로 임의의 특징, 구조, 또는 특성을 설명하기 위해 사용될 수 있거나 또는 복수형 의미로 특징, 구조, 또는 특성의 조합을 설명하기 위해 사용될 수 있다. 유사하게, "~들"의 접미사가 없는 용어도 적어도 부분적으로 맥락에 의존하여, 복수형 사용을 전달하거나 또는 복수형 사용을 전달하는 것으로 이해될 수 있다. 또한, 용어 "~에 기초하여"는 반드시 인자들의 배타적 세트를 전달하도록 의도되는 것은 아닌 것으로 이해될 수 있으며 대신에, 다시 적어도 부분적으로 맥락에 의존하여, 반드시 명확하게 설명되는 것은 아닌 부가적인 인자들의 존재를 허용할 수 있다.
본원에서 사용된 바와 같이, 용어 "메모리 스트링"은 메모리 셀 트랜지스터의 스트링이 기판에 대하여 수직 방향으로 연장되도록 측-배향된 기판상에서 직렬로 연결된 메모리 셀 트랜지스터의 수직-배향 스트링을 나타낸다. 본원에서 사용된 바와 같이, 용어 "수직/수직으로"는 기판의 측방향 표면에 수직임을 의미한다. 저장 용량을 증가시키기 위해, NAND 플래시 메모리는 종종 각각이 다수의 평면을 갖는, 다수의 다이를 측방향으로 포함한다. 각각의 평면은 각각이 측방향으로 연장된 다수의 게이트 도전성 층을 포함하는, 하나 이상의 메모리 블록으로 측방향으로 나뉜다. 하나의 메모리 블록은 다수의 레벨로 수직으로 배열된 다수의 게이트 도전성 층을 포함하며, 각각의 게이트 도전성 층은 메모리 블록에서 측방향으로 분포된 다수의 페이지에서 메모리 셀에 결합된다. 다수의 게이트 도전성 층이 NAND 플래시 메모리의 저장 용량을 증가시키기 위해 계속해서 수직으로 증가함에 따라, 인접한 게이트 도전성 층 간의 공간은 작아진다. 인접한 게이트 도전성 층 간의 간섭은 두드러진다. 메모리 셀의 무결성 및 판독 가능성을 개선하기 위해, RAID 5는 NAND 플래시 메모리에서 널리 사용되어 왔다. 통상적으로, RAID 5는 메모리 블록에서의 메모리 데이터를 복수의 데이터 부분으로 나누기 위해 메모리 블록에서 스트라이핑을 이용하여, 각각의 패리티 데이터를 생성하기 위해 스트라이프에서의 데이터 부분 간에 배타적 논리합(XOR) 연산을 수행하며, 메모리 셀에 패리티 데이터를 저장한다. 하나의 데이터 부분은 하나의 페이지에서의 메모리 데이터를 나타낼 수 있다. 하나의 스트라이프는 종종 2-차원에, 예컨대 상이한 다이 및 상이한 평면에 걸쳐 상이한 메모리 블록에 측방향으로, 및 동일한 메모리 블록에서 상이한 레벨에 수직으로 위치된 데이터 부분을 포함한다. 예를 들어, 4개의 평면 및 4개의 다이에서의 메모리 블록에 대해, 스트라이프는 측방향으로(예컨대, 평면 및 다이 모두에서) 및 수직으로(예컨대, 하나 이상의 레벨에서) 분포된, 128개 데이터 부분을 포함할 수 있다. 측방향으로, 스트라이프는 상이한 평면에서 동일한 위치에 데이터 부분을 포함할 수 있다. 수직으로, 스트라이프는 상이한 레벨에서 동일한 위치에 데이터 부분을 포함할 수 있다. 마지막 데이터 부분은 종종 스트라이프의 패리티 데이터를 포함한다. 스트라이프의 하나의 데이터 부분에서 프로그래밍 실패의 경우에, 손상된 데이터 부분은, 스트라이프의 패리티 데이터 및 스트라이프에서의 데이터 부분의 나머지를 사용하여, 예컨대, XOR 연산을 수행함으로써, 복구될 수 있다. 예를 들어, 128개 데이터 부분을 가진 스트라이프에 대해, 127개 데이터 부분은 메모리 데이터를 저장하기 위해 사용되며, 하나의 데이터 부분은 스트라이프의 패리티 데이터를 저장하기 위해 사용되고, 이러한 스트라이핑 구성을 사용한 RAID 5의 에러 정정 능력은 따라서 (127+1)로서 설명될 수 있다.
그러나, RAID 5는 스트라이프에서 단지 하나의 손상된 데이터 부분만을 복구하기 위해 사용될 수 있다. 스트라이프에서 둘 이상의 손상된 데이터 부분을 야기하는 시나리오의 경우에, 상기 설명된 바와 같이 스트라이핑 구성을 이용하여, 하나 이상의 손상된 데이터 부분을 복구할 수 없다. 예를 들어, 하나의 스트라이프에서 하나 이상의 손상된 데이터 부분을 야기할 수 있는 하나의 시나리오는 다수의 평면이 병렬로 프로그램되고 있을 때 프로그래밍 에러에 의해 야기될 수 있는, "다중-평면 실패"이다. 상이한 평면에서, 동일한 위치에, 동일한 스트라이프에서의, 데이터 부분이 손상될 수 있다. 하나의 스트라이프에서 하나 이상의 손상된 데이터 부분을 야기할 수 있는 또 다른 시나리오는 소스-선택 게이트(SSG)의 누설 전류에 의해 야기되는, "SSG 누설 실패"이다. SSG 누설 실패는 예컨대, 하나 이상의 레벨로 동일한 위치에서, SSG에 결합된 데이터 부분이 손상되게 할 수 있다. 현재 스트라이핑 구성은 시나리오 중 하나 또는 둘 모두가 발생한다면 단일 스트라이프에서 하나 이상의 손상된 데이터 부분을 갖는 것에 영향을 받기 쉽다. 그 결과, 이들 손상된 데이터 부분에서의 메모리 데이터는 손실될 수 있다. RAID 5의 스트라이핑 구성이 개선될 필요가 있다.
하나 이상의 앞서 언급한 이슈를 다루기 위해, 본 개시는 RAID 기술(예컨대, RAID 5)이 측방향으로 및 수직으로 하나 이상의 손상된 데이터 부분을 복구하기 위해 사용될 수 있는 해법을 소개한다. 이들 구현예에서, 두 개의 인접한 게이트 도전성 층이 층으로서 정의되며, 각각의 메모리 블록은 수직 방향으로 복수의 층을 포함한다. 스트라이프가 평면 및 다이에 걸쳐 메모리 블록에서 측방향으로 및 수직으로 분포된 데이터 부분을 포함하는 RAID 5와 비교하여, 제공된 방법은 더 짧은 스트라이프를 이용한다. 임시 패리티 데이터가 각각의 개별 스트라이프에 대해 생성된다. 임시 패리티 데이터는 임시 저장 유닛에 저장되며 각각의 스트라이프에서 손상된 데이터 부분을 복구하기 위해 사용될 수 있다. 임시 패리티 데이터는 평면 및 다이 모두에서 스트라이프에 대한 패리티 데이터 세트를 생성하기 위해 사용될 수 있다. 임시 패리티 데이터가 더 이상 요구되지 않을 때, 예컨대, 어떤 프로그래밍 실패도 검출되지 않거나 또는 프로그래밍 실패 모두가 복구될 때, 임시 패리티 데이터는 임시 저장 유닛으로부터 제거될 수 있다. 어떤 부가적인 저장 공간도 임시 패리티 데이터 부분에 대한 NAND 메모리에서 요구되지 않는다. RAID 5의 에러 정정 능력은 알고리즘에 복잡도를 더하지 않고 개선될 수 있다. 예에서, 4개의 평면 및 4개의 다이에서 하나의 메모리 블록에 대해, RAID 5의 에러 정정 능력은 (127+X)로서 설명될 수 있으며, 여기에서 127은 메모리 데이터와 함께 저장된 데이터 부분의 수를 나타내며, X는 프로그래밍 실패가 발생하는 데이터 부분의 수를 나타내고, 여기에서 X는 1보다 큰 양의 정수이다. 즉, 장치에서 동일한 수의 메모리 셀에 대해, 더 많은 손상된 메모리 데이터가 복구될 수 있다. 장치의 데이터 신뢰성이 개선될 수 있다.
에러 정정 능력을 개선하기 위해, 다양한 스트라이핑 구성이 제안되어 왔다. 이들 스트라이핑 구성은 다중-평면 실패, SSG 누설 실패, 또는 둘 모두에 의해 야기된 손상된 데이터 부분이 복구될 수 있도록 RAID 알고리즘에서 사용될 수 있다. 일부 구현예에서, 스트라이프는 각각의 평면에서 및 모든 다이에서의 메모리 블록에서 복수의 층에 분포된 데이터 부분을 포함하며, 평면 임시 패리티 데이터 부분은 각각의 스트라이프에 대해 결정된다. 스트라이프는 다른 평면에 데이터 부분을 포함하지 않는다. 예컨대, 다중-평면 실패로 인한, 검출된 프로그래밍 실패의 경우에, 각각의 스트라이프의 평면 패리티 부분은 손상된 데이터 부분의 위치를 찾고 이를 복구하기 위해 사용될 수 있다. 일부 구현예에서, 스트라이프는 모든 평면에서 및 모든 다이에서의 메모리 블록에서 단일 층에 분포된 데이터 부분을 포함하며, 층 패리티 데이터 부분은 각각의 스트라이프에 대해 결정된다. 스트라이프는 다른 층에 데이터 부분을 포함하지 않는다. 스트라이프는 메모리 블록에서 각각의 단일 층에 형성될 수 있다. 예컨대, SSG 누설 실패로 인한, 검출된 프로그래밍 실패의 경우에, 각각의 스트라이프의 층 패리티 부분은 손상된 데이터 부분의 위치를 찾고 이를 복구하기 위해 사용될 수 있다. 일부 구현예에서, 스트라이프는 단일 평면에서 및 모든 다이에서의 메모리 블록에서 단일 층에 분포된 데이터 부분을 포함하며, 패리티 데이터 부분은 각각의 스트라이프에 대해 생성된다. 예컨대, SSG 누설 실패 및/또는 다중-평면 실패로 인한, 검출된 프로그래밍 실패의 경우에, 각각의 스트라이프의 패리티 부분은 손상된 데이터 부분의 위치를 찾고 이를 복구하기 위해 사용될 수 있다.
도 1a는 본 개시의 일부 양상에 따른, 제공된 방법이 동작되는 장치(100)의 개략도를 예시한다. 도 1a에 도시된 바와 같이, 장치(100)는 인쇄 회로 보드(PCB)(102) 상에 호스트 프로세서(104), 플래시 메모리 제어기(106), 랜덤-액세스 메모리(RAM)(110), 및 NAND 메모리(108)를 포함한다. 호스트 프로세서(104), 플래시 메모리 제어기(106), NAND 메모리(108), 및 RAM(110)의 각각의 것은 그 자신의 패키징을 가진 별개의 칩이며 PCB(102) 상에 장착된다. 호스트 프로세서(104)는 NAND 메모리(108)의 데이터 프로세싱을 수행하기 위한 특수화된 프로세서이다. 예를 들어, 호스트 프로세서(104)는 애플리케이션 프로세서와 같은, 중앙 프로세싱 유닛(CPU) 및/또는 시스템-온-칩(SoC)을 포함할 수 있다. 데이터는 호스트 프로세서(104)와 플래시 메모리 제어기(106) 사이에서 및 호스트 프로세서(104)와 RAM(110) 사이에서 각각 프로세서 버스와 같은, 각각의 인터링크를 통해 송신된다. 호스트 프로세서(104)는 따라서 RAM(110) 및 플래시 메모리 제어기(106)의 동작을 제어할 수 있다. NAND 메모리(108)는 RAID에 구성되는 메모리 셀의 어레이를 포함할 수 있다. NAND 메모리(108)는 3D NAND 메모리 또는 2D NAND 메모리이며, 이것은 또 다른 인터링크를 통해 플래시 메모리 제어기(106)를 갖고 데이터를 전달한다. RAM(110)은 임의의 적절한 정적 랜덤-액세스 메모리(SRAM) 및/또는 동적 랜덤-액세스 메모리(DRAM)를 포함할 수 있다.
플래시 메모리 제어기(106)는 플래시 메모리(NAND 플래시 메모리 또는 NOR 플래시 메모리)에 저장된 데이터를 관리하며 호스트 프로세서(104)와 통신할 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 보안 디지털(SD) 카드, 컴팩트 플래시(CF) 카드, USB 플래시 드라이브, 또는 개인용 컴퓨터, 디지털 카메라, 이동 전화 등과 같은, 전자 디바이스에서의 사용을 위한 다른 미디어와 같은 저 듀티-사이클 환경에서 동작하기 위해 설계된다. 일부 구현예에서, 플래시 메모리 제어기(106)는 스마트폰, 태블릿, 랩탑 컴퓨터 등과 같은 이동 디바이스를 위한 데이터 저장장치, 및 기업 저장 어레이로서 사용된 고체-상태 드라이브(SSD들) 또는 내장형 멀티-미디어-카드(eMMC들)와 같은 고 듀티-사이클 환경에서 동작하기 위해 설계된다. 플래시 메모리 제어기(106)는 판독, 기록, 소거, 및 프로그램 동작과 같은, NAND 메모리(108)의 동작을 제어하도록 구성될 수 있다. 플래시 메모리 제어기(106)는 또한 이에 제한되지 않지만 불량-블록 관리, 가비지 컬렉션, 논리-대-물리 어드레스 변환, 마모 레벨링 등을 포함한 NAND 메모리(108)에 저장되거나 또는 저장될 데이터에 대하여 다양한 기능을 관리하도록 구성될 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 또한 NAND 메모리(108)로부터 판독되거나 또는 그것으로 기록된 데이터에 대하여 에러 정정 코드(ECC들)를 프로세싱하도록 구성된다. 임의의 다른 적절한 기능, 예를 들어 플래시 메모리를 포맷팅하는 것은 플래시 메모리 제어기(106)에 의해 또한 수행될 수 있다.
도 1b는 일부 구현예에 따른, 플래시 메모리 제어기(106)의 대표적인 구현예를 예시한다. 플래시 메모리 제어기(106)는 NAND 메모리(108)에서 메모리 데이터의 스트라이핑, 계산, 및 저장을 제어하기 위해 제어 신호를 생성함으로써 NAND 메모리(108)의 동작을 제어할 수 있다. 본 개시와 일치하여, 플래시 메모리 제어기(106)는 NAND 메모리(108)의 동작을 위해 호스트 프로세서(104)로부터 신호를 수신할 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 프로세서(105), 메모리(109), 및 저장장치(107)를 포함할 수 있다. 일부 실시예에서, 플래시 메모리 제어기(106)는 집적 회로(IC) 칩(예를 들어, 애플리케이션-특정 집적 회로(ASIC) 또는 필드-프로그램 가능한 게이트 어레이(FPGA)로서 구현된)과 같은 단일 디바이스, 또는 전용 기능을 가진 별개의 디바이스에 상이한 모듈을 가질 수 있다. 일부 실시예에서, 플래시 메모리 제어기(106)의 구성요소는 통합 디바이스에 있거나, 또는 상이한 위치에 분포되지만 네트워크를 통해 서로 통신할 수 있다.
프로세서(105)는 임의의 적절한 유형의 범용 또는 특수-목적 마이크로프로세서, 디지털 신호 프로세서, 또는 마이크로제어기를 포함할 수 있다. 프로세서(105)는 신호(예컨대, 호스트 프로세서(104)로부터의 신호)를 분석하며 및/또는 스캔 기법을 제어하는데 전용되는 독립형 프로세서 모듈로서 구성될 수 있다. 대안적으로, 프로세서(105)는 신호 분석/스캔 기법 제어에 관련되지 않은 다른 기능을 수행하기 위해 공유 프로세서 모듈로서 구성될 수 있다. 도 1b에 도시되지 않지만, 프로세서(105)는 소프트웨어, 하드웨어, 미들웨어, 펌웨어, 또는 그것의 임의의 조합을 사용하여 구현될 수 있는 다수의 기능 유닛 또는 모듈을 포함할 수 있다. 다수의 기능 유닛은 호스트 프로세서(104)로부터의 신호 또는 임의의 사전-저장된 제어 데이터에 기초하여 본 개시의 패리티 데이터를 스트라이핑하고, 계산하며, 그것의 저장을 제어하는 것을 수행할 수 있다.
저장장치(107) 및 메모리(109)는 프로세서(105)가 동작할 필요가 있을 수 있는 임의의 유형의 정보를 저장하기 위해 제공된 임의의 적절한 유형의 대용량 저장장치를 포함할 수 있다. 메모리(109) 및/또는 저장장치(107)는 휘발성 또는 비-휘발성, 자기, 반도체-기반, 테이프-기반, 광학, 착탈식, 비-착탈식, 또는 이에 제한되지 않지만, ROM, 플래시 메모리, 동적 RAM, 정적 RAM, 하드 디스크, SSD, 광 디스크 등을 포함한 다른 유형의 저장 디바이스 또는 유형의(즉, 비-일시적) 컴퓨터-판독 가능한 매체일 수 있다. 저장장치(107) 및/또는 메모리(109)는 본원에서 개시된 기능을 수행하기 위해 프로세서(105)에 의해 실행될 수 있는 하나 이상의 컴퓨터 프로그램을 저장하도록 구성될 수 있다. 예를 들어, 메모리(109) 및/또는 저장장치(107)는 RAID 스트라이프를 형성하고, 패리티 데이터를 계산하며, 패리티 데이터의 저장을 제어하기 위해 프로세서(105)에 의해 실행될 수 있는 프로그램(들)을 저장하도록 구성될 수 있다. 일부 구현예에서, 저장장치(107) 및 메모리(109)는 또한 프로세서(105)에 의해 수신되고 및/또는 사용된 정보 및 데이터를 저장/캐싱하도록 구성될 수 있다. 예를 들어, 저장장치(107) 및 메모리(109)는 호스트 프로세서(104)로부터 수신된 데이터, 및/또는 RAID 동작 동안 생성된 데이터(예컨대, 임시 패리티 데이터)를 저장/캐싱할 수 있다.
도 1a를 다시 참조하면, 플래시 메모리 제어기(106)는 예를 들어, 프로세서 버스를 통해, 호스트 프로세서(104)에 동작 가능하게 결합되며, 호스트 프로세서(104)로부터 지시를 수신하도록 구성된 호스트 인터페이스(I/F)를 포함할 수 있다. 호스트 I/F는 몇 가지만 말하자면, 직렬 접속 SCSI(SAS), 병렬 SCSI, PCI 고속(PCIe), NVM 고속(NVMe), 고급 호스트 제어기 인터페이스(AHCI)를 포함할 수 있다. 플래시 메모리 제어기(106)는 또한 관리 모듈 및 NAND 메모리 인터페이스(I/F)를 포함할 수 있다. 일부 구현예에서, 관리 모듈은 호스트 I/F 및 NAND 메모리 I/F에 동작 가능하게 결합되며 호스트 프로세서(104)로부터 수신된 지시에 기초하여 NAND 메모리(108)의 동작(예컨대, 판독, 기록, 소거, 및 프로그램 동작)을 제어하기 위해 하나 이상의 제어 신호를 생성하며 제어 신호를 NAND 메모리 I/F로 전송하도록 구성된다. 예를 들어, 관리 모듈은 NAND 메모리(108)에서 스트라이프를 결정하며, 임시 패리티 데이터를 결정하고 스트라이프에서 메모리 데이터를 복구하기 위해 계산을 수행한다. 관리 모듈은 임의의 적절한 제어 및 상태 기계일 수 있다. 일부 구현예에서, NAND 메모리 I/F는 제어 신호를 NAND 메모리(108)로 송신하고 NAND 메모리(108)로부터 상태 신호를 수신하도록 구성된다. 상태 신호는 NAND 메모리(108)에 의해 수행된 각각의 동작의 상태(예컨대, 실패, 성공, 지연 등)를 나타낼 수 있으며, 이것은 피드백으로서 관리 모듈로 돌려 보내어질 수 있다. NAND 메모리 I/F는 몇 가지만 예를 들자면, 단일 데이터 레이트(SDR) NAND 플래시 인터페이스, 개방 NAND 플래시 인터페이스(ONFI), 토글 이중 데이터 레이트(DDR) 인터페이스를 포함할 수 있다.
NAND 메모리(108)는 3D NAND 메모리 셀의 어레이의 형태로 NAND 메모리 셀의 어레이를 가진 NAND 플래시 메모리이다. 일부 구현예에서, NAND 메모리 셀의 어레이는 워드 라인 및 메모리 스트링의 교차점에 의해 형성된, 3D NAND 메모리 셀의 어레이이며, 그 각각은 메모리 스택을 통해 기판 위에서 수직으로 연장된다. 3D NAND 기술(예컨대, 메모리 스택에서 층/티어의 수)에 의존하여, 메모리 스트링은 통상적으로 32 내지 256개의 NAND 메모리 셀을 포함하며, 그 각각은 플로팅-게이트 트랜지스터 또는 전하-트래핑 트랜지스터를 포함한다.
NAND 메모리 셀은 페이지로 조직될 수 있으며, 이것은 그 후 메모리 블록으로 조직되고, 각각의 NAND 메모리 셀은 비트 라인(BL)으로 불리우는 별개의 라인에 전기적으로 연결된다. NAND 메모리 셀에서 동일한 자리를 가진 모든 셀은 워드 라인(WL), 즉 도전성 게이트 층에 의해 제어 게이트를 통해 전기적으로 연결될 수 있다. 각각의 워드 라인은 복수의 페이지에서 메모리 셀의 제어 게이트와 전기적으로 결합될 수 있다. 일부 구현예에서, 평면은 동일한 비트 라인을 통해 전기적으로 연결되는 특정한 수의 메모리 블록을 포함한다. 도 7은 일부 구현예에 따라, 측 방향으로 메모리 블록에서 NAND 메모리(108)의 단면도의 개략도를 예시한다. 도 7에 도시된 바와 같이, 복수의 게이트 도전성 층, 즉 GCL1, GCL2, ..., 은 수직 방향으로 메모리 블록에 배열된다. 게이트 도전성 층의 각각은 측방향으로 연장된다. 단일 게이트 도전성 층 및 메모리 스트링에 의해 형성된 메모리 셀은 페이지를 형성한다. 각각의 게이트 도전성 층은, 하나의 메모리 블록에서, 다수의 페이지의 메모리 셀에 결합될 수 있다. 즉, 하나의 메모리 블록은 단일 레벨 상에서 다수의 페이지를 포함할 수 있다. 두 개의 인접한 게이트 도전성 층은, 본 개시에서 정의된 층을 형성한다. 예를 들어, GCL1 및 GCL2는 층 1을 형성하고, GCL3 및 GCL4는 층 2를 형성한다. SSG는 각각 수직 방향으로 복수의 게이트 도전성 층(예컨대, 복수의 메모리 셀)에 전기적으로 결합될 수 있다. 일부 구현예에서, NAND 메모리(108)는 각각이 적어도 하나의 평면을 갖는, 다수의 다이를 포함한다. NAND 메모리(108)의 예가 도 2, 도 3a 및 도 3b, 및 도 4a 내지 도 4c 및 관련 설명에서 상세하게 예시된다.
호스트 프로세서(104)는 플래시 메모리 제어기(106)로부터 송신된 데이터 및/또는 신호에 기초하여 장치(100)에서의 상이한 모듈/부분에서 동작을 조정할 수 있다. 호스트 프로세서(104)는 플래시 메모리 제어기(106)로부터 송신된 데이터 및/또는 신호에 기초하여 RAM(110)의 동작을 제어할 수 있다. 예를 들어, 호스트 프로세서(104)는 플래시 메모리 제어기(106)로부터 임시 패리티 데이터를 수신하며 계산 및/또는 참조를 위해 RAM(110)에 임시 패리티 데이터를 저장할 수 있다. 호스트 프로세서(104)는 또한 임시 패리티 데이터가 더 이상 요구되지 않을 때 RAM(110)으로부터 임시 패리티 데이터를 제거할 수 있다.
또 다른 예(도시되지 않음)에서, 플래시 메모리 제어기(106) 및 NAND 메모리(108)의 칩은, 범용 플래시 저장(UFS) 패키지 또는 eMMC 패키지와 같은, 동일한 패키지에 포함되며, 와이어 접합을 통해 전기적으로 연결될 수 있다. 플래시 메모리 제어기(106)는 그 후 UFS 구동기 소프트웨어 또는 MMC 구동기 소프트웨어와 같은, 소프트웨어 구동기에 의해 구동되는, 프로세서 버스와 같은, 인터링크를 통해 호스트 프로세서(104)와 데이터를 전달할 수 있다.
일부 구현예에서, 장치(100)는 또한 NAND 메모리(108)의 동작을 가능하게 하기 위해 사용된 임의의 적절한 신호, 아날로그, 및/또는 호합-신호 회로를 포함하는 주변 회로(도시되지 않음, 또한 제어 및 감지 회로로서 알려짐)를 포함한다. 예를 들어, 주변 회로는 페이지 버퍼, 디코더(예컨대, 로우 디코더 및 컬럼 디코더), 감지 증폭기, 구동기(예컨대, 워드 라인 구동기), 전하 펌프, 전류 또는 전압 기준, 또는 회로의 임의의 능동 또는 수동 구성요소(예컨대, 트랜지스터, 다이오드, 레지스터, 또는 커패시터) 중 하나 이상을 포함할 수 있다.
RAID 알고리즘은 데이터 중복성을 생성하기 위해, 복수의 스트라이프로 구성된, NAND 메모리(108)의 메모리 데이터 상에서 수행될 수 있다. 스트라이프는 NAND 메모리(108)의 원하는 물리적 위치(예컨대, 페이지, 메모리 블록 등)에 분포된, 복수의 데이터 부분을 포함할 수 있다. 임시 패리티 데이터가 각각의 스트라이프의 손상된 메모리 데이터를 검출하며 및/또는 복구하기 위해 생성될 수 있다. 선택적으로, 임시 패리티 데이터는 유지되거나 또는 제거될 수 있다. 전체 패리티 데이터는 스트라이프 모두에서 메모리 데이터를 위해 생성될 수 있다. 도 2, 도 3a 및 도 3b, 및 도 4a 내지 도 4c는 일부 구현예에 따라, 각각의 NAND 메모리 및 대응하는 RAID 알고리즘에서 3개의 상이한 스트라이핑 구성을 예시한다. 도 5a 내지 도 5d는 본 개시의 일부 양상에 따라, 각각의 RAID 알고리즘을 위한 임시 패리티 데이터 저장을 예시한다. 도 6a 내지 도 6c는 각각 본 개시의 일부 양상에 따라, 각각의 스트라이핑 구성에서 RAID 알고리즘을 사용하여 스트라이핑하고 데이터 복구를 수행하기 위한 방법의 흐름도를 예시한다. 방법(600, 620, 및 640)에 도시된 동작은 철저하지 않으며 다른 동작이 또한 예시된 동작 중 임의의 것 전, 후, 또는 그 사이에서 수행될 수 있다는 것이 이해된다. 뿐만 아니라, 동작 중 일부는 동시에, 또는 도 6a 내지 도 6c에 도시된 것과 상이한 순서로 수행될 수 있다.
도 2, 도 3a 및 도 3b, 도 4a 내지 도 4c에서 NAND 메모리(200, 300, 및 400)는 각각 도 1a에서의 NAND 메모리(108)의 예이다. NAND 메모리(200, 300, 및 400) 상에서의 동작은 플래시 메모리 제어기, 예컨대, 플래시 메모리 제어기(106)에 의해 제어될 수 있다. 예시의 용이함을 위해, NAND 메모리(200, 300, 및 400)는 각각 N개의 다이(예컨대, DIE1, DIE2, ..., DIEN)를 포함할 수 있으며, 여기에서 N은 적어도 1의 양의 정수이다. 각각의 다이는 M개의 평면(예컨대, PLN1, PLN2, ..., PLNM)으로 측방향으로 나뉠 수 있으며, M은 적어도 1의 양의 정수이다. 일부 구현예에서, M은 2 이상이다. 일부 구현예에서, M은 6 또는 8과 같이, 4보다 크거나 같다. 각각의 평면은 X개의 메모리 블록(B1, B2, ..., BX)으로 측방향으로 나뉠 수 있으며, X는 적어도 1의 양의 정수이다. 각각의 메모리 블록은 다수의 게이트 도전성 층(예컨대, 측방향으로 연장된) 및 복수의 메모리 스트링(예컨대, 수직으로 연장된)의 교차에 의해 형성된 복수의 메모리 셀을 포함할 수 있다. 각각의 메모리 블록에서, 수직으로 배열된, 게이트 도전성 층의 수는 2 이상일 수 있다. 일부 구현예에서, 인접한 메모리 블록에서 동일한 레벨의 게이트 도전성 층은 서로 접촉할 수 있다. 각각의 메모리 블록은 복수의 페이지로 측방향으로 나뉠 수 있다. 메모리 데이터는 페이지, 메모리 블록, 평면, 및 다이에서 메모리 셀에 저장될 수 있다. 일부 구현예에서, M은 4와 같다. 일부 구현예에서, N은 4와 같다. 일부 구현예에서, 메모리 블록에서 게이트 도전성 층의 수는 16 이상이다.
도 2는 본 개시의 일부 양상에 따라, NAND 메모리(200)에서 이용된 RAID 알고리즘을 위한 스트라이핑 구성을 예시하며, 도 5a는 RAID 알고리즘에 따라 생성된 임시 패리티 데이터를 저장하기 위해 이용된 임시 저장 유닛(210)을 예시한다. 일부 구현예에서, NAND 메모리(200)에서의 스트라이핑은 다중-평면 실패에서 메모리 데이터를 복구하기 위해 사용될 수 있다. 도 2, 도 5a, 및 도 6a가 함께 설명된다.
도 6a를 참조하면, 방법(600)은 동작(602)에서 시작하며, 여기에서 J개의 층이 M개 평면 및 N개의 다이에서의 각각의 메모리 블록에서 결정되고, J는 적어도 2의 양의 정수이다. 각각의 층은 인접한 게이트 도전성 층의 쌍을 포함한다. 도 2는 방법(600)에 대한 대응하는 구성을 예시한다.
도 2에 도시된 바와 같이, 각각의 평면(예컨대, PLN1, PLN2, ..., PLNM)의 메모리 블록(B1)에서, J개의 층(L1, L2, ..., LJ)이 각각의 다이(DIE1, DIE2, ..., DIEN)에서 결정될 수 있다. 각각의 층은 인접한 게이트 도전성 층의 쌍을 포함할 수 있다. 일부 구현예에서, 메모리 블록(B1)은 적어도 16개의 게이트 도전성 층을 포함하며, J는 8 이상이다. 플래시 메모리 제어기(106)는 이러한 동작을 수행할 수 있다.
도 6a를 다시 참조하면, 방법(600)은 동작(604)으로 진행되며, 여기에서 M개의 스트라이프가 결정되고, 각각의 스트라이프는 각각의 평면에서 구성된다.
도 2에 도시된 바와 같이, M개의 스트라이프(201-1, 201-2, ..., 201-(M-1), 및 201-M)가 결정될 수 있다. M개 스트라이프의 각각은 각각의 평면에 대응할 수 있으며 N개의 다이 모두에서의 각각의 평면에서 J개 층에 저장되는 J×N개의 데이터 부분을 포함할 수 있다. 각각의 데이터 부분은 각각의 메모리 블록에서의 각각의 층(즉, 인접한 게이트 도전성 층의 쌍) 및 메모리 블록에서의 메모리 스트링의 교차점에 의해 형성된 메모리 셀에 저장된 메모리 데이터를 포함할 수 있다. 예를 들어, 스트라이프(201-1)는 평면(PLN1)에 대응할 수 있으며, N개의 다이(즉, DIE1 내지 DIEN)에서의 메모리 블록(B1)에서 J개 층에 저장된 J×N개의 데이터 부분을 포함할 수 있고, 스트라이프(201-M)는 평면(PLNM)에 대응할 수 있으며, N개의 다이(즉, DIE1 내지 DIEN)에서의 메모리 블록(B1)에서 J개 층에 저장된 J×N개의 데이터 부분을 포함할 수 있다. 스트라이프(201-1)에서 각각의 데이터 부분은 층(L1)에서 두 개의 게이트 도전성 층 및 PLN1에서 각각의 메모리 블록(B1)에서의 메모리 스트링에 의해 형성된 메모리 셀에 저장된 메모리 데이터를 포함한다. 다시 말해서, 다이(DIE1)에서의 평면(PLN1)의 메모리 블록(B1)에서 층(L1)에 저장된 메모리 데이터는 스트라이프(201-1)의 제1 데이터 부분을 형성하고, 다이(DIE2)에서의 평면(PLN1)의 메모리 블록(B1)에서 층(L1)에 저장된 메모리 데이터는 스트라이프(201-1)의 제2 데이터 부분을 형성하고, ..., 다이(DIE1)에서의 평면(PLN1)의 메모리 블록(B1)에서 층(LJ)에 저장된 메모리 데이터는 스트라이프(201-1)의 제(J×N-(N-1)) 데이터 부분을 형성하며, ..., 다이(DIEN)에서의 평면(PLN1)의 메모리 블록(B1)에서 층(LJ)에 저장된 메모리 데이터는 스트라이프(201-1)의 제(J×N) 데이터 부분을 형성할 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 이러한 동작을 수행할 수 있다.
도 2에 도시된 바와 같이, M개의 스트라이프(201-1, 201-2, ..., 201-(M-1), 및 201-M)는 각각 각각의 평면에 구성되며, 또 다른 평면에 데이터 부분을 포함하지 않는다. 즉, 각각의 스트라이프의 데이터 부분은 단지 각각의 평면에만 구성되며 또 다른 평면에, 예컨대 "평면에 걸쳐" 있지 않다. 스트라이핑 구성은 다수의 평면의 병렬 프로그래밍에서 발생된 프로그래밍 실패가 단일 스트라이프에서 하나 이상의 데이터 부분에 영향을 주지 않는다는 것을 보장할 수 있다. 즉, 다중-평면 실패는 단일 스트라이프에서 기껏해야 하나의 손상된 데이터 부분을 야기할 수 있다. 따라서, 다중-평면 실패에 의해 야기된, 스트라이프에서 하나 이상의 손상된 데이터 부분이 회피될 수 있다. 손상된 데이터 부분은 따라서 스트라이프의 임시 패리티 데이터를 사용하여 복구될 수 있다. 세부사항은 이하에서 제공된다.
다시 도 6a를 참조하면, 방법(600)은 동작(606)으로 진행되며, 여기에서 M개의 평면 데이터 부분은 M개의 스트라이프에 대해 결정된다.
도 2에 도시된 바와 같이, M개의 평면 패리티 데이터 부분(202-1, 202-2, ..., 202-(M-1), 202-M)이 M개의 스트라이프에 대해 결정될 수 있다. 평면 패리티 데이터 부분의 각각은 각각의 스트라이프의 데이터 부분에 기초하여 생성될 수 있다. 일부 구현예에서, 배타적 논리합(XOR) 연산은 각각의 평면 패리티 데이터 부분을 생성하기 위해 각각의 스트라이프의 J×N개의 데이터 부분에 대하여 수행된다. 예를 들어, 평면 패리티 데이터 부분(202-1)은 스트라이프(201-1)에서 모든 J×N개의 데이터 부분에 대한 XOR 연산의 결과일 수 있고, 평면 패리티 데이터 부분(202-2)은 스트라이프(201-2)에서 모든 J×N개의 데이터 부분에 대한 XOR 연산의 결과일 수 있고, 평면 패리티 데이터 부분(202-(M-1))은 스트라이프(201-(M-1))에서 모든 J×N개의 데이터 부분에 대한 XOR 연산의 결과일 수 있으며, 평면 패리티 데이터 부분(202-M)은 스트라이프(201-M)에서 모든 J×N개의 데이터 부분에 대한 XOR 연산의 결과일 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 이러한 동작을 수행할 수 있다.
도 6a를 다시 참조하면, 방법(600)은 동작(608)으로 진행되며, 여기에서 임시 저장 유닛은 M개의 평면 패리티 데이터 부분을 저장하도록 제어된다.
도 2에 도시된 바와 같이, 임시 저장 유닛(210)은 M개의 평면 패리티 데이터 부분(202-1, 202-2, ..., 202-(M-1), 202-M)의 각각을 저장하도록 제어될 수 있다. 도 5a는 M개의 평면 패리티 데이터 부분이 저장되는 임시 저장 유닛(210)의 다이어그램을 예시한다. 임시 저장 유닛(210)은 M개의 평면 패리티 데이터 부분이 원하는 양의 시간 동안 저장되도록 허용하는 임의의 저장 매체에서의 저장 공간일 수 있다. 다양한 구현예에서, 임시 저장 유닛(210)은 RAM(110)에서의 파티션 및/또는 NAND 메모리(108)에서의 전용 저장 공간일 수 있다. 일부 구현예에서, 임시 저장 유닛(210)은 메모리(109) 및/또는 저장장치(107)에 있을 수 있다. 일부 구현예에서, 임시 저장 유닛(210)은 장치(100)에 결합된 외부 저장 공간일 수 있다. 일부 구현예에서, 임시 저장 유닛(210)은 RAM(110)에 위치된다. 일부 구현예에서, M개의 평면 패리티 데이터 부분이 저장되는 지속기간은 플래시 메모리 제어기(106)가 임의의 프로그래밍 실패를 식별하고, 손상된 데이터 부분의 위치를 찾으며, 손상된 데이터 부분을 복구하기 위해 각각의 평면 패리티 데이터 부분을 사용하기에 충분히 길다. 일부 구현예에서, M개의 평면 패리티 데이터 부분은 복구 동작이 완료되거나 또는 어떤 프로그래밍 실패도 검출되지 않은 후 제거된다. 일부 다른 구현예에서, M개의 평면 패리티 데이터 부분은 유지된다. 일부 구현예에서, 플래시 메모리 제어기(106)는 이러한 동작을 수행할 수 있다.
도 6a를 다시 참조하면, 방법(600)은 동작(610)으로 진행되며, 여기에서 다중-평면 실패로 인한 임의의 프로그래밍 실패가 검출되고 있다. 프로그래밍 실패가 검출되면, 방법(600)은 동작(612)으로 진행되며, 여기에서 다중-평면 실패가 발생한 손상된 데이터 부분에 저장된 메모리 데이터가 각각의 평면 패리티 데이터 부분을 사용하여 복구된다. 손상된 데이터 부분의 복구 후, 방법(600)은 동작(614)으로 진행되며, 여기에서 패리티 데이터 세트는 M개의 평면 패리티 데이터 부분으로부터 생성된다. 어떤 프로그래밍 실패도 검출되지 않는다면, 방법(600)은 동작(614)으로 진행된다.
플래시 메모리 제어기(106)는 평면(PLN1 내지 PLNM)의 병렬 프로그래밍 동안 임의의 다중-평면 실패가 발생하는지를 결정할 수 있다. 이전에 설명된 바와 같이, 다수의 평면의 병렬 프로그래밍으로 인한 다중-평면 실패는 이들 평면의 동일한 위치에 있는 메모리 셀에서의 메모리 데이터가 손상되게 할 수 있다. 그 결과, 하나 이상의 스트라이프(즉, 202-1, ..., 202-M)의 동일한 위치에서의 데이터 부분이 손상될 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 임의의 다중-평면 실패가 각각의 스트라이프에서의 데이터 부분에서 발생하였는지를 결정하기 위해 각각의 스트라이프의 평면 패리티 데이터 부분을 사용할 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 손상된 데이터 부분을 검출하고 식별하기 위해 각각의 스트라이프의 데이터 부분 및 각각의 스트라이프의 평면 패리티 데이터 부분 간에 XOR 연산을 수행할 수 있다. 각각의 (만약에 있다면) 스트라이프에서 손상된 데이터 부분의 위치가 결정될 수 있다.
손상된 데이터 부분이 스트라이프에서 검출된다면, 플래시 메모리 제어기(106)는 교체 데이터 부분을 생성하기 위해 스트라이프에서의 데이터 부분의 나머지(예컨대, 손상되지 않은 데이터 부분) 및 스트라이프의 평면 패리티 데이터 부분에 기초하여 교체 데이터 부분을 생성할 수 있다. 일부 구현예에서, 교체 데이터 부분의 생성은 스트라이프에서의 데이터 부분의 나머지 및 스트라이프의 평면 패리티 데이터 부분 간에 XOR 연산을 수행하는 것을 포함한다. 플래시 메모리 제어기(106)는 손상된 데이터 부분에서의 메모리 데이터가 유지될 수 있도록 교체 데이터 부분을 갖고 손상된 데이터 부분을 복구할 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 계산이 요구된다면, 예컨대, 손상된 데이터 부분을 식별하고 위치를 찾으며 및/또는 교체 데이터 부분을 생성하기 위해, 임시 저장 유닛(210)으로부터 평면 패리티 데이터 부분을 액세스할 수 있다.
M개 평면 및 N개의 다이에서의 메모리 블록(B1)에서 J개 층의 패리티/중복 데이터를 나타내는 패리티 데이터 세트(212), 예컨대 J×N×M개의 데이터 부분은, M개의 평면 패리티 데이터 부분으로부터 생성될 수 있다. 일부 구현예에서, 패리티 데이터 세트(212)는 M개의 평면 패리티 데이터 부분 간에 XOR 연산을 수행함으로써 획득된다. 패리티 데이터 세트(212)는 NAND 메모리(200)에서 영구 저장 유닛(예컨대, 복수의 메모리 셀)에 저장될 수 있다. 일부 구현예에서, 패리티 데이터 세트(212)는 스트라이프(201-M)에서의 데이터 부분에 저장될 수 있다. 플래시 메모리 제어기(106)는 이러한 동작을 수행할 수 있다.
일부 구현예에서, 플래시 메모리 제어기(106)는 M개 평면 및 N개의 다이에서 메모리 블록(B1)에 남아있는 층을 위한 동작(602 내지 616)을 계속해서 수행할 수 있다. 예를 들어, 메모리 블록(B1)의 층(L(J+1) 내지 LK)에 대응하는, 평면 패리티 데이터 부분(204-1, ..., 204-M)은 도 5a에 도시된 바와 같이, 계산 및/또는 참조를 위해 임시 저장 유닛(210)에 저장될 수 있다. 동일한 동작이 또한 M개 평면 및 N개의 다이에서 다른 메모리 블록을 위해 수행될 수 있다.
도 6a를 다시 참조하면, 방법(600)은 동작(616)으로 진행되며, 여기에서 M개의 평면 패리티 데이터 부분이 임시 저장 유닛으로부터 제거된다.
일부 구현예에서, 손상된 데이터 부분(들)의 복구 후, 플래시 메모리 제어기(106)는 임시 저장 유닛(210)으로부터 M개의 평면 패리티 데이터 부분을 제거할 수 있다. 일부 구현예에서, 어떤 프로그래밍 실패도 검출되지 않는다면, 플래시 메모리 제어기(106)는 임시 저장 유닛(210)으로부터 M개의 평면 패리티 데이터 부분을 제거한다. 각각의 평면 패리티 데이터 부분을 사용하여 상이한 평면에서 손상된 데이터 부분(들)을 복구함으로써, 다중-평면 실패에 의해 야기된, 상이한 평면에서의 동일한 위치에서 하나 이상의 손상된 데이터 부분이 복구될 수 있다. 하나의 스트라이프가 평면에 걸쳐 데이터 부분을 포함하는 RAID 방법과 비교하여, 이들 평면에서 복구/보호될 수 있는 데이터 부분의 수는 예컨대, 1 이상으로, 증가된다.
본 개시의 일부 양상에 따라, 도 3a 및 도 3b는 NAND 메모리(300)에서 이용된 RAID 알고리즘에 대한 스트라이핑 구성을 예시하며, 도 5b는 RAID 알고리즘에 따라 생성된 임시 패리티 데이터를 저장하기 위해 이용된 임시 저장 유닛(310)을 예시한다. RAID 알고리즘은 RAID 5일 수 있다. 일부 구현예에서, NAND 메모리(300)에서의 스트라이핑은 SSG 누설 실패에서 메모리 데이터를 복구하기 위해 사용될 수 있다. 도 3a, 도 3b, 도 5b, 및 도 6b가 함께 설명된다.
도 6b를 참조하면, 방법(620)은 동작(622)에서 시작하며, 여기에서 J개의 층이 M개 평면 및 N개의 다이에서의 메모리 블록에서 결정되며, J는 적어도 2의 양의 정수이다. 각각의 층은 인접한 게이트 도전성 층의 쌍을 포함한다. 도 3a 및 도 3b는 방법(620)을 위한 대응하는 구성을 예시한다. 플래시 메모리 제어기(106)는 이러한 동작을 수행할 수 있다. 이러한 동작은 동작(602)과 유사하거나 또는 동일할 수 있으며, 상세한 설명은 본원에서 반복되지 않는다.
도 6b를 다시 참조하면, 방법(620)은 동작(624)으로 진행되며, 여기에서 J개 스트라이프가 결정되고, 각각의 스트라이프는 M개 평면 및 N개의 다이에서의 단일 층에 구성된다.
도 3a 및 도 3b에 도시된 바와 같이, J개의 스트라이프(301-1, 301-2, ..., 301-(J-1), 및 301-J)가 결정될 수 있다. J개 스트라이프의 각각은 J개 층의 각각의 것에 대응할 수 있다. J개 스트라이프의 각각은 모든 평면 및 모든 다이에서 각각의 단일 층에 저장되는 M×N개의 데이터 부분을 포함할 수 있다. 각각의 데이터 부분은 각각의 메모리 블록에서의 각각의 층(즉, 인접한 게이트 도전성 층의 쌍) 및 메모리 블록에서의 메모리 스트링의 교차에 의해 형성된 메모리 셀에 저장된 메모리 데이터를 포함할 수 있다. 예를 들어, 스트라이프(301-1)는 층(L1)에 대응할 수 있으며, M개 평면(즉, PLN1 내지 PLNM) 및 N개의 다이(즉, DIE1 내지 DIEN)에서의 메모리 블록(B1)에서 층(L1)에 저장된 M×N개의 데이터 부분을 포함할 수 있으며, 스트라이프(301-J)는 층(LJ)에 대응할 수 있고, M개 평면 및 N개의 다이에서의 메모리 블록(B1)에서 층(LJ)에 저장된 M×N개의 데이터 부분을 포함할 수 있다. 스트라이프(301-1)에서 각각의 데이터 부분은 M개 평면 및 N개의 다이에서 각각의 메모리 블록(B1)에서의 메모리 스트링 및 두 개의 게이트 도전성 층에 의해 형성된 메모리 셀에 저장된 메모리 데이터를 포함한다. 다시 말해서, 다이(DIE1)에서 평면(PLN1)의 메모리 블록(B1)에서 층(L1)에 저장된 메모리 데이터는 스트라이프(301-1)의 제1 데이터 부분을 형성할 수 있고, 다이(DIE1)에서 평면(PLN2)의 메모리 블록(B1)에서 층(L1)에 저장된 메모리 데이터는 스트라이프(301-1)의 제(N+1) 데이터 부분을 형성할 수 있고, ..., 다이(DIE1)에서 평면(PLNM)의 메모리 블록(B1)에서 층(L1)에 저장된 메모리 데이터는 스트라이프(301-1)의 제(M×N-(N-1)) 데이터 부분을 형성할 수 있으며, ..., 다이(DIEN)에서 평면(PLNM)의 메모리 블록(B1)에서 층(L1)에 저장된 메모리 데이터는 스트라이프(301-1)의 제(M×N) 데이터 부분을 형성할 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 이러한 동작을 수행할 수 있다.
도 3a 및 도 3b에 도시된 바와 같이, J개의 스트라이프(301-1, 301-2, ..., 301-(J-1), 및 301-J)는 각각 각각의 층에 구성되며, 또 다른 층에 구성되지 않는다. 즉, J개 스트라이프의 각각은 메모리 블록에서 단지 단일 층에 데이터 부분을 포함하며 또 다른 층에, 예컨대 "층에 걸쳐" 데이터 부분을 포함하지 않는다. 스트라이핑 구성은 SSG 누설 실패가 단일 스트라이프에서 하나 이상의 손상된 데이터 부분을 야기하지 않는다는 것을 보장할 수 있다. SSG 누설 실패는 기껏해야 각각이 상이한 스트라이프에 있는, 상이한 층에서 손상된 데이터 부분을 야기할 수 있다. 따라서, SSG 누설 실패에 의해 야기된, 단일 스트라이프에서의 두 개 이상의 손상된 데이터 부분은 회피될 수 있다. 손상된 데이터 부분은 각각 스트라이프의 패리티 데이터를 사용하여 복구될 수 있다. 세부사항은 이하에서 제공된다.
도 6b를 다시 참조하면, 방법(620)은 동작(626)으로 진행되며, 여기에서 J개의 층 패리티 데이터 부분이 J개의 스트라이프에 대해 결정된다.
도 3a 및 도 3b에 도시된 바와 같이, J개의 층 패리티 데이터 부분, 302-1, 302-2, ..., 302-(J-1), 302-J는 J개의 스트라이프에 대해 결정될 수 있다. 층 패리티 데이터 부분의 각각은 각각의 스트라이프의 데이터 부분에 기초하여 생성될 수 있다. 일부 구현예에서, 배타적 논리합(XOR) 연산은 각각의 층 패리티 데이터 부분을 생성하기 위해 각각의 스트라이프의 M×N개의 데이터 부분 간에 수행된다. 예를 들어, 층 패리티 데이터 부분(302-1)은 스트라이프(301-1)의 모든 M×N개의 데이터 부분에 대한 XOR 연산의 결과일 수 있고, 층 패리티 데이터 부분(302-2)은 스트라이프(301-2)의 모든 M×N개의 데이터 부분에 대한 XOR 연산의 결과일 수 있고, ..., 층 패리티 데이터 부분(302-(J-1))은 스트라이프(301-(J-1))의 모든 M×N개의 데이터 부분에 대한 XOR 연산의 결과일 수 있으며, 층 패리티 데이터 부분(302-J)은 스트라이프(301-J)의 모든 M×N개의 데이터 부분에 대한 XOR 연산의 결과일 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 이러한 동작을 수행할 수 있다.
도 6b를 다시 참조하면, 방법(620)은 동작(628)으로 진행되며, 여기에서 임시 저장 유닛은 J개의 층 패리티 데이터 부분을 저장하도록 제어된다.
도 3a 및 도 3b에 도시된 바와 같이, 임시 저장 유닛(310)은 J개의 층 패리티 데이터 부분(302-1, 302-2, ..., 302-(J-1), 302-J)의 각각을 저장하도록 제어될 수 있다. 도 5b는 J개의 층 패리티 데이터 부분이 저장되는 임시 저장 유닛(310)의 다이어그램을 예시한다. 임시 저장 유닛(310)은 J개의 층 패리티 데이터 부분이 원하는 양의 시간 동안 저장되도록 허용하는 임의의 적절한 매체에서의 저장 공간일 수 있다. 다양한 구현예에서, 임시 저장 유닛(310)은 RAM(110)에서의 파티션 및/또는 NAND 메모리(108)에서의 전용 저장 공간일 수 있다. 일부 구현예에서, 임시 저장 유닛(310)은 장치(100)에 결합된 외부 저장 공간일 수 있다. 일부 구현예에서, 임시 저장 유닛(310)은 RAM(110)에 위치된다. 일부 구현예에서, J개의 층 패리티 데이터 부분이 저장되는 기간은 플래시 메모리 제어기(106)가 임의의 프로그래밍 실패를 식별하고, 손상된 데이터 부분의 위치를 찾으며, 손상된 데이터 부분을 복구하기 위해 각각의 층 패리티 데이터 부분을 사용하기에 충분히 길다. 일부 구현예에서, J개의 층 패리티 데이터 부분은 복구 동작이 완료되거나 또는 어떤 프로그래밍 실패도 검출되지 않은 후 제거된다. 일부 다른 구현예에서, J개 층 패리티 데이터 부분은 유지된다. 일부 구현예에서, 플래시 메모리 제어기(106)는 이러한 동작을 수행할 수 있다.
도 6b를 다시 참조하면, 방법(620)은 동작(630)으로 진행되며, 여기에서 예컨대, SSG 누설 실패로 인한, 임의의 프로그래밍 실패가 검출되고 있다. 프로그래밍 실패가 검출된다면, 방법(620)은 동작(632)으로 진행되며, 여기에서 프로그래밍 실패가 발생한 손상된 데이터 부분에 저장된 메모리 데이터는 각각의 층 패리티 데이터 부분을 사용하여 복구된다. 손상된 데이터 부분의 복구 후, 방법(620)은 동작(634)으로 진행되며, 여기에서 패리티 데이터 세트가 J개의 층 패리티 데이터 부분으로부터 생성된다. 어떤 프로그래밍 실패도 검출되지 않는다면, 방법(620)은 동작(634)으로 진행된다.
플래시 메모리 제어기(106)는 SSG 누설 실패로 인한 임의의 프로그래밍 실패가 발생하였는지를 결정할 수 있다. 이전에 설명된 바와 같이, SSG 누설 실패로 인한 프로그래밍 실패는 상이한 레벨의 동일한 위치에 있는 메모리 셀에서의 메모리 데이터가 손상되게 할 수 있다. 그러나, 도 3a 및 도 3b에 예시된 스트라이핑은 만약에 있다면, 스트라이프에서의 단지 단일 데이터 부분만이 SSG 누설 실패로 인해 손상될 수 있음을 보장할 수 있다. SSG 누설 실패는 기껏해야 상이한 스트라이프에서의 데이터 부분이 손상되게 할 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 임의의 프로그래밍 실패가 각각의 스트라이프에서의 데이터 부분에서 발생하였는지를 결정하기 위해 각각의 스트라이프의 층 패리티 데이터 부분을 사용할 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 손상된 데이터 부분을 검출하고 식별하기 위해 각각의 스트라이프의 데이터 부분 및 각각의 스트라이프의 층 패리티 데이터 부분 간에 XOR 연산을 수행할 수 있다. 각각 (만약에 있다면) 스트라이프에서 손상된 데이터 부분의 위치가 결정될 수 있다.
손상된 데이터 부분이 스트라이프에서 검출되면, 플래시 메모리 제어기(106)는 교체 데이터 부분을 생성하기 위해 스트라이프에서 데이터 부분의 나머지(예컨대, 손상되지 않은 데이터 부분) 및 스트라이프의 층 패리티 데이터 부분에 기초하여 교체 데이터 부분을 생성할 수 있다. 구현예에서, 교체 데이터 부분의 생성은 스트라이프에서 데이터 부분의 나머지 및 스트라이프의 층 패리티 데이터 부분 간에 XOR 연산을 수행하는 것을 포함한다. 플래시 메모리 제어기(106)는 손상된 데이터 부분에서의 메모리 데이터가 유지될 수 있도록 교체 데이터 부분으로 손상된 데이터 부분을 복구할 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 계산이 요구된다면, 예컨대 손상된 데이터 부분을 식별하고 위치를 찾으며 및/또는 교체 데이터 부분을 생성하기 위해, 임시 저장 유닛(310)으로부터 층 패리티 데이터 부분을 획득할 수 있다.
M개 평면 및 N개의 다이에서 메모리 블록(B1)에서의 J개 층의 패리티/중복 데이터를 나타내는 패리티 데이터 세트(312), 예컨대, J×N×M개의 데이터 부분은 J개의 층 패리티 데이터 부분으로부터 생성될 수 있다. 일부 구현예에서, 패리티 데이터 세트(312)는 J개의 층 패리티 데이터 부분 간에 XOR 연산을 수행함으로써 획득된다. 패리티 데이터 세트(312)는 NAND 메모리(300)에서 영구 저장 유닛(예컨대, 복수의 메모리 셀)에 저장될 수 있다. 플래시 메모리 제어기(106)는 이러한 동작을 수행할 수 있다.
일부 구현예에서, 플래시 메모리 제어기(106)는 M개 평면 및 N개의 다이에서의 메모리 블록(B1)에서 남아있는 층에 대한 동작(622 내지 636)을 계속해서 수행할 수 있다. 예를 들어, 메모리 블록(B1)의 층(L(J+1) 내지 LK)에 대응하는 층 패리티 데이터 부분(302-(J+1), ..., 302-(K-1), 302-K)은 계산 및/또는 참조를 위해 임시 저장 유닛(210)에 저장될 수 있다. 동일한 동작이 또한 M개 평면 및 N개의 다이에서 다른 메모리 블록에 대해 수행될 수 있다.
도 6b를 다시 참조하면, 방법(620)은 동작(636)으로 진행되며, 여기에서 J개의 층 패리티 데이터 부분이 임시 저장 유닛으로부터 제거된다.
일부 구현예에서, 손상된 데이터 부분(들)의 복구 및 패리티 데이터 세트의 생성 후, 플래시 메모리 제어기(106)는 임시 저장 유닛(310)으로부터 J개의 층 패리티 데이터 부분을 제거할 수 있다. 일부 구현예에서, 어떤 프로그래밍 실패도 검출되지 않는다면, 플래시 메모리 제어기(106)는 임시 저장 유닛(310)으로부터 J개의 층 패리티 데이터 부분을 제거한다. 각각의 층 패리티 데이터 부분을 사용하여 상이한 층에서 손상된 데이터 부분(들)을 복구함으로써, 하나 이상의 층에서의 동일한 위치에서 SSG 누설 실패로 인한 프로그래밍 실패에 의해 야기된, 하나 이상의 손상된 데이터 부분이 복구될 수 있다. 하나의 스트라이프가 층에 걸쳐 데이터 부분을 포함하는 RAID 방법과 비교하여, 이들 층에서 복구/보호될 수 있는 데이터 부분의 수는 예컨대, 1 이상으로, 증가된다.
본 개시의 일부 양상에 따라, 도 4a 내지 도 4c는 NAND 메모리(400)에 이용된 RAID 알고리즘에 대한 스트라이핑 구성을 예시하고, 도 5c는 RAID 알고리즘에 따라 생성된 임시 패리티 데이터를 저장하기 위해 이용된 임시 저장 유닛(410)을 예시하며, 도 5d는 일부 구현예에 따른, RAID 알고리즘에 따라 생성된 임시 패리티 데이터를 저장하기 위해 이용된 제2 임시 저장 유닛(420)을 예시한다. RAID 알고리즘은 RAID 5일 수 있다. 일부 구현예에서, NAND 메모리(400)에서 스트라이핑 구성은 SSG 누설 실패, 다중-평면 실패, 또는 둘 모두에 의해 손상된 메모리 데이터를 복구하기 위해 사용될 수 있다. 도 4a 내지 도 4c, 도 5c, 도 5d, 및 도 6c는 함께 설명된다.
도 6c를 참조하면, 방법(640)은 동작(642)에서 시작하며, 여기에서 J개의 층은 M개 평면 및 N개의 다이에서의 각각의 메모리 블록에서 결정되며, J는 적어도 2의 양의 정수이다. 각각의 층은 인접한 게이트 도전성 층의 쌍을 포함한다. 도 4a 내지 도 4c는 방법(640)에 대한 대응하는 구성을 예시한다. 플래시 메모리 제어기(106)는 이러한 동작을 수행할 수 있다. 이러한 동작은 동작(602)과 유사하거나 또는 동일할 수 있으며, 상세한 설명은 본원에서 반복되지 않는다.
도 6c를 다시 참조하면, 방법(640)은 동작(644)으로 진행되며, 여기에서 스트라이프의 M개 세트가 결정되고, 각각의 세트는 J개의 스트라이프를 갖는다. M개 세트의 각각은 M개 평면의 각각의 것에 대응한다. J개 스트라이프의 각각은 N개의 다이에서 각각의 평면에서의 단일 층에 구성된다.
도 4a 내지 도 4c에 도시된 바와 같이, 각각의 세트가 J개의 스트라이프(즉, 스트라이프 1, 스트라이프 2, ..., 스트라이프 J)를 갖는, 스트라이프의 M개 세트(즉, 세트(401), ..., 세트(40M))에 구성된, J×M개의 스트라이프가 결정될 수 있다. M개 세트의 각각은 M개 평면의 각각의 것에 대응할 수 있다. J개 스트라이프의 각각은 각각의 평면에서 J개 층의 각각의 것에 대응할 수 있다. J개 스트라이프의 각각은 N개의 다이에서 각각의 단일 층에 저장되는 N개의 데이터 부분을 포함할 수 있다. 각각의 데이터 부분은 각각의 메모리 블록에서의 각각의 층(즉, 인접한 게이트 도전성 층의 쌍) 및 메모리 블록에서의 메모리 스트링의 교차점에 의해 형성된 메모리 셀에 저장된 메모리 데이터를 포함할 수 있다. 예를 들어, 세트(401)의 스트라이프 1은 평면(PLN1)에서의 메모리 블록(B1)에서 층(L1)에 대응할 수 있으며, 평면(PLN1) 및 N개의 다이(즉, DIE1 내지 DIEN)에서의 메모리 블록(B1)에서 층(L1)에 저장된 N개의 데이터 부분을 포함할 수 있고; 세트(40M)의 스트라이프 J는 평면(PLNM)에서 메모리 블록(B1)에서의 층(LJ)에 대응할 수 있으며, 평면(PLNM) 및 N개의 다이에서의 메모리 블록(B1)에서 층(LJ)에 저장된 N개의 데이터 부분을 포함할 수 있다. 스트라이프에서 각각의 데이터 부분은 각각의 평면 및 N개의 다이에서 각각의 메모리 블록(B1)에서의 메모리 스트링 및 두 개의 게이트 도전성 층에 의해 형성된 메모리 셀에 저장된 메모리 데이터를 포함한다. 다시 말해서, 스트라이프의 M개 세트의 각각의 것에 대해, 다이(DIE1)에서의 메모리 블록(B1)에서 층(L1)에 저장된 메모리 데이터는 스트라이프 1의 제1 데이터 부분을 형성할 수 있으며, 다이(DIEN)에서의 메모리 블록(B1)에서 층(L1)에 저장된 메모리 데이터는 스트라이프 1의 제N 데이터 부분을 형성할 수 있고, ..., 다이(DIE1)에서의 메모리 블록(B1)에서 층(LJ)에 저장된 메모리 데이터는 스트라이프 J의 제1 데이터 부분을 형성할 수 있으며, 다이(DIEN)에서의 메모리 블록(B1)에서 층(LJ)에 저장된 메모리 데이터는 스트라이프 J의 제N 데이터 부분을 형성할 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 이러한 동작을 수행할 수 있다.
도 4a 내지 도 4c에 도시된 바와 같이, 스트라이프의 M개 세트는 각각 각각의 평면에 구성되며, 각각의 세트에서 J개의 스트라이프는 각각 단일 개별 층에 구성된다. 즉, 각각의 스트라이프는 단일 평면 및 단일 층에 구성된다. 각각의 스트라이프의 데이터 부분은 따라서 단지 단일 층 및 단일 평면에만 구성되며, 또 다른 층 또는 또 다른 평면에, 예컨대 "평면에 걸쳐" 또는 "층에 걸쳐" 있지 않다. 스트라이핑은 프로그래밍 실패, 예컨대, 다중-평면 실패 및/또는 SSG 누설 실패가 단지 스트라이프에서 단일 데이터 부분만을 손상시킬 수 있다는 것을 보장할 수 있다. 다중-평면 실패 및/또는 SSG 누설 실패는 기껏해야 상이한 스트라이프에서의 메모리 데이터를 손상시킬 수 있다. 따라서, SSG 누설 실패 및/또는 다중-평면 실패와 같은 프로그래밍 실패에 의해 야기된, 스트라이프에서의 하나 이상의 손상된 데이터 부분은 회피될 수 있으며, 손상된 데이터 부분은 스트라이프의 각각의 패리티 데이터를 사용하여 복구될 수 있다. 세부사항은 이하에서 제공된다.
도 6c를 다시 참조하면, 방법(640)은 동작(646)으로 진행되며, 여기에서 각각의 세트가 J개의 패리티 데이터 부분을 갖는, 데이터 패리티 부분의 M개 세트가 스트라이프의 M개 세트에 대해 결정된다.
도 4a 내지 도 4c에 도시된 바와 같이, 각각의 세트가 J개의 패리티 데이터 부분을 갖는, 패리티 데이터 부분의 M개 세트가 결정될 수 있다. 패리티 데이터 부분의 각각의 세트는 스트라이프의 각각의 세트에 대응할 수 있으며, 세트에서 J개의 패리티 부분의 각각은 각각의 세트에서의 각각의 스트라이프에 대응할 수 있다. 도 4a 내지 도 4c에 도시된 바와 같이, 패리티 데이터 부분의 제1 세트는 패리티 데이터 부분(401-1, 401-2, ..., 401-J)을 포함할 수 있고; 패리티 데이터 부분의 제(M-1) 세트는 패리티 데이터 부분(40(M-1)-1, 40(M-1)-2, ..., 40(M-1)-(J-1), 40(M-1)-J)을 포함할 수 있으며; 패리티 데이터 부분의 제M 세트는 패리티 데이터 부분(40M-1, 40M-2, ..., 40M-(J-1), 40M-J)을 포함할 수 있다. 패리티 데이터 부분의 각각은 각각의 스트라이프의 데이터 부분에 기초하여 생성될 수 있다. 일부 구현예에서, 배타적 논리합(XOR) 연산이 각각의 패리티 데이터 부분을 생성하기 위해 각각의 스트라이프의 N개 데이터 부분 간에 수행된다. 예를 들어, 패리티 데이터 부분(401-1)은 스트라이프의 세트(401)에서 스트라이프 1의 N개 데이터 부분 모두에 대한 XOR 연산의 결과일 수 있고, 패리티 데이터 부분(401-2)은 스트라이프의 세트(401)의 스트라이프 2의 N개 데이터 부분 모두에 대한 XOR 연산의 결과일 수 있고, ..., 패리티 데이터 부분(40M-1)은 스트라이프의 세트(40M)의 스트라이프 1의 N개 데이터 부분 모두에 대한 XOR 연산의 결과일 수 있으며, 패리티 데이터 부분(40M-J)은 스트라이프의 세트(40M)의 스트라이프 J의 N개 데이터 부분 모두에 대한 XOR 연산의 결과일 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 이러한 동작을 수행할 수 있다.
도 6c를 다시 참조하면, 방법(640)은 동작(648)으로 진행되며, 여기에서 임시 저장 유닛이 패리티 데이터 부분의 M개 세트를 저장하도록 제어된다.
도 4a 내지 도 4c에 도시된 바와 같이, 임시 저장 유닛(410)은 패리티 데이터 부분의 M개 세트의 각각을 저장하도록 제어될 수 있다. 도 5c는 패리티 데이터 부분의 M개 세트가 저장되는 임시 저장 유닛(410)의 다이어그램을 예시한다. 임시 저장 유닛(410)은 패리티 데이터 부분이 원하는 양의 시간 동안 저장되도록 허용하는 임의의 적절한 매체에서의 저장 공간일 수 있다. 다양한 구현예에서, 임시 저장 유닛(410)은 RAM(110)에서의 파티션 및/또는 NAND 메모리(108)에서의 전용 저장 공간일 수 있다. 일부 구현예에서, 임시 저장 유닛(410)은 RAM(110)에 위치된다. 일부 구현예에서, 패리티 데이터 부분의 M개 세트가 저장되는 지속기간은 플래시 메모리 제어기(106)가 임의의 프로그래밍 실패를 식별하고, 손상된 데이터 부분의 위치를 찾으며, 손상된 데이터 부분을 복구하기 위해 각각의 층 패리티 데이터 부분을 사용하기에 충분히 길다. 일부 구현예에서, 패리티 데이터 부분의 M개 세트는 복구 동작이 완료되거나 또는 어떤 프로그래밍 실패도 검출되지 않는다면 제거된다. 일부 다른 구현예에서, 패리티 데이터 부분의 M개 세트가 유지된다. 일부 구현예에서, 플래시 메모리 제어기(106)는 이러한 동작을 수행할 수 있다.
일부 구현예에서, 패리티 데이터 부분의 각각의 세트에 대해, 플래시 메모리 제어기(106)는 임시 패리티 데이터 부분을 계산할 수 있다. M개의 임시 패리티 데이터 부분이 결정될 수 있다. 일부 구현예에서, 스트라이프의 각각의 세트에 대해, 플래시 메모리 제어기(106)는 패리티 데이터 부분의 M개 세트를 획득하기 위해, 패리티 데이터 부분을 순차적으로 계산하며, 예컨대, 스트라이프 1의 패리티 데이터 부분 내지 스트라이프 J의 패리티 데이터 부분을 형성한다. 패리티 데이터 부분의 각각의 세트에 대해, 플래시 메모리 제어기(106)는 임시 패리티 부분을 생성하기 위해 제2 패리티 데이터 부분(예컨대, 스트라이프 2의) 및 제1 패리티 데이터 부분(예컨대, 스트라이프 1의) 간에 XOR 연산을 수행할 수 있으며; 새로운 임시 패리티 데이터 부분을 생성하기 위해 제3 패리티 데이터 부분(예컨대, 스트라이프 3의) 및 임시 패리티 데이터 부분 간에 XOR 연산을 수행할 수 있다. 플래시 메모리 제어기(106)는 제2 임시 저장 유닛(도시되지 않음)에 임시 패리티 데이터 부분을 저장하며, 그것을 새로운 임시 패리티 데이터 부분으로 교체할 수 있다. 제2 임시 저장 유닛은 RAM(110)에서의 파티션 및/또는 NAND 메모리(108)에서의 전용 저장 공간일 수 있다. 일부 구현예에서, 제2 임시 저장 유닛은 장치(100)에 결합된 외부 저장 공간일 수 있다. 일부 구현예에서, 제2 임시 저장 유닛은 RAM(110)에 위치된다. 일부 구현예에서, 제2 임시 저장 유닛은 임시 저장 유닛(410)과 동일한 매체에 있다. 플래시 메모리 제어기(106)는 J개 스트라이프의 나머지의 각각의 패리티 데이터 부분을 계속해서 계산하며, J개 스트라이프의 나머지의 각각에 대한 새로운 임시 패리티 데이터 부분을 생성할 수 있다. 플래시 메모리 제어기(106)는 임시 저장 유닛(410)에서 각각의 세트의 J개 패리티 데이터 부분을 저장하며, 이들 스트라이프의 각각에 대한 제2 임시 저장 유닛에 새로운 임시 패리티 데이터 부분으로 이전 임시 패리티 데이터 부분을 업데이트할 수 있다.
예를 들어, 도 4a 내지 도 4c에 도시된 바와 같이, M개의 스트라이프의 각각에 대해, 플래시 메모리 제어기(106)는 제1 패리티 데이터 부분(401-1, ..., 40(M-1)-1, 40M-1)을 계산할 수 있다. 플래시 메모리 제어기(106)는 그 후 제2 패리티 데이터 부분(401-2, ..., 40(M-1)-2, 40M-2)을 계산할 수 있다. 플래시 메모리 제어기(106)는 그 후 제2 패리티 데이터 부분과 제1 패리티 데이터 부분 간에 XOR 연산을 수행함으로써 각각의 세트의 임시 패리티 데이터 부분(예컨대, 411-1, 412-1, ..., 41(M-1)-1, 41M-1)을 계산할 수 있다. 예를 들어, 플래시 메모리 제어기(106)는 411-1 = 401-1×401-2, 412-1 = 402-1×402-2, ..., 41(M-1)-1 = 40(M-1)-1×40(M-1)-2, 41M-1 = 40M-1×40M-2임을 결정할 수 있다. 임시 패리티 데이터 부분(411-1, 412-1, ..., 41(M-1)-1, 41M-1)은 제2 임시 저장 유닛에 저장될 수 있다. 플래시 메모리 제어기(106)는 그 후 제3 패리티 데이터 부분(401-3, 402-3, ..., 40(M-1)-3, 40M-3), 및 스트라이프의 각각의 세트에 대응하는 새로운 임시 패리티 데이터 부분을 계산할 수 있다. 예를 들어, 플래시 메모리 제어기(106)는 411-2 = 411-1×401-3, 412-2 = 412-1×402-3, ..., 41(M-1)-2 = 41(M-1)-1×40(M-1)-3, 41M-2 = 41M-1×40M-3임을 결정할 수 있다. 플래시 메모리 제어기(106)는 각각의 새로운 임시 패리티 데이터 부분으로 제2 임시 저장 유닛에서의 임시 패리티 데이터 부분을 교체할 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 각각의 세트의 마지막 스트라이프까지 상기 동작을 반복할 수 있다. 도 4c에 도시된 바와 같이, 플래시 메모리 제어기(106)는 411-(J-1) = 411-(J-2)×401-J, 412-(J-1) = 412-(J-1)×402J, ..., 41(M-1)-(J-1) = 41(M-1)-(J-2)×40(M-1)-J, 41M-(J-1) = 41M-(J-2)×40M-J임을 결정할 수 있다. M개의 임시 패리티 데이터 부분이 그 후 획득되며 계산 및/또는 참조를 위해 제2 임시 저장 유닛에 저장될 수 있다.
일부 구현예에서, n=2에 대해, n은 양의 정수를 나타내고, 플래시 메모리 제어기(106)는 (n-1)번째 임시 패리티 데이터 부분을 생성하기 위해 n번째 패리티 데이터 부분과 (n-1)번째 패리티 데이터 부분 간에, 스트라이프의 각각의 세트에 대해, XOR 연산을 수행할 수 있다. 플래시 메모리 제어기(106)는 그 후 (n-1)번째 임시 패리티 데이터 부분을 제2 임시 저장 유닛으로 저장할 수 있다. n>2에 대해, n은 양의 정수를 나타내고, 플래시 메모리 제어기(106)는 (n-1)번째 임시 패리티 데이터 부분을 생성하기 위해 n번째 패리티 데이터 부분과 (n-2)번째 임시 패리티 데이터 부분 간에, 스트라이프의 각각의 세트에 대해, XOR 연산을 수행할 수 있다. 플래시 메모리 제어기(105)는 제2 임시 저장 유닛에 (n-1)번째 임시 패리티 데이터를 저장하며 (n-1)번째 임시 패리티 데이터 부분으로 저장된 (n-2)번째 임시 패리티 데이터 부분을 교체할 수 있다. n이 L과 같을 때, 플래시 메모리 제어기(106)는 각각이 각각의 평면(또는 스트라이프의 세트)에 대응하는, M개의 임시 패리티 데이터 부분을 생성할 수 있다. M개의 임시 패리티 데이터 부분은, 도 5d에 도시된 바와 같이, 411-(J-1), 412-(J-1), ..., 41(M-1)-(J-1), 41M-(J-1)일 수 있으며, 제2 임시 저장 유닛(420)에 저장될 수 있다. 플래시 메모리 제어기(106)는 M개 평면 및 N개의 다이에서 J×N×M개의 데이터 부분에 대응하는 패리티 데이터 세트를 생성하기 위해 M개의 임시 패리티 데이터 부분(411-(J-1), 412-(J-1), ..., 41(M-1)-(J-1), 41M-(J-1)) 간에 XOR 연산을 수행할 수 있다. 플래시 메모리 제어기(106)는 그 후 NAND 메모리(400)의 메모리 셀에서의 영구 저장 유닛에 패리티 데이터 세트를 저장할 수 있다.
도 6c를 다시 참조하면, 방법(640)은 동작(650)으로 진행되며, 여기에서 예컨대, SSG 누설 실패 및/또는 다중-평면 실패로 인한, 임의의 프로그래밍 실패가 검출되고 있다. 프로그래밍 실패가 검출된다면, 방법(640)은 동작(652)으로 진행되며, 여기에서 프로그래밍 실패가 발생한 손상된 데이터 부분에 저장된 메모리 데이터는 각각의 패리티 데이터 부분을 사용하여 복구된다. 손상된 데이터 부분의 복구 후, 방법(640)은 동작(654)으로 진행되며, 여기에서 패리티 데이터 세트는 패리티 데이터 부분의 M개 세트로부터 생성된다. 어떤 프로그래밍 실패도 검출되지 않는다면, 방법(640)은 동작(654)으로 진행된다.
플래시 메모리 제어기(106)는 예컨대, SSG 누설 실패 및/또는 다중-평면 실패로 인한, 임의의 프로그래밍 실패가 발생하였는지를 결정할 수 있다. 이전에 설명된 바와 같이, SSG 누설 실패는 상이한 레벨의 동일한 위치에 있는 메모리 셀에서 메모리 데이터가 손상되게 할 수 있으며, 다중-평면 실패는 상이한 평면의 동일한 위치에 있는 메모리 셀에서 메모리 데이터가 손상되게 할 수 있다. 그러나, 도 4a 내지 도 4c에 예시된 스트라이핑 구성은 만약에 있다면, 스트라이프에서 단지 단일 데이터 부분만이 SSG 누설 실패 및/또는 다중-평면 실패에 의해 손상될 수 있음을 보장할 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 임의의 프로그래밍 실패가 각각의 스트라이프에서의 데이터 부분에서 발생하였는지를 결정하기 위해 각각의 스트라이프의 패리티 데이터 부분을 사용할 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 손상된 데이터 부분을 검출하고 식별하기 위해 각각의 스트라이프의 데이터 부분 및 각각의 스트라이프의 패리티 데이터 부분 간에 XOR 연산을 수행할 수 있다. 각각의 (만약에 있다면) 스트라이프에서 손상된 데이터 부분의 위치가 결정될 수 있다.
손상된 데이터 부분이 스트라이프에서 검출되면, 플래시 메모리 제어기(106)는 교체 데이터 부분을 생성하기 위해 스트라이프에서 데이터 부분의 나머지(예컨대, 손상되지 않은 데이터 부분) 및 스트라이프의 패리티 데이터 부분에 기초하여 교체 데이터 부분을 생성할 수 있다. 일부 구현예에서, 교체 데이터 부분의 생성은 스트라이프에서 데이터 부분의 나머지 및 스트라이프의 패리티 데이터 부분 간에 XOR 연산을 수행하는 것을 포함한다. 플래시 메모리 제어기(106)는 손상된 데이터 부분에서의 메모리 데이터가 유지될 수 있도록 교체 데이터 부분으로 손상된 데이터 부분을 복구할 수 있다. 일부 구현예에서, 플래시 메모리 제어기(106)는 계산이 요구된다면, 예컨대 손상된 데이터 부분을 식별하고 위치를 찾으며 및/또는 교체 데이터 부분을 생성하기 위해 임시 저장 유닛(410)으로부터 패리티 데이터 부분을 액세스할 수 있다.
M개 평면 및 N개의 다이에서의 메모리 블록(B1)에서 J개 층의 패리티/중복 데이터를 나타내는 패리티 데이터 세트(412), 예컨대 J×N×M개의 데이터 부분은 M개의 임시 패리티 데이터 부분으로부터 생성될 수 있다. 일부 구현예에서, 패리티 데이터 세트(412)는 M개의 임시 패리티 데이터 부분 간에 XOR 연산을 수행함으로써 획득된다. 패리티 데이터 세트(412)는 NAND 메모리(400)에서의 영구 저장 유닛(예컨대, 복수의 메모리 셀)에 저장될 수 있다. 플래시 메모리 제어기(106)는 제2 임시 저장 유닛을 액세스하고 이러한 동작을 수행할 수 있다.
일부 구현예에서, 플래시 메모리 제어기(106)는 M개 평면 및 N개의 다이에서의 메모리 블록(B1)에서 남아있는 층에 대한 동작(642 내지 656)을 계속해서 수행할 수 있다. 패리티 데이터 부분 및 임시 패리티 데이터 부분은 계산 및/또는 참조를 위해 각각 임시 저장 유닛(410) 및 제2 임시 저장 유닛에 저장될 수 있다. 동일한 동작이 또한 M개 평면 및 N개의 다이에서 다른 메모리 블록에 대해 수행될 수 있다.
도 6c를 다시 참조하면, 방법(640)은 동작(656)으로 진행되며, 여기에서 패리티 데이터 부분의 M개 세트는 임시 저장 유닛으로부터 제거되며 M개의 임시 패리티 데이터 부분은 제2 임시 저장 유닛으로부터 제거된다.
일부 구현예에서, 손상된 데이터 부분(들)의 복구 및 패리티 데이터 세트의 생성 후, 플래시 메모리 제어기(106)는 J×M×N개의 패리티 데이터 부분 및 M개의 임시 패리티 부분을 제거할 수 있다. 일부 구현예에서, 어떤 프로그래밍 실패도 검출되지 않는다면, 플래시 메모리 제어기(106)는 J×M×N개의 패리티 데이터 부분 및 M개의 임시 패리티 부분을 제거한다. 각각의 패리티 데이터 부분을 사용하여 상이한 평면 및 상이한 층에서 손상된 데이터 부분(들)을 복구함으로써, M개 평면 및 N개의 다이에서의 메모리 블록(B1)에서 J개 층에서의 프로그래밍 실패에 의해 야기된, 하나 이상의 손상된 데이터 부분이 복구될 수 있다. 하나의 스트라이프가 평면 및 층에 걸쳐 데이터 부분을 포함하는 RAID 방법과 비교하여, 이들 평면 및 층에서 복구/보호될 수 있는 데이터 부분의 수는, 예컨대, 1 이상으로, 증가된다.
본 개시의 일 양상은 메모리 장치를 제공한다. 장치는 N개의 다이에 메모리 데이터가 저장된 복수의 메모리 셀을 포함한다. N개의 다이의 각각은 M개의 평면을 포함한다. M개의 평면의 각각은 메모리 블록을 포함한다. N 및 M은 각각 양의 정수이다. 장치는 복수의 메모리 셀에 동작 가능하게 결합된 제어기를 포함한다. 제어기는 M개의 평면의 각각에서 및 N개의 다이의 각각에서의 메모리 블록에서 J개의 층을 결정하도록 구성되며, J개 층의 각각은 인접한 게이트 도전성 층의 쌍을 포함한다. J는 양의 정수이다. 제어기는 또한 스트라이프의 M개 세트를 결정하도록 구성된다. 스트라이프의 M개 세트의 각각은 M개 평면의 각각의 것에 저장된 복수의 데이터 부분을 포함한다. 제어기는 또한 패리티 데이터 부분의 M개 세트를 결정하도록 구성된다. 패리티 데이터 부분의 M개 세트의 각각은 M개 스트라이프의 각각의 것에 대응한다. 제어기는 또한 패리티 데이터 부분의 M개 세트를 저장하도록 임시 저장 유닛을 제어하기 위해 구성된다.
일부 구현예에서, 제어기는 M개의 스트라이프를 포함하기 위해 스트라이프의 M개 세트를 결정하도록 구성된다. 스트라이프의 M개 세트의 각각은 M개 평면의 각각의 것에 저장된 J×N개의 데이터 부분을 포함하는 단일 스트라이프를 포함한다. J×N개의 데이터 부분의 각각은 J개 층의 각각의 부분에 저장된다. 제어기는 또한 M개의 패리티 데이터 부분을 포함하기 위해 패리티 데이터 부분의 M개 세트를 결정하도록 구성된다. 패리티 데이터 부분의 M개 세트의 각각은 각각의 평면에 대응하는 단일 패리티 데이터 부분을 포함한다.
일부 구현예에서, 제어기는 또한 스트라이프의 M개 세트 중 하나에서 프로그래밍 실패를 검출하는 것에 응답하여, 프로그래밍 실패가 발생한 데이터 부분 및 각각의 스트라이프의 위치를 찾고 각각의 스트라이프의 패리티 데이터 부분 및 각각의 스트라이프의 데이터 부분의 나머지를 사용하여 데이터 부분에 대한 교체 데이터 부분을 생성함으로써 프로그래밍 실패를 복구하도록 구성된다.
일부 구현예에서, 제어기는 교체 데이터 부분을 생성하기 위해 데이터 부분의 나머지 및 각각의 스트라이프의 패리티 데이터 부분 간에 XOR 연산을 수행하도록 구성된다.
일부 구현예에서, 제어기는 또한 M개의 스트라이프를 동시에 프로그램하도록 구성된다. 프로그래밍 실패는 M개의 평면의 각각에서의 동일한 위치의 데이터 부분에서 발생하는 다중-평면 실패를 포함한다.
일부 구현예에서, 제어기는 또한 M개의 스트라이프에서 J×N×M개의 데이터 부분에 대응하는 패리티 데이터 세트를 생성하며, 복수의 메모리 셀에서의 영구 저장 유닛에 패리티 데이터 세트를 저장하기 위해 M개의 패리티 데이터 부분 간에 XOR을 수행하도록 구성된다.
일부 구현예에서, 제어기는 또한 각각의 패리티 데이터 부분을 생성하기 위해 M개의 스트라이프의 각각의 J×N개의 데이터 부분 간에 XOR 연산을 수행하도록 구성된다.
일부 구현예에서, 제어기는 J×M개의 스트라이프를 포함하기 위해 스트라이프의 M개 세트를 결정하도록 구성된다. 스트라이프의 M개 세트의 각각은 J개의 스트라이프를 포함한다. 일부 구현예에서, 제어기는 J×N개의 데이터 부분을 포함하기 위해 J개의 스트라이프를 결정하도록 구성된다. J개 스트라이프의 각각은 각각이 각각의 평면의 각각의 층에서의 각각의 부분에 저장되는 N개의 데이터 부분을 포함한다. 일부 구현예에서, 제어기는 J×M개의 패리티 데이터 부분을 포함하기 위해 패리티 데이터 부분의 M개 세트를 결정하도록 구성된다. 패리티 데이터 부분의 M개 세트의 각각은 각각이 각각의 평면에서 J개의 스트라이프의 각각의 것에 대응하는 J개의 패리티 데이터 부분을 포함한다.
일부 구현예에서, 제어기는 또한 각각의 단일 평면의 단일 층에 저장된 N개의 데이터 부분을 결정하도록 구성된다.
일부 구현예에서, 제어기는 또한: 스트라이프의 M개 세트 중 하나에서 프로그래밍 실패를 검출하는 것에 응답하여, 프로그래밍 실패가 발생한 데이터 부분 및 각각의 스트라이프의 위치를 찾고, 각각의 스트라이프의 패리티 데이터 부분 및 각각의 스트라이프의 데이터 부분의 나머지를 사용하여 데이터 부분에 대한 교체 데이터 부분을 생성함으로써 프로그래밍 실패를 복구하도록 구성된다.
일부 구현예에서, 제어기는 교체 데이터 부분을 생성하기 위해 데이터 부분의 나머지 및 각각의 스트라이프의 패리티 데이터 부분 간에 XOR 연산을 수행하도록 구성된다.
일부 구현예에서, 제어기는 또한 M개 세트의 스트라이프를 동시에 프로그램하도록 구성된다. 일부 구현예에서, 프로그래밍 실패는 SSG 누설 실패 또는 다중-평면 실패 중 적어도 하나를 포함한다.
일부 구현예에서, 제어기는 또한, J×M개의 스트라이프의 각각에 대해, 각각의 패리티 데이터 부분을 생성하기 위해 N개의 데이터 부분 간에 XOR 연산을 수행하도록 구성된다.
일부 구현예에서, 제어기는 또한, M개의 평면의 각각에 대해, n=2에 대해, (n-1)번째 임시 패리티 데이터 부분을 생성하기 위해 n번째 패리티 데이터 부분과 (n-1)번째 패리티 데이터 부분 간에 XOR 연산을 수행하도록 구성된다. 일부 구현예에서, 제어기는 또한 (n-1)번째 임시 패리티 데이터 부분을 제2 임시 저장 유닛에 저장하도록 구성된다. 일부 구현예에서, 제어기는 또한, n>2에 대해, (n-1)번째 임시 패리티 데이터 부분을 생성하기 위해 n번째 패리티 데이터 부분과 (n-2)번째 임시 패리티 데이터 부분 간에 XOR 연산을 수행하도록 구성된다. 일부 구현예에서, n은 양의 정수이다.
일부 구현예에서, 제어기는 또한, M개의 평면의 각각에 대해, (n-2)번째 임시 패리티 데이터 부분을 교체하기 위해 (n-1)번째 임시 패리티 데이터 부분을 제2 임시 저장 유닛에 저장하도록 구성된다.
일부 구현예에서, 제어기는 또한: n=L에 응답하여, M개 평면 및 N개의 다이에서 J×N×M개의 데이터 부분에 대응하는 패리티 데이터 세트를 생성하기 위해 M개 평면의 각각에 대응하는 (n-1)번째 임시 패리티 데이터 부분 간에 XOR 연산을 수행하도록 구성된다. 일부 구현예에서, 제어기는 또한 복수의 메모리 셀에서의 영구 저장 유닛에 패리티 데이터 세트를 저장하도록 구성된다.
일부 구현예에서, 제어기는 또한 각각의 패리티 데이터 부분을 생성하기 위해 J×M개의 스트라이프의 각각의 N개의 데이터 부분 간에 XOR 연산을 수행하도록 구성된다.
일부 구현예에서, 제어기는 또한: 어떤 프로그래밍 실패도 스트라이프의 M개 세트에서 검출되지 않거나, 또는 모든 프로그래밍 실패가 복구되는 것 중 적어도 하나에 응답하여 임시 저장 유닛으로부터 패리티 데이터 부분의 M개 세트를 제거하도록 구성된다.
일부 구현예에서, 임시 저장 유닛은 복수의 메모리 셀의 밖에 있다.
일부 구현예에서, J는 8이다.
일부 구현예에서, 복수의 메모리 셀은 NAND 메모리 셀을 포함하며, 제어기는 플래시 제어기를 포함한다.
일부 구현예에서, 장치는 RAM을 추가로 포함하며, 임시 저장 유닛은 RAM에 위치된다.
일부 구현예에서, M은 4 이상이다.
본 개시의 또 다른 양상은 메모리 장치를 제공한다. 장치는 N개의 다이에 메모리 데이터가 저장된 복수의 메모리 셀을 포함한다. N개의 다이의 각각은 M개의 평면을 포함한다. M개 평면의 각각은 메모리 블록을 포함한다. N 및 M은 각각 양의 정수이다. 장치는 복수의 메모리 셀에 동작 가능하게 결합된 제어기를 포함한다. 제어기는 M개 평면의 각각에 및 N개의 다이의 각각에서의 메모리 블록에서 J개의 층을 결정하도록 구성된다. J개 층의 각각은 인접한 게이트 도전성 층의 쌍을 포함한다. J는 적어도 2의 양의 정수이다. 제어기는 또한 각각이 M개의 평면에서의 동일한 레벨의 M개의 층에 대응하고 M×N개의 데이터 부분을 포함하는 J개의 스트라이프를 결정하도록 구성된다. M×N개의 데이터 부분의 각각은 각각의 M개의 층의 각각의 부분에 저장된다. 제어기는 또한 각각이 각각의 스트라이프에 대응하는 J개의 패리티 데이터 부분을 결정하도록 구성된다. 제어기는 또한 J개의 패리티 데이터 부분을 저장하도록 임시 저장 유닛을 제어하기 위해 구성된다.
일부 구현예에서, 제어기는 M개의 평면에서 동일한 레벨의 단일 층에 저장된 M×N개의 데이터 부분을 결정하도록 구성된다.
일부 구현예에서, 제어기는 또한 J개의 스트라이프 중 하나에서 프로그래밍 실패를 검출하는 것에 응답하여, 프로그래밍 실패가 발생한 데이터 부분의 위치를 찾고, 각각의 스트라이프의 패리티 데이터 부분 및 각각의 스트라이프의 데이터 부분의 나머지를 사용하여 데이터 부분에 대한 교체 데이터 부분을 생성함으로써 프로그래밍 실패를 복구하도록 구성된다.
일부 구현예에서, 제어기는 교체 데이터 부분을 생성하기 위해 데이터 부분의 나머지 및 각각의 스트라이프의 패리티 데이터 부분 간에 XOR 연산을 수행하도록 구성된다.
일부 구현에서, 프로그래밍 실패는 SSG 누설 실패를 포함한다.
일부 구현예에서, 제어기는 또한 각각의 패리티 데이터 부분을 생성하기 위해 J개의 스트라이프의 각각의 M×N개의 데이터 부분 간에 XOR 연산을 수행하도록 구성된다.
일부 구현예에서, 제어기는 또한 M개의 스트라이프에서 J×N×M개의 데이터 부분에 대응하는 패리티 데이터 세트를 생성하며, 복수의 메모리 셀에서의 영구 저장 유닛에 패리티 데이터 세트를 저장하기 위해 J개의 패리티 데이터 부분 간에 XOR을 수행하도록 구성된다.
일부 구현예에서, 임시 저장 유닛은 복수의 메모리 셀의 밖에 있다.
일부 구현예에서, 제어기는 또한 어떤 프로그래밍 실패도 J개의 스트라이프에서 검출되지 않거나, 또는 모든 프로그래밍 실패가 복구되는 것 중 적어도 하나에 응답하여 임시 저장 유닛으로부터 J개의 패리티 데이터 부분을 제거하도록 구성된다.
일부 구현예에서, J는 8이다.
일부 구현예에서, 복수의 메모리 셀은 NAND 메모리 셀을 포함하며, 제어기는 플래시 제어기를 포함한다.
일부 구현예에서, 장치는 RAM을 추가로 포함하며, 임시 저장 유닛은 RAM에 위치된다.
일부 구현예에서, M은 4 이상이다.
본 개시의 또 다른 양상은 RAID 스트라이핑을 사용하여 메모리 장치를 동작시키기 위한 방법을 제공한다. 장치는 N개의 다이에 메모리 데이터가 저장된 복수의 메모리 셀을 포함한다. N개의 다이의 각각은 M개의 평면을 포함한다. M개 평면의 각각은 메모리 블록을 포함한다. N 및 M은 각각 양의 정수이다. 방법은 M개 평면의 각각에서 및 N개의 다이의 각각에서의 메모리 블록에서 J개의 층을 결정하는 것을 포함한다. J개 층의 각각은 인접한 게이트 도전성 층의 쌍을 포함한다. J는 양의 정수이다. 방법은 또한 스트라이프의 M개의 세트를 결정하는 것을 포함하며, 스트라이프의 M개 세트의 각각은 M개의 평면의 각각의 것에 저장된 복수의 데이터 부분을 포함한다. 방법은 또한 패리티 데이터 부분의 M개의 세트를 결정하는 것을 포함한다. 패리티 데이터 부분의 M개의 세트의 각각은 M개의 스트라이프의 각각의 것에 대응한다. 방법은 패리티 데이터 부분의 M개의 세트를 저장하도록 임시 저장 유닛을 제어하는 것을 추가로 포함한다.
일부 구현예에서, 스트라이프의 M개의 세트는 M개의 스트라이프를 포함한다. 스트라이프의 M개 세트의 각각은 M개의 평면의 각각의 것에 저장된 J×N개의 데이터 부분을 포함하는 단일 스트라이프를 포함한다. J×N개의 데이터 부분의 각각은 J개 층의 각각의 부분에 저장된다. 패리티 데이터 부분의 M개의 세트는 M개의 패리티 데이터 부분을 포함한다. 패리티 데이터 부분의 M개 세트의 각각은 각각의 평면에 대응하는 단일 패리티 데이터 부분을 포함한다.
일부 구현예에서, 방법은: 스트라이프의 M개의 세트 중 하나에서 프로그래밍 실패를 검출하는 것에 응답하여, 프로그래밍 실패가 발생한 데이터 부분 및 각각의 스트라이프의 위치를 찾고, 각각의 스트라이프의 패리티 데이터 부분 및 각각의 스트라이프의 데이터 부분의 나머지를 사용하여 데이터 부분에 대한 교체 데이터 부분을 생성함으로써 프로그래밍 실패를 복구하는 것을 추가로 포함한다.
일부 구현예에서, 교체 데이터 부분을 생성하는 것은 데이터 부분의 나머지 및 각각의 스트라이프의 패리티 데이터 부분 간에 XOR 연산을 수행하는 것을 포함한다.
일부 구현예에서, 방법은 M개의 스트라이프를 동시에 프로그램하는 것을 추가로 포함한다. 프로그래밍 실패는 M개의 평면의 각각에서의 동일한 위치의 데이터 부분에서 발생한 다중-평면 실패를 포함한다.
일부 구현예에서, 방법은 M개의 스트라이프에서 J×N×M개의 데이터 부분에 대응하는 패리티 데이터 세트를 생성하기 위해 M개의 패리티 데이터 부분 간에 XOR을 수행하는 것, 및 복수의 메모리 셀에서의 영구 저장 유닛에 패리티 데이터 세트를 저장하는 것을 추가로 포함한다.
일부 구현예에서, 방법은 각각의 패리티 데이터 부분을 생성하기 위해 M개의 스트라이프의 각각의 J×N개의 데이터 부분 간에 XOR 연산을 수행하는 것을 추가로 포함한다.
일부 구현예에서, 스트라이프의 M개의 세트는 J×M개의 스트라이프를 포함한다. 스트라이프의 M개 세트의 각각은 J개의 스트라이프를 포함한다. 일부 구현예에서, J개의 스트라이프는 J×N개의 데이터 부분을 포함한다. J개 스트라이프의 각각은 각각이 각각의 평면의 각각의 층에서 각각의 부분에 저장되는 N개의 데이터 부분을 포함한다. 일부 구현예에서, 패리티 데이터 부분의 M개 세트는 J×M개의 패리티 데이터 부분을 포함한다. 패리티 데이터 부분의 M개 세트의 각각은 각각이 각각의 스트라이프에서 J개의 스트라이프의 각각의 것에 대응하는 J개의 패리티 데이터 부분을 포함한다.
일부 구현예에서, N개의 데이터 부분은 각각의 단일 평면의 단일 층에 저장된다.
일부 구현예에서, 방법은: 스트라이프의 M개 세트 중 하나에서 프로그래밍 실패를 검출하는 것에 응답하여, 프로그래밍 실패가 발생한 데이터 부분 및 각각의 스트라이프위 위치를 찾고, 각각의 스트라이프의 패리티 데이터 부분 및 각각의 스트라이프의 데이터 부분의 나머지를 사용하여 데이터 부분에 대한 교체 데이터 부분을 생성함으로써 프로그래밍 실패를 복구하는 것을 추가로 포함한다.
일부 구현예에서, 교체 데이터 부분을 생성하는 것은 데이터 부분의 나머지 및 각각의 스트라이프의 패리티 데이터 부분 간에 XOR 연산을 수행하는 것을 포함한다.
일부 구현예에서, 방법은 M개의 스트라이프를 병렬로 프로그램하는 것을 추가로 포함한다. 프로그래밍 실패는 SSG 누설 실패 또는 다중-평면 실패 중 적어도 하나를 포함한다.
일부 구현예에서, 방법은, J×M개의 스트라이프의 각각에 대해, 각각의 패리티 데이터 부분을 생성하기 위해 N개의 데이터 부분 간에 XOR 연산을 수행하는 것을 추가로 포함한다.
일부 구현예에서, 방법은, M개의 평면의 각각에 대해, n=2에 대해, (n-1)번째 임시 패리티 데이터 부분을 생성하기 위해 n번째 패리티 데이터 부분과 (n-1)번째 패리티 데이터 부분 간에 XOR 연산을 수행하는 것, (n-1)번째 임시 패리티 데이터를 제2 임시 저장 유닛으로 저장하는 것을 추가로 포함한다. 방법은 또한 n>2에 대해, (n-1)번째 임시 패리티 데이터 부분을 생성하기 위해 n번째 패리티 데이터 부분과 (n-2)번째 임시 패리티 데이터 부분 간에 XOR 연산을 수행하는 것을 포함한다.
일부 구현예에서, 방법은, M개의 평면의 각각에 대해, (n-2)번째 임시 패리티 데이터 부분을 교체하기 위해 (n-1)번째 임시 패리티 데이터 부분을 제2 임시 저장 유닛으로 저장하는 것을 추가로 포함한다.
일부 구현예에서, 방법은, n=L에 응답하여, M개 평면 및 N개의 다이에서의 J×N×M개의 데이터 부분에 대응하는 패리티 데이터 세트를 생성하기 위해 M개의 평면의 각각에 대응하는 (n-1)번째 임시 패리티 데이터 부분 간에 XOR 연산을 수행하는 것, 및 복수의 메모리 셀에서의 영구 저장 유닛에 패리티 데이터 세트를 저장하는 것을 추가로 포함한다.
일부 구현예에서, 방법은 각각의 패리티 데이터 부분을 생성하기 위해 J×M개의 스트라이프의 각각의 N개 데이터 부분 간에 XOR 연산을 수행하는 것을 추가로 포함한다.
본 개시의 또 다른 양상은 또한 RAID 스트라이핑을 사용하여 메모리 장치를 동작시키기 위한 방법을 제공한다. 장치는 N개의 다이에 메모리 데이터가 저장된 복수의 메모리 셀을 포함한다. N개의 다이의 각각은 M개의 평면을 포함한다. M개 평면의 각각은 메모리 블록을 포함한다. N 및 M은 각각 양의 정수이다. 방법은 M개 평면의 각각에서 및 N개의 다이의 각각에서의 메모리 블록에 J개의 층을 결정하는 것을 포함한다. J개의 층의 각각은 인접한 게이트 도전성 층의 쌍을 포함한다. J는 적어도 2의 양의 정수이다. 방법은 또한 각각이 M개의 평면에서 동일한 레벨의 M개의 층에 대응하며 M×N개의 데이터 부분을 포함하는 J개의 스트라이프를 결정하는 것을 포함한다. M×N개의 데이터 부분의 각각은 각각의 M개 층의 각각의 부분에 저장된다. 방법은 각각이 각각의 스트라이프에 대응하는 J개의 패리티 데이터 부분을 결정하는 것을 추가로 포함한다. 방법은 J개의 패리티 데이터 부분을 저장하도록 임시 저장 유닛을 제어하는 것을 추가로 포함한다.
일부 구현예에서, M×N개의 데이터 부분은 M개의 평면에서 동일한 레벨의 단일 층에 저장된다.
일부 구현예에서, 방법은: J개의 스트라이프 중 하나에서 프로그래밍 실패를 검출하는 것에 응답하여, 프로그래밍 실패가 발생한 데이터 부분의 위치를 찾고, 각각의 스트라이프의 패리티 데이터 부분 및 각각의 스트라이프의 데이터 부분의 나머지를 사용하여 데이터 부분에 대한 교체 데이터 부분을 생성함으로써 프로그래밍 실패를 복구하는 것을 추가로 포함한다.
일부 구현예에서, 교체 데이터 부분을 생성하는 것은 데이터 부분의 나머지 및 각각의 스트라이프의 패리티 데이터 부분 간에 XOR 연산을 수행하는 것을 포함한다.
일부 구현예에서, 프로그래밍 실패는 SSG 누설 실패를 포함한다.
일부 구현예에서, 방법은 각각의 패리티 데이터 부분을 생성하기 위해 J개의 스트라이프의 각각의 M×N개의 데이터 부분 간에 XOR 연산을 수행하는 것을 추가로 포함한다.
일부 구현예에서, 방법은 M개의 스트라이프에서 J×N×M개의 데이터 부분에 대응하는 패리티 데이터 세트를 생성하기 위해 J개의 패리티 데이터 부분 간에 XOR을 수행하는 것, 및 복수의 메모리 셀에서의 영구 저장 유닛에 패리티 데이터 세트를 저장하는 것을 추가로 포함한다.
일부 구현예에서, 임시 저장 유닛은 복수의 메모리 셀의 밖에 있다.
일부 구현예에서, 방법은 어떤 프로그래밍 실패도 J개의 스트라이프에서 검출되지 않거나, 또는 모든 프로그래밍 실패가 복구되는 것 중 적어도 하나에 응답하여 임시 저장 유닛으로부터 J개의 패리티 데이터 부분을 제거하는 것을 추가로 포함한다.
특정 구현예에 대한 앞서 말한 설명은 다양한 애플리케이션을 위해 쉽게 수정되고 및/또는 적응될 수 있다. 그러므로, 이러한 적응화 및 수정은 본원에서 제공된 교시 및 안내에 기초하여, 개시된 구현예의 등가물의 범위 및 의미 내에 있도록 의도된다. 본 개시의 폭 및 범위는 상기 설명된 대표적인 구현예 중 임의의 것에 제한되지 않아야 하며, 이어지는 청구항 및 그것의 등가물에 따라서만 정의되어야 한다.

Claims (48)

  1. 메모리 장치로서,
    N개의 다이에 메모리 데이터가 저장된 복수의 메모리 셀로서, 상기 N개의 다이의 각각은 M개의 평면을 포함하고, 상기 M개 평면의 각각은 메모리 블록을 포함하며, N 및 M은 각각 양의 정수인, 상기 복수의 메모리 셀; 및
    상기 복수의 메모리 셀에 동작 가능하게 결합된 제어기
    를 포함하고, 상기 제어기는:
    상기 M개 평면의 각각에서 및 상기 N개의 다이의 각각에서의 메모리 블록에서 J개의 층을 결정하고 - 상기 J개의 층의 각각은 인접한 게이트 도전성 층의 쌍을 포함하며, J는 양의 정수임 -;
    스트라이프의 M개 세트를 결정하고 - 상기 스트라이프의 M개 세트의 각각은 상기 M개 평면의 각각의 것에 저장된 복수의 데이터 부분을 포함함 -;
    패리티 데이터 부분의 M개 세트를 결정하고 - 상기 패리티 데이터 부분의 M개 세트의 각각은 상기 M개 스트라이프의 각각의 것에 대응함 -;
    상기 패리티 데이터 부분의 M개 세트를 저장하도록 임시 저장 유닛을 제어하도록 구성된,
    메모리 장치.
  2. 제1항에 있어서,
    상기 제어기는:
    M개의 스트라이프를 포함하는 상기 스트라이프의 M개 세트, 및
    M개의 패리티 데이터 부분을 포함하기 위한 상기 패리티 데이터 부분의 M개 세트
    를 결정하도록 구성되고,
    상기 스트라이프의 M개 세트의 각각은 M개 평면의 각각의 것에 저장된 J×N개의 데이터 부분을 포함하는 단일 스트라이프를 포함하고, 상기 J×N개의 데이터 부분의 각각은 상기 J개 층의 각각의 부분에 저장되며,
    상기 패리티 데이터 부분의 M개 세트의 각각은 각각의 평면에 대응하는 단일 패리티 데이터 부분을 포함하는,
    메모리 장치.
  3. 제1항에 있어서,
    상기 제어기는 또한:
    상기 스트라이프의 M개 세트 중 하나에서 프로그래밍 실패를 검출하는 것에 응답하여,
    상기 프로그래밍 실패가 발생하는 데이터 부분 및 각각의 스트라이프의 위치를 찾고,
    상기 각각의 스트라이프의 패리티 데이터 부분 및 상기 각각의 스트라이프의 데이터 부분의 나머지를 사용하여 상기 데이터 부분에 대한 교체 데이터 부분을 생성함으로써 상기 프로그래밍 실패를 복구하도록 구성되는,
    메모리 장치.
  4. 제3항에 있어서,
    상기 제어기는 상기 교체 데이터 부분을 생성하기 위해 상기 데이터 부분의 나머지 및 상기 각각의 스트라이프의 패리티 데이터 부분 간에 배타적 논리합(XOR) 연산을 수행하도록 구성되는, 메모리 장치.
  5. 제3항 또는 제4항에 있어서,
    상기 제어기는 또한 상기 M개의 스트라이프를 병렬로 프로그램하도록 구성되며, 상기 프로그래밍 실패는 상기 M개 평면의 각각에서의 동일한 위치의 데이터 부분에서 발생하는 다중-평면 실패를 포함하는, 메모리 장치.
  6. 제2항 내지 제5항 중 어느 한 항에 있어서,
    상기 제어기는 또한:
    상기 M개의 스트라이프에서 J×N×M개의 데이터 부분에 대응하는 패리티 데이터 세트를 생성하기 위해 상기 M개의 패리티 데이터 부분 간에 배타적 논리합(XOR)을 수행하며,
    상기 복수의 메모리 셀에서의 영구 저장 유닛에 상기 패리티 데이터 세트를 저장하도록 구성되는,
    메모리 장치.
  7. 제2항 내지 제6항 중 어느 한 항에 있어서,
    상기 제어기는 또한 상기 각각의 패리티 데이터 부분을 생성하기 위해 상기 M개의 스트라이프의 각각의 J×N 데이터 부분 간에 배타적 논리합(XOR) 연산을 수행하도록 구성되는, 메모리 장치.
  8. 제1항에 있어서,
    상기 제어기는:
    J×M개의 스트라이프를 포함하기 위한 상기 스트라이프의 M개 세트 - 상기 스트라이프의 M개 세트의 각각은 J개의 스트라이프를 포함함 -;
    J×N개의 데이터 부분을 포함하기 위한 J개의 스트라이프 - 상기 J개 스트라이프의 각각은, 각각 상기 각각의 평면의 각각의 층에서 각각의 부분에 저장되는 N개의 데이터 부분을 포함함 -; 및
    J×M개의 패리티 데이터 부분을 포함하기 위한 상기 패리티 데이터 부분의 M개 세트 - 상기 패리티 데이터 부분의 M개 세트의 각각은 각각, 각각의 평면에서 J개 스트라이프의 각각의 것에 대응하는 J개의 패리티 데이터 부분을 포함함 -
    을 결정하도록 구성되는, 메모리 장치.
  9. 제8항에 있어서,
    상기 제어기는 또한 각각의 단일 평면의 단일 층에 저장된 상기 N개의 데이터 부분을 결정하도록 구성되는, 메모리 장치.
  10. 제8항 또는 제9항에 있어서,
    상기 제어기는 또한:
    상기 스트라이프의 M개 세트 중 하나에서 프로그래밍 실패를 검출하는 것에 응답하여,
    상기 프로그래밍 실패가 발생한 데이터 부분 및 각각의 스트라이프의 위치를 찾고,
    상기 각각의 스트라이프의 패리티 데이터 부분 및 상기 각각의 스트라이프의 데이터 부분의 나머지를 사용하여 상기 데이터 부분에 대한 교체 데이터 부분을 생성함으로써, 상기 프로그래밍 실패를 복구하도록 구성되는,
    메모리 장치.
  11. 제10항에 있어서,
    상기 제어기는 상기 교체 데이터 부분을 생성하기 위해 상기 데이터 부분의 나머지 및 상기 각각의 스트라이프의 패리티 데이터 부분 간에 배타적 논리합(XOR) 연산을 수행하도록 구성되는, 메모리 장치.
  12. 제10항 또는 제11항에 있어서,
    상기 제어기는 또한 상기 스트라이프의 M개 세트를 병렬로 프로그램하도록 구성되며,
    상기 프로그래밍 실패는 소스-선택 게이트(SSG) 누설 실패 또는 다중-평면 실패 중 적어도 하나를 포함하는, 메모리 장치.
  13. 제8항 내지 제12항 중 어느 한 항에 있어서,
    상기 제어기는 또한, 상기 J×M개의 스트라이프의 각각에 대해, 상기 각각의 패리티 데이터 부분을 생성하기 위해 상기 N개의 데이터 부분 간에 배타적 논리합(XOR) 연산을 수행하도록 구성되는, 메모리 장치.
  14. 제8항 내지 제13항 중 어느 한 항에 있어서,
    상기 제어기는 또한, 상기 M개의 평면의 각각에 대해 - 여기서, n은 양의 정수임 -,
    n=2에 대해, (n-1)번째 임시 패리티 데이터 부분을 생성하기 위해 n번째 패리티 데이터 부분과 (n-1)번째 패리티 데이터 부분 간에 배타적 논리합(XOR) 연산을 수행하고;
    상기 (n-1)번째 임시 패리티 데이터 부분을 제2 임시 저장 유닛으로 저장하며;
    n>2에 대해, (n-1)번째 임시 패리티 데이터 부분을 생성하기 위해 n번째 패리티 데이터 부분과 (n-2)번째 임시 패리티 데이터 부분 간에 XOR 연산을 수행하도록 구성되는, 메모리 장치.
  15. 제14항에 있어서,
    상기 제어기는 또한, 상기 M개의 평면의 각각에 대해,
    상기 (n-2)번째 임시 패리티 데이터 부분을 교체하기 위해 상기 (n-1)번쩨 임시 패리티 데이터 부분을 상기 제2 임시 저장 유닛으로 저장하도록 구성되는, 메모리 장치.
  16. 제14항 또는 제15항에 있어서,
    상기 제어기는 또한:
    n=L에 응답하여, 상기 M개 평면 및 N개의 다이에서 J×N×M개의 데이터 부분에 대응하는 패리티 데이터 세트를 생성하기 위해 상기 M개 평면의 각각에 대응하는 상기 (n-1)번째 임시 패리티 데이터 부분 간에 XOR 연산을 수행하고,
    상기 복수의 메모리 셀에서 영구 저장 유닛에 상기 패리티 데이터 세트를 저장하도록 구성되는, 메모리 장치.
  17. 제8항 내지 제16항 중 어느 한 항에 있어서,
    상기 제어기는 또한 상기 각각의 패리티 데이터 부분을 생성하기 위해 상기 J×M개 스트라이프의 각각의 N개 데이터 부분 간에 배타적 논리합(XOR) 연산을 수행하도록 구성되는, 메모리 장치.
  18. 제1항 내지 제17항 중 어느 한 항에 있어서,
    상기 제어기는 또한:
    어떤 프로그래밍 실패도 상기 스트라이프의 M개 세트에서 검출되지 않는 것과 모든 프로그래밍 실패가 복구되는 것 중 적어도 하나에 응답하여, 상기 임시 저장 유닛으로부터 상기 패리티 데이터 부분의 M개 세트를 제거하도록 구성되는, 메모리 장치.
  19. 제1항 내지 제18항 중 어느 한 항에 있어서,
    상기 임시 저장 유닛은 상기 복수의 메모리 셀의 밖에 있는, 메모리 장치.
  20. 제1항 내지 제19항 중 어느 한 항에 있어서,
    J는 8인, 메모리 장치.
  21. 제1항 내지 제20항 중 어느 한 항에 있어서,
    상기 복수의 메모리 셀은 NAND 메모리 셀을 포함하며, 상기 제어기는 플래시 제어기를 포함하는, 메모리 장치.
  22. 제1항 내지 제21항 중 어느 한 항에 있어서,
    상기 장치는 랜덤-액세스 메모리(RAM)를 더 포함하며, 상기 임시 저장 유닛은 상기 RAM에 위치되는, 메모리 장치.
  23. 제1항에 있어서,
    M은 4 이상인, 메모리 장치.
  24. 메모리 장치에 있어서,
    N개의 다이에 메모리 데이터가 저장된 복수의 메모리 셀로서, 상기 N개의 다이의 각각은 M개의 평면을 포함하고, 상기 M개 평면의 각각은 메모리 블록을 포함하며, N 및 M 각각은 양의 정수인, 상기 복수의 메모리 셀; 및
    상기 복수의 메모리 셀에 동작 가능하게 결합된 제어기
    를 포함하고, 상기 제어기는:
    상기 M개 평면의 각각에서 및 상기 N개의 다이의 각각에서의 메모리 블록에서 J개의 층을 결정하고 - 상기 J개 층의 각각은 인접한 게이트 도전성 층의 쌍을 포함하며, J는 적어도 2의 양의 정수임 -,
    각각이 상기 M개의 평면에서 동일한 레벨의 M개의 층에 대응하며 M×N개의 데이터 부분을 포함한 J개의 스트라이프를 결정하며 - 상기 M×N개의 데이터 부분의 각각은 상기 각각의 M개의 층의 각각의 부분에 저장됨 -,
    각각이 각각의 스트라이프에 대응하는 J개의 패리티 데이터 부분을 결정하며,
    상기 J개의 패리티 데이터 부분을 저장하도록 임시 저장 유닛을 제어하도록
    구성되는, 메모리 장치.
  25. 제24항에 있어서,
    상기 제어기는 상기 M개의 평면에서 동일한 레벨의 단일 층에 저장된 상기 M×N개의 데이터 부분을 결정하도록 구성되는, 메모리 장치.
  26. 제24항 또는 제25항에 있어서,
    상기 제어기는 또한:
    상기 J개의 스트라이프 중 하나에서 프로그래밍 실패를 검출하는 것에 응답하여,
    상기 프로그래밍 실패가 발생한 데이터 부분의 위치를 찾고,
    상기 각각의 스트라이프의 패리티 데이터 부분 및 상기 각각의 스트라이프의 데이터 부분의 나머지를 사용하여 상기 데이터 부분에 대한 교체 데이터 부분을 생성함으로써, 상기 프로그래밍 실패를 복구하도록 구성되는, 메모리 장치.
  27. 제26항에 있어서,
    상기 제어기는 상기 교체 데이터 부분을 생성하기 위해 각각의 스트라이프의 상기 데이터 부분의 나머지 및 상기 패리티 데이터 부분 간에 배타적 논리합(XOR) 연산을 수행하도록 구성되는, 메모리 장치.
  28. 제26항 또는 제27항에 있어서,
    상기 프로그래밍 실패는 소스-선택 게이트(SSG) 누설 실패를 포함하는, 메모리 장치.
  29. 제24항 내지 제28항 중 어느 한 항에 있어서,
    상기 제어기는 또한 상기 각각의 패리티 데이터 부분을 생성하기 위해 상기 J개의 스트라이프의 각각의 M×N개 데이터 부분 간에 배타적 논리합(XOR) 연산을 수행하도록 구성되는, 메모리 장치.
  30. 제24항 내지 제29항 중 어느 한 항에 있어서,
    상기 제어기는 또한:
    상기 M개의 스트라이프에서 J×N×M개 데이터 부분에 대응하는 패리티 데이터 세트를 생성하기 위해 상기 J개의 패리티 데이터 부분 간에 배타적 논리합(XOR)을 수행하며;
    상기 복수의 메모리 셀에서 영구 저장 유닛에 상기 패리티 데이터 세트를 저장하도록 구성되는, 메모리 장치.
  31. 제24항 내지 제30항 중 어느 한 항에 있어서,
    상기 임시 저장 유닛은 상기 복수의 메모리 셀의 밖에 있는, 메모리 장치.
  32. 제24항 내지 제31항 중 어느 한 항에 있어서,
    상기 제어기는 또한:
    어떤 프로그래밍 실패도 상기 J개의 스트라이프에서 검출되지 않거나, 또는
    모든 프로그래밍 실패가 복구되는 것 중 적어도 하나에 응답하여 상기 임시 저장 유닛으로부터 상기 J개의 패리티 데이터 부분을 제거하도록 구성되는, 메모리 장치.
  33. 제24항 내지 제32항 중 어느 한 항에 있어서,
    J는 8인, 메모리 장치.
  34. 제24항 내지 제33항 중 어느 한 항에 있어서,
    상기 복수의 메모리 셀은 NAND 메모리 셀을 포함하며, 상기 제어기는 플래시 제어기를 포함하는, 메모리 장치.
  35. 제24항 내지 제34항 중 어느 한 항에 있어서,
    상기 장치는 랜덤-액세스 메모리(RAM)를 더 포함하며, 상기 임시 저장 유닛은 상기 RAM에 위치되는, 메모리 장치.
  36. 제24항에 있어서,
    M은 4 이상인, 메모리 장치.
  37. 독립 디스크의 중복 어레이(RAID: Redundant array of independent disks) 스트라이핑을 사용하여 메모리 장치를 동작시키기 위한 방법으로서,
    상기 메모리 장치는 N개의 다이에 메모리 데이터가 저장된 복수의 메모리 셀을 포함하고, 상기 N개의 다이의 각각은 M개의 평면을 포함하고, 상기 M개 평면의 각각은 메모리 블록을 포함하며, N 및 M 각각은 양의 정수이고,
    상기 방법은,
    상기 M개 평면의 각각에서 및 상기 N개의 다이의 각각에서의 상기 메모리 블록에서 J개의 층을 결정하는 단계 - 상기 J개의 층의 각각은 인접한 게이트 도전성 층의 쌍을 포함하며, J는 양의 정수임 -;
    스트라이프의 M개 세트를 결정하는 단계 - 상기 스트라이프의 M개 세트의 각각은 상기 M개 평면의 각각의 것에 저장된 복수의 데이터 부분을 포함함 -;
    패리티 데이터 부분의 M개 세트를 결정하는 단계 - 상기 패리티 데이터 부분의 M개 세트의 각각은 상기 M개의 스트라이프의 각각의 것에 대응함 -; 및
    상기 패리티 데이터 부분의 M개 세트를 저장하도록 임시 저장 유닛을 제어하는 단계
    를 포함하는, 방법.
  38. 제37항에 있어서,
    상기 스트라이프의 M개 세트는 M개의 스트라이프를 포함하고, 상기 스트라이프의 M개 세트의 각각은 상기 M개의 평면의 각각의 것에 저장된 J×N개의 데이터 부분을 포함하는 단일 스트라이프를 포함하고, 상기 J×N개의 데이터 부분의 각각은 상기 J개의 층의 각각의 부분에 저장되며,
    상기 패리티 데이터 부분의 M개 세트는 M개의 패리티 데이터 부분을 포함하고, 상기 패리티 데이터 부분의 M개 세트의 각각은 각각의 평면에 대응하는 단일 패리티 데이터 부분을 포함하는, 방법.
  39. 제38항에 있어서,
    상기 스트라이프의 M개 세트 중 하나에서 프로그래밍 실패를 검출하는 것에 응답하여:
    상기 프로그래밍 실패가 발생한 데이터 부분 및 각각의 스트라이프의 위치를 찾으며;
    상기 각각의 스트라이프의 패리티 데이터 부분 및 상기 각각의 스트라이프의 데이터 부분의 나머지를 사용하여 상기 데이터 부분의 교체 데이터 부분을 생성함으로써 상기 프로그래밍 실패를 복구하는 단계를 더 포함하는, 방법.
  40. 제39항에 있어서,
    상기 교체 데이터 부분을 생성하는 것은 상기 데이터 부분의 나머지 및 상기 각각의 스트라이프의 패리티 데이터 부분 간에 배타적 논리합(XOR) 연산을 수행하는 것을 포함하는, 방법.
  41. 제39항 또는 제40항에 있어서,
    상기 M개의 스트라이프를 병렬로 프로그램하는 단계를 더 포함하며, 상기 프로그래밍 실패는 상기 M개 평면의 각각에서의 동일한 위치의 데이터 부분에서 발생하는 다중-평면 실패를 포함하는, 방법.
  42. 제38항 내지 제41항 중 어느 한 항에 있어서,
    상기 M개의 스트라이프에서 J×N×M개 데이터 부분에 대응하는 패리티 데이터 세트를 생성하기 위해 상기 M개의 패리티 데이터 부분 간에 배타적 논리합(XOR) 연산을 수행하는 단계; 및
    상기 복수의 메모리 셀에서 영구 저장 유닛에 상기 패리티 데이터 세트를 저장하는 단계를 더 포함하는 방법.
  43. 제38항 내지 제42항 중 어느 한 항에 있어서,
    상기 각각의 패리티 데이터 부분을 생성하기 위해 상기 M개의 스트라이프의 각각의 J×N개 데이터 부분 간에 배타적 논리합(XOR) 연산을 수행하는 단계를 더 포함하는 방법.
  44. 제37항에 있어서,
    상기 스트라이프의 M개 세트는 J×M개의 스트라이프를 포함하며, 상기 스트라이프의 M개 세트의 각각은 J개의 스트라이프를 포함하고,
    상기 J개의 스트라이프는 J×N개의 데이터 부분을 포함하고, 상기 J개 스트라이프의 각각은, 각각이 각각의 평면의 각각의 층에서 각각의 부분에 저장되는 N개의 데이터 부분을 포함하며,
    상기 패리티 데이터 부분의 M개 세트는 J×M개의 패리티 데이터 부분을 포함하며, 상기 패리티 데이터 부분의 M개 세트의 각각은, 각각이 각각의 스트라이프에서 J개의 스트라이프의 각각의 것에 대응하는 J개의 패리티 데이터 부분을 포함하는, 방법.
  45. 제44항에 있어서,
    상기 N개의 데이터 부분은 각각의 단일 평면의 단일 층에 저장되는, 방법.
  46. 제44항 또는 제45항에 있어서,
    상기 스트라이프의 M개 세트 중 하나에서 프로그래밍 실패를 검출하는 것에 응답하여:
    상기 프로그래밍 실패가 발생한 데이터 부분 및 각각의 스트라이프의 위치를찾고, 상기 각각의 스트라이프의 패리티 데이터 부분 및 상기 각각의 스트라이프의 데이터 부분의 나머지를 사용하여 상기 데이터 부분의 교체 데이터 부분을 생성함으로써, 상기 프로그래밍 실패를 복구하는 단계를 더 포함하는 방법.
  47. 독립 디스크의 중복 어레이(RAID) 스트라이핑을 사용하여 메모리 장치를 동작시키기 위한 방법으로서,
    상기 메모리 장치는 N개의 다이에 메모리 데이터가 저장된 복수의 메모리 셀을 포함하고, 상기 N개의 다이의 각각은 M개의 평면을 포함하고, 상기 M개 평면의 각각은 메모리 블록을 포함하며, N 및 M 각각은 양의 정수이며,
    상기 방법은,
    상기 M개 평면의 각각에서 및 상기 N개의 다이의 각각에서의 메모리 블록에서 J개의 층을 결정하는 단계 - 상기 J개의 층의 각각은 인접한 게이트 도전성 층의 쌍을 포함하며, J는 적어도 2의 양의 정수임 -;
    각각이 상기 M개 평면에서 동일한 레벨의 M개의 층에 대응하며 M×N개의 데이터 부분을 포함하는 J개의 스트라이프를 결정하는 단계 - 상기 M×N개 데이터 부분의 각각은 각각의 M개의 층의 각각의 부분에 저장됨 -;
    각각이 각각의 스트라이프에 대응하는 J개의 패리티 데이터 부분을 결정하는 단계; 및
    상기 J개의 패리티 데이터 부분을 저장하도록 임시 저장 유닛을 제어하는 단계
    를 포함하는, 방법.
  48. 제47항에 있어서,
    상기 M×N개의 데이터 부분은 상기 M개의 평면에서 동일한 레벨의 단일 층에 저장되며, 상기 방법은:
    상기 J개의 스트라이프 중 하나에서 프로그래밍 실패를 검출하는 것에 응답하여,
    상기 프로그래밍 실패가 발생한 데이터 부분의 위치를 찾고, 상기 각각의 스트라이프의 패리티 데이터 부분 및 상기 각각의 스트라이프의 데이터 부분의 나머지를 사용하여 상기 데이터 부분에 대한 교체 데이터 부분을 생성함으로써, 상기 프로그래밍 실패를 복구하는 단계를 더 포함하는, 방법.
KR1020227044886A 2021-03-05 2021-03-05 프로그래밍 실패에 대한 독립 디스크 스트라이핑의 중복 어레이를 위한 방법 및 그 장치 KR20230013128A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2021/079221 WO2022183465A1 (en) 2021-03-05 2021-03-05 Method for redundant array of independent disks striping against programming failures and apparatus thereof

Publications (1)

Publication Number Publication Date
KR20230013128A true KR20230013128A (ko) 2023-01-26

Family

ID=76875949

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227044886A KR20230013128A (ko) 2021-03-05 2021-03-05 프로그래밍 실패에 대한 독립 디스크 스트라이핑의 중복 어레이를 위한 방법 및 그 장치

Country Status (6)

Country Link
US (1) US11455118B1 (ko)
EP (1) EP4147133A4 (ko)
JP (1) JP2023532237A (ko)
KR (1) KR20230013128A (ko)
CN (1) CN113168866A (ko)
WO (1) WO2022183465A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023028820A1 (en) * 2021-08-31 2023-03-09 Yangtze Memory Technologies Co., Ltd. System and apparatus for redundant array of independent disks striping against programming failures

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8321597B2 (en) * 2007-02-22 2012-11-27 Super Talent Electronics, Inc. Flash-memory device with RAID-type controller
KR101826051B1 (ko) 2012-02-27 2018-02-07 삼성전자주식회사 비휘발성 메모리 장치의 제어 방법 및 비휘발성 메모리 시스템
US9524113B2 (en) * 2013-05-24 2016-12-20 Seagate Technology Llc Variable redundancy in a solid state drive
US10218789B2 (en) * 2016-03-04 2019-02-26 Western Digital Technologies, Inc. Erasure correcting coding using temporary erasure data
US9996417B2 (en) * 2016-04-12 2018-06-12 Apple Inc. Data recovery in memory having multiple failure modes
US10915394B1 (en) * 2019-09-22 2021-02-09 Apple Inc. Schemes for protecting data in NVM device using small storage footprint

Also Published As

Publication number Publication date
EP4147133A4 (en) 2023-09-20
JP2023532237A (ja) 2023-07-27
WO2022183465A1 (en) 2022-09-09
EP4147133A1 (en) 2023-03-15
CN113168866A (zh) 2021-07-23
US20220283728A1 (en) 2022-09-08
US11455118B1 (en) 2022-09-27

Similar Documents

Publication Publication Date Title
US11042441B2 (en) Stripe mapping in memory
US10521303B2 (en) Memory system for performing RAID recovery and a method of operating the memory system
US8788876B2 (en) Stripe-based memory operation
US10002042B2 (en) Systems and methods of detecting errors during read operations and skipping word line portions
US10467094B2 (en) Method and apparatus for performing data recovery in a raid storage
US10339000B2 (en) Storage system and method for reducing XOR recovery time by excluding invalid data from XOR parity
US9886341B2 (en) Optimizing reclaimed flash memory
KR101447786B1 (ko) 파워 인터럽트 관리
US10915394B1 (en) Schemes for protecting data in NVM device using small storage footprint
US10127103B2 (en) System and method for detecting and correcting mapping table errors in a non-volatile memory system
WO2022183465A1 (en) Method for redundant array of independent disks striping against programming failures and apparatus thereof
KR101645829B1 (ko) 장치들 및 유효 마스크들을 저장하고 장치들을 동작시키는 방법들
US11334256B2 (en) Storage system and method for boundary wordline data retention handling
US11972155B2 (en) System and apparatus for redundant array of independent disks striping against programming failures

Legal Events

Date Code Title Description
A201 Request for examination