KR20210077586A - Nand 메모리 내에서의 판독 방해를 방지하기 위한 기술들 - Google Patents

Nand 메모리 내에서의 판독 방해를 방지하기 위한 기술들 Download PDF

Info

Publication number
KR20210077586A
KR20210077586A KR1020200118441A KR20200118441A KR20210077586A KR 20210077586 A KR20210077586 A KR 20210077586A KR 1020200118441 A KR1020200118441 A KR 1020200118441A KR 20200118441 A KR20200118441 A KR 20200118441A KR 20210077586 A KR20210077586 A KR 20210077586A
Authority
KR
South Korea
Prior art keywords
wordline
data stored
data
logic
moving
Prior art date
Application number
KR1020200118441A
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 KR20210077586A publication Critical patent/KR20210077586A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • 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/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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0688Non-volatile semiconductor memory arrays
    • 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
    • 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/5671Digital 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 trapping in an insulator
    • 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/26Sensing or reading circuits; Data output circuits
    • 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
    • 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/5642Multilevel memory with buffers, latches, registers at input or output
    • 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/5644Multilevel memory comprising counting devices

Landscapes

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

Abstract

NAND 메모리 디바이스들에서 판독 방해를 방지하기 위한 기술이 설명된다. 일례에서, 판독들은 서브그룹들에 대해 추적된다. 서브그룹에 대한 판독 횟수가 임계를 충족시키면, 전체 블록을 이동시키지 않고서, 임계가 충족된 워드라인의 데이터가 이웃 워드라인들의 데이터와 함께 SLC 블록으로 이동된다. 소정의 데이터 연속성을 유지하면서 판독 방해 완화의 성능 영향 및 기입 증폭 영향이 상당히 감소될 수 있다.

Description

