一种提高SSD生命周期的方法转让专利

申请号 : CN202211473522.4

文献号 : CN115509468B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈林杜小华王锐曹学贵常清雪黄成坤钟吉林徐明军朱超黄耀年

申请人 : 四川省华存智谷科技有限责任公司

摘要 :

本发明提出一种提高SSD生命周期的方法,提高SSD生命周期的方法包括如下步骤:S1、将SSD的闪存单元N比特位序列编码成2N个编码组,对应2N个参考电压,N>1,为正整数;S2、将编码组映射到k比特位的数据,获得M个重写组,0

权利要求 :

1.一种提高SSD生命周期的方法,其特征在于, 所述提高SSD生命周期的方法包括如下步骤:N N

S1、将SSD的闪存单元N比特位序列编码成2 个编码组,对应2个参考电压,N>1,为正整数;

S2、将编码组映射到k比特位的数据,获得M个重写组,0

S3、基于M个重写组将数据写入闪存单元,每次只能写k个比特位。

2.根据权利要求1所述的提高SSD生命周期的方法,其特征在于,在所述S1中,以QLC SSD驱动器为例,将QLC驱动器的闪存单元4比特位序列编码成16个编码组,其对应QLC驱动器的16个参考电压,0000为最低参考电压,1111为最大参考电压。

3.根据权利要求1所述的提高SSD生命周期的方法,其特征在于,在所述S2中,当k=1时,N N kM=2‑1,1

4.根据权利要求1所述的提高SSD生命周期的方法,其特征在于,在所述S2中,编码过程包括如下步骤:N k

S21、将2个编码组中的前2个编码组映射为重写组1,将参数i初始化为1;

k

S22、以重写组i中的最后一个编码组作为共享编码组,成为新的起点,重新获取2个编码组,映射为重写组(i+1),将参数i加1递增后进行更新;

N k k

S23、判断(2‑(2 ‑1)*i)< 2是否成立,如果成立,进入S24,否则,返回S22;

S24、结束编码。

5.根据权利要求4所述的提高SSD生命周期的方法,其特征在于,在所述S2中,以QLC SSD驱动器为例,在k=1的情况下,分为15个重写组,分别为(0000,0001)、(0001,0010)、(0010,0011)、(0011,0100)、(0100,0101)、(0101,0110)、(0110,0111)、(0111,1000)、(1000,1001)、(1001,1010)、(1010,1011)、(1011,1100)、(1100,1101)、(1101,1110)、(1110,1111)。

6.根据权利要求4所述的提高SSD生命周期的方法,其特征在于,在所述S2中,以QLC SSD驱动器为例,在k=2的情况下,分为5个重写组,分别为(0000,0001,0010,0011)、(0011,

0100,0101,0110)、(0110,0111,1000,1001)、(1001,1010,1011,1100)、(1100, 1101,1110,

1111)。

7.根据权利要求4所述的提高SSD生命周期的方法,其特征在于,在所述S2中,以QLC SSD驱动器为例,在k=3的情况下,分为2个重写组,分别为(0000,0001,0010,0011,0100,

0101,0110,0111),(0111,1000,1001,1010,1011,1100,1101,1110)。

8.根据权利要求1所述的提高SSD生命周期的方法,其特征在于,在所述S3中,分为两种写入方式: 1)在M个重写组之间进行跳跃,实现数据的写入;2)在相同重写组内进行数据转换。

9.根据权利要求8所述的提高SSD生命周期的方法,其特征在于,在所述S3中,通过在M个重写组之间进行跳跃实现数据写入时,以QLC SSD驱动器为例,在k=1的情况下,重写次数为15,在k=2的情况下,重写次数为5,在k=3的情况下,重写次数为2。

10.一种计算机存储介质,其特征在于, 所述计算机存储介质存储有计算机程序,处理器通过运行所述计算机程序能够实现权利要求1‑9中任一项所述的提高SSD生命周期的方法。

说明书 :

一种提高SSD生命周期的方法

技术领域

[0001] 本发明涉及数据存储技术领域,特别是一种提高SSD生命周期的方法。

背景技术

