CN104934066B - Nand闪存中的读取干扰处理 - Google Patents

Nand闪存中的读取干扰处理 Download PDF

Info

Publication number
CN104934066B
CN104934066B CN201410101788.5A CN201410101788A CN104934066B CN 104934066 B CN104934066 B CN 104934066B CN 201410101788 A CN201410101788 A CN 201410101788A CN 104934066 B CN104934066 B CN 104934066B
Authority
CN
China
Prior art keywords
piece
reading
page
block
threshold
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
Application number
CN201410101788.5A
Other languages
English (en)
Other versions
CN104934066A (zh
Inventor
束南山
董智敏
许�鹏
吴建刚
居颖轶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avago Technologies International Sales Pte Ltd
Original Assignee
Avago Technologies Fiber IP Singapore Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Avago Technologies Fiber IP Singapore Pte Ltd filed Critical Avago Technologies Fiber IP Singapore Pte Ltd
Priority to CN201410101788.5A priority Critical patent/CN104934066B/zh
Priority to US14/243,098 priority patent/US9229642B2/en
Publication of CN104934066A publication Critical patent/CN104934066A/zh
Application granted granted Critical
Publication of CN104934066B publication Critical patent/CN104934066B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1014One time programmable [OTP] memory, e.g. PROM, WORM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Abstract

本发明涉及NAND闪存中的读取干扰处理。公开了一种具有处理器以及到有多个块的NAND闪存的接口的装置。处理器配置成(i)监视从NAND闪存中至少一个块的相应擦除开始的读取的数量,(ii)响应于读取的数量超过其中第一块是部分编程的第一阈值而把页从第一块移动到第二块;(iii)响应于读取的数量超过其中第一块是完全编程的第二阈值而把页从第一块移动到第二块。第一阈值小于第二阈值。

Description

NAND闪存中的读取干扰处理
技术领域
本发明一般而言涉及闪存控制并且,更具体地,涉及在NAND闪存中用于实现读取干扰处理的方法和/或装置。
背景技术
在数据编程到NAND闪存的地方,读取个别数据片的频率彼此间不同。有些数据被主机频繁地读取,诸如流行的视频数据服务器。而且,在闪存内部使用的物理地址与闪存外部使用的逻辑地址之间的映射被固件频繁地以真正随机读取的情况下读取,诸如在企业数据中心的应用。频繁读取的主机数据以及映射数据被称为热读取数据。
发明内容
本发明涉及具有处理器和到有多个块的NAND闪存的接口的装置。处理器被配置为(i)监视从NAND闪存中至少一个块的相应擦除开始的读取数量,(ii)响应于读取的数量超过其中第一块是部分编程的第一阈值而把页从第一块移动到第二块,以及(iii)响应于读取的数量超过其中第一块是完全编程的第二阈值而把页从第一块移动到第二块。第一阈值小于第二阈值。
附图说明
通过以下具体描述以及所附权利要求和附图,本发明实施例将是明显的,其中:
图1是装置的示例实现的框图;
图2是与本发明实施例对应的控制器电路的框图;
图3是减少读取干扰的方法的流程图;
图4是闪存电路的细节图;
图5是具有热读取页移动到不同块的闪存电路的图;
图6是具有热读取页移动到另一个不同块的闪存电路的图;
图7是最后一块以用户数据关闭的图,及
图8是最后一块以热读取数据关闭的图。
具体实施例
本发明实施例包括在NAND闪存中提供读取干扰处理,这种处理可以(i)减少由于热读取页导致的块刷新频率,(ii)解决完全编程与部分编程块的不同以及/或者(iii)实现为一个或多个集成电路。
读取干扰现象对固态驱动器(例如SSD)以及任何其它基于NAND闪存的存储设备是一个问题。该问题当NAND闪存在诸如视频数据服务器或数据中心的特定应用中使用时出现。如果数据被频繁地读取,那么写入NAND页的某些数据变成热读取数据。热读取数据可以位于完全编程的或部分编程的NAND块中。在热读取数据所位于的页上的读取操作影响同一块中的其它页。
发明的某些实施例在部分编程的NAND块中消除读取干扰效果。读取干扰在部分编程块上引入的影响比完全编程块上的差,尤其在多层单元NAND闪存上。热读取数据从当前的热块被移动到不同的块,并且因此在不同的块上影响读取计数。在各种实施例中,热块的识别与后续移动可以被应用在大多数基于NAND闪存的存储设备的固件中,诸如固态驱动器和/或嵌入式多媒体控制器(例如,eMMC)。
参考图1,示出了装置90的示例实现的框图。装置(或电路或设备或集成电路)90实现具有非易失性存储器电路的计算机。设备90通常包含块(或电路)92,块(或电路)94以及块(或电路)100。电路94和100形成驱动器(或设备)102。电路92到102可以表示可以实现为硬件、软件、软硬件结合或其它实现形式的模块和/或块。
一个或多个信号(例如,HOSTIO)在电路92和电路100之间交换。主机输入/输出信号HOSTIO通常包括,但不限于,用于访问电路102中数据的逻辑地址构件、控制电路102的主机命令构件、从电路92到电路100传输写数据的写数据构件以及从电路100到电路92传输纠错读数据的读数据构件。一个或多个信号(例如,NVMIO)在电路100和电路94之间交换。非易失性存储器输入/输出信号NVMIO通常包括,但不限于,用于访问电路94中数据的物理地址构件、控制电路94的存储器命令构件(例如,读或写命令)、携带从电路100写到电路94的纠错编码的和循环冗余校验保护的写码字的写码字构件以及携带从电路94读到电路100的纠错编码的码字的读码字构件。
电路92被显示为实现为主机电路。电路92是通常可操作的经电路100读和写数据到电路94以及从电路94读和写数据。当读或写时,电路92在信号HOSTIO中传输逻辑地址值来识别数据的哪个集合是要写入或者要从电路94读取的。地址通常跨越电路102的逻辑地址范围。逻辑地址可以通过地址访问个别的数据单元,诸如SATA(例如,串行-ATA)扇区。
电路94被显示为实现一个或多个非易失性存储器电路(或设备)。根据各种实施例,电路94包含一个或多个非易失性半导体设备。电路94通常可操作在非易失性条件下存储数据。当数据从电路94中读取时,电路94访问数据集合(例如,多个位),其中数据集合是通过信号NVMIO中的地址(例如,物理地址)识别的。地址通常跨越电路94的物理地址范围。
在某些实施例中,电路94可以实现为单层单元(例如,SLC)类型的电路。单层单元类型电路通常为每个存储器单元存储一位(例如,逻辑的0或1)。在其它实施例中,电路94可以实现为多层单元类型电路。多层单元类型电路能每存储器单元存储多(例如,2)位(例如,逻辑的00,01,10或11)。在还有的其它实施例中,电路94可以实现三级单元类型电路。三级单元电路每存储器单元存储多(例如,3)位(例如,逻辑的000,001,010,011,100,101,110或111)。也可以实现四级单元类型电路。提供的例子是基于每单元两位类型设备并且可以被应用到其它类型的非易失性存储器。
电路94中的数据通常以单元的层次组织的。块是最小的擦除量子(quantum)。页是最小的写量子。码字(或读取单元或Epage或ECC-页)是最小的读和纠错量子。每一块包含整数个页。每一页包含整数个码字。
电路100被显示为实现控制器电路。电路100通常可操作来控制读到电路94以及从电路94写。电路100包含解码从电路94接收的读码字的能力。结果产生的解码的数据经信号HOSTIO呈现给电路92并且/或者重新编码并经信号NVMIO写回电路94。电路100包含实现一个或多个固态驱动器的控制器、嵌入式存储或其它适当的控制应用的一个或多个集成电路(或芯片或管芯(die))。
作为解码的部分,电路100寻找存储在一个或多个内部表中的解码参数(例如,类似日志的比值)。解码参数被用来作为试图纠正码字中可能出现的任何错误的迭代式解码过程的一部分。解码参数通常为码字的每个单独位通知解码过程的可靠性。
电路102被显示为实现固态驱动器。电路102通常可操作来存储由电路102产生的数据并且返回数据到电路92。根据各种实施例,电路102包含一个或多个:非易失性半导体设备,诸如NAND闪存设备,相变存储器(例如,PCM)设备,或电阻式RAM(例如,ReRAM)设备;具有一个或多个非易失性设备的固态驱动器的部分;以及任何其它易失性或非易失性存储介质。电路102通常可操作来在非易失性条件存储数据。
参考图2,示出了根据本发明实施例的电路100的示例实现的框图。电路100通常包含块(或电路)110,块(或电路)112,块(或电路)114以及块(或电路)116。电路110到116可以表示可以实现为硬件、软件、软硬件组合或其它实现方式的模块和/或块。
电路110被显示为实现为主机接口电路。电路110可操作来提供经信号HOSTIO与电路92的通信。其它信号可以在电路92和110之间实现来满足特定应用的标准。
电路112被显示为实现为易失性存储器(例如,闪存)接口电路。电路112可操作来提供经信号NVMIO与电路94的通信。其它信号可以在电路94和110之间实现来满足特定应用的标准。
电路114被显示为实现为处理器电路。电路114可操作来命令和/或帮助多次读/写请求并且控制一个或多个在电路94中使用的参考电压来读取码字。
在特定实施例中,电路114可操作来监视从电路94中的一个或多个块的相应擦除开始的读取的数量。响应于读取的数量超过其中当前块是部分地编程的未关闭阈值而把页从当前块移动到其它块。响应于读取的数量超过其中当前块是完全编程的关闭阈值而把页从当前块移动到其它块。未关闭阈值通常小于关闭阈值。
电路116被显示为实现为存储器电路。电路116可操作来缓存经电路112从电路116接收的码字。电路116也是可操作来缓存由电路114产生的解码参数。当读取干扰技术在固件中实现时,电路116是操作来在存储器的非易失性部分中的固件中存储。
参考图3,示出了用来减少读取干扰的方法140的示例实现流程图。方法(或过程)140通常在电路100中实现。方法140包含步骤(或状态)142,步骤(或状态)144,步骤(或状态)146,步骤(或状态)148,步骤(或状态)150,步骤(或状态)152,步骤(或状态)154,步骤(或状态)156以及步骤(或状态)158。步骤142到158可以表示可以实现为硬件、软件、软硬件组合或其它实现方式的模块和/或块。步骤的顺序是作为代表性的例子示出。可以实现其它步骤顺序来满足特定应用的标准。
在步骤142中,电路100可以把从电路92接收的读地址转换成物理地址。该物理地址识别特定的闪存管芯(或设备)、闪存管芯带有的块(例如,块X)以及块中的页。在步骤144上做检查来查看正被访问的块是否是完全编程的块还是部分编程的块。其中被访问的不是完全编程的块(不关闭的)的情形下,阈值在步骤146中(例如,THR)设为非关闭的值(例如,THR1)。其中被访问的是完全编程的块(关闭的)的情形下,阈值在THR步骤148中设为关闭的值(例如,THR2)。因为部分编程的块比关闭的块更容易受到读取干扰,所以值THR1通常是比值THR2低的值。
在步骤150中,访问的页从块X中读取。对块X的读取计数器在步骤152中递增。在步骤154中执行读取计数的值和阈值THR之间的比较。如果读取计数值大于阈值THR,那么在步骤156中刚才读取的页被移动到另一块(例如,块Y)。在特定实施例中,块Y是电路94中最近写(最后写)的块。可以实现其它确定块Y的技术来满足特定应用的标准。在步骤158中,块Y在电路100中被标记用于将来的写入以便试图提早关闭块Y,由此减少了由最新获得的热页面而引起的读取干扰影响。
参考图4,示出了电路94的细节图。电路94通常包含多个管芯(或设备)96a-96n。设备96a-96n中每一个被分成多个块(例如,块A-块N)(为清楚起见,设备96a-96n中每个设备只示出一块)。块A到块N中的每一块通常包含多个页面(例如,页A到页X)。例子中页面A-X中的某些是未编程的180,有些页是编程的182,并且示出了具有代表性的热读取页面184。
编程页上的读取干扰影响使得受干扰页上的数据易于出错。在某些情况下,当从受影响页读取数据时,该干扰(Disruption)会导致不可纠正的错误。如此,当块A-N的读取计数达到阈值THR(例如,THR1或THR2)时,电路100把受干扰页上的数据重写到新数据块A-N中。由于NAND的特点,对于部分编程块的阈值THR1的值小于完全编程块上的阈值THR2。通常地,部分填充块的编程NAND单元的状态适度的不稳定。该不稳定性是较新NAND闪存存储器的新特征,较新NAND闪存存储器是使用比较老闪存设备更复杂的制造工艺产生的。在这两种情况下,阈值THR1和THR2小于刷新计数(例如,THR-RF)。
当块A-N达到刷新计数THR-RF时,该块A-N的全部内容被移动。至于在未编程页面180上的读取干扰影响,当块A-N上的读取计数达到特定暴露阈值(例如,THR-EXP)时,未编程页180页应该保持在删除状态。这种遭受THR-EXP读取干扰受影响的非编程页面180不应当再被用来编程数据。如果在达到阈值THR-EXP之后数据写入非编程页180,可能导致不可纠正的错误。
对部分编程的块,在编程页182上的读取干扰影响和擦除页两种情况都存在。在图4说明的例子中,示出的块A-N是该系统中最后写的块。设备96c的块C中热读取页184影响编程页182以及非编程页180。热读取页184的继续的读取可以很快地增加管芯96c/块C的读取计数。
参考图5,示出了设备94的图,其中热读取页184移动到不同块。通常对每一个设备96a-96n中的每一个物理块A-N管理读取计数。当块A-N被擦除时,读取计数清零,并且当页读取命令发到块A-N时,读取计数开始递增。如例子所示,由于热读取页面184位于设备96c/块C/页B,所以设备96c/块C的读取计数比其它块增长地更快。为防止设备96c/块C的读取计数增长太快,在一定数量的读取之后,电路100把热读取数据从设备96c/块C/页B移动到不同的地方。该移动影响所有最后写入块A-N的(低)读取计数并且长时间在安全状态把页保持在这种块A-N中。
在图5说明的例子中,热读取页184从设备96c/块C/页B(例如,数据移动页186)移动到设备96d/块D/页D(假设在数据移动过程中没有新主机/用户数据写入到设备96d/块D中)。该移动本质上是基于物理页的数据回收(ore刷新)。在热读取页184移动后,因为热读取数据184现在在设备96d/块D,所以设备96c/块C的读取计数和以前一样快地停止增加。利用较慢的读取计数速率,设备96c/块C上其余的页就更长时间地保持在安全状态。虽然在设备96c/块C上的读取干扰影响变慢了,但是因为热读取页面184现在在设备96d/块D/页D中,设备96d/块D的读取计数通常增加到更快速率。
当块A-N的读取计数达到刷新阈值THR-RF时,块A-N处于可疑状态。所有页随后被移动,而不仅是热读取页184。因此,非关闭阈值THR1与关闭阈值THR2设置为比刷新阈值THR-RF更低的读取计数。在某些实施例中,阈值THR1和THR2是刷新阈值THR-RF的分数(例如,THR-RF/2,THR-RF/10)。可以实现其它阈值THR1和THR2来满足特定应用的标准。
由于读取计数是对每个块A-N计数的,而不是每个单一页,所以寻找确切的热读取物理页面184会是具有挑战性的。在某些实施例中,当块A-N的读取计数达到阈值THR1/THR2时,当通过电路92读取时电路100把每一页移动到新的位置。例如,设备96c/块C的读取计数大于阈值THR1,当通过电路92读取时,设备96c/块C中的任何页面都移动到新的位置。被移动的页可以是或者也可以不是热读取页面184,但是热读取页面184被访问的可能性大于任何其它页面。因此,移动设备96c/块C/页B的可能性也大于任何其它页。在各种实施例中,电路100跟踪热读取页184的一个或几个的位置。页面从一块到另一块的移动是视作为被跟踪热读取页184之一的当前被访问页而定的。因而,简单地因为读取发生在块读取计数超过阈值THR1/THR2之后,就避免了非频繁读取页面的不必要移动。
参考图6,示出了设备94的图,其中热读取页184移动到又一个不同的块。随着时间推移,设备96d/块D的读取计数达到阈值TH1。当达到阈值时,电路100又把热读取页184移动到不同的块A-N。为简化描述,在这期间,认为没有新用户数据被编程。
利用热读取数据的移动,读取热数据的计数变得均匀地分布在几个数据块A-N上,而不是只积累在单一块上(例如,块C)。该分布总体上使数据块A-N的读取计数类似,并且因此最小化单一块A-N上的读取干扰影响。
参考图7,示出了设备94的图,其中最后的块以用户数据关闭。移动热读取页184从一块到另一块减少了原始数据块(例如块C)上的读取干扰影响。在真实的应用中,新用户数据同时写到最后的块A-N。由于新用户数据,最后的块A-N最终地变成完全编程块。对完全编程块A-N的阈值THR2的值大于部分编程块A-N上的阈值THR1。因此,热读取页184在完全编程块(例如,设备96e的块E)中比如果块E是部分编程的情况下能够在安全状态中保持更长。
参考图8,示出了设备94的图,其中最后块以热读取数据关闭。如果热读取数据184连续地把一个物理页移动到另一页并且从一块移动到另一块,那么所有数据块A-N的读取计数将在达到阈值THR-RF时期满。考虑没有新用户数据写入的情况。热读取页184一次一次地从块移动到块直到所有的块A-N都寄存过热读取页184。因此,由于热读取页184的移动,部分编程块A-N自动地变成完全编程块A-N。
由于读取热读取页184导致的读取计数增加均匀地分布在几个数据块A-N中并且最后的块A-N最终被关闭,所以在部分编程块上的读取干扰影响被减少。方法140通常增加数据块A-N的自由空间利用率。而且,最后块A-N自然地关闭。本发明各种实施例设置部分编程块的阈值来移动热数据到另一个位置。结果,通过只寄存热读取数据很少一段时间,最后写入块中的每一块的读取计数被抑制。而且,最后写入块在数据移动过程中自然地关闭。
通过附图1-3中的图执行的功能可以使用按照本说明书的教导编程的传统通用处理器、数字计算机、微处理器、微控制器、RISC(精简指令集计算机)处理器,CISC(复杂指令集计算机)处理器,SIMD(单指令多数据)处理器、信号处理器、中央处理单元(CPU)、算法逻辑单元(ALU)、视频数字信号处理器(VDSP)和/或类似的计算机器中的一种或多种来实现,如将对相关领域技术人员明显的。基于公开内容的教导,适当的软件、固件、代码、过程、指令、操作码、微代码和/或程序模块可以很容易地由本领域的普通程序员准备。软件通常从一种或多种介质上由机器实现的一个或多个的处理器执行。
本发明也可以通过准备ASIC(专业集成电路)、平台ASIC、FPGA(现场可编程门阵列)、PLD(可编程逻辑器件)、CPLD(复杂可编程逻辑器件)、海量门(sea-of-gates)、RFIC(射频集成电路)、ASSP(专用标准产品)、一个或多个单片集成电路、排列成倒装模块和/或多芯片模块的一个或多个芯片或管芯或者通过互联传统构件电路的适当的网络来实现,如这里所描述的,其修改对本领域技术人员是非常明显的。
因此本发明也可以包括计算机产品,其中计算机产品可以是包含指令的一种或多种存储介质和/或一种或多种传输介质,其中指令可以用于编程机器来执行与本发明对应的一个或多个过程或方法。通过机器执行包含在计算机产品中的指令,与周围电路的操作一起,可以把输入数据转换成存储介质上一个或多个文件以及/或者代表物理对象或物质的一个或多个输出信号,诸如音频和/或视频描述。存储介质可以包括,但不限于,包括软盘、硬盘、磁盘、光盘、CD-ROM、DVD和光磁盘的任何类型的盘以及诸如ROM(只读存储器)、RAM(随机存取存储器)、EPROM(可擦除可编程ROM)、EEPROM(电可擦除可编程ROM)、UVPROM(紫外线擦除可编程ROM)、闪存存储器、磁卡、光卡和/或适用存储电子指令的任何类型介质的电路。
本发明的元素可以形成一个或多个设备、单元、构件、系统、机器和/或装置的部分或全部。设备可以包括,但不限于,服务器、工作站、存储整列控制器、存储系统、个人计算机、膝上计算机、笔记本计算机、掌上计算机、个人数字助理、便携式电子设备、电池供电设备、机顶盒、编码器、解码器、译码器、压缩器、解压缩器、预处理器、后处理器、发送器、接收器、收发器、密码电路、蜂窝电话、数码相机、定位和/或导航系统、医疗设备、平视显示器、无线设备、音频记录、音频存储和/或音频重放设备、视频记录、视频存储和/或视频重放设备、游戏平台、外围设备和/或多芯片模块。相关领域技术人员将会理解本发明的元素可以在其它类型的设备中实现来满足特定应用的标准。
当在本文和“是”以及动词结合使用时,术语“可以”和“通常”意味着传递如下意图,即,描述是示例性的并且相信是足够广义的,以便既涵盖本公开内容具体例子又涵盖基于本公开内容导出的作为可替换的例子。如本文所使用的术语“可以”和“通常”不应当被认为是必然地暗示忽略对应元件的期望性或可能性。
虽然本发明已经参考其实施例特别地示出并进行了描述,但是,本领域技术人员将理解,在不背离本发明范围的情况下,可以对形式和细节做各种改变。

Claims (18)

1.一种数据处理装置,包括:
到具有多个块的非易失性存储器的接口;以及
处理器,配置成(i)监视从所述非易失性存储器中至少一个所述块中的相应擦除开始的读取的数量,(ii)如果第一块是被部分编程,则响应于读取的所述数量超过第一阈值而把页从所述第一块移动到第二块;(iii)如果第一块是被完全编程,则响应于读取的所述数量超过第二阈值而把页从所述第一块移动到所述第二块,其中所述第一阈值小于所述第二阈值。
2.如权利要求1所述的数据处理装置,其中所述第二块是时间上最近编程的块。
3.如权利要求1所述的数据处理装置,其中所述第二阈值小于触发所述第一块的刷新的第三阈值。
4.如权利要求1所述的数据处理装置,其中所述处理器还配置成标记所述第二块来接收后续写入。
5.如权利要求1所述的数据处理装置,其中所述处理器还配置成在所述页的所述移动之后响应于读取另一页而把所述另一页从所述第一块移动到所述第二块。
6.如权利要求1所述的数据处理装置,其中所述第二块在与所述第一块不同的集成电路中。
7.如权利要求3所述的数据处理装置,其中所述处理器还配置成响应于读取的所述数量超过所述第三阈值而把所述页从所述第一块移动到所述第二块。
8.如权利要求1所述的数据处理装置,其中所述非易失性存储器包括NAND闪存存储器。
9.如权利要求1所述的数据处理装置,其中所述非易失性存储器形成固态驱动控制器的一部分。
10.如权利要求1所述的数据处理装置,其中所述数据处理装置被实现为一个或多个集成电路。
11.一种用于处理非易失性存储器中的读取干扰的方法,包括步骤:
(A)监视从所述非易失性存储器中的多个块中的至少一个块中的相应擦除开始的读取的数量;
(B)如果第一块是被部分编程,则响应于读取的所述数量超过第一阈值而把页从所述第一块移动到第二块;以及
(C)如果第一块是被完全编程,则响应于读取的所述数量超过第二阈值而把页从所述第一块移动到所述第二块,其中所述第一阈值小于所述第二阈值。
12.如权利要求11所述的方法,其中所述第二块是时间上最近编程的块。
13.如权利要求11所述的方法,其中所述第二阈值小于触发所述第一块的刷新的第三阈值。
14.如权利要求11所述的方法,还包括:
标记所述第二块来接收后续写入。
15.如权利要求11所述的方法,还包括:
在所述页的所述移动之后响应于读取另一页而把所述另一页从所述第一块移动到所述第二块。
16.如权利要求11所述的方法,其中所述第二块在与所述第一块不同的集成电路中。
17.如权利要求13所述的方法,还包括:
响应于读取的所述数量超过所述第三阈值而把所述页从所述第一块移动到所述第二块。
18.一种数据处理装置,包括:
具有多个块的非易失性存储器;及
控制器,其配置成(i)监视自所述非易失性存储器的所述块中的至少一个块中的相应擦除起的读取的数量,(ii)如果第一块是被部分编程,则响应于读取的所述数量超过第一阈值而把页从所述第一块移动到第二块,以及(iii)如果第一块是被完全编程,则响应于读取的所述数量超过第二阈值而把页从所述第一块移动到所述第二块,其中所述第一阈值小于所述第二阈值。
CN201410101788.5A 2014-03-19 2014-03-19 Nand闪存中的读取干扰处理 Active CN104934066B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410101788.5A CN104934066B (zh) 2014-03-19 2014-03-19 Nand闪存中的读取干扰处理
US14/243,098 US9229642B2 (en) 2014-03-19 2014-04-02 Read disturb handling in NAND flash

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410101788.5A CN104934066B (zh) 2014-03-19 2014-03-19 Nand闪存中的读取干扰处理

Publications (2)

Publication Number Publication Date
CN104934066A CN104934066A (zh) 2015-09-23
CN104934066B true CN104934066B (zh) 2018-03-27

Family

ID=54121199

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410101788.5A Active CN104934066B (zh) 2014-03-19 2014-03-19 Nand闪存中的读取干扰处理

Country Status (2)

Country Link
US (1) US9229642B2 (zh)
CN (1) CN104934066B (zh)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8671265B2 (en) 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
KR20150140496A (ko) * 2014-06-05 2015-12-16 삼성전자주식회사 실시간 데이터 복구를 위한 리드 리클레임 방법 및 그에 따른 메모리 시스템
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9244858B1 (en) * 2014-08-25 2016-01-26 Sandisk Technologies Inc. System and method of separating read intensive addresses from non-read intensive addresses
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
JP2016118815A (ja) * 2014-12-18 2016-06-30 パナソニックIpマネジメント株式会社 不揮発性メモリ装置
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) * 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US10303536B2 (en) * 2015-10-28 2019-05-28 Via Technologies, Inc. Non-volatile memory device and control method thereof
US9460799B1 (en) 2015-11-24 2016-10-04 Sandisk Technologies Llc Recovery of partially programmed block in non-volatile memory
KR20170086840A (ko) * 2016-01-19 2017-07-27 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN107025941A (zh) * 2016-01-29 2017-08-08 瑞昱半导体股份有限公司 固态硬盘控制电路
CN107132989B (zh) * 2016-02-26 2020-05-12 群联电子股份有限公司 数据程序化方法、存储器控制电路单元及存储器存储装置
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
JP6679412B2 (ja) * 2016-05-19 2020-04-15 キヤノン株式会社 ストレージ制御装置、情報処理方法及びプログラム
CN107506135B (zh) 2016-06-14 2022-05-06 杭州海康威视数字技术股份有限公司 一种数据处理方法、装置及系统
KR102606490B1 (ko) 2016-06-30 2023-11-30 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치
KR102614083B1 (ko) * 2016-08-31 2023-12-18 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10032500B2 (en) * 2016-10-07 2018-07-24 Tc Lab, Inc. Memory disturb recovery scheme for cross-point memory arrays
US10482983B2 (en) * 2016-12-22 2019-11-19 Seagate Technology Llc Read disturb detection based on dynamic bit error rate estimation
WO2018140036A1 (en) 2017-01-27 2018-08-02 Hewlett-Packard Development Company, L.P. Read operation redirect
CN108572786B (zh) 2017-03-09 2021-06-29 上海宝存信息科技有限公司 避免读取扰动的数据搬移方法以及使用该方法的装置
CN108572920B (zh) 2017-03-09 2022-04-12 上海宝存信息科技有限公司 避免读取扰动的数据搬移方法以及使用该方法的装置
US10885991B2 (en) * 2017-04-04 2021-01-05 Sandisk Technologies Llc Data rewrite during refresh window
CN107403643B (zh) * 2017-07-17 2019-12-24 华中科技大学 一种通过重定向提高3d fg nand闪存可靠性的方法
US10714195B2 (en) * 2017-08-31 2020-07-14 SK Hynix Inc. Read disturb detection and recovery with adaptive thresholding for 3-D NAND storage
CN107832016A (zh) * 2017-11-13 2018-03-23 郑州云海信息技术有限公司 一种读干扰优化方法及装置
US11500578B2 (en) * 2021-04-19 2022-11-15 Micron Technology, Inc. Memory access threshold based memory management
KR20220157793A (ko) * 2021-05-21 2022-11-29 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625903A (zh) * 2008-06-20 2010-01-13 马维尔国际有限公司 对存储器进行监控
US8225050B2 (en) * 2008-12-31 2012-07-17 A-Data Technology Co., Ltd. Memory storage device and a control method thereof

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009087509A (ja) 2007-10-03 2009-04-23 Toshiba Corp 半導体記憶装置
GB2455106B (en) * 2007-11-28 2012-08-01 Icera Inc Memory errors
US7937521B2 (en) 2008-01-29 2011-05-03 Cadence Design Systems, Inc. Read disturbance management in a non-volatile memory system
US7818525B1 (en) * 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
JP2011107851A (ja) 2009-11-13 2011-06-02 Toshiba Corp メモリシステム
US8380915B2 (en) 2010-01-27 2013-02-19 Fusion-Io, Inc. Apparatus, system, and method for managing solid-state storage media
US8930778B2 (en) * 2012-11-15 2015-01-06 Seagate Technology Llc Read disturb effect determination

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625903A (zh) * 2008-06-20 2010-01-13 马维尔国际有限公司 对存储器进行监控
US8225050B2 (en) * 2008-12-31 2012-07-17 A-Data Technology Co., Ltd. Memory storage device and a control method thereof

