固态硬盘空闲块的预擦除方法、装置、计算机设备及存储介质与流程

文档序号:29494827发布日期:2022-04-06 14:47阅读:185来源:国知局
固态硬盘空闲块的预擦除方法、装置、计算机设备及存储介质与流程

1.本发明涉及存储系统技术领域,特别是涉及一种固态硬盘空闲块的预擦除方法、装置、计算机设备及存储介质。


背景技术:

2.随着固态硬盘技术的发展,ssd(solid state disk,固态硬盘)已经被广泛应用于各种场合,在pc市场已经逐步替代传统的hdd(hard disk drive,硬盘驱动器),从可靠性和性能方面为用户提供较好的体验。
3.目前,ssd中的存储介质是nand flash,在向nand块中写入数前,需要先擦除块中已写入的数据。然而,nand为满足数据保持性需求,通常要求块的擦除操作发生在被重新分配写入新数据前,如此就会导致数据流的中断,进而影响ssd的写性能。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种固态硬盘空闲块的预擦除方法、装置、计算机设备及存储介质。
5.一种固态硬盘空闲块的预擦除方法,所述方法包括:
6.获取固态硬盘空闲块的预擦除请求;
7.在系统空闲状态时,根据系统总空闲块数量动态设定预擦除空闲块阈值;
8.判断已擦除空闲块数量是否低于所述预擦除空闲块阈值;
9.若已擦除空闲块数量低于所述预擦除空闲块阈值,则选择合适空闲块擦除;
10.在预擦除过程中,记录预擦除块擦除的时间戳,在突发写入时根据时间戳按照由旧到新的顺序分配预擦除空闲块。
11.在其中一个实施例中,所述若已擦除空闲块数量低于所述预擦除空闲块阈值,则选择合适空闲块擦除的步骤还包括:
12.若已擦除空闲块数量低于所述预擦除空闲块阈值,选择擦除次数最少的空闲块进行预擦除,并记录预擦除的时间戳。
13.在其中一个实施例中,在所述若已擦除空闲块数量低于所述预擦除空闲块阈值,选择擦除次数最少的空闲块进行预擦除,并记录预擦除的时间戳的步骤之后还包括:
14.在突发写入时判断是否有预擦除的空闲块;
15.若有则分配时间戳最旧的已擦除空闲块,并写入用户数据。
16.在其中一个实施例中,在所述在突发写入时判断是否有预擦除的空闲块的步骤之后还包括:
17.若无则分配擦除次数最少的空闲块进行擦除,并写入用户数据。
18.一种固态硬盘空闲块的预擦除装置,所述装置包括:
19.获取模块,所述获取模块用于获取固态硬盘空闲块的预擦除请求;
20.阈值设置模块,所述阈值设置模块用于在系统空闲状态时,根据系统总空闲块数
量动态设定预擦除空闲块阈值;
21.第一判断模块,所述第一判断模块用于判断已擦除空闲块数量是否低于所述预擦除空闲块阈值;
22.擦除模块,所述擦除模块用于若已擦除空闲块数量低于所述预擦除空闲块阈值,则选择合适空闲块擦除;
23.时间戳记录模块,所述时间戳记录模块用于在预擦除过程中,记录预擦除块擦除的时间戳,在突发写入时根据时间戳按照由旧到新的顺序分配预擦除空闲块。
24.在其中一个实施例中,所述擦除模块用于:
25.若已擦除空闲块数量低于所述预擦除空闲块阈值,选择擦除次数最少的空闲块进行预擦除,并记录预擦除的时间戳。
26.在其中一个实施例中,所述装置还包括第二判断模块,所述第二判断模块用于:
27.在突发写入时判断是否有预擦除的空闲块;
28.若有则分配时间戳最旧的已擦除空闲块,并写入用户数据。
29.在其中一个实施例中,所述第二判断模块还用于:
30.若无则分配擦除次数最少的空闲块进行擦除,并写入用户数据。
31.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
32.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
33.上述固态硬盘空闲块的预擦除方法、装置、计算机设备及存储介质通过获取固态硬盘空闲块的预擦除请求;在系统空闲状态时,根据系统总空闲块数量动态设定预擦除空闲块阈值;判断已擦除空闲块数量是否低于所述预擦除空闲块阈值;若已擦除空闲块数量低于所述预擦除空闲块阈值,则选择合适空闲块擦除;在预擦除过程中,记录预擦除块擦除的时间戳,在突发写入时根据时间戳按照由旧到新的顺序分配预擦除空闲块。本发明在系统空闲状态时,预先擦除一定数量的空闲块用于突发写入,有效地提升了突发写入的性能。
附图说明
34.图1为一个实施例中固态硬盘空闲块的预擦除方法的流程示意图;
35.图2为另一个实施例中固态硬盘空闲块的预擦除方法的流程示意图;
36.图3为再一个实施例中固态硬盘空闲块的预擦除方法的流程示意图;
37.图4为一个实施例中固态硬盘空闲块的预擦除装置的结构框图;
38.图5为另一个实施例中固态硬盘空闲块的预擦除装置的结构框图;
39.图6为一个实施例中计算机设备的内部结构图。
具体实施方式
40.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
41.目前,ssd中的存储介质是nand flash,在向nand块中写入数前,需要先擦除块中
已写入的数据。然而,nand为满足数据保持性需求,通常要求块的擦除操作发生在被重新分配写入新数据前,如此就会导致数据流的中断,进而影响ssd的写性能。
42.基于此,本发明提出一种空闲块预擦除策略,尽量避免处理主机突发写入过程中擦除空闲块,以提升突发写入性能。
43.在一个实施例中,如图1所示,提供了一种固态硬盘空闲块的预擦除方法,该方法包括:
44.步骤102,获取固态硬盘空闲块的预擦除请求;
45.步骤104,在系统空闲状态时,根据系统总空闲块数量动态设定预擦除空闲块阈值;
46.步骤106,判断已擦除空闲块数量是否低于预擦除空闲块阈值;
47.步骤108,若已擦除空闲块数量低于预擦除空闲块阈值,则选择合适空闲块擦除;
48.步骤110,在预擦除过程中,记录预擦除块擦除的时间戳,在突发写入时根据时间戳按照由旧到新的顺序分配预擦除空闲块。
49.在本实施例中,提供了一种固态硬盘空闲块的预擦除方法,该方法在系统空闲状态时,预先擦除一定数量的空闲块,用于突发写入,以提升突发写入的性能,其具体的实现过程如下:
50.首先,获取固态硬盘空闲块的预擦除请求,在系统空闲状态时,根据系统总空闲块数量动态设定预擦除空闲块阈值。接着,判断已擦除空闲块数量是否低于预擦除空闲块阈值;若已擦除空闲块数量低于预擦除空闲块阈值,则选择合适空闲块擦除。具体地,根据系统总空闲块数量,动态设定预擦除空闲块阈值;在系统空闲时,若已擦除空闲块低于阈值,则选择合适空闲块擦除。
51.在一个实施例中,若已擦除空闲块数量低于预擦除空闲块阈值,则选择合适空闲块擦除的步骤还包括:
52.若已擦除空闲块数量低于预擦除空闲块阈值,选择擦除次数最少的空闲块进行预擦除,并记录预擦除的时间戳。
53.具体地,在系统空闲状态时,根据当前系统总的空闲块数量,设置最多预擦除空闲块梳理。按空闲块已擦除次数,由少到多选择空闲块进行预擦除,直到达到预擦除块数量上限。
54.每生成一个预擦除的空闲块,记录其分配的时间戳,并记录到nand。在处理主机写命令过程,优先分配时间戳旧的预擦除空闲块。
55.在上述实施例中,通过获取固态硬盘空闲块的预擦除请求;在系统空闲状态时,根据系统总空闲块数量动态设定预擦除空闲块阈值;判断已擦除空闲块数量是否低于所述预擦除空闲块阈值;若已擦除空闲块数量低于所述预擦除空闲块阈值,则选择合适空闲块擦除;在预擦除过程中,记录预擦除块擦除的时间戳,在突发写入时根据时间戳按照由旧到新的顺序分配预擦除空闲块。本方案在系统空闲状态时,预先擦除一定数量的空闲块用于突发写入,有效地提升了突发写入的性能。
56.在一个实施例中,如图2所示,提供了一种固态硬盘空闲块的预擦除方法,该方法在若已擦除空闲块数量低于所述预擦除空闲块阈值,选择擦除次数最少的空闲块进行预擦除,并记录预擦除的时间戳的步骤之后还包括:
57.步骤202,在突发写入时判断是否有预擦除的空闲块;
58.步骤204,若有则分配时间戳最旧的已擦除空闲块,并写入用户数据。
59.步骤206,若无则分配擦除次数最少的空闲块进行擦除,并写入用户数据。
60.具体地,可参考图3所示完整的固态硬盘空闲块的预擦除方法,具体包括空闲块的预擦除和分配流程以及预擦除空闲块的时间戳流程:
61.在空闲块的预擦除和分配流程中:在系统空闲状态时,根据当前系统总的空闲块数量,设置最多预擦除空闲块梳理。按空闲块已擦除次数,由少到多选择空闲块进行预擦除,直到达到预擦除块数量上限。每生成一个预擦除的空闲块,记录其分配的时间戳,并记录到nand。在处理主机写命令过程,优先分配时间戳旧的预擦除空闲块。
62.在预擦除空闲块的时间戳流程中:为了尽量减少预擦除块保持在擦除状态的时间,在预擦除过程,需要记录其擦除的时间戳,在上电初始化过程需要恢复预擦除块的时间戳。
63.应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
64.在一个实施例中,如图4所示,提供了一种固态硬盘空闲块的预擦除装置400,该装置包括:
65.获取模块401,所述获取模块用于获取固态硬盘空闲块的预擦除请求;
66.阈值设置模块402,所述阈值设置模块用于在系统空闲状态时,根据系统总空闲块数量动态设定预擦除空闲块阈值;
67.第一判断模块403,所述第一判断模块用于判断已擦除空闲块数量是否低于所述预擦除空闲块阈值;
68.擦除模块404,所述擦除模块用于若已擦除空闲块数量低于所述预擦除空闲块阈值,则选择合适空闲块擦除;
69.时间戳记录模块405,所述时间戳记录模块用于在预擦除过程中,记录预擦除块擦除的时间戳,在突发写入时根据时间戳按照由旧到新的顺序分配预擦除空闲块。
70.在一个实施例中,擦除模块404用于:
71.若已擦除空闲块数量低于所述预擦除空闲块阈值,选择擦除次数最少的空闲块进行预擦除,并记录预擦除的时间戳。
72.在一个实施例中,如图5所示,提供了一种固态硬盘空闲块的预擦除装置400,该装置还包括第二判断模块406,用于:
73.在突发写入时判断是否有预擦除的空闲块;
74.若有则分配时间戳最旧的已擦除空闲块,并写入用户数据。
75.在一个实施例中,第二判断模块406还用于:
76.若无则分配擦除次数最少的空闲块进行擦除,并写入用户数据。
77.关于固态硬盘空闲块的预擦除装置的具体限定可以参见上文中对于固态硬盘空闲块的预擦除方法的限定,在此不再赘述。
78.在一个实施例中,提供了一种计算机设备,其内部结构图可以如图6所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种固态硬盘空闲块的预擦除方法。
79.本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
80.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
81.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
82.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
83.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
84.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1