NAND 메모리 내에서의 판독 방해를 방지하기 위한 기술들{TECHNIQUES FOR PREVENTING READ DISTURB IN NAND MEMORY}
본 설명은 일반적으로 판독 방해(read disturb)를 최소화하기 위한 NAND 플래시 메모리 및 기술들과 같은 비휘발성 저장 매체에 관한 것이다.
NAND 플래시 메모리와 같은 플래시 저장소(flash storage)는 비휘발성 저장 매체이다. 비휘발성 저장소는 디바이스에의 전력이 차단되더라도 확정적인 상태를 갖는 저장소를 지칭한다. 3차원(3D) NAND 플래시 메모리는 NAND 스트링의 전계 효과 트랜지스터들(FET)이 서로의 위에 적층되도록 그 스트링이 수직으로 구축될 수 있는 NAND 플래시 메모리를 지칭한다. 3D NAND 및 다른 3D 아키텍처들은 부분적으로는 2차원(2D) 아키텍처들에 비해 상당히 더 높은 비트 밀도가 달성될 수 있는 것으로 인해 매력적이다. 따라서, 플래시 저장소는 모바일, 클라이언트 및 엔터프라이즈 부문에 걸쳐 점점 더 많이 사용되고 있다. 높은 비트 밀도에 더하여, 낮은 에러 레이트와 같은 기타 메트릭들도 저장 기술에서 또한 바람직하다.
이하의 설명은 본 발명의 실시예들의 구현들의 예로서 주어진 예시들을 갖는 도면들의 논의를 포함한다. 도면은 제한이 아닌 예로서 이해되어야 한다. 본 명세서에서 사용될 때, 하나 이상의 "실시예" 또는 "예"에 대한 언급은 본 발명의 적어도 하나의 구현에 포함된 특정한 특징, 구조 및/또는 특성을 설명하는 것으로 이해되어야 한다. 따라서, 본 명세서에 나타나는 "일 실시예에서" 또는 "일례에서"와 같은 문구들은 본 발명의 다양한 실시예 및 구현을 설명하고, 반드시 모두가 동일한 실시예를 지칭하는 것은 아니다. 그러나, 그들이 반드시 상호 배타적일 필요는 없다.
도 1은 판독 방해 방지 기술들이 구현될 수 있는 NAND 플래시 메모리 어레이의 예시적인 부분을 도시한다.
도 2는 SLC 셀 및 QLC 셀에 대한 임계 전압 분포들의 예를 도시한다.
도 3a는 예시적인 시스템을 도시한다.
도 3b는 판독 방해를 다루기 위한 펌웨어의 예의 블록도이다.
도 4는 NAND 디바이스에 대한 판독 카운터들의 예를 도시하는 블록도이다.
도 5는 히트 테이블 형태의 카운터들의 예시적인 표현을 도시한다.
도 6은 판독 방해를 방지하는 방법의 예의 흐름도이다.
도 7a 및 도 7b는 판독 방해 방지를 위한 2개의 상이한 데이터 이동 정책에 대한 상태도들을 도시한다.
도 8은 판독 방해 방지 기술들이 구현될 수 있는 컴퓨팅 시스템의 예시적인 도시를 제공한다.
이하에서 설명되는 실시예들의 일부 또는 전부를 도시할 수 있는 도면들의 설명을 포함하는 것은 물론, 여기에 제시된 본 발명의 개념들의 다른 잠재적인 실시예들 또는 구현들을 논의하는 특정 세부사항들 및 구현들에 대한 설명이 이어진다.
본 명세서에서는 3차원(3D) NAND 메모리와 같은 비휘발성 메모리에서 판독 방해를 효율적으로 다루기 위한 기술들이 설명된다.
현재 NAND 메모리 기술에서의 메모리 액세스들은 프로그램 방해 또는 판독 방해 에러들과 같은 다양한 에러들을 초래할 수 있다. 판독 방해는 판독 동작 동안 하나 이상의 비트를 의도하지 않게 프로그래밍하는 것을 지칭한다. 특정 액세스 패턴들은 판독 방해 에러들의 가능성을 증가시킬 수 있다. 예를 들어, 단일 페이지에 대한 반복된 판독들은 열-전자 유형(hot-electron type)의 판독 방해 에러를 야기할 수 있고, 이는 ECC 정정불가능한 이벤트를 유발할 수 있다. 열-전자 판독 방해는 판독 커맨드의 타겟은 아니지만 판독 요청의 서비스를 위해 충전되는 워드라인 또는 메모리 블록의 부분에서 데이터 값들이 예기치 않게 변경되는 것을 지칭한다.
판독 방해를 완화하기 위한 일부 기존 해법들은 QLC 블록에 대한 판독 횟수를 모니터링하고, 판독 임계에 도달하기 전에 전체 데이터 블록을 다른 QLC 블록으로 이동하는 것을 수반한다. 전체 데이터 블록을 하나의 QLC 블록으로부터 다른 QLC 블록으로 이동시키는 것은 상당한 성능 불이익을 야기하고 데이터 손상의 위험을 지닌다.
기존 기술들과 달리, QLC 블록의 핫 워드라인 및 이웃 워드라인들만을 SLC 블록으로 이동시키는 것은 상당한 성능 불이익 없이 판독 방해를 방지할 수 있다. 또한, 전체 QLC 블록(또는 수퍼블록)을 대신하여, 영향을 받는 워드라인만을 이동시키면 기입 횟수가 감소되고, 그에 의해 기입 증폭 영향(write amplification impact)이 감소된다. 추가적으로, 3개의 연속된 워드라인을 이동시킴으로써, 데이터의 일부분은 여전히 순차적이고, 이는 성능과 관련하여 일관된 서비스 품질을 제공하는 것을 가능하게 할 수 있다.
도 1은 판독 방해 방지 기술들이 구현될 수 있는 NAND 플래시 메모리 어레이(또는 NAND 저장소 어레이)(100)의 예시적인 부분을 도시한다. NAND 어레이(100)는 직렬 스트링들(104A 및 104B)(104로 약칭됨)과 같은 열들로 배열된 복수의 비휘발성 메모리 셀(102A-102F)(102로 약칭됨)을 포함한다. 일례에서, 메모리 셀(102)은 교체 게이트를 갖는 트랜지스터를 포함한다. 교체 게이트를 갖는 셀은 전형적으로 저 저항 게이트(예를 들어, 텅스텐 게이트), 및 하나 이상의 비트 값을 표현하기 위해 전하가 트랩되거나 저장되는 게이트와 채널 사이의 전하 트랩 층을 갖는다. 다른 예에서, 메모리 셀(102)은 하나 이상의 비트 값을 표시하는 전하를 저장하는 부동 게이트(예를 들어, 고 저항 폴리 게이트)를 갖는 트랜지스터를 포함할 수 있다. 다른 아키텍처들도 가능하다. 직렬 스트링들(104)에서, 셀들(102)의 드레인 영역들은 (최상부 셀을 제외하고는) 다른 셀(102)의 소스 영역에 결합된다.
어레이(100)는 또한 워드라인들(106A-106C)을 포함한다. 워드라인들(106A-106C)은 복수의 직렬 스트링(104)에 걸쳐있을 수 있고(예를 들어, 워드라인은 각각의 직렬 스트링(104)의 하나의 메모리 셀에 결합될 수 있음), 어레이(100)의 행의 각각의 메모리 셀(102)의 제어 게이트들에 접속되고 행 내의 NAND 메모리 셀들(102)의 제어 게이트들을 바이어스하는 데 사용된다. 비트라인들(108A 및 108B)(108로 약칭)은 각각 선택 게이트 드레인(SGD)(114), 및 특정 비트라인(108)에서 전압 또는 전류를 감지함으로써 각각의 셀의 상태를 검출하는 감지 회로(120A 및 120B)에 의해 직렬 스트링(104)에 결합된다.
메모리 셀들의 복수의 직렬 스트링(104)은 선택 게이트 소스(SGS)(112A 및 112B)(112로 약칭됨)에 의해 소스 라인(110)에 결합되고 선택 게이트 드레인(114A 및 114B)(114로 약칭됨)에 의해 개별 비트라인(108)에 결합된다. SGS들(112)은 소스 선택 게이트 제어 라인(116)에 의해 제어되고, SGD들(114)은 드레인 선택 게이트 제어 라인(118)에 의해 제어된다. 따라서, SGD 신호 라인은 스트링을 비트라인(BL)에 선택적으로 결합한다. SGS 신호 라인은 스트링을 소스 라인(SL)에 선택적으로 결합한다. SGS는 복수의 세그먼트화된 SGS(SSGS)로 분할되어, 별개의 SGS 신호 라인들로서 효과적으로 동작하여 별개의 저장소 셀 스택 그룹들(groups of storage cell stacks)의 동작을 제어할 수 있다. SSGS에 의해 제어되는 메모리 셀들의 그룹은 SSGS 그룹, 서브블록 또는 서브그룹이라고 지칭될 수 있다. 마찬가지로, SGD는 서브블록마다 하나의 SGD 세그먼트씩, 상이한 서브블록들에 대해 별도의 제어를 제공하도록 세그먼트화될 수 있다.
각각의 메모리 셀(102)은 SLC(단일 레벨 셀), MLC(다중 레벨 셀), TLC(트리플 레벨 셀), QLC(쿼드 레벨 셀) 또는 기타 인코딩 방식과 같은 하나 이상의 인코딩 방식에 따라 프로그래밍될 수 있다. SLC NAND 플래시 메모리에서, 각각의 메모리 셀은 1 비트를 표현하는 2가지 상태(0, 1)에 대응하는 두 개의 전압 레벨을 갖는다. MLC, TLC 및 QLC NAND 플래시 메모리에서, 각각의 메모리 셀은 2개 이상의 비트를 저장한다. MLC NAND 플래시 메모리 내의 각각의 셀은 2비트의 이진 데이터를 표현하기 위해 4가지 상태(00, 01, 10, 11)에 대응하는 4개의 전압 레벨을 사용한다. TLC NAND 플래시 메모리 내의 각각의 셀은 3비트의 이진 데이터를 표현하기 위해 8가지 상태(000 내지 111)에 대응하는 8개의 전압 레벨을 사용한다. QLC NAND 플래시 메모리 내의 각각의 셀은 4비트의 이진 데이터를 표현하기 위해 16가지 상태(0000 내지 1111)에 대응하는 16개의 전압 레벨을 사용한다. 일례에서, 각각의 셀의 임계 전압(Vt)은 셀에 저장된 데이터를 나타낸다. 예를 들어, 도 2는 SLC 셀 및 QLC 셀에 대한 임계 전압 분포의 예를 도시한다.
도 3a는 예시적인 시스템을 도시한다. 시스템은 호스트(350), 및 비휘발성 저장소 또는 메모리 디바이스(300)를 포함한다. 호스트(350) 및 메모리 디바이스(300)는 컴퓨터의 패키지의 범위 내에(예를 들어, 랩톱/노트북, 서버 또는 다른 컴퓨터 내에) 존재하는 시스템의 예일 수 있다. 다른 예들에서, 메모리 디바이스(300)는 또한 근거리 네트워크(예를 들어, 이더넷 네트워크) 또는 광역 네트워크(예를 들어, 무선 셀룰러 네트워크, 인터넷 등)와 같은 더 큰 네트워크를 통해 액세스될 수 있다. 이러한 예들은 NVMe-oF(non-volatile memory express over fabrics)와 같은 표준을 준수할 수 있다. 호스트(350)는 하나 이상의 프로세서(352), 메모리(354) 및 명확성을 위해 도면으로부터 생략된 다른 컴포넌트들을 포함한다.
메모리 디바이스는 데이터를 저장하기 위한 메모리 매체(302)를 포함한다. 메모리 매체(302)는 메모리 셀들 내에 하나 이상의 비트를 저장할 수 있는 메모리 또는 저장 매체일 수 있다. 일례에서, 메모리 매체(302)는 도 1에 도시된 NAND 스트링과 같은 메모리 셀들의 스트링들을 포함하는 저장소 어레이를 포함한다. 메모리 매체(302)는 비휘발성 및/또는 휘발성 유형의 메모리를 포함할 수 있다. 일례에서, 메모리 매체(302)는 각각이 복수의 평면 또는 그룹으로 분할되는 하나 이상의 비휘발성 메모리 다이를 포함한다. 일부 예들에서, 메모리 매체(302)는 NAND 기술과 같은 블록 어드레싱가능한 메모리 디바이스들을 포함할 수 있다. 일례에서, 메모리 매체(302)는 도 1과 같은 NAND 플래시 메모리 어레이를 포함한다. 메모리 매체(302)는 또한 크로스포인트 메모리(예를 들어, 3차원(3D) 크로스포인트) 또는 다른 바이트 어드레싱가능한 비휘발성 메모리와 같은 비휘발성 유형의 메모리를 포함할 수 있다. 소정의 NOR 플래시 메모리와 같은 다른 기술들은 판독 및/또는 기입을 위해 바이트 어드레싱가능할 수 있고 소거를 위해 블록 어드레싱가능할 수 있다. 메모리 매체(302)는 칼코게나이드 상 변화 재료(chalcogenide phase change material)(예를 들어, 칼코게나이드 글래스), 다중 임계 레벨 NAND 플래시 메모리, NOR 플래시 메모리, 단일 또는 다중 레벨 상 변화 메모리(PCM), 저항성 메모리, 나노와이어 메모리, 강유전성 트랜지스터 랜덤 액세스 메모리(FeTRAM), 멤리스터 기술을 통합한 자기 저항성 랜덤 액세스 메모리(MRAM) 메모리, 또는 스핀 전송 토크 MRAM(STT-MRAM), 또는 상술한 것들 중 임의의 것의 조합, 또는 다른 메모리 유형들을 사용하는 메모리 디바이스들을 포함할 수 있다. 메모리 매체(302)는 단일 레벨 셀(SLC) NAND 셀들, 다중 레벨 셀(MLC) NAND 셀들, 트리플 레벨 셀(TLC) NAND 셀들, 쿼드 레벨 셀(QLC) 셀들, 둘 이상의 유형의 NAND(예를 들어, 모드에 따라 SLC 또는 QLC)로서 사용될 수 있는 동적 NANDS 셀들, 또는 다른 NAND 셀들을 포함할 수 있다.
일부 예들에 따르면, 메모리 매체(302)에 포함된 휘발성 유형의 메모리는 랜덤 액세스 메모리(RAM), 동적 RAM(D-RAM), 이중 데이터 레이트 동기식 동적 RAM(DDR SDRAM), 정적 랜덤 액세스 메모리(SRAM), 사이리스터 RAM(T-RAM) 또는 제로 커패시터 RAM(Z-RAM)을 포함할 수 있지만 그에 제한되지 않는다. 휘발성 유형의 메모리는 DDR4(DDR 버전 4, JEDEC에 의해 2012년 9월에 발표된 초기 사양), LPDDR4(저전력 더블 데이터 레이트(LOW POWER DOUBLE DATA RATE)(LPDDR) 버전 4, JESD209-4, 2014년 8월에 JEDEC에 의해 최초로 발표됨), WIO2(Wide I/O 2(WideIO2), JESD229-2, 2014년 8월에 JEDEC에 의해 최초로 발표됨), HBM(고 대역폭 메모리 DRAM(HIGH BANDWIDTH MEMORY DRAM), JESD235, 2013년 10월에 JEDEC에 의해 최초로 발표됨), DDR5(DDR 버전 5, 현재 JEDEC에 의해 논의 중), LPDDR5(LPDDR 버전 5, 현재 JEDEC에 의해 논의 중), HBM2(HBM 버전 2, 현재 JEDEC에 의해 논의 중) 및/또는 기타, 및 이러한 사양의 파생들 또는 확장들에 기초하는 기술들과 같은 다수의 메모리 기술과 호환될 수 있다.
메모리 디바이스(300)는 각각의 인터페이스들(320 및 356)을 사용하여 호스트 시스템(350)과 통신할 수 있다. 일례에서, 인터페이스(356)는 주변 제어 허브(PCH)의 일부이다. 도시된 예에서, 제어기(304)는 인터페이스(320)를 사용하여 호스트(350)와 같은 컴퓨팅 플랫폼과 결합된다. 일례에서, 제어기(304)는 ASIC(application specific integrated circuit)이다. 일례에서, 인터페이스들은 PCI Express(PCIe), 직렬 ATA(advanced technology attachment), 병렬 ATA, 범용 직렬 버스(USB) 및/또는 다른 인터페이스 프로토콜과 같은 표준을 준수한다. 제어기(304)는 메모리 매체(302)로부터 데이터를 판독하거나 메모리 매체(302)에 데이터를 기입하기 위해 컴퓨팅 플랫폼의 요소들과 통신할 수 있다. 본 개시내용에서, "호스트"라는 용어는 프로세서(또는 비휘발성 메모리에 저장된 데이터에 액세스하라는 요청들을 송신하는 다른 디바이스) 및 NAND(예를 들어, 호스트(350))와 통신하기 위한 인터페이스를 갖는 시스템을 지칭하지만, 일부 구현들은 제어기(304)를 비휘발성 메모리 매체(302)에 대한 "호스트"로 지칭할 수 있다.
제어기(304)는 호스트(350)로부터 요청들을 수신하고, (예를 들어, 데이터를 판독, 기입 또는 소거하기 위한) 메모리 매체(302)의 사용에 관한 커맨드들을 생성 및 수행하도록 구성될 수 있다. 제어기(304) 및/또는 펌웨어(315)는 "SLC 버퍼를 통한 기입" 또는 "SLC 버퍼 주위의 기입(write around SLC buffer)"과 같은 다양한 기입 알고리즘을 구현할 수 있다. SLC 버퍼를 통한 기입 또는 SLC 버퍼 주위의 기입 접근방식 둘 다는 호스트 데이터를 프런트엔드 SLC 버퍼에 기입하는 것을 수반한다. SLC 버퍼는 전용 SLC 영역, SLC 모드에서 사용되는 동적 영역, 또는 둘 다를 포함할 수 있다. "SLC 버퍼를 통한 기입" 접근방식은 모든 호스트 데이터를 SLC 버퍼를 통해 기입하는 것을 포함한다. SLC 버퍼가 가득 차면, 데이터를 하나 이상의 QLC 블록으로 이동시킴으로써 SLC 버퍼 내에서 공간이 이용가능해진다. 다음으로, 새로운 호스트 데이터가 SLC 버퍼에 기입될 수 있다. "SLC 버퍼 주위의 기입" 접근방식은 공간이 이용가능한 한 SLC 버퍼에 기입하는 것을 수반한다. SLC 버퍼가 가득 차고 나면, 호스트 데이터가 QLC 블록에 직접 기입된다. 주위에 기입하는 접근방식은 전형적으로 갑작스런 전력 손실이 발생하는 경우 이전에 프로그래밍된 데이터를 보호하기 위해 보드 상에 슈퍼 커패시터들을 필요로 한다. 대조적으로, "SLC 버퍼를 통한 기입" 접근방식에 대해서는 전력 손실로부터 보호하기 위한 커패시터들이 전형적으로 요구되지 않는다. 본 명세서에 설명된 기술들은 SLC를 통한 기입 및 SLC 주위의 기입 접근방식 둘 다에 적용된다.
제어기는 하드웨어(예를 들어, 로직 회로), 소프트웨어, 펌웨어, 또는 하드웨어, 소프트웨어 및 펌웨어의 조합으로 구현될 수 있다. 로직 회로의 예들은 전용 하드와이어드 로직 회로(예를 들어, 하나 이상의 상태 머신 로직 회로를 포함함), 프로그래밍가능한 로직 회로(예를 들어, 필드 프로그래밍가능한 게이트 어레이(FPGA), 및 프로그래밍가능한 로직 어레이(PLA))를 포함한다. 일례에서, 로직 회로는 SSD 펌웨어(예를 들어, 임베디드 프로세서, 임베디드 제어기 등)와 같은 소정 형태의 프로그램 코드를 실행하도록 설계된다. 메모리 디바이스는 전형적으로 비휘발성 매체로부터의 데이터를 캐싱하고 제어기(304)에 의해 실행되는 펌웨어(315)를 저장하기 위해 사용될 수 있는, 로직 회로(311)에 결합된 메모리(317)를 또한 포함한다. "제어 로직"이라는 용어는 로직 회로, 펌웨어, 소프트웨어 또는 조합을 모두 지칭하기 위해 사용될 수 있다. 예를 들어, 제어 로직은 제어 로직(311), 펌웨어(315), 또는 둘 다를 지칭할 수 있다.
제어기(304)는 동작들이 발생하도록 메모리를 제어하거나 메모리에 명령하기 위해 메모리 매체(302)와 결합된다. 메모리 매체(302)와 제어기(304) 사이의 통신은 특정 레지스터들(예를 들어, 레지스터들(308))에 기입하는 것 및/또는 특정 레지스터들로부터 판독하는 것을 포함할 수 있다. 이러한 레지스터들은 제어기(304) 내에, 메모리 매체(302) 내에, 또는 제어기(304) 및 메모리 매체(302)의 외부에 상주할 수 있다. 메모리 매체(302) 내의 레지스터들 또는 메모리는 예를 들어 제어기(304)와 메모리 매체(302)를 통신가능하게 결합하기 위해 제어기(304)와 메모리 매체(302) 사이에 존재하는 메모리 디바이스(300)의 내부 인터페이스(예를 들어, ONFI(Open NAND Flash Interface) 인터페이스, 전용 인터페이스, 또는 다른 인터페이스)에 의해 제어기(304)에 의해 도달가능할 수 있다. 입력/출력(I/O) 핀들 및 신호 라인들은 제어기(304)와 메모리 매체(302) 사이에서의 판독 및 기입 데이터의 전송을 가능하게 하기 위해 제어기(304)를 메모리 매체(302)와 통신가능하게 결합한다.
제어기(304)는 워드라인들 중 하나를 선택하고, 판독 전압들을 인가하고, 비트라인 전위 레벨들과 결합된 프로그램 전압들을 인가하고, 검증 전압들을 인가하거나, 소거 전압들을 인가하기 위해 메모리 매체(302)의 워드라인들에 결합될 수 있다. 제어기(304)는 메모리 셀들에 저장된 데이터를 판독하고, 프로그램 동작 동안 메모리 셀들의 상태를 결정하고, 프로그래밍 및 소거를 촉진 또는 금지하도록 비트라인들의 전위 레벨들을 제어하기 위해, 메모리 매체(302)의 비트라인들에 결합될 수 있다.
위에서 언급된 바와 같이, 메모리 디바이스에 저장된 펌웨어(315)는 메모리 디바이스(300)의 특정 기능들을 수행하고 특정 양태들을 제어하기 위해 (예를 들어, 제어기(304)에 의해) 실행될 수 있다. 일례에서, 펌웨어(315)는 판독 방해 방지를 다루기 위한 로직을 포함한다. 도 3b는 판독 방해를 다루기 위한 펌웨어(315)의 예의 블록도이다. 도 3b의 예에서, 펌웨어는 메모리 셀들의 그룹들 또는 서브그룹들에 대한 판독 액세스들을 추적할 수 있도록 하는 카운터들(303), 및 이러한 판독 방해 에러들을 방지하기 위해 카운터들(303)에 기초하여 데이터의 이동을 다루는 로직(305)을 포함한다.
위에서 언급된 바와 같이, 임계를 초과하는 반복된 단일 페이지 판독들은 NAND 디바이스들(예를 들어, 2D 및 3D NAND 기술 모두)에서 열-전자 ECC 정정불가능한 이벤트를 생성할 수 있다.
종래에, 펌웨어는 블록 레벨에서 판독 액세스를 추적하고, 판독 방해의 결과로서(또는 바람직하게는 판독 방해의 발생 전에) 데이터 이동을 트리거한다. 종래의 기술들을 사용하면, 판독 방해의 결과로서 데이터 이동이 트리거될 때, 전체 블록이 새로운 목적지 블록으로 이동된다. QLC 블록들이 커지면, 프로그래밍 시간이 느려진다. 따라서, 전체 블록을 이동시키는 것은 호스트 성능에 상당한 영향을 미칠 수 있다.
예를 들어, QLC 블록에 대한 판독 방해 임계를 트리거할 때, 전체 QLC 데이터 블록이 블로킹 호출 또는 블로킹 동작으로서 새로운 목적지 QLC 블록으로 이동되는 예를 고찰하기로 한다. 전체 블록을 블로킹 호출로서 이동시키면, 이동이 완료될 때까지 임의의 추가 호스트 커맨드들은 서비스되지 않을 것이다. 결과로서, 새로운 목적지 블록으로부터 임의의 추가 호스트 판독들이 수행될 것을 보장하기 위해, 데이터 이동이 완료된 후 주소 테이블(예를 들어, 논리적 대 물리적(logical to physical)(L2P)) 페이지 테이블이 업데이트된다. 이 기술은 사용자 데이터가 손상되지 않을 것을 보장하지만, 하나의 QLC 블록으로부터 다른 QLC 블록으로의 데이터 이동에 대한 블로킹 호출의 결과로서 호스트가 고갈되는 것으로 인해 타임아웃을 야기할 수 있다. 또한, 이러한 기술은 일부 페이지들이 영향을 받지 않더라도 전체 QLC 데이터 블록이 이동되기 때문에 높은 기입 증폭(write amplification)(WA) 영향을 갖는다.
다른 예에서, 판독 방해 임계를 트리거할 때, 데이터 이동은 호스트가 고갈되지 않도록 분산된다. 데이터 이동을 분산시키는 것은 데이터 이동 동안 성능이 안정적이고 균일할 것을 보장한다. 그러나, 주소 테이블에 대한 업데이트들은 목적지 QLC 블록이 완전히 프로그래밍될 때까지 수행되지 않을 수 있다(예를 들어, PLI 캡들(전력 손실 임박 커패시터들(power loss imminent capacitors))을 갖지 않는 클라이언트 SSDS의 경우). 주소 테이블은 블록이 닫힐 때까지 업데이트되지 않기 때문에, 호스트 판독들은 판독 임계에 도달한 원래의 희생 블록으로부터 계속 서비스된다. 따라서, 희생 페이지들은 NAND 요건들의 위반 및 잠재적인 사용자 데이터 손실로 이어지는 높은 판독 스트레스 양을 가질 수 있다. 이 기술은 또한 일부 페이지들이 영향을 받지 않더라도 전체 데이터 블록이 이동되기 때문에 높은 기입 증폭 영향을 야기한다.
대조적으로, 판독 방해들을 완화하는 것의 성능 및 기입 증폭 영향은 영향을 받는 워드라인 및 이웃 워드라인들의 데이터만을 SLC 블록과 같은 고속 미디어 블록으로 이동시킴으로써 회피될 수 있다. 예를 들어, QLC 블록들 상에서 판독 방해 임계에 도달하면, 펌웨어는 WLn(해당 페이지가 해머링되고 있는 워드라인), WLn-1 및 WLn+1에 저장된 데이터를 SLC 블록으로 이동시킨다. 일례에서, 주소 테이블(예를 들어, 논리적 대 물리적 테이블)은 데이터 이동 후 업데이트되고, 동일한 LBA들(논리적 블록 주소들) 상에서의 후속 판독들은 NAND 상의 새로운 위치로부터 서비스될 것이다. 일례에서, 펌웨어는 블로킹 동작으로서 3개의 워드라인에서의 데이터의 이동을 수행하고, 따라서 데이터 이동이 완료될 때까지는 어떠한 호스트 커맨드들도 서비스되지 않을 것이다. 그러나, 이동은 SLC 블록에 대한 것이므로, 데이터 이동이 비교적 신속하게 완료되고, 블로킹 호출은 상당한 성능 영향을 야기하거나 호스트 타임아웃을 야기하지 않는다.
일례에서, 판독 방해를 방지하기 위해 영향을 받는 워드라인들 및 이웃 워드라인들만을 이동시키기 위해, 펌웨어는 메모리 셀들의 서브그룹들에 대해 수신된 판독 횟수를 추적한다. 예를 들어, 도 4는 NAND 디바이스 및 카운터들이 블록들 및 서브그룹들로 논리적으로 조직화될 수 있는 방법을 도시하는 블록도이다. 따라서, 도 4는 판독 액세스들이 추적될 수 있는 입도(granularity)의 일례를 도시한다. 도 4의 예는 4개의 다이, 즉 다이 0, 다이 1, 다이 2 및 다이 3을 포함한다. 각각의 다이는 k+1개의 블록을 포함한다. NAND 메모리 블록은 전형적으로 NAND 플래시 다이에서 소거가능한 가장 작은 엔티티이다. 수퍼블록은 전형적으로 복수의 다이에 걸쳐 동일한 블록 주소(예를 들어, 복수의 NAND 다이에 걸쳐 동일한 워드라인 주소)로서 정의된다. 각각의 블록은 n+1개의 서브그룹을 포함하며, 여기서 각각의 서브그룹은 하나 이상의 페이지를 포함한다. 일례에서, 서브그룹은 3개의 SLC 페이지, 9개의 TLC 페이지, 또는 12개의 QLC 페이지를 포함한다. 따라서, 각각의 블록은 설계 및 구현에 따라 많은 수의 페이지를 포함할 수 있다. 또한, 펌웨어는 상이한 페이지 입도들에 대한 판독 액세스들을 위해 카운터들을 추적하고 업데이트할 수 있다. 도 4에 도시된 예는 각각의 다이에 대한 블록 레벨에서의 카운터들(박스(402)) 및 모든 다이들에 걸친 서브그룹 레벨에서의 카운터들(박스(404))을 도시한다. 다이 블록 레벨 카운터들은 블록 내의 임의의 페이지에서 판독들을 기록한다. SSGS(서브레벨) 판독 카운터들은 더 작은 페이지 범위에서 판독들을 기록한다. 일례에서, 다이 블록 레벨 판독 카운터들은 동일한 블록 내에서 분산 판독들을 추적하도록 의도되는 반면, SSGS 판독 카운터들은 해머 판독 스트레스 또는 단일 페이지 판독 스트레스를 추적하도록 의도된 것이다. 판독 액세스들을 추적하기 위해 카운터들의 다른 입도들이 사용될 수 있다. 일례에서, 각각의 다이에 대한 각각의 서브그룹에 대한 판독 액세스 카운트는 개별적으로 추적될 수 있다(모든 다이에 걸쳐있는 서브그룹 레벨의 카운터가 아님).
위에서 언급된 바와 같이, 종래의 기술들은 판독 방해를 방지하기 위해 전체 블록들을 이동시키는 것을 수반했다. 따라서, 블록 레벨에서 판독 액세스들이 추적되었으며, 임계에 도달하고 나면, 전체 블록으로부터 데이터가 이동되었다. 종래의 기술과 달리, 서브그룹 레벨에서 액세스들을 추적하면, 영향을 받는 워드라인들만의 전송을 가능하게 할 수 있고, 데이터 전송들을 감소시킬 수 있다. 일례에서, 카운터들은 펌웨어(예를 들어, 테이블, 어레이, 링크된 목록, 또는 다른 데이터 구조)로 구현된다.
도 5는 "히트 테이블"의 형태로 카운터들의 예시적인 표현을 도시한다. 히트 테이블은 어느 서브그룹들이 "핫(hot)"인지, 즉, 어느 서브그룹들이 임계를 충족하거나 임계에 근접하고 있는 수의 판독 액세스들을 수신했는지를 추적하기 위한 데이터 구조이다. 도 5에 도시된 예에서, 블록 0 및 2의 "WLn"은 해당 워드라인으로부터의 적어도 하나의 서브그룹이 판독 임계를 충족시켰기 때문에 핫 워드라인들을 표현한다. 블록 k 내의 어떤 워드라인도 임계를 충족시키지 않는다. "WLn-1"은 WLn 바로 앞의 워드라인을 지칭하고, "WLn+1"은 WLn 바로 뒤의 WL을 지칭한다. 히트 테이블은 서브그룹들이 임계를 충족시켰는지 여부(예를 들어, 임계가 충족되었는지 또는 충족되지 않았는지)를 추적할 수 있거나 "핫니스(hotness)"의 정도를 추적할 수 있다. 예를 들어, 도 5의 예는 다양한 레벨의 핫니스를 추적한다. 구체적으로, 도 5 내의 히트 테이블은 일부 서브그룹들이 임계(예를 들어, 임계의 75%)에 접근하고 있고 다른 서브그룹들이 임계보다 훨씬 낮음(예를 들어, 임계의 75% 미만)을 보여준다. 다양한 레벨들의 액세스를 추적하면, 상이한 레벨들에 대해 상이한 정책들을 가능하게 할 수 있다. 그러나, 히트 테이블 또는 다른 데이터 구조는 임계가 이진 토글로서 충족되었는지를 추적할 수 있다(예를 들어, 임계가 충족되었음을 나타내는 '로직 1' 또는 임계가 충족되지 않았음을 나타내는 '로직 0', 또는 그 반대). 서브그룹들에 대한 판독 액세스들의 수를 추적함으로써, 판독 방해 관련 데이터 손상 전에 핫 워드라인들로부터 데이터가 이동될 수 있다.
도 5의 히트 테이블은 각각의 SSGS(세그먼트화된 SGS) 또는 서브그룹에 대해, 도 4의 카운터들(404)과 유사한 카운터를 도시한다. 각각의 SSGS는 복수의 다이에 걸쳐 있다. 도 5의 예는 2개의 다이(다이 0 및 다이 1)를 도시하지만, 여기에 설명된 기술들은 하나의 다이 또는 2개 초과의 다이에 적용된다. 각각의 다이는 4개의 평면(P0, P1, P2 및 P3), 및 k+1개의 블록(블록 0, 1 및 k가 표시됨)을 포함한다. 각각의 블록은 복수의 서브그룹을 포함하며, 각각의 서브그룹은 복수의 페이지를 포함한다. 각각의 워드라인은 3개의 서브그룹을 포함하지만, 다른 예들은 3개 미만 또는 3개 초과의 서브그룹을 포함할 수 있다. 도 5에 도시된 그룹화는 비-제한적인 예이고; 본 명세서에 설명된 기술들은 메모리의 다양한 그룹화 및 논리적 세분화에 적용된다.
펌웨어는 각각의 서브그룹(예를 들어, SSGS)에 대한 판독 액세스들의 카운트 또는 카운터를 유지한다. 메모리 디바이스가 특정 서브그룹에 대한 판독 요청을 수신할 때, 펌웨어는 해당 서브그룹에 대한 카운터를 업데이트(예를 들어, 증분)한다. 다음으로, 펌웨어는 서브그룹에 대한 카운트가 임계에 도달했는지(또는 초과했는지) 결정한다. 카운터에 추가하여, 일례에서, 서브그룹 또는 워드라인이 판독 임계를 충족했는지를 추적하기 위해 하나 이상의 비트가 데이터 구조에 포함된다. 핫니스의 정도가 추적되는 일례에서, 핫니스의 레벨을 표시하기 위해 각각의 서브그룹 또는 각각의 워드라인 또는 둘 다에 대해 복수의 비트가 포함될 수 있다. 워드라인 내의 서브그룹들 중 하나 이상이 임계에 도달하면, QLC 블록 상의 핫 워드라인으로부터 SLC 블록으로 데이터를 이동시키기 위해 데이터 이동이 트리거된다.
이웃 워드라인들에 대한 판독 카운터 임계가 도달되지 않았더라도, 이웃 워드라인들은 최대 게이트 스트레스(잠재적으로 핫 워드라인보다 훨씬 더 큰 게이트 스트레스)를 경험할 수 있으므로, 타겟 WLn보다 판독 방해에 더 취약할 수 있다. 따라서, 핫 워드라인 전후의 워드라인들에서의 데이터도 SLC 블록으로 이동된다. 예를 들어, WLn이 판독 임계를 충족하면, 도 5의 블록 0에 대해 도시된 바와 같이, WLn-1 및 WLn+1은 또한 QLC 블록으로부터 SLC 블록으로 이동된다. 본 명세서의 예들은 일반적으로 2개의 이웃 워드라인을 이동시키는 것을 참조하지만, 일례에서 전체 블록보다는 적지만 2개보다 많은 이웃 워드라인이 이동된다(예를 들어, 핫 워드라인에 더하여, 워드라인들 WLn-2, WLn-1, WLn+1, WLn+2 등이 이동될 수 있다). 따라서, 종래의 기술들과 달리, 판독 방해 에러들을 방지하기 위해 더 적은 양의 데이터가 전송된다. 또한, 더 적은 양의 데이터가 전송되기 때문에, 데이터가 SLC 블록으로 이동될 수 있다. 데이터를 SLC 블록으로 이동시키는 것은 데이터를 다른 QLC 블록으로 이동시키는 것보다 훨씬 빠르고 에러 발생 가능성이 적다. 따라서, 데이터 이동이 신속하게 완료되고, 판독 방해 방지로 인한 상당한 성능 타격을 방지한다.
도 6은 판독 방해를 방지하는 방법의 예의 흐름도이다. 일례에서, 방법은 비휘발성 메모리 디바이스의 로직에 의해 수행된다. 하나의 그러한 예에서, 방법은 3D NAND 다이 상의 펌웨어, 마이크로코드 및/또는 회로에 의해 수행된다.
방법은 블록(602)에서 판독 요청을 수신함으로써 시작된다. 예를 들어, 도 3a를 참조하면, 메모리 디바이스(300)는 인터페이스들(356 및 320)을 통해 호스트(350)로부터 판독 요청을 수신한다. 다음으로, 펌웨어는 판독 요청의 타겟 서브그룹(들)을 결정하고, 블록(604)에서 타겟 서브그룹(들)에 대한 카운터(들)를 증분시킨다. 다른 구현들에서, 카운터들은 임계에 도달했음을 표시하기 위해 초기 숫자로부터 제로까지 카운트다운할 수 있다. 이러한 예에서, 타겟 서브그룹에 대한 판독 요청을 수신하면 카운터들이 감소될 것이다.
일례에서, 적절한 판독 카운터들이 업데이트되고 나면, 펌웨어는 서브그룹들 중 임의의 것에 대한 카운터들이 임계보다 큰지를 확인한다. 특정 서브그룹 또는 워드라인에 대한 판독 임계가 충족되는지를 확인하기 위해 다양한 정책들이 사용될 수 있다. 예를 들어, 판독 액세스의 타겟이 되는 각각의 서브그룹에 대한 카운터들은 판독 액세스 후에 확인될 수 있다. 다른 예에서, 모든 판독 카운터들은 미리 결정되거나, 프로그래밍가능하거나, 트리거에 기초하는 소정의 빈도로 확인될 수 있다. 판독 액세스 카운트들이 임계를 충족하는지를 확인하는 타이밍 및 빈도에 관계없이, 카운터들 중 어느 것도 임계보다 크지 않다면, 즉 블록(606)의 아니오 분기에서, 방법은 블록(602)으로부터 계속된다.
카운터들 중 임의의 것이 임계보다 크다면, 즉 블록(606)의 예 분기에서, 임계가 충족된 워드라인의 데이터가 블록(608)에서 이동된다. 추가로, 2개 이상의 이웃 워드라인에 저장된(예를 들어, 이전 및 다음 워드라인에 저장된) 데이터는 그러한 워드라인들에서의 판독 방해를 방지하고 소정의 데이터 연속성을 유지하기 위해 또한 이동될 수 있다. 그러나, 종래의 기술들과는 달리, 블록 내에서 임계가 충족됨을 검출한 것에 응답하여 전체 블록이 이동되지는 않는다. 임계가 충족된 것에 응답하여 이동되는 데이터의 양은 전체 블록보다 적다(예를 들어, 블록 내의 하나 이상의 데이터 워드라인).
일례에서, 이러한 워드라인들에서의 데이터는 SLC 블록으로 이동된다. 하나의 그러한 예에서, 데이터는 핫 워드라인 및 이웃 워드라인들로부터의 데이터가 인접하여 유지되도록 SLC 블록의 인접한 위치들에 복사된다. 다음으로, 방법은 워드라인에 대한 후속 판독 요청들을 SLC 버퍼로 지향시키기 위해 주소 맵 포인터를 업데이트하는 것을 수반한다. 일례에서, 주소 맵 포인터들은 전체 데이터 이동이 완료된 후 또는 모든 페이지가 SLC 블록에 기입된 후에 업데이트될 수 있다. 모든 페이지가 기입된 후 목적지 SLC 블록에 대한 맵 포인터가 업데이트되는 예에서, SLC 블록이 닫히지 않더라도 SLC 블록으로부터 후속 호스트 판독들이 판독될 것이다.
따라서, 방법은 QLC 블록 내의 모든 데이터를 이동시키지 않고서, 핫 데이터와 그것의 이웃 워드라인들만을 QLC 블록으로부터 SLC 버퍼로 이동시키는 것을 수반한다. 데이터가 SLC로 이동되고 나면 논리적 대 물리적 페이지 테이블이 업데이트되고, 호스트가 데이터를 요청하면, 그것은 새로운 SLC 블록으로부터 판독될 것이다. 도 6의 예는 3개의 워드라인을 이동시키는 것을 참조하지만, 다른 데이터 입도들이 이동될 수 있다. 예를 들어, 임계가 충족될 때, 전체 워드라인 및 이웃 워드라인들이 아니라, 하나 이상의 서브그룹에서의 데이터가 이동될 수 있다.
추가적으로, 도 6의 예는 핫 데이터를 SLC 블록으로 이동시키는 것을 참조하지만, 다른 예들은 핫 데이터(예를 들어, 워드라인 및 이웃 워드라인들)를 MLC, TLC, QLC 등과 같은 다른 유형의 메모리 블록으로 이동시킬 수 있다. 핫 데이터가 이동되는 메모리의 유형에 무관하게, 전체 블록을 이동시키지 않고서 소량의 데이터(예를 들어, 몇몇 워드라인)가 이동되고, 따라서 전체 블록의 이동을 요구하는 종래 기술들보다 신속하게 이동이 완료된다. 그러나, 핫 워드라인 및 이웃 워드라인들을 SLC 블록으로 이동시키는 것은 데이터 이동을 완료하기 위한 시간을 더 감소시키고, 따라서 호스트에 대한 성능 영향은 종래 기술들보다 상당히 낮다. 방법은 또한 전체 수퍼블록을 이동시키는 대신 영향을 받는 워드라인들만이 이동되므로 기입 증폭 영향이 적다. 또한, 수 개의 연속 워드라인이 SLC 블록으로 이동되기 때문에, 데이터는 여전히 순차적이다.
도 7a 및 도 7b는 판독 방해 방지를 위한 2개의 상이한 데이터 이동 정책에 대한 상태도를 도시한다. 도 7a는 종래의 데이터 이동 정책에 대한 상태도의 예이다. 도 7a의 상태도의 상태(702)에서, QLC 블록은 현재의 소스 QLC 블록으로부터 다른 목적지 QLC 블록으로 이동될 유효한 데이터를 갖는 핫 데이터 블록으로서 식별되었다. 종래의 정책들에 따르면, 블록 내의 임의의 서브그룹 또는 워드라인이 핫인 경우, 전체 블록이 이동된다. 예를 들어, 전체 소스 QLC 블록으로부터의 모든 유효한 데이터는 다음으로 목적지 QLC 블록으로 이동된다. 상태 머신은 블록이 이동되고 있는 동안(예를 들어, 이동되고 있는 현재 페이지 < 마지막 페이지인 동안) 상태(704)로 이동한다. 전체 블록이 성공적으로 이동되면, 새로운 QLC 블록을 가리키도록 주소 맵이 업데이트된다. 다음으로, 상태 머신은 상태(706)로 이동한다. 다음으로, 새로운 QLC 블록에 대한 판독 액세스들의 수가 모니터링된다. 판독 액세스들의 수가 임계에 도달하면, 프로세스가 반복되고, 데이터가 다른 QLC 블록으로 이동된다. 따라서, 도 7a의 상태도에 의해 예시된 정책은 전체 QLC 데이터 블록을 다른 QLC 데이터 블록으로 이동시키는 것을 수반한다.
대조적으로, 도 7b는 핫 워드라인 및 이웃 워드라인들만이 SLC 블록으로 이동되는 상태도의 예를 도시한다. 도 7b의 상태도의 상태(708)에서, 블록의 서브그룹은 핫이며 유효한 데이터를 갖는 것으로서 식별되었다. 전체 QLC 블록 내의 데이터를 이동시키는 대신에, 핫 워드라인, 및 핫 워드라인 전후의 워드라인에 있는 유효한 데이터만이 목적지 SLC 블록으로 이동된다. 다음으로, 주소 맵이 새로운 SLC 블록을 가리키도록 업데이트되어 상태도를 상태(710)로 가져간다. 더 적은 양의 데이터가 이동되기 때문에, 그리고 데이터가 QLC 블록을 대신하여 SLC 블록으로 이동되므로, 데이터 이동은 도 7a의 데이터 이동 정책에 따른 데이터 이동보다 훨씬 더 신속하게 완료된다. 따라서, 데이터 이동을 완료하고 맵 포인터를 업데이트하기 위한 시간이 상당히 감소될 수 있다. 일례에서, 이동된 데이터는 SLC 블록에서 추가 공간이 필요할 때까지 SLC 블록에 남아 있는다. SLC 블록에서 추가 공간이 확보될 필요가 있다면, 이동된 워드라인들은 해당 시점에 다른 QLC 블록으로 이동될 수 있다.
도 8은 컴퓨팅 시스템(800)(예를 들어, 스마트폰, 태블릿 컴퓨터, 랩톱 컴퓨터, 데스크톱 컴퓨터, 서버 컴퓨터 등)의 예시적인 도시를 제공한다. 도 8에서 관찰되는 바와 같이, 시스템(800)은 하나 이상의 프로세서 또는 처리 유닛(801)을 포함할 수 있다. 프로세서(들)(801)는 하나 이상의 중앙 처리 유닛(CPU)을 포함할 수 있으며, 그들 각각은 예를 들어 복수의 범용 처리 코어를 포함할 수 있다. 프로세서(들)(801)는 또한 또는 대안적으로 하나 이상의 그래픽 처리 유닛(GPU) 또는 다른 처리 유닛을 포함할 수 있다. 프로세서(들)(801)는 메모리 관리 로직(예를 들어, 메모리 제어기) 및 I/O 제어 로직을 포함할 수 있다. 프로세서(들)(801)는 도 3의 프로세서(352)와 유사하거나 동일할 수 있다.
시스템(800)은 또한 메모리(802)(예를 들어, 시스템 메모리), 비휘발성 저장소(804), 통신 인터페이스들(806), 및 도 3의 호스트(350)의 컴포넌트들과 또한 유사하거나 동일할 수 있는 다른 컴포넌트들(808)을 포함한다. 다른 컴포넌트들은 예를 들어 디스플레이 디바이스(예를 들어, 터치스크린, 평면 패널), 전력 공급부(예를 들어, 배터리 또는/또는 다른 전력 공급부), 센서, 전력 관리 로직, 또는 다른 컴포넌트들을 포함할 수 있다. 통신 인터페이스들(806)은 통신 인터페이스를 지원하기 위한 로직 및/또는 특징들(features)을 포함할 수 있다. 이러한 예들에서, 통신 인터페이스(806)는 직접 또는 네트워크 통신 링크들 또는 채널들을 통해 통신하기 위해 다양한 통신 프로토콜들 또는 표준들에 따라 동작하는 하나 이상의 통신 인터페이스를 포함할 수 있다. 직접 통신은 PCIe 사양에 연관된 것들과 같은 하나 이상의 산업 표준(후속편들 및 변형들을 포함함)에 설명된 통신 프로토콜들 또는 표준들을 사용하여 발생할 수 있다. 네트워크 통신들은 IEEE에 의해 발표된 하나 이상의 표준에 설명된 것들과 같은 통신 프로토콜들 또는 표준들을 사용하여 발생할 수 있다. 예를 들어, 하나의 그러한 이더넷 표준은 IEEE 802.3을 포함할 수 있다. 네트워크 통신은 또한 OpenFlow Switch 사양과 같은 하나 이상의 OpenFlow 사양에 따라 발생할 수 있다. 통신 인터페이스들의 다른 예들은 예를 들어 로컬 유선 포인트-대-포인트 링크(예를 들어, USB) 인터페이스, 무선 근거리 네트워크(예를 들어, WiFi) 인터페이스, 무선 포인트-대-포인트 링크(예를 들어, 블루투스) 인터페이스, 글로벌 포지셔닝 시스템 인터페이스, 및/또는 다른 인터페이스들을 포함한다.
컴퓨팅 시스템은 또한 시스템의 대용량 저장 컴포넌트일 수 있는 비휘발성 저장소(804)를 포함한다. 비휘발성 저장 디바이스(804)는 위에서 설명된 도 3의 메모리 디바이스(300)와 유사하거나 동일하거나 그것을 포함할 수 있다. 비휘발성 저장소(804)는 솔리드 스테이트 드라이브(SSD), 듀얼 인라인 메모리 모듈(DIMM), 또는 다른 비휘발성 저장소를 포함할 수 있다. 비휘발성 저장소(804)는 칼코게나이드 상 변화 재료를 포함하는 3차원(3D) 크로스포인트 메모리 구조를 갖는 바이트 또는 블록 어드레싱가능한 유형의 비휘발성 메모리를 포함할 수 있다. 비휘발성 유형의 메모리는 다중 임계 레벨 NAND 플래시 메모리(예를 들어, 3D NAND 플래시 메모리), NOR 플래시 메모리, 단일 또는 다중 레벨 상 변화 메모리(PCM), 저항성 메모리, 나노와이어 메모리, 강유전성 트랜지스터 랜덤 액세스 메모리(FeTRAM), 멤리스터 기술을 통합하는 자기 저항 랜덤 액세스 메모리(MRAM), 스핀 전달 토크 MRAM(STT-MRAM) 또는 상술한 것들 중 임의의 것의 조합과 같은, 그러나 그에 제한되지는 않는 다른 유형의 바이트 또는 블록 어드레싱가능한 비휘발성 메모리를 또한 포함할 수 있다. 일례에서, 비휘발성 저장소(804)는 하나 이상의 SSD로 구성된 대용량 저장소를 포함할 수 있다. SSD들은 여기에 설명된 판독 방해 방지 기술들을 구현할 수 있는 플래시 메모리 칩들로 구성될 수 있다.
본 발명의 실시예들은 위에서 제시된 바와 같은 다양한 프로세스들을 포함할 수 있다. 프로세스들은 머신 실행가능한 명령어들로 구현될 수 있다. 명령어들은 범용 또는 특수 목적 프로세서가 특정 프로세스들을 수행하게 하기 위해 사용될 수 있다. 대안적으로, 이러한 프로세스들은 프로세스들을 수행하기 위해 하드와이어드 로직 회로 또는 프로그래밍가능한 로직 회로(예를 들어, FPGA, PLD)를 포함하는 특정/맞춤형 하드웨어 컴포넌트들에 의해, 또는 프로그래밍된 컴퓨터 컴포넌트들과 맞춤형 하드웨어 컴포넌트들의 임의의 조합에 의해 수행될 수 있다.
본 발명의 요소들은 또한 머신 실행가능한 명령어들을 저장하기 위한 머신 판독가능한 매체로서 제공될 수 있다. 머신 판독가능한 매체는 광학 디스크, CD-ROM 및 광 자기 디스크, 플래시 메모리, ROM, RAM, EPROM, EEPROM, 자기 또는 광학 카드, 전파 매체, 또는 전자적 명령어들을 저장하기에 적합한 다른 유형의 매체/머신 판독가능한 매체를 포함하지만 이에 제한되지 않는다. 예를 들어, 본 발명은 통신 링크(예를 들어, 모뎀 또는 네트워크 접속)를 통해 반송파 또는 다른 전파 매체로 구현된 데이터 신호들을 통해 원격 컴퓨터(예를 들어, 서버)로부터 요청 컴퓨터(예를 들어, 클라이언트)로 전송될 수 있는 컴퓨터 프로그램으로서 다운로드될 수 있다.
본 명세서에 예시된 흐름도들은 다양한 프로세스 액션들의 시퀀스들의 예들을 제공한다. 흐름도들은 소프트웨어 또는 펌웨어 루틴에 의해 실행될 동작들은 물론, 물리적 동작을 나타낼 수 있다. 일례에서, 흐름도는 하드웨어, 소프트웨어 또는 조합으로 구현될 수 있는 FSM(finite state machine)의 상태를 도시할 수 있다. 특정 시퀀스 또는 순서로 도시되지만, 달리 명시되지 않는 한, 액션들의 순서가 수정될 수 있다. 따라서, 도시된 실시예들은 단지 예로서 이해되어야 하며, 프로세스는 상이한 순서로 수행될 수 있고, 일부 액션들은 병렬로 수행될 수 있다. 추가로, 하나 이상의 액션은 다양한 예에서 생략될 수 있고; 따라서, 모든 실시예에서 모든 액션들이 요구되는 것은 아니다. 다른 프로세스 흐름들이 가능하다.
본 명세서에서 다양한 동작들 또는 기능들이 설명되는 한, 이들은 소프트웨어 코드, 명령어, 구성, 데이터 또는 조합으로서 설명되거나 정의될 수 있다. 콘텐츠는 직접 실행가능("객체" 또는 "실행가능" 형태), 소스 코드, 또는 차이 코드("델타" 또는 "패치" 코드)일 수 있다. 본 명세서에 설명된 실시예들의 소프트웨어 콘텐츠는 콘텐츠가 저장된 제조 물품을 통해, 또는 통신 인터페이스를 통해 데이터를 송신하기 위해 통신 인터페이스를 동작시키는 방법을 통해 제공될 수 있다. 머신 판독가능한 저장 매체는 머신이 설명된 기능들 또는 동작들을 수행하게 할 수 있으며, 기록가능한/기록불가능한 매체(예를 들어, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 디바이스들 등)와 같이 머신(예를 들어, 컴퓨팅 디바이스, 전자 시스템 등)에 의해 액세스가능한 형태로 정보를 저장하는 임의의 메커니즘을 포함한다. 통신 인터페이스는 메모리 버스 인터페이스, 프로세서 버스 인터페이스, 인터넷 접속, 디스크 제어기 등과 같은 다른 디바이스와 통신하기 위해 하드와이어드, 무선, 광학 등의 매체 중 임의의 것에 인터페이스하는 임의의 메커니즘을 포함한다. 통신 인터페이스는 소프트웨어 콘텐츠를 설명하는 데이터 신호를 제공하도록 통신 인터페이스를 준비하기 위해 구성 파라미터들을 제공하거나 신호들을 송신하거나 둘 다 함으로써 구성될 수 있다. 통신 인터페이스는 통신 인터페이스에 송신된 하나 이상의 커맨드 또는 신호를 통해 액세스될 수 있다.
본 명세서에 설명된 다양한 컴포넌트들은 설명된 동작들 또는 기능들을 수행하기 위한 수단일 수 있다. 본 명세서에 설명된 각각의 컴포넌트는 소프트웨어, 하드웨어 또는 이들의 조합을 포함한다. 컴포넌트들은 소프트웨어 모듈들, 하드웨어 모듈들, 특수 목적 하드웨어(예를 들어, 애플리케이션 특정 하드웨어, 애플리케이션 특정 집적 회로(ASIC), 디지털 신호 프로세서들(DSP) 등), 임베디드 제어기, 하드와이어드 회로 등으로서 구현될 수 있다.
여기에 설명된 것 외에도, 본 발명의 범위를 벗어나지 않고서, 본 발명의 개시된 실시예들 및 구현들에 대해 다양한 수정이 이루어질 수 있다. 따라서, 본 명세서의 도시와 예는 제한적인 의미가 아니라 예시적인 의미로 해석되어야 한다. 본 발명의 범위는 이하의 청구항들을 참조하여서만 판단되어야 한다.

