KR20210034682A - Disruption management based on entry times - Google Patents

Disruption management based on entry times Download PDF

Info

Publication number
KR20210034682A
KR20210034682A KR1020217008273A KR20217008273A KR20210034682A KR 20210034682 A KR20210034682 A KR 20210034682A KR 1020217008273 A KR1020217008273 A KR 1020217008273A KR 20217008273 A KR20217008273 A KR 20217008273A KR 20210034682 A KR20210034682 A KR 20210034682A
Authority
KR
South Korea
Prior art keywords
memory cell
time
memory
entry
disturbance
Prior art date
Application number
KR1020217008273A
Other languages
Korean (ko)
Other versions
KR102373852B1 (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 KR20210034682A publication Critical patent/KR20210034682A/en
Application granted granted Critical
Publication of KR102373852B1 publication Critical patent/KR102373852B1/en

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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0033Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0061Timing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • 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
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/003Cell access
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/71Three dimensional array
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/77Array wherein the memory element being directly connected to the bit lines and word lines without any access device being used

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

예시적인 방법은, 특정 메모리 셀에 대한 제 위치 기입들 사이의 시간을 결정하는 단계, 특정 메모리 셀에 대한 제 위치 기입들 사이의 시간에 기초하는 특정 카운트 증분만큼 이웃 메모리 셀에 대응하는 방해 카운트를 증분하는 단계, 및 증분된 방해 카운트에 기초하여 이웃 메모리 셀의 기입 방해 상태를 체크할지 여부를 결정하는 단계를 포함한다.The exemplary method includes determining a time between in-place writes to a particular memory cell, and calculating a disturbance count corresponding to a neighboring memory cell by a specific count increment based on the time between in-place writes to the particular memory cell. Incrementing, and determining whether to check the write disturbance state of the neighboring memory cell based on the incremented disturbance count.

Description

기입 시간들에 기초한 방해 관리Disruption management based on entry times

본 개시는 전반적으로 반도체 메모리 및 방법들에 관한 것으로, 더 구체적으로, 기입 시간들에 기초한 방해 관리(disturb management)에 관한 것이다.The present disclosure relates generally to semiconductor memory and methods, and more particularly, to disturb management based on write times.

메모리 서브-시스템은 고체-상태 드라이브(solid-state drive; SSD)와 같은 저장 시스템일 수 있으며, 데이터를 저장하는 하나 이상의 메모리 컴포넌트들을 포함할 수 있다. 메모리 컴포넌트들은, 예를 들어, 비-휘발성 메모리 컴포넌트들 및/또는 휘발성 메모리 컴포넌트들일 수 있다. 일반적으로, 호스트 시스템은, 메모리 컴포넌트들에 데이터를 저장하고 메모리 컴포넌트들로부터 데이터를 검색하기 위하여 메모리 서브-시스템을 사용할 수 있다.The memory sub-system may be a storage system such as a solid-state drive (SSD), and may include one or more memory components that store data. The memory components may be, for example, non-volatile memory components and/or volatile memory components. In general, the host system can use the memory sub-system to store data in and retrieve data from the memory components.

도 1은 본 개시의 다수의 실시예들에 따른 방해 관리를 수행하도록 구성된 컴퓨팅 시스템의 형태의 장치의 블록도를 예시한다.
도 2는 본 개시의 다수의 실시예들에 따른 이웃 방해를 관리하는 것과 연관된 컴포넌트들의 일 예를 예시한다.
도 3은 본 개시의 다수의 실시예들에 따른 방해 관리를 위해 구성된 메모리 관리 유닛 어드레스 데이터 구조체의 엔트리의 일 예를 예시한다.
도 4는 본 개시의 다수의 실시예들에 따른 방해 관리를 위해 구성된 드리프트(drift) 엔트리 데이터 구조체의 엔트리의 일 예를 예시한다.
도 5는 본 개시의 다수의 실시예들에 따른 특정 위치에 대한 마지막 기입으로부터의 시간과 기입 방해 사이의 관계를 예시하는 커브의 일 예이다.
도 6은 본 개시의 다수의 실시예들에 따른 방해 관리를 위한 방법의 일 예의 순서도이다.
도 7은 본 개시의 다수의 실시예들에 따른 기입 방해 관리 및 드리프트 관리를 포함할 수 있는 방법의 일 예의 순서도이다.
도 8은, 본 개시의 구현예들이 본 개시의 다수의 실시예들에 따라 동작할 수 있는 컴퓨터 시스템의 형태의 예시적인 장치의 블록도이다.
1 illustrates a block diagram of an apparatus in the form of a computing system configured to perform disturbance management in accordance with multiple embodiments of the present disclosure.
2 illustrates an example of components associated with managing neighbor disturbance in accordance with multiple embodiments of the present disclosure.
3 illustrates an example of an entry of a memory management unit address data structure configured for disturbance management according to multiple embodiments of the present disclosure.
4 illustrates an example of an entry of a drift entry data structure configured for disturbance management according to multiple embodiments of the present disclosure.
5 is an example of a curve illustrating the relationship between write interruption and time from last write to a specific location according to multiple embodiments of the present disclosure.
6 is a flowchart of an example of a method for interference management according to a number of embodiments of the present disclosure.
7 is a flowchart of an example of a method that may include write disturbance management and drift management in accordance with multiple embodiments of the present disclosure.
8 is a block diagram of an exemplary apparatus in the form of a computer system in which implementations of the present disclosure may operate in accordance with multiple embodiments of the present disclosure.

본 개시의 측면들은 메모리 서브-시스템들에서의 기입 방해 관리에 관한 것이다. 메모리 서브-시스템의 일 예는 고체-상태 드라이브(SSD)와 같은 저장 시스템이다. 일부 실시예들에 있어서, 메모리 서브-시스템은 하이브리드 메모리/저장 서브-시스템이다. 일반적으로, 호스트 시스템은 하나 이상의 메모리 컴포넌트들을 포함하는 메모리 서브-시스템을 사용할 수 있다. 호스트 시스템은 메모리 서브-시스템에 저장될 데이터를 제공할 수 있으며, 메모리 서브-시스템으로부터 검색될 데이터를 요청할 수 있다.Aspects of the present disclosure relate to management of write disturbances in memory sub-systems. One example of a memory sub-system is a storage system such as a solid-state drive (SSD). In some embodiments, the memory sub-system is a hybrid memory/storage sub-system. In general, a host system may use a memory sub-system that includes one or more memory components. The host system may provide data to be stored in the memory sub-system and may request data to be retrieved from the memory sub-system.

다양한 실시예들은, 종래 접근 방식에 비하여 이웃 방해들의 개선된 핸들링과 같은 기술적 개선들을 제공한다. 예를 들어, 다양한 실시예들은, 공격자(aggressor)에 대한 기입들(예를 들어, 빈도) 사이의 시간을 기준으로 결정함으로써 저항 가변 메모리 셀들에 대한 이웃들(예를 들어, 공격자들)인 저항 가변 메모리 셀들(예를 들어, 희생자들)에 대한 열적 기입 방해의 더 정확한 결정을 제공한다. 이는, 종래 접근 방식들에 비하여 열적 방해에 대하여 정정하기 위해 희생자들을 리프레시할 때의 보다 더 정확한 결정을 가능하게 한다.Various embodiments provide technical improvements, such as improved handling of neighbor disturbances over the conventional approach. For example, various embodiments, by determining based on the time between writes (e.g., frequency) to the attacker (eg, the frequency), resistance variable resistance, which is neighbors (e.g., attackers) to the variable memory cells. Provides a more accurate determination of thermal write disturbance for memory cells (eg, victims). This enables a more accurate decision when refreshing victims to correct for thermal disturbances compared to conventional approaches.

예를 들어, 희생자에 대응하는 기입 방해 카운트는, 공격자에 대한 제 위치 기입(write in place)들 사이의 시간에 기초하는 카운트 증분만큼 증분될 수 있다. 리프레시 동작은, 방해 카운트가 임계 카운트에 도달하는 것에 응답하여 희생자에 대하여 수행될 수 있다.For example, a write disturb count corresponding to the victim may be incremented by a count increment based on the time between write in places for the attacker. The refresh operation may be performed on the victim in response to the disturbance count reaching a threshold count.

저항 가변 메모리 셀들의 개별적인 상태들(예를 들어, 저장된 데이터 값들)은 셀들의 개별적인 임계 전압들(Vts)에 대응하는 메모리 셀들의 개별적인 프로그래밍된 저항들에 의존할 수 있다. 저항성 가변 메모리 셀들은, 일부 예들에 있어서, 이들을 먼저 소거하지 않고 오버라이팅(overwriting)에 의해 재기입될 수 있다. 이는 제 위치 기입으로서 지칭될 수 있다. 저항 가변 메모리 셀의 상태는, 예를 들어, 인가된 센싱(예를 들어, 판독) 전압에 응답하는 셀들을 통한 전류를 센싱함으로써 결정(예를 들어, 판독)될 수 있다. The individual states (eg, stored data values) of the resistance variable memory cells may depend on the respective programmed resistances of the memory cells corresponding to the respective threshold voltages Vts of the cells. Resistive variable memory cells may, in some examples, be rewritten by overwriting without first erasing them. This can be referred to as in-place. The state of the resistively variable memory cell may be determined (eg, read), for example, by sensing the current through the cells in response to an applied sensing (eg, read) voltage.

공격자 저항 가변 셀들이 제 위치 기입됨에 따라, 공격자 셀들의 온도가 증가할 수 있으며, 특히, 짧은 시간 기간 이내에, 예컨대 약 10 내지 20 밀리초 이내에 공격자 셀들이 반복적으로 기입될 때 공격자 셀들의 온도가 증가할 수 있다. 공격자 셀들의 온도들이 증가함에 따라, 더 많은 열이 희생자 셀들로 전달되어 희생자 셀들의 온도들이 증가하게끔 한다. 희생자 셀들의 온도가 증가하는 양은 공격자 셀들에 대한 기입들 사이의 시간에 의존할 수 있다. 예를 들어, 공격자 셀들에 대한 기입들 사이의 시간이 짧을 수록, 희생자 셀들의 온도 증가가 더 커진다.As the attacker resistance variable cells are written in place, the temperature of the attacker cells may increase, and in particular, the temperature of the attacker cells increases when the attacker cells are repeatedly written within a short period of time, such as within about 10 to 20 milliseconds. can do. As the temperatures of the attacker cells increase, more heat is transferred to the victim cells, causing the temperatures of the victim cells to increase. The amount by which the temperature of the victim cells increases may depend on the time between writes to the attacker cells. For example, the shorter the time between writes to the attacker cells, the greater the temperature increase of the victim cells.

증가된 온도들은 희생자 셀들의 프로그래밍된 저항들이 변화하게끔 할 수 있으며, 이는 미리 결정된 판독 전압을 가지고 희생자 셀들을 판독하는 것을 어렵게 만든다. 이는 열적 기입 방해로 지칭될 수 있다. 예를 들어, 희생자 셀들에 대한 열적 기입 방해의 양은 공격자 셀들에 대한 기입들 사이의 시간에 의존할 수 있다. 희생자 셀들은, 희생자 셀들을 다시 그들의 정확한 프로그래밍된 저항성 상태들로 재기입함으로써 리프레시될 수 있다. Increased temperatures can cause the programmed resistances of the victim cells to change, which makes it difficult to read the victim cells with a predetermined read voltage. This may be referred to as thermal write disturbance. For example, the amount of thermal write disturbance to victim cells may depend on the time between writes to attacker cells. Victim cells can be refreshed by rewriting the victim cells back to their correct programmed resistive states.

방해 카운터는 희생자 셀들에 대한 방해의 추적을 유지하기 위해 사용될 수 있다. 방해 카운트가 임계 값보다 더 큰 경우, 희생자 셀들이 리프레시될 수 있다. 종래 접근 방식들에 있어서, 카운터는, 공격자 셀들에 대한 기입들(예를 들어, 연속적인 기입들) 사이의 시간에 의존하지 않을 수 있으며 그에 따라 열적 방해를 정확하게 고려하지 않을 수 있는 증분들만큼 증분될 수 있다. 예를 들어, 종래 접근 방식들에 있어서, 카운터는 모든 희생자 셀들에 대하여 동일한 레이트로 증분될 수 있다. 그러나, 이는, 공격자들이 상대적으로 짧은 시간 간격 내에 상대적으로 빈번하게 기입되는 상황들에서 희생자 셀들이 너무 드물게 리프레시되는 것을 야기할 수 있다. 예를 들어, 짧은 시간 간격 이내의 공격자들에 대한 빈번한 기입들은, 더 긴 기간에 걸쳐 공격자들에 대한 동일한 양의 기입들에 의해 초래되는 희생자들에 대한 방해보다 더 큰 희생자들에 대한 방해를 야기할 수 있다. 이러한 경우들에 있어서, 더 큰 방해를 경험한 희생자들은, 공격자들에 대한 기입들에 기인하여 동일한 양의 방해 이벤트를 경험했음에도 불구하고 판독 오류들을 경험하는 경향이 더 있다.The disturbance counter can be used to keep track of the disturbance to the victim cells. If the disturbance count is greater than the threshold value, the victim cells may be refreshed. In conventional approaches, the counter may not depend on the time between writes to the attacker cells (e.g., consecutive writes) and is therefore incremented by increments that may not accurately account for thermal disturbance. Can be. For example, in conventional approaches, the counter can be incremented at the same rate for all victim cells. However, this may cause victim cells to be refreshed too rarely in situations in which attackers are written relatively frequently within a relatively short time interval. For example, frequent entries to attackers within a short time interval result in greater disturbance to victims than disturbance to victims caused by the same amount of entries against attackers over a longer period of time. can do. In these cases, victims who experience greater disruption are more prone to experience reading errors despite experiencing the same amount of disruption events due to writes to the attackers.

기입들 사이의 시간에 기초하여 방해 카운트 증분만큼 방해 카운트를 증분하는 것이 희생자들에 대한 열적 방해의 양을 고려하기 위해 사용될 수 있다. 예를 들어, 방해 카운트는 기입들 사이의 더 긴 시간들(예를 들어, 더 적은 열적 방해들)에 대한 방해 카운트들에 비하여 기입들 사이의 짧은 시간들(예를 들어, 더 큰 열적 방해들)에 대하여 가속될 수 있다. 이는, 이는 더 적절한 시간들에(예를 들어, 희생자들이, 이들이 잘못된 데이터 값들을 저장하는 포인트로 방해되기 이전에) 희생자들을 리프레시하기 위한 능력을 제공할 수 있다.Increasing the disturbance count by a disturbance count increment based on the time between writings can be used to account for the amount of thermal disturbance to the victims. For example, the disturbance count is compared to the disturbance counts for longer times between entries (e.g., less thermal disturbances), compared to the shorter times between entries (e.g., greater thermal disturbances). ) Can be accelerated. This may provide the ability to refresh victims at more appropriate times (eg, before the victims are disturbed by a point where they store erroneous data values).

