首页> 中国专利> 一种提高基于NAND的固态存储器数据保持时间的方法

一种提高基于NAND的固态存储器数据保持时间的方法

摘要

本发明公开了一种提高基于NAND的固态存储器数据保持时间的方法,分为位状态表更新时间段T1和巡检时间段T2,在T1查询位映射表,如果对应位的状态为0则更新为1,否则保持原有状态,如此循环,直到T1时间达到设定的阈值;在T2进行读巡检和ECC错误检测以及位映射表清零。本发明既确保了数据巡检的完整性,又做到带来的额外操作最小,从而确保全部用户数据的安全性,又以较低的成本和代价实现。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-24

    专利权质押合同登记的生效 IPC(主分类):G11C11/406 登记号:Y2020440000171 登记生效日:20200629 出质人:广东华晟数据固态存储有限公司 质权人:广东省电子信息产业集团有限公司 发明名称:一种提高基于NAND的固态存储器数据保持时间的方法 授权公告日:20170208 申请日:20121127

    专利权质押合同登记的生效、变更及注销

  • 2017-02-08

    授权

    授权

  • 2016-08-24

    专利申请权的转移 IPC(主分类):G11C11/406 登记生效日:20160805 变更前: 变更后: 申请日:20121127

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

  • 2014-11-12

    实质审查的生效 IPC(主分类):G11C11/406 申请日:20121127

    实质审查的生效

  • 2014-06-04

    公开

    公开

说明书

技术领域

本发明涉及一种基于非易失介质的固态存储器,尤其涉及一种提高基于NAND的固态存储器数据保持时间的方法。

背景技术

固态存储器就是指使用固态电子存储芯片阵列组成的存储器件,其中最典型的是使用NAND(NOT AND) Flash作为存储介质的固态硬盘(Solid State Drive),和传统硬盘相比,固态硬盘具有低功耗、无噪音、抗震动的特点。这些特点不仅使得数据能更加安全地得到保存,而且也延长了靠电池供电的设备的连续运转时间。

作为存储介质最重要的特质之一就是数据的可靠性,但是因为NAND本身的特质,如果数据写入NAND后,长时间没有被更新,可能出现数据位存储的状态翻转的情况,从而导致数据在被读取时与被存入其中时不一致,导致严重的数据可靠性问题,造成用户数据的损失。

随着NAND制程工艺的发展,器件本身的可靠性也越来越低,数据保持时间问题即Data retention问题,已经成为使用NAND为介质的固态存储行业越来越关心的问题。解决数据保持时间的问题本质,就是希望及早发现出错的数据,利用ECC纠错功能进行纠错,或者是尽可能保持数据的新鲜程度。

基于上述问题本质,通常有这样几种针对措施。一种是存储器并不做任何主动的行为,完全依靠主机数据更新行为保持数据的新鲜程度,这种方式适合于全部数据都是被频繁更新的应用,否则,存储的“冷”数据在同一个存储单元保持较长时间后就可能出现ECC无法纠正的错误,导致数据失效;另一种措施是主动在存储器后端巡检读(background patrol read),分为随机读取和全部空间遍历读取两种,目的都是为了及早发现已经出错的数据,或者出错程度已经接近ECC纠错能力阈值的数据,进行纠错后写入新的存储单元。其中前者随机的目的是为了减小后台操作的代价,缺点是只能一定程度上发现问题,并不一定能够覆盖存储器上所有数据;后者可以无遗漏的覆盖所有数据,但是后台操作的代价较大,并且主机本身就有大量数据更新的情况下,这样全部遍历产生的操作更是多余和无用的,例如主机刚刚更新了逻辑数据段X,这时候数据的新鲜度是很好的,而遍历巡检也可能刚刚遍历到数据段X,这时候对X的巡检就是多余和无用的。

综上看来,在现有的技术中,依赖主机的行为来保持数据新鲜度的方法过于依赖主机的I/O模型;额外开销代价小的随机巡检方式不能确保巡检的数据完整性;能够确保用户数据完整性的全遍历方式会产生大量的多余的操作开销,对NAND的颗粒磨损和I/O性能带来负面影响。这些问题的根本原因就是存储器无法识别用户数据的“冷”“热”程度,热数据指的是主机频繁更新的逻辑数据段,因为频繁更新,数据本身就具备很好的新鲜度,不用考虑其数据保持时间问题;冷数据则与之相反,是数据巡检需要重点关注的对象。

