一种固态硬盘擦写控制方法、装置、电子设备和存储介质转让专利

申请号 : CN202310583822.6

文献号 : CN116312702B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙瑞琪秦文政郑善龙

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本发明实施例提供了一种固态硬盘擦写控制方法、装置、电子设备和存储介质,涉及计算机系统及存储技术领域;包括在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的执行模式;依据所述执行模式设置所述固态硬盘的挂起机制,通过设置后的挂起机制进行擦写控制。通过本发明实施例可以提升了高磨损下未一次写满的开放式闪存块的可靠性,降低坏数据块的新增速率,延长固态硬盘使用寿命。

权利要求 :

1.一种固态硬盘擦写控制方法,其特征在于,包括:

在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;

依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的执行模式;

依据所述执行模式设置所述固态硬盘的挂起机制,通过设置后的挂起机制进行擦写控制;

其中,所述依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的控制参数的步骤包括:当所述固态硬盘的擦写次数处于第一擦写区间时,确定所述挂起机制的执行模式为第一模式;当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,确定所述挂起机制的执行模式为第二模式;当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,确定所述挂起机制的执行模式为第三模式;其中,所述第一擦写区间的最大值、所述第二擦写区间的最大值和所述第三擦写区间的最大值递增;所述第一模式通过所述挂起机制的当前控制参数确定;所述第二模式通过所述挂起机制的当前控制参数和控制系数确定;所述第三模式通过预设禁用参数确定。

2.根据权利要求1所述的方法,其特征在于,所述当所述固态硬盘的擦写次数处于第一擦写区间时,确定所述挂起机制的执行模式为第一模式的步骤包括:当所述固态硬盘的擦写次数处于所述第一擦写区间时,获取所述挂起机制的当前控制参数;

将所述当前控制参数配置为所述第一模式。

3.根据权利要求1所述的方法,其特征在于,所述当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,确定所述挂起机制的执行模式为第二模式的步骤包括:当所述固态硬盘的擦写次数处于所述第二擦写区间且所述开放式闪存块的挂起次数不大于所述预设触发阈值时,获取所述挂起机制的当前控制参数和控制系数;

依据所述当前控制参数和控制系数,确定配置控制参数;

将所述配置控制参数配置为所述第二模式。

4.根据权利要求3所述的方法,其特征在于,所述当前控制参数包括当前读写比例门限值;所述控制系数包括门限参数,所述依据所述当前控制参数和所述控制系数,确定配置控制参数的步骤包括:依据所述读写比例门限值和所述门限参数,生成更新读写比例门限值;

确定所述更新读写比例门限值为所述配置控制参数;

其中,所述门限参数大于零且小于一。

5.根据权利要求4所述的方法,其特征在于,所述依据所述读写比例门限值和所述门限参数,生成更新读写比例门限值的步骤包括:将所述读写比例门限值和所述门限参数的乘积,确定为所述更新读写比例门限值。

6.根据权利要求3所述的方法,其特征在于,所述当前控制参数包括第一时长,所述第一时长为擦写开始至首次挂起的间隔时长;所述控制系数包括第一时间参数;所述依据所述当前控制参数和所述控制系数,确定配置控制参数的步骤包括:依据所述第一时长和所述第一时间参数,生成更新的第一时长;

确定所述更新的第一时长为所述配置控制参数;

其中,所述第一时间参数大于一。

7.根据权利要求6所述的方法,其特征在于,所述依据所述第一时长和所述第一时间参数,生成更新的第一时长的步骤包括:将所述第一时长和所述第一时间参数的乘积,确定所述更新的第一时长。

8.根据权利要求3所述的方法,其特征在于,所述当前控制参数包括第二时长,所述第二时长为烧录完成至进入挂起的间隔时长;所述控制系数包括第二时间参数;所述依据所述当前控制参数和所述控制系数,确定配置控制参数的步骤包括:依据所述第二时长和所述第二时间参数,生成更新的第二时长;

确定所述更新的第二时长为所述配置控制参数;

其中,所述第二时间参数大于一。

9.根据权利要求8所述的方法,其特征在于,所述依据所述第二时长和所述第二时间参数,生成更新的第二时长的步骤包括:将所述第二时长和所述第二时间参数的乘积,确定所述更新的第二时长。

10.根据权利要求1所述的方法,其特征在于,当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,所述方法还包括:记录所述开放式闪存块的挂起机制触发次数。

11.根据权利要求1所述的方法,其特征在于,所述当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,确定所述挂起机制的执行模式为第三模式的步骤包括:当所述固态硬盘的擦写次数处于所述第三擦写区间,或所述开放式闪存块的挂起次数大于所述预设触发阈值时,将预设禁用参数配置为所述第三模式。

12.根据权利要求11所述的方法,其特征在于,当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,所述方法还包括:对所述开放式闪存块进行标记。

13.根据权利要求1所述的方法,其特征在于,所述固态硬盘中设置有寄存器,所述寄存器用于记录所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;所述获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数的步骤包括:从所述寄存器中读取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数。

14.根据权利要求1所述的方法,其特征在于,所述获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数的步骤包括:从所述固态硬盘的操作栈中读取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数。

15.根据权利要求1所述的方法,其特征在于,所述控制操作为读操作。

16.根据权利要求1所述的方法,其特征在于,所述方法还包括:在执行擦写过程中,判断读操作是否触发所述挂起机制;

当所述读操作触发所述挂起机制,执行所述在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数的步骤;

当所述读操作不触发所述挂起机制,继续执行所述擦写过程。

17.一种固态硬盘擦写控制装置,其特征在于,包括:

获取模块,用于在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;

执行模式确定模块,用于依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的执行模式;

设置模块,用于依据所述执行模式设置所述固态硬盘的挂起机制,通过设置后的挂起机制进行擦写控制;

所述执行模式确定模块包括:

第一模式子模块,用于当所述固态硬盘的擦写次数处于第一擦写区间时,确定所述挂起机制的执行模式为第一模式;

第二模式子模块,用于当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,确定所述挂起机制的执行模式为第二模式;

第三模式子模块,用于当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,确定所述挂起机制的执行模式为第三模式;

其中,所述第一擦写区间的最大值、所述第二擦写区间的最大值和所述第三擦写区间的最大值递增;所述第一模式通过所述挂起机制的当前控制参数确定;所述第二模式通过所述挂起机制的当前控制参数和控制系数确定;所述第三模式通过预设禁用参数确定。

18.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至16中任一项所述的固态硬盘擦写控制方法的步骤。

19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至16中任一项所述的固态硬盘擦写控制方法的步骤。

说明书 :

一种固态硬盘擦写控制方法、装置、电子设备和存储介质

技术领域

[0001] 本发明涉及计算机系统及存储技术领域,特别是涉及一种固态硬盘擦写控制方法、一种固态硬盘擦写控制装置、一种电子设备和一种存储介质。

背景技术

[0002] 随着云计算、大数据等技术的迅速发展,在业务系统内时时刻刻都会产生海量的数据需要处理及存储,即大量数据资产在业务系统内高速流转。信息技术的高速发展对存储系统的性能提出了更高的要求。相较于传统磁盘,固态存储器(SSD)因其读写速度快、能耗较低,而被广泛采用。但与之相对的,固态硬盘相比传统磁盘,因其成本更高,限制了产品的容量,进而导致了其使用寿命较短。

发明内容

[0003] 鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种固态硬盘擦写控制方法、一种固态硬盘擦写控制装置、一种电子设备和一种存储介质。
[0004] 在本发明的第一个方面,本发明实施例公开了一种固态硬盘擦写控制方法,包括:
[0005] 在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;
[0006] 依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的执行模式;
[0007] 依据所述执行模式设置所述固态硬盘的挂起机制,通过设置后的挂起机制进行擦写控制。
[0008] 可选地,所述依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的控制参数的步骤包括:
[0009] 当所述固态硬盘的擦写次数处于第一擦写区间时,确定所述挂起机制的执行模式为第一模式;
[0010] 当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,确定所述挂起机制的执行模式为第二模式;
[0011] 当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,确定所述挂起机制的执行模式为第三模式;
[0012] 其中,所述第一擦写区间的最大值、所述第二擦写区间的最大值和所述第三擦写区间的最大值递增。
[0013] 可选地,所述当所述固态硬盘的擦写次数处于第一擦写区间时,确定所述挂起机制的执行模式为第一模式的步骤包括:
[0014] 当所述固态硬盘的擦写次数处于所述第一擦写区间时,获取所述挂起机制的当前控制参数;
[0015] 将所述当前控制参数配置为所述第一模式。
[0016] 可选地,所述当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,确定所述挂起机制的执行模式为第二模式的步骤包括:
[0017] 当所述固态硬盘的擦写次数处于所述第二擦写区间且所述开放式闪存块的挂起次数不大于所述预设触发阈值时,获取所述挂起机制的当前控制参数和控制系数;
[0018] 依据所述当前控制参数和控制系数,确定配置控制参数;
[0019] 将所述配置控制参数配置为所述第二模式。
[0020] 可选地,所述当前控制参数包括当前读写比例门限值;所述控制系数包括门限参数,所述依据所述当前控制参数和所述控制系数,确定配置控制参数的步骤包括:
[0021] 依据所述读写比例门限值和所述门限参数,生成更新读写比例门限值;
[0022] 确定所述更新读写比例门限值为所述配置控制参数;
[0023] 其中,所述门限参数大于零且小于一。
[0024] 可选地,所述依据所述读写比例门限值和所述门限参数,生成更新读写比例门限值的步骤包括:
[0025] 将所述读写比例门限值和所述门限参数的乘积,确定为所述更新读写比例门限值。
[0026] 可选地,所述当前控制参数包括第一时长,所述第一时长为擦写开始至首次挂起的间隔时长;所述控制系数包括第一时间参数;所述依据所述当前控制参数和所述控制系数,确定配置控制参数的步骤包括:
[0027] 依据所述第一时长和所述第一时间参数,生成更新的第一时长;
[0028] 确定所述更新的第一时长为所述配置控制参数;
[0029] 其中,所述第一时间参数大于一。
[0030] 可选地,所述依据所述第一时长和所述第一时间参数,生成更新的第一时长的步骤包括:
[0031] 将所述第一时长和所述第一时间参数的乘积,确定所述更新的第一时长。
[0032] 可选地,所述当前控制参数包括第二时长,所述第二时长为烧录完成至进入挂起的间隔时长;所述控制系数包括第二时间参数;所述依据所述当前控制参数和所述控制系数,确定配置控制参数的步骤包括:
[0033] 依据所述第二时长和所述第二时间参数,生成更新的第二时长;
[0034] 确定所述更新的第二时长为所述配置控制参数;
[0035] 其中,所述第二时间参数大于一。
[0036] 可选地,所述依据所述第二时长和所述第二时间参数,生成更新的第二时长的步骤包括:
[0037] 将所述第二时长和所述第二时间参数的乘积,确定所述更新的第二时长。
[0038] 可选地,当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,所述方法还包括:
[0039] 记录所述开放式闪存块的挂起机制触发次数。
[0040] 可选地,所述当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,确定所述挂起机制的执行模式为第三模式的步骤包括:
[0041] 当所述固态硬盘的擦写次数处于所述第三擦写区间,或所述开放式闪存块的挂起次数大于所述预设触发阈值时,将预设禁用参数配置为所述第三模式。
[0042] 可选地,当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,所述方法还包括:
[0043] 对所述开放式闪存块进行标记。
[0044] 可选地,所述固态硬盘中设置有寄存器,所述寄存器用于记录所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;所述获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数的步骤包括:
[0045] 从所述寄存器中读取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数。
[0046] 可选地,所述获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数的步骤包括:
[0047] 从所述固态硬盘的操作栈中读取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数。
[0048] 可选地,所述控制操作为读操作。
[0049] 可选地,所述方法还包括:
[0050] 在执行擦写过程中,判断所述读操作是否触发所述挂起机制;
[0051] 当所述读操作触发所述挂起机制,执行所述在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数的步骤;
[0052] 当所述读操作不触发所述挂起机制,继续执行所述擦写过程。
[0053] 在本发明实施例的第二个方面,本发明实施例公开了一种固态硬盘擦写控制装置,包括:
[0054] 获取模块,用于在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;
[0055] 执行模式确定模块,用于依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的执行模式;
[0056] 设置模块,用于依据所述执行模式设置所述固态硬盘的挂起机制,通过设置后的挂起机制进行擦写控制。
[0057] 在本发明的第三个方面,本发明实施例公开了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的固态硬盘擦写控制方法的步骤。
[0058] 在本发明的第四个方面,本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的固态硬盘擦写控制方法的步骤。
[0059] 本发明实施例包括以下优点:
[0060] 本发明实施例通过在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的执行模式;依据所述执行模式设置所述固态硬盘的挂起机制,通过设置后的挂起机制进行擦写控制。通过固态硬盘的擦写次数和所述开放式闪存块的挂起次数来动态调整挂起机制的执行模式,使得不同磨损状态的开放式闪存块进行不同的操作,降低数据块的坏块速率,延长固态硬盘使用寿命。