도 1은 본 개시의 다수의 실시예들에 따른 방해 관리를 수행하도록 구성된 컴퓨팅 시스템(100)의 형태의 장치의 블록도를 예시한다. 본원에서 사용되는, "장치"는, 비제한적으로, 다양한 구조체들 또는 구조체들의 조합들을 지칭할 수 있다. 예를 들어, 메모리 시스템(104), 제어기(108), 및 메모리 컴포넌트들(110-1 내지 110-N)이 개별적으로 "장치"로서 간주될 수 있다.1 illustrates a block diagram of an apparatus in the form of a computing system 100 configured to perform disturbance management in accordance with multiple embodiments of the present disclosure. As used herein, “apparatus” may refer to various structures or combinations of structures, without limitation. For example, the memory system 104, the controller 108, and the memory components 110-1 through 110-N may individually be considered a “device”.

메모리 시스템(104)은, 예를 들어, 고체 상대 드라이브(SSD), 내장형 멀티-미디어 제어기(embedded Multi-Media Controller; eMMC) 디바이스, 범용 플래시 저장(Universal Flash Storage; UFS) 디바이스, 및 유사한 것과 같은 저장 시스템일 수 있으며, 인터페이스(106), 제어기(108), 집합적으로 메모리(110)로 지칭될 수 있는 다수의 메모리 컴포넌트들(110-1 내지 110-N)을 포함할 수 있다. 메모리 컴포넌트들(110)은 메모리 시스템(104)에 대한 저장 볼륨을 제공할 수 있지만; 그러나, 메모리 컴포넌트들(110) 중 하나 이상이 시스템(100)에 대한 메인 메모리로서 기능할 수 있다. 다수의 실시예들에 있어서, 메모리 시스템(104)은 메모리 서브-시스템, 하이브리드 메모리/저장 시스템 또는 유사한 것이다.The memory system 104 includes, for example, a solid-state relative drive (SSD), an embedded Multi-Media Controller (eMMC) device, a Universal Flash Storage (UFS) device, and the like. It may be a storage system, and may include an interface 106, a controller 108, and a number of memory components 110-1 through 110-N, which may be collectively referred to as a memory 110. Memory components 110 may provide a storage volume for memory system 104; However, one or more of the memory components 110 may function as main memory for the system 100. In many embodiments, the memory system 104 is a memory sub-system, a hybrid memory/storage system, or the like.

도 1에 예시된 바와 같이, 메모리 시스템(104)은 인터페이스(106)를 통해 호스트(102)에 결합될 수 있다. 호스트(102)는, 다양한 다른 유형들의 호스트들 중에서도 특히 개인용 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 모바일 디바이스(예를 들어, 휴대 전화), 네트워크 서버, 사물 인터넷(Internet of Things; IoT) 가능형 디바이스, 또는 메모리 카드 리더와 같은 호스트 시스템일 수 있다. 호스트(102)는 (예를 들어, 제어기(108)를 통해) 메모리 컴포넌트들(110)을 액세스할 수 있는 다수의 메모리 액세스 디바이스들(예를 들어, 다수의 프로세서들)을 포함할 수 있다. As illustrated in FIG. 1, memory system 104 may be coupled to host 102 via interface 106. The host 102 is a personal laptop computer, a desktop computer, a digital camera, a mobile device (eg, a mobile phone), a network server, an Internet of Things (IoT) capable device, among various other types of hosts. , Or a host system such as a memory card reader. Host 102 may include multiple memory access devices (eg, multiple processors) capable of accessing memory components 110 (eg, via controller 108).

도 1에 예시된 예에 있어서, 제어기(108)는 다수의 채널들을 통해 메모리 컴포넌트들(110)에 결합되며, (예를 들어, 인터페이스(106)를 통해) 메모리 시스템(104)과 호스트(102) 사이에 데이터를 전송하기 위해 사용될 수 있다. 인터페이스(106)는 표준화된 인터페이스의 형태일 수 있다. 예를 들어, 메모리 시스템(104)이 컴퓨팅 시스템(100) 내의 데이터 저장을 위해 사용될 때, 인터페이스(106)는, 다른 커넥터들 및 인터페이스들 중에서도, 직렬 첨단 기술 부착(serial advanced technology attachment; SATA), 주변 컴포넌트 상호연결 익스프레스(peripheral component interconnect express; PCIe), 또는 범용 직렬 버스(universal serial bus; USB)일 수 있다. 그러나, 일반적으로, 인터페이스(106)는, 인터페이스(106)에 대한 호환성 리셉터(receptor)들을 갖는 호스트(102)와 메모리 시스템(104) 사이에서 제어, 어드레스, 데이터, 및 다른 신호들을 전달하기 위한 인터페이스를 제공할 수 있다.In the example illustrated in FIG. 1, the controller 108 is coupled to the memory components 110 via a number of channels, and the memory system 104 and host 102 (e.g., via interface 106). ) Can be used to transfer data between. The interface 106 may be in the form of a standardized interface. For example, when the memory system 104 is used for data storage in the computing system 100, the interface 106 may be a serial advanced technology attachment (SATA), among other connectors and interfaces. It may be a peripheral component interconnect express (PCIe), or a universal serial bus (USB). However, in general, the interface 106 is an interface for transferring control, address, data, and other signals between the memory system 104 and the host 102 having compatible receptors for the interface 106. Can provide.

제어기(108)는, 다른 동작들 중에서도, 데이터 판독, 기입, 및 소거 동작들을 제어하기 위해 메모리 컴포넌트들(110)과 통신할 수 있다. 구체적으로 예시되지는 않았지만, 일부 실시예들에 있어서, 제어기(108)는 제어기(108)를 메모리 컴포넌트들(110)에 결합하는 각각의 채널에 대한 개별적인 메모리 채널 제어기를 포함할 수 있다. 제어기(108)는, 예를 들어, 호스트(102)와 메모리 컴포넌트들(110) 사이의 데이터 전송을 용이하게 하기 위한 및/또는 다수의 메모리 컴포넌트들(110)에 대한 액세스를 제어하기 위한 하드웨어(예를 들어, 하나 이상의 집적 회로들) 및/또는 소프트웨어(예를 들어, 펌웨어의 형태일 수 있는 명령어들)의 형태의 다수의 컴포넌트들을 포함할 수 있다. 일반적으로, 제어기(108)는 호스트 시스템(102)으로부터 명령(command)들(예를 들어, 동작들)을 수신할 수 있으며, 메모리 컴포넌트들(110)에 대한 희망되는 액세스를 달성하기 위해 명령들을 명령어(instruction)들 또는 적절한 명령들로 변환할 수 있다.The controller 108 may communicate with the memory components 110 to control data read, write, and erase operations, among other operations. Although not specifically illustrated, in some embodiments, controller 108 may include a separate memory channel controller for each channel coupling controller 108 to memory components 110. The controller 108 may be configured with hardware (e.g., for facilitating data transfer between the host 102 and the memory components 110 and/or for controlling access to multiple memory components 110). For example, it may include multiple components in the form of one or more integrated circuits) and/or software (eg, instructions that may be in the form of firmware). In general, the controller 108 may receive commands (e.g., operations) from the host system 102 and issue commands to achieve the desired access to the memory components 110. Can be converted to instructions or appropriate instructions.

본원에서 추가로 설명되는 바와 같이, 제어기(108)는, 다른 동작들 중에서도, 메모리 관리 동작들, 예컨대, 메모리 컴포넌트들(110)과 연관된 다양한 다른 동작들 중에서도, 방해 관리(예를 들어, 완화) 동작들, 드리프트 관리 동작들, 오류 검출 및/또는 정정 동작들, 및 어드레스 번역 동작들을 담당할 수 있다. 제어기는 배경 동작들 및/또는 전경(foreground) 동작들을 수행하는 것과 연관하여 메모리 관리를 수행할 수 있다. 전경 동작들은 판독 및/또는 기입 액세스 명령들과 같은 호스트(예를 들어, 호스트(102))에 의해 개시되는 동작들을 포함할 수 있다. 배경 동작들은, 본 개시의 실시예들에 따라 수행되는 이웃 방해 완화 동작들과 같은, 그것의 실행이 호스트(예를 들어, 호스트(102))에 대하여 투명할 수 있거나 및/또는 제어기(예를 들어, 108)에 의해 개시되는 동작들을 포함할 수 있다. As further described herein, the controller 108 provides, among other operations, memory management operations, such as disturbance management (eg, mitigation), among various other operations associated with the memory components 110. Operations, drift management operations, error detection and/or correction operations, and address translation operations. The controller may perform memory management in association with performing background operations and/or foreground operations. Foreground operations may include operations initiated by the host (eg, host 102), such as read and/or write access commands. Background operations, such as neighbor disturbance mitigation operations performed in accordance with embodiments of the present disclosure, its execution may be transparent to a host (e.g., host 102) and/or a controller (e.g. For example, it may include operations initiated by 108).

메모리 컴포넌트들(110)은 다수의 메모리 셀들의 어레이들을 포함할 수 있다. 메모리 컴포넌트들(110)은 2-차원(2D) 및/또는 3-차원(3D) 어레이 구조체들, 예컨대 교차점 어레이 구조체들을 포함할 수 있다. 메모리 셀들은 저항 가변 메모리 셀들일 수 있다. 메모리 셀들은, 예를 들어, 다양한 유형들의 저항 가변 저장 엘리먼트들 및/또는 스위치 엘리먼트들을 포함할 수 있다. 예를 들어, 셀들은 상 변화 랜덤 액세스 메모리(phase change random access memory; PCRAM) 셀들 또는 저항성 랜덤 액세스 메모리(resistive random access memory; RRAM) 셀들일 수 있다. Memory components 110 may include arrays of multiple memory cells. The memory components 110 may include two-dimensional (2D) and/or three-dimensional (3D) array structures, such as cross-point array structures. The memory cells may be resistance variable memory cells. Memory cells may include, for example, various types of resistance variable storage elements and/or switch elements. For example, the cells may be phase change random access memory (PCRAM) cells or resistive random access memory (RRAM) cells.

본원에서 사용되는, 저장 엘리먼트는 메모리 셀의 프로그램가능 부분을 지칭할 수 있다. 예를 들어, 메모리 컴포넌트들(110)은 3D 교차점 디바이스들일 수 있으며, 이들의 셀들은, 저장 엘리먼트가 본원에서 3D 상 변화 재료 및 스위치(phase change material and switch; PCMS) 디바이스로 지칭될 수 있는 스위치 엘리먼트와 직렬로 결합되는 "스택" 구조체를 포함할 수 있다. 3D PCMS 셀들은, 예를 들어, 오보닉 임계 스위치(ovonic threshold switch; OTS)와 같은, 2-단자 칼코게나이드(chalcogenide) 기반 스위치 엘리먼트와 직렬로 결합된 2-단자 칼코게나이드-기반 저장 엘리먼트를 포함할 수 있다. 다수의 실시예들에 있어서, 메모리 셀들은, 단일 재료가 저장 엘리먼트 및 메모리 엘리먼트 둘 모두로서 역할할 수 있는 자체-선택 메모리(self-selecting memory; SSM)일 수 있다. SSM 셀은 칼코게나이드 합금을 포함할 수 있지만; 그러나, 실시예들이 이에 한정되지 않는다.As used herein, a storage element may refer to a programmable portion of a memory cell. For example, the memory components 110 may be 3D cross-point devices, the cells of which are switches whose storage element may be referred to herein as a 3D phase change material and switch (PCMS) device. It may include a "stack" structure coupled in series with the element. 3D PCMS cells are a two-terminal chalcogenide-based storage element coupled in series with a two-terminal chalcogenide-based switch element, e.g., an ovonic threshold switch (OTS). It may include. In many embodiments, the memory cells may be self-selecting memory (SSM) in which a single material may serve as both a storage element and a memory element. The SSM cell may contain a chalcogenide alloy; However, embodiments are not limited thereto.

