KR20210034682A - Disruption management based on entry times - Google Patents
Disruption management based on entry times Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3431—Circuits 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0004—Digital 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0033—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0061—Timing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/0069—Writing or programming circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/003—Cell access
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital 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/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/71—Three dimensional array
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/77—Array 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
본 개시는 전반적으로 반도체 메모리 및 방법들에 관한 것으로, 더 구체적으로, 기입 시간들에 기초한 방해 관리(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
메모리 시스템(104)은, 예를 들어, 고체 상대 드라이브(SSD), 내장형 멀티-미디어 제어기(embedded Multi-Media Controller; eMMC) 디바이스, 범용 플래시 저장(Universal Flash Storage; UFS) 디바이스, 및 유사한 것과 같은 저장 시스템일 수 있으며, 인터페이스(106), 제어기(108), 집합적으로 메모리(110)로 지칭될 수 있는 다수의 메모리 컴포넌트들(110-1 내지 110-N)을 포함할 수 있다. 메모리 컴포넌트들(110)은 메모리 시스템(104)에 대한 저장 볼륨을 제공할 수 있지만; 그러나, 메모리 컴포넌트들(110) 중 하나 이상이 시스템(100)에 대한 메인 메모리로서 기능할 수 있다. 다수의 실시예들에 있어서, 메모리 시스템(104)은 메모리 서브-시스템, 하이브리드 메모리/저장 시스템 또는 유사한 것이다.The
도 1에 예시된 바와 같이, 메모리 시스템(104)은 인터페이스(106)를 통해 호스트(102)에 결합될 수 있다. 호스트(102)는, 다양한 다른 유형들의 호스트들 중에서도 특히 개인용 랩탑 컴퓨터, 데스크탑 컴퓨터, 디지털 카메라, 모바일 디바이스(예를 들어, 휴대 전화), 네트워크 서버, 사물 인터넷(Internet of Things; IoT) 가능형 디바이스, 또는 메모리 카드 리더와 같은 호스트 시스템일 수 있다. 호스트(102)는 (예를 들어, 제어기(108)를 통해) 메모리 컴포넌트들(110)을 액세스할 수 있는 다수의 메모리 액세스 디바이스들(예를 들어, 다수의 프로세서들)을 포함할 수 있다. As illustrated in FIG. 1,
도 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
제어기(108)는, 다른 동작들 중에서도, 데이터 판독, 기입, 및 소거 동작들을 제어하기 위해 메모리 컴포넌트들(110)과 통신할 수 있다. 구체적으로 예시되지는 않았지만, 일부 실시예들에 있어서, 제어기(108)는 제어기(108)를 메모리 컴포넌트들(110)에 결합하는 각각의 채널에 대한 개별적인 메모리 채널 제어기를 포함할 수 있다. 제어기(108)는, 예를 들어, 호스트(102)와 메모리 컴포넌트들(110) 사이의 데이터 전송을 용이하게 하기 위한 및/또는 다수의 메모리 컴포넌트들(110)에 대한 액세스를 제어하기 위한 하드웨어(예를 들어, 하나 이상의 집적 회로들) 및/또는 소프트웨어(예를 들어, 펌웨어의 형태일 수 있는 명령어들)의 형태의 다수의 컴포넌트들을 포함할 수 있다. 일반적으로, 제어기(108)는 호스트 시스템(102)으로부터 명령(command)들(예를 들어, 동작들)을 수신할 수 있으며, 메모리 컴포넌트들(110)에 대한 희망되는 액세스를 달성하기 위해 명령들을 명령어(instruction)들 또는 적절한 명령들로 변환할 수 있다.The
본원에서 추가로 설명되는 바와 같이, 제어기(108)는, 다른 동작들 중에서도, 메모리 관리 동작들, 예컨대, 메모리 컴포넌트들(110)과 연관된 다양한 다른 동작들 중에서도, 방해 관리(예를 들어, 완화) 동작들, 드리프트 관리 동작들, 오류 검출 및/또는 정정 동작들, 및 어드레스 번역 동작들을 담당할 수 있다. 제어기는 배경 동작들 및/또는 전경(foreground) 동작들을 수행하는 것과 연관하여 메모리 관리를 수행할 수 있다. 전경 동작들은 판독 및/또는 기입 액세스 명령들과 같은 호스트(예를 들어, 호스트(102))에 의해 개시되는 동작들을 포함할 수 있다. 배경 동작들은, 본 개시의 실시예들에 따라 수행되는 이웃 방해 완화 동작들과 같은, 그것의 실행이 호스트(예를 들어, 호스트(102))에 대하여 투명할 수 있거나 및/또는 제어기(예를 들어, 108)에 의해 개시되는 동작들을 포함할 수 있다. As further described herein, the
메모리 컴포넌트들(110)은 다수의 메모리 셀들의 어레이들을 포함할 수 있다. 메모리 컴포넌트들(110)은 2-차원(2D) 및/또는 3-차원(3D) 어레이 구조체들, 예컨대 교차점 어레이 구조체들을 포함할 수 있다. 메모리 셀들은 저항 가변 메모리 셀들일 수 있다. 메모리 셀들은, 예를 들어, 다양한 유형들의 저항 가변 저장 엘리먼트들 및/또는 스위치 엘리먼트들을 포함할 수 있다. 예를 들어, 셀들은 상 변화 랜덤 액세스 메모리(phase change random access memory; PCRAM) 셀들 또는 저항성 랜덤 액세스 메모리(resistive random access memory; RRAM) 셀들일 수 있다.
본원에서 사용되는, 저장 엘리먼트는 메모리 셀의 프로그램가능 부분을 지칭할 수 있다. 예를 들어, 메모리 컴포넌트들(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
비-제한적인 예들로서, 메모리 컴포넌트들(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
도 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,
메모리 관리 컴포넌트(111)의 다양한 컴포넌트들(113, 114, 115, 및 117)은 애플리케이션 특정 집적 회로(application specific integrated circuit; ASIC)들과 같은 별개의 컴포넌트들일 수 있거나, 또는 컴포넌트들은, 반드시 제어기(108)의 다른 부분들로부터 분리된 별개의 물리적 형태를 가질 필요가 없는 제어기(108) 내의 회로부에 의해 제공되는 기능을 반영할 수 있다. 도 1에서 메모리 관리 컴포넌트(111) 내의 컴포넌트들로서 예시되지만, 컴포넌트들(113, 114, 115, 및 117)의 각각 또는 이들의 부분들은 메모리 관리 컴포넌트(111) 외부에 및/또는 제어기(108) 외부에 존재할 수 있다. 예를 들어, 오류 검출/정정 컴포넌트(115)는 제어기(108) 상에 위치된 다수의 오류 정정 코딩 회로들 및 제어기(108) 외부에 위치된 다수의 오류 정정 코딩 회로들을 포함할 수 있다.The
도 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
동작 시에, 호스트(예를 들어, 호스트(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
도 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
저항 가변 셀들이 기입(예를 들어, 프로그래밍)될 때, 예를 들어, 그들의 저항성 상태는, 안정 저항성 상태에 도달할 때까지, 시간의 특정 기간(예를 들어, 드리프트 시간 기간) 동안 변화(예를 들어, 드리프트)할 수 있다. 예를 들어, 드리프트 시간 기간 동안의 데이터 판독은 신뢰할 수 없을 수 있다.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
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
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
도 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
도 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
필드(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
일부 예들에 있어서, 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
도 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,
연속적인 기입 시간 간격들은, 빈(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
메모리(110) 내에 있을 수 있는 메모리 어레이는, 이상에서 설명된 저항 가변 셀들과 같은, 메모리 셀들의 평면들의 다수의 스택들을 포함할 수 있는 3D 교차점 메모리 어레이일 수 있다. 각각의 평면에서, 메모리 셀들의 로우(row)들로서 지칭될 수 있는 메모리 셀들의 그룹들이 워드 라인들로서 지칭될 수 있는 액세스 라인들에 공통적으로 결합될 수 있다. 각각의 평면은 또한, 센싱 증폭기들에 결합될 수 있는 데이터 라인들(예를 들어, 비트 라인들)로서 지칭될 수 있는 액세스 라인들에 공통적으로 결합될 수 있는 메모리 셀들의 컬럼(column)들로서 지칭될 수 있는 메모리 셀들의 그룹들을 포함할 수 있다. 예를 들어, 컬럼들은 로우들을 횡단(예를 들어, 교차)할 수 있다.A memory array that may be in
일부 예들에 있어서, 공격자 셀에 대한 이웃들인 이웃 셀들은, 임의의 중간 셀들이 없는 공격자 셀에 바로 인접한 직접 이웃들일 수 있다. 예를 들어, 공격자 셀은 동일한 평면 또는 상이한 평면들을 갖는 직접 이웃들을 가질 수 있다. 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
도 6은 본 개시의 다수의 실시예들에 따른 방해 관리를 위한 방법(670)의 일 예의 순서도이다. 예를 들어, 방법(670)은 방해 관리 컴포넌트(113)에 의해 수행될 수 있다.6 is a flowchart of an example of a
블록(671)에서, 메모리 셀들에 대한 기입들 사이의 시간이 결정된다. 예를 들어, 기입들 사이의 시간은, 메모리 셀이 현재 기입되고 있는 현재 시간과 메모리 셀이 마지막으로 기입된 시간 사이의 시간 차이일 수 있다. 예를 들어, 메모리 셀이 마지막으로 기입된 시간은, 그 메모리 셀을 포함하는 PMU에 대응하는 MUA 엔트리에 의해 참조되는 드리프트 엔트리 내의 타임스탬프일 수 있다. 타임스탬프는 메모리 셀이 마지막으로 기입된 시간을 결정하기 위해 판독될 수 있다. 타임스탬프는, 이것이 판독된 이후에 현재 시간으로 업데이트될 수 있다. At
일부 예들에 있어서, 이미 드리프트 중인 메모리 셀에 대하여 기입이 발생할 때, 메모리 셀을 포함하는 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
블록(672)에서, 이웃 메모리 셀에 대응하는 방해 카운트는 기입들 사이의 시간에 기초하는 특정 양에 의해 증분될 수 있다. 방해 카운트 증분은, 기입들 사이의 시간과 특정 양 사이의 관계로부터, 예컨대 도 5의 관계로부터 결정될 수 있다. 예를 들어, 특정 양은 방해 카운트 증분, 예컨대, 기입들 사이의 결정된 시간을 포함하는, 범위(562-3)와 같은, 연속적인 기입 시간 간격들의 범위에 대응하는 데이터 포인트(564-3)에 대응하는 방해 카운트 증분일 수 있다. 블록(673)에서, 리프레시 동작은, 방해 카운트가 임계 카운트에 도달하는 것에 응답하여 이웃 셀에 대하여 수행된다.At
도 7은 본 개시의 다수의 실시예들에 따른 기입 방해 관리 및 드리프트 관리를 포함할 수 있는 방법(775)의 일 예의 순서도이다. 예를 들어, 방법(775)은, 적어도 부분적으로 방해 관리 컴포넌트(113) 및 드리프트 관리 컴포넌트(117)에 의해 수행될 수 있다. 7 is a flow chart of an example of a
수신된 기입 명령 내의 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
블록(779)에서, 기입 명령과 연관된 현재 시간과 PMU가 기입된 마지막 시간 사이의 시간 차이가 결정된다. 예를 들어, 시간 차이는, PMU 내의 다수의 셀들에 대한 연속적인 기입들 사이의 시간과 같은 것에 대한 연속적인 기입 시간 간격일 수 있으며, PMU에 대한 기입들의 빈도를 나타낼 수 있다.At
블록(780)에서, 다수의 이웃 메모리 셀들을 포함하는 PMU(217-2)와 같은 PMU에 대응하는 테이블(220) 내의 MUA 엔트리 내의 방해 카운트는, 예컨대, 방해 관리의 부분으로서 방해 관리 컴포넌트(113)에 의해, 시간 차이에 기초하는 방해 카운트 증분만큼 증분된다. 예를 들어, PMU(217-2) 내의 이웃 메모리 셀들은 PMU(217-1) 내의 메모리 셀들에 대한 이웃들일 수 있다. 일부 예들에 있어서, 방해 카운트가 증분된 이후에, MUA 엔트리(221-1) 내의 드리프트 엔트리 인덱스는, 예컨대 드리프트 관리자(117)에 의해, 드리프트 엔트리가 비활성이라는 것을 나타내도록 설정(예를 들어, 클리어)될 수 있다. 이에 더하여, 드리프트 표시자는, PMU(217-1) 내의 메모리 셀들이 드리프트 중이 아님을 나타내도록 설정될 수 있다.At
방해 카운트 증분은, 이상에서 논의된 바와 같이, 방해 카운트 증분들과 연속적인 기입 시간 간격 사이의 함수적 관계에 의해 결정될 수 있다. 예를 들어, 방해 카운트 증분은, 연속적인 기입 시간 간격을 포함하는 연속적인 기입 시간 간격들의 범위에 대응할 수 있다. 일부 예들에 있어서, 함수적 관계는 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
일부 예들에 있어서, 기입 명령 내의 데이터는 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
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
도 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
예시적인 컴퓨터 시스템(883)은, 버스(886)를 통해 서로 통신하는 프로세싱 디바이스(809), 메인 메모리(884)(예를 들어, 판독-전용 메모리(ROM), 플래시 메모리, 동기식 DRAM(SDRAM) 또는 램버스 DRAM(Rambus DRAM; RDRAM)과 같은 동적 랜덤 액세스 메모리(DRAM), 등), 정적 메모리(885)(예를 들어, 플래시 메모리, 정적 랜덤 액세스 메모리(static random access memory; SRAM), 등), 및 데이터 저장 디바이스(810)를 포함한다.The
프로세싱 디바이스(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)를 더 포함할 수 있다.
데이터 저장 디바이스(810)는 방해 관리 컴포넌트(113)와 유사할 수 있는(예를 들어, 이와 동일할 수 있는) 방해 관리 컴포넌트(813)를 포함할 수 있다. 데이터 저장 시스템(810)은, 본원에서 설명된 다양한 방법들 또는 기능들 중 하나 이상을 구체화하는 명령어들(887)(예를 들어, 소프트웨어)의 하나 이상의 세트들이 저장된 기계-판독가능 저장 매체(897)(컴퓨터-판독가능 저장 매체로도 지칭됨)를 포함할 수 있다. 명령어들(887)은 또한 컴퓨터 시스템(883)에 의한 그것의 실행 동안, 완전히 또는 적어도 부분적으로, 메인 메모리(884) 내에 및/또는 프로세싱 디바이스(808) 내에 상주할 수 있으며, 메인 메모리(884) 및 프로세싱 디바이스(808)가 또한 기계-판독가능 저장 매체를 구성한다. 기계-판독가능 저장 매체(897), 데이터 저장 시스템(810), 및/또는 메인 메모리(884)는 도 1의 메모리 시스템(104)에 대응할 수 있다.The
본 개시는 또한 본원의 동작들을 수행하기 위한 장치와 관련된다. 이러한 장치는 의도되는 목적들을 위해 특별하게 구성될 수 있거나, 또는 이는 컴퓨터 내에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 또는 재구성되는 범용 컴퓨터를 포함할 수 있다. 이러한 컴퓨터 프로그램은, 각각이 컴퓨터 시스템 버스에 결합되는, 컴퓨터 판독가능 저장 매체, 예컨대 비제한적으로, 플로피 디스크들, 광 디스크들, 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 값인 것에 응답하여 상기 메모리 셀에 대응하는 상기 방해 카운트를 제 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.
다수의 물리적인 관리되는 유닛들을 포함하는 메모리 컴포넌트;
상기 메모리 컴포넌트에 결합된 프로세싱 디바이스를 포함하며, 상기 프로세싱 디바이스는,
특정 물리적인 관리되는 유닛에 대한 수신된 기입 명령에 응답하여, 상기 특정 물리적인 관리되는 유닛이 마지막으로 기입된 때로부터의 시간의 양을 결정하고;
상기 결정된 시간의 양에 기초하여 이웃 물리적인 관리되는 유닛에 대응하는 방해 카운트를 특정 양만큼 증분하며; 및
상기 방해 카운트가 임계 카운트에 도달하는 것에 응답하여, 상기 이웃 물리적인 관리되는 유닛에 대하여 리프레시 동작을 수행하도록 구성되는, 시스템.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.
현재 시간과 상기 특정 물리적인 관리되는 유닛이 마지막으로 기입된 시간 사이의 차이에 기초하여 상기 특정 물리적인 관리되는 유닛이 마지막으로 기입된 때로부터의 상기 시간의 양을 결정하고; 및
상기 현재 시간과 상기 특정 물리적인 관리되는 유닛이 마지막으로 기입된 시간 사이의 상기 차이에 기초하여 상기 특정 물리적인 관리되는 유닛이 드리프트 중인지 여부를 결정하도록 구성되는, 시스템.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.
개별적인 물리적인 관리되는 유닛에 대응하는 물리적인 어드레스; 및
상기 개별적인 물리적인 관리되는 유닛에 대응하는 드리프트 표시자를 포함하며, 및
상기 프로세싱 디바이스는 상기 드리프트 표시자에 기초하여 상기 특정 물리적인 관리되는 유닛이 현재 드리프트 중인지 여부를 결정하도록 구성되는, 시스템.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.
상기 데이터 구조체는 제 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.
메모리 컴포넌트;
상기 메모리 컴포넌트에 결합된 제어기를 포함하며, 상기 제어기는,
상기 메모리 컴포넌트 내의 메모리 셀에 대한 연속적인 제 위치 기입들 사이의 시간을 결정하고;
상기 메모리 셀에 대한 상기 연속적인 제 위치 기입들 사이의 상기 시간에 기초하여 상기 메모리 컴포넌트 내의 이웃 메모리 셀에 대응하는 방해 카운트를 특정 양만큼 증분하며; 및
상기 방해 카운트가 임계 카운트에 도달하는 것에 응답하여, 상기 이웃 셀에 대하여 리프레시 동작을 수행하도록 구성되는, 장치.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.
연속적인 기입 시간 간격들의 개별적인 범위들은 개별적인 카운트 증분들에 대응하며; 및
상기 제어기는, 연속적인 기입들 사이의 상기 결정된 시간에 대응하는 연속적인 기입 시간 간격을 포함하는 범위에 대응하는 상기 개별적인 카운트 증분으로부터 상기 특정 양을 결정하도록 구성되는, 장치.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.
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)
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)
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)
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 |
-
2018
- 2018-08-23 US US16/110,758 patent/US10586592B1/en active Active
-
2019
- 2019-08-21 CN CN201980055628.2A patent/CN112639979B/en active Active
- 2019-08-21 WO PCT/US2019/047460 patent/WO2020041442A1/en unknown
- 2019-08-21 EP EP19852290.6A patent/EP3841582A4/en not_active Withdrawn
- 2019-08-21 KR KR1020217008273A patent/KR102373852B1/en active IP Right Grant
-
2020
- 2020-03-09 US US16/812,559 patent/US11133061B2/en active Active
-
2021
- 2021-08-30 US US17/460,415 patent/US11657872B2/en active Active
Patent Citations (4)
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 |