本发明属于计算机存储领域,更具体地,涉及一种提高3dcttlcnand闪存存储设备可靠性的方法。
背景技术:
nand闪存因其相比于传统机械硬盘更优秀的性能,以及相比于dram更持久的存储能力和更高的存储密度,正在逐渐成为各大系统的主流存储介质。为满足市场上日益增长的存储容量需求,nand闪存厂商按照摩尔定律的规律不断缩小半导体的特征尺寸,从而提升nand闪存的单位密度,降低其单位价格。然而,由于技术上的复杂度,当半导体的特征尺寸缩小到一定程度(例如,30nm以下)时,继续缩小特征尺寸存在技术难度,并且会产生高昂的费用。为突破平面nand闪存密度缩减的瓶颈,3dnand闪存应运而生,它通过将nand闪存单元在垂直方向上进行堆叠,在不需要缩小半导体特征尺寸的前提下,极大地增加了存储密度。同时,为追求有更强的可扩展性以及存储单元间更小的耦合效应,电荷陷阱(ct,chargetrap)成为3dnand闪存的主流介质。随着新兴3dtlcnand闪存技术的发展,tlc(triple-levelcell)也将占据主要的市场份额。
nand闪存虽相比易失性存储介质(如:dram)具有更持久保存数据的能力,但其使用寿命仍是有限的。对于无法继续工作的不可靠闪存块,坏块管理算法需要将其标记为坏块,从而避免对其继续使用而造成数据的丢失,以提高存储设备的可靠性。传统坏块管理算法对于出现失效页的闪存块整块置坏,并将该闪存块中有效数据页移至其它空闲块中,导致较低的存储空间利用率并产生有较多的数据迁移开销。鉴于3dcttlcnand闪存存储结构的字线寿命在空间上分布具有层间集中特性且其各闪存页寿命差异较大,为解决上述问题,通过细粒度的坏块管理算法来提高存储空间利用率及存储设备寿命具有很重大的意义。
技术实现要素:
针对现有技术的以上缺陷或改进需求,本发明提供了一种提高3dcttlcnand闪存存储设备可靠性的方法。当闪存块中出现失效页时,区别于传统坏块管理算法将整块置坏的管理方法,本发明仅将闪存块中该失效页所在层内的闪存页标记为坏页,块中其他层的闪存页仍可继续使用,提高了存储设备存储空间的利用率及存储设备的寿命。采用的具体技术方案如下:
一种提高3dcttlcnand闪存存储设备可靠性的方法,其特征在于,仅将失效闪存页所在层中其他闪存页置为失效状态并仅对其中的有效数据页进行迁移,包括以下步骤:
(1)接收读请求,在读取过程中,首先获取目标页lpn,然后在映射表中查找lpn对应的ppn并读取该ppn中的数据;
(2)采用ecc对读取的数据进行纠错,获取rber并与ecc阈值比较;
(3)若rber大于等于ecc阈值则转至步骤(4),若rber小于ecc阈值则转至步骤(6);
(4)将对应ppn所在层中所有有效数据转移至空闲页中,并修改映射表中对应位置的ppn;
(5)在块状态表中将ppn所在层状态标记为失效;
(6)本次读操作完成。
进一步,在步骤(5)中所述的块状态表存储闪存块各层的状态,仅标记坏层。
其中,使用步骤(5)中所述的块状态表存储闪存块各层的状态(仅标记坏层)。相比于存储芯片的存储空间大小,块状态表所需标记空间占比极小,开销可忽略不计。例如,对于东芝所生产的bics2tlc,其存储空间为2.48tb(310gb),各芯片有4个包,每个包有2个晶粒,每个晶粒有2个面板,每个面板包含1972个闪存块,而每个闪存块中有48层结构,则其块状态表仅需189312(=4×2×2×1972×48×1bit/8)字节,仅占bics2tlc存储空间的0.00006%。
总体而言,通过本发明提供的技术方案与现有技术相比,能够取得下列有益效果:
(1)本发明能够有效提高3dcttlcnand闪存存储设备的可靠性:由于采用了步骤(5),区别于传统坏块管理算法将整块置坏的管理方法,本发明考虑到3dcttlcnand闪存结构的字线寿命在空间上分布具有层间集中特性且其各闪存页寿命差异较大,仅将闪存块中该失效页所在层内的闪存页标记为坏页,块中其他层闪存页仍可继续使用,有效延长了存储设备的使用寿命,提高了3dcttlcnand闪存存储设备的可靠性。
(2)本发明能够有效提高3dcttlcnand闪存存储设备存储空间的利用率。传统坏块管理算法一旦出现失效页即将其所在的闪存块整个置坏,由于3dcttlcnand闪存结构的各闪存页寿命差异较大,置坏时该块中仍存有许多可用页,传统坏块管理算法会导致存储空间利用率低下的情况。本发明则利用3dcttlcnand闪存结构的字线寿命在空间上分布的层间集中特性,在步骤(5)中仅将闪存块中该失效页所在层内的闪存页标记为坏页,块中其他闪存页仍可继续使用,有效提高了存储设备存储空间的利用率,使其能在生命周期内读写更多数据。
(3)本发明能够节省数据迁移开销。传统坏块管理算法一旦出现失效页即将其所在的闪存块整个置坏,置坏前则需将该块中有效数据页迁移至空闲闪存页中,这会产生很大的数据迁移开销。本发明在步骤(5)中仅将闪存块中该失效页所在层内的闪存页标记为坏页,相比于块中有效数据页数量,单层内有效数据页数量大大减少,由其产生的数据迁移开销也大大降低。
附图说明
图1为本发明一种提高3dcttlcnand闪存存储设备可靠性的方法的流程图;
图2为传统坏块管理算法的示意图;
图3为本发明一种提高3dcttlcnand闪存存储设备可靠性的方法的示意图。
其中,图2与图3可以清楚地显示出本发明与传统坏块管理算法的对比效果。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明的整体思路在于当闪存块中出现失效页时,仅将闪存块中该失效页所在层内的闪存页标记为坏页,块中其他闪存页仍可继续使用,提高了存储设备存储空间的利用率及存储设备的寿命。具体包括以下步骤:
(1)接收读请求,在读取过程中,首先获取目标页lpn,然后在映射表中查找lpn对应的ppn并读取该ppn中的数据;
(2)采用ecc对读取的数据进行纠错,获取rber并与ecc阈值比较;
(3)若rber大于等于ecc阈值则转至步骤(4),若rber小于ecc阈值则转至步骤(6);
(4)将对应ppn所在层中所有有效数据转移至空闲页中,并修改映射表中对应位置的ppn;
(5)在块状态表中将ppn所在层状态标记为失效;
(6)本次读操作完成。
其中,使用步骤(5)中所述的块状态表存储闪存块各层的状态(仅标记坏层)。相比于存储芯片的存储空间大小,块状态表所需标记空间占比极小,开销可忽略不计。例如,对于东芝所生产的bics2tlc,其存储空间为2.48tb
(310gb),各芯片有4个包,每个包有2个晶粒,每个晶粒有2个面板,每个面板包含1972个闪存块,而每个闪存块中有48层结构,则其块状态表仅需189312(=4×2×2×1972×48×1bit/8)字节,仅占bics2tlc存储空间的0.00006%。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
1.一种提高3dcttlcnand闪存存储设备可靠性的方法,其特征在于,仅将失效闪存页所在层中其他闪存页置为失效状态并仅对其中的有效数据页进行迁移,包括以下步骤:
(1)接收读请求,在读取过程中,首先获取目标页lpn,然后在映射表中查找lpn对应的ppn并读取该ppn中的数据;
(2)采用ecc对读取的数据进行纠错,获取rber并与ecc阈值比较;
(3)若rber大于等于ecc阈值则转至步骤(4),若rber小于ecc阈值则转至步骤(6);
(4)将对应ppn所在层中所有有效数据转移至空闲页中,并修改映射表中对应位置的ppn;
(5)在块状态表中将ppn所在层状态标记为失效;
(6)本次读操作完成。
2.根据权利要求1所述的一种提高3dcttlcnand闪存存储设备可靠性的方法,其特征在于:在步骤(5)中所述的块状态表存储闪存块各层的状态,仅标记坏层。
技术总结