비-제한적인 예들로서, 메모리 컴포넌트들(110)의 메모리 셀들은, 상 변화 재료(예를 들어, 상 변화 칼코게나이드 합금) 예컨대 인듐(In)-안티몬(Sb)-텔루륨(Te)(IST) 재료(예를 들어, In2Sb2Te5, In1Sb2Te4, In1Sb4Te7, 등) 또는 갈륨(Ge)-안티몬(Sb)-텔루륨(Te)(GST) 재료(예를 들어, Ge2Sb2Te5, Ge1Sb2Te4, Ge1Sb4Te7, 등)을 포함할 수 있다. 본원에서 사용되는 하이픈이 붙은 화학 조성물 표기는 특정 혼합물 또는 화합물 내에 포함된 원소들을 나타내며, 표시된 원소들을 포함하는 모든 화학량론들을 나타내도록 의도된다. 다른 메모리 셀 재료들은, 다양한 다른 재료들 중에서도, GeTe, In-Se, Sb2Te3, GaSb, InSb, As-Te, Al-Te, Ge-Sb-Te, Te-Ge-As, In-Sb-Te, Te-Sn-Se, Ge-Se-Ga, Bi-Se-Sb, Ga-Se-Te, Sn-Sb-Te, In-Sb-Ge, Te-Ge-Sb-S, Te-Ge-Sn-O, Te-Ge-Sn-Au, Pd-Te-Ge-Sn, In-Se-Ti-Co, Ge-Sb-Te-Pd, Ge-Sb-Te-Co, Sb-Te-Bi-Se, Ag-In-Sb-Te, Ge-Sb-Se-Te, Ge-Sn-Sb-Te, Ge-Te-Sn-Ni, Ge-Te-Sn-Pd, 및 Ge-Te-Sn-Pt을 포함할 수 있다. As a non-limiting example, the memory cells of the memory components 110 may include a phase change material (e.g., a phase change chalcogenide alloy) such as indium (In)-antimony (Sb)-tellurium (Te) ( IST) material (e.g., In 2 Sb 2 Te 5 , In 1 Sb 2 Te 4 , In 1 Sb 4 Te 7 , etc.) or gallium (Ge)-antimony (Sb)-tellurium (Te) (GST) Materials (eg, Ge 2 Sb 2 Te 5 , Ge 1 Sb 2 Te 4 , Ge 1 Sb 4 Te 7 , etc.) may be included. As used herein, the hyphenated chemical composition designation refers to the elements contained within a particular mixture or compound, and is intended to indicate all stoichiometry including the indicated elements. Other memory cell materials include GeTe, In-Se, Sb 2 Te 3 , GaSb, InSb, As-Te, Al-Te, Ge-Sb-Te, Te-Ge-As, In-Sb, among various other materials. -Te, Te-Sn-Se, Ge-Se-Ga, Bi-Se-Sb, Ga-Se-Te, Sn-Sb-Te, In-Sb-Ge, Te-Ge-Sb-S, Te-Ge -Sn-O, Te-Ge-Sn-Au, Pd-Te-Ge-Sn, In-Se-Ti-Co, Ge-Sb-Te-Pd, Ge-Sb-Te-Co, Sb-Te-Bi -Se, Ag-In-Sb-Te, Ge-Sb-Se-Te, Ge-Sn-Sb-Te, Ge-Te-Sn-Ni, Ge-Te-Sn-Pd, and Ge-Te-Sn- It may contain Pt.

도 1에 도시된 바와 같이, 제어기(108)는 프로세싱 디바이스(109), 및 본원에서 설명되는 실시예들에 따른 다양한 메모리 관리 동작들을 수행하도록 구성된 메모리 관리 컴포넌트(111)를 포함한다. 이러한 예에 있어서, 메모리 관리 컴포넌트(111)는 이웃 방해 관리 컴포넌트(113), 드리프트 관리 컴포넌트(117), 및 오류 검출/정정 컴포넌트(115)(예를 들어, 오류 정정 코드(error correction code; ECC) 엔진)를 포함한다. 메모리 관리 컴포넌트(111)는 또한 다수의 데이터 구조체들(114)을 포함한다. 본원에서 사용되는, "데이터 구조체"는 데이터를 조직하거나 및/또는 저장하기 위한 포맷을 지칭하며, 이들의 예들은 테이블들, 어레이들, 파일들, 리스트 레코드들, 뷰(que)들, 트리들, 등을 포함한다. 이하에서 추가로 설명되는 바와 같이, 데이터 구조체들(114)은, 논리적인 관리되는 유닛 어드레스(logical managed unit address; MUA)들 어드레스들을 메모리(110) 내에 저장된 물리적인 관리되는 유닛(physical managed unit; PMU)들에 매핑하기 위한 논리적 대 물리적(logical to physical; L2P) 어드레스 매핑 데이터 구조체(예를 들어, 테이블) 및 드리프트 테이블을 포함할 수 있다. 일부 예들에 있어서, 데이터 구조체들(114)은, 메모리 셀에 대한 위치에 대한 기입들 사이의 시간들의 함수로서 제 위치 기입되는 메모리 셀에 이웃하는 메모리 셀들에 대응하는 방해 카운트들을 증분하기 위한 방해 증분들을 결정하기 위한 룩-업 테이블들을 포함할 수 있다. 특정 데이터 구조체들(114)을 설명하기 위해 사용되는 용어들 "테이블" 및 "리스트"이 오로지 비-제한적인 예들로서 의도된다는 것을 유의해야 한다.As shown in FIG. 1, controller 108 includes a processing device 109 and a memory management component 111 configured to perform various memory management operations in accordance with embodiments described herein. In this example, the memory management component 111 is a neighbor disturbance management component 113, a drift management component 117, and an error detection/correction component 115 (e.g., an error correction code (ECC)). ) Engine). The memory management component 111 also includes a number of data structures 114. As used herein, “data structure” refers to a format for organizing and/or storing data, examples of which include tables, arrays, files, list records, views (ques), trees. , Etc. As will be described further below, the data structures 114 may include a physical managed unit that stores logical managed unit addresses (MUA) addresses in the memory 110; It may include a logical to physical (L2P) address mapping data structure (eg, a table) and a drift table for mapping to PMUs. In some examples, the data structures 114 are a disturbance increment to increment the disturbance counts corresponding to memory cells neighboring the memory cell being written in place as a function of times between writes to the location to the memory cell. May include look-up tables to determine the values. It should be noted that the terms “table” and “list” used to describe particular data structures 114 are intended only as non-limiting examples.

메모리 관리 컴포넌트(111)의 다양한 컴포넌트들(113, 114, 115, 및 117)은 애플리케이션 특정 집적 회로(application specific integrated circuit; ASIC)들과 같은 별개의 컴포넌트들일 수 있거나, 또는 컴포넌트들은, 반드시 제어기(108)의 다른 부분들로부터 분리된 별개의 물리적 형태를 가질 필요가 없는 제어기(108) 내의 회로부에 의해 제공되는 기능을 반영할 수 있다. 도 1에서 메모리 관리 컴포넌트(111) 내의 컴포넌트들로서 예시되지만, 컴포넌트들(113, 114, 115, 및 117)의 각각 또는 이들의 부분들은 메모리 관리 컴포넌트(111) 외부에 및/또는 제어기(108) 외부에 존재할 수 있다. 예를 들어, 오류 검출/정정 컴포넌트(115)는 제어기(108) 상에 위치된 다수의 오류 정정 코딩 회로들 및 제어기(108) 외부에 위치된 다수의 오류 정정 코딩 회로들을 포함할 수 있다.The various components 113, 114, 115, and 117 of the memory management component 111 may be separate components, such as application specific integrated circuits (ASICs), or the components must be a controller ( It may reflect the functionality provided by the circuitry within the controller 108 that does not need to have a separate physical form separate from the other parts of the 108). Although illustrated as components within the memory management component 111 in FIG. 1, each or portions thereof of the components 113, 114, 115, and 117 are external to the memory management component 111 and/or external to the controller 108. Can exist in For example, the error detection/correction component 115 may include a number of error correction coding circuits located on the controller 108 and a number of error correction coding circuits located outside the controller 108.

도 2는 본 개시의 다수의 실시예들에 따른, 열적 기입 방해와 같은 이웃 방해를 관리하는 것과 연관된 컴포넌트들의 일 예를 예시한다. 도 2에서, 관리 유닛 어드레스(management unit address; MUA) 테이블(220)은 물리적 메모리(210)를 매핑하는 것과 연관된 논리적 어드레스 대 물리적 어드레스(L2P) 데이터 구조체를 나타낸다. 테이블(220)은 제어기(108)와 같은 제어기에 의해 유지되는 데이터 구조체들(114) 중 하나일 수 있으며, 메모리(210)는 도 1에 도시된 메모리(110)와 같은 메모리를 나타낼 수 있다.2 illustrates an example of components associated with managing neighbor disturbance, such as thermal write disturbance, in accordance with multiple embodiments of the present disclosure. In FIG. 2, a management unit address (MUA) table 220 represents a logical address to physical address (L2P) data structure associated with mapping physical memory 210. Table 220 may be one of data structures 114 maintained by a controller such as controller 108, and memory 210 may represent a memory such as memory 110 shown in FIG. 1.

동작 시에, 호스트(예를 들어, 호스트(102))는 데이터의 논리적 영역들(예를 들어, 섹터들)을 식별하기 위해 논리적 어드레싱(예를 들어, 논리적 블록 어드레싱)을 사용할 수 있다. 일 예로서, 논리적 어드레스는 256 바이트, 512 바이트, 1,024 바이트, 등에 대응할 수 있다. 논리적 어드레스들(예를 들어, 논리적 블록 어드레스(logical block address; LBA)들)은 제어기(예를 들어, 제어기(108))에 의해 관리되는 유닛(managed unit; MU)들로 조직될 수 있으며, 이는 (예를 들어, L2P 테이블을 통해) 제어기에 의해 관리되는 메모리의 유닛(예를 들어, 크기)을 지칭할 수 있다. 일 예로서, 논리적 MUA(LMUA)는, MU가 2 KB, 4 KB, 8KB, 등에 대응할 수 있도록 다수의 호스트 LBA들에 대응할 수 있다. MU의 크기는 또한 매핑되는 메모리(예를 들어, 메모리(210))와 연관된 기입 및/또는 판독 크기와 상관될 수 있다. MU는, 예를 들어, 저항 가변 메모리 셀들의 그룹(예를 들어, 물리적 MU(PMU))과 같은 다수의 메모리 셀들에 대응할 수 있다. 예를 들어, MU 크기는, 메모리의 물리적 페이지 크기의 배수, 메모리와 연관된 코드워드 크기의 배수, 등일 수 있다.In operation, the host (eg, host 102) may use logical addressing (eg, logical block addressing) to identify logical regions (eg, sectors) of data. As an example, the logical address may correspond to 256 bytes, 512 bytes, 1,024 bytes, or the like. Logical addresses (e.g., logical block addresses (LBAs)) can be organized into managed units (MUs) managed by a controller (e.g., controller 108), This may refer to a unit (eg, size) of memory that is managed by the controller (eg, through an L2P table). As an example, a logical MUA (LMUA) may correspond to a plurality of host LBAs so that the MU may correspond to 2 KB, 4 KB, 8 KB, and the like. The size of the MU may also be correlated with the write and/or read size associated with the memory being mapped (eg, memory 210). The MU may correspond to a number of memory cells, such as, for example, a group of resistance variable memory cells (eg, a physical MU (PMU)). For example, the MU size may be a multiple of the physical page size of the memory, a multiple of the codeword size associated with the memory, and the like.

도 2에 도시된 바와 같이, 테이블(220)의 MUA 엔트리들(221-1 내지 221-M)은 LMUA들에 의해 인덱싱될 수 있으며, 여기에서 각각의 엔트리는 메모리(210) 내의 대응하는 PMU의 위치를 나타내는(예를 들어, 이를 가리키는) 물리적인 관리되는 유닛 어드레스(physical managed unit address; PMUA)를 포함한다. 예를 들어, 도 2에 도시된 바와 같이, MUA 엔트리(221-1) 내의 PMUA-1은 PMU(217-1)를 가리키고, MUA 엔트리(221-2) 내의 PMUA-2는 PMU(217-2)를 가리킨다. 다수의 실시예들에 있어서, PMU(217)에 대응하는 셀들의 그룹에 저장된 데이터는, PMU(217)에 대응하는 PMUA에 대한 LMUA 현재 매핑을 포함할 수 있는 다양한 메타데이터뿐만 아니라 사용자 데이터 및/또는 패리티(parity) 데이터를 포함할 수 있다.2, MUA entries 221-1 to 221-M of table 220 may be indexed by LMUAs, where each entry is the corresponding PMU in memory 210. It contains a physical managed unit address (PMUA) indicating a location (eg, pointing to it). For example, as shown in FIG. 2, PMUA-1 in the MUA entry 221-1 points to the PMU 217-1, and PMUA-2 in the MUA entry 221-2 is the PMU 217-2. ). In many embodiments, the data stored in the group of cells corresponding to the PMU 217 is user data and/or user data as well as various metadata that may include the LMUA current mapping for the PMUA corresponding to the PMU 217. Alternatively, it may include parity data.

도 2는 또한 데이터 구조체(114)일 수 있는 드리프트 엔트리 테이블(drift entry table; DET)(225)의 일 예를 예시한다. DET(225)는, MUA 엔트리(221-1)와 같은 MUA 엔트리 내의 드리프트 엔트리 인덱스에 의해 참조될 수 있는(예를 들어, 이로 가리켜질 수 있는) 드리프트 엔트리(226)를 포함할 수 있으며, 한편 MUA 엔트리(221-1)에 대응하는 PMU(예를 들어, PMU(217-1)) 내의 다수의 메모리 셀들이 드리프트 중이다. 일부 예들에 있어서, 드리프트 테일(drift tail)은 드리프트로부터 폐기(retire)될 DET(225) 내의 다음 드리프트 엔트리이며, 드리프트 헤드는 기입될 DET(225) 내의 다음 드리프트 엔트리일 수 있다. FIG. 2 also illustrates an example of a drift entry table (DET) 225, which may be a data structure 114. DET 225 may include a drift entry 226 that may be referenced (e.g., may be pointed to) by a drift entry index within a MUA entry, such as MUA entry 221-1, while A number of memory cells in the PMU (eg, PMU 217-1) corresponding to the MUA entry 221-1 are drifting. In some examples, the drift tail is the next drift entry in DET 225 to be retired from the drift, and the drift head may be the next drift entry in DET 225 to be written.

저항 가변 셀들이 기입(예를 들어, 프로그래밍)될 때, 예를 들어, 그들의 저항성 상태는, 안정 저항성 상태에 도달할 때까지, 시간의 특정 기간(예를 들어, 드리프트 시간 기간) 동안 변화(예를 들어, 드리프트)할 수 있다. 예를 들어, 드리프트 시간 기간 동안의 데이터 판독은 신뢰할 수 없을 수 있다.When resistance variable cells are written (e.g., programmed), for example, their resistive state changes (e.g., during a certain period of time (e.g., a drift time period) until a stable resistive state is reached). For example, you can drift). For example, reading data during a drift time period may be unreliable.

