2024年10月23日发(作者:浦鸿云)
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(21)申请号 CN2.0
(22)申请日 2014.06.06
(71)申请人 华为技术有限公司
地址 518129 广东省深圳市龙岗区坂田华为总部办公楼
(72)发明人 石亮 沙行勉 朱冠宇 王元钢 诸葛晴凤
(74)专利代理机构 北京同立钧成知识产权代理有限公司
代理人 刘芳
(51)
G06F12/06
权利要求说明书 说明书 幅图
(10)申请公布号 CN 105138472 A
(43)申请公布日 2015.12.09
(54)发明名称
闪存磨损优化方法及设备
(57)摘要
本发明实施例提供一种闪存磨损优
化方法及设备。该闪存磨损优化方法包
括:当接收到写操作时,获取所述写操作
对应的预保存数据的保存时间;在预设的
保存时间与编程操作的对应关系中,若匹
配到与所述保存时间对应的编程操作,则
采用所述与所述保存时间对应的编程操
作,存储所述预保存数据,其中,所述预
设的保存时间与编程操作的对应关系为保
存时间、临界电压阈值及脉冲步幅之间的
对应关系,且该对应关系满足不影响闪存
的整体写操作性能。本发明实施例基于不
同类型的数据具有不同的保存时间需求,
选取不同的编程操作,从而实现在不影响
闪存的整体写操作性能的前提下,降低对
闪存的磨损,延长闪存的使用寿命。
法律状态
法律状态公告日
法律状态信息
专利权的转移IPC(主分
类):G06F12/06专利
号:ZL2登记生效
日:20220825变更事项:专利权人
变更前权利人:常州弘量电子科技
2022-09-06
有限公司变更后权利人:常州天宁
通信技术产业园有限公司变更事
项:地址变更前权利人:213000 江
苏省常州市天宁区青洋北路11号
变更后权利人:213000 江苏省常
州市天宁区河海东路9号
专利权的转移IPC(主分
类):G06F12/06专利
2023-01-17
号:ZL2登记生效
日:20230105变更事项:专利权人
变更前权利人:常州天宁通信技术
法律状态
专利申请权、专利权
的转移
专利申请权、专利权
的转移
产业园有限公司变更后权利人:常
州横塘科技产业有限公司变更事
项:地址变更前权利人:213000 江
苏省常州市天宁区河海东路9号
变更后权利人:213000 江苏省常
州市天宁区河海东路9号
权 利 要 求 说 明 书
1.一种闪存磨损优化方法,其特征在于,包括:
当接收到写操作时,获取所述写操作对应的预保存数据的保存时间;
在预设的保存时间与编程操作的对应关系中,若匹配到与所述保存时间对应的编程
操作,则采用所述与所述保存时间对应的编程操作,存储所述预保存数据,其中,
所述预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅
之间的对应关系,且该对应关系满足不影响闪存的整体写操作性能。
2.根据权利要求1所述的方法,其特征在于,所述获取所述写操作对应的预保存数
据的保存时间,包括:
根据所述预保存数据所对应的失效队列,确定其保存时间,所述失效队列用于记录
每一闪存块中所存储数据的失效时间。
3.根据权利要求2所述的方法,其特征在于,所述根据所述预保存数据所对应的失
效队列,确定其保存时间,包括:
根据所述预存保存数据所对应的失效队列,获得所述写操作要写入数据的闪存块中
所存储数据的失效时间;
根据所述写操作要写入数据的闪存块中所存储数据的失效时间和所述写操作写入的
时间,确定所述写操作的保存时间,并更新对应失效队列中所述闪存块中所存储数
据的失效时间。
4.根据权利要求1所述的方法,其特征在于,若所述写操作对应的闪存页中未写入
数据,则所述获取所述写操作对应的预保存数据的保存时间,包括:
设置所述写操作对应的预保存数据的保存时间为预设时间;
在所述保存时间对应的失效队列中,添加所述预保存数据及其失效时间,其中,该
失效时间为所述写操作的写入时间与所述保存时间的加和。
述保存时间对应的编程操作,存储所述预保存数据,包括:
确定所述写操作对应的闪存块;
在所述闪存块内,采用所述脉冲步幅,将闪存中的浮置栅极FG充电至所述临界电
压阈值,所述临界电压阈值的个数为至少一个;
记录所述写操作与所述闪存块的映射关系。
据的保存时间之后,所述方法还包括:
根据前一次数据更新时间间隔,预测所述预保存数据的失效时间;
若确定所述保存时间在所述失效时间内,则执行所述在预设的保存时间与编程操作
的对应关系中,匹配与所述保存时间对应的编程操作;
若确定所述保存时间未在所述失效时间内,则刷新所述写操作要写入数据的闪存块。
7.一种固态硬盘SSD控制器,其特征在于,包括:接收模块、写操作选择模块和
访问引擎;其中,
所述接收模块,用于当接收到写操作时,触发所述写操作选择模块;
所述写操作选择模块与所述接收模块连接,用于获取所述写操作对应的预保存数据
的保存时间;及在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间
对应的编程操作;若匹配到与所述保存时间对应的编程操作,则触发所述访问引擎,
其中,所述预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉
冲步幅之间的对应关系,且该对应关系满足不影响闪存的整体写操作性能;
所述访问引擎与所述写操作选择模块连接,用于采用所述与所述保存时间对应的编
程操作,存储所述预保存数据。
8.根据权利要求7所述的SSD控制器,其特征在于,所述写操作选择模块具体用于:
根据所述预保存数据所对应的失效队列,确定其保存时间,所述失效队列用于记录
每一闪存块中所存储数据的失效时间。
9.根据权利要求8所述的SSD控制器,其特征在于,所述写操作选择模块进一步用
于:
根据所述预存保存数据所对应的失效队列,获得所述写操作要写入数据的闪存块中
所存储数据的失效时间;
根据所述写操作要写入数据的闪存块中所存储数据的失效时间和所述写操作写入的
时间,确定所述写操作的保存时间,并更新对应失效队列中所述闪存块中所存储数
据的失效时间。
10.根据权利要求7所述的SSD控制器,其特征在于,若所述写操作对应的闪存页
中未写入数据,则所述写操作选择模块具体用于:设置所述写操作对应的预保存数
据的保存时间为预设时间;并触发所述访问引擎在所述保存时间对应的失效队列中,
添加所述预保存数据及其失效时间,其中,该失效时间为所述写操作的写入时间与
所述保存时间的加和。
控制器还包括:与各所述模块连接的写操作与闪存块映射模块,其中,
所述写操作与闪存块映射模块,用于根据所述接收模块接收的所述写操作,确定所
述写操作对应的闪存块;
所述访问引擎具体用于:在所述写操作与闪存块映射模块确定的所述闪存块内,采
用所述脉冲步幅,将闪存中的浮置栅极FG充电至所述临界电压阈值,所述临界电
压阈值的个数为至少一个,其中,所述临界电压阈值是由所述写操作选择模块确定
的;并记录所述写操作与所述闪存块的映射关系至所述写操作与闪存块映射模块。
控制器还包括:与所述访问引擎连接的智能刷新模块;
所述智能刷新模块,用于根据前一次数据更新时间间隔,预测所述预保存数据的失
效时间;若确定所述保存时间在所述失效时间内,则触发所述写操作选择模块执行
所述在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间对应的编程
操作;若确定所述保存时间未在所述失效时间内,则刷新所述写操作要写入数据的
闪存块。
13.一种固态硬盘SSD控制器,其特征在于,包括:存储器和与所述存储器连接的
处理器,其中,所述存储器存储执行指令,当接收到写操作时,所述处理器与所述
存储器之间通信,所述处理器执行所述执行指令使得所述SSD控制器执行如权利
要求1-6任一项所述的方法。
说 明 书
技术领域
本发明实施例涉及通信技术,尤其涉及一种闪存磨损优化方法及设备。
背景技术
由于闪存具有高性能、低延迟、低功耗、环境适应性强等优点,同时成本也在不断
降低,因此得到越来越普遍的应用。闪存存储元利用浮置栅极(FloatingGate,简称:
FG)存放数据,这些数据用FG中保存的电子数量来表示。对于单级存储元
(SingleLevelCell,简称:SLC),充电的FG代表“0”,未充电的FG代表“1”。对多
级存储元,例如,两级存储元(MultipleLevelCell,简称:MLC)而言,不同的充电
级别(即FG中电子数量不同)代表不同的状态,例如图1所示,4个充电级别分别
代表“11”、“10”、“01”和“00”四种状态。
一般而言,闪存对应三种操作,分别是读操作、写操作和擦除操作。其中,写操作
是通过步进式脉冲编程的方式来实现的。如图1所示,步进式脉冲编程采用大小为
ΔVpp的脉冲步幅将FG充电至不同阈值,即Vp(0)、
Vp(1)、Vp(2)和Vp(3)。擦除操作则是通过
使用一个时间较长的高电压进行放电操作,此电压与图1中的最大阈值电压相关。
进行写操作的电压称为编程电压,即图1中所示的ΔVpp;进行擦除
操作的电压称为擦除电压,通常这两种电压值都较大,会对FG造成磨损,且电压
越大,磨损越大,因此,通过降低擦写操作(擦除操作和写操作)的电压可实现磨损
的减少。
在现有技术中,通过降低每次擦写操作的电压,使得每次擦写操作对闪存造成的磨
损减少。然而,由于每次擦写操作的电压降低,导致单位时间能够写入存储元的电
子数量减少,从而每一次擦写操作需要的时间增加(写速度降低),进而导致闪存的
整体写操作性能降低。
发明内容
本发明实施提供一种闪存磨损优化方法及设备,以实现在不影响闪存的整体写操作
性能的前提下,降低闪存磨损,延长闪存的使用寿命。
第一方面,本发明实施例提供一种闪存磨损优化方法,包括:
当接收到写操作时,获取所述写操作对应的预保存数据的保存时间;
在预设的保存时间与编程操作的对应关系中,若匹配到与所述保存时间对应的编程
操作,则采用所述与所述保存时间对应的编程操作,存储所述预保存数据,其中,
所述预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅
之间的对应关系,且该对应关系满足不影响闪存的整体写操作性能。
在第一方面的第一种可能的实现方式中,所述获取所述写操作对应的预保存数据的
保存时间,包括:
根据所述预保存数据所对应的失效队列,确定其保存时间,所述失效队列用于记录
每一闪存块中所存储数据的失效时间。
根据第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,
所述根据所述预保存数据所对应的失效队列,确定其保存时间,包括:
根据所述预存保存数据所对应的失效队列,获得所述写操作要写入数据的闪存块中
所存储数据的失效时间;
根据所述写操作要写入数据的闪存块中所存储数据的失效时间和所述写操作写入的
时间,确定所述写操作的保存时间,并更新对应失效队列中所述闪存块中所存储数
据的失效时间。
在第一方面的第三种可能的实现方式中,若所述写操作对应的闪存页中未写入数据,
则所述获取所述写操作对应的预保存数据的保存时间,包括:
设置所述写操作对应的预保存数据的保存时间为预设时间;
在所述保存时间对应的失效队列中,添加所述预保存数据及其失效时间,其中,该
失效时间为所述写操作的写入时间与所述保存时间的加和。
根据第一方面、第一方面的第一种至第三种可能的实现方式中任意一种,在第一方
面的第四种可能的实现方式中,所述采用所述与所述保存时间对应的编程操作,存
储所述预保存数据,包括:
确定所述写操作对应的闪存块;
在所述闪存块内,采用所述脉冲步幅,将闪存中的浮置栅极FG充电至所述临界电
压阈值,所述临界电压阈值的个数为至少一个;
记录所述写操作与所述闪存块的映射关系。
根据第一方面、第一方面的第一种至第四种可能的实现方式中任意一种,在第一方
面的第五种可能的实现方式中,所述获取预保存数据的保存时间之后,所述方法还
包括:
根据前一次数据更新时间间隔,预测所述预保存数据的失效时间;
若确定所述保存时间在所述失效时间内,则执行所述在预设的保存时间与编程操作
的对应关系中,匹配与所述保存时间对应的编程操作;
若确定所述保存时间未在所述失效时间内,则刷新所述写操作要写入数据的闪存块。
第二方面,本发明实施例提供一种固态硬盘SSD控制器,包括:接收模块、写操
作选择模块和访问引擎;其中,
所述接收模块,用于当接收到写操作时,触发所述写操作选择模块;
所述写操作选择模块与所述接收模块连接,用于获取所述写操作对应的预保存数据
的保存时间;及在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间
对应的编程操作;若匹配到与所述保存时间对应的编程操作,则触发所述访问引擎,
其中,所述预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉
冲步幅之间的对应关系,且该对应关系满足不影响闪存的整体写操作性能;
所述访问引擎与所述写操作选择模块连接,用于采用所述与所述保存时间对应的编
程操作,存储所述预保存数据。
在第二方面的第一种可能的实现方式中,所述写操作选择模块具体用于:
根据所述预保存数据所对应的失效队列,确定其保存时间,所述失效队列用于记录
每一闪存块中所存储数据的失效时间。
根据第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,
所述写操作选择模块进一步用于:
根据所述预存保存数据所对应的失效队列,获得所述写操作要写入数据的闪存块中
所存储数据的失效时间;
根据所述写操作要写入数据的闪存块中所存储数据的失效时间和所述写操作写入的
时间,确定所述写操作的保存时间,并更新对应失效队列中所述闪存块中所存储数
据的失效时间。
在第二方面的第三种可能的实现方式中,若所述写操作对应的闪存页中未写入数据,
则所述写操作选择模块具体用于:设置所述写操作对应的预保存数据的保存时间为
预设时间;并触发所述访问引擎在所述保存时间对应的失效队列中,添加所述预保
存数据及其失效时间,其中,该失效时间为所述写操作的写入时间与所述保存时间
的加和。
根据第二方面、第二方面的第一种至第三种可能的实现方式中任意一种,在第二方
面的第四种可能的实现方式中,所述SSD控制器还包括:与各所述模块连接的写
操作与闪存块映射模块,其中,
所述写操作与闪存块映射模块,用于根据所述接收模块接收的所述写操作,确定所
述写操作对应的闪存块;
所述访问引擎具体用于:在所述写操作与闪存块映射模块确定的所述闪存块内,采
用所述脉冲步幅,将闪存中的浮置栅极FG充电至所述临界电压阈值,所述临界电
压阈值的个数为至少一个,其中,所述临界电压阈值是由所述写操作选择模块确定
的;并记录所述写操作与所述闪存块的映射关系至所述写操作与闪存块映射模块。
根据第二方面、第二方面的第一种至第四种可能的实现方式中任意一种,在第二方
面的第五种可能的实现方式中,所述SSD控制器还包括:与所述访问引擎连接的
智能刷新模块;
所述智能刷新模块,用于根据前一次数据更新时间间隔,预测所述预保存数据的失
效时间;若确定所述保存时间在所述失效时间内,则触发所述写操作选择模块执行
所述在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间对应的编程
操作;若确定所述保存时间未在所述失效时间内,则刷新所述写操作要写入数据的
闪存块。
第三方面,本发明实施例提供一种固态硬盘SSD控制器,包括:存储器和与所述
存储器连接的处理器,其中,所述存储器存储执行指令,当接收到写操作时,所述
处理器与所述存储器之间通信,所述处理器执行所述执行指令使得所述SSD控制
器执行如第一方面任一项所述的方法。
本发明实施例基于不同类型的数据具有不同的保存时间需求,通过获取预保存数据
的保存时间,并根据该保存时间在预设的保存时间与编程操作的对应关系中,选取
不同的编程操作,针对不同的数据进行不同类型的编程操作,从而实现在不影响闪
存的整体写操作性能的前提下,降低对闪存的磨损,延长闪存的使用寿命。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有
技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是
本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前
提下,还可以根据这些附图获得其他的附图。
图1为现有技术中两级存储元特征示意图;
图2为本发明应用场景示例图;
图3为本发明闪存磨损优化方法实施例一的流程示意图;
图4为不同类型数据与其保存时间的示例图;
图5为本发明SSD控制器实施例一的结构示意图;
图6为本发明SSD控制器实施例二的结构示意图;
图7为本发明SSD控制器实施例三的结构示意图;
图8为本发明SSD控制器实施例四的结构示意图;
图9为本发明SSD控制器实施例五的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中
的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实
施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领
域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本
发明保护的范围。
作为目前电子消费产品的主力军,在闪存的发展路线上,闪存包括两大发展方向:
更小尺寸和更高密度。其中,闪存的密度可以通过增加单个存储元(Cell)容纳的比
特数量得到提高,例如从早期的SLC到MLC,不断发展到最新的三级存储元
(TripleLevelCell,简称:TLC)和四级存储元(QuadLevelCell,简称:QLC)。而闪存
的尺寸则随着半导体集成工艺的发展,目前16nm的闪存已见诸市场。
本发明实施例主要应用于包括主机、多个通道的闪存制成的固态硬盘
(SolidStateDisk,简称:SSD)以及SSD控制器的场景。其中,主机通过SSD控制
器读写闪存中的数据。例如,如图2所示,单机或服务器机框20内包含底板21,
底板21上安装有南桥211、中央处理器(CentralProcessingUnit,简称:CPU)212和
内存213等芯片,实现主机的功能,用于对其他扩展卡(例如图2所示的扩展卡22
和扩展卡23)进行控制;SSD控制器(图2中未示出)也是一个芯片,如现场可编程
门阵列(Field-ProgrammableGateArray,简称:FPGA)和专用集成电路
(ApplicationSpecificIntegratedCircuit,简称:ASIC)等,通过对SSD控制器进行编
程来完成接收主机的读写请求,并对SSD中的闪存芯片(进行各种访问及控制。
SSD控制器对应的芯片可以与各个闪存都设置在一个印刷电路板
(PrintedCircuitBoard,简称:PCB)上,通过PCB走线相连,最后呈现的形式是一
个硬盘盒,即图2所示的SSD硬盘盒24;或者,也可以将闪存芯片和SSD控制器
做成一个扩展卡,通过总线和接口标准(PeripheralComponentInterfaceExpress,简称:
PCIe)接口25与底板21相连。
图3为本发明闪存磨损优化方法实施例一的流程示意图。本发明实施例提供一种磨
损优化方法,该方法可以由SSD控制器执行,该SSD控制器可以为一芯片,例如,
FPGA或ASIC。如图3所示,该方法包括:
S301、当接收到写操作时,获取该写操作对应的预保存数据的保存时间。
在计算机中,不同的类型的数据有不同的保存时间。其中,不同数据所对应的保存
时间的示例如图4所示。参见图4,其中,横轴表示的是数据保存时间,单位为秒;
纵轴表示的是累积百分比。可以看到,Iozone和Proxy两个数据类型中,90%以上
的数据需要的保存时间都不超过256秒;且除Postmark之外的其他数据中50%以
上的数据的保存时间都不超过128秒。因此,本发明实施例结合数据对保存时间的
不同需求,以及闪存的特性,实现闪存寿命的延长。
具体地,当SSD控制器接收到主机发送的写操作时,获取该写操作将要写入闪存
的数据(即预保存数据)的保存时间,以便根据该保存时间执行S302;或,根据该保
存时间,确定闪存中已保存数据的及时更新,保证存储数据的有效性。
S302、在预设的保存时间与编程操作的对应关系中,若匹配到与上述保存时间对
应的编程操作,则采用该与所述保存时间对应的编程操作,存储预保存数据,其中,
预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅之间
的对应关系,且该对应关系满足不影响闪存的整体写操作性能。
通常情况下,保存时间较短的数据称为热数据,保存时间较长的数据称为冷数据。
其中,存在多种判断标准来确定某一数据是热数据,还是冷数据。例如,判断标准
为:在一设定时间内,若数据被访问的频率大于或等于预设频率,则确定该数据为
热数据;否则,确定该数据为冷数据。这里仅为举例说明,并不限定热数据和冷数
据的实际判断标准,也可以通过其它方式判断,这里不再一一列举。
由于热数据的被访问频率较大,热数据可能面临反复的擦写;又由于擦写电压的大
小决定对闪存磨损的大小,因此,在预设的保存时间与编程操作的对应关系中,采
用小于常规编程电压的电压对热数据进行编程操作,借此减少磨损。同理,由于热
数据的被访问频率较小,采用常规编程电压对冷数据进行编程操作。在这里,常规
编程电压是指现有技术中对闪存进行读写所采用的电压。
其中,预设的保存时间与编程操作的对应关系的示例可以如表1所示;该对应关系
满足不影响闪存的整体写操作性能是指在确定预保存数据的保存时间之后,在对应
关系中找到与该保存时间对应设置的临界电压阈值和脉冲步幅,采用该临界电压阈
值和脉冲步幅,将预保存数据写入闪存的过程中的写速度,相较于现有技术中将该
预保存数据写入闪存的写速度,二者相同,或采用本发明实施例的写速度优于现有
技术的写速度。
表1
本发明实施例基于不同类型的数据具有不同的保存时间需求,通过获取预保存数据
的保存时间,并根据该保存时间在预设的保存时间与编程操作的对应关系中,选取
不同的编程操作,针对不同的数据进行不同类型的编程操作,从而实现在不影响闪
存的整体写操作性能的前提下,降低对闪存的磨损,延长闪存的使用寿命。
在上述实施例中,S301可以包括:根据预保存数据所对应的失效队列,确定其保
存时间,该失效队列用于记录每一闪存块中所存储数据的失效时间。可选地,上述
根据预保存数据所对应的失效队列,确定其保存时间,具体细化为:根据预存保存
数据所对应的失效队列,获得上述写操作要写入数据的闪存块中所存储数据的失效
时间;根据该写操作要写入数据的闪存块中所存储数据的失效时间和该写操作写入
的时间,确定该写操作的保存时间,并更新该失效队列中所述闪存块中所存储数据
的失效时间。
在闪存中,读操作和写操作都以闪存页为执行单位,擦除操作以闪存块为执行单位。
其中,一个闪存块可以包括多个闪存页。通常情况下,在写操作要写入预保存数据
的闪存块中已存储有其它数据,该其它数据与预保存数据的保存时间相同,因此,
与该保存时间对应的失效队列已经建立,且该失效队列中记录该闪存块中存储数据
的失效时间,该失效时间为存储数据写入的时间与其保存时间的加和;当前写操作
是对该闪存块的进一步写入,为一更新操作,因此,当前写操作对应的保存时间为
其写入预保存数据的时间减去上述闪存块中所存储数据的失效时间。另外,在更新
后的失效队列中,该闪存块中所存储数据的失效时间为写入预保存数据的时间与该
预保存数据的保存时间的加和。
上述为SSD控制器当前接收的写操作所对应的闪存块中已存储有其它数据的实施
例,补充说明的是,还存在SSD控制器当前接收的写操作所对应的闪存块中未存
储有数据的场景,以下进行详细说明。
作为SSD控制器当前接收的写操作所对应的闪存块中未存储有数据的实施例,若
写操作对应的闪存页中未写入数据,则上述获取该写操作对应的预保存数据的保存
时间可以包括:设置该写操作对应的预保存数据的保存时间为预设时间;在该保存
时间对应的失效队列中,添加该预保存数据及其失效时间,其中,该失效时间为所
述写操作的写入时间与所述保存时间的加和。该实施例中,预设时间可选的可以设
置为一较长时间间隔,这样,在对该闪存块进行下一次更新或刷新时,即可修改其
保存时间和失效时间。
需要说明的是,需将所有同种磨损程度的写操作对应的数据,写入到同一个闪存块
中,而每次写操作的操作单元为闪存页,即一次写操作对应某闪存块中的一些闪存
页。
在上述实施例中,所述采用与所述保存时间对应的编程操作,存储预保存数据可以
包括:确定写操作对应的闪存块;在该闪存块内,采用脉冲步幅,将闪存中的FG
充电至临界电压阈值,该临界电压阈值的个数为至少一个;及,记录该写操作与闪
存块的映射关系。
具体地,以MLC为例进行说明。在MLC中,未写入数据的存储元的状态为“11”,
对该存储元写入数据,写操作是通过步进式的脉冲步幅来实现的。首先,采用脉冲
步幅对该存储元所在的闪存页充电至Vp(0),获得状态“01”,若该闪
存页中某些存储元的目标状态为“01”,则不对其进行继续充电,否则,采用脉冲步
幅对存储元所在的闪存页充电至Vp(1),获得状态“10”,以此类推,
获得状态“00”。这里,Vp(0)、Vp(1)、Vp(2)
和Vp(3)为临界电压阈值。值得注意的是,对于可以表示多种存储状
态的存储元,需要有多种临界电压阈值分别表示不同存储状态。
在上述实施例的基础上,所述获取预保存数据的保存时间之前,磨损优化方法还可
以包括:基于闪存操作特征及错误源特征,构建错误模型,其中,该错误源特征表
征引起闪存中错误的来源;根据错误模型,建立并存储预设的保存时间与编程操作
的对应关系。
闪存中存在一错误校验机制(Errorcheckingmechanism,简称:ECC),该错误校验机
制用于保证闪存在一定错误率范围内的可靠性,这个错误率是各种原因导致的错误
率的和。因此,如果保存时间导致的错误率降低,编程电压引起的错误率就可以更
大一点,反之亦然。所以保存时间与编程操作之间的关系可以通过闪存错误模型进
行关联,以平衡由于保存时间和编程操作导致的闪存错误。
进一步地,所述获取预保存数据的保存时间之后,磨损优化方法还可以包括:根据
前一次数据更新时间间隔,预测所述预保存数据的失效时间范围;若确定所述保存
时间在所述失效时间范围内,则执行所述在预设的保存时间与编程操作的对应关系
中,匹配与所述保存时间对应的编程操作;若确定所述保存时间未在所述失效时间
范围内,则刷新所述写操作要写入数据的闪存块。
可选地,所述采用所述与所述保存时间对应的编程操作,存储所述预保存数据之后,
磨损优化方法还可以包括:到达周期性查询时间之后,从所述失效队列的头部开始,
查询所述失效队列,判断是否需要刷新所述闪存中存储的数据;若确定需要刷新所
述闪存中存储的数据,则将刷新后的数据根据新的失效时间添加到另一失效队列,
其中,所述失效队列与保存时间对应设置,所述失效队列的个数为多个;否则,等
待下一次周期性查询。
其中,判断是否需要刷新所述闪存中存储的数据可以有多种途径,例如,通过以下
途径进行判断:若确定所述失效队列中存储的数据达到失效时间,则进行刷新操作,
且所述刷新操作中采取的编程操作相较于所述写操作对应的编程操作的磨损要大。
另外,该场景下,所述将刷新后的数据根据新的失效时间添加到另一失效队列可以
包括:将执行所述刷新操作后的数据添加到所述另一个失效队列,该另一失效队列
中各数据的保存时间大于所述失效队列中各数据的保存时间。
需要说明的是,本发明实施例主要用于改善闪存中由于热数据的擦写所导致的磨损,
因为热数据的更新及刷新是闪存磨损的主要来源。
本发明实施例结合保存时间的需求确定编程操作,单次编程操作中的闪存磨损;且
基于失效时间进行闪存中已存储数据的刷新,减少刷新次数,从而进一步降低闪存
磨损,延长闪存寿命。
图5为本发明SSD控制器实施例一的结构示意图。本发明实施例的SSD控制器可
以为一芯片,例如,FPGA或ASIC。如图5所示,该SSD控制器50包括:接收模
块51、写操作选择模块52和访问引擎53。
其中,接收模块51用于当接收到写操作时,触发写操作选择模块52;写操作选择
模块52与接收模块51连接,用于获取写操作对应的预保存数据的保存时间;及在
预设的保存时间与编程操作的对应关系中,匹配与保存时间对应的编程操作;若匹
配到与保存时间对应的编程操作,则触发访问引擎53,其中,预设的保存时间与
编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅之间的对应关系,且该
对应关系满足不影响闪存的整体写操作性能;访问引擎53与写操作选择模块52连
接,用于采用与保存时间对应的编程操作,存储预保存数据。
常规SSD控制器包括主机接口54、检错/纠错模块(图5中未示出)和收发模块(例如,
本实施例中的接收模块51)几个部分,通过主机接口54接收主机(图5中未示出)下
发的请求及信息,通过闪存接口55与闪存(图5中未示出)连接,对闪存进行控制。
本发明实施例在常规SSD控制器的基础上进行了改进,新增写操作选择模块52和
访问引擎53,在此基础上实施方案,执行如图3所示的闪存磨损优化方法实施例
的技术方案,其实现原理和技术效果类似,此处不再赘述。
在上述实施例中,写操作选择模块52保存有读操作、写操作和擦除操作等不同类
型的指令;访问引擎53用来向闪存提交不同类型的读操作、写操作和擦除操作。
一种实现方式中,写操作选择模块52可以具体用于:根据预保存数据所对应的失
效队列,确定其保存时间,该失效队列用于记录每一闪存块中所存储数据的失效时
间。
可选地,写操作选择模块52可进一步用于:根据预存保存数据所对应的失效队列,
获得写操作要写入数据的闪存块中所存储数据的失效时间;根据写操作要写入数据
的闪存块中所存储数据的失效时间和写操作写入的时间,确定写操作的保存时间,
并更新对应失效队列中闪存块中所存储数据的失效时间。
另一种实现方式中,若写操作对应的闪存页中未写入数据,则写操作选择模块52
可具体用于:设置写操作对应的预保存数据的保存时间为预设时间;并触发访问引
擎53在保存时间对应的失效队列中,添加预保存数据及其失效时间,其中,该失
效时间为写操作的写入时间与保存时间的加和。
图6为本发明SSD控制器实施例二的结构示意图。如图6所示,本发明实施例在
如图5所示实施例的基础上,进一步地,SSD控制器60还可以包括:与上述各模
块连接的写操作与闪存块映射模块61,其中,写操作与闪存块映射模块61用于根
据接收模块51接收的写操作,确定写操作对应的闪存块;访问引擎53可具体用于:
在写操作与闪存块映射模块61确定的闪存块内,采用脉冲步幅,将闪存中的FG
充电至临界电压阈值,该临界电压阈值的个数为至少一个,其中,临界电压阈值是
由写操作选择模块52确定的;并记录写操作与闪存块的映射关系至写操作与闪存
块映射模块61。该实施例中,写操作与闪存块映射模块61用来维护写操作类型和
闪存块之间的映射关系。
在上述基础上,写操作选择模块52还可以用于:基于闪存操作特征及错误源特征,
构建错误模型,其中,错误源特征表征引起闪存中错误的来源;根据错误模型,建
立并存储预设的保存时间与编程操作的对应关系。
图7为本发明SSD控制器实施例三的结构示意图。如图7所示,在图6所示实施
例的基础上,SSD控制器70还可以包括:与访问引擎53及写操作与闪存块映射模
块61连接的智能刷新模块71。
其中,智能刷新模块71用于根据前一次数据更新时间间隔,预测预保存数据的失
效时间;若确定保存时间在失效时间内,则触发写操作选择模块52执行在预设的
保存时间与编程操作的对应关系中,匹配与保存时间对应的编程操作;若确定保存
时间未在失效时间内,则刷新写操作要写入数据的闪存块。该实施例中,智能刷新
模块用来执行基于数据失效时间的刷新方案,从而保证闪存中所存储数据的有效性。
补充说明的是,在如图5所示的SSD控制器的基础上,则智能刷新模块与写操作
选择模块52和访问引擎53连接,本发明实施例不局限于智能刷新模块与其它模块
的连接方式,只要能满足其功能即可。
进一步地,智能刷新模块71还可以用于:到达周期性查询时间之后,从失效队列
的头部开始,查询失效队列,判断是否需要刷新闪存中存储的数据;若确定需要刷
新闪存中存储的数据,则将刷新后的数据根据新的失效时间添加到另一失效队列,
其中,失效队列与保存时间对应设置,失效队列的个数为多个;否则,等待下一次
周期性查询。
可选地,智能刷新模块71可进一步用于:若确定失效队列中存储的数据达到失效
时间,则进行刷新操作,且刷新操作中采取的编程操作相较于写操作对应的编程操
作的磨损要大;则智能刷新模块71在执行将刷新后的数据根据新的失效时间添加
到另一失效队列时,具体用于:将执行刷新操作后的数据添加到另一个失效队列,
该另一失效队列中各数据的保存时间大于失效队列中各数据的保存时间。本发明实
施例的作用在于:若某一数据写入闪存时的保存时间较短,可采用本实施例中的技
术方案,将该数据的保存时间延长,从而减少对该数据进行刷新的次数。
图8为本发明SSD控制器实施例四的结构示意图。如图8所示,SSD控制器80包
括:接收器81和与接收器81连接的处理器82。
其中,接收器81用于当接收到写操作时,触发处理器82;处理器82用于获取写
操作对应的预保存数据的保存时间;及,在预设的保存时间与编程操作的对应关系
中,若匹配到与保存时间对应的编程操作,则采用与所述保存时间对应的编程操作,
存储预保存数据,其中,预设的保存时间与编程操作的对应关系为保存时间、临界
电压阈值及脉冲步幅之间的对应关系,且该对应关系满足不影响闪存的整体写操作
性能。
本实施例的SSD控制器,可以用于执行图3所示方法实施例的技术方案,其实现
原理和技术效果类似,此处不再赘述。
在上述基础上,处理器82可具体用于:根据预保存数据所对应的失效队列,确定
其保存时间,该失效队列用于记录每一闪存块中所存储数据的失效时间。可选地,
处理器82可进一步用于:根据预存保存数据所对应的失效队列,获得写操作要写
入数据的闪存块中所存储数据的失效时间;及,根据写操作要写入数据的闪存块中
所存储数据的失效时间和写操作写入的时间,确定写操作的保存时间,并更新对应
失效队列中闪存块中所存储数据的失效时间。
可选地,若写操作对应的闪存页中未写入数据,则处理器82可具体用于:设置写
操作对应的预保存数据的保存时间为预设时间;在保存时间对应的失效队列中,添
加预保存数据及其失效时间,其中,该失效时间为写操作的写入时间与保存时间的
加和。
进一步地,处理器82可具体用于:确定写操作对应的闪存块;在闪存块内,采用
脉冲步幅,将闪存中的FG充电至临界电压阈值,该临界电压阈值的个数为至少一
个;记录写操作与闪存块的映射关系。
在上述实施例的基础上,处理器82还可以用于:在获取预保存数据的保存时间之
前,基于闪存操作特征及错误源特征,构建错误模型,其中,错误源特征表征引起
闪存中错误的来源;根据错误模型,建立并存储预设的保存时间与编程操作的对应
关系。
在上述实施例的基础上,处理器82还可以用于:在获取预保存数据的保存时间之
后,根据前一次数据更新时间间隔,预测预保存数据的失效时间;若确定保存时间
在失效时间内,则执行在预设的保存时间与编程操作的对应关系中,匹配与保存时
间对应的编程操作;若确定保存时间未在失效时间内,则刷新写操作要写入数据的
闪存块。
进一步地,处理器82还可以用于:在存储预保存数据之后,到达周期性查询时间
之后,从失效队列的头部开始,查询失效队列,判断是否需要刷新闪存中存储的数
据;若确定需要刷新闪存中存储的数据,则将刷新后的数据根据新的失效时间添加
到另一失效队列,其中,失效队列与保存时间对应设置,失效队列的个数为多个;
否则,等待下一次周期性查询。
可选地,处理器82可以进一步用于:若确定失效队列中存储的数据达到失效时间,
则进行刷新操作,且该刷新操作中采取的编程操作相较于写操作对应的编程操作的
磨损要大;则将刷新后的数据根据新的失效时间添加到另一失效队列可以包括:将
执行刷新操作后的数据添加到另一个失效队列,另一失效队列中各数据的保存时间
大于失效队列中各数据的保存时间。
图9为本发明SSD控制器实施例五的结构示意图。如图9所示,SSD控制器90包
括:存储器91和与存储器91连接的处理器92。其中,存储器91存储执行指令,
当接收到写操作时,处理器92与存储器91之间通信,处理器92执行执行指令使
得SSD控制器90执行上述任一方法实施例中的技术方案。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过
程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。
该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:
ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽
管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:
其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部
技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本
发明各实施例技术方案的范围。
2024年10月23日发(作者:浦鸿云)
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(21)申请号 CN2.0
(22)申请日 2014.06.06
(71)申请人 华为技术有限公司
地址 518129 广东省深圳市龙岗区坂田华为总部办公楼
(72)发明人 石亮 沙行勉 朱冠宇 王元钢 诸葛晴凤
(74)专利代理机构 北京同立钧成知识产权代理有限公司
代理人 刘芳
(51)
G06F12/06
权利要求说明书 说明书 幅图
(10)申请公布号 CN 105138472 A
(43)申请公布日 2015.12.09
(54)发明名称
闪存磨损优化方法及设备
(57)摘要
本发明实施例提供一种闪存磨损优
化方法及设备。该闪存磨损优化方法包
括:当接收到写操作时,获取所述写操作
对应的预保存数据的保存时间;在预设的
保存时间与编程操作的对应关系中,若匹
配到与所述保存时间对应的编程操作,则
采用所述与所述保存时间对应的编程操
作,存储所述预保存数据,其中,所述预
设的保存时间与编程操作的对应关系为保
存时间、临界电压阈值及脉冲步幅之间的
对应关系,且该对应关系满足不影响闪存
的整体写操作性能。本发明实施例基于不
同类型的数据具有不同的保存时间需求,
选取不同的编程操作,从而实现在不影响
闪存的整体写操作性能的前提下,降低对
闪存的磨损,延长闪存的使用寿命。
法律状态
法律状态公告日
法律状态信息
专利权的转移IPC(主分
类):G06F12/06专利
号:ZL2登记生效
日:20220825变更事项:专利权人
变更前权利人:常州弘量电子科技
2022-09-06
有限公司变更后权利人:常州天宁
通信技术产业园有限公司变更事
项:地址变更前权利人:213000 江
苏省常州市天宁区青洋北路11号
变更后权利人:213000 江苏省常
州市天宁区河海东路9号
专利权的转移IPC(主分
类):G06F12/06专利
2023-01-17
号:ZL2登记生效
日:20230105变更事项:专利权人
变更前权利人:常州天宁通信技术
法律状态
专利申请权、专利权
的转移
专利申请权、专利权
的转移
产业园有限公司变更后权利人:常
州横塘科技产业有限公司变更事
项:地址变更前权利人:213000 江
苏省常州市天宁区河海东路9号
变更后权利人:213000 江苏省常
州市天宁区河海东路9号
权 利 要 求 说 明 书
1.一种闪存磨损优化方法,其特征在于,包括:
当接收到写操作时,获取所述写操作对应的预保存数据的保存时间;
在预设的保存时间与编程操作的对应关系中,若匹配到与所述保存时间对应的编程
操作,则采用所述与所述保存时间对应的编程操作,存储所述预保存数据,其中,
所述预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅
之间的对应关系,且该对应关系满足不影响闪存的整体写操作性能。
2.根据权利要求1所述的方法,其特征在于,所述获取所述写操作对应的预保存数
据的保存时间,包括:
根据所述预保存数据所对应的失效队列,确定其保存时间,所述失效队列用于记录
每一闪存块中所存储数据的失效时间。
3.根据权利要求2所述的方法,其特征在于,所述根据所述预保存数据所对应的失
效队列,确定其保存时间,包括:
根据所述预存保存数据所对应的失效队列,获得所述写操作要写入数据的闪存块中
所存储数据的失效时间;
根据所述写操作要写入数据的闪存块中所存储数据的失效时间和所述写操作写入的
时间,确定所述写操作的保存时间,并更新对应失效队列中所述闪存块中所存储数
据的失效时间。
4.根据权利要求1所述的方法,其特征在于,若所述写操作对应的闪存页中未写入
数据,则所述获取所述写操作对应的预保存数据的保存时间,包括:
设置所述写操作对应的预保存数据的保存时间为预设时间;
在所述保存时间对应的失效队列中,添加所述预保存数据及其失效时间,其中,该
失效时间为所述写操作的写入时间与所述保存时间的加和。
述保存时间对应的编程操作,存储所述预保存数据,包括:
确定所述写操作对应的闪存块;
在所述闪存块内,采用所述脉冲步幅,将闪存中的浮置栅极FG充电至所述临界电
压阈值,所述临界电压阈值的个数为至少一个;
记录所述写操作与所述闪存块的映射关系。
据的保存时间之后,所述方法还包括:
根据前一次数据更新时间间隔,预测所述预保存数据的失效时间;
若确定所述保存时间在所述失效时间内,则执行所述在预设的保存时间与编程操作
的对应关系中,匹配与所述保存时间对应的编程操作;
若确定所述保存时间未在所述失效时间内,则刷新所述写操作要写入数据的闪存块。
7.一种固态硬盘SSD控制器,其特征在于,包括:接收模块、写操作选择模块和
访问引擎;其中,
所述接收模块,用于当接收到写操作时,触发所述写操作选择模块;
所述写操作选择模块与所述接收模块连接,用于获取所述写操作对应的预保存数据
的保存时间;及在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间
对应的编程操作;若匹配到与所述保存时间对应的编程操作,则触发所述访问引擎,
其中,所述预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉
冲步幅之间的对应关系,且该对应关系满足不影响闪存的整体写操作性能;
所述访问引擎与所述写操作选择模块连接,用于采用所述与所述保存时间对应的编
程操作,存储所述预保存数据。
8.根据权利要求7所述的SSD控制器,其特征在于,所述写操作选择模块具体用于:
根据所述预保存数据所对应的失效队列,确定其保存时间,所述失效队列用于记录
每一闪存块中所存储数据的失效时间。
9.根据权利要求8所述的SSD控制器,其特征在于,所述写操作选择模块进一步用
于:
根据所述预存保存数据所对应的失效队列,获得所述写操作要写入数据的闪存块中
所存储数据的失效时间;
根据所述写操作要写入数据的闪存块中所存储数据的失效时间和所述写操作写入的
时间,确定所述写操作的保存时间,并更新对应失效队列中所述闪存块中所存储数
据的失效时间。
10.根据权利要求7所述的SSD控制器,其特征在于,若所述写操作对应的闪存页
中未写入数据,则所述写操作选择模块具体用于:设置所述写操作对应的预保存数
据的保存时间为预设时间;并触发所述访问引擎在所述保存时间对应的失效队列中,
添加所述预保存数据及其失效时间,其中,该失效时间为所述写操作的写入时间与
所述保存时间的加和。
控制器还包括:与各所述模块连接的写操作与闪存块映射模块,其中,
所述写操作与闪存块映射模块,用于根据所述接收模块接收的所述写操作,确定所
述写操作对应的闪存块;
所述访问引擎具体用于:在所述写操作与闪存块映射模块确定的所述闪存块内,采
用所述脉冲步幅,将闪存中的浮置栅极FG充电至所述临界电压阈值,所述临界电
压阈值的个数为至少一个,其中,所述临界电压阈值是由所述写操作选择模块确定
的;并记录所述写操作与所述闪存块的映射关系至所述写操作与闪存块映射模块。
控制器还包括:与所述访问引擎连接的智能刷新模块;
所述智能刷新模块,用于根据前一次数据更新时间间隔,预测所述预保存数据的失
效时间;若确定所述保存时间在所述失效时间内,则触发所述写操作选择模块执行
所述在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间对应的编程
操作;若确定所述保存时间未在所述失效时间内,则刷新所述写操作要写入数据的
闪存块。
13.一种固态硬盘SSD控制器,其特征在于,包括:存储器和与所述存储器连接的
处理器,其中,所述存储器存储执行指令,当接收到写操作时,所述处理器与所述
存储器之间通信,所述处理器执行所述执行指令使得所述SSD控制器执行如权利
要求1-6任一项所述的方法。
说 明 书
技术领域
本发明实施例涉及通信技术,尤其涉及一种闪存磨损优化方法及设备。
背景技术
由于闪存具有高性能、低延迟、低功耗、环境适应性强等优点,同时成本也在不断
降低,因此得到越来越普遍的应用。闪存存储元利用浮置栅极(FloatingGate,简称:
FG)存放数据,这些数据用FG中保存的电子数量来表示。对于单级存储元
(SingleLevelCell,简称:SLC),充电的FG代表“0”,未充电的FG代表“1”。对多
级存储元,例如,两级存储元(MultipleLevelCell,简称:MLC)而言,不同的充电
级别(即FG中电子数量不同)代表不同的状态,例如图1所示,4个充电级别分别
代表“11”、“10”、“01”和“00”四种状态。
一般而言,闪存对应三种操作,分别是读操作、写操作和擦除操作。其中,写操作
是通过步进式脉冲编程的方式来实现的。如图1所示,步进式脉冲编程采用大小为
ΔVpp的脉冲步幅将FG充电至不同阈值,即Vp(0)、
Vp(1)、Vp(2)和Vp(3)。擦除操作则是通过
使用一个时间较长的高电压进行放电操作,此电压与图1中的最大阈值电压相关。
进行写操作的电压称为编程电压,即图1中所示的ΔVpp;进行擦除
操作的电压称为擦除电压,通常这两种电压值都较大,会对FG造成磨损,且电压
越大,磨损越大,因此,通过降低擦写操作(擦除操作和写操作)的电压可实现磨损
的减少。
在现有技术中,通过降低每次擦写操作的电压,使得每次擦写操作对闪存造成的磨
损减少。然而,由于每次擦写操作的电压降低,导致单位时间能够写入存储元的电
子数量减少,从而每一次擦写操作需要的时间增加(写速度降低),进而导致闪存的
整体写操作性能降低。
发明内容
本发明实施提供一种闪存磨损优化方法及设备,以实现在不影响闪存的整体写操作
性能的前提下,降低闪存磨损,延长闪存的使用寿命。
第一方面,本发明实施例提供一种闪存磨损优化方法,包括:
当接收到写操作时,获取所述写操作对应的预保存数据的保存时间;
在预设的保存时间与编程操作的对应关系中,若匹配到与所述保存时间对应的编程
操作,则采用所述与所述保存时间对应的编程操作,存储所述预保存数据,其中,
所述预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅
之间的对应关系,且该对应关系满足不影响闪存的整体写操作性能。
在第一方面的第一种可能的实现方式中,所述获取所述写操作对应的预保存数据的
保存时间,包括:
根据所述预保存数据所对应的失效队列,确定其保存时间,所述失效队列用于记录
每一闪存块中所存储数据的失效时间。
根据第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,
所述根据所述预保存数据所对应的失效队列,确定其保存时间,包括:
根据所述预存保存数据所对应的失效队列,获得所述写操作要写入数据的闪存块中
所存储数据的失效时间;
根据所述写操作要写入数据的闪存块中所存储数据的失效时间和所述写操作写入的
时间,确定所述写操作的保存时间,并更新对应失效队列中所述闪存块中所存储数
据的失效时间。
在第一方面的第三种可能的实现方式中,若所述写操作对应的闪存页中未写入数据,
则所述获取所述写操作对应的预保存数据的保存时间,包括:
设置所述写操作对应的预保存数据的保存时间为预设时间;
在所述保存时间对应的失效队列中,添加所述预保存数据及其失效时间,其中,该
失效时间为所述写操作的写入时间与所述保存时间的加和。
根据第一方面、第一方面的第一种至第三种可能的实现方式中任意一种,在第一方
面的第四种可能的实现方式中,所述采用所述与所述保存时间对应的编程操作,存
储所述预保存数据,包括:
确定所述写操作对应的闪存块;
在所述闪存块内,采用所述脉冲步幅,将闪存中的浮置栅极FG充电至所述临界电
压阈值,所述临界电压阈值的个数为至少一个;
记录所述写操作与所述闪存块的映射关系。
根据第一方面、第一方面的第一种至第四种可能的实现方式中任意一种,在第一方
面的第五种可能的实现方式中,所述获取预保存数据的保存时间之后,所述方法还
包括:
根据前一次数据更新时间间隔,预测所述预保存数据的失效时间;
若确定所述保存时间在所述失效时间内,则执行所述在预设的保存时间与编程操作
的对应关系中,匹配与所述保存时间对应的编程操作;
若确定所述保存时间未在所述失效时间内,则刷新所述写操作要写入数据的闪存块。
第二方面,本发明实施例提供一种固态硬盘SSD控制器,包括:接收模块、写操
作选择模块和访问引擎;其中,
所述接收模块,用于当接收到写操作时,触发所述写操作选择模块;
所述写操作选择模块与所述接收模块连接,用于获取所述写操作对应的预保存数据
的保存时间;及在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间
对应的编程操作;若匹配到与所述保存时间对应的编程操作,则触发所述访问引擎,
其中,所述预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉
冲步幅之间的对应关系,且该对应关系满足不影响闪存的整体写操作性能;
所述访问引擎与所述写操作选择模块连接,用于采用所述与所述保存时间对应的编
程操作,存储所述预保存数据。
在第二方面的第一种可能的实现方式中,所述写操作选择模块具体用于:
根据所述预保存数据所对应的失效队列,确定其保存时间,所述失效队列用于记录
每一闪存块中所存储数据的失效时间。
根据第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,
所述写操作选择模块进一步用于:
根据所述预存保存数据所对应的失效队列,获得所述写操作要写入数据的闪存块中
所存储数据的失效时间;
根据所述写操作要写入数据的闪存块中所存储数据的失效时间和所述写操作写入的
时间,确定所述写操作的保存时间,并更新对应失效队列中所述闪存块中所存储数
据的失效时间。
在第二方面的第三种可能的实现方式中,若所述写操作对应的闪存页中未写入数据,
则所述写操作选择模块具体用于:设置所述写操作对应的预保存数据的保存时间为
预设时间;并触发所述访问引擎在所述保存时间对应的失效队列中,添加所述预保
存数据及其失效时间,其中,该失效时间为所述写操作的写入时间与所述保存时间
的加和。
根据第二方面、第二方面的第一种至第三种可能的实现方式中任意一种,在第二方
面的第四种可能的实现方式中,所述SSD控制器还包括:与各所述模块连接的写
操作与闪存块映射模块,其中,
所述写操作与闪存块映射模块,用于根据所述接收模块接收的所述写操作,确定所
述写操作对应的闪存块;
所述访问引擎具体用于:在所述写操作与闪存块映射模块确定的所述闪存块内,采
用所述脉冲步幅,将闪存中的浮置栅极FG充电至所述临界电压阈值,所述临界电
压阈值的个数为至少一个,其中,所述临界电压阈值是由所述写操作选择模块确定
的;并记录所述写操作与所述闪存块的映射关系至所述写操作与闪存块映射模块。
根据第二方面、第二方面的第一种至第四种可能的实现方式中任意一种,在第二方
面的第五种可能的实现方式中,所述SSD控制器还包括:与所述访问引擎连接的
智能刷新模块;
所述智能刷新模块,用于根据前一次数据更新时间间隔,预测所述预保存数据的失
效时间;若确定所述保存时间在所述失效时间内,则触发所述写操作选择模块执行
所述在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间对应的编程
操作;若确定所述保存时间未在所述失效时间内,则刷新所述写操作要写入数据的
闪存块。
第三方面,本发明实施例提供一种固态硬盘SSD控制器,包括:存储器和与所述
存储器连接的处理器,其中,所述存储器存储执行指令,当接收到写操作时,所述
处理器与所述存储器之间通信,所述处理器执行所述执行指令使得所述SSD控制
器执行如第一方面任一项所述的方法。
本发明实施例基于不同类型的数据具有不同的保存时间需求,通过获取预保存数据
的保存时间,并根据该保存时间在预设的保存时间与编程操作的对应关系中,选取
不同的编程操作,针对不同的数据进行不同类型的编程操作,从而实现在不影响闪
存的整体写操作性能的前提下,降低对闪存的磨损,延长闪存的使用寿命。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有
技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是
本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前
提下,还可以根据这些附图获得其他的附图。
图1为现有技术中两级存储元特征示意图;
图2为本发明应用场景示例图;
图3为本发明闪存磨损优化方法实施例一的流程示意图;
图4为不同类型数据与其保存时间的示例图;
图5为本发明SSD控制器实施例一的结构示意图;
图6为本发明SSD控制器实施例二的结构示意图;
图7为本发明SSD控制器实施例三的结构示意图;
图8为本发明SSD控制器实施例四的结构示意图;
图9为本发明SSD控制器实施例五的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中
的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实
施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领
域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本
发明保护的范围。
作为目前电子消费产品的主力军,在闪存的发展路线上,闪存包括两大发展方向:
更小尺寸和更高密度。其中,闪存的密度可以通过增加单个存储元(Cell)容纳的比
特数量得到提高,例如从早期的SLC到MLC,不断发展到最新的三级存储元
(TripleLevelCell,简称:TLC)和四级存储元(QuadLevelCell,简称:QLC)。而闪存
的尺寸则随着半导体集成工艺的发展,目前16nm的闪存已见诸市场。
本发明实施例主要应用于包括主机、多个通道的闪存制成的固态硬盘
(SolidStateDisk,简称:SSD)以及SSD控制器的场景。其中,主机通过SSD控制
器读写闪存中的数据。例如,如图2所示,单机或服务器机框20内包含底板21,
底板21上安装有南桥211、中央处理器(CentralProcessingUnit,简称:CPU)212和
内存213等芯片,实现主机的功能,用于对其他扩展卡(例如图2所示的扩展卡22
和扩展卡23)进行控制;SSD控制器(图2中未示出)也是一个芯片,如现场可编程
门阵列(Field-ProgrammableGateArray,简称:FPGA)和专用集成电路
(ApplicationSpecificIntegratedCircuit,简称:ASIC)等,通过对SSD控制器进行编
程来完成接收主机的读写请求,并对SSD中的闪存芯片(进行各种访问及控制。
SSD控制器对应的芯片可以与各个闪存都设置在一个印刷电路板
(PrintedCircuitBoard,简称:PCB)上,通过PCB走线相连,最后呈现的形式是一
个硬盘盒,即图2所示的SSD硬盘盒24;或者,也可以将闪存芯片和SSD控制器
做成一个扩展卡,通过总线和接口标准(PeripheralComponentInterfaceExpress,简称:
PCIe)接口25与底板21相连。
图3为本发明闪存磨损优化方法实施例一的流程示意图。本发明实施例提供一种磨
损优化方法,该方法可以由SSD控制器执行,该SSD控制器可以为一芯片,例如,
FPGA或ASIC。如图3所示,该方法包括:
S301、当接收到写操作时,获取该写操作对应的预保存数据的保存时间。
在计算机中,不同的类型的数据有不同的保存时间。其中,不同数据所对应的保存
时间的示例如图4所示。参见图4,其中,横轴表示的是数据保存时间,单位为秒;
纵轴表示的是累积百分比。可以看到,Iozone和Proxy两个数据类型中,90%以上
的数据需要的保存时间都不超过256秒;且除Postmark之外的其他数据中50%以
上的数据的保存时间都不超过128秒。因此,本发明实施例结合数据对保存时间的
不同需求,以及闪存的特性,实现闪存寿命的延长。
具体地,当SSD控制器接收到主机发送的写操作时,获取该写操作将要写入闪存
的数据(即预保存数据)的保存时间,以便根据该保存时间执行S302;或,根据该保
存时间,确定闪存中已保存数据的及时更新,保证存储数据的有效性。
S302、在预设的保存时间与编程操作的对应关系中,若匹配到与上述保存时间对
应的编程操作,则采用该与所述保存时间对应的编程操作,存储预保存数据,其中,
预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅之间
的对应关系,且该对应关系满足不影响闪存的整体写操作性能。
通常情况下,保存时间较短的数据称为热数据,保存时间较长的数据称为冷数据。
其中,存在多种判断标准来确定某一数据是热数据,还是冷数据。例如,判断标准
为:在一设定时间内,若数据被访问的频率大于或等于预设频率,则确定该数据为
热数据;否则,确定该数据为冷数据。这里仅为举例说明,并不限定热数据和冷数
据的实际判断标准,也可以通过其它方式判断,这里不再一一列举。
由于热数据的被访问频率较大,热数据可能面临反复的擦写;又由于擦写电压的大
小决定对闪存磨损的大小,因此,在预设的保存时间与编程操作的对应关系中,采
用小于常规编程电压的电压对热数据进行编程操作,借此减少磨损。同理,由于热
数据的被访问频率较小,采用常规编程电压对冷数据进行编程操作。在这里,常规
编程电压是指现有技术中对闪存进行读写所采用的电压。
其中,预设的保存时间与编程操作的对应关系的示例可以如表1所示;该对应关系
满足不影响闪存的整体写操作性能是指在确定预保存数据的保存时间之后,在对应
关系中找到与该保存时间对应设置的临界电压阈值和脉冲步幅,采用该临界电压阈
值和脉冲步幅,将预保存数据写入闪存的过程中的写速度,相较于现有技术中将该
预保存数据写入闪存的写速度,二者相同,或采用本发明实施例的写速度优于现有
技术的写速度。
表1
本发明实施例基于不同类型的数据具有不同的保存时间需求,通过获取预保存数据
的保存时间,并根据该保存时间在预设的保存时间与编程操作的对应关系中,选取
不同的编程操作,针对不同的数据进行不同类型的编程操作,从而实现在不影响闪
存的整体写操作性能的前提下,降低对闪存的磨损,延长闪存的使用寿命。
在上述实施例中,S301可以包括:根据预保存数据所对应的失效队列,确定其保
存时间,该失效队列用于记录每一闪存块中所存储数据的失效时间。可选地,上述
根据预保存数据所对应的失效队列,确定其保存时间,具体细化为:根据预存保存
数据所对应的失效队列,获得上述写操作要写入数据的闪存块中所存储数据的失效
时间;根据该写操作要写入数据的闪存块中所存储数据的失效时间和该写操作写入
的时间,确定该写操作的保存时间,并更新该失效队列中所述闪存块中所存储数据
的失效时间。
在闪存中,读操作和写操作都以闪存页为执行单位,擦除操作以闪存块为执行单位。
其中,一个闪存块可以包括多个闪存页。通常情况下,在写操作要写入预保存数据
的闪存块中已存储有其它数据,该其它数据与预保存数据的保存时间相同,因此,
与该保存时间对应的失效队列已经建立,且该失效队列中记录该闪存块中存储数据
的失效时间,该失效时间为存储数据写入的时间与其保存时间的加和;当前写操作
是对该闪存块的进一步写入,为一更新操作,因此,当前写操作对应的保存时间为
其写入预保存数据的时间减去上述闪存块中所存储数据的失效时间。另外,在更新
后的失效队列中,该闪存块中所存储数据的失效时间为写入预保存数据的时间与该
预保存数据的保存时间的加和。
上述为SSD控制器当前接收的写操作所对应的闪存块中已存储有其它数据的实施
例,补充说明的是,还存在SSD控制器当前接收的写操作所对应的闪存块中未存
储有数据的场景,以下进行详细说明。
作为SSD控制器当前接收的写操作所对应的闪存块中未存储有数据的实施例,若
写操作对应的闪存页中未写入数据,则上述获取该写操作对应的预保存数据的保存
时间可以包括:设置该写操作对应的预保存数据的保存时间为预设时间;在该保存
时间对应的失效队列中,添加该预保存数据及其失效时间,其中,该失效时间为所
述写操作的写入时间与所述保存时间的加和。该实施例中,预设时间可选的可以设
置为一较长时间间隔,这样,在对该闪存块进行下一次更新或刷新时,即可修改其
保存时间和失效时间。
需要说明的是,需将所有同种磨损程度的写操作对应的数据,写入到同一个闪存块
中,而每次写操作的操作单元为闪存页,即一次写操作对应某闪存块中的一些闪存
页。
在上述实施例中,所述采用与所述保存时间对应的编程操作,存储预保存数据可以
包括:确定写操作对应的闪存块;在该闪存块内,采用脉冲步幅,将闪存中的FG
充电至临界电压阈值,该临界电压阈值的个数为至少一个;及,记录该写操作与闪
存块的映射关系。
具体地,以MLC为例进行说明。在MLC中,未写入数据的存储元的状态为“11”,
对该存储元写入数据,写操作是通过步进式的脉冲步幅来实现的。首先,采用脉冲
步幅对该存储元所在的闪存页充电至Vp(0),获得状态“01”,若该闪
存页中某些存储元的目标状态为“01”,则不对其进行继续充电,否则,采用脉冲步
幅对存储元所在的闪存页充电至Vp(1),获得状态“10”,以此类推,
获得状态“00”。这里,Vp(0)、Vp(1)、Vp(2)
和Vp(3)为临界电压阈值。值得注意的是,对于可以表示多种存储状
态的存储元,需要有多种临界电压阈值分别表示不同存储状态。
在上述实施例的基础上,所述获取预保存数据的保存时间之前,磨损优化方法还可
以包括:基于闪存操作特征及错误源特征,构建错误模型,其中,该错误源特征表
征引起闪存中错误的来源;根据错误模型,建立并存储预设的保存时间与编程操作
的对应关系。
闪存中存在一错误校验机制(Errorcheckingmechanism,简称:ECC),该错误校验机
制用于保证闪存在一定错误率范围内的可靠性,这个错误率是各种原因导致的错误
率的和。因此,如果保存时间导致的错误率降低,编程电压引起的错误率就可以更
大一点,反之亦然。所以保存时间与编程操作之间的关系可以通过闪存错误模型进
行关联,以平衡由于保存时间和编程操作导致的闪存错误。
进一步地,所述获取预保存数据的保存时间之后,磨损优化方法还可以包括:根据
前一次数据更新时间间隔,预测所述预保存数据的失效时间范围;若确定所述保存
时间在所述失效时间范围内,则执行所述在预设的保存时间与编程操作的对应关系
中,匹配与所述保存时间对应的编程操作;若确定所述保存时间未在所述失效时间
范围内,则刷新所述写操作要写入数据的闪存块。
可选地,所述采用所述与所述保存时间对应的编程操作,存储所述预保存数据之后,
磨损优化方法还可以包括:到达周期性查询时间之后,从所述失效队列的头部开始,
查询所述失效队列,判断是否需要刷新所述闪存中存储的数据;若确定需要刷新所
述闪存中存储的数据,则将刷新后的数据根据新的失效时间添加到另一失效队列,
其中,所述失效队列与保存时间对应设置,所述失效队列的个数为多个;否则,等
待下一次周期性查询。
其中,判断是否需要刷新所述闪存中存储的数据可以有多种途径,例如,通过以下
途径进行判断:若确定所述失效队列中存储的数据达到失效时间,则进行刷新操作,
且所述刷新操作中采取的编程操作相较于所述写操作对应的编程操作的磨损要大。
另外,该场景下,所述将刷新后的数据根据新的失效时间添加到另一失效队列可以
包括:将执行所述刷新操作后的数据添加到所述另一个失效队列,该另一失效队列
中各数据的保存时间大于所述失效队列中各数据的保存时间。
需要说明的是,本发明实施例主要用于改善闪存中由于热数据的擦写所导致的磨损,
因为热数据的更新及刷新是闪存磨损的主要来源。
本发明实施例结合保存时间的需求确定编程操作,单次编程操作中的闪存磨损;且
基于失效时间进行闪存中已存储数据的刷新,减少刷新次数,从而进一步降低闪存
磨损,延长闪存寿命。
图5为本发明SSD控制器实施例一的结构示意图。本发明实施例的SSD控制器可
以为一芯片,例如,FPGA或ASIC。如图5所示,该SSD控制器50包括:接收模
块51、写操作选择模块52和访问引擎53。
其中,接收模块51用于当接收到写操作时,触发写操作选择模块52;写操作选择
模块52与接收模块51连接,用于获取写操作对应的预保存数据的保存时间;及在
预设的保存时间与编程操作的对应关系中,匹配与保存时间对应的编程操作;若匹
配到与保存时间对应的编程操作,则触发访问引擎53,其中,预设的保存时间与
编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅之间的对应关系,且该
对应关系满足不影响闪存的整体写操作性能;访问引擎53与写操作选择模块52连
接,用于采用与保存时间对应的编程操作,存储预保存数据。
常规SSD控制器包括主机接口54、检错/纠错模块(图5中未示出)和收发模块(例如,
本实施例中的接收模块51)几个部分,通过主机接口54接收主机(图5中未示出)下
发的请求及信息,通过闪存接口55与闪存(图5中未示出)连接,对闪存进行控制。
本发明实施例在常规SSD控制器的基础上进行了改进,新增写操作选择模块52和
访问引擎53,在此基础上实施方案,执行如图3所示的闪存磨损优化方法实施例
的技术方案,其实现原理和技术效果类似,此处不再赘述。
在上述实施例中,写操作选择模块52保存有读操作、写操作和擦除操作等不同类
型的指令;访问引擎53用来向闪存提交不同类型的读操作、写操作和擦除操作。
一种实现方式中,写操作选择模块52可以具体用于:根据预保存数据所对应的失
效队列,确定其保存时间,该失效队列用于记录每一闪存块中所存储数据的失效时
间。
可选地,写操作选择模块52可进一步用于:根据预存保存数据所对应的失效队列,
获得写操作要写入数据的闪存块中所存储数据的失效时间;根据写操作要写入数据
的闪存块中所存储数据的失效时间和写操作写入的时间,确定写操作的保存时间,
并更新对应失效队列中闪存块中所存储数据的失效时间。
另一种实现方式中,若写操作对应的闪存页中未写入数据,则写操作选择模块52
可具体用于:设置写操作对应的预保存数据的保存时间为预设时间;并触发访问引
擎53在保存时间对应的失效队列中,添加预保存数据及其失效时间,其中,该失
效时间为写操作的写入时间与保存时间的加和。
图6为本发明SSD控制器实施例二的结构示意图。如图6所示,本发明实施例在
如图5所示实施例的基础上,进一步地,SSD控制器60还可以包括:与上述各模
块连接的写操作与闪存块映射模块61,其中,写操作与闪存块映射模块61用于根
据接收模块51接收的写操作,确定写操作对应的闪存块;访问引擎53可具体用于:
在写操作与闪存块映射模块61确定的闪存块内,采用脉冲步幅,将闪存中的FG
充电至临界电压阈值,该临界电压阈值的个数为至少一个,其中,临界电压阈值是
由写操作选择模块52确定的;并记录写操作与闪存块的映射关系至写操作与闪存
块映射模块61。该实施例中,写操作与闪存块映射模块61用来维护写操作类型和
闪存块之间的映射关系。
在上述基础上,写操作选择模块52还可以用于:基于闪存操作特征及错误源特征,
构建错误模型,其中,错误源特征表征引起闪存中错误的来源;根据错误模型,建
立并存储预设的保存时间与编程操作的对应关系。
图7为本发明SSD控制器实施例三的结构示意图。如图7所示,在图6所示实施
例的基础上,SSD控制器70还可以包括:与访问引擎53及写操作与闪存块映射模
块61连接的智能刷新模块71。
其中,智能刷新模块71用于根据前一次数据更新时间间隔,预测预保存数据的失
效时间;若确定保存时间在失效时间内,则触发写操作选择模块52执行在预设的
保存时间与编程操作的对应关系中,匹配与保存时间对应的编程操作;若确定保存
时间未在失效时间内,则刷新写操作要写入数据的闪存块。该实施例中,智能刷新
模块用来执行基于数据失效时间的刷新方案,从而保证闪存中所存储数据的有效性。
补充说明的是,在如图5所示的SSD控制器的基础上,则智能刷新模块与写操作
选择模块52和访问引擎53连接,本发明实施例不局限于智能刷新模块与其它模块
的连接方式,只要能满足其功能即可。
进一步地,智能刷新模块71还可以用于:到达周期性查询时间之后,从失效队列
的头部开始,查询失效队列,判断是否需要刷新闪存中存储的数据;若确定需要刷
新闪存中存储的数据,则将刷新后的数据根据新的失效时间添加到另一失效队列,
其中,失效队列与保存时间对应设置,失效队列的个数为多个;否则,等待下一次
周期性查询。
可选地,智能刷新模块71可进一步用于:若确定失效队列中存储的数据达到失效
时间,则进行刷新操作,且刷新操作中采取的编程操作相较于写操作对应的编程操
作的磨损要大;则智能刷新模块71在执行将刷新后的数据根据新的失效时间添加
到另一失效队列时,具体用于:将执行刷新操作后的数据添加到另一个失效队列,
该另一失效队列中各数据的保存时间大于失效队列中各数据的保存时间。本发明实
施例的作用在于:若某一数据写入闪存时的保存时间较短,可采用本实施例中的技
术方案,将该数据的保存时间延长,从而减少对该数据进行刷新的次数。
图8为本发明SSD控制器实施例四的结构示意图。如图8所示,SSD控制器80包
括:接收器81和与接收器81连接的处理器82。
其中,接收器81用于当接收到写操作时,触发处理器82;处理器82用于获取写
操作对应的预保存数据的保存时间;及,在预设的保存时间与编程操作的对应关系
中,若匹配到与保存时间对应的编程操作,则采用与所述保存时间对应的编程操作,
存储预保存数据,其中,预设的保存时间与编程操作的对应关系为保存时间、临界
电压阈值及脉冲步幅之间的对应关系,且该对应关系满足不影响闪存的整体写操作
性能。
本实施例的SSD控制器,可以用于执行图3所示方法实施例的技术方案,其实现
原理和技术效果类似,此处不再赘述。
在上述基础上,处理器82可具体用于:根据预保存数据所对应的失效队列,确定
其保存时间,该失效队列用于记录每一闪存块中所存储数据的失效时间。可选地,
处理器82可进一步用于:根据预存保存数据所对应的失效队列,获得写操作要写
入数据的闪存块中所存储数据的失效时间;及,根据写操作要写入数据的闪存块中
所存储数据的失效时间和写操作写入的时间,确定写操作的保存时间,并更新对应
失效队列中闪存块中所存储数据的失效时间。
可选地,若写操作对应的闪存页中未写入数据,则处理器82可具体用于:设置写
操作对应的预保存数据的保存时间为预设时间;在保存时间对应的失效队列中,添
加预保存数据及其失效时间,其中,该失效时间为写操作的写入时间与保存时间的
加和。
进一步地,处理器82可具体用于:确定写操作对应的闪存块;在闪存块内,采用
脉冲步幅,将闪存中的FG充电至临界电压阈值,该临界电压阈值的个数为至少一
个;记录写操作与闪存块的映射关系。
在上述实施例的基础上,处理器82还可以用于:在获取预保存数据的保存时间之
前,基于闪存操作特征及错误源特征,构建错误模型,其中,错误源特征表征引起
闪存中错误的来源;根据错误模型,建立并存储预设的保存时间与编程操作的对应
关系。
在上述实施例的基础上,处理器82还可以用于:在获取预保存数据的保存时间之
后,根据前一次数据更新时间间隔,预测预保存数据的失效时间;若确定保存时间
在失效时间内,则执行在预设的保存时间与编程操作的对应关系中,匹配与保存时
间对应的编程操作;若确定保存时间未在失效时间内,则刷新写操作要写入数据的
闪存块。
进一步地,处理器82还可以用于:在存储预保存数据之后,到达周期性查询时间
之后,从失效队列的头部开始,查询失效队列,判断是否需要刷新闪存中存储的数
据;若确定需要刷新闪存中存储的数据,则将刷新后的数据根据新的失效时间添加
到另一失效队列,其中,失效队列与保存时间对应设置,失效队列的个数为多个;
否则,等待下一次周期性查询。
可选地,处理器82可以进一步用于:若确定失效队列中存储的数据达到失效时间,
则进行刷新操作,且该刷新操作中采取的编程操作相较于写操作对应的编程操作的
磨损要大;则将刷新后的数据根据新的失效时间添加到另一失效队列可以包括:将
执行刷新操作后的数据添加到另一个失效队列,另一失效队列中各数据的保存时间
大于失效队列中各数据的保存时间。
图9为本发明SSD控制器实施例五的结构示意图。如图9所示,SSD控制器90包
括:存储器91和与存储器91连接的处理器92。其中,存储器91存储执行指令,
当接收到写操作时,处理器92与存储器91之间通信,处理器92执行执行指令使
得SSD控制器90执行上述任一方法实施例中的技术方案。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过
程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。
该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:
ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽
管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:
其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部
技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本
发明各实施例技术方案的范围。