[0002] 众所周知,相较于传统机械硬盘(HDD),基于闪存的固态硬盘(SSD)提供更快的读写速率,更低的读写延时,但其有一个主要局限性:与机械硬盘可以重写已经写入数据区域不同,闪存单元在重写之前需要进行擦除操作,每次擦除操作都会导致磨损,从而缩短单元的寿命。旧一代的闪存SLC(single‑level cell)在一个单元中只存储一个位,通常可以在磨损之前容忍上万个P/E(Program/Erase)周期。然而,为了满足日益增长的存储容量需求,需要在一个单元中存储更多的位。但是每增加一位存储在1个SSD单元中,SSD可以承受的擦除周期数减少了一个数量级。到了QLC(Quad‑Level Cell,4位/单元)和PLC(Penta‑Level Cell,5位/单元)这样的高密度SSD,可以看到P/E周期下降到几十或几百。为了使高密度SSD驱动器(如QLC和PLC)在更多的应用程序中可用,减少存储介质的擦除次数至关重要。
[0003] 为了提高SSD的寿命,业界提供很多技术来减少闪存颗粒P/E次数。目前减少固态硬盘P/E次数的主要技术包括:1)地址空间虚拟化技术,该技术避免热点数据频繁往同一个物理区域进行擦除和写入;2)容量冗余,为了避免部分闪存损坏所导致的整块 SSD失效,SSD在设计时都会做到容量冗余,比如一块标称100GB的SSD,内部实际的闪存物理容量一般都做到了110GB以上,一般而言,冗余比越大,则SSD的可靠性、寿命、性能就越好,企业级存储产品的冗余比一般要达到28%以上;3)磨损均衡,该技术记录每一个块的P/E次数,然后在需要擦除或者写入数据时,尽量选择那些P/E次数相对较少的块,经过了磨损均衡的SSD,使用寿命可以得到最大化。
[0004] 现有的技术,都着重于SSD的擦除均衡,尽量让SSD的擦写周期接近闪存颗粒的理论擦除周期,没有改变每一个闪存单元擦除前只能写一次的现状。

发明内容

[0005] 为了解决现有技术中每一个闪存单元在擦除前只能写一次的技术问题,本发明提出的提高SSD生命周期的方法,其特征在于, 所述提高SSD生命周期的方法包括如下步骤:
[0006] S1、将SSD的闪存单元N比特位序列编码成2N个编码组,对应2N个参考电压,N>1,为正整数;
[0007] S2、将编码组映射到k比特位的数据,获得M个重写组,0
[0008] S3、基于M个重写组将数据写入闪存单元,每次只能写k个比特位。
[0009] 优选的,在所述S1中,以QLC SSD驱动器为例,将QLC驱动器的闪存单元4比特位序列编码成16个编码组,其对应QLC驱动器的16个参考电压,0000为最低参考电压,1111为最大参考电压。
[0010] 优选的,在所述S2中,当k=1时,M=2N‑1,1
[0011] 优选的,在所述S2中,编码过程包括如下步骤:
[0012] S21、将2N个编码组中的前2k个编码组映射为重写组1,将参数i初始化为1;
[0013] S22、以重写组i中的最后一个编码组作为共享编码组,成为新的起点,重新获取2k个编码组,映射为重写组(i+1),将参数i加1递增后进行更新;
[0014] S23、判断(2N‑(2k ‑1)*i)< 2k是否成立,如果成立,进入S24,否则,返回S22;
[0015] S24、结束编码。
[0016] 优选的,在所述S2中,以QLC SSD驱动器为例,在k=1的情况下,分为15个重写组,分别为(0000,0001)、(0001,0010)、(0010,0011)、(0011,0100)、(0100,0101)、(0101,0110)、(0110,0111)、(0111,1000)、(1000,1001)、(1001,1010)、(1010,1011)、(1011,1100)、(1100,1101)、(1101,1110)、(1110,1111)。
[0017] 优选的,在所述S2中,以QLC SSD驱动器为例,在k=2的情况下,分为5个重写组,分别为(0000,0001,0010,0011)、(0011,0100,0101,0110)、(0110,0111,1000,1001)、(1001,1010,1011,1100)、(1100, 1101,1110,1111)。
[0018] 优选的,在所述S2中,以QLC SSD驱动器为例,在k=3的情况下,分为2个重写组,分别为(0000,0001,0010,0011,0100,0101,0110,0111),(0111,1000,1001,1010,1011,1100,1101,1110)。
[0019] 优选的,在所述S3中,分为两种写入方式: 1)在M个重写组之间进行跳跃,实现数据的写入;2)在相同重写组内进行数据转换。
[0020] 优选的,在所述S3中,通过在M个重写组之间进行跳跃实现数据写入时,以QLC SSD驱动器为例,在k=1的情况下,重写次数为15,在k=2的情况下,重写次数为5,在k=3的情况下,重写次数为2。
[0021] 本发明提出的计算机存储介质存储有计算机程序,处理器通过运行所述计算机程序能够实现上述提高SSD生命周期的方法。
[0022] 相对于现有技术,本发明具有如下有益效果:
[0023] 通过重新编码每一闪存单元的位,使得每一闪存单元在被擦除前可以重写多次,减少闪存单元的擦除次数,从而提高整个SSD的生命周期。

附图说明

[0024] 图1是本发明提高SSD生命周期的方法的流程图。

具体实施方式