도 2는 추가로 DRAM 버퍼와 같은 드리프트 데이터 버퍼(drift data buffer; DDB)(230)의 일 예를 예시한다. 드리프트 엔트리(226)에 지정된 어드레스를 갖는 DDB(230) 내의 위치(232)는, 동일한 데이터를 저장하는 PMU(217-1) 내의 다수의 셀들이 동시에 드리프트 중인 동안에, 드리프트 시간 기간 동안 데이터를 일시적으로 저장할 수 있다. 예를 들어, MUA 엔트리(221-1)에 대응하는(예를 들어, 인덱싱하는) LMUA를 지정하는 판독 명령에 응답하여, 메모리 관리 컴포넌트(108)는 MUA 엔트리(221-1) 내의 드리프트 표시자를 판독하는 것으로부터 PMU(217-1)가 드리프트 중인지 여부를 결정할 수 있다. 2 further illustrates an example of a drift data buffer (DDB) 230 such as a DRAM buffer. The location 232 in the DDB 230 with the address specified in the drift entry 226 temporarily loses data during the drift time period while multiple cells in the PMU 217-1 storing the same data are simultaneously drifting. Can be saved. For example, in response to a read command specifying an LMUA corresponding to (e.g., indexing) MUA entry 221-1, memory management component 108 detects a drift indicator in MUA entry 221-1. From reading it can be determined whether the PMU 217-1 is drifting.

PMU(217-1)가 드리프트 중이라고 결정하는 것에 응답하여, 메모리 관리 컴포넌트(111)는 드리프트 관리 동작을 수행하기 위해 드리프트 관리 컴포넌트(117)를 활성화할 수 있다. 예를 들어, 드리프트 관리 컴포넌트(117)는, 드리프트 엔트리(226)를 참조하는 MUA 엔트리(221-1) 내의 드리프트 엔트리를 판독하는 것에 응답하여 드리프트 엔트리(226)를 판독할 수 있다. 그런 다음, 드리프트 관리 컴포넌트(117)는 드리프트 엔트리(226)로부터 위치(232)의 어드레스를 판독하는 것에 응답하여 위치(232)로부터 데이터를 판독할 수 있다.In response to determining that the PMU 217-1 is drifting, the memory management component 111 can activate the drift management component 117 to perform a drift management operation. For example, the drift management component 117 can read the drift entry 226 in response to reading the drift entry in the MUA entry 221-1 that refers to the drift entry 226. The drift management component 117 can then read data from the location 232 in response to reading the address of the location 232 from the drift entry 226.

PMU(217-1)가 드리프트 중이라고 결정되는 한, PMU(217-1) 대신에 DDB(230)로부터 데이터가 판독될 수 있다. 드리프트 기간에 대응하는 특정 시간 기간 이후에, 메모리 관리 컴포넌트(111)는 PMU(217-1)가 드리프트 중이 아니라는 것을 표시하도록 드리프트 표시자를 설정할 수 있다. 그런 다음, 메모리 관리 컴포넌트(111)는, 드리프트 표시자를 판독하는 것으로부터 PMU(217-1)가 드리프트 중이 아니라고 결정하는 것에 응답하여 PMU(217-1)로부터 데이터를 판독할 수 있다.As long as it is determined that the PMU 217-1 is drifting, data can be read from the DDB 230 instead of the PMU 217-1. After a specific time period corresponding to the drift period, the memory management component 111 may set the drift indicator to indicate that the PMU 217-1 is not drifting. The memory management component 111 can then read data from the PMU 217-1 in response to determining that the PMU 217-1 is not drifting from reading the drift indicator.

도 3은 본 개시의 다수의 실시예들에 따른 방해 관리를 위해 구성될 수 있으며 MUA 엔트리(221)일 수 있는 MUA 엔트리(321)의 일 예를 예시한다. MUA 엔트리(321)은, 예를 들어, PMU(217)를 어드레싱할 수 있는 PMUA를 저장할 수 있는 필드(340)를 포함한다. MUA 엔트리(321)는 방해 카운터 필드(342), 플래그와 같은 드리프트 표시자를 저장할 수 있는 드리프트 표시자 필드(344), 및 드리프트 엔트리(226)와 같은 DET(225) 내의 드리프트 엔트리를 참조할 수 있는(예를 들어, 가리킬 수 있는) 드리프트 엔트리 인덱스를 저장할 수 있는 드리프트 엔트리 인덱스 필드(346)를 포함한다.3 illustrates an example of a MUA entry 321 that may be a MUA entry 221 and may be configured for disturbance management according to multiple embodiments of the present disclosure. The MUA entry 321 includes a field 340 that may store a PMUA capable of addressing the PMU 217, for example. The MUA entry 321 may refer to a disturbance counter field 342, a drift indicator field 344 that may store a drift indicator such as a flag, and a drift entry in the DET 225 such as a drift entry 226. Includes a drift entry index field 346 that can store a drift entry index (eg, can be pointed to).

도 4는 본 개시의 다수의 실시예들에 따른 방해 관리를 위해 구성될 수 있으며 드리프트 엔트리(226)일 수 있는 드리프트 엔트리(426)의 일 예를 예시한다. 드리프트 엔트리(426)는, 그들의 드리프트 엔트리 인덱스가 드리프트 엔트리(426)를 참조하는, MUA 엔트리(221-1)와 같은 MUA 엔트리로 다시 참조할 수 있는 LMUA를 저장할 수 있는 LMUA 필드(450)를 포함할 수 있다. 예를 들어, 필드(346) 내의 드리프트 엔트리 인덱스는 드리프트 엔트리(426)를 참조할 수 있으며, 필드(450) 내의 LMUA는 MUA 엔트리(321)의 LMUA일 수 있다. 드리프트 엔트리(426)는, 필드(450) 내의 LMUA에 대응하는 PMU(217) 내의 다수의 메모리 셀들이 마지막으로 기입된 시간일 수 있는 타임스탬프(timestamp)를 저장할 수 있는 타임스탬프 필드(452)를 포함한다. 예를 들어, LMUA는 PMU(217-1)에 대응하는 MUA 엔트리(221-1)에 대응할 수 있으며, 타임스탬프는 PMU(217-1) 내의 메모리 셀들이 기입된 마지막 시간일 수 있다. 드리프트 엔트리(426)는, DDB(230) 내의 위치의 DDB 어드레스를 저장할 수 있는 DDB 어드레스 필드(454)를 포함할 수 있다.4 illustrates an example of a drift entry 426 that may be a drift entry 226 and may be configured for disturbance management according to multiple embodiments of the present disclosure. The drift entry 426 includes an LMUA field 450 that can store an LMUA that can be referenced back to a MUA entry, such as MUA entry 221-1, whose drift entry index refers to drift entry 426. can do. For example, the drift entry index in the field 346 may refer to the drift entry 426, and the LMUA in the field 450 may be the LMUA of the MUA entry 321. The drift entry 426 includes a timestamp field 452 that can store a timestamp that can be a time when a number of memory cells in the PMU 217 corresponding to the LMUA in field 450 were last written. Includes. For example, the LMUA may correspond to the MUA entry 221-1 corresponding to the PMU 217-1, and the timestamp may be the last time memory cells in the PMU 217-1 were written. The drift entry 426 may include a DDB address field 454 that may store the DDB address of a location in the DDB 230.

필드(450) 내의 LMUA가 MUA 엔트리(221-1)에 대응하는 예에 있어서, 타임스탬프가 임계 드리프트 시간보다 더 큰 경우, 이는 PMU(217-1) 내의 메모리 셀들이 더 이상 드리프트 중이 아님을 의미하며, 드리프트 관리 컴포넌트(117)는, MUA 엔트리(221-1)에 의해 참조된, 드리프트 엔트리(426)와 같은 드리프트 엔트리를 폐기할 수 있다. 예를 들어, MUA 엔트리(221-1) 내의 드리프트 표시자가 드리프트 테일을 가리키는 경우(예를 들어, 드리프트 엔트리(426)가 드리프트 테일인 경우), 드리프트 엔트리(426)가 활성화되며 폐기되고, 드리프트 테일이 다음 드리프트 엔트리로 증분되며, 그럼으로써 추가적인 기입을 위하여 필드(454) 내의 DDB 어드레스를 갖는 DDB(230) 내의 위치 및 드리프트 엔트리(426)를 자유롭게 한다. 예를 들어, 드리프트 관리 컴포넌트(117)는, 드리프트 엔트리(426)를 폐기하는 것에 응답하여 PMU(217-1)가 드리프트 중이 아니라는 것을 표시하도록 MUA 엔트리(221-1) 내의 드리프트 표시자를 설정할 수 있다. MUA 엔트리(221-1) 내의 드리프트 표시자가 드리프트 테일을 가리키지 않는 경우(예를 들어, 드리프트 엔트리(426)가 드리프트 테일이 아닌 경우), 드리프트 엔트리(426)는 비활성이며(예를 들어, 오래된 것이며(stale)), MUA 엔트리(221-1) 내의 드리프트 표시자는 변화되지 않은 채로 남겨진다.In the example in which the LMUA in the field 450 corresponds to the MUA entry 221-1, when the timestamp is greater than the threshold drift time, this means that the memory cells in the PMU 217-1 are no longer drifting. And, the drift management component 117 may discard the drift entry, such as the drift entry 426, referenced by the MUA entry 221-1. For example, when the drift indicator in the MUA entry 221-1 indicates a drift tail (e.g., when the drift entry 426 is a drift tail), the drift entry 426 is activated and discarded, and the drift tail It is incremented to the next drift entry, thereby freeing the position and drift entry 426 in DDB 230 with the DDB address in field 454 for further writing. For example, drift management component 117 may set a drift indicator in MUA entry 221-1 to indicate that PMU 217-1 is not drifting in response to discarding drift entry 426. . If the drift indicator in the MUA entry 221-1 does not point to a drift tail (e.g., if the drift entry 426 is not a drift tail), then the drift entry 426 is inactive (e.g., old It is stale, and the drift indicator in the MUA entry 221-1 is left unchanged.

일부 예들에 있어서, PMU(217-2) 내의 다수의 메모리 셀들은 PMU(217-1) 내의 다수의 메모리 셀들에 대한 이웃들일 수 있다. 예를 들어, PMU(217-2) 내의 메모리 셀들은, PMU(217-1)의 메모리 셀들에 대한 제 위치 기입들에 의해 방해 기입될(write disturbed) 수 있다. PMU(217-2) 내의 메모리 셀들이 방해를 받는 양은 PMU(217-1) 내의 메모리 셀들에 대한 기입들의 빈도에 의존할 수 있다. 예를 들어, 기입들의 빈도가 높을 수록, 방해가 더 커진다. 예를 들어, 기입들 사이의 시간 간격이 더 작아질 수록, 빈도가 더 높아지고 방해가 더 커진다. 일부 예들에 있어서, PMU(217-2) 내의 메모리 셀들에 대응하는 방해 카운트가 증분될 수 있는 카운트 증분은 PMU(217-1)의 메모리 셀들에 대한 연속적인 기입들 사이의 시간 간격(예를 들어, 이의 빈도)에 기초할 수 있다. MUA(321)가 MUA(221-2)인 예들에 있어서, 필드(342) 내의 방해 카운터의 방해 카운트는, PMU(217-1)의 메모리 셀들에 대한 기입들 사이의 시간 간격에 기초하여, 방해 카운트 증분과 같은 카운트 증분만큼 증분될 수 있다.In some examples, multiple memory cells in PMU 217-2 may be neighbors to multiple memory cells in PMU 217-1. For example, memory cells in PMU 217-2 may be write disturbed by in-place writes to memory cells of PMU 217-1. The amount by which memory cells in PMU 217-2 are disturbed may depend on the frequency of writes to memory cells in PMU 217-1. For example, the higher the frequency of writings, the greater the disturbance. For example, the smaller the time interval between writings, the higher the frequency and the greater the disturbance. In some examples, the count increment by which the disturbance count corresponding to the memory cells in the PMU 217-2 can be incremented is the time interval between successive writes to the memory cells in the PMU 217-1 (e.g., , Its frequency). In examples where the MUA 321 is the MUA 221-2, the disturbance count of the disturbance counter in field 342 is based on the time interval between writes to the memory cells of the PMU 217-1, the disturbance. It can be incremented by count increments, such as count increments.

도 5는 본 개시의 다수의 실시예들에 따른 특정 위치에 대한 마지막 기입으로부터의 시간과 기입 방해 사이의 관계를 예시하는 커브의 일 예이다. 예를 들어, 커브(560)는, PMU(예를 들어, PMU(221-2)) 내의 다수의 메모리 셀들과 같은 메모리 셀에 대응하는 방해 카운트를 증분하기 위한 양들(예를 들어, 방해 카운트 증분들)과 이웃 PMU(예를 들어, PMU(221-1))에서와 같은 이웃 메모리 셀들에 대한 제 위치 연속 기입들 사이의 시간과 같은 연속적인 기입 시간 간격들 사이의 관계를 예시한다. 일부 예들에 있어서, 커브(560)는 지수적 감쇠 함수에 대응할 수 있다. 그러나, 본 개시가 이에 한정되지 않으며, 방해 카운트 증분 대 기입들 사이의 시간은 다른 함수적 관계들 중에서 선형적 관계일 수 있다. 일부 예들에 있어서, 방해 카운트 증분은, 데이터 구조체(114)일 수 있는 룩-업 테이블 내의 연속적인 기입 시간 간격들의(예를 들어, 이에 의해 인덱싱되는) 함수로서 표로 만들어질 수 있다. 도 5에 도시된 바와 같이, 방해 카운트 증분은 연속적인 기입 시간 간격들이 증가함에 따라(예를 들어, 기입 빈도들이 감소함에 따라) 감소한다. 일부 예들에 있어서, 연속적인 기입 시간 간격은, 필드(452) 내의 타임스탬프와 같은 메모리 셀이 마지막으로 기입된 시간과 메모리 셀들이 현재 기입되고 있는 현재 시간 사이의 시간 차이일 수 있다. 5 is an example of a curve illustrating the relationship between write interruption and time from last write to a specific location according to multiple embodiments of the present disclosure. For example, curve 560 is a quantity for incrementing a disturbance count corresponding to a memory cell, such as a number of memory cells in a PMU (e.g., PMU 221-2) (e.g., incrementing the disturbance count). S) and successive write time intervals, such as the time between in-place successive writes to neighboring memory cells, such as in a neighboring PMU (e.g., PMU 221-1). In some examples, curve 560 may correspond to an exponential decay function. However, the present disclosure is not limited thereto, and the time between the obstruction count increment versus writes may be a linear relationship among other functional relationships. In some examples, the disturbance count increment may be tabulated as a function of successive write time intervals (eg, indexed by) within the look-up table, which may be the data structure 114. As shown in Fig. 5, the disturbance count increment decreases as successive write time intervals increase (eg, as write frequencies decrease). In some examples, the successive write time interval may be a time difference between a time when a memory cell was last written, such as a timestamp in field 452 and a current time at which the memory cells are currently being written.

연속적인 기입 시간 간격들은, 빈(bin)들로 지칭될 수 있는 연속적인 기입 시간 간격들의 범위들로 분할될 수 있다. 도 5에서, 예를 들어, 연속적인 기입 시간 간격들(562-1 내지 562-4)의 범위들은 빈 1 내지 빈 4로서 각기 지칭될 수 있다. 개별적인 범위들의 시작에서의 연속적인 기입 시간 간격들(예를 들어, 가장 낮은 연속적인 기입 시간 간격들)에 대응하는 개별적인 방해 카운트 증분들은 개별적인 범위들에 대한 개별적인 방해 카운트 증분들일 수 있다. 예를 들어, 각기 데이터 심볼들(564-1 내지 564-4)에 대응하는 개별적인 방해 카운트 증분들은 각기 범위들(562-1 내지 562-4)에 대한 것일 수 있다. 일부 예들에 있어서, 범위들의 시작에서(예를 들어, 범위들의 가장 낮은 연속적인 기입 시간 간격들에서)와 같은 방해 카운트 증분들은, 데이터 구조체(114)일 수 있는 룩-업 테이블 내의 범위들의 함수로서 표로 만들어질 수 있다. 일 예에 있어서, 기입들 사이의 결정된 시간이 범위(562-3)와 같은 특정 범위 내에 놓인 경우, 방해 카운트 증분은, 데이터 포인트(564-3)에 대응하는 방해 카운트와 같은 그 범위에 대한 방해 카운트 증분이다.Successive write time intervals can be divided into ranges of successive write time intervals, which can be referred to as bins. In FIG. 5, for example, ranges of consecutive write time intervals 562-1 to 562-4 may be referred to as bins 1 to 4, respectively. Individual disturbance count increments corresponding to successive write time intervals (eg, lowest consecutive write time intervals) at the beginning of the individual ranges may be individual disturbance count increments for the individual ranges. For example, individual disturbance count increments corresponding to data symbols 564-1 to 564-4, respectively, may be for ranges 562-1 to 562-4, respectively. In some examples, disturbance count increments, such as at the beginning of ranges (e.g., at the lowest consecutive write time intervals of ranges), are a function of ranges in the look-up table, which may be data structure 114. Can be tabulated. In one example, if the determined time between writings lies within a specific range, such as range 562-3, the disturbance count increment is the disturbance count for that range, such as the disturbance count corresponding to data point 564-3. It is a count increment.

메모리(110) 내에 있을 수 있는 메모리 어레이는, 이상에서 설명된 저항 가변 셀들과 같은, 메모리 셀들의 평면들의 다수의 스택들을 포함할 수 있는 3D 교차점 메모리 어레이일 수 있다. 각각의 평면에서, 메모리 셀들의 로우(row)들로서 지칭될 수 있는 메모리 셀들의 그룹들이 워드 라인들로서 지칭될 수 있는 액세스 라인들에 공통적으로 결합될 수 있다. 각각의 평면은 또한, 센싱 증폭기들에 결합될 수 있는 데이터 라인들(예를 들어, 비트 라인들)로서 지칭될 수 있는 액세스 라인들에 공통적으로 결합될 수 있는 메모리 셀들의 컬럼(column)들로서 지칭될 수 있는 메모리 셀들의 그룹들을 포함할 수 있다. 예를 들어, 컬럼들은 로우들을 횡단(예를 들어, 교차)할 수 있다.A memory array that may be in memory 110 may be a 3D intersection memory array that may include multiple stacks of planes of memory cells, such as the resistance variable cells described above. In each plane, groups of memory cells, which may be referred to as rows of memory cells, may be commonly coupled to access lines, which may be referred to as word lines. Each plane is also referred to as a column of memory cells that can be commonly coupled to access lines, which can be referred to as data lines (e.g., bit lines) that can be coupled to sensing amplifiers. It may contain groups of memory cells that may be. For example, columns can traverse (eg, cross) rows.

일부 예들에 있어서, 공격자 셀에 대한 이웃들인 이웃 셀들은, 임의의 중간 셀들이 없는 공격자 셀에 바로 인접한 직접 이웃들일 수 있다. 예를 들어, 공격자 셀은 동일한 평면 또는 상이한 평면들을 갖는 직접 이웃들을 가질 수 있다. In some examples, neighboring cells that are neighbors to the attacker cell may be direct neighbors immediately adjacent to the attacker cell without any intermediate cells. For example, an attacker cell may have direct neighbors with the same plane or different planes.

이웃 셀들에 대한 방해의 양은 공격자 셀에 대한 그들의 공간적 관계에 의존할 수 있다. 예를 들어, 이웃 셀들에 대한 방해는 공격자 셀로부터의 방향에 의존할 수 있다. 예를 들어, 비트 라인을 따른 이웃 셀에 대한 방해는 워드 라인을 따른 이웃 셀에 대한 방해보다 더 클 수 있다. 따라서, 기입들 사이의 동일한 시간에 대하여, 방해 카운트 증분은 워드 라인을 따른 이웃 셀에 대한 것보다 비트 라인을 따른 이웃 셀에 대하여 더 클 수 있다. 이와 같이, 상이한 공간적 관계들에 대하여 기입들 사이의 시간과 방해 카운트 증분 사이에 상이한 함수적 관계들이 존재할 수 있다. 예를 들어, 각각의 공간적 관계에 대하여 기입들 사이의 시간들 대 방해 카운트 증분들의 상이한 룩-업 테이블이 존재할 수 있다. 방해 관리 컴포넌트(113)는, 특정 공간적 관계에 대하여 함수적 관계(예를 들어, 룩-업 테이블)을 선택하고 그런 다음 선택된 함수적 관계에 의해 기입들 사이의 시간으로부터 방해 카운트 증분을 결정함으로써 방해 카운트 증분을 결정할 수 있다.The amount of interference to neighboring cells can depend on their spatial relationship to the attacker cell. For example, interference to neighboring cells may depend on the direction from the attacker cell. For example, interference to a neighboring cell along a bit line may be greater than an interference to a neighboring cell along a word line. Thus, for the same time between writes, the disturbance count increment may be larger for a neighboring cell along a bit line than for a neighboring cell along a word line. As such, different functional relationships may exist between the time between writes and the obstruction count increment for different spatial relationships. For example, there may be a different look-up table of disturbance count increments versus times between entries for each spatial relationship. The disturbance management component 113 selects a functional relationship (e.g., a look-up table) for a particular spatial relationship and then determines the disturbance count increment from the time between entries by the selected functional relationship. You can determine the count increment.

도 6은 본 개시의 다수의 실시예들에 따른 방해 관리를 위한 방법(670)의 일 예의 순서도이다. 예를 들어, 방법(670)은 방해 관리 컴포넌트(113)에 의해 수행될 수 있다.6 is a flowchart of an example of a method 670 for disturbance management in accordance with multiple embodiments of the present disclosure. For example, method 670 may be performed by disturbance management component 113.

블록(671)에서, 메모리 셀들에 대한 기입들 사이의 시간이 결정된다. 예를 들어, 기입들 사이의 시간은, 메모리 셀이 현재 기입되고 있는 현재 시간과 메모리 셀이 마지막으로 기입된 시간 사이의 시간 차이일 수 있다. 예를 들어, 메모리 셀이 마지막으로 기입된 시간은, 그 메모리 셀을 포함하는 PMU에 대응하는 MUA 엔트리에 의해 참조되는 드리프트 엔트리 내의 타임스탬프일 수 있다. 타임스탬프는 메모리 셀이 마지막으로 기입된 시간을 결정하기 위해 판독될 수 있다. 타임스탬프는, 이것이 판독된 이후에 현재 시간으로 업데이트될 수 있다. At block 671, the time between writes to the memory cells is determined. For example, the time between writes may be a time difference between a current time at which the memory cell is currently being written and a time at which the memory cell is last written. For example, the time the memory cell was last written may be a timestamp in the drift entry referenced by the MUA entry corresponding to the PMU containing the memory cell. The timestamp can be read to determine when the memory cell was last written. The timestamp can be updated with the current time after it has been read.

일부 예들에 있어서, 이미 드리프트 중인 메모리 셀에 대하여 기입이 발생할 때, 메모리 셀을 포함하는 PMU에 대응하는 MUA 엔트리에 의해 참조되는 DET(225) 내의 현재 DET 엔트리는 메모리 셀이 마지막으로 기입된 시간을 결정하기 위해 판독될 수 있다. 타임스탬프는, 예를 들어, DET(225) 내의 새로운 DET 엔트리 내에 업데이트된 타임스탬프를 기입함으로써, 이것이 판독된 이후에 현재 시간으로 업데이트될 수 있다. 그런 다음, 현재 DET 엔트리가 무효화되며, 메모리 셀을 포함하는 PMU에 대응하는 MUA 엔트리는 새로운 DET 엔트리를 참조하도록 업데이트될 수 있다.In some examples, when a write occurs to a memory cell that is already drifting, the current DET entry in the DET 225 referenced by the MUA entry corresponding to the PMU containing the memory cell indicates the time the memory cell was last written. Can be read to determine. The timestamp may be updated to the current time after it has been read, for example by writing the updated timestamp in a new DET entry in DET 225. Then, the current DET entry is invalidated, and the MUA entry corresponding to the PMU including the memory cell may be updated to refer to the new DET entry.

블록(672)에서, 이웃 메모리 셀에 대응하는 방해 카운트는 기입들 사이의 시간에 기초하는 특정 양에 의해 증분될 수 있다. 방해 카운트 증분은, 기입들 사이의 시간과 특정 양 사이의 관계로부터, 예컨대 도 5의 관계로부터 결정될 수 있다. 예를 들어, 특정 양은 방해 카운트 증분, 예컨대, 기입들 사이의 결정된 시간을 포함하는, 범위(562-3)와 같은, 연속적인 기입 시간 간격들의 범위에 대응하는 데이터 포인트(564-3)에 대응하는 방해 카운트 증분일 수 있다. 블록(673)에서, 리프레시 동작은, 방해 카운트가 임계 카운트에 도달하는 것에 응답하여 이웃 셀에 대하여 수행된다.At block 672, the disturbance count corresponding to the neighboring memory cell may be incremented by a specific amount based on the time between writes. The disturbance count increment can be determined from a relationship between a certain amount and time between writings, for example from the relationship in FIG. 5. For example, a specific amount corresponds to a data point 564-3 that corresponds to a range of consecutive write time intervals, such as range 562-3, which includes a disturbance count increment, e.g., a determined time between writes. May be an increment of the disturbance count. At block 673, a refresh operation is performed on the neighboring cell in response to the disturbance count reaching a threshold count.

도 7은 본 개시의 다수의 실시예들에 따른 기입 방해 관리 및 드리프트 관리를 포함할 수 있는 방법(775)의 일 예의 순서도이다. 예를 들어, 방법(775)은, 적어도 부분적으로 방해 관리 컴포넌트(113) 및 드리프트 관리 컴포넌트(117)에 의해 수행될 수 있다. 7 is a flow chart of an example of a method 775 that may include write disturbance management and drift management in accordance with multiple embodiments of the present disclosure. For example, method 775 may be performed, at least in part, by disturbance management component 113 and drift management component 117.

수신된 기입 명령 내의 LMUA에 대응하는 테이블(220) 내의 MUA 엔트리(221-1)과 같은 MUA 엔트리가 블록(776)에서 판독된다. 블록(777)에서, PMUA-1과 같은 MUA 엔트리 내의 PMUA에 대응하는, PMU(217-1)와 같은 PMU 내의 다수의 메모리 셀들은 MUA 엔트리 내의 드리프트 표시자로부터 드리프트 중인 것으로 결정된다. 블록(778)에서, PMU이 기입된 마지막 시간은, MUA 엔트리 내의 드리프트 엔트리 인덱스에 의해 참조되는 테이블(225) 내의 드리프트 엔트리(226)와 같은 드리프트 엔트리 내의 타임스탬프로부터 결정된다. 예를 들어, 타임스탬프는, PMU 내의 메모리 셀들이 드리프트 중이라고 결정하는 것에 응답하여 판독될 수 있다.A MUA entry, such as MUA entry 221-1 in table 220 corresponding to the LMUA in the received write command, is read at block 776. At block 777, it is determined that a number of memory cells in a PMU, such as PMU 217-1, corresponding to a PMUA in a MUA entry, such as PMUA-1, are drifting from a drift indicator in the MUA entry. At block 778, the last time the PMU was written is determined from the timestamp in the drift entry, such as the drift entry 226 in the table 225 referenced by the drift entry index in the MUA entry. For example, the timestamp may be read in response to determining that memory cells in the PMU are drifting.

블록(779)에서, 기입 명령과 연관된 현재 시간과 PMU가 기입된 마지막 시간 사이의 시간 차이가 결정된다. 예를 들어, 시간 차이는, PMU 내의 다수의 셀들에 대한 연속적인 기입들 사이의 시간과 같은 것에 대한 연속적인 기입 시간 간격일 수 있으며, PMU에 대한 기입들의 빈도를 나타낼 수 있다.At block 779, a time difference between the current time associated with the write command and the last time the PMU was written is determined. For example, the time difference may be a continuous write time interval for such as the time between successive writes to multiple cells in the PMU, and may indicate the frequency of writes to the PMU.

