System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及固态硬盘,特别是涉及一种避免固态硬盘产生开放块的实现方法、装置、计算机设备和存储介质。
技术介绍
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.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
...【技术特征摘要】
1.一种避免固态硬盘产生开放块的实现方法,所述方法包括:
2.根据权利要求1所述的避免固态硬盘产生开放块的实现方法,其特征在于,所述方法还包括:
3.根据权利要求2所述的避免固态硬盘产生开放块的实现方法,其特征在于,所述控制旧slc数据向非slc开放块搬移的性能的步骤还包括:
4.根据权利要求3所述的避免固态硬盘产生开放块的实现方法,其特征在于,所述方法还包括:
5.一种避免固态硬盘产生开放块的实现装置,其特征在于,所述装置包括:
6.根据权利要求5所述的避免固态硬盘产生开放块的实现装置,其特征在于,所述装置还包括阈值确定模块,所...
【专利技术属性】
技术研发人员:李建,王孜顺,黄章俊,
申请(专利权)人:苏州忆联信息系统有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。