Claims (25)

  1. 비휘발성 저장 디바이스로서,
    메모리 셀들의 블록들을 포함하는 NAND 저장소 어레이; 및
    로직
    을 포함하고, 상기 로직은:
    제1 NAND 메모리 블록 내의 워드라인에 액세스하기 위한 판독 요청을 수신하고 - 상기 워드라인에 있는 각각의 메모리 셀은 2개 이상의 비트를 저장함 -;
    상기 워드라인에 대한 판독 횟수가 임계를 초과하는 것을 검출하고;
    상기 워드라인에 저장된 데이터를 SLC(단일 레벨 셀) 버퍼로 이동시키는 것인, 비휘발성 저장 디바이스.
  2. 제1항에 있어서,
    상기 제1 NAND 메모리 블록은 QLC(쿼드 레벨 셀) NAND 메모리 블록인, 비휘발성 저장 디바이스.
  3. 제1항에 있어서, 상기 데이터를 이동시키는 로직은:
    상기 워드라인과 이웃 워드라인들에 저장된 데이터만을 상기 SLC 버퍼로 이동시키는 것인, 비휘발성 저장 디바이스.
  4. 제3항에 있어서,
    상기 이웃 워드라인들은 상기 워드라인에 인접한, 비휘발성 저장 디바이스.
  5. 제1항에 있어서, 상기 데이터를 이동시키는 로직은:
    상기 제1 NAND 메모리 블록에 저장된 모든 데이터를 이동시키지 않고서 둘 이상의 이웃 워드라인에 저장된 데이터를 이동시키는 것인, 비휘발성 저장 디바이스.
  6. 제3항에 있어서, 상기 데이터를 이동시키는 로직은:
    상기 워드라인과 상기 이웃 워드라인들에 저장된 데이터를 상기 SLC 버퍼 내의 인접 위치들에 복사하는 것인, 비휘발성 저장 디바이스.
  7. 제1항에 있어서, 상기 로직은:
    상기 워드라인에 대한 후속 판독 요청들을 상기 SLC 버퍼에 지향시키도록 주소 맵 포인터를 업데이트하는 것인, 비휘발성 저장 디바이스.
  8. 제7항에 있어서,
    상기 SLC 버퍼로의 데이터 이동은 블로킹 동작(blocking operation)이고;
    상기 로직은 각각의 페이지가 이동된 후 상기 주소 맵 포인터를 업데이트하는 것인, 비휘발성 저장 디바이스.
  9. 제1항에 있어서, 상기 워드라인에 대한 판독 횟수가 임계를 초과하는 것을 검출하는 로직은:
    상기 워드라인에 대한 판독 카운터가 상기 임계를 초과하는 것을 검출하는 것인, 비휘발성 저장 디바이스.
  10. 제9항에 있어서, 상기 판독 카운터는:
    수퍼블록에 대한 판독 카운터를 포함하고, 상기 수퍼블록은 복수의 NAND 다이에 걸쳐 동일한 워드라인 주소를 포함하는, 비휘발성 저장 디바이스.
  11. 제1항에 있어서, 상기 비휘발성 저장 디바이스는 솔리드 스테이트 드라이브(SSD)를 포함하는, 비휘발성 저장 디바이스.
  12. 시스템으로서,
    NAND 메모리 셀들의 블록들을 포함하는 3차원(3D) NAND 어레이;
    상기 3D NAND 어레이에 액세스하는 제어기; 및
    로직
    을 포함하고, 상기 로직은:
    제1 NAND 메모리 블록 내의 워드라인에 대한 판독 횟수가 임계를 초과하는 것을 검출하고 - 상기 워드라인에 있는 각각의 메모리 셀은 2개 이상의 비트를 저장함 -;
    상기 워드라인에 저장된 데이터가 SLC(단일 레벨 셀) 버퍼로 이동되게 하는 것인, 시스템.
  13. 제12항에 있어서,
    프로세서, 전력 공급부, 또는 디스플레이 디바이스 중 하나 이상을 더 포함하는, 시스템.
  14. 제12항에 있어서,
    상기 제1 NAND 메모리 블록은 QLC(쿼드 레벨 셀) NAND 메모리 블록인, 시스템.
  15. 제12항에 있어서, 상기 워드라인에 저장된 데이터가 이동되게 하는 로직은:
    상기 워드라인과 이웃 워드라인들에 저장된 데이터만을 상기 SLC 버퍼로 이동시키는 것인, 시스템.
  16. 제15항에 있어서,
    상기 이웃 워드라인들은 상기 워드라인에 인접한, 시스템.
  17. 제12항에 있어서, 상기 워드라인에 저장된 데이터가 이동되게 하는 로직은:
    상기 제1 NAND 메모리 블록에 저장된 모든 데이터를 이동시키지 않고서 둘 이상의 이웃 워드라인에 저장된 데이터를 이동시키는 것인, 시스템.
  18. 제15항에 있어서, 상기 워드라인에 저장된 데이터가 이동되게 하는 로직은:
    상기 워드라인과 상기 이웃 워드라인들에 저장된 데이터가 상기 SLC 버퍼 내의 인접 위치들에 복사되게 하는 것인, 시스템.
  19. 액세스될 때 처리 회로가 방법을 수행하기 위한 동작들을 실행하게 하는 콘텐츠가 저장된 컴퓨터 판독가능한 저장 매체를 포함하는 제조 물품으로서,
    상기 방법은:
    제1 NAND 메모리 블록 내의 워드라인에 액세스하기 위한 판독 요청을 수신하는 단계 - 상기 워드라인에 있는 각각의 메모리 셀은 2개 이상의 비트를 저장함 -;
    상기 워드라인에 대한 판독 횟수가 임계를 초과하는 것을 검출하는 단계; 및
    상기 워드라인에 저장된 데이터를 SLC(단일 레벨 셀) 버퍼로 이동시키는 단계
    를 포함하는, 제조 물품.
  20. 제19항에 있어서,
    상기 제1 NAND 메모리 블록은 QLC(쿼드 레벨 셀) NAND 메모리 블록인, 제조 물품.
  21. 제19항에 있어서, 상기 데이터를 이동시키는 단계는:
    상기 워드라인과 이웃 워드라인들에 저장된 데이터만을 상기 SLC 버퍼로 이동시키는 단계를 포함하는, 제조 물품.
  22. 제21항에 있어서,
    상기 이웃 워드라인들은 상기 워드라인에 인접한, 제조 물품.
  23. 제19항에 있어서, 상기 데이터를 이동시키는 단계는:
    상기 제1 NAND 메모리 블록에 저장된 모든 데이터를 이동시키지 않고서 둘 이상의 이웃 워드라인에 저장된 데이터를 이동시키는 단계를 포함하는, 제조 물품.
  24. 제21항에 있어서, 상기 데이터를 이동시키는 단계는:
    상기 워드라인과 상기 이웃 워드라인들에 저장된 데이터를 상기 SLC 버퍼 내의 인접 위치들에 복사하는 단계를 포함하는, 제조 물품.
  25. 제19항에 있어서,
    상기 워드라인에 대한 후속 판독 요청들을 상기 SLC 버퍼에 지향시키도록 주소 맵 포인터를 업데이트하는 단계를 더 포함하는, 제조 물품.