블록(780)에서, 다수의 이웃 메모리 셀들을 포함하는 PMU(217-2)와 같은 PMU에 대응하는 테이블(220) 내의 MUA 엔트리 내의 방해 카운트는, 예컨대, 방해 관리의 부분으로서 방해 관리 컴포넌트(113)에 의해, 시간 차이에 기초하는 방해 카운트 증분만큼 증분된다. 예를 들어, PMU(217-2) 내의 이웃 메모리 셀들은 PMU(217-1) 내의 메모리 셀들에 대한 이웃들일 수 있다. 일부 예들에 있어서, 방해 카운트가 증분된 이후에, MUA 엔트리(221-1) 내의 드리프트 엔트리 인덱스는, 예컨대 드리프트 관리자(117)에 의해, 드리프트 엔트리가 비활성이라는 것을 나타내도록 설정(예를 들어, 클리어)될 수 있다. 이에 더하여, 드리프트 표시자는, PMU(217-1) 내의 메모리 셀들이 드리프트 중이 아님을 나타내도록 설정될 수 있다.At block 780, the disturbance count in the MUA entry in the table 220 corresponding to the PMU, such as the PMU 217-2 containing a number of neighboring memory cells, is determined, e.g., as part of the disturbance management. ), it is incremented by an increment of the disturbance count based on the time difference. For example, neighboring memory cells in PMU 217-2 may be neighbors to memory cells in PMU 217-1. In some examples, after the disturbance count has been incremented, the drift entry index in the MUA entry 221-1 is set to indicate that the drift entry is inactive (e.g., by the drift manager 117). ) Can be. In addition, the drift indicator may be set to indicate that memory cells in the PMU 217-1 are not drifting.

방해 카운트 증분은, 이상에서 논의된 바와 같이, 방해 카운트 증분들과 연속적인 기입 시간 간격 사이의 함수적 관계에 의해 결정될 수 있다. 예를 들어, 방해 카운트 증분은, 연속적인 기입 시간 간격을 포함하는 연속적인 기입 시간 간격들의 범위에 대응할 수 있다. 일부 예들에 있어서, 함수적 관계는 PMU(217-1) 내의 그리고 PMU(217-2) 내의 메모리 셀들 사이의 공간적 관계에 기초하여 선택될 수 있다. 블록(781)에서, 리프레시 동작은, 방해 카운트가 임계 카운트에 도달하는 것에 응답하여 다수의 이웃 메모리 셀들을 포함하는 PMU에 대하여 수행된다. 일부 예들에 있어서, 다수의 이웃 메모리 셀들을 포함하는 PMU에 대응하는 방해 카운트는 리프레시 동작을 수행하는 것에 응답하여 리셋될 수 있다.The disturbance count increment can be determined by a functional relationship between the disturbance count increments and successive write time intervals, as discussed above. For example, the disturbance count increment may correspond to a range of consecutive write time intervals including the continuous write time interval. In some examples, the functional relationship may be selected based on a spatial relationship within the PMU 217-1 and between memory cells within the PMU 217-2. At block 781, a refresh operation is performed on the PMU comprising multiple neighboring memory cells in response to the disturbance count reaching a threshold count. In some examples, a disturbance count corresponding to a PMU including multiple neighboring memory cells may be reset in response to performing a refresh operation.

일부 예들에 있어서, 기입 명령 내의 데이터는 DDB(230) 내의 엔트리에 그리고 LMUA에 동시에 대응하는 MUA 엔트리 내의 PMUA에 대응하는 PMU에 기입된다. 예를 들어, 데이터는, MUA 엔트리(221-1) 내의 드리프트 엔트리 인덱스가 드리프트 엔트리가 비활성임을 나타내도록 설정(예를 들어, 클리어)된 이후에 그리고 MUA 엔트리(221-1) 내의 드리프트 표시자가 드리프트가 없음을 나타내도록 설정된 이후에 기입될 수 있다.In some examples, data in the write command is written to an entry in DDB 230 and to a PMU corresponding to a PMUA in a MUA entry that simultaneously corresponds to an LMUA. For example, the data is drifted after the drift entry index in the MUA entry 221-1 is set (e.g., cleared) to indicate that the drift entry is inactive and the drift indicator in the MUA entry 221-1 May be written after it is set to indicate that there is no.

MUA 엔트리(221-1) 내의 드리프트 표시자는 PMU(217-1) 내의 셀들이 드리프트 중임을 나타내도록 설정될 수 있으며, MUA 엔트리(221-1) 내의 드리프트 엔트리 인덱스는 (예를 들어, 드리프트 엔트리(226) 이후의) 다음 드리프트 엔트리를 참조하도록 설정될 수 있다. 드리프트 엔트리 내의 타임스탬프 필드는 현재 시간으로 설정될 수 있다. 그런 다음, 그 드리프트 엔트리 내의 DDB 어드레스는 DDB(230) 내의 위치로 설정될 수 있으며, 기입 명령 내의 데이터가 DDB 어드레스를 갖는 DDB(230) 내의 위치에 그리고 PMU(217-1)에 동시에 기입될 수 있다.The drift indicator in the MUA entry 221-1 may be set to indicate that cells in the PMU 217-1 are drifting, and the drift entry index in the MUA entry 221-1 is (e.g., the drift entry ( 226) after) may be set to refer to the next drift entry. The timestamp field in the drift entry may be set to the current time. Then, the DDB address in the drift entry can be set to a location in the DDB 230, and data in the write command can be simultaneously written to a location in the DDB 230 having the DDB address and to the PMU 217-1. have.

도 8은, 본 개시의 구현예들이 동작할 수 있는 컴퓨터 시스템(883)의 형태의 예시적인 장치의 블록도이다. 예를 들어, 컴퓨터 시스템(883)은 도 1의 메모리 시스템(104)(예를 들어, SSD, eMMC 디바이스, UFS)과 같은 메모리 시스템을 포함하거나 또는 사용할 수 있다. 시스템(883)은 또한 도 1에 도시된 컴퓨팅 시스템(100)과 같은 시스템일 수 있다. 시스템(883)은 개인용 컴퓨터(personal computer; PC), 태블릿 PC, 셋-탑 박스(set-top box; STB), 개인 디지털 보조장치(Personal Digital Assistant; PDA), 셀룰러 폰, 웹 기기, 서버, 네트워크 라우터, 스위치 또는 브리지, 또는 기계에 의해 취해질 액션들을 지정하는 (순차적인 또는 다른) 명령어들의 세트를 실행하는 것이 가능한 임의의 기계일 수 있다. 또한, 단일 기계가 예시되었지만, 용어 "기계"는 또한 본원에서 논의된 방법들 중 임의의 하나 이상의 방법을 수행하기 위한 명령어들의 세트(또는 복수의 세트들)을 개별적으로 또는 함께 실행하는 기계들의 임의의 집합을 포함하는 것으로 고려되어야만 한다.8 is a block diagram of an exemplary apparatus in the form of a computer system 883 in which implementations of the present disclosure may operate. For example, computer system 883 may include or use a memory system such as memory system 104 (eg, SSD, eMMC device, UFS) of FIG. 1. System 883 may also be a system such as computing system 100 shown in FIG. 1. The system 883 includes a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cellular phone, a web device, a server, It may be a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or other) specifying actions to be taken by the machine. In addition, although a single machine has been illustrated, the term “machine” also refers to any of the machines that individually or together execute a set of instructions (or multiple sets) for performing any one or more of the methods discussed herein. Should be considered to contain a set of.

예시적인 컴퓨터 시스템(883)은, 버스(886)를 통해 서로 통신하는 프로세싱 디바이스(809), 메인 메모리(884)(예를 들어, 판독-전용 메모리(ROM), 플래시 메모리, 동기식 DRAM(SDRAM) 또는 램버스 DRAM(Rambus DRAM; RDRAM)과 같은 동적 랜덤 액세스 메모리(DRAM), 등), 정적 메모리(885)(예를 들어, 플래시 메모리, 정적 랜덤 액세스 메모리(static random access memory; SRAM), 등), 및 데이터 저장 디바이스(810)를 포함한다.The exemplary computer system 883 includes a processing device 809, main memory 884 (e.g., read-only memory (ROM), flash memory, synchronous DRAM (SDRAM)) in communication with each other via a bus 886. Or dynamic random access memory (DRAM) such as Rambus DRAM (RDRAM), etc.), static memory 885 (e.g., flash memory, static random access memory (SRAM), etc.) , And a data storage device 810.

프로세싱 디바이스(809)는 마이크로프로세서, 중앙 프로세싱 유닛, 또는 유사한 것과 같은 하나 이상의 범용 프로세싱 디바이스들을 나타낸다. 더 구체적으로, 프로세싱 디바이스는, 복합 명령어 세트 컴퓨팅(complex instruction set computing; CISC) 마이크로프로세서, 감소 명령어 세트 컴퓨팅(reduced instruction set computing; RISC) 마이크로프로세서, 훨씬 긴 명령어 워드(very long instruction word; VLIW) 마이크로프로세서, 또는 다른 명령어 세트들을 구현하는 프로세서, 또는 명령어 세트들의 조합을 구현하는 프로세서들일 수 있다. 프로세싱 디바이스(809)는 또한 애플리케이션 특정 집적 회로(application specific integrated circuit; ASIC), 필드 프로그램가능 게이트 어레이(field programmable gate array; FPGA), 디지털 신호 프로세서(digital signal processor; DSP), 네트워크 프로세서, 또는 유사한 것과 같은 하나 이상의 특수-목적 프로세싱 디바이스들일 수 있다. 프로세싱 디바이스(809)는 본원에서 논의되는 동작들 및 단계들을 수행하기 위하여 명령어들(887)을 실행하도록 구성된다. 컴퓨터 시스템(883)은 네트워크(889)를 통해 통신하기 위한 네트워크 인터페이스 디바이스(888)를 더 포함할 수 있다.Processing device 809 represents one or more general purpose processing devices such as a microprocessor, a central processing unit, or the like. More specifically, the processing device includes a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW). It may be a microprocessor, or a processor that implements other instruction sets, or processors that implement a combination of instruction sets. The processing device 809 may also include an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, or similar. May be one or more special-purpose processing devices such as. The processing device 809 is configured to execute instructions 887 to perform the operations and steps discussed herein. Computer system 883 may further include a network interface device 888 for communicating over a network 889.

데이터 저장 디바이스(810)는 방해 관리 컴포넌트(113)와 유사할 수 있는(예를 들어, 이와 동일할 수 있는) 방해 관리 컴포넌트(813)를 포함할 수 있다. 데이터 저장 시스템(810)은, 본원에서 설명된 다양한 방법들 또는 기능들 중 하나 이상을 구체화하는 명령어들(887)(예를 들어, 소프트웨어)의 하나 이상의 세트들이 저장된 기계-판독가능 저장 매체(897)(컴퓨터-판독가능 저장 매체로도 지칭됨)를 포함할 수 있다. 명령어들(887)은 또한 컴퓨터 시스템(883)에 의한 그것의 실행 동안, 완전히 또는 적어도 부분적으로, 메인 메모리(884) 내에 및/또는 프로세싱 디바이스(808) 내에 상주할 수 있으며, 메인 메모리(884) 및 프로세싱 디바이스(808)가 또한 기계-판독가능 저장 매체를 구성한다. 기계-판독가능 저장 매체(897), 데이터 저장 시스템(810), 및/또는 메인 메모리(884)는 도 1의 메모리 시스템(104)에 대응할 수 있다.The data storage device 810 may include a disturbance management component 813, which may be similar to (eg, be the same as) the disturbance management component 113. The data storage system 810 is a machine-readable storage medium 897 on which one or more sets of instructions 887 (e.g., software) embodying one or more of the various methods or functions described herein are stored. ) (Also referred to as a computer-readable storage medium). Instructions 887 may also reside in main memory 884 and/or in processing device 808, completely or at least partially, during its execution by computer system 883, and main memory 884 And processing device 808 also constitutes a machine-readable storage medium. Machine-readable storage medium 897, data storage system 810, and/or main memory 884 may correspond to memory system 104 of FIG. 1.

본 개시는 또한 본원의 동작들을 수행하기 위한 장치와 관련된다. 이러한 장치는 의도되는 목적들을 위해 특별하게 구성될 수 있거나, 또는 이는 컴퓨터 내에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 또는 재구성되는 범용 컴퓨터를 포함할 수 있다. 이러한 컴퓨터 프로그램은, 각각이 컴퓨터 시스템 버스에 결합되는, 컴퓨터 판독가능 저장 매체, 예컨대 비제한적으로, 플로피 디스크들, 광 디스크들, CD-ROM들, 및 자기-광 디스크들을 포함하는 임의의 유형의 디스크, 판독-전용 메모리(ROM)들, 랜덤 액세스 메모리(RAM)들, EPROM들, EEPROM들, 자기 또는 광 카드들, 또는 전자 명령어들을 저장하기에 적합한 임의의 유형의 매체에 저장될 수 있다.The present disclosure also relates to an apparatus for performing the operations herein. Such an apparatus may be specially configured for its intended purposes, or it may comprise a general purpose computer that is selectively activated or reconfigured by a computer program stored in the computer. Such computer programs can be any type of computer readable storage medium, including, but not limited to, floppy disks, optical disks, CD-ROMs, and magneto-optical disks, each coupled to a computer system bus. It may be stored on disk, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of medium suitable for storing electronic instructions.

본원에서 제공되는 알고리즘들 및 디스플레이들은 본질적으로 임의의 특정 컴퓨터 또는 다른 장치와 연관되지 않는다. 다양한 범용 시스템들이 본원의 기술들에 따라 프로그램과 함께 사용될 수 있거나, 또는 방법을 수행하기 위한 더 특화된 장치를 구성하는 것이 편리한 것으로 판명될 수 있다. 이러한 다양한 시스템들에 대한 구조는 이하의 설명에서 기술되는 바와 같이 나타날 것이다. 이에 더하여, 특정 개시는 임의의 특정 프로그래밍 언어를 참조하여 설명되지 않는다. 다양한 프로그래밍 언어들이 본원에서 설명된 바와 같은 본 개시의 교시들을 구현하기 위해 사용될 수 있다는 것이 이해될 것이다.The algorithms and displays provided herein are essentially not associated with any particular computer or other device. Various general purpose systems may be used with a program according to the techniques herein, or it may prove convenient to construct a more specialized apparatus for performing the method. The structure for these various systems will appear as described in the description below. In addition, specific disclosures are not described with reference to any specific programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the present disclosure as described herein.