Also Published As

Publication number Publication date
CN104934066A (zh) 2015-09-23
US9229642B2 (en) 2016-01-05
US20150268871A1 (en) 2015-09-24

Similar Documents

Publication Publication Date Title
CN104934066B (zh) Nand闪存中的读取干扰处理
US10180805B2 (en) Memory system and operating method thereof
US10656840B2 (en) Real-time I/O pattern recognition to enhance performance and endurance of a storage device
KR102282962B1 (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
US10007451B2 (en) Scalable SPOR algorithm for flash memories
KR20170000914A (ko) 불휘발성 메모리 장치를 포함하는 스토리지 장치
CN107423231B (zh) 用来管理一记忆装置的方法以及记忆装置与控制器
TW201732597A (zh) 資料儲存裝置和其操作方法
US20170270045A1 (en) Hybrid memory device and operating method thereof
US9442797B2 (en) Memory system
KR20210017481A (ko) 컨트롤러 및 컨트롤러의 동작방법
KR102229970B1 (ko) 불휘발성 메모리, 랜덤 액세스 메모리 및 메모리 컨트롤러를 포함하는 솔리드 스테이트 드라이브
CN107544925B (zh) 存储器系统及加速引导时间的方法
US10866764B2 (en) Memory system with parity cache scheme and method of operating such memory system
US11449417B2 (en) Memory controller performing host-aware performance booster mode and method of operating the same
KR20150112075A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
TW202028988A (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
US20170277473A1 (en) Data processing system and operating method thereof
CN114746834A (zh) 基于分区状态的分区附加命令调度
US11113202B2 (en) Operating method forcing the second operation to fail using a scatter-gather buffer and memory system thereof
KR20220039202A (ko) 메모리 장치 및 그 동작 방법
CN111352854B (zh) 存储装置、控制器及操作存储装置的方法
US10402314B2 (en) Self-management memory system and operating method thereof
CN111445939A (zh) 存储装置及其操作方法
KR20220022407A (ko) 저장 장치 및 그 동작 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160715

Address after: Singapore Singapore

Applicant after: Avago Technologies General IP (Singapore) Pte. Ltd.

Address before: California, USA

Applicant before: LSI Corp.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181019

Address after: Singapore Singapore

Patentee after: Avago Technologies General IP (Singapore) Pte. Ltd.

Address before: Singapore Singapore

Patentee before: Avago Technologies General IP (Singapore) Pte. Ltd.