KR20220129626A - 가변 사전 판독 전압 레벨을 사용한 비휘발성 메모리 디바이스에서의 기록 동작의 관리 - Google Patents

가변 사전 판독 전압 레벨을 사용한 비휘발성 메모리 디바이스에서의 기록 동작의 관리 Download PDF

Info

Publication number
KR20220129626A
KR20220129626A KR1020227029126A KR20227029126A KR20220129626A KR 20220129626 A KR20220129626 A KR 20220129626A KR 1020227029126 A KR1020227029126 A KR 1020227029126A KR 20227029126 A KR20227029126 A KR 20227029126A KR 20220129626 A KR20220129626 A KR 20220129626A
Authority
KR
South Korea
Prior art keywords
write
segment
data
read
time interval
Prior art date
Application number
KR1020227029126A
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 KR20220129626A publication Critical patent/KR20220129626A/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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2263Write conditionally, e.g. only if new data and old data differ

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 Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)

Abstract

메모리 디바이스와 동작가능하게 결합된 처리 디바이스는 메모리 디바이스의 세그먼트에 저장될 데이터를 식별하는 기록 요청을 수신하도록 구성된다. 처리 디바이스는 세그먼트에 대한 기록 대 기록(write-to-write, W2W) 시간 간격을 결정하고, W2W 시간 간격이 제1 W2W 시간 간격 범위 ― 제1 W2W시간 간격 범위는 제1 사전 판독 전압 레벨에 대응함 ― 내에 속하는지 여부를 결정한다. 세그먼트에 대한 W2W 시간 간격이 제1 W2W 간격 범위 내에 속하는 것에 응답하여, 처리 디바이스는 제1 사전 판독 전압 레벨을 사용하여 세그먼트에 대한 사전 판독 동작을 수행한다. 처리 디바이스는 세그먼트에 저장된 데이터의 대응하는 비트들과 상이한 데이터의 비트들을 포함하는 세그먼트에 저장될 데이터의 서브세트를 식별한다. 처리 디바이스는 또한 기록 동작을 수행하여 데이터의 서브세트를 세그먼트에 저장한다.

Description