申请号为“200610059788”,发明名称为“半导体存储装置”的中国专利申请公开了一种能够适当进行数据保持时间不同的存储器单元的更新的装置,但是该装置无法识别用户数据的冷热程度,无法实现高效的数据保持问题。

申请号为:US2005232012 ,发明名称为:“NAND flash memory device and method of programming the same”的美国专利申请公开了一种NAND存储器及其编程的方法,其可以减少NAND存储器的干扰,从而减少能源浪费,但是该方案并没有针对现有技术中存在的数据新鲜度保持问题和数据更新问题提出有效的解决方案。

因此,基于上述问题,需要提供一种简单易行的方式区分出了用户数据的冷/热程度,基于这个信息,主动地且有针对性地只对冷数据执行巡检操作,从而可以付出最小的成本以实现用户数据的安全性。

发明内容

本发明的一个目的是识别出存储器的冷数据,仅针对冷数据进行巡检,这样既确保了数据巡检的完整性,又做到带来的额外操作最小。

本发明的另一个目的在于针对数据保持时间问题,提出一种易于实现的低代价的数据巡检方式,目的是即确保全部用户数据的安全性,又以较低的开销和代价实现。

本发明的技术方案如下:

一种提高基于NAND的固态存储器数据保持时间的方法,其特征在于包括以下步骤:在位状态表更新时间段T1,根据操作的逻辑地址,查询位映射表,如果对应位的状态为0则更新为1,否则保持原有状态,如此循环,直到该T1过程时间达到设定的阈值;在巡检时间段T2,从逻辑地址起始位置对应的位状态表开始巡检,首先读取该段逻辑地址对应的数据内容,在读巡检模式下,读取过程中会经过ECC错误检测,如果出错数据的位数超过了设定的阈值,则将数据纠错后,重新写入一个新的存储单元;否则,仅读取数据,不做其它操作;进行位映射表清除,将位映射表整体清零。

进一步地,将位映射表整体清零进一步包括在巡检过程中,每处理完一个就立刻清零,即如果位状态表为1则立刻清零,如果位状态表为0则处理后再清零。

进一步地,在所述T2时间段内,所述T1过程中的位映射表更新操作继续进行。

进一步地,在读巡检模式下,NAND的读操作和编程操作都触发位映射表的检查更新。

进一步地,在保持数据新鲜度模式下,仅编程操作触发位映射表的检查更新。

进一步地,其中所述保持数据新鲜度模式下,将每次判断到的冷数据读出后都重新编程到一个新的存储单元。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见,下面描述中的附图仅仅是本发明的部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。

图1示出了一种固态存储器位映射关系示意图;

图2示出了在保持数据新鲜度模式下固态存储器中数据冷热转换流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

现有的高性能的基于NAND的固态存储器通常采用基于页映射(page-mapping)的闪存转化层(FTL,flash-translation-layer)设计,随着page大小由4KB扩大了8KB到16KB,也存在采用小于page大小的映射管理设计。本方案不受限于NAND的物理page大小和控制器设计的管理映射粒度大小的限制。这里以目前常见的4KB page大小,页映射管理为例描述。

文中按照管理粒度为单位,将全部的数据空间在逻辑上划分进行映射,每个粒度单位映射到1位(bit),这样就得到的总空间/管理粒度bit数的位映射表,根据设计中的资源的实际情况,也可以将多个连续的管理粒度大小映射到1bit,从而缩小位映射表,位映射表的每一位只会存在“0”或“1”两种状态,如图1所示。

这个位映射表就是文中用来监控数据热度或新鲜度的主要方式。初始时刻开始,位映射表全部位为0,其后,存储器每次收到主机的读/写操作,就根据写操作的逻辑地址找到对应的位映射表位置,将其中存储的0改写为1,如果存储的值已经是1,表示之前主机已经操作过这段地址的数据,则不再修改,保持1即可。

这样持续一段时间T1后,位映射表通常会变成0和1的某种组合,其中为1的位置表示这段时间内主机操作命中过,存储的数据要么是近期编程过的,要么是读操作经过ECC纠错判断的,0的位置则与之相反。此时开始启动后台数据巡检,开始以某种方式遍历位映射表,例如从位映射表0位开始到最高位的逐位顺序。如果位映射表对应位为0,则执行巡检操作,根据对应的位确定其表征的逻辑地址,通过FTL的映射关系确定逻辑地址对应的物理地址,对物理地址执行读取操作,判断ECC校验时是否有错误纠正以及错误纠正的bit数是否达到阈值,以此判断是否需要将这段数据纠错后重新编程到一个新的存储单元以保持其数据的新鲜度。如果位映射表对应位为1,则跳过对应的数据段,不做任何操作。此外随着NAND颗粒的可靠性越来越低,仅读巡检有时候并不能及时提前判断到数据出错程度将要超过ECC的纠错能力,更可靠地方式是保证数据编程的新鲜度,因此可以将每次判断到的冷数据读出后都重新编程到一个新的存储单元,虽然一定程度上增加了NAND颗粒的磨损,但是对于解决数据保持时间问题却是最有效的,可以称为保持数据新鲜度模式。在这种操作模式下,则只利用主机的写操作将位映射表由0变1,读操作不做修改。假设遍历开始到完成时间段为T2,则这段时间内,因为依然会有主机操作执行,位映射表中的反映的冷数据会继续由冷转热,则并不与后台的巡检操作冲突,还会减少本轮巡检操作的操作。

当位映射表遍历一遍完成后,可以认为一轮巡检完成,此时可以认为在一个时间片段内,所有的用户数据都被编程或者读操作遍历到了。如果后台遍历时,所有的冷数据都重新执行了编程操作,则可以认为此时全部的用户数据都保持了几乎同等的新鲜度。

一轮遍历完成后,将位映射表全部清零(也可以在T2巡检过程中每次巡检到一个状态为1的位映射表就将其清零),开始新一轮的位映射表状态维护,上述过程一直循环执行即可。根据各个NAND颗粒的特性,如果认为在T时间内,数据的保持是可靠的,即在该时间范围内,数据的出错程度不会超过NAND颗粒厂商要求的ECC需求规格,那么主要T1+T2的和不超过T则可以认为所有用户数据在数据保持时间问题上安全的。

如图2所示,整个流程分为T1时间段和T2时间段,其中T1时间段为位状态表更新时间段,仅根据NAND的操作类型对位映射表进行更新。在读巡检模式下,NAND的读操作和编程操作都会触发位映射表的检查更新,在保持数据新鲜度模式下,仅编程操作会触发位映射表的检查更新。根据操作的逻辑地址,查询位映射表,如果对应位的状态为0则更新为1,否则,保持原有状态。如此往复,直到T1过程时间达到设定的阈值,此时开始进入T2巡检时间段。在T2时间段内,T1过程中的位映射表更新操作依然可以继续进行。进入T2时间段后,从逻辑地址启示位置对应的位状态表开始巡检,首先读取该段逻辑地址对应的数据内容,在读巡检模式下,读取过程中会经过ECC错误检测,如果出错数据的位数超过了设定的阈值(小于ECC纠错能力位数的一个阈值),则将数据纠错后,重新写入一个新的存储单元;否则,仅读取数据,不做其它操作。在保持数据新鲜度的模式下,无论读取数据过程中出错的位数是否操作阈值,都将数据纠错后重新写入到一个新的存储单元。最后是位映射表清除,可以分为两种,可以巡检过程中,每处理完一个就立刻清零,即如果位状态表为1则立刻清零,如果位状态表为0则处理后再清零;或者在全部位映射表巡检完毕后将位映射表整体清零。两种方式本质上没有太大差别。遍历完所有位映射表则NAND上所有数据都被巡检过了一遍。此时T2时间段结束,重新进入T1时间段,如此T1和T2时间段交替执行则可以达到本方案期望的提高NAND上数据保持时间的效果。

除了存储器存储的用户数据可以按照此方案进行管理外,对于存储自身的表项等管理数据,也可以将其按照一个虚拟的逻辑地址进行编址后,按照本方案进行管理,因为这部分数据的重要性可能不亚于用户数据,并且同样面对数据保持时间的问题。

除了主机的发起数据读写操作可以按照本方案进行识别冷热程度,对于基于NAND的固态存储器,也会伴随有垃圾回收(garbage collection)及均衡操作(wear-leveling),这些操作也会对NAND上的数据进行搬移,因此也会影响数据的冷热状态,为了尽可能减小数据巡检的开销代价,这部分数据搬移时也需要更新位映射表,记录数据由冷变热的变化。

相比于现有技术,本方案采用一种简单易行的方式区分出了用户数据的冷/热程度,基于这个信息,主动地且有针对性地只对冷数据执行巡检操作,这样操作的好处是,主动方式不会受限于主机I/O业务的模型限制;通过位映射表的维护,保证了巡检时的数据完整性,不会产生遗漏数据段的问题;进队冷数据做读取和搬移操作较少了不必要的NAND颗粒的操作和磨损,对主机I/O性能和NAND的寿命都有益处。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号