[0025] 为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。
[0026] 为了更加清楚地描述系统异常重启下的缓存数据保护方法,现对本发明中高速缓存部分的存储结构进行说明:
[0027] 为了更好地描述本发明,现对N‑Level Cell SSD驱动器的存储原理进行说明。N‑Level Cell SSD驱动器的一个闪存单元可以存储N个比特位,这N个比特位对应着SSD里晶体管的16个不同水平的参考电压,其中每个参考电压表示一个N位二进制代码,以QLC SSD驱动器为例,QLC SSD的一个闪存单元可以储存4个比特位,这4个比特位对应着SSD里晶体管的16个不同水平的参考电压,其中每个参考电压表示一个4位二进制代码。闪存单元不同状态之间的任何转换都受当前参考电压水平的控制,同时必须遵循如下规则:参考电压水平可以单向增加,但只有先擦除才能降低电压水平,它不依赖于存储在闪存单元中的4比特位值的单个比特位的值。
[0028] 如图1所示,本发明提出的提高SSD生命周期的方法具体包括如下步骤:
[0029] S1、将SSD的闪存单元N比特位序列编码成2N个编码组,对应2N个参考电压,N>1,为正整数,以QLC SSD驱动器为例,将QLC驱动器的闪存单元4比特位序列编码成16个编码组,其对应QLC驱动器的16个参考电压,0000为最低参考电压,1111为最大参考电压。
[0030] S2、将编码组映射到k比特位的数据,获得M个重写组,0体地,k个比特位可以表达2个数据,例如,2个比特位可以表达4个数据:00,01,10,11,编码过程包括如下步骤:
[0031] S21、将2N个编码组中的前2k个编码组映射为重写组1,将参数i初始化为1;
[0032] S22、以重写组i中的最后一个编码组作为共享编码组,成为新的起点,重新获取2k个编码组,映射为重写组(i+1),将参数i加1递增后进行更新;
[0033] S23、判断(2N‑(2k ‑1)*i)< 2k是否成立,如果成立,进入S24,否则,返回S22;
[0034] S24、结束编码。
[0035] 设置共享编码组只是为了增加重写组的个数,以增加重写次数,以QLC SSD驱动器为例,在k=1的情况下,分为15个重写组,分别为(0000,0001)、(0001,0010)、(0010,0011)、(0011,0100)、(0100,0101)、(0101,0110)、(0110,0111)、(0111,1000)、(1000,1001)、(1001,1010)、(1010,1011)、(1011,1100)、(1100,1101)、(1101,1110)、(1110,1111),在k=2的情况下,分为5个重写组,分别为(0000,0001,0010,0011)、(0011,0100,0101,0110)、(0110,0111,1000,1001)、(1001,1010,1011,1100)、(1100, 1101,1110,1111),在k=3的情况下,分为2个重写组,分别为(0000,0001,0010,0011,0100,0101,0110,0111),(0111,1000,1001,1010,1011,1100,1101,1110)。
[0036] S3、基于M个重写组将数据写入闪存单元,每次只能写k个比特位,具体地,分为两种写入方式:
[0037] 1)在M个重写组之间进行跳跃,实现数据的写入,以QLC SSD驱动器为例,k=2的情况下,假如5次写入序列为01,10,11,01,01,对于一个新擦除的QLC驱动器的闪存单元,只需要将参考电压按序升到0001,0110,0111,1001,1101,每次写入更高的重写组,只需提升闪存单元的电压即可,在升至最大参考电压1111之前不需要擦除,此时可以对同一个闪存单元无擦除重写5次,同理可以得出,在k=1的情况下,重写次数为15,在k=3的情况下,重写次数为2。
[0038] 2)在相同重写组内进行数据转换,可以提供更多的重写次数,以QLC SSD驱动器为例,k=2的情况下,如果在3个连续的写入周期中写入数据序列01、10和11,对写入周期1到3分别进行编码并将参考电压水平更改为0001、0010和0011,第二次写入不需要参考电压跃迁到重写组2,只需要将参考电压从0001增加到0010,这两个电压都位于重写组1内,对于第三次写入同理。
[0039] 相对于现有技术,本发明具有如下有益效果:
[0040] 1)通过物理空间换取更多的逻辑空间,以QLC SSD驱动器为例,存在k=1、k=2和k=3这三种编码方案,虽然需要4倍、2倍和1.33倍的物理空间开销,但能够分别为其写入15倍、5倍和2倍数量的逻辑数据,相比无编码方案有巨大的增益,k=1时为每个物理单元提供了375%的额外空间,k=2时为每个物理单元提供了250%的额外空间,k=3时为每个物理单元提供了150%的额外逻辑空间。
[0041] 2)具有天然的闪存友好性,在本发明中,参考电压水平的增加只在一个较短的电压水平范围内,以QLC SSD驱动器为例,在k=2的情况下,参考电压可以只在5个重写组内跃迁,而不像非编码方案中,在16个参考电压内任意增加,本编码方案有着更少的电压增加频率,也即更少数量的充电电荷注入闪存单元,减少了闪存的program disturb错误。
[0042] 以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围。应当指出,对于本技术领域的技术人员,在不脱离本发明设计结构及原理的前提下对本发明方案所作的等同变化都视作本发明的保护范围。