首页> 中国专利> NAND闪存中的读取干扰处理

NAND闪存中的读取干扰处理

摘要

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

著录项

  • 公开/公告号CN104934066A

    专利类型发明专利

  • 公开/公告日2015-09-23

    原文格式PDF

  • 申请/专利权人 LSI公司;

    申请/专利号CN201410101788.5

  • 申请日2014-03-19

  • 分类号G11C16/26(20060101);G11C29/42(20060101);

  • 代理机构11287 北京律盟知识产权代理有限责任公司;

  • 代理人王田

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-18 11:00:03

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-09

    专利权的转移 IPC(主分类):G11C16/26 登记生效日:20181019 变更前: 变更后: 申请日:20140319

    专利申请权、专利权的转移

  • 2018-03-27

    授权

    授权

  • 2017-04-19

    实质审查的生效 IPC(主分类):G11C16/26 申请日:20140319

    实质审查的生效

  • 2016-08-03

    专利申请权的转移 IPC(主分类):G11C16/26 登记生效日:20160715 变更前: 变更后: 申请日:20140319

    专利申请权、专利权的转移

  • 2015-09-23

    公开

    公开

说明书

技术领域

本发明一般而言涉及闪存控制并且,更具体地,涉及在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)、闪存存储器、磁卡、光卡和/或适用存储电子指 令的任何类型介质的电路。

本发明的元素可以形成一个或多个设备、单元、构件、系统、机 器和/或装置的部分或全部。设备可以包括,但不限于,服务器、工 作站、存储整列控制器、存储系统、个人计算机、膝上计算机、笔记 本计算机、掌上计算机、个人数字助理、便携式电子设备、电池供电 设备、机顶盒、编码器、解码器、译码器、压缩器、解压缩器、预处 理器、后处理器、发送器、接收器、收发器、密码电路、蜂窝电话、 数码相机、定位和/或导航系统、医疗设备、平视显示器、无线设 备、音频记录、音频存储和/或音频重放设备、视频记录、视频存储 和/或视频重放设备、游戏平台、外围设备和/或多芯片模块。相关领 域技术人员将会理解本发明的元素可以在其它类型的设备中实现来满 足特定应用的标准。

当在本文和“是”以及动词结合使用时,术语“可以”和“通 常”意味着传递如下意图,即,描述是示例性的并且相信是足够广义 的,以便既涵盖本公开内容具体例子又涵盖基于本公开内容导出的作 为可替换的例子。如本文所使用的术语“可以”和“通常”不应当被 认为是必然地暗示忽略对应元件的期望性或可能性。

虽然本发明已经参考其实施例特别地示出并进行了描述,但是, 本领域技术人员将理解,在不背离本发明范围的情况下,可以对形式 和细节做各种改变。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号