가변 사전 판독 전압 레벨을 사용한 비휘발성 메모리 디바이스에서의 기록 동작의 관리
본 개시는 일반적으로 메모리 서브시스템들에 관한 것으로, 보다 구체적으로는 가변 사전 판독 전압 레벨을 사용한 비휘발성 메모리 디바이스에서의 기록 동작의 관리에 관한 것이다.
메모리 서브시스템은 데이터를 저장하는 하나 이상의 메모리 디바이스를 포함할 수 있다. 메모리 디바이스들은 예를 들어, 비휘발성 메모리 디바이스들 및 휘발성 메모리 디바이스들일 수 있다. 일반적으로, 호스트 시스템은 메모리 디바이스들에 데이터를 저장하고 메모리 디바이스들로부터 데이터를 검색하는 데 메모리 서브시스템을 이용할 수 있다.
본 개시는 아래에 주어지는 구체적인 내용 및 본 개시의 다양한 실시예들의 첨부 도면들로부터 보다 충분하게 이해될 것이다.
도 1은 본 개시의 일부 실시예들에 따른, 가변 사전 판독 전압 레벨을 사용하여 비휘발성 메모리 디바이스에서 기록 동작들을 지원하기 위한 예시적인 컴퓨팅 시스템을 도시한다.
도 2는 본 개시의 일부 실시예들에 따른 두 사전 판독 전압 레벨들에 대한 기록 대 기록(W2W) 시간 간격들의 함수로서 비트 에러율(bit error rate, BER)을 도시한 그래프이다.
도 3은 본 개시의 일부 실시예들에 따른, 데이터가 메모리 디바이스의 데이터 유닛들에 마지막으로 기록되는 때에 기초하여 데이터 블록들에 대한 타임스탬프들을 관리하는 프로세스를 도시한 블록도이다.
도 4는 본 개시의 일부 실시예들에 따른, 메모리 서브시스템에서 가변 사전 판독 전압 레벨을 사용하여 사전 판독 동작들을 관리하는 예시적인 방법의 흐름도이다.
도 5는 본 개시의 일부 실시예들에 따른, 메모리 서브시스템에서 가변 사전 판독 전압 레벨을 사용하여 사전 판독 동작을 수행하는 예시적인 방법의 흐름도이다.
도 6은 본 개시의 실시예들이 작동될 수 있는 예시적인 컴퓨터 시스템의 블록도이다.
본 개시의 양태들은 메모리 서브시스템의 메모리 디바이스들에서 데이터의 기록 동작에 선행하는 사전 판독 동작을 수행할 때 가변 사전 판독 전압 레벨을 관리하는 것에 관한 것이다. 메모리 서브시스템은 저장 디바이스, 메모리 모듈, 또는 저장 디바이스와 메모리 모듈의 하이브리드일 수 있다. 저장 디바이스들 및 메모리 모듈들의 예들은 도 1과 관련하여 아래에서 설명된다. 일반적으로, 호스트 시스템은 하나 이상의 데이터를 저장하는 메모리 디바이스를 포함하는 메모리 서브시스템을 이용할 수 있다. 호스트 시스템은 메모리 서브시스템에 저장될 데이터를 제공할 수 있고 메모리 서브시스템으로부터 검색될 데이터를 요청할 수 있다.
메모리 서브시스템은 호스트 시스템으로부터 데이터를 저장할 수 있는 다수의 메모리 디바이스들을 포함할 수 있다. 메모리 디바이스는 비휘발성 메모리 디바이스일 수 있다. 비휘발성 메모리 디바이스는 하나 이상의 다이의 패키지이다. 메모리 디바이스들은 적층가능한 크로스 그리드 데이터 액세스 어레이와 함께, 벌크 저항의 변화에 기초하여 비트 저장을 수행할 수 있는 비휘발성 메모리의 크로스 포인트 어레이인 3차원 크로스 포인트("3D 크로스 포인트") 메모리 디바이스들과 같은 비휘발성 메모리 디바이스들일 수 있다. 비휘발성 메모리 디바이스의 다른 예는 부정 곱(negative-and, NAND) 메모리 디바이스이다. 비휘발성 메모리 디바이스들의 다른 예들은 도 1과 관련하여 아래에서 설명된다. 패키지들 내의 다이들은 메모리 서브시스템 제어기와 통신하기 위한 하나 이상의 채널에 부여될 수 있다. 각 다이는 하나 이상의 평면으로 구성될 수 있다. 평면들은 논리 유닛(logic unit, LUN)들로 그룹화될 수 있다. 일부 유형들의 비휘발성 메모리 디바이스들(예를 들어, NAND 디바이스들)에 대해, 각 평면은 데이터를 저장하기 위한 메모리 셀들의 그룹들인 물리 블록들의 세트로 구성된다. 셀은 정보를 저장하는 전자 회로이다.
비휘발성 메모리(non-volatile memory, NVM) 디바이스들은 이들의 개선된 판독/기록 성능 및 최소 레이턴시로 인해 통상적으로 사용된다. 이들은 또한 이들의 판독/기록 레이턴시 성능으로 인해 메모리 및 저장 시스템들로 매우 대중적이다. NVM 디바이스의 일 유형은 소거 동작을 수행하지 않고 기존의 데이터가 새로운 데이터로 대체될 수 있게 할 수 있는 상 변화 메모리(phase change memory, PCM)와 같은 제자리(in-place) 데이터 대체를 수행한다. NVM 디바이스에서 성능 증가를 달성하는 하나의 방법은 동일한 메모리 유닛에 이미 저장된 데이터와 상이한 새로운 데이터의 서브세트만을 기록하는 것이다. 메모리 유닛에 현재 저장된 데이터를 결정하기 위해, 메모리 서브시스템은 기록 동작 전에 사전 판독 동작을 수행할 수 있다. 메모리 서브시스템은 사전 판독 동작 동안 획득된 데이터를 기록 동작 동안 저장될 새로운 데이터와 비교할 수 있다. 따라서, 사전 판독 동작의 정확도가 기록 동작의 정확도 및 전체 메모리 디바이스의 신뢰도에 중요하다.
판독 동작과 마찬가지로, 사전 판독 동작들은 사전 판독 전압 레벨을 사용하여 수행되며, 이는 사전 판독 동작에 의해 획득된 데이터의 에러율에 영향을 미칠 수 있다. 특정 메모리 유형들에 대해(즉, 특정 유형들의 저장 매체들을 사용하는 메모리 서브시스템들에 대해), 에러율은 시간에 따라 변할 수 있다. 특히, 일부 비휘발성 메모리들은 시간의 함수로서 이동하는 임계 전압(Vt) 분포를 갖는다. 주어진 사전 판독 레벨(즉, 사전 판독 동작의 일부로서 메모리 셀에 인가되는 전압)에서, Vt 분포가 이동한다면, 특정 신뢰도 통계들이 또한 영향을 받을 수 있다. 신뢰도 통계의 일례는 원시 비트 에러율(raw bit error rate, RBER)이다. RBER은 메모리 서브시스템의 데이터 유닛에 저장된 모든 데이터 비트 수에 대한 에러 비트 수의 비로서 정의될 수 있으며, 여기서 데이터 유닛은 전체 메모리 서브시스템, 메모리 디바이스의 다이, 코드워드들의 집합, 메모리 디바이스 페이지들의 집합, 또는 메모리 디바이스 블록들의 집합, 또는 메모리 서브시스템의 임의의 다른 유의한 부분일 수 있다. 시간 인스턴스에서의 임의의 Vt 분포에 대해, 예상 RBER을 최소화하는 최적의 사전 판독 전압 레벨(또는 사전 판독 레벨 범위)이 있을 수 있다. 특히, Vt 분포 및 RBER은 데이터 유닛이 프로그래밍된 이후의 시간(즉, 데이터가 데이터 유닛에 기록된 이후 지나는 시구간)의 함수일 수 있다. 단일 사전 판독 전압 레벨은 RBER의 이러한 시변 특성, 뿐만 아니라 메모리에서의 다른 노이즈 메커니즘들로 인해, 특정 시스템 신뢰도 목표들을 충족시키는 에러율을 달성하기에 충분하지 않을 수 있다.
종래, 사전 판독 동작들은 고정 사전 판독 전압 레벨을 사용하여 수행된다. 예를 들어, 사전 판독 전압 레벨은 데이터가 데이터 유닛에 프로그래밍된 밀리초 내에 데이터가 판독될 때 적절한 데이터를 산출할 수 있다. 그러나, 사전 판독 전압 레벨이 업데이트되지 않기 때문에, 이는 데이터가 데이터 유닛에 프로그래밍된 후 수 분 또는 수 시간 후에 사전 기록 동작이 발생할 때 수용가능한 판독 결과들을 산출하지 못할 수 있다. 이 경우, 종래의 해결책은 메모리 디바이스로부터 데이터를 판독하고 이를 메모리 서브시스템의 제어기로 전달하는 것이다. 그 후, 제어기는 사전 판독 동작에 의해 획득된 데이터에서의 에러들을 디코딩하고 정정하기 위해 에러 핸들링 메커니즘들을 사용할 수 있다. 그 후, 제어기는 디코딩된 데이터를 새로운 데이터와 비교할 수 있고, 상이한 데이터의 비트들을 결정할 수 있다. 이 접근법은 사전 판독 동작에 적용 불가능한 사전 판독 전압 레벨의 사용으로 인한 에러들을 포함할 수 있는 데이터를 정정할 수 있지만, 이 접근법은 제어기에 의해 행해진 추가 처리로 인해 메모리 서브시스템 제어기 상에 오버헤드를 도입할 수 있다. 추가적으로, 메모리 디바이스의 레이턴시가 제어기의 대역폭을 추가로 소비하는 제어기로 데이터를 전달하는 추가 단계들로 인해 증가할 수 있어, 제어기 스루풋의 저하를 초래할 수 있다.
본 개시는 사전 판독 동작들을 위한 가변 사전 판독 전압 레벨에 기초하여 비휘발성 메모리 디바이스들 내의 데이터 유닛들에 대한 기록 동작들을 지원함으로써 상기한 결점들과 다른 결점들을 해결한다. 구현예들에서, 메모리 서브시스템이 메모리 디바이스의 세그먼트에 새로운 데이터를 저장하기 위한 기록 요청을 수신할 때, 메모리 서브시스템은 기록 동작을 수행하기 전에 사전 판독 동작을 수행할 수 있다. 메모리 서브시스템은 사전 판독 동작을 수행하여 세그먼트에 현재 저장된 데이터를 획득하고, 현재 저장된 데이터를 기록 요청과 함께 수신된 데이터와 비교하며, 그 후 세그먼트에 이미 저장된 것과 상이한 데이터의 비트들만을 기록할 수 있다. 세그먼트는 메모리 디바이스의 하나 이상의 데이터 유닛을 지칭할 수 있고, 각 데이터 유닛은 기록 동작이 수행될 수 있는 최소량의 메모리를 나타낼 수 있다.
구현예에서, 사전 판독 동작은 데이터가 세그먼트에 프로그래밍되거나 저장된 마지막 시간에 기초하여 결정될 수 있는 사전 판독 전압 레벨을 사용하여 수행될 수 있다. 이 경우, 메모리 서브시스템은 세그먼트에 대한 기록 대 기록 시간 간격을 결정할 수 있고, 사전 판독 동작을 수행할 때 사용될 대응하는 사전 판독 전압 레벨을 결정할 수 있다. 기록 대 기록 시간 간격은 데이터가 세그먼트에 기록된 마지막 시간(예를 들어, 세그먼트와 연관된 타임 스탬프를 판독하는 것에 의함)과 세그먼트에 대해 기록 요청이 수신된 시간 사이의 시간 간격을 지칭할 수 있다.
세그먼트에 대한 기록 대 기록(W2W) 시간 간격이 결정될 때, 메모리 서브시스템은 W2W 시간 간격이 메모리 디바이스의 대응하는 제1 사전 판독 전압 레벨을 갖는 제1 W2W 시간 간격 범위 내에 속하는지 여부를 결정함으로써 사전 판독 전압 레벨을 결정할 수 있다. 구현예에서, 메모리 디바이스는 다수의 W2W 시간 간격 범위들을 가질 수 있으며, 각 범위는 대응하는 사전 판독 전압 레벨과 연관된다. 세그먼트의 W2W 시간 간격이 제1 W2W 시간 간격 범위 내에 속하는 경우, 제1 사전 판독 전압이 사전 판독 동작을 수행하는 데 사용될 수 있다.
사전 판독 전압 레벨이 세그먼트의 W2W 시간 간격에 기초하여 결정될 때, 메모리 시스템은 세그먼트에 현재 저장된 데이터를 획득하기 위해, 결정된 사전 판독 전압을 사용하여 사전 판독 동작을 수행할 수 있다. 그 후, 메모리 시스템은 획득된 데이터를 세그먼트에 저장될 기록 요청과 함께 수신된 새로운 데이터와 비교할 수 있다. 그 후, 메모리 서브시스템은 세그먼트에 현재 저장된 기존 데이터의 대응하는 비트들과 상이한 새로운 데이터의 비트들을 세그먼트에 기록하도록 진행할 수 있다.
기록 동작을 수행하기 전에 사전 판독 동작을 수행할 때 가변 사전 판독 전압 레벨을 지원하는 본원에서 설명되는 기술들은 NVM 디바이스들의 전체 성능 개선을 가능하게 한다. 메모리 셀들의 전압 분포가 빈번하게 시프트되는 메모리 디바이스들에서, 통과하는 사전 판독 전압 레벨은 데이터 유닛이 프로그래밍된 시간에 기초하여 상당히 변할 수 있다. 이에 따라, 데이터 유닛이 프로그래밍된 이후 경과된 시간에 기초하여 데이터 유닛의 사전 판독 동작들을 위한 가변 사전 판독 전압 레벨을 가짐으로써, 사전 판독 동작의 신뢰도 및 정확도는 보통 사전 판독 전압을 정정하기 위해 시간 소모적인 판독 에러 핸들링 모듈을 트리거할 필요 없이 상당히 증가할 수 있다. 또한, 이 접근법은 메모리 디바이스에서 구현될 수 있기 때문에, 에러 정정 메커니즘을 수행하기 위해 메모리 서브시스템의 제어기에 데이터를 전달할 필요가 없다. 데이터 전달 단계를 제거하는 것은 제어기에 의해 행해진 처리의 추가적인 오버헤드를 제거할 뿐만 아니라, 각 기록 동작으로 제어기와 메모리 디바이스 사이에서 왕복으로 데이터를 전달함으로써 발생할 수 있는 제어기 대역폭 소비를 감소시킨다. 이에 따라, 데이터 유닛의 사전 판독 동작을 수행할 때, 데이터 유닛의 최종 프로그램 시간에 기초하여, 가변 사전 판독 전압 레벨을 지원하는 본원에서 설명되는 기술들은 비휘발성 메모리 디바이스들에서의 차동 기록 동작의 신뢰도를 향상시키면서 제어기에 의한 추가 처리의 오버헤드를 감소시키며, 이는 메모리 서브시스템의 전체 성능을 개선한다.
도 1은 본 개시의 일부 실시예들에 따른 메모리 서브시스템(110)을 포함하는 예시적인 컴퓨팅 시스템(100)을 도시한다. 메모리 서브시스템(110)은 하나 이상의 휘발성 메모리 디바이스(예를 들어, 메모리 디바이스(140)), 하나 이상의 비휘발성 메모리 디바이스(예를 들어, 메모리 디바이스(130)), 또는 이들의 조합과 같은 매체들을 포함할 수 있다.
메모리 서브시스템(110)은 저장 디바이스, 메모리 모듈, 또는 저장 디바이스와 메모리 모듈의 하이브리드일 수 있다. 저장 디바이스의 예들은 SSD(solid-state drive), 플래시 드라이브, USB(universal serial bus) 플래시 드라이브, eMMC(embedded Multi-Media Controller) 드라이브, UFS(Universal Flash Storage) 드라이브, SD(secure digital) 카드, 및 HDD(hard disk drive)를 포함한다. 메모리 모듈들의 예들은 듀얼 인라인 메모리 모듈(DIMM), 소형 아웃라인 DIMM(SO-DIMM), 및 다양한 유형들의 비휘발성 듀얼 인라인 메모리 모듈(NVDIMM)들을 포함한다.
컴퓨팅 시스템(100)은 데스크탑 컴퓨터, 랩탑 컴퓨터, 네트워크 서버, 모바일 디바이스, 비히클(예를 들어, 비행기, 드론, 열차, 자동차, 또는 다른 운송 수단), 사물 인터넷(IoT) 가능 디바이스, 내장형 컴퓨터(예를 들어, 차량, 산업 장비, 또는 네트워크 상용 디바이스에 포함된 것), 또는 메모리 및 처리 디바이스를 포함하는 임의의 다른 컴퓨팅 디바이스와 같은 컴퓨팅 디바이스를 포함할 수 있다.
컴퓨팅 시스템(100)은 하나 이상의 메모리 서브시스템(110)에 결합되는 호스트 시스템(120)을 포함한다. 일부 실시예들에서, 호스트 시스템(120)은 상이한 유형들의 메모리 서브시스템(110)에 결합된다. 도 1은 하나의 메모리 서브시스템(110)에 결합된 호스트 시스템(120)의 일례를 도시한다. 본원에서 사용될 때, "~에 결합된(coupled to)"은 일반적으로 전기적, 광학적, 자기적 등과 같은 연결들을 포함하여, 유선이든 무선이든, 간접 통신 연결 또는 직접 통신 연결(예를 들어, 개재 구성요소 없이)일 수 있는, 구성요소들 사이의 연결을 지칭한다.
호스트 시스템(120)은 프로세서 칩셋, 및 프로세서 칩셋에 의해 실행되는 소프트웨어 스택을 포함할 수 있다. 프로세서 칩셋은 하나 이상의 코어, 하나 이상의 캐시, 메모리 제어기(예를 들어, NVDIMM 제어기), 및 저장 프로토콜 제어기(예를 들어, PCIe 제어기, SATA 제어기)를 포함할 수 있다. 호스트 시스템(120)은 메모리 서브시스템(110)을 사용하여, 예를 들어, 메모리 서브시스템(110)에 데이터를 기록하고 메모리 서브시스템(110)으로부터 데이터를 판독한다.
호스트 시스템(120)은 물리적 호스트 인터페이스를 통해 메모리 서브시스템(110)에 결합될 수 있다. 물리적 호스트 인터페이스의 예들은 SATA(serial advanced technology attachment) 인터페이스, PCIe(peripheral component Interconnect express) 인터페이스, USB(universal serial bus) 인터페이스, 파이버 채널, 직렬 접속 SCSI(Serial Attached SCSI, SAS), DDR(double data rate) 메모리 버스, SCSI(Small Computer System Interface), DIMM(dual in-line memory module) 인터페이스(예를 들어, DDR(Double Data Rate) 등을 지원하는 DIMM 소켓 인터페이스) 등을 포함하지만, 이에 제한되지는 않는다. 물리적 호스트 인터페이스는 호스트 시스템(120)과 메모리 서브시스템(110) 사이에서 데이터를 송신하는 데 사용될 수 있다. 호스트 시스템(120)은 또한 메모리 서브시스템(110)이 PCIe 인터페이스에 의해 호스트 시스템(120)과 결합될 때 NVMe(NVM Express) 인터페이스를 이용하여 구성요소들(예를 들어, 메모리 디바이스들(130))에 액세스할 수 있다. 물리적 호스트 인터페이스는 메모리 서브시스템(110)과 호스트 시스템(120) 사이에서 제어, 어드레스, 데이터 및 다른 신호들을 전달하기 위한 인터페이스를 제공할 수 있다. 도 1은 예로서 메모리 서브시스템(110)을 도시한다. 일반적으로, 호스트 시스템(120)은 동일한 통신 연결, 다수의 별개의 통신 연결들, 및/또는 통신 연결들의 조합을 통해 다수의 메모리 서브시스템들에 액세스할 수 있다.
메모리 디바이스들(130, 140)은 상이한 유형들의 비휘발성 메모리 디바이스들 및/또는 휘발성 메모리 디바이스들의 임의의 조합을 포함할 수 있다. 휘발성 메모리 디바이스들(예를 들어, 메모리 디바이스(140))은 랜덤 액세스 메모리(RAM), 이를테면 동적 랜덤 액세스 메모리(DRAM), 및 동기식 동적 랜덤 액세스 메모리(SDRAM)일 수 있지만, 이에 제한되지는 않는다.
비휘발성 메모리 디바이스들(예를 들어, 메모리 디바이스(130))의 일부 예들은 부정 곱(NAND) 유형 플래시 메모리 및 제자리 기록 메모리, 이를테면 3차원 크로스 포인트("3D 크로스-포인트") 메모리를 포함한다. 3D 크로스 포인트 메모리 디바이스는 적층 가능한 크로스 그리드 데이터 액세스 어레이와 함께, 벌크 저항의 변화에 기초하여 비트 저장을 수행할 수 있는 비휘발성 메모리 셀들의 크로스 포인트 어레이이다. 또한, 크로스-포인트 비휘발성 메모리는 많은 플래시 기반 메모리들과 달리, 제자리 기록 동작을 수행할 수 있으며, 이때 비휘발성 메모리 셀은 비휘발성 메모리 셀이 사전에 소거되지 않고도 프로그래밍될 수 있다. NAND형 플래시 메모리는 예를 들어, 2차원 NAND(2D NAND) 및 3차원 NAND를 포함한다.
메모리 디바이스들(130) 각각은 메모리 셀들의 하나 이상의 어레이를 포함할 수 있다. 하나의 유형의 메모리 셀, 예를 들어, 단일 레벨 셀(SLC)들은 셀당 1 비트를 저장할 수 있다. 다중 레벨 셀(MLC)들, 삼중 레벨 셀(TLC)들, 및 사중 레벨 셀(QLC)들과 같은 다른 유형들의 메모리 셀들은 셀당 다수의 비트들을 저장할 수 있다. 일부 실시예들에서, 메모리 디바이스들(130) 각각은 SLC들, MLC들, TLC들, QLC들, 또는 이들의 임의의 조합과 같은 메모리 셀들의 하나 이상의 어레이를 포함할 수 있다. 일부 실시예들에서, 특정 메모리 디바이스는 메모리 셀들의 SLC 부분, 및 MLC 부분, TLC 부분, 또는 QLC 부분을 포함할 수 있다. 메모리 디바이스들(130)의 메모리 셀들은 데이터를 저장하는 데 사용되는 메모리 디바이스의 논리 유닛을 지칭할 수 있는 페이지들로서 그룹화될 수 있다. 일부 유형들의 메모리(예를 들어, NAND)로, 페이지들은 블록들을 형성하도록 그룹화될 수 있다. 일부 유형들의 메모리, 이를테면 3D 크로스 포인트는 다이들 및 채널들에 걸쳐 페이지들을 그룹화하여, 관리 유닛(management unit, MU)들을 형성할 수 있다.
비휘발성 메모리 셀들의 3D 크로스-포인트 어레이 및 NAND 유형 메모리(예를 들어,2D NAND, 3D NAND)와 같은 비휘발성 메모리 디바이스들이 설명되지만, 메모리 디바이스(130)는 임의의 다른 유형의 비휘발성 메모리, 이를테면 판독 전용 메모리(ROM), 상 변화 메모리(PCM), 자기 선택 메모리, 다른 칼코겐화물 기반 메모리들, 강유전성 랜덤 액세스 메모리(FeRAM), 강유전성 트랜지스터 랜덤 액세스 메모리(FeTRAM), 스핀 전달 토크(STT)-MRAM, 전도성 브릿징 RAM(CBRAM), 저항성 랜덤 액세스 메모리(RRAM), 산화물 기반 RRAM(OxRAM), 부정 합(NOR) 플래시 메모리, 및 전기 소거가능 프로그래머블 판독 전용 메모리(EEPROM)에 기초할 수 있다.
메모리 서브시스템 제어기(115)(또는 간략함을 위해 제어기(115))는 메모리 디바이스들(130)과 통신하여, 메모리 디바이스들(130)에서 데이터를 판독하거나, 데이터를 기록하거나, 또는 데이터를 소거하는 것과 같은 동작들, 및 다른 그러한 동작들을 수행한다. 메모리 서브시스템 제어기(115)는 하나 이상의 집적 회로 및/또는 개별 구성요소, 버퍼 메모리, 또는 이들의 조합과 같은 하드웨어를 포함할 수 있다. 하드웨어는 본원에서 설명되는 동작들을 수행하기 위한 전용(즉, 하드-코딩된) 로직을 갖는 디지털 회로부를 포함할 수 있다. 메모리 서브시스템 제어기(115)는 마이크로 제어기, 특수 목적 논리 회로부(예를 들어, 필드 프로그래머블 게이트 어레이(FPGA), 용도 특정 집적 회로(ASIC) 등), 또는 다른 적합한 프로세서일 수 있다.
메모리 서브시스템 제어기(115)는 로컬 메모리(119)에 저장된 명령어들을 실행하도록 구성된 프로세서(117)(예를 들어, 처리 디바이스)를 포함할 수 있다. 도시된 예에서, 메모리 서브시스템 제어기(115)의 로컬 메모리(119)는 메모리 서브시스템(110)과 호스트 시스템(120) 사이의 통신을 핸들링하는 것을 포함하여, 메모리 서브시스템(110)의 동작을 제어하는 다양한 프로세스들, 동작들, 논리 흐름들, 및 루틴들을 수행하기 위한 명령어들을 저장하도록 구성된 임베디드 메모리를 포함한다.
일부 실시예들에서, 로컬 메모리(119)는 메모리 포인터들, 페칭된 데이터 등을 저장하는 메모리 레지스터들을 포함할 수 있다. 로컬 메모리(119)는 또한 마이크로 코드를 저장하기 위한 판독 전용 메모리(ROM)를 포함할 수 있다. 도 1에서의 예시적인 메모리 서브시스템(110)은 메모리 서브시스템 제어기(115)를 포함하는 것으로 도시되었지만, 본 개시의 또 다른 실시예에서, 메모리 서브시스템(110)은 메모리 서브시스템 제어기(115)를 포함하지 않고, 대신 외부 제어(예를 들어, 외부 호스트에 의해 또는 메모리 서브시스템과 별개인 프로세서 또는 제어기에 의해 제공되는)에 의존할 수 있다.
일반적으로, 메모리 서브시스템 제어기(115)는 호스트 시스템(120)으로부터 커맨드들 또는 동작들을 수신할 수 있고 커맨드들 또는 동작들을 메모리 디바이스들(130)에 대한 목적하는 액세스를 달성하기 위한 명령어들 또는 적절한 커맨드들로 변환할 수 있다. 메모리 서브시스템 제어기(115)는 웨어 레벨링 동작들, 가비지 수집 동작들, 오류 검출 및 오류 정정 코드(error-correcting code, ECC) 동작들, 암호화 동작들, 캐싱 동작들, 및 메모리 디바이스들(130)과 연관되는 논리적 어드레스(예를 들어, 논리적 블록 어드레스(logical block address, LBA))와 물리적 어드레스(예를 들어, 물리적 MU 어드레스, 물리적 블록 어드레스) 사이의 어드레스 변환과 같은 다른 동작들을 담당할 수 있다. 메모리 서브시스템 제어기(115)는 물리적 호스트 인터페이스를 통해 호스트 시스템(120)과 통신하기 위한 호스트 인터페이스 회로부를 더 포함할 수 있다. 호스트 인터페이스 회로부는 호스트 시스템으로부터 수신된 커맨드들을 메모리 디바이스들(130)에 액세스하기 위한 커맨드 명령어들로 변환할뿐만 아니라, 메모리 디바이스들(130)과 연관된 응답들을 호스트 시스템(120)을 위한 정보로 변환할 수도 있다.
메모리 서브시스템(110)은 또한 도시되지 않은 추가 회로부 또는 구성요소들을 포함할 수 있다. 일부 실시예들에서, 메모리 서브시스템(110)은 메모리 디바이스들(130)에 액세스하기 위해 메모리 서브시스템 제어기(115)로부터 어드레스를 수신하고 어드레스를 디코딩할 수 있는 어드레스 회로부(예를 들어, 로우 디코더 및 컬럼 디코더) 및 캐시 또는 버퍼(예를 들어, DRAM)를 포함할 수 있다.
일부 실시예들에서, 메모리 디바이스들(130)은 메모리 디바이스들(130)의 하나 이상의 메모리 셀 상에서 동작들을 실행하기 위해 메모리 서브시스템 제어기(115)와 함께 동작하는 로컬 매체 제어기들(135)을 포함한다. 외부 제어기(예를 들어, 메모리 서브시스템 제어기(115))는 메모리 디바이스(130)를 외부에서 관리할 수 있다(예를 들어, 메모리 디바이스(130) 상의 매체 관리 동작들을 수행할 수 있다). 일부 실시예들에서, 메모리 디바이스(130)는 관리 메모리 디바이스이며, 이는 동일한 메모리 디바이스 패키지 내의 매체 관리를 위해 로컬 제어기(예를 들어, 로컬 제어기(135))와 조합된 원시 메모리 디바이스이다. 관리 메모리 디바이스의 예는 관리 NAND(MNAND) 디바이스이다.
메모리 서브시스템(110)은 사전 판독 동작들을 위한 가변 사전 판독 전압 레벨에 기초하여 비휘발성 메모리 디바이스들 내의 데이터 유닛들에 대한 기록 동작들을 지원하기 위해 사용될 수 있는 사전 판독 동작 관리 구성요소(113)를 포함한다. 구현예들에서, 호스트 시스템(120)이 메모리 디바이스들(130-140)의 세그먼트에 특정 데이터를 저장하기 위해 메모리 서브시스템(110)에 기록 요청을 발송할 때, 메모리 서브시스템(110)은 요청된 기록 동작을 수행하기 전에 사전 판독 동작을 수행할 수 있다. 세그먼트는 예를 들어, 코드워드 집합 또는 관리 유닛과 같은 메모리 디바이스의 임의의 물리적 또는 논리적 부분일 수 있다. 세그먼트는 또한 메모리 디바이스의 하나 이상의 데이터 유닛을 지칭할 수 있고, 각 데이터 유닛은 기록 동작이 수행될 수 있는 메모리의 최소량을 나타낼 수 있다.
특정 구현예들에서, 사전 판독 동작은 세그먼트에 현재 저장된 데이터를 획득하기 위해 사용될 수 있어서, 현재 데이터는 현재 저장된 데이터의 대응하는 비트들과 상이한 새로운 데이터의 비트들을 결정하기 위해 저장될 것이 요청된 새로운 데이터와 비교될 수 있다. 이 경우, 메모리 서브시스템(110)은 세그먼트 내의 현재 저장된 데이터와 상이한 데이터의 비트들만을 기록할 수 있다. 세그먼트에 이미 저장된 것과 상이한 새로운 데이터의 비트들을 결정한 후에, 메모리 서브시스템(110)은 세그먼트에 새로운 데이터의 결정된 비트들을 저장하기 위한 기록 동작을 수행하도록 진행할 수 있다.
구현예에서, 사전 판독 동작은 데이터가 세그먼트에 프로그래밍되거나 저장된 마지막 시간에 기초하여 사전 판독 동작 관리 구성요소(113)에 의해 결정될 수 있는 특정 사전 판독 전압 레벨을 사용하여 수행될 수 있다. 예를 들어, 사전 판독 동작 관리 구성요소(113)는 세그먼트에 대한 기록 대 기록 시간 간격을 결정할 수 있고, 사전 판독 동작을 수행할 때 사용될 대응하는 사전 판독 전압 레벨을 결정할 수 있다. 특정 구현예들에서, 기록 대 기록 시간 간격은 데이터가 세그먼트에 기록된 마지막 시간과 세그먼트에 대해 기록 요청이 수신된 시간 사이의 시간 간격을 지칭할 수 있다. 예를 들어, 사전 판독 동작 관리 구성요소(113)는 세그먼트에 대한 W2W 시간 간격을 결정하기 위해, 데이터가 세그먼트 또는 세그먼트들의 그룹에 기록된 마지막 시간을 나타내는 타임 스탬프 값을 저장할 수 있다.
세그먼트에 대한 기록 대 기록(W2W) 시간 간격이 결정될 때, 사전 판독 동작 관리 구성요소(113)는 W2W 시간 간격이 메모리 디바이스(130-140)의 대응하는 제1 사전 판독 전압 레벨을 갖는 제1 W2W 시간 간격 범위 내에 속하는지 여부를 결정함으로써 사전 판독 전압 레벨을 결정할 수 있다. 구현예에서, 메모리 디바이스(130)는 각 범위가 대응하는 사전 판독 전압 레벨이 판독 동작에 사용될 때 최소 에러율을 초래하는 전압 분포를 나타내는 두 개의 W2W 시간 간격 범위들을 가질 수 있다. 이 경우, 세그먼트의 W2W 시간 간격이 제1 W2W 시간 간격 범위 내에 속하는 경우, 제1 사전 판독 전압이 사전 판독 동작을 수행하는 데 사용될 수 있다. 한편, 세그먼트의 W2W 시간 간격이 제2 W2W 시간 간격 범위 내에 속하는 경우, 제2 사전 판독 전압이 사전 판독 동작을 수행하는 데 사용될 수 있다.
사전 판독 전압 레벨이 세그먼트의 W2W 시간 간격에 기초하여 결정될 때, 사전 판독 동작 관리 구성요소(113)는 세그먼트에 현재 저장된 데이터를 획득하기 위해, 결정된 사전 판독 전압을 사용하여 사전 판독 동작을 수행할 수 있다. 그 후, 사전 판독 동작 관리 구성요소(113)는 획득된 데이터를 세그먼트에 저장될 기록 요청과 함께 수신된 새로운 데이터와 비교할 수 있다. 특정 비휘발성 메모리 디바이스들(예를 들어, 3D 크로스 포인트 메모리 디바이스)에서, 기록 동작은 메모리의 세그먼트에 현재 저장된 것과 상이한 데이터만이 기록될 수 있도록 수행될 수 있다. 예에서, 사전 판독 동작 관리 구성요소(113)는 세그먼트에 현재 저장된 데이터의 각 비트를 세그먼트에 저장될 새로운 데이터의 대응하는 비트와 비교할 수 있고, 두 개의 비트들이 상이하다면, 새로운 데이터의 대응하는 비트는 상이한 것으로서 마킹될 수 있다. 두 개의 비트들이 동일하다면, 새로운 데이터의 대응하는 비트는 동일한 것으로서 마킹될 수 있다. 모든 비트들이 비교되고 관련된 것으로 마킹될 때, 상이한 것으로서 마킹된 새로운 데이터의 비트만 세그먼트에 기록될 수 있다.
도 2는 본 개시의 일부 실시예들에 따른 두 사전 판독 전압 레벨들에 대한 기록 대 기록(W2W) 시간 간격들의 함수로서 비트 에러율(BER)을 도시한 그래프(200)이다. 본원에서 설명될 때, Vt 분포들은 시간에 따라 시프트될 수 있다. 예를 들어, 사전 판독 레벨 1과 같은 주어진 사전 판독 전압 레벨에 대해, 이러한 사전 판독 전압을 사용하여 사전 판독 동작들이 수행될 때 경험되는 비트 에러율은 Vt 분포들의 본질적인 이동으로 인해 시간의 함수로서 변할 수 있다. 유사하게, 사전 판독 레벨 2의 대응하는 비트 에러율들도 또한 시간의 함수로서 변할 수 있다. 이들 또는 다른 상황들에서, Vt 분포 및 비트 에러율은 주어진 데이터 유닛이 마지막으로 프로그래밍된 이후 경과된 시간을 나타내는 W2W 시간 간격의 함수일 수 있다. 그래프(200)는 두 개의 사전 판독 전압 레벨들 각각이 W2W 범위(210) 및 W2W 범위(220)와 같은 상이한 W2W 범위들에 대응한다는 것을 나타내며, 이들은 메모리 서브시스템 사양으로부터의 설계 타겟들일 수 있다. 다른 실시예들에서, 임의의 다른 수의 W2W 시간 간격 범위 및 연관된 사전 판독 전압 레벨이 있을 수 있다.
그래프(200)에서, 측정된 BER은 지정된 사전 판독 전압 레벨을 사용하여 수행되는 사전 판독 동작들에 대해 디스플레이된다. 예를 들어, BER 곡선(212)은 상이한 W2W 시간 간격들의 세그먼트들에 대해 사전 판독 레벨 1을 사용하여 수행된 사전 판독 동작들에 대해 측정된 BER을 나타내고, BER 곡선(222)은 상이한 W2W 시간 간격들의 세그먼트들에 대해 사전 판독 레벨 2을 사용하여 수행된 사전 판독 동작들에 대해 측정된 BER을 나타낸다. 그래프(200)로부터, 사전 판독 레벨 1을 사용하는 것은 W2W 범위(210) 내에 속하는 W2W 시간 간격들을 갖는 메모리 구성요소의 세그먼트들에 대해 수행되는 사전 판독 동작들에 대해 더 낮은 BER을 초래하고, 사전 판독 레벨 2을 사용하는 것은 W2W 범위(220) 내에 속하는 W2W 시간 간격들을 갖는 메모리 디바이스의 세그먼트들에 대해 수행되는 사전 판독 동작들에 대해 더 낮은 BER을 초래한다는 것이 명백하다. 예시적인 예에서, W2W 범위(210)는 T1L(예를 들어, 1밀리초)과 T1R(예를 들어, 1분) 사이의 시간 간격들을 포함할 수 있다. 이 경우에, 1 밀리초 내지 1분 전에 임의의 곳에서 프로그래밍된 세그먼트들은 사전 판독 동작을 수행하기 위해 사전 판독 전압 레벨 1을 사용할 수 있다. 한편, W2W 범위(220)는 T2L(예를 들어, 1초)과 T1R(예를 들어, 10시간) 사이의 시간 간격들을 포함할 수 있다. 이 경우에, 1초 내지 10시간 전에 임의의 곳에서 프로그래밍된 세그먼트들은 사전 판독 동작을 수행하기 위해 사전 판독 전압 레벨 2를 사용할 수 있다. 이 예에서, 메모리 서브시스템(110)은 각 세그먼트가 10시간의 최대 W2W 시간 간격을 가질 수 있도록 매 10시간마다 세그먼트들에 대한 기록 요청을 트리거하도록 구성될 수 있다. 추가적으로, 세그먼트에 대한 주어진 W2W 시간 간격이 양 W2W 범위들 내에 속하는 시간인 경우(예를 들어, W2W 시간 간격이 1초 초과 및 1분 미만임), 메모리 서브시스템(110)은 사전 판독 전압 레벨 1 또는 사전 판독 전압 레벨 2 중 어느 하나가 세그먼트의 사전 판독 동작을 위해 사용될 수 있다고 결정할 수 있는데, 이는 어느 하나의 사전 판독 전압 레벨이 수용가능한 BER을 산출할 수 있기 때문이다. 예를 들어, 수용가능한 BER은 메모리 디바이스의 에러 제어 코딩(error control coding, ECC) 능력들 내에 있는 에러율을 지칭할 수 있다. 그 후, 메모리 서브시스템(110)은 세그먼트에 대한 사전 판독 동작을 수행하기 위해 사전 판독 전압 레벨 1 또는 사전 판독 전압 레벨 2를 사용할 수 있다.
그래프(200)는 또한 단일 사전 판독 레벨(예를 들어, 사전 판독 전압 레벨 2)에 대해, BER이 더 낮은 W2W 시간 간격들(즉, W2W 시간들 < T2L) 및 더 높은 W2W 시간 간격들(즉, W2W 시간들 > T2R)에서 증가한다는 것을 예시한다. 일 구현예에서, 사전 판독 전압 레벨 1은 최저 전압이고, 사전 판독 전압 레벨 2는 사전 판독 전압 레벨 1보다 더 높은 전압을 갖는다. 사전 판독 전압 레벨 1 및 사전 판독 전압 레벨 2의 값들은 메모리 디바이스의 생산 동안 설정될 수 있지만, 메모리 디바이스의 수명 동안 선택적으로 조절될 수 있다.
도 3은 본 개시의 일부 실시예들에 따른, 데이터가 메모리 디바이스의 데이터 유닛들에 마지막으로 기록되는 때에 기초하여 데이터 블록들에 대한 타임스탬프들을 관리하는 프로세스를 도시한 블록도(300)이다. 일 구현예에서, 메모리 디바이스(130)는 데이터 블록들(310, 350)을 포함할 수 있다. 데이터 블록은 메모리 디바이스(130) 내의 데이터 유닛들의 세트를 지칭할 수 있다. 예를 들어, 데이터 블록은 4000개의 데이터 유닛들을 포함하는 메모리의 영역을 나타낼 수 있다. 이 예에서, 데이터 유닛은 메모리의 4000 바이트 청크를 나타낼 수 있다. 다른 구현예들에서, 데이터 유닛은 데이터를 저장하기 위해 사용되는 메모리 디바이스의 유닛을 지칭할 수 있고, 하나 이상의 메모리 페이지를 포함할 수 있다. 각 데이터 유닛은 상이한 시간에 프로그래밍될 수 있다.
데이터 블록(310)은 데이터 유닛들(311, 313)을 포함하고, 데이터 블록(350)은 데이터 유닛들(351, 353)을 포함한다. 메모리 디바이스(130)는 데이터 블록(310)의 데이터 유닛에 대해 수행된 가장 최근의 기록 동작의 시간을 추적하기 위해 사용될 수 있는 타임 스탬프(340)를 더 포함할 수 있다. 메모리 디바이스(130)는 또한 데이터 블록(350)의 데이터 유닛에 대해 수행된 가장 최근의 기록 동작의 시간을 추적하기 위해 사용될 수 있는 타임 스탬프(360)를 포함할 수 있다.
동작 331에서, 처리 로직은 데이터 유닛(311)을 식별하는 기록 요청을 수신할 수 있다. 기록 요청은 데이터 유닛(311)에 기록될 새로운 데이터를 포함할 수 있다. 그 후, 처리 로직은 기록 동작을 수행할 수 있고, 데이터 유닛(311)이 데이터 블록(310)과 연관되어 있다고 결정할 수 있으며, 이는 차례로 타임 스탬프(340)와 연관되어 있다. 동작 332에서, 처리 로직은 기록 동작 331이 메모리 디바이스(130)에서 수신된 시간을 나타내도록 타임 스탬프(340)를 업데이트할 수 있다. 이에 따라, 사전 판독 동작이 데이터 블록(310)의 임의의 데이터 유닛에 대해 수행될 준비가 될 때, 처리 로직은 타임 스탬프(340)를 판독하여, 데이터 유닛의 W2W 시간 간격을 타임 스탬프(340)에 기록된 시간 이후 경과된 시간(예를 들어, W2W 시간 간격 = 현재 시간 - 타임 스탬프(340)에 저장된 시간)으로서 결정할 수 있다.
동작 333에서, 처리 로직은 데이터 유닛(313)을 식별하고 데이터 유닛(313)에 기록될 새로운 데이터를 포함하는 기록 요청을 수신할 수 있다. 그 후, 처리 로직은 기록 동작을 수행할 수 있고, 데이터 유닛(313)이 데이터 블록(310)과 연관되어 있다고 결정할 수 있다. 동작 332에서 수행된 단계들과 유사하게, 처리 로직은 동작 334에서 기록 동작 333이 메모리 디바이스(130)에서 수신된 시간을 나타내도록 타임 스탬프(340)를 업데이트할 수 있으며, 이에 따라 타임 스탬프(340)는 데이터 블록(310)의 데이터 유닛에 대해 수행된 가장 최근의 기록 동작을 반영할 수 있음을 나타낸다.
동작 335에서, 처리 로직은 데이터 블록(350)의 데이터 유닛(351)을 식별하는 기록 요청을 수신할 수 있다. 기록 요청은 데이터 유닛(351)에 기록될 새로운 데이터를 포함할 수 있다. 그 후, 처리 로직은 기록 동작을 수행할 수 있고, 데이터 유닛(351)이 데이터 블록(350)과 연관되어 있다고 결정할 수 있으며, 이는 차례로 타임 스탬프(360)와 연관되어 있다. 동작 336에서, 처리 로직은 기록 동작 335이 메모리 디바이스(130)에서 수신된 시간을 나타내도록 타임 스탬프(360)를 업데이트할 수 있다. 이에 따라, 사전 판독 동작이 데이터 블록(350)의 임의의 데이터 유닛에 대해 수행될 준비가 될 때, 처리 로직은 타임 스탬프(360)를 판독하여, 데이터 유닛의 W2W 시간 간격을 타임 스탬프(360)에 기록된 시간 이후 경과된 시간(예를 들어, W2W 시간 간격 = 현재 시간 - 타임 스탬프(360)에 저장된 시간)으로서 결정할 수 있다.
동작 337에서, 처리 로직은 데이터 유닛(353)을 식별하고 데이터 유닛(353)에 기록될 새로운 데이터를 포함하는 기록 요청을 수신할 수 있다. 그 후, 처리 로직은 기록 동작을 수행할 수 있고, 데이터 유닛(353)이 데이터 블록(350)과 연관되어 있다고 결정할 수 있다. 동작 335에서 수행된 단계들과 유사하게, 처리 로직은 동작 338에서 기록 동작 337이 메모리 디바이스(130)에서 수신된 시간을 나타내도록 타임 스탬프(360)를 업데이트할 수 있으며, 이에 따라 타임 스탬프(360)는 대응하는 데이터 블록(350)의 데이터 유닛에 대해 수행된 가장 최근의 기록 동작을 반영할 수 있음을 나타낸다. 구현예들에서, 데이터 블록(310)이 소거될 때, 처리 로직은 타임 스탬프(340)의 값을 디폴트 값으로 리셋할 수 있으며, 이는 어떠한 데이터도 현재 데이터 블록(310) 상에 프로그래밍되지 않음을 나타내며, 이에 따라 데이터 블록(310) 내의 유닛에 대한 W2W 시간 간격이 최소값이어야 함을 나타낸다. 유사하게, 데이터 블록(350)이 소거될 때, 처리 로직은 타임 스탬프(360)의 값을 디폴트 값으로 리셋할 수 있으며, 이는 어떠한 데이터도 현재 데이터 블록(350) 상에 프로그래밍되지 않음을 나타낸다.
도 4는 본 개시의 일부 실시예들에 따른, 메모리 서브시스템에서 가변 사전 판독 전압 레벨을 사용하여 사전 판독 동작들을 관리하는 예시적인 방법의 흐름도이다. 방법(400)은 하드웨어(예를 들어, 프로세싱 디바이스, 회로, 전용 로직, 프로그램 가능한 로직, 마이크로 코드, 디바이스의 하드웨어, 집적 회로 등), 소프트웨어(예를 들어, 프로세싱 디바이스에 대해 운영 또는 실행되는 명령어들) 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 일부 실시예들에서, 방법(400)은 FIG 1의 사전 판독 동작 관리 구성요소(113)에 의해 수행된다. 특정 시퀀스 또는 순서로 도시되지만, 달리 특정되지 않는 한, 프로세스들의 순서는 수정될 수 있다. 이에 따라, 도시된 실시예들은 예들로서만 이해되어야 하고, 도시된 프로세스들은 상이한 순서로 수행될 수 있으며, 일부 프로세스들은 병렬적으로 수행될 수도 있다. 또한, 다양한 실시예들에서 하나 이상의 프로세스가 생략될 수도 있다. 이에 따라, 모든 프로세스들이 모든 실시예에서 요구되는 것은 아니다. 다른 프로세스 흐름들도 가능하다.
동작 410에서, 처리 로직은 호스트 시스템으로부터 기록 요청 ― 기록 요청은 메모리 디바이스의 세그먼트에 저장될 데이터를 식별함 ― 을 수신한다. 구현예들에서, 처리 로직은 본원에서 더 상세히 설명될 바와 같이, 세그먼트에 현재 저장된 데이터와 상이한 저장될 데이터의 서브세트를 식별하기 위해 기록 동작을 실행하기 전에 사전 판독 동작을 실행할 수 있다. 사전 판독 동작을 수행하기 위해, 처리 로직은 데이터가 세그먼트에 기록된 마지막 시간에 대응하는 사전 판독 전압 레벨을 결정할 수 있다.
동작 420에서, 처리 로직은 세그먼트에 대한 기록 대 기록(W2W) 시간 간격을 결정한다. 구현예들에서, W2W 시간 간격은 데이터가 세그먼트에 기록된 마지막 시간과 세그먼트에 대해 기록 요청이 수신된 시간 사이의 시간 간격을 지칭할 수 있다. 예에서, 데이터가 기록된 마지막 시간은 데이터가 세그먼트에 기록된 마지막 시간을 나타내는 메모리 디바이스에 저장된 타임 스탬프 값에 따라 결정될 수 있다. 다른 구현예들에서, W2W 시간 간격은 데이터가 데이터 유닛들의 그룹의 임의의 데이터 유닛(예를 들어, 데이터 유닛과 연관된 데이터 블록)에 기록된 마지막 시간과 데이터 유닛에 대해 기록 요청이 수신된 시간 사이의 시간 간격을 지칭할 수 있다. 구현예들에서, 메모리 디바이스는 다수의 데이터 블록을 포함할 수 있고, 각 데이터 블록은 다수의 데이터 유닛들을 포함할 수 있다. 각 데이터 블록에 대해, 처리 로직은 데이터가 데이터 블록 내의 데이터 유닛에 기록된 마지막 시간을 나타내는 대응하는 타임 스탬프 값을 저장할 수 있다.
동작 430에서, 처리 디바이스는 세그먼트의 W2W 시간 간격이 제1 사전 판독 전압 레벨에 대응하는 제1 W2W 시간 간격 범위 내에 속하는지 여부를 결정함으로써 사전 판독 전압 레벨을 결정한다. 구현예에서, 메모리 디바이스는 위에서 상세히 설명된 바와 같이, 각 범위가 대응하는 사전 판독 전압 레벨이 사전 판독 동작에 사용될 때 최소 에러율을 초래하는 전압 분포를 나타내는 다수의 W2W 시간 간격 범위들을 가질 수 있다.
동작 440에서, 세그먼트의 W2W 시간 간격이 제1 W2W 시간 간격 범위 내에 속한다고 결정 시, 처리 로직은 위에서 본원에서 더 상세히 설명된 바와 같이, 세그먼트에 현재 저장된 데이터를 획득하기 위한 사전 판독 동작을 수행하기 위해 제1 W2W 시간 간격 범위의 제1 사전 판독 전압을 사용한다. 특정 구현예들에서, 처리 로직은 사전 판독 동작 동안 판독된 데이터에 존재할 수 있는 에러들을 정정하기 위해 사전 판독 동작으로부터 획득된 데이터로 에러 핸들링 모듈을 실행할 수 있다. 예를 들어, 에러 핸들링 모듈은 사전 판독 동작에 대해 더 양호한 에러율을 산출하기 위해 에러 핸들링 모듈에 의해 결정되는 상이한 사전 판독 전압 레벨을 사용하여 사전 판독 동작을 다시 수행할 수 있다. 그 후, 처리 로직은 에러 핸들링 모듈에 의해 결정된 사전 판독 전압 레벨을 반영하도록 제1 W2W 간격 범위의 사전 판독 전압 레벨을 업데이트할 수 있다.
동작 450에서, 처리 디바이스는 세그먼트에 저장될 새로운 데이터의 서브세트를 식별하고, 단지 그 서브세트만 세그먼트에 기록한다. 데이터의 서브세트는 세그먼트에 현재 저장된 데이터와 상이한 새로운 데이터의 부분을 나타낸다. 예에서, 처리 로직은 본원에서 더 상세히 설명되는 바와 같이, 세그먼트에 현재 저장된 데이터의 각 비트를, 세그먼트에 저장될 새로운 데이터의 대응하는 비트와 비교하고, 세그먼트에 현재 저장된 데이터의 대응하는 비트들과 상이한 새로운 데이터의 비트들만을 세그먼트에 기록할 수 있다.
동작 460에서, 처리 로직은 본원에서 더 상세히 설명되는 바와 같이, 상술한 비교에 기초하여, 세그먼트에 현재 저장된 데이터와 상이한 새로운 데이터의 서브세트를 세그먼트에 저장하기 위한 기록 동작을 수행한다.
도 5는 본 개시의 일부 실시예들에 따른, 메모리 서브시스템에서 가변 사전 판독 전압 레벨을 사용하여 사전 판독 동작을 수행하는 예시적인 방법의 흐름도이다. 방법(500)은 하드웨어(예를 들어, 프로세싱 디바이스, 회로, 전용 로직, 프로그램 가능한 로직, 마이크로 코드, 디바이스의 하드웨어, 집적 회로 등), 소프트웨어(예를 들어, 프로세싱 디바이스에 대해 운영 또는 실행되는 명령어들) 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 일부 실시예들에서, 방법(500)은 FIG 1의 사전 판독 동작 관리 구성요소(113)에 의해 수행된다. 특정 시퀀스 또는 순서로 도시되지만, 달리 특정되지 않는 한, 프로세스들의 순서는 수정될 수 있다. 이에 따라, 도시된 실시예들은 예들로서만 이해되어야 하고, 도시된 프로세스들은 상이한 순서로 수행될 수 있으며, 일부 프로세스들은 병렬적으로 수행될 수도 있다. 또한, 다양한 실시예들에서 하나 이상의 프로세스가 생략될 수도 있다. 이에 따라, 모든 프로세스들이 모든 실시예에서 요구되는 것은 아니다. 다른 프로세스 흐름들도 가능하다.
동작 510에서, 처리 로직은 예를 들어, 본원에서 상세히 설명되는 바와 같이, 기록 동작을 수행하기 전에 세그먼트에 저장된 데이터를 획득하기 위한 사전 판독 동작을 수행하기 위해, 메모리 디바이스의 세그먼트에 대한 기록 대 기록(W2W) 시간 간격을 결정한다. 구현예들에서, W2W 시간 간격은 사전 판독 동작을 수행하기 위해 사용될 사전 판독 전압 레벨을 결정하기 위해 사용될 수 있다. 다른 구현예들에서, 세그먼트에 대해 사전 판독 동작을 수행하기 위해, 처리 로직은 사전 판독 전압 레벨 기준을 충족시키는 사전 판독 전압을 결정할 수 있다. 사전 판독 전압 레벨 기준은 세그먼트의 W2W 시간 간격이 사전 판독 전압 레벨과 연관된 W2W 간격 범위 내에 속하는지 여부일 수 있다.
동작 515에서, 처리 로직은 W2W 간격이 제1 W2W 간격 범위 내에 속하는지 여부를 결정한다. 일 구현예에서, 메모리 디바이스는 본원에서 상세히 설명되는 바와 같이, 각 범위가 각 사전 판독 전압 레벨에 대응하는 다수의 W2W 간격 범위들을 포함할 수 있다. 동작 530에서, 처리 로직이 W2W 간격이 제1 W2W 간격 범위 내에 속한다고 결정할 때, 처리 로직은 제1 W2W 간격 범위의 제1 사전 판독 전압을 사용하여 사전 판독 동작을 수행할 수 있다. 그 후, 처리 로직은 위에서 설명된 바와 같이, 제1 사전 판독 전압 레벨을 사용하여 사전 판독 동작을 수행하여 세그먼트에 현재 저장된 데이터를 획득한다.
동작 535에서, 처리 로직이 세그먼트의 W2W 간격이 제1 W2W 간격 범위 내에 속하지 않는다고 결정하는 경우, 처리 로직은 메모리 디바이스의 다수의 W2W 간격 범위들 중 다음 범위로 진행할 수 있고, 동작 540에서 W2W 간격이 다음 W2W 간격 범위 내에 속하는지를 결정할 수 있다. 동작 550에서, 처리 로직이 세그먼트의 W2W 간격이 다음 W2W 간격 범위 내에 속한다고 결정하는 경우, 처리 로직은 위에서 설명된 바와 같이, 다음 W2W 간격 범위의 사전 판독 전압 레벨을 사용하여 사전 판독 동작을 수행하여 세그먼트에 현재 저장된 데이터를 획득할 수 있다.
처리 로직이 세그먼트의 W2W 간격이 다음 W2W 간격 범위 내에 속하지 않는다고 결정하면, 처리 로직은 동작 535에서 메모리 디바이스의 다수의 W2W 간격 범위들 중 다음(예를 들어, 제3) W2W 간격 범위로 진행할 수 있다. 처리 로직은 세그먼트의 W2W 간격을 포함하는 W2W 간격 범위가 발견될 때까지 다수의 W2W 간격 범위들을 통해 계속 루프로 이동할 수 있다. 그 후, 처리 로직은 발견된 W2W 간격 범위의 사전 판독 전압을 사용하여 사전 판독 동작을 수행하도록 진행할 수 있다.
도 6은 기계로 하여금 본원에서 논의된 방법론들 중 어느 하나 이상을 수행하게 하기 위한 명령어 세트가 실행될 수 있는 컴퓨터 시스템(600)의 예시적인 기계를 도시한다. 일부 실시예들에서, 컴퓨터 시스템(600)은 메모리 서브시스템(예를 들어, 도 1의 메모리 서브시스템(110))을 포함하거나, 이에 결합되거나, 또는 이를 이용하는 호스트 시스템(예를 들어, 도 1의 호스트 시스템(120))에 대응할 수 있거나 제어기의 동작들을 수행하는 데(예를 들어, 도 1의 사전 판독 동작 관리 구성요소(113)에 대응하는 동작들을 수행하기 위해 운영 체제를 실행하는 데) 사용될 수 있다. 대안적인 실시예들에서, 기계는 LAN, 인트라넷, 엑스트라넷, 및/또는 인터넷으로 다른 기계들에 연결(예를 들어, 네트워킹)될 수 있다. 기계는 클라이언트-서버 네트워크 환경에서의 서버 또는 클라이언트 기계로서, 피어-투-피어(또는 분산) 네트워크 환경에서의 피어 기계로서, 또는 클라우드 컴퓨팅 인프라스트럭처 또는 환경에서의 서버 또는 클라이언트 기계로서 동작할 수 있다.
기계는 개인용 컴퓨터(personal computer, PC), 태블릿 PC, 셋탑 박스(set-top box, STB), 개인용 정보 단말기(Personal Digital Assistant, PDA), 휴대 전화, 웹 기기, 서버, 네트워크 라우터, 스위치 또는 브릿지, 또는 해당 기계에 의해 취해질 동작들을 특정하는 (순차적인 또는 그 외의) 명령어 세트를 실행할 수 있는 임의의 기계일 수 있다. 나아가, 단일 기계가 도시되었지만, "기계"라는 용어는 또한 본원에서 논의된 방법론들 중 임의의 하나 이상을 수행하기 위한 명령어 세트(또는 다수의 세트들)를 개별적으로 또는 공동으로 실행하는 임의의 기계군을 포함하는 것으로 취해져야 한다.
예시적인 컴퓨터 시스템(600)은 버스(630)를 통해 서로 통신하는 처리 디바이스(602), 메인 메모리(604)(예를 들어, 판독 전용 메모리(ROM), 플래시 메모리, 동적 랜덤 액세스 메모리(DRAM) 이를테면 동기식 DRAM(SDRAM) 또는 램버스 DRAM(RDRAM) 등), 정적 메모리(606)(예를 들어, 플래시 메모리, 정적 랜덤 액세스 메모리(SRAM) 등) 및 데이터 저장 시스템(618)을 포함한다.
처리 디바이스(602)는 마이크로 프로세서, 중앙 처리 유닛 등과 같은 하나 이상의 범용 처리 디바이스를 나타낸다. 보다 더 구체적으로, 처리 디바이스는 복합 명령어 세트 컴퓨팅(complex instruction set computing, CISC) 마이크로 프로세서, 축소 명령어 세트 컴퓨팅(reduced instruction set computing, RISC) 마이크로 프로세서, 훨씬 긴 명령어(very long instruction word, VLIW) 마이크로 프로세서, 또는 다른 명령어 세트들을 구현하는 프로세서, 또는 명령어 세트들의 조합을 구현하는 프로세서들일 수 있다. 처리 디바이스(602)는 또한 용도 특정 집적 회로(ASIC), 필드 프로그래밍 가능한 게이트 어레이(FPGA), 디지털 신호 프로세서(DSP), 네트워크 프로세서 등과 같은 하나 이상의 특수 목적 처리 디바이스일 수 있다. 처리 디바이스(602)는본원에서 논의된 동작들 및 단계들을 수행하기 위한 명령들(626)을 실행하도록 구성된다. 컴퓨터 시스템(600)은 네트워크(620)를 통해 통신하기 위한 네트워크 인터페이스 디바이스(608)를 더 포함할 수 있다.
데이터 저장 시스템(618)은 본원에서 설명된 방법들 또는 기능들 중 어느 하나 이상을 구현하는 명령어들의 하나 이상의 세트(626) 또는 소프트웨어가 저장되는 기계 판독 가능한 저장 매체(624)(컴퓨터 판독 가능한 매체라고도 함)를 포함할 수 있다. 명령어들(626)은 또한 기계 판독 가능한 저장 매체들을 또한 구성하는 컴퓨터 시스템(600), 메인 메모리(604) 및 프로세싱 디바이스(602)에 의한 이들의 실행 동안 메인 메모리(604) 내에 그리고/또는 프로세싱 디바이스(602) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다. 기계 판독 가능한 저장 매체(624), 데이터 저장 시스템(618), 및/또는 메인 메모리(604)는 도 1의 메모리 서브시스템(110)에 대응할 수 있다.
일 실시예에서, 명령어들(626)은 도 1의 사전 판독 동작 관리 구성요소(113)에 대응하는 기능을 구현하기 위한 명령어들을 포함한다. 기계 판독 가능한 저장 매체(624)가 예시적인 실시예에서 단일 매체인 것으로 도시되어 있지만, "기계 판독 가능한 저장 매체"라는 용어는 명령어들의 하나 이상의 세트를 저장하는 단일의 매체 또는 다수의 매체를 포함하는 것으로 여겨져야 한다. 또한, "기계 판독가능한 매체"라는 용어는 기계에 의한 실행을 위한 명령어 세트를 저장하거나 인코딩할 수 있고 기계로 하여금 본 개시의 방법론들 중 임의의 하나 이상을 수행하게 하는 임의의 매체를 포함하는 것으로 취해져야 한다. 이에 따라, "기계 판독가능한 저장 매체"라는 용어는 고체 상태 메모리들, 광학 매체들, 및 자기 매체들을 포함하지만, 이에 제한되지는 않는 것으로 취해져야 한다.
선행하는 발명을 실시하기 위한 구체적인 내용의 일부 부분들은 컴퓨터 메모리 내의 데이터 비트들에 대한 동작들의 알고리즘들 및 상징적 표현들과 관련하여 제시되었다. 이러한 알고리즘적 설명들 및 표현들은 데이터 처리 분야의 기술자들에 의해 자신들의 작업 내용을 해당 기술분야의 다른 기술자들에게 가장 효과적으로 전달하기 위해 사용되는 방식들이다. 알고리즘은 본원에서, 그리고 일반적으로, 목적하는 결과를 도출하는 동작들의 자기 일관적인 시퀀스인 것으로 구상된다. 동작들은 물리적 수량들의 물리적 조작들을 필요로 하는 것들이다. 반드시 그렇지는 아니지만, 일반적으로, 이러한 수량들은 저장, 조합, 비교, 및 다른 방식으로 조작될 수 있는 전기적 또는 자기적 신호들의 형태를 띤다. 주로 일반적인 용법의 이유로, 이러한 신호들을 비트들, 값들, 요소들, 심볼들, 문자들, 용어들, 숫자들 등으로서 나타내는 것이 때때로 편리하다는 것이 밝혀졌다.
그러나, 이러한 그리고 유사한 용어들은 모두 적절한 물리적 수량들과 연관되어야 하고 단지 이러한 수량들에 적용되는 편리한 라벨들일 뿐임을 유념해야 한다. 본 개시는 컴퓨터 시스템, 또는 컴퓨터 시스템의 레지스터들 및 메모리들 내 물리적(전자적) 수량들로서 표현된 데이터를 조작하고 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 이러한 정보 저장 시스템들 내 물리적 수량들로서 유사하게 표현되는 다른 데이터로 변환하는 유사한 전자 컴퓨팅 디바이스의 동작 및 절차들을 나타낼 수 있다.
또한, 본 개시는 본원에서의 동작들을 수행하기 위한 장치에 관한 것이다. 이러한 장치는 의도된 목적들을 위해 특별히 구성될 수 있거나, 이는 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 범용 컴퓨터를 포함할 수 있다. 이러한 컴퓨터 프로그램은 컴퓨터 판독가능 저장 매체, 이를테면 이에 제한되지는 않지만, 각각 컴퓨터 시스템 버스에 결합되는, 플로피 디스크, 광학 디스크, CD-ROM, 및 자기-광학 디스크, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), EPROM, EEPROM, 자기 또는 광학 카드, 또는 전자 명령어들을 저장하는 데 적합한 임의의 유형의 매체를 포함하는 임의의 유형의 디스크에 저장될 수 있다.
본원에서 제시된 알고리즘들 및 디스플레이들은 본질적으로 임의의 특정 컴퓨터 또는 다른 장치와 관련되는 것은 아니다. 다양한 범용 시스템들이 본원에서의 교시에 따른 프로그램들과 함께 사용될 수 있거나, 방법을 수행하도록 보다 특화된 장치를 구성하는 것이 편리함이 증명될 수 있다. 이러한 다양한 시스템들에 대한 구조는 아래의 설명에서 제시된 바와 같이 나타날 것이다. 또한, 본 개시는 임의의 특정 프로그래밍 언어를 참조하여 설명되지 않는다. 본원에서 설명된 바와 같이 본 개시의 교시 내용을 구현하는 데 다양한 프로그래밍 언어들이 사용될 수 있다는 것이 이해될 것이다.
본 개시는 컴퓨터 프로그램 제품, 또는 소프트웨어로서 제공될 수 있으며, 이는 본 개시에 따라 프로세스를 수행하기 위해 컴퓨터 시스템(또는 다른 전자 디바이스들)을 프로그래밍하는 데 사용될 수 있는 명령어들이 저장된 기계 판독가능 매체를 포함할 수 있다. 기계 판독가능 매체는 기계(예를 들어, 컴퓨터)에 의해 판독가능한 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함한다. 일부 실시예들에서, 기계 판독가능(예를 들어, 컴퓨터 판독가능) 매체는 기계(예를 들어, 컴퓨터) 판독가능 저장 매체 이를테면 판독 전용 메모리("ROM"), 랜덤 액세스 메모리("RAM"), 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 구성요소들 등을 포함한다.
앞에서의 명세서에서, 본 개시의 실시예들은 이의 특정 예시적인 실시예들을 참조하여 설명되었다. 다음의 청구항들에 제시된 바와 같이 본 개시의 실시예들의 보다 넓은 사상 및 범위로부터 벗어나지 않고 다양한 수정들이 이루어질 수 있음이 명백할 것이다. 따라서, 명세서 및 도면들은 제한적인 의미가 아니라, 예시적인 의미로 고려되어야 한다.

