CN109564532B - 包括存储器的设备及用于操作存储器的方法 - Google Patents
包括存储器的设备及用于操作存储器的方法 Download PDFInfo
- Publication number
- CN109564532B CN109564532B CN201780048451.4A CN201780048451A CN109564532B CN 109564532 B CN109564532 B CN 109564532B CN 201780048451 A CN201780048451 A CN 201780048451A CN 109564532 B CN109564532 B CN 109564532B
- Authority
- CN
- China
- Prior art keywords
- data
- subset
- memory
- data structure
- counter
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90339—Query processing by using parallel associative memories or content-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
- G06F11/2084—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring on the same storage unit
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
Abstract
本发明包含用于存储器中基于概率数据结构的前瞻修正动作的设备及方法。若干实施例包含存储器及电路系统,所述电路系统经配置以:将与存储于所述存储器中的数据的子集相关联的信息输入到概率数据结构中;及至少部分地使用所述概率数据结构前瞻地确定是否对存储于所述存储器中的数据的所述子集采取修正动作。
Description
技术领域
本发明大体上涉及半导体存储器及方法,且更特定来说,涉及存储器中基于概率数据结构的前瞻修正动作。
背景技术
存储器装置通常被提供为计算机或其它电子装置中的内部半导体集成电路及/或外部可抽换式装置。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可需要电力来维持其数据且可包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)等等。非易失性存储器可在未经供电时留存经存储数据且可包含NAND快闪存储器、NOR快闪存储器、相变随机存取存储器(PCRAM)、电阻性随机存取存储器(RRAM)及磁性随机存取存储器(MRAM)等等。
可将存储器装置组合在一起以形成固态驱动器(SSD)。SSD可包含非易失性存储器(例如,NAND快闪存储器及/或NOR快闪存储器)及/或可包含易失性存储器(例如,DRAM及/或SRAM),以及各种其它类型的非易失性及易失性存储器。快闪存储器装置可包含例如将数据存储于例如浮动栅极的电荷存储结构中的存储器单元,且可用作用于广泛范围的电子应用的非易失性存储器。快闪存储器装置通常使用允许高存储器密度、高可靠性及低电力消耗的单晶体管存储器单元。
可将阵列架构中的存储器单元编程到目标(例如,所要)状态。举例来说,可将电荷放置于存储器单元的电荷存储结构(例如,浮动栅极)上或从其中移除以将所述单元编程到特定数据状态。存储器单元的电荷存储结构上的经存储电荷可指示所述单元的阈值电压(Vt)。
举例来说,可将单电平单元(SLC)编程到两个不同数据状态中的目标数据状态,其可由二进制单位1或0表示。可将一些快闪存储器单元编程到多于两个数据状态中的目标数据状态(例如,1111、0111、0011、1011、1001、0001、0101、1101、1100、0100、0000、1000、1010、0010、0110及1110)。可将此类单元称为多状态存储器单元、多单位单元或多电平单元(MLC)。MLC可提供较高密度的存储器而不增加存储器单元的数目,这是因为每一单元可表示多于一个数字(例如,多于一个位)。
可通过感测快闪存储器单元的电荷存储结构上的经存储电荷(例如,Vt)而确定所述单元的状态。然而,例如读取扰动、编程扰动、单元间干扰及/或电荷损耗(例如,电荷泄漏)的若干机制例如可造成存储器单元的Vt改变,这可降低存储于存储器中的数据的质量。举例来说,存储器单元的Vt的改变可造成所述单元被感测为处于除了目标状态之外的状态(例如,不同于所述单元被编程到的状态的状态)。如果不采取修正动作,那么数据的质量的此类降低可减少存储器的寿命及/或可造成存储器失效。
附图说明
图1绘示根据本发明的若干实施例的具有若干物理块的存储器阵列的部分的图式。
图2绘示根据本发明的若干实施例的概率数据结构的框图。
图3是根据本发明的若干实施例的包含呈存储器装置的形式的设备的计算系统的功能框图。
图4绘示根据本发明的若干实施例的用于操作存储器的方法。
图5绘示根据本发明的若干实施例的用于操作存储器的方法。
具体实施方式
本发明包含用于存储器中基于概率数据结构的前瞻修正动作的设备及方法。若干实施例包含存储器及电路系统,所述电路系统经配置以:将与存储于所述存储器中的数据的子集相关联的信息输入到概率数据结构中;及至少部分地使用所述概率数据结构前瞻地确定是否对存储于所述存储器中的数据的所述子集采取修正动作。
本发明的实施例可使用例如计数型布隆(Bloom)筛选器的概率数据结构来跟踪存储器中的数据质量的指标,以前瞻地确定何时可需要对数据采取修正动作。举例来说,本发明的实施例可使用概率数据结构来跟踪读取扰动、耗损均衡及/或热及冷数据分类以及数据质量的其它指标(例如,度量),以前瞻地确定何时采取修正动作。因而,本发明的实施例可用于减少存储器中的失效及/或增加存储器的寿命,以及其它益处。此外,本发明的实施例可适合于快速及/或简单明了的硬件及/或固件实施方案。
此外,通过使用概率数据结构来跟踪数据质量指标,相比于跟踪数据质量指标的先前方法,例如其中指派不同计数器以跟踪存储于存储器中的数据的每一相应子集(例如,块)的数据质量指标的方法,本发明的实施例可使用(例如,消耗)显著较少的存储器。举例来说,根据本发明使用概率数据结构来跟踪数据质量指标可消除此类先前方法所需要的对于使存储器针对每一相应子集包含不同计数器的需要。因而,相比于用于跟踪数据质量指标的此类先前方法,本发明的实施例可使用显著较少的存储器,例如,作为实例,少大约75%的存储器。
此外,本发明的实施例可有效地及/或准确地(例如,恰如使用显著较多的存储器的先前方法那样有效地及/或准确地)动态跟踪存储器中的数据质量指标。举例来说,与理想的无错误系统相比,与本发明的实施例相关联的错误率(例如,当实际可能不需要修正动作时采取修正动作的错误率,及/或当实际可能需要修正动作时未采取修正动作的错误率)可为可忽略的。举例来说,作为实例,与本发明的实施例相关联的错误率可为大约1.5×10-5。
如本文中所使用,“若干”事物可指一或多个此类事物。举例来说,若干存储器单元可指一或多个存储器单元。另外,如本文中所使用,尤其关于附图中的元件符号的标示符“R”、“B”、“S”、“K”及“N”指示本发明的若干实施例可包含如此标示的若干特定特征。
本文中的图遵循编号惯例,其中第一个数字或前几个数字对应于附图图号且剩余数字识别附图中的元件或组件。可通过使用类似数字识别不同图之间的类似元件或组件。
图1绘示根据本发明的若干实施例的具有若干物理块的存储器阵列100的部分的图式。存储器阵列100可为例如NAND快闪存储器阵列。然而,本发明的实施例不限于特定类型的存储器或存储器阵列。举例来说,存储器阵列100可为DRAM阵列、RRAM阵列或PCRAM阵列,以及其它类型的存储器阵列。此外,虽然在图1中未展示,但存储器阵列100可连同与其操作相关联的各种周边电路系统一起位于特定半导体裸片上。
如图1中所展示,存储器阵列100具有存储器单元的若干物理块116-0(块0)、116-1(块1)、…、116-B(块B)。存储器单元可为单电平单元及/或多电平单元,例如二电平单元、三电平单元(TLC)或四电平单元(QLC)。作为实例,存储器阵列100中的物理块的数目可为128个块、512个块或1,024个块,但实施例不限于2的特定次幂或存储器阵列100中的物理块的任何特定数目。
存储器单元的若干物理块(例如,块116-0、116-1、…、116-B)可包含于存储器单元的平面中,且存储器单元的若干平面可包含于裸片上。举例来说,在图1中所展示的实例中,每一物理块116-0、116-1、…、116-B可为单个裸片的部分。即,图1中所绘示的存储器阵列100的部分可为存储器单元的裸片。
如图1中所展示,每一物理块116-0、116-1、…、116-B包含耦合到存取线(例如,字线)的存储器单元的若干物理行(例如,120-0、120-1、…、120-R)。每一物理块中的行(例如,字线)的数目可为32,但实施例不限于每一物理块的行120-0、120-1、…、120-R的特定数目。此外,虽然在图1中未展示,但存储器单元可耦合到感测线(例如,数据线及/或数字线)。
所属领域的一般技术人员将了解,每一行120-0、120-1、…、120-R可包含存储器单元的若干页(例如,物理页)。物理页是指编程及/或感测的单位(例如,作为功能群组被一起编程及/或感测的若干存储器单元)。在图1中所展示的实施例中,每一行120-0、120-1、…、120-R包括存储器单元的一个物理页。然而,本发明的实施例并不如此受限制。举例来说,在若干实施例中,每一行可包括存储器单元的多个物理页(例如,耦合到偶数编号的位线的存储器单元的一或多个偶数页,及耦合到奇数编号的位线的存储器单元的一或多个奇数页)。另外,针对包含多电平单元的实施例,存储器单元的物理页可存储数据的多个页(例如,逻辑页)(例如,数据的上部页及数据的下部页,其中物理页中的每一单元存储朝向数据的上部页的一或多个位及朝向数据的下部页的一或多个位)。
编程操作(例如,写入操作)可包含将若干编程脉冲(例如,16V到20V)施加到选定字线,以便将耦合到所述选定字线的选定单元的阈值电压(Vt)增加到对应于目标(例如,所要)数据状态的所要编程电压电平。例如读取或编程验证操作的感测操作可包含感测耦合到选定单元的感测线的电压及/或电流改变,以便确定选定单元的数据状态。
在本发明的若干实施例中,且如图1中所展示,存储器单元的页可包括若干物理区段122-0、122-1、…、122-S(例如,存储器单元的子集)。单元的每一物理区段122-0、122-1、…、122-S可存储数据的若干逻辑区段(例如,数据字)。另外,数据的每一逻辑区段可对应于数据的特定页的部分。作为实例,存储于特定物理区段中的数据的第一逻辑区段可对应于与数据的第一页对应的逻辑区段,且存储于所述特定物理区段中的数据的第二逻辑区段可对应于数据的第二页。每一物理区段122-0、122-1、…、122-S可存储系统及/或用户数据,及/或可包含开销数据,例如错误修正码(ECC)数据、逻辑块地址(LBA)数据及复现错误数据。
逻辑块寻址是可由主机用于识别数据的逻辑区段的方案。举例来说,每一逻辑区段可对应于唯一逻辑块地址(LBA)。另外,LBA还可对应于(例如,动态映射到)物理地址。数据的逻辑区段可为数据的若干字节(例如,256个字节、512个字节或1,024个字节)。然而,实施例不限于这些实例。
应注意,物理块116-0、116-1、…、116-B、行120-0、120-1、…、120-R、区段122-0、122-1、…、122-S及页的其它配置是可能的。举例来说,物理块116-0、116-1、…、116-B的行120-0、120-1、…、120-R可各自存储对应于可包含例如数据的多于或少于512个字节的单个逻辑区段的数据。
图2绘示根据本发明的若干实施例的概率数据结构202的框图。概率数据结构202可例如基于可用于前瞻地确定是否对存储于存储器中的数据的子集采取修正动作的计数型布隆筛选器(例如,其经修改版本),如本文中将进一步所描述。
例如计数型布隆筛选器的概率数据结构可包含若干计数器(例如,图2中所绘示的计数器232)。举例来说,计数型布隆筛选器可包含M个d位递增/递减计数器,其中M是计数器的数量且d是每一相应计数器的位的数量。因而,可由M×d给出计数型布隆筛选器的大小。当计数型布隆筛选器是空的时,每一计数器(例如,每一计数器的值)被设置为0。虽然图2中所绘示的实例包含16个计数器(例如,0到15),但本发明的实施例不限于特定数量的计数器。
计数型布隆筛选器可进一步包含若干(例如,K个)不同哈希函数,所述哈希函数中的每一者可优选地使用均匀随机分布将输入(例如,主体)元素哈希(例如,映射)到计数器中的一者。举例来说,可根据K个哈希函数中的每一者处理输入元素以确定元素被映射到的对应K个计数器,且可相应地更新这些计数器(例如,这些计数器的值)。当计数器的值达到特定阈值时,计数器可被复位为0。
作为实例,图2展示具有若干哈希函数230-1、230-2、…、230-K(例如,H1、H2、…、HK)的概率数据结构(例如,计数型布隆筛选器)202。在图2中所绘示的实例中,元素234(例如,X)被展示为由计数型布隆筛选器202处理(例如,通过计数型布隆筛选器202)以产生相应哈希输出(例如,H1(X)、H2(X)、…、HK(X))。举例来说,如由哈希函数230-1所处理的元素234被指示为H1(X)且对应于计数型布隆筛选器202的计数器232的计数器7,所述计数器7被展示为被更新到8的值。此外,如由哈希函数230-2所处理的元素234被指示为H2(X)且对应于计数器232的计数器14,所述计数器14被展示为被更新到2的值。此外,如由哈希函数230-K所处理的元素234被指示为HK(X)且对应于计数器232的计数器1,所述计数器1被展示为被更新到12的值。在若干实施例中,哈希函数230-1、230-2、…、230-K可基于例如XOR运算、SHIFT运算等等的二进制运算而产生其相应输出,这可使计数型布隆筛选器202的硬件及/或固件实施方案快速及/或简单明了。
因而,计数型布隆筛选器202可用于俘获特定元素出现的频率(例如,元素被输入到计数型布隆筛选器202中且由计数型布隆筛选器202处理的频率)。相比之下,标准布隆筛选器可简单用于指示元素包含在特定元素集中或从特定元素集排除(例如,检查元素是否是所述集的成员)。
应注意,在一些例子中,哈希函数230-1、230-2、…、230-K的输出可针对不同输入元素重叠,这可导致假阳性及/或假阴性错误(例如,元素被指示为比其实际更频繁或更不频繁地出现)。然而,可基于用于M、d及K的数量而减少(例如,最小化或优化)此类错误。举例来说,在计数型布隆筛选器202包含两个哈希函数及1024个8位计数器的实施例中(例如,在M、d及K分别为1024、8及2的实施例中),可减少(例如,最小化)此类误差。在此类实施例中,计数型布隆筛选器202的存储器部分的大小(例如,不包含两个哈希函数)将是1千字节(kB)。然而,本发明的实施例不限于此类实施例。
图3是根据本发明的若干实施例的包含呈存储器装置344的形式的设备的计算系统304的功能框图。如本文中所使用,“设备”可指但不限于各种结构或结构组合中的任一者,例如电路或电路系统、裸片或若干裸片、模块或若干模块、装置或若干装置,或系统或若干系统。
存储器装置344可为例如固态驱动器(SSD)。在图3中所绘示的实施例中,存储器装置344包含物理主机接口346、若干存储器350-1、350-2、...、350-N(例如,固态存储器装置),及耦合到物理主机接口346及存储器350-1、350-2、...、350-N的控制器348(例如,SSD控制器)。
存储器350-1、350-2、...、350-N可包含例如若干非易失性存储器阵列(例如,非易失性存储器单元阵列)。举例来说,存储器350-1、350-2、...、350-N可包含类似于先前结合图1所描述的存储器阵列100的若干存储器阵列。
物理主机接口346可用于在存储器装置344与例如主机342的另一装置之间传送信息。主机342可包含存储器存取装置(例如,处理器)。所属领域的一般技术人员将了解,“处理器”可意指若干处理器,例如平行处理系统、若干协处理器等等。实例主机可包含个人膝上型计算机、台式计算机、数码相机、数字记录及回放装置、例如智能电话的移动电话、PDA、存储卡读取器、接口集线器等等。
物理主机接口346可呈标准化物理接口的形式。举例来说,当存储器装置344用于计算系统304中的信息存储时,物理主机接口346可为串行高级技术附件(SATA)物理接口、外围组件互连高速(PCIe)物理接口或通用串行总线(USB)物理接口,以及其它物理连接器及/或接口。然而,一般来说,物理主机接口346可提供用于在存储器装置344与具有用于物理主机接口346的兼容接受器的主机(例如,主机342)之间传递控制、地址、信息(例如,数据)及其它信号的接口。
控制器348可包含例如控制电路系统及/或逻辑(例如,硬件及固件)。控制器348可与存储器350-1、350-2、...、350-N包含在同一物理装置(例如,同一裸片)上。举例来说,控制器348可为耦合到包含物理主机接口346及存储器350-1、350-2、...、350-N的印刷电路板的专用集成电路(ASIC)。替代地,控制器348可包含在以通信方式耦合到包含存储器350-1、350-2、...、350-N的物理装置的单独物理装置上。在若干实施例中,控制器348的组件可作为分布式控制器而跨多个物理装置散布(例如,一些组件与存储器在同一裸片上,且一些组件在不同裸片、模块或板上)。
控制器348可与存储器350-1、350-2、...、350-N通信以感测(例如,读取)、编程(例如,写入)及/或擦除信息,以及其它操作。控制器348可具有可为若干集成电路及/或离散组件的电路系统。在若干实施例中,控制器348中的电路系统可包含用于控制跨存储器350-1、350-2、...、350-N的存取的控制电路系统,及/或用于提供主机342与存储器装置344之间的翻译层的电路系统。
在若干实施例中,控制器348可使用概率数据结构,例如先前结合图2所描述的概率数据结构(例如,计数型布隆筛选器)202,来跟踪存储于存储器350-1、350-2、...、350-N中的数据的质量的指标(例如,度量),包含例如读取扰动、耗损均衡及/或热及冷数据分类以及其它数据质量指标,以前瞻地确定何时可需要对数据采取修正动作。举例来说,控制器348可将与存储于存储器350-1、350-2、...、350-N中的数据的子集相关联的信息输入到概率数据结构中,且至少部分地使用概率数据结构前瞻地确定是否对数据的子集采取修正动作。举例来说,控制器348可使用概率数据结构来对经输入信息执行操作,且至少部分地基于操作的结果而前瞻地确定是否对数据的子集采取修正动作。如本文中所使用,“前瞻地”确定何时可需要采取修正动作及“前瞻地”确定是否采取修正动作可指:在可实际需要采取修正动作之前,例如在存储器的失效实际出现(例如,预期到失效将很快出现)之前,确定可需要采取修正动作及确定是否采取修正动作。
在若干实施例中,概率数据结构可包含于控制器348中。举例来说,控制器348的DRAM可用于概率数据结构的计数器。
经输入信息可对应于先前结合图2所描述的元素234,且可为例如与数据的子集相关联的识别信息(例如,识别所述子集的信息)。此外,数据的子集可为数据的块(或数据的(若干)其它单位,例如数据的块或多个块的子集),例如已由控制器348对其执行感测(例如,读取)或编程(例如,写入)操作的块(例如,包含对其执行感测或编程操作的存储器单元的页的块)。举例来说,可在由控制器348执行感测或编程操作后(例如,响应于由控制器348执行感测或编程操作)就将识别信息输入到概率数据结构中。
由概率数据结构对经输入信息执行的操作可包含由概率数据结构的哈希函数处理经输入信息,如先前结合图2所描述。举例来说,每一相应哈希函数的输出可对应于概率数据结构的不同计数器(例如,位置),如先前结合图2所描述,且可相应地更新(例如,增大、减小或复位)这些计数器中的每一者(例如,这些计数器中的每一者的相应值)。计数器中的每一者的相应值在其已被更新之后可对应于由概率数据结构执行的操作的结果。
每一相应哈希函数的输出所对应的不同计数器中的每一者被更新(例如,增大、减小或复位)的数量(例如,量)可取决于由概率数据结构跟踪的数据质量指标的(若干)类型。举例来说,如果响应于感测操作而输入信息(例如,如果所述感测操作是对数据的子集执行的感测操作),且概率数据结构正在跟踪读取扰动,那么不同计数器中的每一者可被更新达对其执行感测操作的数据的子集中的页的数量。然而,本发明的实施例不限于此特定实例。举例来说,如果概率数据结构正在跟踪热及冷数据分类,那么不同计数器中的每一者可被更新达在对数据的子集执行的感测及/或编程操作期间存取数据的子集的次数。作为额外实例,如果概率数据结构正在跟踪耗损均衡,那么不同计数器中的每一者可被更新达对数据的子集执行的编程及/或擦除循环的数量。
此过程可针对后续经输入信息(例如,在存储器装置344的操作期间执行的后续感测操作)继续,直到由概率数据结构执行的操作的结果(例如,经更新计数器的值)满足或超过特定阈值。所述阈值可为固定阈值,或其可为可调整(例如,可编程及/或可改变)阈值。作为实例,如果概率数据结构正在跟踪读取扰动,那么概率数据结构中的阈值可小于或等于(2^d)–1,其中d是每一相应计数器的位的数量。然而,本发明的实施例不限于此特定实例。
在由概率数据结构执行的操作的结果(例如,经更新计数器的值)满足或超过特定阈值后,就可将计数器(例如,计数器的值)复位(例如,为零),且可将与数据的子集相关联的信息(例如,识别信息)存储于包含于控制器348中的高速缓冲存储器中(例如,移动到所述高速缓冲存储器)。举例来说,高速缓冲存储器可包含若干计数器,且计数器中的一者可与数据的所述子集相关联(例如,指派到数据的所述子集)。高速缓冲存储器中的每一相应计数器可包含32-d个位。因而,可由L×(32-d)给出高速缓冲存储器的大小,其中L是高速缓冲存储器中的计数器的数量且d是概率数据结构中的每一相应计数器的位的数量。作为实例,高速缓冲存储器可包含1060个计数器(例如,L可为1060)。在此类实例中,高速缓冲存储器的大小将是大约3.88kB(包含高速缓冲存储器开销)。作为额外实例,高速缓冲存储器中所使用的每一计数器的大小可为至少ceil(log2(T–T1)),其中ceil(.)是顶值函数,log2(.)是以2为底数的对数函数,T1是概率数据结构中的阈值,且T是执行修正动作的阈值。
在包含概率数据结构的控制器的存储器是二层级式存储器(例如,包含二层级式存储器单元)的实施例中,概率数据结构可包含于两个层级中的第一者(例如,一个层级)中,且高速缓冲存储器可包含于两个层级中的第二者(例如,另一层级)中。在包含概率数据结构的控制器的存储器是三层级式存储器(例如,包含TLC)的实施例中,概率数据结构可包含于第一层级及第二层级(例如,三个层级中的两者)中,且高速缓冲存储器可包含于第三层级(例如,剩余层级)中。
在与数据的子集相关联的信息存储于高速缓冲存储器中后,对数据的子集执行的后续感测操作就可能不会导致与所述子集相关联的信息被输入到概率数据结构中。实情是,可在对数据的子集执行的每一后续感测操作后(例如,响应于对数据的子集执行的每一后续感测操作)就更新高速缓冲存储器中与所述子集相关联的计数器。高速缓冲存储器中的计数器被更新的数量(例如,量)可对应于概率数据结构的计数器被更新的数量。举例来说,如果概率数据结构正在跟踪读取扰动且概率数据结构的计数器被更新达对其执行感测操作的数据的子集中的页的数量,那么高速缓冲存储器中的计数器还可被更新达对其执行感测操作的子集中的页的数量。
此过程可继续直到高速缓冲存储器中与数据的子集相关联的计数器的值满足或超过特定阈值。所述阈值可为固定阈值,或其可为可调整(例如,可编程及/或可改变)阈值。此外,此阈值可比概率数据结构中所使用的阈值大得多(例如,大若干数量级)。因而,概率数据结构可用于动态筛选存储于存储器350-1、350-2、...、350-N中的质量可能正在下降的数据的子集,例如可达到高读取扰动计数的数据的子集,且接着可使用高速缓冲存储器进一步跟踪数据的这些子集。
在高速缓冲存储器中与数据的子集相关联的计数器的值满足或超过高速缓冲存储器阈值后,控制器348就可对数据的子集采取修正动作,且可将计数器(例如,计数器的值)复位(例如,为零)且可从高速缓冲存储器移除与数据的子集相关联的信息。修正动作可为例如数据的子集到存储器350-1、350-2、...、350-N中的不同位置(例如,不同物理位置)的重新定位。举例来说,数据的子集可被编程到存储器350-1、350-2、...、350-N的不同页、块或裸片及/或存储于存储器350-1、350-2、...、350-N的不同页、块或裸片中。作为额外实例,在存储器350-1、350-2、...、350-N包含SLC及MLC的实施例中,修正动作可包含将存储于存储器350-1、350-2、...、350-N的SLC中的子集的数据编程到存储器350-1、350-2、...、350-N的MLC(例如,将SLC数据折叠到MLC,或反之亦然)。举例来说,可将SLC数据折叠到存储器350-1、350-2、...、350-N中具有MLC配置的另一物理位置,或反之亦然。
在例如概率数据结构用于跟踪读取扰动的实施例的若干实施例中,对数据的子集执行的编程操作可导致概率数据结构及/或高速缓冲存储器的复位。举例来说,在编程操作后(例如,响应于编程操作),就可将与数据的子集相关联的信息(例如,识别信息)输入到概率数据结构中,且可由概率数据结构以类似于本文中先前所描述的方式的方式处理经输入信息。然而,代替更新概率数据结构的每一相应哈希函数的输出所对应的概率数据结构的不同计数器中的每一者(例如,如响应于感测操作将出现那样),可将不同计数器中的每一者(例如,不同计数器中的每一者的值)复位(例如,为零)。此外,如果与数据的子集相关联的信息存储于高速缓冲存储器中(例如,如果编程操作在满足或超过概率数据结构阈值且将信息从概率数据结构移动到高速缓冲存储器之后发生),那么响应于编程操作,可复位高速缓冲存储器中与数据的子集相关联的计数器,且可从高速缓冲存储器移除信息。
根据本发明使用概率数据结构来跟踪数据质量指标可使用(例如,消耗)比由跟踪数据质量指标的先前方法(例如指派不同计数器来跟踪存储于存储器中的数据的每一相应子集(例如,块)的数据质量指标的方法)将使用的控制器348的(例如,控制器348的存储器的)显著较低的部分。举例来说,根据本发明使用概率数据结构来跟踪数据质量指标可消除此类先前方法所需要的将控制器348及/或存储器350-1、350-2、...、350-N中的计数器(例如,专用计数器)指派到每一相应子集的需要。
举例来说,在本文中先前所描述的实例中,针对专用于跟踪数据质量指标的总共大约4.88kB的存储器,概率数据结构可具有1kB的大小,且高速缓冲存储器可具有大约3.88kB的大小。相比之下,先前方法可使用具有将专用于跟踪数据质量指标的20kB的大小的高速缓冲存储器。因而,相比于用于跟踪数据质量指标的此类先前方法,本发明的实施例可使用显著较少的存储器,例如少大约75%的存储器。
此外,本发明的实施例可有效地及/或准确地(例如,恰如使用显著较多的存储器的先前方法那样有效地及/或准确地)跟踪存储器350-1、350-2、...、350-N中的数据质量指标。举例来说,如本文中先前所描述,概率数据结构的哈希函数的输出可针对不同输入元素重叠,这可导致假阳性及/或假阴性错误,这可又导致当实际可能不需要修正动作时采取修正动作及/或当实际可能需要修正动作时未采取修正动作。然而,如本文中先前所描述,可基于用于概率数据结构中的M、d及K的数量而减少(例如,最小化)此类错误。举例来说,如结合图2所描述的实例中所描述,针对M、d及K分别使用1024、8及2的值可导致大约1.5×10-5的错误率,与理想的无错误系统相比,所述错误率可为可忽略的。然而,这仅是实例说明,且本发明的实施例并不如此受限制。
图3中所绘示的实施例可包含未绘示以免使本发明的实施例模糊的额外电路系统、逻辑及/或组件。举例来说,存储器装置344可包含地址电路系统以锁存在I/O连接器上经由I/O电路系统提供的地址信号。地址信号可由行解码器及列解码器接收及解码,以存取存储器350-1、350-2、...、350-N。
图4绘示根据本发明的若干实施例的用于操作例如先前结合图3所描述的存储器350-1、350-2、...、350-N的存储器的方法406。方法406可由例如先前结合图3所描述的控制器348执行。
方法406可用于例如跟踪存储器中的数据质量的指标以前瞻地确定何时可需要对数据采取修正动作。举例来说,方法406可用于跟踪存储器中的读取扰动。然而,本发明的实施例并不如此受限制,且方法406可用于跟踪其它数据质量指标,如本文中先前所描述。
在框460处,方法406包含确定与存储于存储器中的数据的子集相关联的识别信息。数据的子集可为例如已对其执行感测(例如,读取)操作的数据的块,如本文中先前所描述(例如,结合图3)。即,当已执行感测操作时,可使用方法406。可通过例如映射与感测操作相关联的逻辑块地址(LBA)(例如,用于识别对其执行感测操作的数据的子集的LBA)而确定识别信息。
在框462处,方法406包含确定与数据的子集相关联的识别信息是否存储于高速缓冲存储器中。举例来说,高速缓冲存储器可包含若干计数器,如本文中先前所描述(例如,结合图3),且确定识别信息是否存储于高速缓冲存储器中可包含确定计数器中的任一者是否与识别信息相关联(例如,被指派到数据的子集)。
如果确定与数据的子集相关联的识别信息未存储于高速缓冲存储器中,那么在框464处可将识别信息输入到概率数据结构中。所述概率数据结构可为例如结合图2所描述的概率数据结构(例如,计数型布隆筛选器)202。举例来说,经输入信息可对应于先前结合图2所描述的元素234。
在框466处,方法406包含使用概率数据结构对经输入识别信息执行操作。操作可包含由概率数据结构的哈希函数处理经输入信息,如本文中先前所描述(例如,结合图2及3)。
在框468处,方法406包含确定操作的结果是否满足或超过特定阈值。操作的结果可对应于在操作期间更新的概率数据结构的计数器的值,如本文中先前所描述(例如,结合图3)。
如果确定操作的结果(例如,在操作期间更新的计数器的值)未满足或超过阈值,那么方法406在框472处结束。如果确定操作的结果满足或超过阈值,那么在框470处将识别信息存储于高速缓冲存储器中(例如,可将高速缓冲存储器的计数器中的一者指派到识别信息),且可复位在操作期间更新的概率数据结构的计数器的值。
如果在框462处确定与数据的子集相关联的识别信息存储于高速缓冲存储器中(例如,已将识别信息指派到高速缓冲存储器的计数器中的一者),那么在框474处更新所述计数器的值。计数器被更新的数量(例如,量)可对应于概率数据结构的计数器被更新的数量,如本文中先前所描述(例如,结合图3)。
在框476处,方法406包含确定在框474处更新的高速缓冲存储器的计数器的值是否满足或超过特定阈值。此阈值可比在概率数据结构中所使用的阈值大得多,如本文中先前所描述(例如,结合图3)。
如果确定高速缓冲存储器的计数器的值未满足或超过阈值,那么方法406在框480处结束。如果确定高速缓冲存储器的计数器的值满足或超过阈值,那么在框478处对数据的子集采取修正动作,且从高速缓冲存储器移除与数据的子集相关联的识别信息。修正动作可为例如数据的子集到存储器中的不同位置的重新定位,及/或可包含将存储于存储器的SLC中的子集的数据编程到存储器的MLC(或反之亦然),如本文中先前所描述(例如,结合图3)。
图5绘示根据本发明的若干实施例的用于操作例如先前结合图3所描述的存储器350-1、350-2、...、350-N的存储器的方法508。方法508可由例如先前结合图3所描述的控制器348执行。
方法508可用于例如跟踪存储器中的数据质量的指标以前瞻地确定何时可需要对数据采取修正动作。举例来说,方法508可用于跟踪存储器中的读取扰动。然而,本发明的实施例并不如此受限制,且方法508可用于跟踪其它数据质量指标,如本文中先前所描述。
此外,在若干实施例中,可仅在受对数据的子集(例如,块)执行的编程操作影响的页的数量满足或超过特定阈值的情况下才使用(例如,触发)方法508。举例来说,在此类实施例中,如果此阈值是100,且在编程操作期间仅编程50页,那么将不触发方法508。另外或替代地,在若干实施例中,可仅在对数据的子集执行特定类型或若干类型的编程操作的情况下才使用(例如,触发)方法508。举例来说,在此类实施例中,可仅在编程操作将数据重新编程到子集的部分(例如,将数据编程到先前已使数据编程到其子集的部分)的情况下才触发方法508。
在框582处,方法508包含确定与存储于存储器中的数据的子集相关联的识别信息。数据的子集可为例如已对其执行编程(例如,写入)操作的数据的块,如本文中先前所描述(例如,结合图3)。即,当已执行编程操作时,可使用方法508。可通过例如映射与编程操作相关联的逻辑块地址(LBA)(例如,用于识别对其执行编程操作的数据的子集的LBA)而确定识别信息。
在框584处,方法508包含确定与数据的子集相关联的识别信息是否存储于高速缓冲存储器中。举例来说,高速缓冲存储器可包含若干计数器,如本文中先前所描述(例如,结合图3),且确定识别信息是否存储于高速缓冲存储器中可包含确定计数器中的任一者是否与识别信息相关联(例如,被指派到数据的子集)。
如果确定与数据的子集相关联的识别信息未存储于高速缓冲存储器中,那么在框586处可将识别信息输入到概率数据结构中。所述概率数据结构可为例如结合图2所描述的概率数据结构(例如,计数型布隆筛选器)202。举例来说,经输入信息可对应于先前结合图2所描述的元素234。
在框588处,方法508包含使用概率数据结构对经输入识别信息执行操作。操作可包含由概率数据结构的哈希函数处理经输入信息,如本文中先前所描述(例如,结合图2及3)。然而,代替更新概率数据结构的每一相应哈希函数的输出所对应的概率数据结构的不同计数器中的每一者的操作(例如,如例如在结合图4所描述的方法406的框466处响应于感测操作将出现那样),操作可将不同计数器中的每一者(例如,不同计数器中的每一者的值)复位(例如,为零)。即,方法508包含在框590处复位概率数据结构的这些计数器。
如果在框584处确定与数据的子集相关联的识别信息存储于高速缓冲存储器中,那么在框592处从高速缓冲存储器移除识别信息。举例来说,可复位高速缓冲存储器中与识别信息相关联的计数器。
虽然已在本文中绘示及描述了特定实施例,但所属领域的一般技术人员将了解,经计算以实现相同结果的布置可取代所展示的特定实施例。本发明希望涵盖本发明的若干实施例的调适或变化。应理解,已按说明性方式而非限制性方式做出上述描述。所属领域的一般技术人员在审阅上述描述后就将明白上述实施例的组合及在本文中未具体描述的其它实施例。本发明的若干实施例的范围包含其中使用上述结构及方法的其它应用。因此,应参考所附权利要求书以及此类权利要求书所授权的等效物的全范围确定本发明的若干实施例的范围。
在前述具体实施方式中,出于简化本发明的目的,将一些特征一起集中于单个实施例中。本发明的此方法不应被解释为反映本发明的所揭示实施例必须使用多于每一权利要求中明确叙述的特征的意图。实情是,如所附权利要求书所反映,本发明主题在于少于单个所揭示实施例的所有特征。因此,特此将所附权利要求书并入具体实施方式中,其中每一权利要求独立地作为单独实施例。
Claims (17)
1.一种设备,其包括:
存储器;及
电路系统,其经配置以:
将与存储于所述存储器中的数据的子集相关联的识别信息输入到概率数据结构中,其中所述概率数据结构经配置以在数据的所述子集通过所述概率数据结构时,通过更新与哈希输出相关联的第一计数器来俘获将与数据的所述子集相关联的所述识别信息输入到所述概率数据结构中的频率;
在所述第一计数器的值达到第一阈值时,将与所述哈希输出相关联的所述第一计数器的所述值复位为零值且将与数据的所述子集相关联的所述识别信息移动到高速缓冲存储器,所述高速缓冲存储器包含于所述电路系统中;及
当所述识别信息存储于所述高速缓冲存储器中时,在与对数据的所述子集执行的若干感测操作相关联的第二计数器的值达到第二阈值时,对存储于所述存储器中的数据的所述子集采取修正动作,其中所述修正动作包含数据的所述子集到所述存储器中的不同位置的重新定位。
2.根据权利要求1所述的设备,其中所述概率数据结构是基于计数型布隆筛选器。
3.根据权利要求1所述的设备,其中:
存储于所述存储器中的数据的所述子集是数据的块;且
所述经输入识别信息包含针对数据的所述块的识别信息。
4.根据权利要求1到3中任一权利要求所述的设备,其中所述修正动作包含将存储于所述存储器的单电平单元中的所述子集的数据编程到所述存储器的多电平单元。
5.根据权利要求1到3中任一权利要求所述的设备,其中所述修正动作包含将存储于所述存储器的多电平单元中的所述子集的数据编程到所述存储器的单电平单元。
6.一种用于操作存储器的方法,其包括:
将与存储于存储器中的数据的子集相关联的识别信息输入到概率数据结构中,其中所述概率数据结构经配置以在数据的所述子集通过所述概率数据结构时,通过更新与哈希输出相关联的第一计数器来俘获将与数据的所述子集相关联的所述识别信息输入到所述概率数据结构中的频率;
在所述第一计数器的值达到第一阈值时,将与所述哈希输出相关联的所述第一计数器的所述值复位为零值且将与数据的所述子集相关联的所述识别信息移动到高速缓冲存储器;及
当所述识别信息存储于所述高速缓冲存储器中时,在与对数据的所述子集执行的若干感测操作相关联的第二计数器的值达到第二阈值时,对存储于所述存储器中的数据的所述子集采取修正动作,其中所述修正动作包含数据的所述子集到所述存储器中的不同位置的重新定位。
7.根据权利要求6所述的方法,其中所述方法包含:
由所述概率数据结构的若干哈希函数处理所述经输入识别信息,其中每一相应哈希函数的输出对应于所述概率数据结构的不同计数器;及
更新每一相应哈希函数的所述输出所对应的所述不同计数器中的每一者。
8.根据权利要求7所述的方法,其中所述方法包含更新所述不同计数器中的每一者达对其执行感测操作的数据的所述子集中的页的数量。
9.根据权利要求7所述的方法,其中所述方法包含更新所述不同计数器中的每一者达在对数据的所述子集的至少一部分执行的感测或编程操作期间存取数据的所述子集的次数。
10.根据权利要求7所述的方法,其中所述方法包含更新所述不同计数器中的每一者达对数据的所述子集的至少一部分执行的编程及/或擦除循环的数量。
11.一种设备,其包括:
存储器;及
电路系统,其经配置以:
确定与存储于所述存储器中的数据的子集相关联的识别信息是否存储于高速缓冲存储器中;
在确定所述识别信息未存储于所述高速缓冲存储器中后就将与数据的所述子集相关联的所述识别信息输入到概率数据结构中,其中所述概率数据结构经配置以在数据的所述子集通过所述概率数据结构时,通过更新与哈希输出相关联的第一计数器来俘获将与数据的所述子集相关联的所述识别信息输入到所述概率数据结构中的频率;
在所述第一计数器的值达到第一阈值时,将与所述哈希输出相关联的所述第一计数器的所述值复位为零值且将与数据的所述子集相关联的所述识别信息移动到所述高速缓冲存储器;及
当所述识别信息存储于所述高速缓冲存储器中时,在与对数据的所述子集执行的若干感测操作相关联的第二计数器的值达到第二阈值时,对存储于所述存储器中的数据的所述子集采取修正动作,其中所述修正动作包含数据的所述子集到所述存储器中的不同位置的重新定位。
12.根据权利要求11所述的设备,其中所述电路系统经配置以在确定与数据的所述子集相关联的所述识别信息存储于所述高速缓冲存储器中后就:
更新与存储于所述高速缓冲存储器中的所述识别信息相关联的第三计数器;
在更新所述第三计数器后就确定所述第三计数器的值是否满足或超过特定阈值;及
在所述第三计数器的所述值满足或超过所述特定阈值时,对数据的所述子集采取所述修正动作。
13.根据权利要求12所述的设备,其中所述电路系统经配置以在所述第三计数器的所述值满足或超过所述特定阈值时,从所述高速缓冲存储器移除与数据的所述子集相关联的所述识别信息。
14.根据权利要求11所述的设备,其中所述电路系统经配置以:
由所述概率数据结构的若干哈希函数处理所述经输入识别信息,其中每一相应哈希函数的输出对应于所述概率数据结构的不同计数器;及
如果对数据的所述子集的至少一部分执行编程操作,那么减小或复位每一相应哈希函数的所述输出所对应的所述不同计数器中的每一者。
15.根据权利要求11所述的设备,其中所述设备包含二层级式存储器,其中所述二层级式存储器的第一层级包含所述概率数据结构,且所述二层级式存储器的第二层级包含所述高速缓冲存储器。
16.根据权利要求11所述的设备,其中所述设备包含三层级式存储器,其中所述三层级式存储器的第一层级及第二层级包含所述概率数据结构,且所述三层级式存储器的第三层级包含所述高速缓冲存储器。
17.一种用于操作存储器的方法,其包括:
由概率数据结构接收与存储于存储器中的数据的子集相关联的识别信息,其中所述概率数据结构经配置以在数据的所述子集通过所述概率数据结构时,通过更新与哈希输出相关联的第一计数器来俘获所述概率数据结构接收与数据的所述子集相关联的所述识别信息的频率;
在所述第一计数器的值达到第一阈值时,将与所述哈希输出相关联的所述第一计数器的所述值复位为零值且将与数据的所述子集相关联的所述识别信息移动到高速缓冲存储器;及
当所述识别信息存储于所述高速缓冲存储器中时,在与对数据的所述子集执行的若干感测操作相关联的第二计数器的值达到第二阈值时,对存储于所述存储器中的数据的所述子集采取修正动作,其中所述修正动作包含数据的所述子集到所述存储器中的不同位置的重新定位。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/229,301 US10275541B2 (en) | 2016-08-05 | 2016-08-05 | Proactive corrective actions in memory based on a probabilistic data structure |
US15/229,301 | 2016-08-05 | ||
PCT/US2017/043594 WO2018026570A1 (en) | 2016-08-05 | 2017-07-25 | Proactive corrective actions in memory based on a probabilistic data structure |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109564532A CN109564532A (zh) | 2019-04-02 |
CN109564532B true CN109564532B (zh) | 2022-07-22 |
Family
ID=61069408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780048451.4A Active CN109564532B (zh) | 2016-08-05 | 2017-07-25 | 包括存储器的设备及用于操作存储器的方法 |
Country Status (6)
Country | Link |
---|---|
US (3) | US10275541B2 (zh) |
EP (1) | EP3494478A4 (zh) |
KR (1) | KR102174293B1 (zh) |
CN (1) | CN109564532B (zh) |
TW (2) | TWI658358B (zh) |
WO (1) | WO2018026570A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10715619B2 (en) * | 2017-10-16 | 2020-07-14 | Red Hat, Inc. | Cache management using a probabilistic data structure |
US10824376B2 (en) | 2017-12-08 | 2020-11-03 | Sandisk Technologies Llc | Microcontroller architecture for non-volatile memory |
US10725699B2 (en) | 2017-12-08 | 2020-07-28 | Sandisk Technologies Llc | Microcontroller instruction memory architecture for non-volatile memory |
US10777240B1 (en) | 2019-03-07 | 2020-09-15 | Sandisk Technologies Llc | Efficient control of memory core circuits |
CN110706733A (zh) * | 2019-08-13 | 2020-01-17 | 浙江工商大学 | 一种dram内存行扰动错误解决方法 |
US11080205B2 (en) | 2019-08-29 | 2021-08-03 | Micron Technology, Inc. | Classifying access frequency of a memory sub-system component |
US11138107B2 (en) * | 2020-02-20 | 2021-10-05 | Micron Technology, Inc. | Modifying subsets of memory bank operating parameters |
US11507498B2 (en) | 2020-03-05 | 2022-11-22 | Sandisk Technologies Llc | Pre-computation of memory core control signals |
CN112532598B (zh) * | 2020-11-19 | 2021-10-26 | 南京大学 | 一种用于实时入侵检测系统的过滤方法 |
US11609857B2 (en) * | 2020-12-04 | 2023-03-21 | Micron Technology, Inc. | Identification and caching of frequent read disturb aggressors |
US11699498B2 (en) | 2020-12-04 | 2023-07-11 | Micron Technology, Inc. | Managing probabilistic data integrity scan intervals |
US11467737B2 (en) | 2020-12-04 | 2022-10-11 | Micron Technology, Inc. | Reducing probabilistic data integrity scan collisions |
US11409599B2 (en) | 2020-12-04 | 2022-08-09 | Micron Technology, Inc. | Managing probabilistic data integrity scans in workloads with localized read patterns |
CN112597193B (zh) * | 2020-12-22 | 2021-10-22 | 北京九章云极科技有限公司 | 一种数据处理方法和数据处理系统 |
US11704027B2 (en) | 2021-11-12 | 2023-07-18 | Western Digital Technologies, Inc. | Optimizing recovery of recurrent blocks using bloom filter |
CN117472830A (zh) * | 2022-07-27 | 2024-01-30 | 美光科技公司 | 到控制器中的布隆过滤器集成 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8290972B1 (en) * | 2009-04-29 | 2012-10-16 | Netapp, Inc. | System and method for storing and accessing data using a plurality of probabilistic data structures |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7424498B1 (en) * | 2003-06-30 | 2008-09-09 | Data Domain, Inc. | Probabilistic summary data structure based encoding for garbage collection |
US7930547B2 (en) | 2007-06-15 | 2011-04-19 | Alcatel-Lucent Usa Inc. | High accuracy bloom filter using partitioned hashing |
US8060719B2 (en) * | 2008-05-28 | 2011-11-15 | Micron Technology, Inc. | Hybrid memory management |
US9092447B1 (en) * | 2008-10-20 | 2015-07-28 | Jpmorgan Chase Bank, N.A. | Method and system for duplicate detection |
US8352490B2 (en) * | 2009-10-22 | 2013-01-08 | Vmware, Inc. | Method and system for locating update operations in a virtual machine disk image |
US8533564B2 (en) | 2009-12-23 | 2013-09-10 | Sandisk Technologies Inc. | System and method of error correction of control data at a memory device |
US8451664B2 (en) * | 2010-05-12 | 2013-05-28 | Micron Technology, Inc. | Determining and using soft data in memory devices and systems |
US8578049B2 (en) * | 2010-10-04 | 2013-11-05 | Futurewei Technologies, Inc. | Content router forwarding plane architecture |
US9176864B2 (en) * | 2011-05-17 | 2015-11-03 | SanDisk Technologies, Inc. | Non-volatile memory and method having block management with hot/cold data sorting |
GB2493243B (en) * | 2011-07-26 | 2014-04-23 | Ibm | Method and storage controller for determining an access characteristic of a data entity |
US8726104B2 (en) * | 2011-07-28 | 2014-05-13 | Sandisk Technologies Inc. | Non-volatile memory and method with accelerated post-write read using combined verification of multiple pages |
US20130031431A1 (en) * | 2011-07-28 | 2013-01-31 | Eran Sharon | Post-Write Read in Non-Volatile Memories Using Comparison of Data as Written in Binary and Multi-State Formats |
US9519614B2 (en) * | 2012-01-10 | 2016-12-13 | Verizon Digital Media Services Inc. | Multi-layer multi-hit caching for long tail content |
US9710397B2 (en) * | 2012-02-16 | 2017-07-18 | Apple Inc. | Data migration for composite non-volatile storage device |
US9465826B2 (en) | 2012-11-27 | 2016-10-11 | Hewlett Packard Enterprise Development Lp | Estimating unique entry counts using a counting bloom filter |
US9164832B2 (en) * | 2013-02-27 | 2015-10-20 | Seagate Technology Llc | ECC management for variable resistance memory cells |
US9819637B2 (en) * | 2013-02-27 | 2017-11-14 | Marvell World Trade Ltd. | Efficient longest prefix matching techniques for network devices |
US9384126B1 (en) * | 2013-07-25 | 2016-07-05 | Sandisk Technologies Inc. | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems |
US9274967B2 (en) * | 2013-08-07 | 2016-03-01 | Nimble Storage, Inc. | FIFO cache simulation using a bloom filter ring |
KR102042859B1 (ko) * | 2013-10-14 | 2019-11-08 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그 동작 방법 |
US9601194B2 (en) * | 2014-02-28 | 2017-03-21 | Crossbar, Inc. | NAND array comprising parallel transistor and two-terminal switching device |
US20150270015A1 (en) | 2014-03-19 | 2015-09-24 | Micron Technology, Inc. | Memory mapping |
KR102147916B1 (ko) | 2014-04-14 | 2020-08-26 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
US10645002B2 (en) * | 2014-06-20 | 2020-05-05 | Hewlett Packard Enterprise Development Lp | System, apparatus and method for managing redundancy elimination in packet storage during observation of data movement |
US20150378807A1 (en) * | 2014-06-30 | 2015-12-31 | International Business Machines Corporation | Predicting process failures using analytics |
KR20160042224A (ko) * | 2014-10-07 | 2016-04-19 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US9639280B2 (en) * | 2015-06-18 | 2017-05-02 | Advanced Micro Devices, Inc. | Ordering memory commands in a computer system |
US10263784B2 (en) * | 2015-09-09 | 2019-04-16 | Amazon Technologies, Inc. | Signature verification for data set components using probabilistic data structures |
US10693786B2 (en) * | 2015-11-26 | 2020-06-23 | International Business Machines Corporation | Efficient size reduction of a bloom filter |
US10198325B2 (en) * | 2016-05-24 | 2019-02-05 | Mastercard International Incorporated | Method and system for desynchronization recovery for permissioned blockchains using bloom filters |
-
2016
- 2016-08-05 US US15/229,301 patent/US10275541B2/en active Active
-
2017
- 2017-07-25 KR KR1020197005944A patent/KR102174293B1/ko active IP Right Grant
- 2017-07-25 CN CN201780048451.4A patent/CN109564532B/zh active Active
- 2017-07-25 EP EP17837401.3A patent/EP3494478A4/en not_active Withdrawn
- 2017-07-25 WO PCT/US2017/043594 patent/WO2018026570A1/en unknown
- 2017-08-04 TW TW106126460A patent/TWI658358B/zh active
- 2017-08-04 TW TW108110196A patent/TWI719434B/zh active
-
2019
- 2019-03-18 US US16/356,759 patent/US10929474B2/en active Active
-
2021
- 2021-02-15 US US17/175,932 patent/US11586679B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8290972B1 (en) * | 2009-04-29 | 2012-10-16 | Netapp, Inc. | System and method for storing and accessing data using a plurality of probabilistic data structures |
Also Published As
Publication number | Publication date |
---|---|
EP3494478A1 (en) | 2019-06-12 |
US20210165832A1 (en) | 2021-06-03 |
US20190213218A1 (en) | 2019-07-11 |
US10929474B2 (en) | 2021-02-23 |
TW201816609A (zh) | 2018-05-01 |
KR102174293B1 (ko) | 2020-11-05 |
TWI719434B (zh) | 2021-02-21 |
WO2018026570A1 (en) | 2018-02-08 |
EP3494478A4 (en) | 2020-04-01 |
TWI658358B (zh) | 2019-05-01 |
KR20190027388A (ko) | 2019-03-14 |
CN109564532A (zh) | 2019-04-02 |
US10275541B2 (en) | 2019-04-30 |
US20180039535A1 (en) | 2018-02-08 |
US11586679B2 (en) | 2023-02-21 |
TW201939279A (zh) | 2019-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109564532B (zh) | 包括存储器的设备及用于操作存储器的方法 | |
US11157417B2 (en) | Memory having a static cache and a dynamic cache | |
US9552888B2 (en) | Methods, devices, and systems for data sensing | |
CN111527545B (zh) | 基于温度的存储器操作 | |
KR102157570B1 (ko) | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 | |
CN113302699B (zh) | 存储器中的单调计数器 | |
JP2023025687A (ja) | メモリ装置およびその動作方法 | |
US20240256454A1 (en) | Tokens to indicate completion of data storage | |
US10354700B2 (en) | Read threshold voltage selection | |
US20230187002A1 (en) | Storage controller using history data, method of operating the same, and method of operating storage device including the same | |
KR20160129418A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20220310168A1 (en) | Operating method of storage controller using count value of direct memory access, storage device including storage controller, and operating method of storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |