闪存磨损优化方法及设备的制造方法
【技术领域】
[0001 ] 本发明实施例涉及通信技术,尤其涉及一种闪存磨损优化方法及设备。
【背景技术】
[0002] 由于闪存具有高性能、低延迟、低功耗、环境适应性强等优点,同时成本也在不断 降低,因此得到越来越普遍的应用。闪存存储元利用浮置栅极(Floating Gate,简称:FG) 存放数据,这些数据用FG中保存的电子数量来表示。对于单级存储元(Single Level Cell, 简称:SIX),充电的FG代表"0",未充电的FG代表" 1"。对多级存储元,例如,两级存储元 (Multiple Level Cell,简称:MLC)而言,不同的充电级别(即FG中电子数量不同)代表 不同的状态,例如图1所示,4个充电级别分别代表"11"、"10"、"01"和"00"四种状态。
[0003] 一般而言,闪存对应三种操作,分别是读操作、写操作和擦除操作。其中,写操作是 通过步进式脉冲编程的方式来实现的。如图1所示,步进式脉冲编程采用大小为AVpp的脉 冲步幅将FG充电至不同阈值,即V p(O)、VP⑴、Vp⑵和Vp (3)。擦除操作则是通过使用一个 时间较长的高电压进行放电操作,此电压与图1中的最大阈值电压相关。进行写操作的电 压称为编程电压,即图1中所示的AV pp ;进行擦除操作的电压称为擦除电压,通常这两种电 压值都较大,会对FG造成磨损,且电压越大,磨损越大,因此,通过降低擦写操作(擦除操作 和写操作)的电压可实现磨损的减少。
[0004] 在现有技术中,通过降低每次擦写操作的电压,使得每次擦写操作对闪存造成的 磨损减少。然而,由于每次擦写操作的电压降低,导致单位时间能够写入存储元的电子数量 减少,从而每一次擦写操作需要的时间增加(写速度降低),进而导致闪存的整体写操作性 能降低。
【发明内容】
[0005] 本发明实施提供一种闪存磨损优化方法及设备,以实现在不影响闪存的整体写操 作性能的前提下,降低闪存磨损,延长闪存的使用寿命。
[0006] 第一方面,本发明实施例提供一种闪存磨损优化方法,包括:
[0007] 当接收到写操作时,获取所述写操作对应的预保存数据的保存时间;
[0008] 在预设的保存时间与编程操作的对应关系中,若匹配到与所述保存时间对应的编 程操作,则采用所述与所述保存时间对应的编程操作,存储所述预保存数据,其中,所述预 设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅之间的对应关 系,且该对应关系满足不影响闪存的整体写操作性能。
[0009] 在第一方面的第一种可能的实现方式中,所述获取所述写操作对应的预保存数据 的保存时间,包括:
[0010] 根据所述预保存数据所对应的失效队列,确定其保存时间,所述失效队列用于记 录每一闪存块中所存储数据的失效时间。
[0011] 根据第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式 中,所述根据所述预保存数据所对应的失效队列,确定其保存时间,包括:
[0012] 根据所述预存保存数据所对应的失效队列,获得所述写操作要写入数据的闪存块 中所存储数据的失效时间;
[0013] 根据所述写操作要写入数据的闪存块中所存储数据的失效时间和所述写操作写 入的时间,确定所述写操作的保存时间,并更新对应失效队列中所述闪存块中所存储数据 的失效时间。
[0014] 在第一方面的第三种可能的实现方式中,若所述写操作对应的闪存页中未写入数 据,则所述获取所述写操作对应的预保存数据的保存时间,包括:
[0015] 设置所述写操作对应的预保存数据的保存时间为预设时间;
[0016] 在所述保存时间对应的失效队列中,添加所述预保存数据及其失效时间,其中,该 失效时间为所述写操作的写入时间与所述保存时间的加和。
[0017] 根据第一方面、第一方面的第一种至第三种可能的实现方式中任意一种,在第一 方面的第四种可能的实现方式中,所述采用所述与所述保存时间对应的编程操作,存储所 述预保存数据,包括:
[0018] 确定所述写操作对应的闪存块;
[0019] 在所述闪存块内,采用所述脉冲步幅,将闪存中的浮置栅极FG充电至所述临界电 压阈值,所述临界电压阈值的个数为至少一个;
[0020] 记录所述写操作与所述闪存块的映射关系。
[0021] 根据第一方面、第一方面的第一种至第四种可能的实现方式中任意一种,在第一 方面的第五种可能的实现方式中,所述获取预保存数据的保存时间之后,所述方法还包 括:
[0022] 根据前一次数据更新时间间隔,预测所述预保存数据的失效时间;
[0023] 若确定所述保存时间在所述失效时间内,则执行所述在预设的保存时间与编程操 作的对应关系中,匹配与所述保存时间对应的编程操作;
[0024] 若确定所述保存时间未在所述失效时间内,则刷新所述写操作要写入数据的闪存 块。
[0025] 第二方面,本发明实施例提供一种固态硬盘SSD控制器,包括:接收模块、写操作 选择模块和访问引擎;其中,
[0026] 所述接收模块,用于当接收到写操作时,触发所述写操作选择模块;
[0027] 所述写操作选择模块与所述接收模块连接,用于获取所述写操作对应的预保存数 据的保存时间;及在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间对应 的编程操作;若匹配到与所述保存时间对应的编程操作,则触发所述访问引擎,其中,所述 预设的保存时间与编程操作的对应关系为保存时间、临界电压阈值及脉冲步幅之间的对应 关系,且该对应关系满足不影响闪存的整体写操作性能;
[0028] 所述访问引擎与所述写操作选择模块连接,用于采用所述与所述保存时间对应的 编程操作,存储所述预保存数据。
[0029] 在第二方面的第一种可能的实现方式中,所述写操作选择模块具体用于:
[0030] 根据所述预保存数据所对应的失效队列,确定其保存时间,所述失效队列用于记 录每一闪存块中所存储数据的失效时间。
[0031] 根据第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式 中,所述写操作选择模块进一步用于 :
[0032] 根据所述预存保存数据所对应的失效队列,获得所述写操作要写入数据的闪存块 中所存储数据的失效时间;
[0033] 根据所述写操作要写入数据的闪存块中所存储数据的失效时间和所述写操作写 入的时间,确定所述写操作的保存时间,并更新对应失效队列中所述闪存块中所存储数据 的失效时间。
[0034] 在第二方面的第三种可能的实现方式中,若所述写操作对应的闪存页中未写入数 据,则所述写操作选择模块具体用于:设置所述写操作对应的预保存数据的保存时间为预 设时间;并触发所述访问引擎在所述保存时间对应的失效队列中,添加所述预保存数据及 其失效时间,其中,该失效时间为所述写操作的写入时间与所述保存时间的加和。
[0035] 根据第二方面、第二方面的第一种至第三种可能的实现方式中任意一种,在第二 方面的第四种可能的实现方式中,所述SSD控制器还包括:与各所述模块连接的写操作与 闪存块映射模块,其中,
[0036]所述写操作与闪存块映射模块,用于根据所述接收模块接收的所述写操作,确定 所述写操作对应的闪存块;
[0037] 所述访问引擎具体用于:在所述写操作与闪存块映射模块确定的所述闪存块内, 采用所述脉冲步幅,将闪存中的浮置栅极FG充电至所述临界电压阈值,所述临界电压阈值 的个数为至少一个,其中,所述临界电压阈值是由所述写操作选择模块确定的;并记录所述 写操作与所述闪存块的映射关系至所述写操作与闪存块映射模块。
[0038] 根据第二方面、第二方面的第一种至第四种可能的实现方式中任意一种,在第二 方面的第五种可能的实现方式中,所述SSD控制器还包括:与所述访问引擎连接的智能刷 新丰吴块;
[0039] 所述智能刷新模块,用于根据前一次数据更新时间间隔,预测所述预保存数据的 失效时间;若确定所述保存时间在所述失效时间内,则触发所述写操作选择模块执行所述 在预设的保存时间与编程操作的对应关系中,匹配与所述保存时间对应的编程操作;若确 定所述保存时间未在所述失效时间内,则刷新所述写操作要写入数据的闪存块。
[0040] 第三方面,本发明实施例提供一种固态硬盘SSD控制器,包括:存储器和与所述存 储器连接的处理器,其中,所述存储器存储执行指令,当接收到写操作时,所述处理器与所 述存储器之间通信,所述处理器执行所述执行指令使得所述SSD控制器执行如第一方面任 一项所述的方法。
[0041] 本发明实施例基于不同类型的数据具有不同的保存时间需求,通过获取预保存数 据的保存时间,并根据该保存时间在预设的保存时间与编程操作的对应关系中,选取不同 的编程操作,针对不同的数据进行不同类型的编程操作,从而实现在不影响闪存的整体写 操作性能的前提下,降低对闪存的磨损,延长闪存的使用寿命。
【附图说明】
[0042] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以 根据这些附图获得其他的附图。
[0043] 图1为现有技术中两级存储元特征示意图;
[0044] 图2为本发明应用场景示例图