KR1020200118441A 2019-12-16 2020-09-15 Nand 메모리 내에서의 판독 방해를 방지하기 위한 기술들 KR20210077586A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/715,791 2019-12-16
US16/715,791 US11769557B2 (en) 2019-12-16 2019-12-16 Techniques for preventing read disturb in NAND memory

Publications (1)

Publication Number Publication Date
KR20210077586A true KR20210077586A (ko) 2021-06-25

Family

ID=70160367

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200118441A KR20210077586A (ko) 2019-12-16 2020-09-15 Nand 메모리 내에서의 판독 방해를 방지하기 위한 기술들

Country Status (4)

Country Link
US (2) US11769557B2 (ko)
KR (1) KR20210077586A (ko)
CN (1) CN112992206A (ko)
DE (1) DE102020130044A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10366763B2 (en) 2017-10-31 2019-07-30 Micron Technology, Inc. Block read count voltage adjustment
US11769557B2 (en) * 2019-12-16 2023-09-26 Intel Corporation Techniques for preventing read disturb in NAND memory
US11227666B1 (en) * 2020-08-07 2022-01-18 Micron Technology, Inc. Track charge loss based on signal and noise characteristics of memory cells collected in calibration operations
US11205495B1 (en) * 2020-08-07 2021-12-21 Micron Technology, Inc. Read disturb mitigation based on signal and noise characteristics of memory cells collected for read calibration
JP2022032569A (ja) * 2020-08-12 2022-02-25 キオクシア株式会社 メモリシステム
US11527280B2 (en) 2020-08-25 2022-12-13 Microsoft Technology Licensing, Llc Monitoring and mitigation of row disturbance in memory
US11568938B2 (en) 2020-11-03 2023-01-31 Western Digital Technologies, Inc. QLC data programming
US11379304B1 (en) * 2021-01-27 2022-07-05 Micron Technology, Inc. Mitigating read disturb effects in memory devices
CN114220468A (zh) * 2021-12-14 2022-03-22 北京得瑞领新科技有限公司 Nand闪存的数据保护方法及装置、计算机可读介质
US11748195B2 (en) 2022-01-05 2023-09-05 International Business Machines Corporation Detect multifold disturbance and minimize read-disturb errors in NAND flash
US11934685B2 (en) * 2022-01-18 2024-03-19 Micron Technology, Inc. Performing memory access operations based on quad-level cell to single-level cell mapping table
US11853572B2 (en) * 2022-05-05 2023-12-26 Western Digital Technologies, Inc. Encoding-aware data routing
CN114783485B (zh) * 2022-06-21 2022-10-18 阿里云计算有限公司 用于刷新相变存储器的方法及相变存储设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11112983B2 (en) * 2019-08-28 2021-09-07 Micron Technology, Inc. Recovery of memory device from a reduced power state
US11769557B2 (en) * 2019-12-16 2023-09-26 Intel Corporation Techniques for preventing read disturb in NAND memory
US11443798B1 (en) * 2021-04-29 2022-09-13 Micron Technology, Inc. High voltage switch with mitigated gate stress