본 개시는, 컴퓨터 시스템(또는 다른 전자 디바이스들)을 본 개시에 따른 프로세스를 수행하도록 프로그래밍하기 위해 사용될 수 있는 저장된 명령어들을 갖는 기계-판독가능 매체를 포함할 수 있는 컴퓨터 프로그램 제품 또는 소프트웨어로서 제공될 수 있다.The present disclosure is provided as a computer program product or software that may include a machine-readable medium having stored instructions that may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. I can.

본원에서 사용되는, "일(a 또는 an)"은 어떤 것 중 하나 이상이 지칭할 수 있으며, "다수의" 어떤 것은 이러한 것들 중 하나 이상을 지칭할 수 있다. 예를 들어, 다수의 메모리 셀들은 하나 이상의 메모리 셀들을 지칭할 수 있다. "복수의" 어떤 것은 2개 이상을 의도한다. 본원에서 사용되는, 동시에 수행되는 다수의 행동들은, 적어도 부분적으로, 특정 시간 기간에 걸쳐 중첩하는 행동들을 지칭한다. 본원에서 사용되는, 용어 "결합된"은 전기적으로 결합된, 직접적으로 결합된, 및/또는 (예를 들어, 직접적인 물리적 접촉에 의해) 어떠한 중간 엘리먼트들도 없이 직접적으로 결합된 또는 중간 엘리먼트들을 가지고 간접적으로 결합된 및/또는 이와 간접적으로 연결된을 포함할 수 있다. 용어 결합된은 (예를 들어, 원인과 결과 관계와 같이) 함께 동작하거나 또는 서로 상호작용하는 2개 이상의 엘리먼트들을 더 포함할 수 있다.As used herein, “one (a or an)” may refer to one or more of any, and any “a number of” may refer to one or more of these. For example, multiple memory cells may refer to one or more memory cells. Some "plural" means more than one. As used herein, multiple actions performed simultaneously refers to actions that, at least in part, overlap over a specific period of time. As used herein, the term “coupled” is electrically coupled, directly coupled, and/or (e.g., by direct physical contact) directly coupled or having intermediate elements without any intermediate elements. It may include indirectly linked and/or indirectly linked thereto. The term combined may further include two or more elements that operate together or interact with each other (eg, such as a cause and effect relationship).

도 6 및 도 7에서 설명된 방법들과 같은 본 개시의 다양한 방법들은 하드웨어(예를 들어, 프로세서, 제어 회로부, 전용 로직, 프로그램가능 로직, 집적 회로, 등) 및/또는 소프트웨어(예를 들어, 프로세싱 디바이스에 의해 실행될 수 있는, 펌웨어를 포함할 수 있는 명령어들), 및/또는 이들의 조합의 형태로 프로세싱 로직에 의해 수행될 수 있다.Various methods of the present disclosure, such as the methods described in FIGS. 6 and 7, include hardware (e.g., processor, control circuitry, dedicated logic, programmable logic, integrated circuit, etc.) and/or software (e.g., Instructions that may include firmware), which may be executed by the processing device, and/or combinations thereof.

특정 실시예들이 본 명세서에 예시되고 기재되었지만, 동일한 결과들을 달성하도록 계산된 배치가 도시된 특정 실시예들로 치환될 수 있다는 것을 당업자는 인식할 것이다. 본 개시내용은 본 개시의 다수의 실시예들의 적응 또는 변경을 커버하도록 의도된다. 이상의 설명이 제한적인 방식이 아니라 예시적인 방식으로 이루어졌다는 것이 이해될 것이다. 이상의 실시예들의 조합, 및 본 명세서에 특별히 기재되지 않은 다른 실시예들은 이상의 설명을 검토할 때 당업자에게 명백해질 것이다. 본 개시의 다수의 실시예들의 범주는, 상기 구조들 및 방법들이 사용되는 다른 응용들을 포함한다. 그러므로, 본 개시의 다수의 실시예들의 범주는, 이러한 청구항들이 지칭하는 등가물들의 전체 범위와 함께 첨부된 청구항들을 참조하여 결정되어야 한다.While specific embodiments have been illustrated and described herein, those skilled in the art will recognize that an arrangement calculated to achieve the same results may be substituted with the specific embodiments shown. This disclosure is intended to cover adaptations or variations of multiple embodiments of the disclosure. It will be appreciated that the above description has been made in an illustrative and not restrictive manner. Combinations of the above embodiments, and other embodiments not specifically described herein, will become apparent to those skilled in the art upon reviewing the above description. The scope of multiple embodiments of the present disclosure includes other applications in which the above structures and methods are used. Therefore, the scope of the multiple embodiments of the present disclosure should be determined with reference to the appended claims along with the full scope of equivalents to which these claims refer.

이전의 상세한 설명에서, 몇몇 특징들은 본 개시를 간소화하기 위해 단일 실시예에서 함께 그룹화된다. 본 개시의 이러한 방법은, 본 개시의 개시된 실시예들이 각 청구항에 특별히 언급된 것보다 더 많은 특징들을 이용해야 한다는 의도를 반영하는 것으로 해석되지 않는다. 오히려, 다음의 청구항들을 반영할 때, 본 발명의 주제는 단일의 개시된 실시예의 모든 특징들보다 더 적다. 따라서, 다음의 청구항들은 이를 통해 상세한 설명에 병합되며, 각 청구항은 개별적인 실시예로서 스스로에 의존한다.In the previous detailed description, several features are grouped together in a single embodiment to simplify the present disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the disclosed embodiments of the disclosure should employ more features than are specifically recited in each claim. Rather, in light of the following claims, the subject matter of the invention is less than all features of a single disclosed embodiment. Accordingly, the following claims are hereby incorporated into the detailed description, with each claim relying on itself as a separate embodiment.

Claims (20)

방해 관리를 위한 방법으로서,
메모리 셀에 대한 제 위치 기입들(writes in place) 사이의 시간을 결정하는 단계;
상기 메모리 셀에 대한 상기 제 위치 기입들 사이의 시간에 기초하여 이웃 메모리 셀에 대응하는 방해 카운트를 특정 양만큼 증분하는 단계; 및
상기 방해 카운트가 임계 카운트에 도달하는 것에 응답하여, 상기 이웃 셀에 대하여 리프레시 동작을 수행하는 단계를 포함하는, 방법.
As a way to manage disturbances,
Determining a time between writes in place to the memory cell;
Incrementing a disturbance count corresponding to a neighboring memory cell by a specific amount based on the time between the in-place writes to the memory cell; And
In response to the disturbance count reaching a threshold count, performing a refresh operation on the neighboring cell.
청구항 1에 있어서, 상기 이웃 셀에 대응하는 상기 방해 카운트를 상기 메모리 셀에 대한 기입들 사이의 시간에 기초하여 상이한 특정 양들만큼 증분하는 단계를 더 포함하는, 방법.The method of claim 1, further comprising incrementing the disturbance count corresponding to the neighboring cell by different specific amounts based on time between writes to the memory cell. 청구항 2에 있어서,
상기 메모리 셀에 대한 상기 제 위치 기입들 사이의 시간이 제 1 값인 것에 응답하여 상기 메모리 셀에 대응하는 상기 방해 카운트를 제 1 특정 양만큼 증분하는 단계; 및
상기 메모리 셀에 대한 상기 제 위치 기입들 사이의 시간이 제 2 값인 것에 응답하여 상기 메모리 셀에 대응하는 상기 방해 카운트를 제 2 특정 양만큼 증분하는 단계를 더 포함하며,
상기 제 1 값이 상기 제 2 값보다 더 작은 것에 응답하여 상기 제 1 특정 양은 상기 제 2 특정 양보다 더 크며, 상기 제 1 값이 상기 제 2 값보다 더 큰 것에 응답하여 상기 제 1 특정 양은 상기 제 2 특정 양보다 더 작은, 방법.
The method according to claim 2,
Incrementing the disturbance count corresponding to the memory cell by a first specific amount in response to the time between the in-place writes to the memory cell being a first value; And
Incrementing the disturbance count corresponding to the memory cell by a second specific amount in response to the time between the in-place writes to the memory cell being a second value,
In response to the first value being less than the second value, the first specific amount is greater than the second specific amount, and in response to the first value being greater than the second value, the first specific amount is Method, smaller than the second specific amount.
청구항 2에 있어서, 상기 이웃 셀에 대하여 상기 리프레시 동작을 수행하는 단계는 상기 이웃 셀로부터 데이터 값을 판독하는 단계, 및 상기 이웃 셀로부터 판독된 상기 데이터 값을 이웃 메모리 셀로 다시 재기입하는 단계를 포함하는, 방법.The method of claim 2, wherein performing the refresh operation on the neighboring cell comprises reading a data value from the neighboring cell, and rewriting the data value read from the neighboring cell to a neighboring memory cell. How to. 청구항 2에 있어서, 상기 리프레시 동작을 수행하는 단계에 응답하여 상기 이웃 셀에 대응하는 상기 방해 카운트를 리셋하는 단계를 더 포함하는, 방법.The method of claim 2, further comprising resetting the disturbance count corresponding to the neighboring cell in response to performing the refresh operation. 청구항 1에 있어서, 연속적인 기입 시간 간격들에 의해 인덱싱되는 데이터 구조체를 액세스함으로써 상기 특정 양을 결정하는 단계를 더 포함하며, 상기 연속적인 기입 시간 간격들은 상이한 개별적인 방해 카운트 증분 양들에 대응하는, 방법.The method of claim 1, further comprising determining the specific amount by accessing a data structure indexed by successive write time intervals, the successive write time intervals corresponding to different individual disturbance count increment amounts. . 청구항 6에 있어서, 상이한 개별적인 방해 카운트 증분 양들은 상기 대응하는 연속적인 기입 시간 간격들이 증가함에 따라 감소하며, 상기 방법은, 상기 메모리 셀에 대한 상기 제 위치 기입들 사이의 시간이 속하는 상기 연속적인 기입 시간 간격들에 기초하여 상기 특정 방해 카운트 증분 양을 선택하는 단계를 포함하는, 방법.The method of claim 6, wherein different individual disturbance count increment amounts decrease as the corresponding successive write time intervals increase, and the method comprises: the successive write to which the time between the in-place writes to the memory cell belongs. Selecting the specific disturbance count increment amount based on time intervals. 청구항 1 내지 청구항 7 중 어느 한 항에 있어서, 상기 메모리 셀에 대한 상기 제 위치 기입들 사이의 시간에 기초하여 상기 이웃 메모리 셀에 대응하는 상기 방해 카운트를 상기 특정 양만큼 증분하는 단계는 상기 메모리 셀과 상기 이웃 메모리 셀 사이의 공간적 관계에 기초하여 상기 특정 양을 결정하는 단계를 더 포함하는, 방법.The memory cell according to any one of claims 1 to 7, wherein incrementing the disturbance count corresponding to the neighboring memory cell by the specific amount based on the time between the in-place writes to the memory cell Determining the specific amount based on a spatial relationship between the and the neighboring memory cells. 청구항 1 내지 청구항 7 중 어느 한 항에 있어서, 상기 방법은 상기 메모리 셀이 현재 드리프트 중인지 여부를 결정하는 단계를 포함하는, 방법.8. The method of any of claims 1-7, wherein the method comprises determining whether the memory cell is currently drifting. 청구항 9에 있어서, 현재 드리프트 중인 관리되는 유닛들의 물리적인 어드레스들에 대응하는 엔트리들을 포함하는 데이터 구조체를 액세스함으로써 상기 메모리 셀이 현재 드리프트 중인지 여부를 결정하는 단계를 더 포함하는, 방법.The method of claim 9, further comprising determining whether the memory cell is currently drifting by accessing a data structure including entries corresponding to physical addresses of managed units currently drifting. 청구항 17에 있어서, 상기 이웃 메모리 셀에 대응하는 상기 방해 카운트를 상기 특정 양만큼 증분하는 단계는, 상기 이웃 메모리 셀에 대응하는 물리적인 관리되는 유닛에 대한 물리적인 어드레스를 포함하는 데이터 구조체의 엔트리 내의 방해 카운트 필드 내의 방해 카운트를 증분하는 단계를 포함하는, 방법.The method of claim 17, wherein incrementing the disturbance count corresponding to the neighboring memory cell by the specific amount comprises: in an entry of a data structure including a physical address for a physically managed unit corresponding to the neighboring memory cell. And incrementing the disturbance count in the disturbance count field. 시스템으로서,
다수의 물리적인 관리되는 유닛들을 포함하는 메모리 컴포넌트;
상기 메모리 컴포넌트에 결합된 프로세싱 디바이스를 포함하며, 상기 프로세싱 디바이스는,
특정 물리적인 관리되는 유닛에 대한 수신된 기입 명령에 응답하여, 상기 특정 물리적인 관리되는 유닛이 마지막으로 기입된 때로부터의 시간의 양을 결정하고;
상기 결정된 시간의 양에 기초하여 이웃 물리적인 관리되는 유닛에 대응하는 방해 카운트를 특정 양만큼 증분하며; 및
상기 방해 카운트가 임계 카운트에 도달하는 것에 응답하여, 상기 이웃 물리적인 관리되는 유닛에 대하여 리프레시 동작을 수행하도록 구성되는, 시스템.
As a system,
A memory component including a plurality of physically managed units;
A processing device coupled to the memory component, the processing device comprising:
In response to a received write command for a particular physical managed unit, determine an amount of time from when the particular physical managed unit was last written;
Incrementing a disturbance count corresponding to a neighboring physically managed unit by a specific amount based on the determined amount of time; And
In response to the disturbance count reaching a threshold count, configured to perform a refresh operation on the neighboring physical managed unit.
청구항 12에 있어서, 상기 프로세싱 디바이스는,
현재 시간과 상기 특정 물리적인 관리되는 유닛이 마지막으로 기입된 시간 사이의 차이에 기초하여 상기 특정 물리적인 관리되는 유닛이 마지막으로 기입된 때로부터의 상기 시간의 양을 결정하고; 및
상기 현재 시간과 상기 특정 물리적인 관리되는 유닛이 마지막으로 기입된 시간 사이의 상기 차이에 기초하여 상기 특정 물리적인 관리되는 유닛이 드리프트 중인지 여부를 결정하도록 구성되는, 시스템.
The method of claim 12, wherein the processing device,
Determine the amount of time from when the specific physical managed unit was last written based on a difference between a current time and a time when the specific physical managed unit was last written; And
And configured to determine whether the specific physical managed unit is drifting based on the difference between the current time and a time at which the specific physical managed unit was last written.
청구항 12 내지 청구항 13 중 어느 한 항에 있어서, 상기 시스템은, 그것의 엔트리들이 개별적인 물리적인 관리되는 유닛들에 대응하는 데이터 구조체를 유지하도록 구성된 메모리 관리 컴포넌트를 포함하며, 각각의 엔트리는,
개별적인 물리적인 관리되는 유닛에 대응하는 물리적인 어드레스; 및
상기 개별적인 물리적인 관리되는 유닛에 대응하는 드리프트 표시자를 포함하며, 및
상기 프로세싱 디바이스는 상기 드리프트 표시자에 기초하여 상기 특정 물리적인 관리되는 유닛이 현재 드리프트 중인지 여부를 결정하도록 구성되는, 시스템.
14. The method of any of claims 12 to 13, wherein the system comprises a memory management component configured to maintain a data structure whose entries correspond to individual physically managed units, each entry comprising:
Physical addresses corresponding to individual physically managed units; And
And a drift indicator corresponding to the individual physically managed unit, and
And the processing device is configured to determine whether the particular physical managed unit is currently drifting based on the drift indicator.
청구항 14에 있어서, 상기 데이터 구조체의 각각의 엔트리는 개별적인 방해 카운트 필드를 포함하며, 상기 프로세싱 디바이스는 상기 이웃 물리적인 관리되는 유닛에 대응하는 상기 방해 카운트를 상기 특정 양만큼 증분하도록 구성되는, 시스템.15. The system of claim 14, wherein each entry of the data structure includes a separate disturbance count field, and wherein the processing device is configured to increment the disturbance count corresponding to the neighboring physical managed unit by the specified amount. 청구항 14에 있어서,
상기 데이터 구조체는 제 1 데이터 구조체이며;
상기 메모리 관리 컴포넌트는, 그것의 엔트리들이 상기 제 1 데이터 구조체 내의 개별적인 엔트리들 내의 인덱스들에 의해 참조되는 제 2 데이터 구조체를 유지하도록 구성되고;
상기 프로세싱 디바이스는, 상기 특정 물리적인 관리되는 유닛에 대응하는 상기 제 1 데이터 구조체 내의 상기 개별적인 엔트리 내의 상기 인덱스에 의해 참조되는 상기 제 2 데이터 구조체 내의 엔트리 내의 타임스탬프로부터 상기 특정 물리적인 관리되는 유닛이 마지막으로 기입된 상기 시간을 결정하도록 구성되며; 및
상기 제 2 데이터 구조체 내의 상기 엔트리는 오로지, 상기 제 1 데이터 구조체 내의 상기 개별적인 엔트리 내의 상기 대응하는 드리프트 표시자가 상기 특정 물리적인 관리되는 유닛이 드리프트 중이라는 것을 나타내는 동안에만 상기 제 1 데이터 구조체 내의 상기 개별적인 엔트리 내의 상기 인덱스에 의해 참조되는, 시스템.
The method of claim 14,
The data structure is a first data structure;
The memory management component is configured to maintain a second data structure whose entries are referenced by indexes in individual entries within the first data structure;
The processing device may determine the specific physical managed unit from a timestamp in an entry in the second data structure referenced by the index in the individual entry in the first data structure corresponding to the specific physical managed unit. Configured to determine the time last entered; And
The entry in the second data structure is the individual in the first data structure only while the corresponding drift indicator in the individual entry in the first data structure indicates that the particular physical managed unit is drifting. Referenced by the index in the entry.
청구항 16에 있어서, 상기 프로세싱 디바이스는 상기 특정 물리적인 관리되는 유닛에 그리고 상기 제 2 데이터 구조체 내의 상기 엔트리 내에 지정된 버퍼 내의 위치에 데이터를 기입하도록 구성되는, 시스템.17. The system of claim 16, wherein the processing device is configured to write data to the specific physical managed unit and to a location in a buffer designated within the entry within the second data structure. 장치로서,
메모리 컴포넌트;
상기 메모리 컴포넌트에 결합된 제어기를 포함하며, 상기 제어기는,
상기 메모리 컴포넌트 내의 메모리 셀에 대한 연속적인 제 위치 기입들 사이의 시간을 결정하고;
상기 메모리 셀에 대한 상기 연속적인 제 위치 기입들 사이의 상기 시간에 기초하여 상기 메모리 컴포넌트 내의 이웃 메모리 셀에 대응하는 방해 카운트를 특정 양만큼 증분하며; 및
상기 방해 카운트가 임계 카운트에 도달하는 것에 응답하여, 상기 이웃 셀에 대하여 리프레시 동작을 수행하도록 구성되는, 장치.
As a device,
Memory component;
A controller coupled to the memory component, the controller comprising:
Determine a time between successive in-place writes to a memory cell in the memory component;
Incrementing a disturbance count corresponding to a neighboring memory cell in the memory component by a specific amount based on the time between the successive in-place writes to the memory cell; And
In response to the disturbance count reaching a threshold count, configured to perform a refresh operation on the neighboring cell.
청구항 18에 있어서,
연속적인 기입 시간 간격들의 개별적인 범위들은 개별적인 카운트 증분들에 대응하며; 및
상기 제어기는, 연속적인 기입들 사이의 상기 결정된 시간에 대응하는 연속적인 기입 시간 간격을 포함하는 범위에 대응하는 상기 개별적인 카운트 증분으로부터 상기 특정 양을 결정하도록 구성되는, 장치.
The method of claim 18,
Individual ranges of successive write time intervals correspond to individual count increments; And
Wherein the controller is configured to determine the specific amount from the respective count increment corresponding to a range including a continuous write time interval corresponding to the determined time between successive writes.
청구항 18 내지 청구항 19 중 어느 한 항에 있어서, 상기 특정 양은 상기 메모리 셀과 상기 이웃 메모리 셀 사이의 공간적 관계에 더 기초하는, 장치.20. The apparatus of any of claims 18-19, wherein the specific amount is further based on a spatial relationship between the memory cell and the neighboring memory cell.
KR1020217008273A 2018-08-23 2019-08-21 Disturbance management based on entry times KR102373852B1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/110,758 2018-08-23
US16/110,758 US10586592B1 (en) 2018-08-23 2018-08-23 Disturb management based on write times
PCT/US2019/047460 WO2020041442A1 (en) 2018-08-23 2019-08-21 Disturb management based on write times