Claims (20)

  1. 시스템으로서,
    메모리 디바이스; 및
    상기 메모리 디바이스와 동작가능하게 결합되어, 동작들을 수행하는 처리 디바이스를 포함하며, 상기 동작들은:
    호스트 시스템으로부터 기록 요청을 수신하는 동작 ― 상기 기록 요청은 메모리 디바이스의 세그먼트에 저장될 데이터를 식별함 ―;
    상기 메모리 디바이스의 상기 세그먼트에 대한 기록 대 기록 시간 간격을 결정하는 동작;
    상기 세그먼트에 대한 기록 대 기록 시간 간격이 상기 메모리 디바이스에 대한 복수의 기록 대 기록 시간 간격 범위들 중 제1 기록 대 기록 시간 간격 범위 내에 속하는지 여부를 결정하는 동작 ― 상기 제1 기록 대 기록 시간 간격 범위는 복수의 기록 대 기록 시간 간격 범위들 중 제1 사전 판독 전압 레벨에 대응하는 제1 기록 대 기록 시간 간격 범위를 나타냄 ―;
    상기 세그먼트에 대한 기록 대 기록 시간 간격이 상기 제1 기록 대 기록 시간 간격 범위 내에 속하는 것에 응답하여, 상기 세그먼트에 현재 저장된 데이터를 결정하기 위해 상기 제1 사전 판독 전압 레벨을 사용하여 상기 메모리 디바이스의 상기 세그먼트에 대한 사전 판독 동작을 수행하는 동작;
    상기 메모리 디바이스의 상기 세그먼트에 저장될 상기 기록 요청에서 식별되는 상기 데이터의 서브세트를 식별하는 동작 ― 상기 데이터의 서브세트는 상기 세그먼트에 현재 저장되고 상기 사전 판독 동작 동안 판독된 데이터의 대응하는 비트들과 상이한 데이터의 비트들을 나타냄 ―; 및
    기록 동작을 수행하여 상기 데이터의 서브세트를 상기 메모리 디바이스의 상기 세그먼트에 저장하는 동작을 포함하는 것인, 시스템.
  2. 제1항에 있어서, 상기 메모리 디바이스의 상기 세그먼트에 대한 기록 대 기록 시간 간격을 결정하는 동작은:
    상기 메모리 디바이스의 상기 세그먼트 내의 상기 데이터와 연관된 타임스탬프를 판독하는 동작 ― 상기 타임스탬프는 데이터가 상기 세그먼트에 기록되었던 마지막 시간을 나타냄 ―; 및
    상기 기록 대 기록 시간 간격을 상기 타임스탬프 이후 경과된 시간으로서 결정하는 동작을 포함하는 것인, 시스템.
  3. 제1항에 있어서, 상기 메모리 디바이스의 상기 세그먼트는 복수의 데이터 유닛들을 포함하며, 데이터 유닛은 기록 동작이 수행되는 최소량의 메모리를 포함하는 것인, 시스템.
  4. 제3항에 있어서, 상기 세그먼트에 대한 기록 대 기록 시간 간격은 상기 세그먼트의 상기 복수의 데이터 유닛들 중의 데이터 유닛과 연관된 타임스탬프에 기초하여 결정되며, 상기 데이터 유닛은 상기 복수의 정보 유닛들 중 가장 최근에 기록된 정보 유닛인 것인, 시스템.
  5. 제1항에 있어서, 상기 처리 디바이스는 또한:
    상기 세그먼트에 대한 기록 대 기록 시간 간격이 상기 제1 기록 대 기록 시간 간격 범위 내에 속하지 않는 것에 응답하여, 제2 기록 대 기록 시간 간격 범위와 연관된 제2 사전 판독 전압 레벨을 사용하여 상기 메모리 디바이스의 상기 세그먼트에 대한 상기 사전 판독 동작을 수행하는 동작 ― 상기 제2 기록 대 기록 시간 간격 범위는 복수의 기록 대 기록 시간 간격들 중 상기 제2 사전 판독 전압 레벨에 대응하는 제2 기록 대 기록 시간 간격을 나타냄 ― 을 포함하는 동작들을 수행하는 것인, 시스템.
  6. 제1항에 있어서, 상기 제1 사전 판독 전압 레벨은 상기 메모리 디바이스와 연관된 복수의 사전 판독 전압 레벨들 중 최저 사전 판독 전압 레벨인 것인, 시스템.
  7. 제1항에 있어서, 상기 메모리 디바이스의 상기 세그먼트에 저장될 상기 데이터의 서브세트를 식별하는 동작은:
    상기 세그먼트에 현재 저장되고 상기 사전 판독 동작 동안 판독된 데이터의 제1 비트 세트를 상기 메모리 디바이스의 상기 세그먼트에 저장될 상기 기록 요청에서 식별된 데이터의 제2 비트 세트와 비교하는 동작; 및
    상기 세그먼트에 저장될 상기 데이터의 서브세트로서 상기 제1 비트 세트의 대응하는 비트들과 매칭하지 않는 상기 제2 비트 세트의 비트들을 마킹하는 동작을 포함하는 것인, 시스템.
  8. 방법으로서,
    호스트 시스템으로부터 기록 요청을 수신하는 단계 ― 상기 기록 요청은 메모리 디바이스의 세그먼트에 저장될 데이터를 식별함 ―;
    상기 메모리 디바이스의 상기 세그먼트에 대한 기록 대 기록(W2W) 시간 간격을 결정하는 단계;
    상기 세그먼트에 대한 기록 대 기록 시간 간격이 상기 메모리 디바이스에 대한 복수의 기록 대 기록 시간 간격 범위들 중 제1 기록 대 기록 시간 간격 범위 내에 속하는지 여부를 결정하는 단계 ― 상기 제1 기록 대 기록 시간 간격 범위는 복수의 기록 대 기록 시간 간격 범위들 중 제1 사전 판독 전압 레벨에 대응하는 제1 기록 대 기록 시간 간격 범위를 나타냄 ―;
    상기 세그먼트에 대한 기록 대 기록 시간 간격이 상기 제1 기록 대 기록 시간 간격 범위 내에 속하는 것에 응답하여, 상기 세그먼트에 현재 저장된 데이터를 결정하기 위해 상기 제1 사전 판독 전압 레벨을 사용하여 상기 메모리 디바이스의 상기 세그먼트에 대한 사전 판독 동작을 수행하는 단계;
    상기 메모리 디바이스의 상기 세그먼트에 저장될 상기 기록 요청에서 식별되는 상기 데이터의 서브세트를 식별하는 단계 ― 상기 데이터의 서브세트는 상기 세그먼트에 현재 저장되고 상기 사전 판독 동작 동안 판독된 데이터의 대응하는 비트들과 상이한 데이터의 비트들을 나타냄 ―; 및
    기록 동작을 수행하여 상기 데이터의 서브세트를 상기 메모리 디바이스의 상기 세그먼트에 저장하는 단계를 포함하는 것인, 방법.
  9. 제8항에 있어서, 상기 메모리 디바이스의 상기 세그먼트에 대한 기록 대 기록 시간 간격을 결정하는 단계는:
    상기 메모리 디바이스의 상기 세그먼트 내의 상기 데이터와 연관된 타임스탬프를 판독하는 단계 ― 상기 타임스탬프는 데이터가 상기 세그먼트에 기록되었던 마지막 시간을 나타냄 ―; 및
    상기 기록 대 기록 시간 간격을 상기 타임스탬프 이후 경과된 시간으로서 결정하는 단계를 포함하는 것인, 방법
  10. 제8항에 있어서, 상기 메모리 디바이스의 상기 세그먼트는 복수의 데이터 유닛들을 포함하며, 데이터 유닛은 기록 동작이 수행되는 최소량의 메모리를 포함하는 것인, 방법.
  11. 제10항에 있어서, 상기 세그먼트에 대한 기록 대 기록 시간 간격은 상기 세그먼트의 상기 복수의 데이터 유닛들 중의 데이터 유닛과 연관된 타임스탬프에 기초하여 결정되며, 상기 데이터 유닛은 상기 복수의 정보 유닛들 중 가장 최근에 기록된 정보 유닛인 것인, 방법.
  12. 제8항에 있어서,
    상기 세그먼트에 대한 기록 대 기록 시간 간격이 상기 제1 기록 대 기록 시간 간격 범위 내에 속하지 않는 것에 응답하여, 제2 기록 대 기록 시간 간격 범위와 연관된 제2 사전 판독 전압 레벨을 사용하여 상기 메모리 디바이스의 상기 세그먼트에 대한 상기 사전 판독 동작을 수행하는 단계 ― 상기 제2 기록 대 기록 시간 간격 범위는 복수의 기록 대 기록 시간 간격들 중 상기 제2 사전 판독 전압 레벨에 대응하는 제2 기록 대 기록 시간 간격을 나타냄 ― 를 더 포함하는, 방법.
  13. 제8항에 있어서, 상기 제1 사전 판독 전압 레벨은 상기 메모리 디바이스와 연관된 복수의 사전 판독 전압 레벨들 중 최저 사전 판독 전압 레벨인 것인, 방법.
  14. 제8항에 있어서, 상기 메모리 디바이스의 상기 세그먼트에 저장될 상기 데이터의 서브세트를 식별하는 단계는:
    상기 세그먼트에 현재 저장되고 상기 사전 판독 동작 동안 판독된 데이터의 제1 비트 세트를 상기 메모리 디바이스의 상기 세그먼트에 저장될 상기 기록 요청에서 식별된 데이터의 제2 비트 세트와 비교하는 단계; 및
    상기 세그먼트에 저장될 상기 데이터의 서브세트로서 상기 제1 비트 세트의 대응하는 비트들과 매칭하지 않는 상기 제2 비트 세트의 비트들을 마킹하는 단계를 포함하는 것인, 방법.
  15. 명령어들을 포함하는 비일시적인 컴퓨터 판독가능 저장 매체로서, 상기 명령어들은 처리 디바이스에 의해 실행될 때, 상기 처리 디바이스로 하여금:
    메모리 디바이스의 세그먼트에 저장된 제1 데이터를 식별하기 위해 제1 사전 판독 전압 레벨을 사용하여 상기 메모리 디바이스의 상기 세그먼트에 대한 사전 판독 동작을 수행하고 ― 상기 사전 판독 전압 레벨은 사전 판독 전압 레벨 기준을 충족시킴 ―;
    상기 메모리 디바이스의 상기 세그먼트에 저장되고 상기 사전 판독 동작 동안 판독된 상기 제1 데이터를 상기 메모리 디바이스의 상기 세그먼트에 대해 수행될 기록 동작과 연관된 제2 데이터와 비교하여, 상기 제1 데이터와 상이한 상기 제2 데이터의 적어도 일부를 식별하며;
    상기 메모리 디바이스의 상기 세그먼트에 상기 기록 동작과 연관된 상기 제2 데이터의 적어도 상기 일부를 기록하게 하는 것인, 비일시적인 컴퓨터 판독가능 저장 매체.
  16. 제15항에 있어서, 상기 사전 판독 전압 레벨 기준은 상기 메모리 디바이스의 상기 세그먼트에 대한 기록 대 기록 시간 간격에 관한 것이고, 상기 사전 판독 전압 레벨이 상기 사전 판독 전압 레벨 기준을 충족시킨다고 결정하는 것은 상기 세그먼트에 대한 기록 대 기록 시간 간격이 상기 메모리 디바이스에 대한 복수의 기록 대 기록 간격 범위들 중 제1 기록 대 기록 간격 범위 내에 속한다고 결정하는 것을 포함하며, 상기 제1 기록 대 기록 간격 범위는 상기 제1 사전 판독 전압 레벨에 대응하는 제1 복수의 기록 대 기록 시간 간격들을 나타내는 것인, 비일시적인 컴퓨터 판독가능 저장 매체.
  17. 제16항에 있어서, 상기 메모리 디바이스의 상기 세그먼트에 대한 상기 기록 대 기록 시간 간격을 결정하기 위해, 상기 처리 디바이스는 또한:
    상기 메모리 디바이스의 상기 세그먼트 내의 상기 데이터와 연관된 타임스탬프를 판독하고 ― 상기 타임스탬프는 데이터가 상기 세그먼트에 기록되었던 마지막 시간을 나타냄 ―;
    상기 기록 대 기록 시간 간격을 상기 타임스탬프 이후 경과된 시간으로서 결정하는 것인, 비일시적인 컴퓨터 판독가능 저장 매체.
  18. 제15항에 있어서, 상기 메모리 디바이스의 상기 세그먼트는 복수의 데이터 유닛들을 포함하며, 데이터 유닛은 기록 동작이 수행되는 최소량의 메모리를 포함하는 것인, 비일시적인 컴퓨터 판독가능 저장 매체.
  19. 제15항에 있어서, 상기 제1 기록-기록 시간 간격 범위는 상기 제2 기록 대 기록 시간 간격 범위와 중첩하는 것인, 비일시적인 컴퓨터 판독가능 저장 매체.
  20. 제17항에 있어서, 상기 메모리 디바이스의 상기 세그먼트에 저장될 상기 데이터의 서브세트를 식별하기 위해, 상기 처리 디바이스는 또한:
    상기 세그먼트에 현재 저장되고 상기 사전 판독 동작 동안 판독된 데이터의 제1 비트 세트를 상기 메모리 디바이스의 상기 세그먼트에 저장될 상기 기록 요청에서 식별된 데이터의 제2 비트 세트와 비교하고;
    상기 세그먼트에 저장될 상기 데이터의 서브세트로서 상기 제1 비트 세트의 대응하는 비트들과 매칭하지 않는 상기 제2 비트 세트의 비트들을 마킹하는 것인, 비일시적인 컴퓨터 판독가능 저장 매체.
KR1020227029126A 2020-01-30 2021-01-29 가변 사전 판독 전압 레벨을 사용한 비휘발성 메모리 디바이스에서의 기록 동작의 관리 KR20220129626A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/777,766 2020-01-30
US16/777,766 US11199999B2 (en) 2020-01-30 2020-01-30 Management of write operations in a non-volatile memory device using a variable pre-read voltage level
PCT/US2021/015889 WO2021155275A1 (en) 2020-01-30 2021-01-29 Management of write operations in a non-volatile memory device using a variable pre-read voltage level

Publications (1)

Publication Number Publication Date
KR20220129626A true KR20220129626A (ko) 2022-09-23

Family

ID=77062045

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227029126A KR20220129626A (ko) 2020-01-30 2021-01-29 가변 사전 판독 전압 레벨을 사용한 비휘발성 메모리 디바이스에서의 기록 동작의 관리

Country Status (6)

Country Link
US (2) US11199999B2 (ko)
JP (1) JP2023512246A (ko)
KR (1) KR20220129626A (ko)
CN (1) CN115428083A (ko)
DE (1) DE112021000776T5 (ko)
WO (1) WO2021155275A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI696074B (zh) * 2019-01-24 2020-06-11 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN113496719B (zh) * 2020-04-08 2023-06-23 长鑫存储技术有限公司 半导体存储器的训练方法及相关设备
US11880571B2 (en) 2020-05-13 2024-01-23 Micron Technology, Inc. Counter-based methods and systems for accessing memory cells
US11367484B1 (en) * 2021-01-21 2022-06-21 Micron Technology, Inc. Multi-step pre-read for write operations in memory devices

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171380B2 (en) 2006-10-10 2012-05-01 Marvell World Trade Ltd. Adaptive systems and methods for storing and retrieving data to and from memory cells
JP5839048B2 (ja) * 2012-01-12 2016-01-06 ソニー株式会社 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP5853899B2 (ja) * 2012-03-23 2016-02-09 ソニー株式会社 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
KR102210964B1 (ko) * 2014-05-13 2021-02-03 삼성전자주식회사 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 액세스하는 액세스 방법
US9384831B2 (en) 2014-05-29 2016-07-05 Intel Corporation Cross-point memory single-selection write technique
US10446210B2 (en) 2016-09-27 2019-10-15 Spin Memory, Inc. Memory instruction pipeline with a pre-read stage for a write operation for reducing power consumption in a memory device that uses dynamic redundancy registers
KR102648785B1 (ko) 2017-01-11 2024-03-19 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
US10026486B1 (en) 2017-03-06 2018-07-17 Sandisk Technologies Llc First read countermeasures in memory
TWI623878B (zh) * 2017-07-07 2018-05-11 大心電子(英屬維京群島)股份有限公司 資料讀取方法以及儲存控制器
JP2019149219A (ja) * 2018-02-28 2019-09-05 東芝メモリ株式会社 メモリシステム
KR102671736B1 (ko) * 2019-05-31 2024-06-04 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법

Also Published As

Publication number Publication date
WO2021155275A1 (en) 2021-08-05
US11199999B2 (en) 2021-12-14
CN115428083A (zh) 2022-12-02
US20220035572A1 (en) 2022-02-03
US20210240385A1 (en) 2021-08-05
US11620085B2 (en) 2023-04-04
DE112021000776T5 (de) 2022-12-01
JP2023512246A (ja) 2023-03-24

Similar Documents

Publication Publication Date Title
KR20220104240A (ko) 사전 판독 및 판독 임계 전압 최적화
US20210349662A1 (en) Implementing variable number of bits per cell on storage devices
KR20220129626A (ko) 가변 사전 판독 전압 레벨을 사용한 비휘발성 메모리 디바이스에서의 기록 동작의 관리
US11500588B2 (en) Adjusting read voltage levels based on a temperature-dependent slope of the threshold voltage drift of a memory sub-system
US11169747B2 (en) Relocating data to low latency memory
US11410734B1 (en) Voltage bin selection for blocks of a memory device after power up of the memory device
US11599416B1 (en) Memory sub-system using partial superblocks
US20220229603A1 (en) Managing threshold voltage drift based on operating characteristics of a memory sub-system
US11704179B2 (en) Regression-based calibration and scanning of data units
US20220050772A1 (en) Data block switching at a memory sub-system
US20240272829A1 (en) Predictive media management for read disturb
US20240087651A1 (en) Adaptive pre-read management in multi-pass programming
US11468949B2 (en) Temperature-dependent operations in a memory device
US11983067B2 (en) Adjustment of code rate as function of memory endurance state metric
US11726671B2 (en) Memory access mode selection
US20240231695A1 (en) Managing retention latency for memory devices of vehicle systems
US11675509B2 (en) Multiple open block families supporting multiple cursors of a memory device
US11587627B2 (en) Determining voltage offsets for memory read operations
US11231870B1 (en) Memory sub-system retirement determination
US20230062995A1 (en) Write performance optimization for erase on demand
KR20220143596A (ko) 메모리 장치의 전압 빈들을 교정하기 위한 임계 전압 결정