Also Published As

Publication number Publication date
DE102020130044A1 (de) 2021-06-17
US20200118636A1 (en) 2020-04-16
US11769557B2 (en) 2023-09-26
CN112992206A (zh) 2021-06-18
US20230395166A1 (en) 2023-12-07

Similar Documents

Publication Publication Date Title
US11769557B2 (en) Techniques for preventing read disturb in NAND memory
US10340016B2 (en) Methods of error-based read disturb mitigation and memory devices utilizing the same
KR102174293B1 (ko) 확률론적 데이터 구조에 기초한 메모리 내의 사전적인 교정 조치
KR101655306B1 (ko) 메모리 시스템 및 그것의 액세스 방법
US20210089394A1 (en) Storage device selectively generating parity bits according to endurance of memory cell, and method thereof
US11861167B2 (en) Maintenance operations for memory devices
US11237976B2 (en) Memory system, memory controller and meta-information storage device
US20210335445A1 (en) Managing data disturbance in a memory with asymmetric disturbance effects
TWI648739B (zh) 記憶體管理方法與儲存控制器
US11699498B2 (en) Managing probabilistic data integrity scan intervals
KR102306853B1 (ko) 호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템
US20230068702A1 (en) On-die cross-temperature management for a memory device
CN117957519A (zh) 管理存储器子系统中的存储器单元的写入干扰
CN112086121B (zh) 存储器近接干扰管理
US11106366B1 (en) Maintaining consistent write latencies in non-volatile memory devices
US20210118510A1 (en) Read latency reduction for partially-programmed block of non-volatile memory
US20210019050A1 (en) Maintenance operations for memory devices
US9218885B2 (en) System to control a width of a programming threshold voltage distribution width when writing hot-read data
KR20200070686A (ko) 저장 장치 및 그 동작 방법
US11776611B2 (en) Managing write disturb for units of a memory device using weighted write disturb counts
US20230386588A1 (en) Media management
TWI767584B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
US11914878B2 (en) Media management
US20240071522A1 (en) Read counter adjustment for delaying read disturb scans
US11501840B1 (en) Proximity disturb remediation based on a number of programmed memory cells