附图说明

[0061] 图1是本发明的一种固态硬盘擦写控制方法实施例的步骤流程图;
[0062] 图2是本发明的一种双层浮栅MOS管结构示例图;
[0063] 图3是写操作的原理示意图;
[0064] 图4是擦除操作的原理示意图;
[0065] 图5是本发明的另一种固态硬盘擦写控制方法实施例的步骤流程图;
[0066] 图6是本发明的一种固态硬盘擦写控制方法示例的步骤流程图;
[0067] 图7是本发明的一种固态硬盘擦写控制装置实施例的结构框图;
[0068] 图8是本发明实施例提供的一种电子设备的结构框图;
[0069] 图9是本发明实施例提供的一种存储介质的结构框图。

具体实施方式

[0070] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0071] 参照图1,示出了本发明的一种固态硬盘擦写控制方法实施例的步骤流程图,所述固态硬盘擦写控制方法具体可以包括如下步骤:
[0072] 步骤101,在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;
[0073] 在本发明实施例中,在针对固态硬盘的控制操作有三种,分别读(read)写(program)擦(erase)。read的对象是一个页(page),program的对象是一个字线(wordline),而erase的对象是一个数据块(block),一个block由多条wordline组成,而一个wordline由多个page组成(TLC NAND是3个)。目前市场上常见的NAND类型是浮栅型(FG)NAND和电荷阱型(CT)NAND,以FG型NAND为例,NAND基本存储单元(cell)是一种类NMOS(N型金属‑氧化物‑半导体)的双层浮栅MOS管,双层浮栅MOS管的图例可以参照图2。1个cell是在衬底上源极、漏极和控制栅极,在控制栅极与源极、漏极中间依次设置氧化层、浮栅层、隧道氧化层。参照图3,对于1个cell来说写操作是在控制极加正电压,使电子通过绝缘层进入浮栅极。参照图4,擦除操作正好相反,是在衬底加正电压,把电子从浮栅极中吸出来。一定数量的cell通过有规律的串并联排布组成操作闪存块(block),通过不同电路操作可以批量对cell进行读写擦处理。NAND实现读写擦均是通过不同程度的改变cell半导体结构栅级、源极、和漏极的电压来影响浮栅或CT绝缘体中存储电荷量的多少。
[0074] 当检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制,获取固态硬盘的擦写次数和所述开放式闪存块的挂起次数。其中,固态硬盘的擦写次数可以为固态硬盘的P/E次数,在固态硬盘上完全擦写一次叫做1次P/E。
[0075] 开放式闪存块是指对擦除后未写满到最后一个WL的Block,称为Open Block,即开放式闪存块。开放式闪存块的特性是最后写入的WL(注入电荷)因为与下一个相邻未写的WL(未注入电荷)产生电场,导致实际阈值电压与读操作使用的阈值电压不符,读出来的数据就会出错。
[0076] 开放式闪存块的挂起次数,即在挂起机制下开放式闪存块的当前控制操作被挂起次数。挂起机制即为suspend(挂起)机制;挂起机制的处理如下:
[0077] read的对象是一个page,program的对象是一个wordline,erase的对象是一个block,一个block由多条wordline组成,而一个wordline由多个page组成。因此read、write和erase命令花费的时间是递增的,且相差较大(TLC read大约60us,write大约2ms,erase 10ms)。对同一个闪存块进行读写擦操作,NAND处理read、write和erase命令个数也是递减的,PE操作远少于read操作。在NDND中,会将SSD的三种基本操作请求HOST read、write和erase划分优先级,让HOST read优先级高于write和erase。如果在PE过程中,收到HOST read请求,则当前正常执行的erase或write操作挂起(suspend),转而优先处理读请求消息,当该read操作完成后,才可恢复(resume)suspend掉的erase或write操作。当PE操作resume之后可以再触发suspend机制,直到PE操作完成前不再收到HOST read请求或者达到读写比例门限,固件会限定PE开始时间到第一次suspend的时间间隔、resume到下一次suspend的时间间隔、program完成进入suspend状态的时间,以保证被suspend的操作某些控制指令按照NAND厂商提供的时序正常接收。
[0078] 步骤102,依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的执行模式;
[0079] 在获取到固态硬盘的擦写次数和开放式闪存块的挂起次数后,可以基于固态硬盘的擦写次数和/或开放式闪存块的挂起次数确定该开放式闪存块的磨损程度,基于磨损程度确定针对挂起机制不同的执行模式,以使得可以令挂起机制的执行与开放式闪存块的磨损程度匹配。
[0080] 步骤103,依据所述执行模式设置所述固态硬盘的挂起机制,通过设置后的挂起机制进行擦写控制。
[0081] 根据确定的执行模式,对固态硬盘的挂起机制进行设置,修改设置挂起机制形成不同挂起机制的控制过程,通过该设置挂起机制进行擦写控制,以降低开放式闪存块的磨损速度。
[0082] 本发明实施例通过在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的执行模式;依据所述执行模式设置所述固态硬盘的挂起机制,通过设置后的挂起机制进行擦写控制。通过固态硬盘的擦写次数和所述开放式闪存块的挂起次数来动态调整挂起机制的执行模式,使得不同磨损状态的开放式闪存块进行不同的操作,降低数据块的坏块速率,延长固态硬盘使用寿命。
[0083] 参照图5,示出了本发明的另一种固态硬盘擦写控制方法实施例的步骤流程图,所述固态硬盘擦写控制方法中,针对固态硬盘中开放式闪存块的控制操作为读操作,所述固态硬盘擦写控制方法具体可以包括如下步骤:
[0084] 步骤501,在执行擦写过程中,判断读操作是否触发所述挂起机制;
[0085] 在针对固态硬盘执行擦写过程中,当执行读操作,进到挂起机制检查点时,判断读操作是否触发挂起机制。
[0086] 步骤502,当所述读操作触发所述挂起机制,执行在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数的步骤;
[0087] 当确定读操作会触发挂起机制就持续检测,当检测到会针对固态硬盘中开放式闪存块触发挂起机制时,获取固态硬盘的擦写次数和开放式闪存块的挂起次数。
[0088] 具体地,对于获取固态硬盘的擦写次数和开放式闪存块的挂起次数的方式存在多种,本发明对此不作具体限定。
[0089] 在本发明的一可选示例中,所述固态硬盘中设置有寄存器,所述寄存器用于记录所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;所述获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数的步骤包括:
[0090] 子步骤S5021,从所述寄存器中读取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数。
[0091] 在本发明实施例中,固态硬盘中会存在未配置使用的空闲寄存器,可以利用这些空闲寄存器对固态硬盘的擦写次数和开放式闪存块的挂起次数进行记录并存储。
[0092] 当需要获取固态硬盘的擦写次数和开放式闪存块的挂起次数时,可以从寄存器中读取其存储的固态硬盘的擦写次数和开放式闪存块的挂起次数。
[0093] 在本发明的一可选示例中,所述获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数的步骤包括:
[0094] 子步骤S5022,从所述固态硬盘的操作栈中读取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数。
[0095] 在本发明实施例中红,对于固态硬盘的操作都会存储固态硬盘的操作栈,当需要获取固态硬盘的擦写次数和开放式闪存块的挂起次数时,可以从固态硬盘的操作栈中读取固态硬盘的擦写次数和开放式闪存块的挂起次数。
[0096] 步骤503,依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的执行模式;
[0097] 在得到固态硬盘的擦写次数和开放式闪存块的挂起次数,依据固态硬盘的擦写次数和开放式闪存块的挂起次数中的至少一个确定开放式闪存块的磨损状态,进而确定针对挂起机制的执行模式。
[0098] 在本发明的一可选实施例中,所述依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的控制参数的步骤包括:
[0099] 子步骤S5031,当所述固态硬盘的擦写次数处于第一擦写区间时,确定所述挂起机制的执行模式为第一模式;
[0100] 子步骤S5032,当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,确定所述挂起机制的执行模式为第二模式;
[0101] 子步骤S5033,当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,确定所述挂起机制的执行模式为第三模式;
[0102] 其中,所述第一擦写区间的最大值、所述第二擦写区间的最大值和所述第三擦写区间的最大值递增。
[0103] 在本发明实施例中,可以将固态硬盘的擦写次数划分对应三个不通过的擦写区间:第一擦写区间、第二擦写区间和第三擦写区间。其中,第一擦写区间的最大值、第二擦写区间的最大值和第三擦写区间的最大值递增,即第一擦写区间、第二擦写区间和第三擦写区间对应的数值范围越大,擦写次数越多,对应的固态硬盘的磨损程度越高。对于开放式闪存块的挂起次数则可以预设触发阈值对磨损程度进行划分。
[0104] 当固态硬盘的擦写次数处于第一擦写区间时,说明固态硬盘的磨损程度较低,确定挂起机制的执行模式为第一模式
[0105] 当固态硬盘的擦写次数处于第二擦写区间且开放式闪存块的挂起次数不大于预设触发阈值时,说明固态硬盘的磨损程度已经较高,需要对固态硬盘的开放式闪存块进行一定的保护;确定挂起机制的执行模式为第二模式;
[0106] 当固态硬盘的擦写次数处于第三擦写区间,或开放式闪存块的挂起次数大于预设触发阈值时,说明固态硬盘的磨损程度已经非常高,需要对固态硬盘的开放式闪存块进行高度保护,确定挂起机制的执行模式为第三模式。
[0107] 进一步地,所述当所述固态硬盘的擦写次数处于第一擦写区间时,确定所述挂起机制的执行模式为第一模式的步骤包括:
[0108] 子步骤S50311,当所述固态硬盘的擦写次数处于所述第一擦写区间时,获取所述挂起机制的当前控制参数;
[0109] 子步骤S50312,将所述当前控制参数配置为所述第一模式。
[0110] 当固态硬盘的擦写次数处于第一擦写区间时,可以获取挂起机制的当前控制参数,将当前控制参数配置为第一模式,将挂起机制保持不变,以较好的性能去处理业务数据。
[0111] 进一步地,所述当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,确定所述挂起机制的执行模式为第二模式的步骤包括:
[0112] 子步骤S50321,当所述固态硬盘的擦写次数处于所述第二擦写区间且所述开放式闪存块的挂起次数不大于所述预设触发阈值时,获取所述挂起机制的当前控制参数和控制系数;
[0113] 在本发明实施例中,当固态硬盘的擦写次数处于第二擦写区间且开放式闪存块的挂起次数不大于预设触发阈值时,获取挂起机制的当前控制参数和针对挂起机制在高磨损状态下的控制系数。控制系数可以根据固态硬盘的种类,厂商等信息设置,对于其具体数值不作限定。
[0114] 子步骤S50322,依据所述当前控制参数和控制系数,确定配置控制参数;
[0115] 依据当前控制参数和控制系数,确定出配置控制参数,以对挂起机制在开放式闪存块高磨损的状态下进行调整。
[0116] 在本发明的一可选实施例中,所述当前控制参数包括当前读写比例门限值;所述控制系数包括门限参数,所述依据所述当前控制参数和所述控制系数,确定配置控制参数的步骤包括:依据所述读写比例门限值和所述门限参数,生成更新读写比例门限值;确定所述更新读写比例门限值为所述配置控制参数;其中,所述门限参数大于零且小于一。
[0117] 在本发明实施例中,当前控制参数包括当前读写比例门限值;所述控制系数包括门限参数,门限参数大于零且小于一。依据读写比例门限值和门限参数计算出更新读写比例门限值,更新读写比例门限值用于更新挂起机制的当前的读写比例门限值。确定更新读写比例门限值为配置控制参数,以对挂起机制进行更新。
[0118] 进一步地,对于更新读写比例门限值的生成,可以将读写比例门限值和门限参数的乘积,确定为更新读写比例门限值。由于门限参数大于零且小于一,当更新读写比例门限值不是非零正整数时,可以通过向上取整、向下取整或四舍五入的算术方式将更新读写比例门限值修正为非零正整数。
[0119] 在本发明的一可选实施例中,所述当前控制参数包括第一时长,所述第一时长为擦写开始至首次挂起的间隔时长;所述控制系数包括第一时间参数;所述依据所述当前控制参数和所述控制系数,确定配置控制参数的步骤包括:依据所述第一时长和所述第一时间参数,生成更新的第一时长;确定所述更新的第一时长为所述配置控制参数;其中,所述第一时间参数大于一。
[0120] 在本发明实施例中,当前控制参数包括擦写开始至首次挂起的间隔时长,即第一时长,控制系数包括第一时间参数,且第一时间参数大于一。可以依据第一时长和第一时间参数,生成更新的第一时长;更新的第一时长用于更新挂起机制的第一时长。确定更新的第一时长作为配置控制参数,对挂起机制进行更新。
[0121] 进一步地,对于更新的第一时长的生成,可以将第一时长和第一时间参数的乘积,确定更新的第一时长。
[0122] 在本发明的一可选实施例中,所述当前控制参数包括第二时长,所述第二时长为烧录完成至进入挂起的间隔时长;所述控制系数包括第二时间参数;所述依据所述当前控制参数和所述控制系数,确定配置控制参数的步骤包括:依据所述第二时长和所述第二时间参数,生成更新的第二时长;确定所述更新的第二时长为所述配置控制参数;其中,所述第二时间参数大于一。
[0123] 在本发明实施例中,当前控制参数包括烧录完成至进入挂起的间隔时长,即第二时长,控制系数包括第二时间参数,且第二时间参数大于一。可以依据第二时长和第二时间参数,生成更新的第二时长;更新的第二时长用于更新挂起机制的第二时长。确定更新的第二时长作为配置控制参数,对挂起机制进行更新。
[0124] 进一步地,对于更新的第二时长的生成,可以将第二时长和第二时间参数的乘积,确定更新的第二时长。
[0125] 此外,当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,所述方法还包括:
[0126] 步骤S1,记录所述开放式闪存块的挂起机制触发次数。
[0127] 当固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,还会对开放式闪存块的挂起机制触发次数进行记录,对开放式闪存块进行更精细的监控检测。
[0128] 子步骤S50323,将所述配置控制参数配置为所述第二模式。
[0129] 再将配置控制参数配置到挂起机制中,对挂起机制进行更新,以令挂起机制配置为第二模式。
[0130] 进一步地,所述当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,确定所述挂起机制的执行模式为第三模式的步骤包括:
[0131] 子步骤S50331,当所述固态硬盘的擦写次数处于所述第三擦写区间,或所述开放式闪存块的挂起次数大于所述预设触发阈值时,将预设禁用参数配置为所述第三模式。
[0132] 当固态硬盘的擦写次数处于第三擦写区间,或开放式闪存块的挂起次数大于预设触发阈值时,说明开放式闪存块已经达到非常高的磨损状态,此时,将预设禁用参数配置为第三模式,以对挂起机制进行禁用。
[0133] 此外,当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,所述方法还包括:
[0134] 步骤S2,对所述开放式闪存块进行标记。
[0135] 当需要对开放式闪存块的挂起机制进行禁用时,可以对开放式闪存块进行标记,以通过该标记在下次开放式闪存块执行擦写过程时,直接对其禁用挂起机制。
[0136] 步骤504,依据所述执行模式设置所述固态硬盘的挂起机制,通过设置后的挂起机制进行擦写控制。
[0137] 在得到执行模式后,采用执行模式设置固态硬盘的挂起机制,对挂起机制进行更新,并采用设置后的挂起机制对当前的擦写过程进行擦写控制。
[0138] 步骤505,当所述读操作不触发所述挂起机制,继续执行所述擦写过程。
[0139] 当读操作不触发挂起机制,则继续执行擦写过程,对固态硬盘进行操作。
[0140] 本发明实施例通过在执行擦写过程中,判断读操作是否触发所述挂起机制,当所述读操作触发所述挂起机制,在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的执行模式;依据所述执行模式设置所述固态硬盘的挂起机制,通过设置后的挂起机制进行擦写控制;当所述读操作不触发所述挂起机制,继续执行所述擦写过程。通过固态硬盘的擦写次数和开放式闪存块的挂起次数来动态调整挂起机制的执行模式,使得不同磨损状态的开放式闪存块进行不同的操作,降低数据块的坏块速率,延长固态硬盘使用寿命。
[0141] 为了使本领域技术人员能够更好地理解本发明实施例,参照图6,下面通过一个例子对本发明实施例加以说明:
[0142] 执行擦写时,在进入suspend(挂起)阶段前增加对开放式闪存块的P/E值和suspend次数比较判定,依据判定结果使用不同的suspend流程。具体地:
[0143] 如果P/E≤N采用suspend type A(第一模式)
[0144] suspend type A为使用原固件suspend流程,门限值 ,时间参数 (第一时长)、(第二时长)保持不变。
[0145] 如果N<P/E≤M且如果suspend cnt(挂起次数)≤P采用suspend typeB(第二模式),并记录该Block 触发suspend次数。
[0146] suspend type B为门限值 减少,时间参数 、 增加。
[0147]
[0148] 参数即为对应的控制参数,是依据使用NAND的不同类型和厂商设置的,在(N,M]中可以根据实际测试结构,细分出小区间来使用不同的 参数。时间参数 、 增加是为了通过延长电压调整时间来稳定cell间电场
[0149] 如果P/E>M或suspend cnt>P,将该block标记,使之不能触发suspend机制(第三模式)。
[0150] 需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0151] 参照图7,示出了本发明的一种固态硬盘擦写控制装置实施例的结构框图,具体可以包括如下模块:
[0152] 获取模块701,用于在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;
[0153] 执行模式确定模块702,用于依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的执行模式;
[0154] 设置模块703,用于依据所述执行模式设置所述固态硬盘的挂起机制,通过设置后的挂起机制进行擦写控制。
[0155] 在本发明的一可选实施例中,所述执行模式确定模块702包括:
[0156] 第一模式子模块,用于当所述固态硬盘的擦写次数处于第一擦写区间时,确定所述挂起机制的执行模式为第一模式;
[0157] 第二模式子模块,用于当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,确定所述挂起机制的执行模式为第二模式;
[0158] 第三模式子模块,用于当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,确定所述挂起机制的执行模式为第三模式;
[0159] 其中,所述第一擦写区间的最大值、所述第二擦写区间的最大值和所述第三擦写区间的最大值递增。
[0160] 在本发明的一可选实施例中,所述第一模式子模块包括:
[0161] 第一获取单元,用于当所述固态硬盘的擦写次数处于所述第一擦写区间时,获取所述挂起机制的当前控制参数;
[0162] 第一配置单元,用于将所述当前控制参数配置为所述第一模式。
[0163] 在本发明的一可选实施例中,所述第二模式子模块包括:
[0164] 第二获取单元,用于当所述固态硬盘的擦写次数处于所述第二擦写区间且所述开放式闪存块的挂起次数不大于所述预设触发阈值时,获取所述挂起机制的当前控制参数和控制系数;
[0165] 参数确定单元,用于依据所述当前控制参数和控制系数,确定配置控制参数;
[0166] 第二配置单元,用于将所述配置控制参数配置为所述第二模式。
[0167] 在本发明的一可选实施例中,所述当前控制参数包括当前读写比例门限值;所述控制系数包括门限参数,所述参数确定单元包括:
[0168] 门限确定子单元,依据所述读写比例门限值和所述门限参数,生成更新读写比例门限值;
[0169] 门限更新子单元确定所述更新读写比例门限值为所述配置控制参数;
[0170] 其中,所述门限参数大于零且小于一。
[0171] 在本发明的一可选实施例中,门限确定子单元包括:
[0172] 第一乘积子单元,用于将所述读写比例门限值和所述门限参数的乘积,确定为所述更新读写比例门限值。
[0173] 在本发明的一可选实施例中,所述当前控制参数包括第一时长,所述第一时长为擦写开始至首次挂起的间隔时长;所述参数确定单元包括:
[0174] 第一时长确定子单元,用于依据所述第一时长和所述第一时间参数,生成更新的第一时长;
[0175] 第一时长更新子单元,用于确定所述更新的第一时长为所述配置控制参数;
[0176] 其中,所述第一时间参数大于一。
[0177] 在本发明的一可选实施例中,所述第一时长确定子单元包括:
[0178] 第二乘积子单元,用于将所述第一时长和所述第一时间参数的乘积,确定所述更新的第一时长。
[0179] 在本发明的一可选实施例中,所述当前控制参数包括第二时长,所述第二时长为烧录完成至进入挂起的间隔时长;所述参数确定单元包括:
[0180] 第二时长确定子单元,用于依据所述第二时长和所述第二时间参数,生成更新的第二时长;
[0181] 第二时长更新子单元,用于确定所述更新的第二时长为所述配置控制参数;
[0182] 其中,所述第二时间参数大于一。
[0183] 在本发明的一可选实施例中,所述第二时长确定子单元包括:
[0184] 第三乘积子单元,用于将所述第二时长和所述第二时间参数的乘积,确定所述更新的第二时长。
[0185] 在本发明的一可选实施例中,所述装置还包括:
[0186] 记录模块,用于记录所述开放式闪存块的挂起机制触发次数。
[0187] 在本发明的一可选实施例中,所述第三模式子模块包括:
[0188] 第三配置单元,当所述固态硬盘的擦写次数处于所述第三擦写区间,或所述开放式闪存块的挂起次数大于所述预设触发阈值时,将预设禁用参数配置为所述第三模式。
[0189] 在本发明的一可选实施例中,所述装置还包括:
[0190] 标记模块,用于对所述开放式闪存块进行标记。
[0191] 在本发明的一可选实施例中,所述固态硬盘中设置有寄存器,所述寄存器用于记录所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;所述获取模块701包括:
[0192] 第一读取子模块,用于从所述寄存器中读取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数。
[0193] 在本发明的一可选实施例中,所述获取模块701包括:
[0194] 第二读取子模块,用于从所述固态硬盘的操作栈中读取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数。
[0195] 在本发明的一可选实施例中,所述控制操作为读操作。
[0196] 在本发明的一可选实施例中,所述装置还包括:
[0197] 判断模块,用于在执行擦写过程中,判断所述读操作是否触发所述挂起机制;
[0198] 第一执行模块,用于当所述读操作触发所述挂起机制,执行所述在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数的步骤;
[0199] 第二执行模块,用于当所述读操作不触发所述挂起机制,继续执行所述擦写过程。
[0200] 对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0201] 参照图8,本发明实施例还提供了一种电子设备,包括:
[0202] 处理器801和存储介质802,所述存储介质802存储有所述处理器801可执行的计算机程序,当电子设备运行时,所述处理器801执行所述计算机程序,以执行如本发明实施例任一项所述的固态硬盘擦写控制方法。所述固态硬盘擦写控制方法包括:
[0203] 在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;
[0204] 依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的执行模式;
[0205] 依据所述执行模式设置所述固态硬盘的挂起机制,通过设置后的挂起机制进行擦写控制。
[0206] 可选地,所述依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的控制参数的步骤包括:
[0207] 当所述固态硬盘的擦写次数处于第一擦写区间时,确定所述挂起机制的执行模式为第一模式;
[0208] 当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,确定所述挂起机制的执行模式为第二模式;
[0209] 当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,确定所述挂起机制的执行模式为第三模式;
[0210] 其中,所述第一擦写区间的最大值、所述第二擦写区间的最大值和所述第三擦写区间的最大值递增。
[0211] 可选地,所述当所述固态硬盘的擦写次数处于第一擦写区间时,确定所述挂起机制的执行模式为第一模式的步骤包括:
[0212] 当所述固态硬盘的擦写次数处于所述第一擦写区间时,获取所述挂起机制的当前控制参数;
[0213] 将所述当前控制参数配置为所述第一模式。
[0214] 可选地,所述当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,确定所述挂起机制的执行模式为第二模式的步骤包括:
[0215] 当所述固态硬盘的擦写次数处于所述第二擦写区间且所述开放式闪存块的挂起次数不大于所述预设触发阈值时,获取所述挂起机制的当前控制参数和控制系数;
[0216] 依据所述当前控制参数和控制系数,确定配置控制参数;
[0217] 将所述配置控制参数配置为所述第二模式。
[0218] 可选地,所述当前控制参数包括当前读写比例门限值;所述控制系数包括门限参数,所述依据所述当前控制参数和所述控制系数,确定配置控制参数的步骤包括:
[0219] 依据所述读写比例门限值和所述门限参数,生成更新读写比例门限值;
[0220] 确定所述更新读写比例门限值为所述配置控制参数;
[0221] 其中,所述门限参数大于零且小于一。
[0222] 可选地,所述依据所述读写比例门限值和所述门限参数,生成更新读写比例门限值的步骤包括:
[0223] 将所述读写比例门限值和所述门限参数的乘积,确定为所述更新读写比例门限值。
[0224] 可选地,所述当前控制参数包括第一时长,所述第一时长为擦写开始至首次挂起的间隔时长;所述控制系数包括第一时间参数;所述依据所述当前控制参数和所述控制系数,确定配置控制参数的步骤包括:
[0225] 依据所述第一时长和所述第一时间参数,生成更新的第一时长;
[0226] 确定所述更新的第一时长为所述配置控制参数;
[0227] 其中,所述第一时间参数大于一。
[0228] 可选地,所述依据所述第一时长和所述第一时间参数,生成更新的第一时长的步骤包括:
[0229] 将所述第一时长和所述第一时间参数的乘积,确定所述更新的第一时长。
[0230] 可选地,所述当前控制参数包括第二时长,所述第二时长为烧录完成至进入挂起的间隔时长;所述控制系数包括第二时间参数;所述依据所述当前控制参数和所述控制系数,确定配置控制参数的步骤包括:
[0231] 依据所述第二时长和所述第二时间参数,生成更新的第二时长;
[0232] 确定所述更新的第二时长为所述配置控制参数;
[0233] 其中,所述第二时间参数大于一。
[0234] 可选地,所述依据所述第二时长和所述第二时间参数,生成更新的第二时长的步骤包括:
[0235] 将所述第二时长和所述第二时间参数的乘积,确定所述更新的第二时长。
[0236] 可选地,当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,所述方法还包括:
[0237] 记录所述开放式闪存块的挂起机制触发次数。
[0238] 可选地,所述当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,确定所述挂起机制的执行模式为第三模式的步骤包括:
[0239] 当所述固态硬盘的擦写次数处于所述第三擦写区间,或所述开放式闪存块的挂起次数大于所述预设触发阈值时,将预设禁用参数配置为所述第三模式。
[0240] 可选地,当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,所述方法还包括:
[0241] 对所述开放式闪存块进行标记。
[0242] 可选地,所述固态硬盘中设置有寄存器,所述寄存器用于记录所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;所述获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数的步骤包括:
[0243] 从所述寄存器中读取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数。
[0244] 可选地,所述获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数的步骤包括:
[0245] 从所述固态硬盘的操作栈中读取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数。
[0246] 可选地,所述控制操作为读操作。
[0247] 可选地,所述方法还包括:
[0248] 在执行擦写过程中,判断所述读操作是否触发所述挂起机制;
[0249] 当所述读操作触发所述挂起机制,执行所述在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数的步骤;
[0250] 当所述读操作不触发所述挂起机制,继续执行所述擦写过程。
[0251] 其中,存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non‑volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0252] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0253] 参照图9,本发明实施例还提供了一种计算机可读存储介质901,所述存储介质901上存储有计算机程序,所述计算机程序被处理器运行时执行如本发明实施例任一项所述的固态硬盘擦写控制方法。所述固态硬盘擦写控制方法包括:
[0254] 在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;
[0255] 依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的执行模式;
[0256] 依据所述执行模式设置所述固态硬盘的挂起机制,通过设置后的挂起机制进行擦写控制。
[0257] 可选地,所述依据所述固态硬盘的擦写次数,和/或,所述开放式闪存块的挂起次数,确定所述挂起机制的控制参数的步骤包括:
[0258] 当所述固态硬盘的擦写次数处于第一擦写区间时,确定所述挂起机制的执行模式为第一模式;
[0259] 当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,确定所述挂起机制的执行模式为第二模式;
[0260] 当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,确定所述挂起机制的执行模式为第三模式;
[0261] 其中,所述第一擦写区间的最大值、所述第二擦写区间的最大值和所述第三擦写区间的最大值递增。
[0262] 可选地,所述当所述固态硬盘的擦写次数处于第一擦写区间时,确定所述挂起机制的执行模式为第一模式的步骤包括:
[0263] 当所述固态硬盘的擦写次数处于所述第一擦写区间时,获取所述挂起机制的当前控制参数;
[0264] 将所述当前控制参数配置为所述第一模式。
[0265] 可选地,所述当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,确定所述挂起机制的执行模式为第二模式的步骤包括:
[0266] 当所述固态硬盘的擦写次数处于所述第二擦写区间且所述开放式闪存块的挂起次数不大于所述预设触发阈值时,获取所述挂起机制的当前控制参数和控制系数;
[0267] 依据所述当前控制参数和控制系数,确定配置控制参数;
[0268] 将所述配置控制参数配置为所述第二模式。
[0269] 可选地,所述当前控制参数包括当前读写比例门限值;所述控制系数包括门限参数,所述依据所述当前控制参数和所述控制系数,确定配置控制参数的步骤包括:
[0270] 依据所述读写比例门限值和所述门限参数,生成更新读写比例门限值;
[0271] 确定所述更新读写比例门限值为所述配置控制参数;
[0272] 其中,所述门限参数大于零且小于一。
[0273] 可选地,所述依据所述读写比例门限值和所述门限参数,生成更新读写比例门限值的步骤包括:
[0274] 将所述读写比例门限值和所述门限参数的乘积,确定为所述更新读写比例门限值。
[0275] 可选地,所述当前控制参数包括第一时长,所述第一时长为擦写开始至首次挂起的间隔时长;所述控制系数包括第一时间参数;所述依据所述当前控制参数和所述控制系数,确定配置控制参数的步骤包括:
[0276] 依据所述第一时长和所述第一时间参数,生成更新的第一时长;
[0277] 确定所述更新的第一时长为所述配置控制参数;
[0278] 其中,所述第一时间参数大于一。
[0279] 可选地,所述依据所述第一时长和所述第一时间参数,生成更新的第一时长的步骤包括:
[0280] 将所述第一时长和所述第一时间参数的乘积,确定所述更新的第一时长。
[0281] 可选地,所述当前控制参数包括第二时长,所述第二时长为烧录完成至进入挂起的间隔时长;所述控制系数包括第二时间参数;所述依据所述当前控制参数和所述控制系数,确定配置控制参数的步骤包括:
[0282] 依据所述第二时长和所述第二时间参数,生成更新的第二时长;
[0283] 确定所述更新的第二时长为所述配置控制参数;
[0284] 其中,所述第二时间参数大于一。
[0285] 可选地,所述依据所述第二时长和所述第二时间参数,生成更新的第二时长的步骤包括:
[0286] 将所述第二时长和所述第二时间参数的乘积,确定所述更新的第二时长。
[0287] 可选地,当所述固态硬盘的擦写次数处于第二擦写区间且所述开放式闪存块的挂起次数不大于预设触发阈值时,所述方法还包括:
[0288] 记录所述开放式闪存块的挂起机制触发次数。
[0289] 可选地,所述当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,确定所述挂起机制的执行模式为第三模式的步骤包括:
[0290] 当所述固态硬盘的擦写次数处于所述第三擦写区间,或所述开放式闪存块的挂起次数大于所述预设触发阈值时,将预设禁用参数配置为所述第三模式。
[0291] 可选地,当所述固态硬盘的擦写次数处于第三擦写区间,或所述开放式闪存块的挂起次数大于预设触发阈值时,所述方法还包括:
[0292] 对所述开放式闪存块进行标记。
[0293] 可选地,所述固态硬盘中设置有寄存器,所述寄存器用于记录所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数;所述获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数的步骤包括:
[0294] 从所述寄存器中读取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数。
[0295] 可选地,所述获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数的步骤包括:
[0296] 从所述固态硬盘的操作栈中读取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数。
[0297] 可选地,所述控制操作为读操作。
[0298] 可选地,所述方法还包括:
[0299] 在执行擦写过程中,判断所述读操作是否触发所述挂起机制;
[0300] 当所述读操作触发所述挂起机制,执行所述在检测到针对固态硬盘中开放式闪存块的控制操作触发挂起机制时,获取所述固态硬盘的擦写次数和所述开放式闪存块的挂起次数的步骤;
[0301] 当所述读操作不触发所述挂起机制,继续执行所述擦写过程。
[0302] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0303] 本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0304] 本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0305] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0306] 这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0307] 尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0308] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0309] 以上对本发明所提供的一种固态硬盘擦写控制方法、装置、电子设备和存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。