System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 避免固态硬盘产生开放块的实现方法、装置和计算机设备制造方法及图纸_技高网

避免固态硬盘产生开放块的实现方法、装置和计算机设备制造方法及图纸

技术编号:41229359 阅读:4 留言:0更新日期:2024-05-09 23:46
本申请涉及一种避免固态硬盘产生开放块的实现方法、装置、计算机设备和存储介质,其中该方法包括:在写入过程中判断SLC区域是否耗尽,若已经耗尽则分配非SLC块;若尚未耗尽则在SLC区域耗尽前,检查当前非SLC块写入点是否为开放块;若当前非SLC块写入点为开放块,则在主机数据写入SLC同时启动旧SLC数据向非SLC开放块进行搬移;控制旧SLC数据向非SLC开放块搬移的性能。本发明专利技术避免了在SLC到非SLC转换过程中产生非SLC开放块,并同时在转换的过程中保证了性能稳定性。

【技术实现步骤摘要】

本专利技术涉及固态硬盘,特别是涉及一种避免固态硬盘产生开放块的实现方法、装置、计算机设备和存储介质。


技术介绍

1、ssd(固态硬盘)已经被广泛应用于各种场合,目前在pc市场,已经逐步替代传统的hdd,从可靠性和性能方面为用户提供较好的体验。

2、在现有技术中,非slc类型的ssd为了提升性能,在空闲块足够的情形下,通常会将部分nand块改为slc模式使用。在这个转换过程前,如果为主机写入分配的块是非slc块,且该块没有写完,则通常会直接分配新slc块写入,而放弃当前非slc块。而在后续空闲块不足时,不能分配slc块写入时,因之前放弃的非slc块的分配时间较早,不能再直接写入新的主机数据,导致必须分配新的非slc块供主机写入,如此就会产生未写满的开放块。这样的开放块不但降低存储在其中的数据的保持能力,也加速了盘的磨损,对盘寿命产生不利影响。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种避免固态硬盘产生开放块的实现方法、装置、计算机设备和存储介质。

2、一种避免固态硬盘产生开放块的实现方法,所述方法包括:

3、在写入过程中判断slc区域是否耗尽,若已经耗尽则分配非slc块;

4、若尚未耗尽则在slc区域耗尽前,检查当前非slc块写入点是否为开放块;

5、若当前非slc块写入点为开放块,则在主机数据写入slc同时启动旧slc数据向非slc开放块进行搬移;

6、控制旧slc数据向非slc开放块搬移的性能

7、在其中一个实施例中,所述方法还包括:

8、根据非slc开放块需要搬移填充的数据量确定slc区间缓冲阈值;

9、在到达所述slc区间缓冲阈值时,启动旧slc数据向非slc开放块搬移并保证主机写入性能不低于非slc区写入性能。

10、在其中一个实施例中,所述控制旧slc数据向非slc开放块搬移的性能的步骤还包括:

11、根据空闲slc空间大小和开放块需要填充数据量大小关系,调整数据填充过程中主机写入量与搬移填充量的比值,以平滑slc到非slc转换过程的性能波动。

12、在其中一个实施例中,所述方法还包括:

13、在开放块填充过程中,选择最老的slc块作为数据源来填充开放块;

14、获取当前主机写入数据量,判断当前主机写入数据量是否超过触发数据搬移的阈值;

15、若超过则根据分配slc块时主机写入量与搬移填充量的比值,计算搬移填充数据量并完成相应数据量的搬移。

16、一种避免固态硬盘产生开放块的实现装置,所述装置包括:

17、判断模块,所述判断模块用于在写入过程中判断slc区域是否耗尽,若已经耗尽则分配非slc块;

18、检查模块,所述检查模块用于若尚未耗尽则在slc区域耗尽前,检查当前非slc块写入点是否为开放块;

19、启动模块,所述启动模块用于若当前非slc块写入点为开放块,则在主机数据写入slc同时启动旧slc数据向非slc开放块进行搬移;

20、性能控制模块,所述性能控制模块用于控制旧slc数据向非slc开放块搬移的性能。

21、在其中一个实施例中,所述装置还包括阈值确定模块,所述阈值确定模块用于:

22、根据非slc开放块需要搬移填充的数据量确定slc区间缓冲阈值;

23、在到达所述slc区间缓冲阈值时,启动旧slc数据向非slc开放块搬移并保证主机写入性能不低于非slc区写入性能。

24、在其中一个实施例中,所述性能控制模块还用于:

25、根据空闲slc空间大小和开放块需要填充数据量大小关系,调整数据填充过程中主机写入量与搬移填充量的比值,以平滑slc到非slc转换过程的性能波动。

26、在其中一个实施例中,所述装置还包括填充选择模块,所述填充选择模块用于:

27、在开放块填充过程中,选择最老的slc块作为数据源来填充开放块;

28、获取当前主机写入数据量,判断当前主机写入数据量是否超过触发数据搬移的阈值;

29、若超过则根据分配slc块时主机写入量与搬移填充量的比值,计算搬移填充数据量并完成相应数据量的搬移。

30、一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。

31、一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。

32、上述避免固态硬盘产生开放块的实现方法、装置、计算机设备和存储介质在写入过程中判断slc区域是否耗尽,若已经耗尽则分配非slc块;若尚未耗尽则在slc区域耗尽前,检查当前非slc块写入点是否为开放块;若当前非slc块写入点为开放块,则在主机数据写入slc同时启动旧slc数据向非slc开放块进行搬移;控制旧slc数据向非slc开放块搬移的性能。本专利技术在slc区域快耗尽前,检查当前非slc块写入点是否是开放块,若是,则在主机数据写入slc同时,启动旧slc数据向开放非slc块搬移,同时控制旧slc数据向非slc开放块搬移的性能,避免了在slc到非slc转换过程中产生非slc开放块,并同时在转换的过程中保证了性能稳定性。

本文档来自技高网...

【技术保护点】

1.一种避免固态硬盘产生开放块的实现方法,所述方法包括:

2.根据权利要求1所述的避免固态硬盘产生开放块的实现方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的避免固态硬盘产生开放块的实现方法,其特征在于,所述控制旧SLC数据向非SLC开放块搬移的性能的步骤还包括:

4.根据权利要求3所述的避免固态硬盘产生开放块的实现方法,其特征在于,所述方法还包括:

5.一种避免固态硬盘产生开放块的实现装置,其特征在于,所述装置包括:

6.根据权利要求5所述的避免固态硬盘产生开放块的实现装置,其特征在于,所述装置还包括阈值确定模块,所述阈值确定模块用于:

7.根据权利要求6所述的避免固态硬盘产生开放块的实现装置,其特征在于,所述性能控制模块还用于:

8.根据权利要求7所述的避免固态硬盘产生开放块的实现装置,其特征在于,所述装置还包括填充选择模块,所述填充选择模块用于:

9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。

...

【技术特征摘要】

1.一种避免固态硬盘产生开放块的实现方法,所述方法包括:

2.根据权利要求1所述的避免固态硬盘产生开放块的实现方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的避免固态硬盘产生开放块的实现方法,其特征在于,所述控制旧slc数据向非slc开放块搬移的性能的步骤还包括:

4.根据权利要求3所述的避免固态硬盘产生开放块的实现方法,其特征在于,所述方法还包括:

5.一种避免固态硬盘产生开放块的实现装置,其特征在于,所述装置包括:

6.根据权利要求5所述的避免固态硬盘产生开放块的实现装置,其特征在于,所述装置还包括阈值确定模块,所...

【专利技术属性】
技术研发人员:李建王孜顺黄章俊
申请(专利权)人:苏州忆联信息系统有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1