Publications (2)

Publication Number Publication Date
KR20210034682A true KR20210034682A (en) 2021-03-30
KR102373852B1 KR102373852B1 (en) 2022-03-14

Family

ID=69586458

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217008273A KR102373852B1 (en) 2018-08-23 2019-08-21 Disturbance management based on entry times

Country Status (5)

Country Link
US (3) US10586592B1 (en)
EP (1) EP3841582A4 (en)
KR (1) KR102373852B1 (en)
CN (1) CN112639979B (en)
WO (1) WO2020041442A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9123414B2 (en) * 2013-11-22 2015-09-01 Micron Technology, Inc. Memory systems and memory programming methods
US9336875B2 (en) 2013-12-16 2016-05-10 Micron Technology, Inc. Memory systems and memory programming methods
US10672486B2 (en) * 2018-08-21 2020-06-02 Micron Technology, Inc. Refreshing data stored at a memory component based on a memory component characteristic component
US11056166B2 (en) 2019-07-17 2021-07-06 Micron Technology, Inc. Performing a refresh operation based on a characteristic of a memory sub-system
US11113002B2 (en) * 2019-10-25 2021-09-07 Seagate Technology Llc Command overlap checking in a data storage device
US11776611B2 (en) * 2021-08-03 2023-10-03 Micron Technology, Inc. Managing write disturb for units of a memory device using weighted write disturb counts
US11656940B2 (en) * 2021-08-13 2023-05-23 Micron Technology, Inc. Techniques for managing temporarily retired blocks of a memory system
US20240061614A1 (en) * 2022-08-18 2024-02-22 Micron Technology, Inc. Error detection and correction in a controller

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150193302A1 (en) * 2014-01-09 2015-07-09 Sandisk Technologies Inc. Selective ecc refresh for on die buffered non-volatile memory
KR20150144810A (en) * 2011-06-22 2015-12-28 인텔 코포레이션 Drift management in a phase change memory and switch (pcms) memory device
US20170263305A1 (en) * 2014-11-25 2017-09-14 Samg Yeun CHO Method of detecting most frequently accessed address of semiconductor memory based on probability information
KR20170130402A (en) * 2015-03-17 2017-11-28 퀄컴 인코포레이티드 Systems and methods for refreshing storage elements

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2442488A1 (en) * 1978-11-22 1980-06-20 Cii Honeywell Bull DEVICE FOR EXTRACTING AND REWRITING INFORMATION FOR A COOLING MEMORY
US6931480B2 (en) * 2001-08-30 2005-08-16 Micron Technology, Inc. Method and apparatus for refreshing memory to preserve data integrity
JP4597829B2 (en) 2005-09-27 2010-12-15 パトレネラ キャピタル リミテッド, エルエルシー memory
US20090109755A1 (en) * 2007-10-24 2009-04-30 Mori Edan Neighbor block refresh for non-volatile memory
WO2010076829A1 (en) * 2008-12-30 2010-07-08 Massimo Iaculo Wear leveling for erasable memories
US8261136B2 (en) * 2009-06-29 2012-09-04 Sandisk Technologies Inc. Method and device for selectively refreshing a region of a memory of a data storage device
US8484410B2 (en) * 2010-04-12 2013-07-09 Intel Corporation Method to stagger self refreshes
TWI490869B (en) * 2010-08-13 2015-07-01 Mstar Semiconductor Inc Method and associated controller for flash memory
JP2013004158A (en) * 2011-06-21 2013-01-07 Elpida Memory Inc Semiconductor storage device and refresh control method thereof
US9257169B2 (en) * 2012-05-14 2016-02-09 Samsung Electronics Co., Ltd. Memory device, memory system, and operating methods thereof
US9104646B2 (en) * 2012-12-12 2015-08-11 Rambus Inc. Memory disturbance recovery mechanism
US9202547B2 (en) 2013-03-15 2015-12-01 Intel Corporation Managing disturbance induced errors
US8861109B1 (en) * 2013-08-09 2014-10-14 Lsi Corporation Data processing system with adjacent track interference metric
US20150169406A1 (en) * 2013-12-16 2015-06-18 Sandisk Technologies Inc. Decoding techniques for a data storage device
US10078546B2 (en) * 2014-10-24 2018-09-18 Micron Technology, Inc. Temperature related error management
WO2016135955A1 (en) 2015-02-27 2016-09-01 株式会社日立製作所 Non-volatile memory device
CN107039059B (en) 2016-02-01 2022-05-10 三星电子株式会社 Memory package, memory module including the same, and memory package operation method
US10481830B2 (en) 2016-07-25 2019-11-19 Sandisk Technologies Llc Selectively throttling host reads for read disturbs in non-volatile memory system
US10032500B2 (en) 2016-10-07 2018-07-24 Tc Lab, Inc. Memory disturb recovery scheme for cross-point memory arrays
KR20180060084A (en) 2016-11-28 2018-06-07 삼성전자주식회사 Scrubbing controller of a semiconductor memory device, semiconductor memory device and method of operating a semiconductor memory device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150144810A (en) * 2011-06-22 2015-12-28 인텔 코포레이션 Drift management in a phase change memory and switch (pcms) memory device
US20150193302A1 (en) * 2014-01-09 2015-07-09 Sandisk Technologies Inc. Selective ecc refresh for on die buffered non-volatile memory
US20170263305A1 (en) * 2014-11-25 2017-09-14 Samg Yeun CHO Method of detecting most frequently accessed address of semiconductor memory based on probability information
KR20170130402A (en) * 2015-03-17 2017-11-28 퀄컴 인코포레이티드 Systems and methods for refreshing storage elements

Also Published As

Publication number Publication date
WO2020041442A1 (en) 2020-02-27
US20210391007A1 (en) 2021-12-16
CN112639979B (en) 2022-04-19
US20200066341A1 (en) 2020-02-27
EP3841582A1 (en) 2021-06-30
US11133061B2 (en) 2021-09-28
US20200211645A1 (en) 2020-07-02
KR102373852B1 (en) 2022-03-14
US10586592B1 (en) 2020-03-10
CN112639979A (en) 2021-04-09
EP3841582A4 (en) 2022-05-11
US11657872B2 (en) 2023-05-23

Similar Documents

Publication Publication Date Title
KR102373852B1 (en) Disturbance management based on entry times
US11556465B2 (en) Memory management
KR102569783B1 (en) Out-of-order zone namespaces
KR102009003B1 (en) Storing error correction code(ecc) data in a multi-tier memory structure
US9619174B2 (en) Write mechanism for storage class memory
US8949516B2 (en) Semiconductor device
US11436153B2 (en) Moving change log tables to align to zones
US20220188009A1 (en) Background memory scan block selection
KR20210028729A (en) Logical vs. physical table fragments
US20240220155A1 (en) Solution for Super Device Imbalance in ZNS SSD
CN113711311A (en) Content addressable memory system with content addressable memory buffer
US11210027B2 (en) Weighting of read commands to zones in storage devices
US11966618B2 (en) Purposeful super device imbalance for ZNS SSD efficiency
KR101146082B1 (en) Non-volatile memory storage and method for improving performance of non-volatile memory storage
US11537293B2 (en) Wear leveling methods for zoned namespace solid state drive
US11200161B2 (en) Keeping zones open with intermediate padding
WO2023101719A1 (en) Full die recovery in zns ssd
KR102341698B1 (en) Dedicated instructions for memory operations

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant