KR102593374B1 - Qlc 데이터 프로그래밍 - Google Patents

Qlc 데이터 프로그래밍 Download PDF

Info

Publication number
KR102593374B1
KR102593374B1 KR1020210082729A KR20210082729A KR102593374B1 KR 102593374 B1 KR102593374 B1 KR 102593374B1 KR 1020210082729 A KR1020210082729 A KR 1020210082729A KR 20210082729 A KR20210082729 A KR 20210082729A KR 102593374 B1 KR102593374 B1 KR 102593374B1
Authority
KR
South Korea
Prior art keywords
memory
xor
data
memory device
word line
Prior art date
Application number
KR1020210082729A
Other languages
English (en)
Other versions
KR20220059903A (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 KR20220059903A publication Critical patent/KR20220059903A/ko
Application granted granted Critical
Publication of KR102593374B1 publication Critical patent/KR102593374B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/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/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • 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
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/005Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/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/08Address circuits; Decoders; Word-line control 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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/24Bit-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • G11C16/3481Circuits or methods to verify correct programming of nonvolatile memory cells whilst programming is in progress, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming
    • 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
    • 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
    • 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
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out
    • 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
    • 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
    • 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

Landscapes

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

Abstract

본 개시는 일반적으로 솔리드 스테이트 드라이브(SSD)와 같은 데이터 저장 디바이스로의 프로그래밍을 개선하는 것에 관한 것이다. 제1 메모리 디바이스는 제1 XOR 요소를 갖고, 제2 메모리 디바이스는 제2 XOR 요소를 갖는다. 제1 메모리 디바이스의 용량에 대한 제1 XOR 요소의 비는 제2 메모리 디바이스의 용량에 대한 제2 XOR 요소의 비보다 실질적으로 더 작다. 프로그램 실패를 찾는 판독 검증 동작은 워드 라인 대 워드 라인 기반, 소거 블록 대 소거 블록 기반, 또는 워드 라인 대 워드 라인 및 소거 블록 대 소거 블록 둘 모두의 기반에서 실행된다. 프로그램 실패가 제2 메모리 디바이스에 프로그래밍되기 전에 발견되고 고쳐지기 때문에, 제2 XOR 요소는 실질적으로 감소될 수 있다.

Description

QLC 데이터 프로그래밍 {QLC DATA PROGRAMMING}
관련 출원의 상호 참조
본 출원은 2020년 11월 3일자로 출원된 미국 가특허 출원 제63/109,114호의 이익을 주장하며, 이는 본원에 참고로 원용된다.
기술분야
본 개시의 실시예는 일반적으로 솔리드 스테이트 드라이브(SSD)와 같은 데이터 저장 디바이스에 대한 프로그래밍을 개선하는 것에 관한 것이다.
데이터를 프로그래밍하거나 기입하는 것은 2개의 기입 단계: 포기(foggy) 및 파인(fine)을 필요로 할 수 있다. 포기-파인 프로그래밍에서, 기입될 비트는 단순히 한 번 기입될 수 없다. 오히려, 데이터는 포기 프로그래밍에 의해 우선 기입될 필요가 있으며, 여기서 전압 펄스가 제공되어 현재 상태를 더욱 분해된 상태이지만 완전히 분해되지는 않은 상태로 푸시(push)한다. 포기 프로그래밍 후의 시점에서 파인 프로그래밍이 수행되어 완전히 분해된 상태에서 데이터를 다시 기입한다.
데이터 저장 디바이스의 각각의 위치에 데이터를 프로그래밍하거나 기입하는 동안, 비트 에러와 같은 프로그램 실패가 누적될 수 있다. 프로그램 실패를 고치기 위해, 배타적 또는 (XOR) 패리티 데이터가 패리티 엔진 또는 저밀도 패리티 검사(low density parity check: LDPC) 엔진과 같은 에러 보정 엔진에 의해 생성된다. XOR 패리티 데이터는 데이터 기입의 각각의 위치에 저장된다. 예를 들어, 데이터가 제1 비휘발성 메모리 디바이스에 대해 파인 프로그래밍되는 경우, 데이터는 우선 휘발성 메모리 디바이스 캐시 또는 제2 비휘발성 메모리 디바이스 캐시에 프로그래밍된다. 그 후, 데이터는 제1 비휘발성 메모리 디바이스에 대한 포기 프로그램이다. 제1 비휘발성 메모리 디바이스에 대한 포기 프로그램 완료 후, 데이터는 제1 비휘발성 메모리 디바이스에 대해 파인 프로그래밍된다. XOR 패리티 데이터가 휘발성 메모리 디바이스 캐시, 제2 비휘발성 메모리 디바이스 캐시, 제1 비휘발성 메모리 디바이스에 대한 포기 프로그램 및 제1 비휘발성 메모리 디바이스에 대한 파인 프로그램에서와 같이 데이터 프로그래밍 시퀀스의 각각의 위치에서 프로그래밍된 데이터와 함께 생성 및 저장될 수 있다. 앞서 언급된 각각의 메모리 디바이스에서의 XOR 패리티 데이터의 누적은 XOR 패리티 오버헤드를 증가시키고, 데이터 저장 디바이스의 사용자 데이터에 대한 오버 프로비저닝(over provisioning) 또는 용량을 감소시킨다.
따라서, XOR 패리티 오버헤드를 감소시키고 데이터 저장 디바이스의 신뢰성을 유지하거나 증가시키면서 비휘발성 메모리에 개선된 프로그래밍에 대한 필요성이 본 기술 분야에 존재한다.
위에 언급된 본 개시의 특징이 상세히 이해될 수 있는 방식으로, 위에 간략하게 요약된 본 개시의 보다 구체적인 설명이 실시예를 참조하여 이루어질 수 있으며, 실시예 중 일부는 첨부 도면에 나타내어져 있다. 그러나, 첨부 도면은 단지 본 개시의 통상적인 실시예만을 나타내는 것이므로 그 범위를 제한하는 것으로 고려되어서는 안 되는데, 본 개시는 다른 균등하게 유효한 실시예를 허용할 수 있기 때문이다.
도 1은 개시된 실시예에 따른 데이터 저장 디바이스가 호스트 디바이스에 대한 저장 디바이스로서 기능할 수 있는 저장 시스템을 나타내는 개략 블록도이다.
도 2는 개시된 실시예에 따른 포기-파인(foggy-fine) 프로그래밍을 스케줄링하는 것의 개략도이다.
도 3은 개시된 실시예에 따른 슈퍼 블록의 전체 다이 리던던시를 갖는 수평 배타적 또는 (XOR) 스킴의 개략적 예시이다.
도 4는 개시된 실시예에 따른 다중-레벨 셀에서의 배타적 또는 (XOR)의 가능한 옵션의 예시이다.
도 5a 및 도 5b는 개시된 실시예에 따른 다양한 프로그램 실패 유형의 예시이다.
도 6a 및 도 6b는 개시된 실시예에 따른 슈퍼 블록의 감소된 수평 배타적 또는 (XOR) 스킴의 개략적 예시이다.
도 7은 개시된 실시예에 따른 슈퍼 블록의 감소된 수평 배타적 또는 (XOR) 스킴의 개략적 예시이다.
도 8은 개시된 실시예에 따른 슈퍼 블록의 감소된 수직 배타적 또는 (XOR) 스킴의 개략적 예시이다.
도 9는 개시된 실시예에 따른 포기-파인 프로그램을 수행하는 방법을 예시하는 흐름도이다.
이해를 촉진하기 위해, 도면들에 공통인 동일한 요소를 지시하기 위해, 가능한 경우 동일한 참조 번호가 사용되었다. 일 실시예에 개시된 요소는 구체적인 언급 없이도 다른 실시예에서 유익하게 이용될 수 있다는 것이 고려된다.
발명의 내용
본 개시는 일반적으로 솔리드 스테이트 드라이브(SSD)와 같은 데이터 저장 디바이스에의 프로그래밍을 개선하는 것에 관한 것이다. 제1 메모리 디바이스는 제1 XOR 요소를 갖고, 제2 메모리 디바이스는 제2 XOR 요소를 갖는다. 제1 메모리 디바이스의 용량에 대한 제1 XOR 요소의 비(ratio)는 제2 메모리 디바이스의 용량에 대한 제2 XOR 요소의 비보다 실질적으로 더 작다. 프로그램 실패를 찾는 판독 검증 동작이 워드 라인 대 워드 라인 기반, 소거 블록 대 소거 블록 기반, 또는 워드 라인 대 워드 라인 기반과 소거 블록 대 소거 블록 기반 모두에서 실행된다. 프로그램 실패는 제2 메모리 디바이스에 프로그래밍되기 전에 발견되고 고쳐지기(fixed) 때문에, 제2 XOR 요소는 실질적으로 감소될 수 있다.
일 실시예에서, 데이터 저장 디바이스는 하나 이상의 슈퍼 블록을 포함하는 하나 이상의 메모리 디바이스로서, 하나 이상의 슈퍼 블록의 각각의 슈퍼 블록은 복수의 워드 라인을 포함하는, 하나 이상의 메모리 디바이스, 및 하나 이상의 메모리 디바이스에 결합된 제어기를 포함한다. 제어기는 복수의 워드 라인 중 제1 워드 라인에 데이터를 기입하고, 복수의 워드 라인 중 제2 워드 라인에 데이터를 기입하고, 제1 워드 라인에 대한 판독 검증 동작을 수행하고, 제2 워드 라인에 대한 판독 검증 동작을 수행하도록 구성되고, 제1 워드 라인 및 제2 워드 라인 중 적어도 하나는 XOR 패리티 요소를 포함하지 않는다.
다른 실시예에서, 데이터 저장 디바이스는 하나 이상의 슈퍼 블록을 포함하는 하나 이상의 메모리 디바이스로서, 하나 이상의 슈퍼 블록 중 각각의 슈퍼 블록은 복수의 소거 블록을 포함하고, 복수의 소거 블록 중 각각의 소거 블록은 복수의 워드 라인을 포함하는, 하나 이상의 메모리 디바이스를 포함한다. 데이터 저장 디바이스는 추가로 하나 이상의 메모리 디바이스에 결합된 제어기를 포함한다. 제어기는 하나 이상의 메모리 디바이스 중 적어도 하나의 메모리 디바이스의 복수의 소거 블록 중 제1 소거 블록의 복수의 워드 라인에 데이터를 기입하고 - 복수의 워드 라인의 전체보다 적은 워드 라인은 XOR 요소를 포함함 -, 전체의 제1 소거 블록이 프로그래밍된 후에, 제1 소거 블록의 복수의 워드 라인의 전체보다 적은 워드 라인에 대해 판독 검증 동작을 수행하도록 구성된다.
다른 실시예에서, 데이터 저장 디바이스는 제1 XOR 요소에 대한 제1 XOR 저장 용량을 갖는 제1 메모리 디바이스로서, 제1 메모리 디바이스에 저장된 데이터에 대한 제1 XOR 저장 용량은 제1 비(ratio)인, 제1 메모리 디바이스를 포함한다. 데이터 저장 디바이스는 추가로 제2 XOR 요소에 대한 제2 XOR 저장 용량을 갖는 제2 메모리 디바이스로서, 제2 메모리 디바이스에 저장된 데이터에 대한 제2 XOR 저장 용량은 제2 비이고, 제2 비는 제1 비와 상이한, 제2 메모리 디바이스를 포함한다. 데이터 저장 디바이스는 추가로 휘발성 메모리 및 제1 메모리 디바이스 및 제2 메모리 디바이스에 결합된 제어기 수단을 포함한다.
아래에서, 본 개시의 실시예를 참조한다. 그러나, 본 개시는 설명된 특정 실시예로 제한되지 않는다는 것이 이해되어야 한다. 대신에, 아래의 특징 및 요소의 임의의 조합이 상이한 실시예와 관련되든지 또는 그렇지 않든지 간에, 본 개시를 구현하고 실시하기 위해 고려된다. 또한, 본 개시의 실시예가 다른 가능한 해결책에 비해 및/또는 종래 기술에 비해 이점을 달성할 수 있지만, 특정 이점이 주어진 실시예에 의해 달성되는지 여부는 본 발명의 제한이 아니다. 따라서, 아래의 양태, 특징, 실시예 및 이점은 단지 예시적인 것이며, 청구항(들)에 명시적으로 언급된 경우를 제외하고는 첨부된 청구항의 요소 또는 제한으로 고려되지 않는다. 마찬가지로, "본 개시"에 대한 언급은 본원에 개시되는 임의의 발명의 주제의 일반화로서 해석되어서는 안 되며, 청구항(들)에 명시적으로 언급된 경우를 제외하고는 첨부된 청구항의 요소 또는 제한인 것으로 고려되어서는 안 된다.
본 개시는 일반적으로 솔리드 스테이트 드라이브(SSD)와 같은 데이터 저장 디바이스에 대한 프로그래밍을 개선하는 것에 관한 것이다. 제1 메모리 디바이스는 제1 XOR 요소를 갖고, 제2 메모리 디바이스는 제2 XOR 요소를 갖는다. 제1 메모리 디바이스의 용량에 대한 제1 XOR 요소의 비는 제2 메모리 디바이스의 용량에 대한 제2 XOR 요소의 비보다 실질적으로 더 작다. 프로그램 실패를 찾는 판독 검증 동작은 워드 라인 대 워드 라인 기반, 소거 블록 대 소거 블록 기반 또는 워드 라인 대 워드 라인 기반과 소거 블록 대 소거 블록 기반 모두에서 실행된다. 프로그램 실패가 제2 메모리 디바이스에 프로그래밍되기 전에 발견되고 고쳐지기 때문에, 제2 XOR 요소는 실질적으로 감소될 수 있다.
도 1은 개시된 실시예에 따른 데이터 저장 디바이스(106)가 호스트 디바이스(104)에 대한 저장 디바이스로서 기능할 수 있는 저장 시스템(100)을 예시하는 개략 블록도이다. 예를 들어, 호스트 디바이스(104)는 데이터 저장 디바이스(106)에 포함된 비휘발성 메모리(non-volatile memory: NVM)(110)를 이용하여 데이터를 저장 및 검색할 수 있다. 호스트 디바이스(104)는 호스트 DRAM(138)을 포함한다. 일부 예에서, 저장 시스템(100)은 저장 어레이로서 동작할 수 있는, 데이터 저장 디바이스(106)와 같은 복수의 저장 디바이스를 포함할 수 있다. 예를 들어, 저장 시스템(100)은 호스트 디바이스(104)에 대한 대용량 저장 디바이스로서 집합적으로 기능하는 저가/독립 디스크의 리던던트 어레이(redundant array of inexpensive/independent disk: RAID)로서 구성된 복수의 데이터 저장 디바이스(106)를 포함할 수 있다.
저장 시스템(100)은 데이터 저장 디바이스(106)와 같은 하나 이상의 저장 디바이스로 및/또는 이로부터 데이터를 저장 및/또는 검색할 수 있는 호스트 디바이스(104)를 포함한다. 도 1에 예시된 바와 같이, 호스트 디바이스(104)는 인터페이스(114)를 통해 데이터 저장 디바이스(106)와 통신할 수 있다. 호스트 디바이스(104)는 컴퓨터 서버, 네트워크 결합 스토리지(network attached storage: NAS) 유닛, 데스크탑 컴퓨터, 노트북(즉, 랩톱) 컴퓨터, 태블릿 컴퓨터, 셋탑 박스, 소위 "스마트" 폰과 같은 전화 핸드셋, 소위 "스마트" 패드, 텔레비전, 카메라, 디스플레이 디바이스, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 디바이스, 또는 데이터 저장 디바이스로 데이터를 전송하거나 이로부터 수신할 수 있는 다른 디바이스를 포함하는, 광범위한 디바이스 중 임의의 것을 포함할 수 있다.
데이터 저장 디바이스(106)는 제어기(108), NVM(110), 전원(111), 휘발성 메모리(112), 인터페이스(114) 및 기입 버퍼(116)를 포함한다. 일부 예에서, 데이터 저장 디바이스(106)는 명료함을 위해 도 1에 나타내지 않은 추가적인 구성 요소를 포함할 수 있다. 예를 들어, 데이터 저장 디바이스(106)는 데이터 저장 디바이스(106)의 구성 요소가 이에 기계적으로 부착되고, 데이터 저장 디바이스(106)의 구성 요소 등을 전기적으로 상호 접속하는 전기 전도성 트레이스를 포함하는 인쇄 회로 기판(PCB)을 포함할 수 있다. 일부 예에서, 데이터 저장 디바이스(106)의 물리적 치수 및 커넥터 구성은 하나 이상의 표준 폼 팩터를 따를 수 있다. 일부 예시적인 표준 폼 팩터는 3.5" 데이터 저장 디바이스(예를 들어, HDD 또는 SSD), 2.5" 데이터 저장 디바이스, 1.8" 데이터 저장 디바이스, 주변 구성 요소 상호 접속(peripheral component interconnect: PCI), PCI-확장(PCI-X), PCI 익스프레스(PCIe)(예를 들어, PCIe x1, x4, x8, x16, PCIe 미니 카드(Mini Card), MiniPCI 등)를 포함하지만, 이에 제한되지 않는다. 일부 예에서, 데이터 저장 디바이스(106)는 호스트 디바이스(104)의 마더보드에 직접 결합(예컨대, 직접 솔더링)될 수 있다.
데이터 저장 디바이스(106)의 인터페이스(114)는 호스트 디바이스(104)와 데이터를 교환하기 위한 데이터 버스 및 호스트 디바이스(104)와 커맨드를 교환하기 위한 제어 버스 중 하나 또는 둘 모두를 포함할 수 있다. 인터페이스(114)는 임의의 적절한 프로토콜에 따라 동작할 수 있다. 예를 들어, 인터페이스(114)는 다음의 프로토콜들 중 하나 이상에 따라 동작할 수 있다: ATA(advanced technology attachment)(예컨대, 직렬-SATA(SATA) 및 병렬-ATA(PATA)), FCP(Fibre Channel Protocol), SCSI(small computer system interface), SAS(serially attached SCSI), PCI 및 PCIe, NVMe(non-volatile memory express), OpenCAPI, GenZ, CCIX(Cache Coherent Interface Accelerator), OCSSD(Open Channel SSD) 등. 인터페이스(114)의 전기 접속(예를 들어, 데이터 버스, 제어 버스, 또는 둘 모두)은 제어기(108)에 전기적으로 접속되어, 호스트 디바이스(104)와 제어기(108) 사이의 전기 접속을 제공하여, 데이터가 호스트 디바이스(104)와 제어기(108) 사이에서 교환될 수 있게 한다. 일부 예에서, 인터페이스(114)의 전기 접속은 또한 데이터 저장 디바이스(106)가 호스트 디바이스(104)로부터 전력을 수신할 수 있게 할 수 있다. 예를 들어, 도 1에 예시된 바와 같이, 전원(111)은 인터페이스(114)를 통해 호스트 디바이스(104)로부터 전력을 수신할 수 있다.
NVM(110)은 복수의 메모리 디바이스 또는 메모리 유닛을 포함할 수 있다. NVM(110)은 데이터를 저장 및/또는 검색하도록 구성될 수 있다. 예를 들어, NVM(110)의 메모리 유닛은 데이터, 및 데이터를 저장하라고 메모리 유닛에게 지시하는 제어기(108)로부터의 메시지를 수신할 수 있다. 유사하게, NVM(110)의 메모리 유닛은 데이터를 검색하라고 메모리 유닛에게 지시하는 제어기(108)로부터의 메시지를 수신할 수 있다. 일부 예에서, 메모리 유닛 각각은 다이로 지칭될 수 있다. 일부 예에서, 단일 물리 칩이 복수의 다이(즉, 복수의 메모리 유닛)를 포함할 수 있다. 일부 예에서, 각각의 메모리 유닛은 비교적 많은 양의 데이터(예를 들어, 128 MB, 256 MB, 512 MB, 1 GB, 2 GB, 4 GB, 8 GB, 16 GB, 32 GB, 64 GB, 128 GB, 256 GB, 512 GB, 1 TB 등)를 저장하도록 구성될 수 있다.
일부 예에서, NVM(110)의 각각의 메모리 유닛은 플래시 메모리 디바이스, 상전이 메모리(PCM(phase-change memory)) 디바이스, 저항 변화 메모리(ReRAM(resistive random-access memory)) 디바이스, 자기 저항 메모리(MRAM(magnetoresistive random-access memory)) 디바이스, 강유전체 메모리(F-RAM(ferroelectric random-access memory)), 홀로그래픽 메모리 디바이스 및 임의의 다른 유형의 비휘발성 메모리 디바이스와 같은 임의의 유형의 비휘발성 메모리 디바이스를 포함할 수 있다.
NVM(110)은 복수의 플래시 메모리 디바이스 또는 메모리 유닛을 포함할 수 있다. NVM 플래시 메모리 디바이스는 NAND 또는 NOR 기반 플래시 메모리 디바이스를 포함할 수 있고, 각각의 플래시 메모리 셀에 대한 트랜지스터의 플로팅 게이트에 포함된 전하에 기초하여 데이터를 저장할 수 있다. NVM 플래시 메모리 디바이스에서, 플래시 메모리 디바이스는 복수의 다이로 분할될 수 있으며, 여기서 복수의 다이 중 각각의 다이는 복수의 블록들을 포함하고, 복수의 블록은 복수의 페이지로 추가로 분할될 수 있다. 특정 메모리 디바이스 내의 복수의 블록 중의 각각의 블록은 복수의 NVM 셀을 포함할 수 있다. NAND 셀의 로우(row)는 워드 라인을 이용하여 전기적으로 접속되어 복수의 페이지 중 소정 페이지를 규정할 수 있다. 각각의 복수의 페이지의 각각의 셀은 각각의 비트 라인에 전기적으로 접속될 수 있다. 또한, NVM 플래시 메모리 디바이스는 2D 또는 3D 디바이스일 수 있고, 단일 레벨 셀(SLC), 다중-레벨 셀(MLC), 트리플 레벨 셀(TLC), 또는 쿼드 레벨 셀(QLC)일 수 있다. 제어기(108)는 페이지 레벨에서 NVM 플래시 메모리 디바이스에 데이터를 기입하고 이로부터 데이터를 판독하고 블록 레벨에서 NVM 플래시 메모리 디바이스로부터 데이터를 소거할 수 있다.
데이터 저장 디바이스(106)는 데이터 저장 디바이스(106)의 하나 이상의 구성 요소에 전력을 공급할 수 있는 전원(111)을 포함한다. 표준 모드에서 동작할 때, 전원(111)은 호스트 디바이스(104)와 같은 외부 디바이스에 의해 공급되는 전력을 이용하여 하나 이상의 구성 요소에 전력을 공급할 수 있다. 예를 들어, 전원(111)은 인터페이스(114)를 통해 호스트 디바이스(104)로부터 수신된 전력을 이용하여 하나 이상의 구성 요소에 전력을 공급할 수 있다. 일부 예에서, 전원(111)은 외부 디바이스로부터의 전력 수신이 중단되는 경우와 같이 셧다운 모드에서 동작할 때 하나 이상의 구성 요소에 전력을 공급하도록 구성된 하나 이상의 전력 저장 구성 요소를 포함할 수 있다. 이러한 방식으로, 전원(111)은 온보드 백업 전원으로서 기능할 수 있다. 하나 이상의 전력 저장 구성 요소의 일부 예는 커패시터, 슈퍼 커패시터, 배터리 등을 포함하지만 이에 제한되지 않는다. 일부 예에서, 하나 이상의 전력 저장 구성 요소에 의해 저장될 수 있는 전력의 양은 하나 이상의 전력 저장 구성 요소의 비용 및/또는 크기(예를 들어, 면적/체적)의 함수일 수 있다. 즉, 하나 이상의 전력 저장 구성 요소에 의해 저장되는 전력의 양이 증가함에 따라, 하나 이상의 전력 저장 구성 요소의 비용 및/또는 크기가 또한 증가한다.
데이터 저장 디바이스(106)는 또한 휘발성 메모리(112)를 포함하며, 이는 제어기(108)에 의해 정보를 저장하는 데 사용될 수 있다. 휘발성 메모리(112)는 하나 이상의 휘발성 메모리 디바이스를 포함할 수 있다. 일부 예에서, 제어기(108)는 휘발성 메모리(112)를 캐시로서 사용할 수 있다. 예를 들어, 제어기(108)는 캐싱된 정보가 비휘발성 메모리(110)에 기입될 때까지 캐싱된 정보를 휘발성 메모리(112)에 저장할 수 있다. 도 1에 예시된 바와 같이, 휘발성 메모리(112)는 전원(111)으로부터 수신된 전력을 소비할 수 있다. 휘발성 메모리(112)의 예는 RAM(random-access memory), DRAM(dynamic random access memory), SRAM(static RAM) 및 SDRAM(synchronous dynamic RAM)(예를 들어, DDR1, DDR2, DDR3, DDR3L, LPDDR3, DDR4, LPDDR4 등)을 포함하지만, 이에 제한되지 않는다.
데이터 저장 디바이스(106)는 제어기(108)를 포함하며, 이는 데이터 저장 디바이스(106)의 하나 이상의 동작을 관리할 수 있다. 예를 들어, 제어기(108)는 NVM(110)으로부터의 데이터의 판독 및/또는 NVM(110)에의 데이터의 기입을 관리할 수 있다. 일부 실시예에서, 데이터 저장 디바이스(106)가 호스트 디바이스(104)로부터 기입 커맨드를 수신할 때, 제어기(108)는 NVM(110)에 데이터를 저장하라는 데이터 저장 커맨드를 개시하고 데이터 저장 커맨드의 진행을 모니터링할 수 있다. 제어기(108)는 저장 시스템(100)의 적어도 하나의 동작 특성을 결정하고 적어도 하나의 동작 특성을 NVM(110)에 저장할 수 있다. 일부 실시예에서, 데이터 저장 디바이스(106)가 호스트 디바이스(104)로부터 기입 커맨드를 수신할 때, 제어기(108)는 NVM(110)에 데이터를 전송하기 전에 기입 커맨드와 관련된 데이터를 내부 메모리 또는 기입 버퍼(116)에 임시로 저장한다.
도 2는 개시된 실시예에 따른 포기-파인 프로그래밍을 스케줄링하는 것의 개략적 예시이다. 프론트 엔드(Front End: FE) 모듈(202)은 XOR 엔진(204) 및 제1 정적 랜덤 액세스 메모리(SRAM)(206)를 포함한다. 호스트 데이터가 초기에 FE 모듈(202)로 전달될 수 있다. 데이터는 제1 XOR 엔진(204)을 통과하여 제1 SRAM(206)에 기입된다. 제1 XOR 엔진(204)은 제1 SRAM(206)에 기입하기 전에 XOR 패리티 정보를 생성한다. 배타적 OR(XOR) 패리티 정보는 NVM으로의 그리고 NVM으로부터의 데이터의 실패한 기입 또는 실패한 판독의 데이터 복구를 가능하게 하는 것 또는 전력 손실의 경우에 데이터 복구를 가능하게 하는 것과 같이 데이터를 저장하기 위한 저장 디바이스의 신뢰성을 개선하는 데 사용된다. 저장 디바이스는 도 1의 데이터 저장 디바이스(106)일 수 있다. 저장 디바이스에 저장된 데이터에 기초하여 생성되거나 계산되는 XOR 패리티 정보를 사용함으로써 신뢰성이 제공될 수 있다. 제1 XOR 엔진(204)은 제1 SRAM(206)에 기입될 제1 패리티 스트림을 생성할 수 있다. 제1 SRAM(206)은 데이터가 기입될 수 있는 복수의 다이를 포함할 수 있다.
제2 플래시 관리자(FM2) 모듈(210)은 인코더(212), 제2 SRAM(216), 디코더(214) 및 제2 XOR 엔진을 포함하고, 여기서 제2 XOR 엔진은 제2 SRAM(216)에 기입될 제2 패리티 스트림을 생성하도록 구성된다. 디코더(214)는 로우 기어(low gear: LG) 디코더 및 하이 기어(high gear: HG) 디코더를 포함할 수 있다. LG 디코더는 저밀도 패리티 검사(low density parity check: LDPC) 알고리즘과 같은 저전력 비트 플리핑(flipping) 알고리즘을 구현할 수 있다. LG 디코더는 데이터를 디코딩하고 비트 플립을 보정하도록 동작 가능할 수 있는데, 여기서 이러한 데이터는 낮은 비트 에러 레이트(BER)를 갖는다. HG 디코더는 전체 전력 디코딩 및 에러 정정 알고리즘을 구현할 수 있고, 이는 LG 디코더의 실패시에 개시되어 데이터 내의 비트 플립을 디코딩하고 정정할 수 있다. HG 디코더는 비트 플립을 보정하도록 동작 가능할 수 있는데, 여기서 이러한 데이터는 높은 BER을 갖는다. 대안적으로, FM2는 조합된 FE-FM 모노칩으로 대체될 수 있다.
인코더(212) 및 디코더(214)(LG 디코더 및 HG 디코더를 포함)는 예를 들어, 프로세싱 회로 또는 프로세서(프로세서에 의해 실행 가능한 컴퓨터-판독 가능 프로그램 코드(예를 들어, 펌웨어)를 저장하는 컴퓨터 판독 가능 매체를 가짐), 로직 회로, 주문형 집적 회로(ASIC), 프로그래밍 가능 로직 제어기, 매립형 마이크로컨트롤러, 이들의 조합 등을 포함할 수 있다. 일부 예에서, 인코더(212) 및 디코더(214)는 저장 제어기로부터 분리되고, 다른 예에서, 인코더(212) 및 디코더(214)는 저장 제어기 내에 매립되거나 그의 일부이다. 일부 예에서, LG 디코더는 로직 회로, ASIC 등과 같은 확립형 회로(hardened circuit)이다. 일부 예에서, HG 디코더는 소프트 디코더(예를 들어, 프로세서에 의해 구현됨)일 수 있다. 데이터는 디코더(214)에서 디코딩된 후에 제2 SRAM(216)에 기입될 수 있다. 제2 SRAM(216)에서의 데이터는 아래에서 논의되는 바와 같이, 인코더(212)에 추가로 전달될 수 있다.
메모리 디바이스(220)는 NAND 메모리 디바이스일 수 있다. 메모리 디바이스(220)는 SLC 메모리(222) 및 MLC 메모리(224)를 포함할 수 있다. 본원에서 논의되는 실시예는 MLC 메모리, TLC 메모리 또는 QLC 메모리와 같은 임의의 다중 레벨 셀 메모리에 적용 가능하다는 것이 이해되어야 한다. MLC 메모리가 간단히 예시된다. SLC 메모리, MLC 메모리, TLC 메모리, QLC 메모리 및 PLC 메모리는 메모리 셀이 수용할 수 있는 비트의 수에 따라 명명된다. 예를 들어, SLC 메모리는 메모리 셀 당 하나의 비트를 수용할 수 있고, QLC 메모리는 메모리 셀 당 4개의 비트를 수용할 수 있다. 각각의 비트는 저장 디바이스 상에서 1 또는 0으로서 등록된다. 추가적으로, SLC 메모리가 메모리 디바이스로서 예시되지만, SLC 메모리는 2-비트 셀 또는 MLC 메모리로 대체될 수 있음이 또한 고려된다.
또한, SLC 메모리(222)는 SLC 배타적 또는 (XOR) 파티션(226)을 포함하며, 여기서 SLC XOR 파티션(226)은 패리티 또는 XOR 데이터를 저장한다. 유사하게, MLC 메모리(224)는 제1 MLC XOR 파티션(228a) 및 제2 MLC XOR 파티션(228b)을 포함하며, 여기서 제1 MLC XOR 파티션(228a) 및 제2 MLC XOR 파티션(228b)은 예시적인 목적을 위해 MLC XOR 파티션(228)으로 지칭될 수 있다. 일부 실시예에서, MLC 메모리(224)는 MLC XOR 파티션(228)을 포함하지 않는다. 다른 실시예에서, MLC 메모리(224)는 제1 MLC XOR 파티션(228a) 및 선택적으로 제2 MLC XOR 파티션(228b)을 포함한다. MLC 메모리(224)가 제1 MLC XOR 파티션(228a) 및 제2 MLC XOR 파티션(228b)을 포함하는 경우, MLC XOR 파티션(228)은 연속적일 수 있어서, 제1 MLC XOR 파티션(228a)과 제2 MLC XOR 파티션(228b)사이의 구별은 예시적인 목적을 위한 것으로 이해되어야 한다.
호스트 데이터는 FE 모듈(202)의 제1 SRAM(206)에 기입된다. 제1 XOR 패리티 데이터는, 호스트 데이터가 제1 SRAM(206)에 기입될 때, 동시에 FE 모듈(202)의 제1 XOR 엔진(204)에서 생성될 수 있다. 호스트 데이터 및 생성된 제1 XOR 패리티 데이터는 스트림 1을 따라 인코딩되도록 제1 SRAM(206)으로부터 인코더(212)로 전달된다. 호스트 데이터는 SLC 메모리(222)에 인코딩되고 기입된다. 마찬가지로, 생성된 제1 XOR 패리티 데이터는 스트림 2를 따라 메모리 디바이스(220)의 SLC XOR 파티션(226)에 인코딩되고 기입된다. SLC 메모리(222)는 전력 손실 이벤트의 경우에 데이터를 보호하는 데 전용되는 메모리 디바이스(220)의 영역일 수 있다. SLC 메모리(222)에 대한 프로그래밍 및 MLC 메모리(224)에 대한 프로그래밍은 디커플링되며, 이는 스케줄링 유연성 및 성능을 높일 수 있다. 호스트 데이터는 또한 SLC 메모리(222)로부터 MLC 메모리(224)의 복수의 스트림 또는 소거 블록으로 분류될 수 있다.
스트림 3에서, 호스트 데이터는 디코더(214)에서 SLC 메모리(222)로부터 판독된다. 호스트 데이터가 디코더(214)에서 디코딩된 후에, 호스트 데이터는 스트림 4를 따라 FM2(210)의 제2 SRAM(216)에 기입되며, 여기서 제2 XOR 패리티 데이터는 FM2(210)의 제2 XOR 엔진(232)에서 호스트 데이터에 대해 추가로 생성된다. 호스트 데이터 및 제2 XOR 패리티 데이터는 스트림 5를 따라 인코딩되도록 인코더(212)를 통과하고, 스트림 6을 따라 MLC 메모리(224) 및 MLC XOR 파티션(228)의 각각의 위치에 포기(foggy) 기입된다. 포기 기입 동안, 제어기는 관련된 하나 이상의 스트림으로 데이터 분류를 허용하기 위해 판독할 데이터를 선택적으로 선택할 수 있다.
호스트 데이터 및 생성된 제2 XOR 패리티 데이터는 제2 SRAM(216)으로부터 DRAM(230)으로 스트림 7을 따라 추가로 전달된다. 일 실시예에서, 스트림 5 및 스트림 7은 동시에 발생한다. 다른 실시예에서, 스트림 5는 스트림 7 이전에 발생한다. DRAM(230)은 도 1의 데이터 저장 디바이스(106)와 같은 저장 디바이스의 추가적인 휘발성 메모리일 수 있다. 또한, DRAM(230)은 호스트 데이터와 연관된 관련 워드 라인이 파인(fine) 기입될 수 있을 때까지 호스트 데이터 및 제2 XOR 패리티 데이터를 스테이징(예를 들어, 임시 버퍼링)할 수 있다. 호스트 데이터 및 제2 XOR 패리티 데이터는 DRAM(230)으로부터 인코더(212)로 추가로 전달되어 스트림 8을 따라 인코딩된다. 인코딩된 후에, 호스트 데이터 및 제2 XOR 패리티 데이터는 스트림 9를 따라 MLC 메모리(224) 및 MLC XOR 파티션(228)의 각각의 위치에 파인 기입된다.
도 3은 개시된 실시예에 따른 슈퍼 블록(300)의 전체 다이 리던던시를 갖는 수평 배타적 또는 (XOR) 스킴의 개략적 예시이다. 슈퍼 블록(300)은 복수의 다이(예를 들어, 다이 0 내지 7) 및 복수의 워드 라인(WL)(예를 들어, WL 0 내지 95)을 포함한다. 열거된 다이 및 워드 라인의 수는 제한하고자 하는 것이 아니라, 가능한 실시예를 예시하는 것으로 나타내어져 있다. 예를 들어, 슈퍼 블록은 약 32개의 다이 및 약 96개보다 많거나 적은 WL을 포함할 수 있다. 복수의 다이 중의 각각의 다이는 PL0으로 표시된 제1 평면 및 PL1로 표시된 제2 평면을 포함한다. 또한, 복수의 워드 라인의 각각의 워드 라인은 4개의 스트링(STR)을 포함한다. 워드 라인 당 스트링의 수는 슈퍼 블록의 메모리 셀의 유형에 기초한다. 예를 들어, QLC 메모리는 워드 라인 당 4개의 스트링을 포함하고, TLC 메모리는 워드 라인 당 3개의 스트링들 포함하고, SLC 메모리는 워드 라인 당 하나의 스트링을 포함한다.
슈퍼 블록(300)은 데이터에 대해 7개의 다이 및 XOR 패리티 데이터에 대해 제8 다이를 포함하는 구역 네임스페이스 아키텍처의 예일 수 있다. 슈퍼 블록(300)의 다이 7은 XOR 패리티 데이터(302)와 연관된다. 다이 7이 단지 XOR 패리티 데이터(302)만을 포함하기 때문에, XOR 패리티 데이터(302)는 다이 1과 같은 다른 실패한 다이(304)를 복구할 수 있으며, 여기서 다른 실패한 다이(304)를 복구하는 것은 실패한 다이의 모든 데이터(즉, 전체 다이 리던던시)를 복구하는 것을 포함한다. 또한, WL 0의 스트링 2와 같은 각각의 스트링이 8개의 다이 각각에 걸쳐 있으므로, 각각의 스트링은 16개의 평면을 포함한다. 다이 7이 XOR 패리티 데이터(302)를 포함하기 때문에, 패리티 그룹 비는 약 1:7이며, 여기서 XOR 패리티 데이터 오버헤드는 약 12.5%(즉, 1/8)이다. 열거된 값은 제한하고자 하는 것이 아니라, 가능한 실시예의 예를 제공하기 위한 것이다.
도 4는 개시된 실시예에 따른, 다중-레벨 셀에서의 배타적 또는 (XOR)의 가능한 옵션의 예시이다. 정정 불능 에러 정정 코드(uncorrectable error correction code: UECC) 데이터 에러의 소스는 프로그램 상태 실패(program status failure: PSF), 사일런트(silent) 프로그램 실패, 및 웨어(wear) 및 데이터 보유 관련 랜덤 실패를 포함한다. PSF 및 사일런트 프로그램 실패는 비트 실패 레이트(bit failure rate: BFR) 및/또는 프로그램 소거(program erase: PE) 사이클과 연관될 수 있다. 웨어 및 DR 관련 랜덤 실패는 섹터 실패 레이트(sector failure rate: SFR)와 연관될 수 있다.
"XOR 패리티" 컬럼은 각각의 실시예에 포함된 XOR 패리티의 유형을 예시한다. 예를 들어, 전체 다이 리던던시(full die redundancy: FDR)는 전체 실패 다이를 복구할 수 있다. 그러나, FDR과 연관된 XOR 패리티 데이터는 슈퍼 블록 내에 다량의 저장 공간을 필요로 하여, 슈퍼 블록에 저장될 수 있는 데이터의 양을 감소시킬 수 있다. 저밀도 패리티 검사(low-density parity-check: LDPC)와 같은 복수의 에러 정정 코드(ECC) 코드워드를 위한 XOR 패리티 데이터 또는 임의의 다른 패리티 스킴이 데이터의 실패한 비트를 복구하는 데 사용될 수 있다. 예를 들어, 실패한 비트 카운트(failed bit count: FBC)가 임계값보다 클 때, 도 1의 제어기(108)와 같은 제어기는 XOR 패리티 데이터를 이용하여 실패한 비트를 복구할 수 있어서, 실패한 비트와 연관된 데이터가 실패한 비트를 포함하지 않는다.
데이터 에러의 다른 예는 프로그램 실패이며, 여기서 프로그램 실패 크기는 하나의 WL-스트링-평면으로부터 2-소거 블록 실패 2 평면으로 변한다. XOR 패리티 데이터 및 LDPC 둘 모두가 FBC 에러를 보정하는 데 사용될 수 있는 FBC 에러와 달리, XOR 패리티 데이터 및 유사한 패리티 스킴이 프로그램 실패를 보정하는 데 사용될 수 있다. PSF와 같은 프로그램 실패는 슈퍼 블록의 상이한 위치에 데이터를 기입함으로써 고쳐질 수 있다. 예를 들어, 셀이 허용 불가능한 비트 에러 레이트(unacceptable bit error rate: UBER)를 가질 때, 제어기는 UBER을 갖는 셀에 데이터를 프로그래밍하는 것을 피할 수 있다. 그러나, 사일런트 프로그램 실패는 제어기에 의해 검출 가능하지 않을 수 있고, 도 1의 NVM(110)과 같은 NVM으로 전달된다. 사일런트 프로그램 실패는 도 1의 데이터 저장 디바이스(106)와 같은 데이터 저장 디바이스의 신뢰성을 감소시키는 이중, 삼중, 또는 더 높은 에러를 초래할 수 있다.
프로그램 실패로 인한 실패로부터 사용자 데이터를 보호하기 위해, XOR 패리티 데이터 스킴은 상술한 프로그램 실패의 임의의 조합 및 설명되지 않았지만 고려되는 임의의 프로그램 실패에 대해 보호하기에 충분히 클 필요가 있고(즉, 낮은 XOR 패리티 비), 정확한 기하 형태도 가질 필요가 있다. 그러나, XOR 패리티 데이터 스킴 크기는 제한을 갖는다. 예를 들어, XOR 패리티 데이터 스킴의 크기를 증가시킴으로써, 더 적은 사용자 데이터 또는 임의의 다른 데이터가 NVM에 저장될 수 있는데, 그 이유는 XOR 패리티 데이터가 더 많은 메모리가 더 많은 사용자 데이터를 저장하는 데 이용될 수 있었던 NVM에서 더 많은 메모리를 차지하기 때문이다.
"여분의 조치(extra measures)" 컬럼은 에러를 검사하고 고치는 데 사용되는 판독 검증/향상된 포스트 기입 판독(enhanced post write read: EPWR)의 캐시 또는 버퍼 또는 레벨에서의 데이터의 임시 저장을 지칭한다. 예를 들어, 버퍼 또는 캐시는 슈퍼 블록에 기입된 데이터의 마지막 2개의 워드 라인(2WL 깊이)까지 저장할 수 있다. 다른 워드 라인이 슈퍼 블록에 기입될 때, 버퍼 또는 캐시에 저장된 마지막 2개의 워드 라인의 가장 오래된 워드 라인이 릴리징되며, 워드 라인을 릴리징하는 것은 데이터를 소거하는 것을 지칭한다. 또한, 판독 검증/EPWR 레벨은 판독 검증/EPWR 동작의 주파수를 지칭한다. 예를 들어, 워드 라인의 판독 검증/EPWR 레벨은 워드 라인이 프로그래밍된 후에, 판독 검증/EPWR 동작이 발생하는 것을 의미한다.
도 4에 예시된 바와 같이, 추가 펌웨어(firmware: FW) 판독 검증/EPWR 검사가 있을 때마다, XOR 패리티 비는 감소한다. 예를 들어, 데이터가 도 2의 SLC 메모리(222)와 같은 SLC 메모리로부터 도 2의 MLC 메모리(224)와 같은 MLC 메모리(224)로 복사되는 제1 FW 판독 검증/EPWR 검사 실시예(404)에서, XOR 패리티 비는 약 1:127이다. 비교로서, 어떠한 여분 검사도 없는 실시예(402)는 약 1:63의 XOR 패리티 비를 갖는다. 제1 FW 판독 검증/EPWR 검사 실시예(404)는 워드 라인의 판독 검증/EPWR 레벨을 포함한다. 또한, 캐시 또는 버퍼는 슈퍼 블록에 기입된 데이터의 마지막 2개의 워드 라인(예를 들어, 2WL 깊이)을 저장한다. 제4 FW 판독 검증/EPWR 검사 실시예(406)와 같은 판독 검증/EPWR 검사를 추가로 수행함으로써, XOR 패리티 비는 실질적으로 약 0으로 감소될 수 있고, 여기서 버퍼 또는 캐시가 슈퍼 블록에 기입된 최종 소거 블록을 저장하고, 워드 라인, 소거 블록, 또는 워드 라인 및 소거 블록 둘 모두가 프로그래밍된 각각의 시간 후에 판독 검증/EPWR 동작이 발생한다.
PSF 가 보정될 필요가 없다면, XOR 패리티 데이터 비뿐만 아니라 오버헤드도 감소될 수 있다. 예를 들어, 기입된 마지막 2개까지의 워드 라인 또는 프로그래밍된 최종 소거 블록과 같은 데이터가 SLC 메모리, 버퍼 및/또는 캐시와 같은 소스 블록에서 여전히 이용 가능하면, 소스 블록 내의 데이터가 PSF 실패에 걸쳐 프로그래밍될 수 있다. 다른 예에서, 임시 XOR 패리티 데이터가 버퍼, 캐시 및/또는 도 1의 휘발성 메모리(112)와 같은 휘발성 메모리에 저장될 수 있으며, 여기서 PSF의 경우, 캐싱된 XOR 스트라이프 당(즉, 하나의 다이, 마지막 2개의 워드 라인) 하나의 XOR 패리티 요소(즉, XOR 패리티 데이터) 가 고쳐질 수 있다.
또한, 사일런트 프로그램 실패가 고쳐질 필요가 없다면, XOR 패리티 데이터 비뿐만 아니라 오버헤드도 감소될 수 있다. 예를 들어, 기입된 마지막 2개의 워드 라인까지 또는 프로그래밍된 최종 소거 블록과 같은 데이터가 SLC 메모리, 버퍼, 및/또는 캐시와 같은 소스 블록에서 여전히 이용 가능하면, 소스 블록 내의 데이터가 PSF 실패에 걸쳐 프로그래밍될 수 있다. 또한, 추가적인 FW 판독 검증/EPWR 동작이 사일런트 프로그램 실패 유형에 대한 에러 서명을 검색함으로써 사일런트 프로그램 실패를 검출하는 경우, XOR 패리티 비 및 오버헤드가 감소될 수 있다. 도 2를 참조하면, SLC 메모리(222) 및 SLC XOR 파티션(226)의 XOR 패리티 비는 약 1:7일 수 있으며, 여기서 XOR 패리티 데이터의 1개의 다이마다 7개의 다이가 데이터에 적합하다. 마찬가지로, MLC 메모리(224)와 MLC XOR 파티션(228)(조합된 제1 MLC XOR 파티션(228a) 및 제2 MLC XOR 파티션(228b))의 XOR 패리티 비는 약 1:7일 수 있다. 그러나, MLC 메모리(224)에 프로그래밍된 데이터에 대해 추가적인 FW 판독 검증/EPWR 동작을 수행함으로써, MLC 메모리(224) 및 MLC XOR 파티션(228)의 XOR 패리티 비는 약 1:15, 약 1:31, 약 1:63, 약 1:127, 약 1:255, 약 1:383 등일 수 있으며, 여기서 MLC XOR 파티션(228)은 제1 MLC XOR 파티션(228a)을 포함한다. MLC 메모리(224)와 MLC XOR 파티션(228)의 XOR 패리티 비가 약 0일 수 있으며, 여기서 XOR 패리티 데이터가 MLC XOR 파티션(228)에 저장되지 않는 것으로 고려된다.
예를 들어, 각각의 워드 라인은 MLC 메모리의 슈퍼 블록에 기입될 때 사일런트 프로그램 실패에 대해 검사될 수 있다. 일부 실시예에서, 워드 라인의 각각의 평면 및/또는 각각의 스트링은 또한 사일런트 프로그램 실패에 대해 검사된다. 동작의 오버헤드가 클 수 있지만, 사일런트 프로그램 실패는 통지되지 않은 MLC 메모리로 프로그래밍되지 않는다. 또한, 각각의 워드 라인이 검사되기 때문에, 약 2개까지의 워드 라인과 같은 최소 개수의 워드 라인만이 버퍼, 캐시, 및/또는 휘발성 메모리에 저장될 수 있다. 따라서, 저장된 위치로부터 MLC 메모리로 워드 라인을 복사하는 레이턴시 또는 저장된 위치로부터 워드 라인을 릴리징하는 레이턴시는 무시해도 될 정도이거나 작을 수 있다.
다른 예에서, FW 판독 검증/EPWR 동작은 전체 소거 블록 실패를 검사할 수 있다. 전체 소거 블록 실패에 대해 검사할 때, 소거 블록 프로그래밍이 종료시에 단지 몇 개의 워드 라인만이 검사될 필요가 있으며, 따라서 동작의 오버헤드를 각각의 워드 라인을 검사하는 동작의 오버헤드보다 더 작게 한다. 일 실시예에서, 검사된 워드 라인의 수는 약 2개의 워드 라인일 수 있으며, 여기서 검사된 약 2개의 워드 라인은 프로그래밍된 소거 블록의 마지막 워드 라인이다. 그러나, 소거 블록이 MLC 메모리로의 소거 블록 프로그램의 완료 시 검사되기 때문에, 소거 블록의 데이터와 연관된 소스 블록들은 SLC 메모리, 버퍼, 및/또는 캐시에 저장될 필요가 있을 수 있다. 소거 블록과 연관된 소스 블록을 저장하는 것이 MLC 메모리에 프로그래밍된 마지막 2개의 워드 라인을 저장하는 것보다 더 크기 때문에, 관련 위치로부터 소스 블록을 릴리징하는 레이턴시는 약 2개까지의 워드 라인을 릴리징하는 레이턴시보다 더 클 수 있다.
또 다른 예에서, FW 판독 검증/EPWR 동작은 소거 블록 및 워드 라인 실패 둘 모두에 대해 검사할 수 있다. 소거 블록이 MLC 메모리에 프로그래밍된 후에, 소거 블록의 각각의 워드 라인이 워드 라인 실패에 대해 검사된다. 일부 실시예에서, 워드 라인의 각각의 평면 및/또는 각각의 스트링은 프로그램 실패에 대해 검사된다. 소거 블록의 각각의 워드 라인이 MLC 메모리에 대한 소거 블록 프로그램의 완료 시에 검사되기 때문에, 소거 블록의 데이터와 연관된 소스 블록은 SLC 메모리, 버퍼, 및/또는 캐시에 저장될 필요가 있을 수 있다. 소거 블록과 연관된 소스 블록을 저장하는 것이 MLC 메모리에 프로그래밍된 마지막 2개의 워드 라인을 저장하는 것보다 더 크기 때문에, 관련 위치로부터 소스 블록을 릴리징하는 레이턴시는 약 2개까지의 워드 라인들을 릴리징하는 레이턴시보다 더 클 수 있다. 동작의 오버헤드가 이전의 2개의 예보다 더 클 수 있지만, 사일런트 프로그램 실패는 통지되지 않은 MLC 메모리로 전달되지 않을 수 있으므로, XOR 패리티 데이터를 최대한 줄일 수 있으며, 여기서 저장된 XOR 패리티 데이터는 최소이거나 실질적으로 약 0일 수 있다. 일부 실시예에서, 저장된 유일한 XOR 패리티 데이터는 웨어 및 DR 관련 랜덤 실패에 대한 것일 수 있다.
도 5a 및 도 5b는 개시된 실시예에 따른 다양한 프로그램 실패 유형의 예시이다. 도 5a 및 도 5b는 도 5a 및 도 5b로 표기된 2개의 페이지로 분할된 단일 도면을 집합적으로 나타내는 것으로 이해되어야 한다. 사일런트 에러(즉, 사일런트 프로그램 실패)는 어떠한 PSF 실패도 포함하지 않는다. 따라서, 사일런트 에러는 도 2의 MLC 메모리(224)와 같은 MLC 메모리에 전달될 수 있다. 그러나, 도 5a 및 도 5b의 다른 예에 예시된 바와 같이, PSF를 갖는 적어도 하나의 셀을 포함함으로써, 에러는 제어기에 의해 통지될 수 있고, 제어기는 XOR 패리티 데이터, LDPC, 및/또는 이와 유사한 것을 이용하여 에러를 보정할 수 있다. 다양한 프로그램 실패 유형은 UECC/쇼트(short) 및 PSF일 수 있다. 일부 실시예에서, 프로그램 실패는 프로그래밍된 마지막 워드 라인(즉, WL(n)) 및/또는 프로그래밍된 마지막 스트링(즉, S3)과 같이 슈퍼 블록의 경계를 따른다. 도 4에 설명된 판독 검증/EPWR 동작과 같은 판독 검증/EPWR 동작을 구현함으로써, 도 5a 및 도 5b에 예시된 프로그램 실패는 MLC 메모리에 대해 프로그래밍되지 않을 수 있다. 나타내지 않은 다른 실패 유형이 본원에 설명된 실시예에 적용 가능하다는 것이 고려된다.
도 6a 및 도 6b는 개시된 실시예에 따른 슈퍼 블록(600, 650)의 감소된 수평 배타적 또는 (XOR) 스킴의 개략적 예시이다. 도 3의 슈퍼 블록(300)의 양태는 도 6a의 슈퍼 블록(600) 및 도 6b의 슈퍼 블록(650)과 유사할 수 있다. 슈퍼 블록 스킴이 예시되지만, 개시된 실시예는 논(non)-슈퍼 블록 스킴에 적용 가능할 수 있음이 고려된다. 슈퍼 블록 스킴은 더 높은 레벨의 병렬처리(parallelism)를 달성하기 위해 복수의 다이에 걸친 데이터 스트라이핑(striping)을 지칭할 수 있다. 논-슈퍼 블록 스킴은 단일 다이에 걸친 데이터 스트라이핑을 지칭할 수 있다. 또한, 수평 XOR 스킴이 예시되지만, 실시예는 감소된 수직 XOR 스킴에 적용 가능할 수 있다는 것을 이해하여야 한다. 수평 XOR 스킴에 따르면, XOR 패리티 그룹/스트라이프는 데이터 스트라이프에 걸쳐 수평으로 이어져서, 수평 데이터 스트라이프의 블록의 마지막 블록 또는 세트가 XOR 패리티 데이터로 프로그래밍된다. XOR 패리티 데이터는 각각의 수평 데이터 스트라이프에 대한 데이터 실패에 대해 보호할 수 있다. 수직 XOR 패리티 스킴에 따르면, XOR 패리티 그룹은 단일 평면에 걸쳐 수직으로 이어지며, 예를 들어, 평면 또는 평면의 블록 세트의 마지막 블록이 XOR 패리티 데이터로 프로그래밍된다. XOR 패리티 데이터는 각각의 수직 데이터 스트라이프에 대한 데이터 실패에 대해 보호할 수 있다.
도 3의 슈퍼 블록(300)과 달리, 슈퍼 블록(600), 구체적으로 다이(7)는 슈퍼 블록(300)과 비교할 때 약 50% 감소된 XOR 패리티 데이터를 갖는다. XOR 패리티 데이터(602)는 다이 7의 PL1과 같은 단일 다이의 단일 평면 상에 위치될 수 있다. 슈퍼 블록(600)과 같이, 슈퍼 블록(650)은 슈퍼 블록(300)과 비교할 때 약 50% 감소된 XOR 패리티 데이터를 갖는다. 그러나, 단일 다이의 단일 평면 상에 XOR 패리티 데이터를 갖기보다는, XOR 패리티 데이터(602)는 WL0의 STR1 및 STR3 상과 같이 교번하는 스트링 상에 저장될 수 있으며, 여기서 XOR 패리티 데이터(602)는 다이 7과 같은 단일 다이의 PL0 및 PL1 둘 모두에 저장된다. 마찬가지로, 1:15 패리티 그룹(652)은 패리티(P)가 교번하는 워드 라인 상에 위치될 수 있는 곳을 예시한다.
감소된 XOR 패리티 데이터는 PSF 및 사일런트 프로그램 실패를 검사하기 위한 추가적인 판독 검증/EPWR 동작으로 인한 것일 수 있다. 슈퍼 블록(600, 650)의 약 50% XOR 패리티 데이터는 전체 다이 실패보다는 다이(604)의 블록 또는 평면만을 복구할 수 있다. 패리티 그룹 비는 도 3에 앞서 예시된 바와 같이 1:7보다는 약 1:15일 수 있다. 그러나, 추가적인 판독 검증/EPWR 동작이 프로그래밍된 워드 라인 및/또는 슈퍼 블록의 소거 블록 상에서 실행되기 때문에, UBER은 슈퍼 블록의 워드 라인 및/또는 소거 블록 상에서 실행되는 추가적인 판독 검증/EPWR 동작을 갖지 않는 슈퍼 블록의 프로그래밍된 워드 라인 및/또는 소거 블록보다 실질적으로 작을 수 있다.
도 7은 개시된 실시예에 따른 슈퍼 블록(700)의 감소된 수평 배타적 또는 (XOR) 스킴의 개략적 예시이다. 도 6b의 슈퍼 블록(650)의 양태는 슈퍼 블록(700)과 유사할 수 있다. 슈퍼 블록 스킴이 예시되지만, 개시된 실시예는 논-슈퍼 블록 스킴에 적용 가능할 수 있음이 고려된다. 또한, 수직 XOR 스킴이 예시되지만, 실시예는 감소된 수평 XOR 스킴에 적용 가능할 수 있다는 것이 이해되어야 한다. 예를 들어, 슈퍼 블록(700)은 1:15 패리티 그룹 비를 가지며, 여기서 XOR 패리티 데이터(702)는 교번 스트링에 저장된다. 슈퍼 블록(700)에 관하여, 제4 워드 라인 WL3의 제4 스트링 STR3이 프로그래밍되고 있다. 프로그램 실패로 인한 위험에 있는 데이터는 2개의 이전에 프로그래밍된 워드 라인 WL2 및 WL1이다. 그러나, WL2 및 WL1의 데이터에 대한 소스 블록은 도 2의 SLC 메모리(222)와 같은 SLC 메모리에 저장된다. WL0은 "안전한" 것으로 고려될 수 있는데, 여기서 도 4에 설명된 판독 검증/EPWR 동작과 같은 성공적인 판독 검증/EPWR 동작이 WL0의 데이터에 대해 완료되었다. 프로그램 실패(704), PSF 및 사일런트 프로그램 실패 둘 모두가 여전히 WL1, WL2, 및 WL3에 존재할 수 있는데, 그 이유는 판독 검증/EPWR 동작이 아직 실행되지 않았기 때문이다.
도 8은 개시된 실시예에 따른 슈퍼 블록(800)의 감소된 수직 배타적 또는 (XOR) 스킴의 개략적 예시이다. 슈퍼 블록 스킴이 예시되지만, 개시된 실시예는 논-슈퍼 블록 스킴에 적용 가능할 수 있음이 고려된다. 또한, 수직 XOR 스킴이 예시되지만, 실시예는 감소된 수평 XOR 스킴에 적용 가능할 수 있다는 것이 이해되어야 한다. 슈퍼 블록(800)은 도 4에 예시된 바와 같이 1:383 패리티 그룹 스킴을 예시하며, 여기서 1:383은 96개의 워드 라인 및 8개의 다이를 포함하는 QLC 메모리 내의 383개의 다른 셀에 대한 1개의 XOR 패리티 데이터를 지칭한다. 일부 예에서, 슈퍼 블록 당 패리티 그룹의 수는 슈퍼 블록의 절반 또는 1/4로 감소될 수 있어서, 슈퍼 블록은 약 2개 내지 약 4개의 패리티 그룹을 포함한다. 예를 들어, 패리티 그룹의 각각은 각각의 다이 및 이웃하는 인접한 다이의 데이터 고장에 대해 보호할 수 있다.
각각의 워드 라인의 마지막 다이에 대해 XOR 패리티 데이터를 프로그래밍하기보다는, XOR 패리티 데이터(802)가 마지막 워드 라인의 마지막 스트링에 대해 프로그래밍되어, XOR 패리티 데이터가 각각의 평면 및/또는 다이에 대한 이전 워드 라인 및 이전 스트링을 보호한다. 일부 예에서, XOR 패리티 데이터(802)는 슈퍼 블록에 대한 순차적 프로그램을 유지하기 위해 이전 스트링 및 워드 라인에 대한 프로그램의 완료까지 도 1의 휘발성 메모리(112)와 같은 휘발성 메모리에 저장될 수 있다.
일례에서, XOR 패리티 데이터는 동일한 다이 및/또는 평면을 따라 보호하여, 다이7, PL1, WL95, STR3의 제1 XOR 패리티 데이터(806)가 다이7, PL0, WL0, STR1의 제4 위치(808d)를 보호할 수 있다. 다른 예에서, 다이7, PL1, WL95, STR3의 제1 XOR 패리티 데이터(806)는 제1 위치(808a), 제2 위치(808b), 제 3 위치(808c) 및 제4 위치(808d)와 같은 셀의 분산된 그룹을 보호할 수 있다. 또한, 도 2의 SLC 메모리(222)와 같은 휘발성 메모리 및/또는 NVM은 데이터의 마지막 소거 블록을 저장할 수 있어서, 제1 소거 블록(804)이 복구될 수 있다.
도 9는 개시된 실시예에 따른 포기-파인 프로그램을 수행하는 방법(900)을 예시하는 흐름도이다. 블록 902에서, 도 1의 제어기(108)와 같은 제어기가 기입 커맨드를 수신한다. 제어기는 블록 904에서 도 2의 MLC 메모리(224)와 같은 비휘발성 메모리에 대해 포기/파인 프로그램을 수행한다. 파인 프로그램과 연관된 데이터는 NVM의 제1 워드 라인 및 제2 워드 라인과 같은 하나 이상의 워드 라인 또는 NVM의 소거 블록에 기입될 수 있다.
블록 906에서, 데이터 소스(즉, 블록 902에서 기입 커맨드와 연관된 데이터)는 도 1의 휘발성 메모리(112)와 같은 휘발성 메모리, 및/또는 도 2의 SLC 메모리(222)와 같은 NVM에 유지되며, 여기서 데이터 소스는 NVM에 기입된 약 2개까지의 워드 라인 마지막 파인 프로그램 또는 NVM에 대해 파인 프로그래밍된 최종 소거 블록을 저장할 수 있다. 블록 908에서, NVM에 대해 파인 프로그래밍되는 데이터에 대해 판독 검증 동작이 발생한다. 판독 검증 동작은 향상된 포스트 기입 판독 동작일 수 있다. 또한, 판독 검증 동작은 제1 워드 라인 및 제2 워드 라인과 같은 이전에 프로그래밍된 마지막 2개의 워드 라인, 이전에 기입된 마지막 소거 블록, 또는 이전에 기입된 마지막 소거 블록의 각각의 워드 라인에 대해 발생할 수 있다. 판독 검증 동작이 PSF, 사일런트 프로그램 실패 등과 같은 프로그램 실패에 대해 검사한다.
블록 910에서, 제어기는 판독 검증 동작이 성공적이었는지를 결정한다. 블록 910에서 판독 검증 동작이 성공적이지 않은 경우(즉, 프로그램 실패가 존재하는 경우), 블록 912에서, SLC 메모리에 저장된 데이터 소스가 MLC 메모리에 복사되며, 여기서 MLC 메모리에 데이터를 복사하는 것이 파인 프로그램이다. 그 후, 제어기는 블록 908에서 복사된 데이터에 대한 판독 검증 동작을 수행한다. 그러나, 판독 검증 동작이 블록 910에서 성공적이면, 블록 914에서 데이터로 프로그래밍된 XOR 패리티 데이터의 양이 감소되어, 프로그래밍된 XOR 패리티 데이터는 이전의 접근법에서 프로그래밍된 XOR 패리티 데이터의 약 50%일 수 있다. 프로그래밍된 XOR 패리티 데이터의 양은 도 4에서 이전에 설명된 상이한 리던던시 레벨과 같은 수행된 프로그래밍 리던던시의 레벨에 따를 수 있다.
예를 들어, MLC 메모리에 대해 데이터를 프로그래밍할 때, 복수의 워드 라인 각각에 걸친 다이의 평면은 XOR 패리티 요소(즉, XOR 패리티 데이터)를 포함할 수 있다. 복수의 워드 라인은 복수의 스트링을 포함하고, 여기서 XOR 패리티 요소는 다이의 교번 스트링에 기입되고 복수의 스트링 중 적어도 하나의 스트링은 XOR 패리티 데이터를 포함하지 않는다. XOR 패리티 데이터로 전체 다이를 프로그래밍하기보다는, 다이의 약 절반이 성공적인 판독 검증 동작 후에 XOR 패리티 데이터로 프로그래밍된다. 감소된 XOR 패리티 데이터 스킴은 감소된 수평 패리티 스킴, 수직 감소된 패리티 스킴, 또는 앞서 언급된 스킴들의 조합일 수 있다는 것이 이해되어야 한다. 또한, 일부 예에서, 수직 감소된 패리티 스킴은 분산된 수직 패리티 스킴일 수 있어서, XOR 패리티 데이터가 각각의 다이의 평면 당 상이한 셀 또는 비트를 보호한다. 일부 실시예에서, SLC 메모리 및 QLC 메모리는 동일한 XOR 패리티 스킴을 갖지 않을 수 있다. 예를 들어, SLC 메모리는 제1 비를 가지며, 여기서 제1 비는 약 1:7의 패리티 그룹 비이고, MLC 메모리는 제2 비를 가지며, 여기서 제2 비는 약 1:15의 패리티 그룹 비이다. 또한, 일부 예에서, MLC 메모리는 도 4에 설명된 제4 FW 판독 검증/EPWR 검사 실시예(406)와 같은 임의의 XOR 패리티 데이터를 갖지 않을 수 있다.
블록 916에서, 성공적인 판독 검증 동작의 데이터와 연관된 데이터 소스는 SLC 메모리, 버퍼 및/또는 캐시로부터 릴리징된다. 블록 918에서, 파인 프로그램이 완료된다.
워드 라인 대 워드 라인 기반, 소거 블록 기반, 또는 소거 블록의 각각의 워드 라인 기반과 같이 비휘발성 메모리의 상이한 레벨에 대해 판독 검증 동작을 수행하고 데이터 소스를 SLC 메모리, 버퍼 및/또는 캐시에 저장함으로써, NVM에 대한 파인 프로그램의 XOR 패리티 데이터의 크기가 감소될 수 있고 데이터의 신뢰성이 증가될 수 있다.
일 실시예에서, 데이터 저장 디바이스는 하나 이상의 슈퍼 블록을 포함하는 하나 이상의 메모리 디바이스로서, 하나 이상의 슈퍼 블록 중 각각의 슈퍼 블록은 복수의 워드 라인을 포함하는, 하나 이상의 메모리 디바이스, 및 하나 이상의 메모리 디바이스에 결합된 제어기를 포함한다. 제어기는 복수의 워드 라인 중 제1 워드 라인에 데이터를 기입하고, 복수의 워드 라인 중 제2 워드 라인에 데이터를 기입하고, 제1 워드 라인에 대한 판독 검증 동작을 수행하고, 제2 워드 라인에 대한 판독 검증 동작을 수행하도록 구성되고, 제1 워드 라인 및 제2 워드 라인 중 적어도 하나는 XOR 패리티 요소를 포함하지 않는다.
복수의 워드 라인의 각각의 워드 라인은 복수의 스트링을 포함한다. 복수의 스트링 중 적어도 하나의 스트링은 배타적 또는 (XOR) 데이터를 포함하지 않는다. 하나 이상의 메모리 디바이스 중 적어도 하나는 다중-레벨 셀(MLC) 메모리이고, 하나 이상의 메모리 디바이스 중 다른 하나는 단일-레벨 셀(SLC) 메모리이다. 데이터는 SLC 메모리에 첫번째로 기입되고, 데이터는 MLC 메모리에 두번째로 기입된다. 하나 이상의 메모리 디바이스는 복수의 다이를 포함한다. 복수의 다이 각각은 제1 평면 및 제2 평면을 포함한다. 복수의 평면 중 적어도 하나의 평면은 배타적 또는 (XOR) 데이터를 포함한다. SLC 메모리의 약 2개 워드 라인까지는 MLC 메모리에 기입된 데이터를 포함한다. 판독 검증 동작은 향상된 포스트 기입 판독(enhanced post write read: EPWR)이다.
다른 실시예에서, 데이터 저장 디바이스는 하나 이상의 슈퍼 블록을 포함하는 하나 이상의 메모리 디바이스로서, 하나 이상의 슈퍼 블록 중 각각의 슈퍼 블록은 복수의 소거 블록을 포함하고, 복수의 소거 블록 중 각각의 소거 블록은 복수의 워드 라인을 포함하는, 하나 이상의 메모리 디바이스를 포함한다. 데이터 저장 디바이스는 추가로 하나 이상의 메모리 디바이스에 결합된 제어기를 포함한다. 제어기는 하나 이상의 메모리 디바이스 중 적어도 하나의 메모리 디바이스의 복수의 소거 블록 중 제1 소거 블록의 복수의 워드 라인에 데이터를 기입하고 - 복수의 워드 라인의 전체보다 적은 워드 라인은 XOR 요소를 포함함 -, 전체의 상기 제1 소거 블록이 프로그래밍된 후에, 제1 소거 블록의 복수의 워드 라인의 전체보다 적은 워드 라인에 대해 판독 검증 동작을 수행하도록 구성된다.
하나 이상의 메모리 디바이스 중 적어도 하나는 다중-레벨 셀(MLC) 메모리이고, 하나 이상의 메모리 디바이스 중 다른 하나는 단일-레벨 셀(SLC) 메모리이다. 성공적인 판독 검증 동작이 MLC 메모리의 전체 소거 블록에 대해 수행된 후에 SLC 메모리에 기입된 상기 데이터가 릴리징된다. SLC 메모리에 기입된 데이터는 판독 검증 동작이 성공적이지 않을 때 MLC 메모리의 제2 소거 블록에 재기입된다. 하나 이상의 메모리 디바이스는 제1 평면 및 제2 평면을 각각 포함하는 하나 이상의 다이를 포함하고, 각각의 평면은 하나 이상의 소거 블록을 포함한다. 제어기는 복수의 워드 라인 전체와 복수의 소거 블록 전체 중 적어도 하나에 대해 판독 검증 동작을 수행하도록 추가로 구성되고, 판독 검증 동작은 향상된 포스트 기입 판독이다. 판독 검증 동작을 수행하는 것은 프로그램 실패에 대해 복수의 워드 라인의 각각의 워드 라인과 복수의 소거 블록 중 각각의 소거 블록 중 적어도 하나를 검사하는 것을 포함한다. XOR 요소는 전체 다이 리던던시(full die redundancy), 전체 평면 리던던시, 및 소거 블록 리던던시 중 적어도 하나이다.
다른 실시예에서, 데이터 저장 디바이스는 제1 XOR 요소에 대한 제1 XOR 저장 용량을 갖는 제1 메모리 디바이스로서, 제1 메모리 디바이스에 저장된 데이터에 대한 제1 XOR 저장 용량은 제1 비(ratio)인, 제1 메모리 디바이스를 포함한다. 데이터 저장 디바이스는 추가로 제2 XOR 요소에 대한 제2 XOR 저장 용량을 갖는 제2 메모리 디바이스로서, 제2 메모리 디바이스에 저장된 데이터에 대한 제2 XOR 저장 용량은 제2 비이고, 제2 비는 제1 비와 상이한, 제2 메모리 디바이스를 포함한다. 데이터 저장 디바이스는 추가로 휘발성 메모리 및 제1 메모리 디바이스 및 제2 메모리 디바이스에 결합된 제어기 수단을 포함한다.
휘발성 메모리는 랜덤 액세스 메모리(random access memory: RAM)이다. 제1 메모리 디바이스는 단일-레벨 셀(SLC) 메모리이고, 제2 메모리 디바이스는 다중-레벨 셀(MLC) 메모리이다. 제1 메모리 디바이스 및 제2 메모리 디바이스는 각각 제1 평면 및 제2 평면을 포함하는 복수의 다이로서, 제1 평면 및 제2 평면 각각은 복수의 소거 블록을 포함하는, 복수의 다이, 및 복수의 워드 라인을 포함하는 복수의 슈퍼 블록을 포함하고, 복수의 워드 라인의 각각의 워드 라인은 복수의 스트링을 포함한다. 제어기 수단은 프로그램 실패를 검출하기 위해 판독 검증 동작을 수행하는 수단 - 판독 검증 동작은 향상된 포스트 기입 판독임 -, 제1 메모리 디바이스 및 휘발성 메모리 중 적어도 하나에서 데이터 소스를 유지하는 수단, 및 제1 XOR 요소 및 제2 XOR 요소를 생성하는 수단을 포함하고, 제2 XOR 요소는 제1 XOR 요소와 상이하다. 제2 비는 제1 비보다 실질적으로 더 작다. 판독 검증 동작을 수행하는 수단은 프로그램 실패에 대해 복수의 워드 라인의 각각의 워드 라인, 프로그램 실패에 대해 복수의 소거 블록 중 각각의 소거 블록, 또는 프로그램 실패에 대해 복수의 워드 라인의 각각의 워드 라인과 복수의 소거 블록 중 각각의 소거 블록 모두를 검사하는 것을 포함한다. 데이터 소스는 프로그램 실패에 대해 복수의 워드 라인의 각각의 워드 라인을 검사할 때, 제2 메모리 디바이스에 기입된 데이터의 2개까지의 워드 라인, 및 프로그램 실패에 대해 복수의 소거 블록 중 각각의 소거 블록, 또는 프로그램에 대해 복수의 워드 라인의 각각의 워드 라인과 복수의 소거 블록 중 각각의 소거 블록 모두를 검사할 때의 소거 블록을 포함한다. 제어기 수단은 제1 메모리 디바이스 및 제2 메모리 디바이스의 각각의 워드 라인에 대한 향상된 포스트 기입 판독(EPWR)을 수행하도록 구성된다. 제어기 수단은 제1 메모리 디바이스의 전체 워드 라인보다 적은 워드 라인에 대해 향상된 포스트 기입 판독(EPWR)을 수행하도록 구성된다. 제1 메모리 디바이스 및 제2 메모리 디바이스 중 적어도 하나는 제1 워드 라인 및 제1 워드 라인에 인접한 제2 워드 라인을 포함하고, 제어기 수단은 제2 워드 라인에 대해 향상된 포스트 기입 판독(EPWR)을 수행하고, 제1 워드 라인에 대해 EPWR을 수행하지 않도록 구성된다. 제1 메모리 디바이스는 제2 메모리 디바이스와 비교하여 상이한 XOR 스킴을 갖는다.
상술한 내용은 본 개시의 실시예에 관한 것이며, 본 개시의 다른 및 추가 실시예가 그 기본 범주로부터 벗어나지 않고도 고안될 수 있으며, 그 범주는 후속하는 청구범위에 의해 결정된다.

Claims (24)

  1. 데이터 저장 디바이스로서,
    하나 이상의 슈퍼 블록을 포함하는 하나 이상의 메모리 디바이스로서, 상기 하나 이상의 슈퍼 블록의 각각의 슈퍼 블록은 복수의 워드 라인을 포함하는, 상기 하나 이상의 메모리 디바이스; 및
    상기 하나 이상의 메모리 디바이스에 결합된 제어기를 포함하고, 상기 제어기는,
    상기 복수의 워드 라인 중 제1 워드 라인에 데이터를 기입하고;
    상기 복수의 워드 라인 중 제2 워드 라인에 데이터를 기입하고;
    상기 제1 워드 라인에 대한 판독 검증 동작을 수행하고; 그리고
    상기 제2 워드 라인에 대한 판독 검증 동작을 수행하도록 구성되고, 상기 제1 워드 라인 및 상기 제2 워드 라인 중 적어도 하나는 XOR 패리티 요소를 포함하지 않고, 상기 복수의 워드 라인 중 하나 이상의 워드 라인은 XOR 패리티 요소를 포함하고,
    상기 하나 이상의 메모리 디바이스는,
    제1 XOR 패리티 요소에 대한 제1 XOR 저장 용량을 갖는 제1 메모리 디바이스 - 상기 제1 메모리 디바이스에 저장된 데이터에 대한 상기 제1 XOR 저장 용량은 제1 비(ratio)임 - ; 및
    제2 XOR 패리티 요소에 대한 제2 XOR 저장 용량을 갖는 제2 메모리 디바이스 - 상기 제2 메모리 디바이스에 저장된 데이터에 대한 상기 제2 XOR 저장 용량은 제2 비이고, 상기 제2 비는 상기 제1 비와 상이함 -
    를 포함하는, 데이터 저장 디바이스.
  2. 제1항에 있어서,
    상기 복수의 워드 라인의 각각의 워드 라인은 복수의 스트링을 포함하는, 데이터 저장 디바이스.
  3. 제2항에 있어서,
    상기 XOR 패리티 요소를 포함하는 상기 복수의 워드 라인 중 상기 하나 이상의 워드 라인의 상기 복수의 스트링 중 적어도 하나의 스트링은 배타적 또는 (XOR) 데이터를 포함하지 않는, 데이터 저장 디바이스.
  4. 제1항에 있어서,
    상기 제1 메모리 디바이스는 다중-레벨 셀(multi-level cell: MLC) 메모리이고, 상기 제2 메모리 디바이스는 단일-레벨 셀(single-level cell: SLC) 메모리이고, 상기 데이터는 상기 SLC 메모리에 첫번째로 기입되고, 상기 데이터는 상기 MLC 메모리에 두번째로 기입되는, 데이터 저장 디바이스.
  5. 제4항에 있어서,
    상기 하나 이상의 메모리 디바이스는 복수의 다이를 포함하고, 상기 복수의 다이 각각은 제1 평면 및 제2 평면을 포함하는, 데이터 저장 디바이스.
  6. 제5항에 있어서,
    상기 제1 평면 및 상기 제2 평면 중 적어도 하나의 평면은 배타적 또는 (XOR) 데이터를 포함하는, 데이터 저장 디바이스.
  7. 제4항에 있어서,
    상기 SLC 메모리의 2개 워드 라인까지는 상기 MLC 메모리에 기입된 데이터를 포함하는, 데이터 저장 디바이스.
  8. 제1항에 있어서,
    상기 판독 검증 동작은 향상된 포스트 기입 판독(enhanced post write read: EPWR)인, 데이터 저장 디바이스.
  9. 데이터 저장 디바이스로서,
    하나 이상의 슈퍼 블록을 포함하는 하나 이상의 메모리 디바이스로서, 상기 하나 이상의 슈퍼 블록 중 각각의 슈퍼 블록은 복수의 소거 블록을 포함하고, 상기 복수의 소거 블록 중 각각의 소거 블록은 복수의 워드 라인을 포함하는, 상기 하나 이상의 메모리 디바이스; 및
    상기 하나 이상의 메모리 디바이스에 결합된 제어기를 포함하고, 상기 제어기는,
    상기 하나 이상의 메모리 디바이스 중 적어도 하나의 메모리 디바이스의 상기 복수의 소거 블록 중 제1 소거 블록의 상기 복수의 워드 라인에 데이터를 기입하고 - 상기 복수의 워드 라인의 전체보다 적은 워드 라인은 XOR 요소를 포함함 -,
    전체의 상기 제1 소거 블록이 프로그래밍된 후에, 상기 제1 소거 블록의 상기 복수의 워드 라인의 전체보다 적은 워드 라인에 대해 판독 검증 동작을 수행하도록 구성되고,
    상기 하나 이상의 메모리 디바이스는,
    제1 XOR 요소에 대한 제1 XOR 저장 용량을 갖는 제1 메모리 디바이스 - 상기 제1 메모리 디바이스에 저장된 데이터에 대한 상기 제1 XOR 저장 용량은 제1 비(ratio)임 - ; 및
    제2 XOR 요소에 대한 제2 XOR 저장 용량을 갖는 제2 메모리 디바이스 - 상기 제2 메모리 디바이스에 저장된 데이터에 대한 상기 제2 XOR 저장 용량은 제2 비이고, 상기 제2 비는 상기 제1 비와 상이함 -
    를 포함하는, 데이터 저장 디바이스.
  10. 제9항에 있어서,
    상기 제1 메모리 디바이스는 다중-레벨 셀(MLC) 메모리이고, 상기 제2 메모리 디바이스는 단일-레벨 셀(SLC) 메모리이고, 성공적인 판독 검증 동작이 상기 MLC 메모리의 전체 소거 블록에 대해 수행된 후에 상기 SLC 메모리에 기입된 상기 데이터가 릴리징되는, 데이터 저장 디바이스.
  11. 제10항에 있어서,
    상기 SLC 메모리에 기입된 상기 데이터는 상기 판독 검증 동작이 성공적이지 않을 때 상기 MLC 메모리의 제2 소거 블록에 재기입되는, 데이터 저장 디바이스.
  12. 제10항에 있어서,
    상기 하나 이상의 메모리 디바이스는 제1 평면 및 제2 평면을 각각 포함하는 하나 이상의 다이를 포함하고, 각각의 평면은 하나 이상의 소거 블록을 포함하는, 데이터 저장 디바이스.
  13. 제12항에 있어서,
    상기 제어기는,
    상기 복수의 워드 라인 전체와 상기 복수의 소거 블록 전체 중 적어도 하나에 대해 판독 검증 동작을 수행하도록 추가로 구성되고, 상기 판독 검증 동작은 향상된 포스트 기입 판독이고, 판독 검증 동작을 수행하는 것은,
    프로그램 실패에 대해 상기 복수의 워드 라인의 각각의 워드 라인과 상기 복수의 소거 블록 중 각각의 소거 블록 중 적어도 하나를 검사하는 것을 포함하는, 데이터 저장 디바이스.
  14. 제9항에 있어서,
    상기 XOR 요소는 전체 다이 리던던시(full die redundancy), 전체 평면 리던던시, 및 소거 블록 리던던시 중 적어도 하나인, 데이터 저장 디바이스.
  15. 데이터 저장 디바이스로서,
    제1 XOR 요소에 대한 제1 XOR 저장 용량을 갖는 제1 메모리 디바이스로서, 상기 제1 메모리 디바이스에 저장된 데이터에 대한 상기 제1 XOR 저장 용량은 제1 비(ratio)인, 상기 제1 메모리 디바이스;
    제2 XOR 요소에 대한 제2 XOR 저장 용량을 갖는 제2 메모리 디바이스로서, 상기 제2 메모리 디바이스에 저장된 데이터에 대한 상기 제2 XOR 저장 용량은 제2 비이고, 상기 제2 비는 상기 제1 비와 상이한, 상기 제2 메모리 디바이스;
    휘발성 메모리; 및
    상기 제1 메모리 디바이스 및 상기 제2 메모리 디바이스에 결합된 제어기 수단을 포함하는, 데이터 저장 디바이스.
  16. 제15항에 있어서,
    상기 휘발성 메모리는 랜덤 액세스 메모리(random access memory: RAM)이고, 상기 제1 메모리 디바이스는 단일-레벨 셀(SLC) 메모리이고, 상기 제2 메모리 디바이스는 다중-레벨 셀(MLC) 메모리이고, 상기 제1 메모리 디바이스 및 상기 제2 메모리 디바이스는 각각,
    제1 평면 및 제2 평면을 포함하는 복수의 다이로서, 상기 제1 평면 및 상기 제2 평면 각각은 복수의 소거 블록을 포함하는, 복수의 다이; 및
    복수의 워드 라인을 포함하는 복수의 슈퍼 블록을 포함하고,
    상기 복수의 워드 라인의 각각의 워드 라인은 복수의 스트링을 포함하는, 데이터 저장 디바이스.
  17. 제16항에 있어서,
    상기 제어기 수단은,
    프로그램 실패를 검출하기 위해 판독 검증 동작을 수행하는 수단 - 상기 판독 검증 동작은 향상된 포스트 기입 판독임 -;
    상기 제1 메모리 디바이스 및 상기 휘발성 메모리 중 적어도 하나에서 데이터 소스를 유지하는 수단; 및
    제1 XOR 요소 및 제2 XOR 요소를 생성하는 수단을 포함하고, 상기 제2 XOR 요소는 상기 제1 XOR 요소와 상이한, 데이터 저장 디바이스.
  18. 제17항에 있어서,
    판독 검증 동작을 수행하는 수단은 프로그램 실패에 대해 상기 복수의 워드 라인의 각각의 워드 라인, 프로그램 실패에 대해 상기 복수의 소거 블록 중 각각의 소거 블록, 또는 프로그램 실패에 대해 상기 복수의 워드 라인의 각각의 워드 라인과 상기 복수의 소거 블록 중 각각의 소거 블록 둘 모두를 검사하는 것을 포함하는, 데이터 저장 디바이스.
  19. 제18항에 있어서,
    상기 데이터 소스는,
    프로그램 실패에 대해 상기 복수의 워드 라인의 각각의 워드 라인을 검사할 때, 상기 제2 메모리 디바이스에 기입된 데이터의 2개까지의 워드 라인; 및
    프로그램 실패에 대해 상기 복수의 소거 블록 중 각각의 소거 블록, 또는 프로그램 실패에 대해 상기 복수의 워드 라인의 각각의 워드 라인과 상기 복수의 소거 블록 중 각각의 소거 블록 둘 모두를 검사할 때 상기 제2 메모리 디바이스에 기입된 데이터의 소거 블록을 포함하는, 데이터 저장 디바이스.
  20. 제15항에 있어서,
    상기 제2 비는 상기 제1 비보다 실질적으로 더 작은, 데이터 저장 디바이스.
  21. 제15항에 있어서,
    상기 제어기 수단은 상기 제1 메모리 디바이스 및 상기 제2 메모리 디바이스의 각각의 워드 라인에 대한 향상된 포스트 기입 판독(EPWR)을 수행하도록 구성되는, 데이터 저장 디바이스.
  22. 제15항에 있어서,
    상기 제어기 수단은 상기 제1 메모리 디바이스의 전체 워드 라인보다 적은 워드 라인에 대해 향상된 포스트 기입 판독(EPWR)을 수행하도록 구성되는, 데이터 저장 디바이스.
  23. 제15항에 있어서,
    상기 제1 메모리 디바이스 및 상기 제2 메모리 디바이스 중 적어도 하나는 제1 워드 라인 및 상기 제1 워드 라인에 인접한 제2 워드 라인을 포함하고, 상기 제어기 수단은 상기 제2 워드 라인에 대해 향상된 포스트 기입 판독(EPWR)을 수행하고, 상기 제1 워드 라인에 대해 EPWR을 수행하지 않도록 구성되는, 데이터 저장 디바이스.
  24. 제15항에 있어서,
    상기 제1 메모리 디바이스는 상기 제2 메모리 디바이스와 비교하여 상이한 XOR 스킴을 갖는, 데이터 저장 디바이스.
KR1020210082729A 2020-11-03 2021-06-24 Qlc 데이터 프로그래밍 KR102593374B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063109114P 2020-11-03 2020-11-03
US63/109,114 2020-11-03
US17/182,023 US11568938B2 (en) 2020-11-03 2021-02-22 QLC data programming
US17/182,023 2021-02-22

Publications (2)

Publication Number Publication Date
KR20220059903A KR20220059903A (ko) 2022-05-10
KR102593374B1 true KR102593374B1 (ko) 2023-10-23

Family

ID=81184019

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210082729A KR102593374B1 (ko) 2020-11-03 2021-06-24 Qlc 데이터 프로그래밍

Country Status (4)

Country Link
US (1) US11568938B2 (ko)
KR (1) KR102593374B1 (ko)
CN (1) CN114446356A (ko)
DE (1) DE102021115375A1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180012666A1 (en) * 2016-07-07 2018-01-11 SK Hynix Inc. Memory system and operating method thereof
US20200118636A1 (en) * 2019-12-16 2020-04-16 Intel Corporation Techniques for preventing read disturb in nand memory

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100822030B1 (ko) 2006-12-26 2008-04-15 삼성전자주식회사 고 부호화율 부호를 이용한 멀티 레벨 셀 메모리 장치
KR101368694B1 (ko) * 2008-01-22 2014-03-03 삼성전자주식회사 메모리 프로그래밍 장치 및 방법
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
KR101666941B1 (ko) * 2010-07-06 2016-10-17 삼성전자주식회사 비휘발성 메모리 장치와 이를 포함하는 반도체 시스템
US8775901B2 (en) 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US8902652B1 (en) * 2014-05-13 2014-12-02 Sandisk Technologies Inc. Systems and methods for lower page writes
KR102372825B1 (ko) 2015-07-31 2022-03-14 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9619321B1 (en) 2015-10-08 2017-04-11 Seagate Technology Llc Internal copy-back with read-verify
US9530491B1 (en) 2015-11-16 2016-12-27 Sandisk Technologies Llc System and method for direct write to MLC memory
US10025662B2 (en) 2016-04-27 2018-07-17 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
US10090044B2 (en) 2016-07-21 2018-10-02 Sandisk Technologies Llc System and method for burst programming directly to MLC memory
US10339000B2 (en) 2016-09-13 2019-07-02 Sandisk Technologies Llc Storage system and method for reducing XOR recovery time by excluding invalid data from XOR parity
US10101942B1 (en) 2017-04-17 2018-10-16 Sandisk Technologies Llc System and method for hybrid push-pull data management in a non-volatile memory
US10789126B2 (en) 2018-10-09 2020-09-29 Micron Technology, Inc. Multiple memory devices having parity protection
US10748606B2 (en) 2018-12-14 2020-08-18 Western Digital Technologies, Inc. Multi-state programming for memory devices
US10769014B2 (en) 2018-12-28 2020-09-08 Micron Technology, Inc. Disposable parity
JP7471883B2 (ja) * 2020-03-19 2024-04-22 キオクシア株式会社 メモリシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180012666A1 (en) * 2016-07-07 2018-01-11 SK Hynix Inc. Memory system and operating method thereof
US20200118636A1 (en) * 2019-12-16 2020-04-16 Intel Corporation Techniques for preventing read disturb in nand memory

Also Published As

Publication number Publication date
US20220139466A1 (en) 2022-05-05
DE102021115375A1 (de) 2022-05-05
US11568938B2 (en) 2023-01-31
KR20220059903A (ko) 2022-05-10
CN114446356A (zh) 2022-05-06

Similar Documents

Publication Publication Date Title
US11861195B2 (en) TLC data programming with hybrid parity
US10459793B2 (en) Data reliability information in a non-volatile memory device
KR101405741B1 (ko) 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작
US10290353B2 (en) Error mitigation for 3D NAND flash memory
US11170869B1 (en) Dual data protection in storage devices
US11537510B2 (en) Storage devices having minimum write sizes of data
KR20220033975A (ko) CbA 기술을 사용한 재배치 흐름
US11177012B1 (en) Fast copy through controller
KR101645829B1 (ko) 장치들 및 유효 마스크들을 저장하고 장치들을 동작시키는 방법들
US11687405B2 (en) Centralized SRAM error location detection and recovery mechanism
KR102593374B1 (ko) Qlc 데이터 프로그래밍
US11651821B2 (en) Adaptive program verify scheme for performance improvement
US11557350B2 (en) Dynamic read threshold calibration
US11294598B2 (en) Storage devices having minimum write sizes of data
US10922025B2 (en) Nonvolatile memory bad row management
US11704190B2 (en) UECC failure handling method
US11537466B2 (en) Detection of data discrepancy after XOR recovery
US11561717B2 (en) Data integrity protection of SSDs utilizing streams
US20240143337A1 (en) Data Storage With Optimized Boot Files Loading
US11704027B2 (en) Optimizing recovery of recurrent blocks using bloom filter
US11755407B2 (en) Multi-rate ECC parity for fast SLC read
US11385963B1 (en) Usage of data mask in DRAM write
US20230409237A1 (en) Data Storage Device With Weak Bits Handling

Legal Events

Date Code Title Description
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