CN115599308A - 固态硬盘的垃圾回收方法、装置、电子设备及存储介质 - Google Patents

固态硬盘的垃圾回收方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115599308A
CN115599308A CN202211498331.3A CN202211498331A CN115599308A CN 115599308 A CN115599308 A CN 115599308A CN 202211498331 A CN202211498331 A CN 202211498331A CN 115599308 A CN115599308 A CN 115599308A
Authority
CN
China
Prior art keywords
wear
priority
idle
block
dirty data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211498331.3A
Other languages
English (en)
Other versions
CN115599308B (zh
Inventor
王鑫
赵宝林
赵金
钟戟
秦文政
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202211498331.3A priority Critical patent/CN115599308B/zh
Publication of CN115599308A publication Critical patent/CN115599308A/zh
Application granted granted Critical
Publication of CN115599308B publication Critical patent/CN115599308B/zh
Priority to PCT/CN2023/098740 priority patent/WO2024113746A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例提供了一种固态硬盘的垃圾回收方法、装置、电子设备及存储介质,通过提供一种既可以针对脏数据块实现垃圾回收,同时又能针对脏数据块实现动态磨损均衡的垃圾回收方法,即针对脏数据块的有效数据占比划分有效数据占比优先级,以及针对脏数据块的磨损次数划分磨损优先级,并针对两项优先级分别建立对应的链表,用于实现脏数据块的垃圾回收,同时根据空闲块的磨损次数确定空闲优先级,以及建立对应的空闲块链表,用于实现动态磨损平衡,从而垃圾回收与磨损均衡可以采用各自的触发条件,既实现垃圾回收与磨损均衡的独立管理,又能提高空间回收率,且保证磨损均衡可控性,进一步降低写放大影响,从而提升固态硬盘的使用寿命。

Description

固态硬盘的垃圾回收方法、装置、电子设备及存储介质
技术领域
本发明涉及信息处理技术领域,特别是涉及一种固态硬盘的垃圾回收方法、一种固态硬盘的垃圾回收装置、一种电子设备以及一种计算机可读存储介质。
背景技术
随着计算机技术的不断发展,以及各类信息的爆发式增长,能够存储大量数据的硬盘逐渐成为人们生活中必不可少的一部分,其中,SSD(Solid State Disk或Solid StateDrive,固态硬盘)是目前较为主流的硬盘,随着MLC(Multi-Level Cell,多层单元闪存)、TLC(Trinary-Level Cell,三层单元闪存)、QLC(Quad-Level Cell,四层单元闪存)乃至未来的PLC(Penta-Level Cell,五层单元闪存)等多阶存储单元的发展,SSD的容量也正在迅速增长,同时相较于传统硬盘,因其采用闪存作为存储介质,读写速度更快,且SSD内部不存在任何机械部件,防震抗摔性更好,同时具备功耗更低、噪音更小、更轻便等优点,受到众多青睐。
但是对于SSD而言,由于SSD采用闪存作为存储介质,一方面使得SSD的可擦写次数有限,另一方面在向SSD写入数据时,必须采用先擦除再写入的方式,从而随着时间的推移,SSD中从未使用的存储空间会越来越少,导致性能明显下降,因此,为更好地利用SSD的空间,需要定期对SSD进行垃圾回收,SSD的垃圾回收指将写满数据的物理块的有效页迁移至一个新空闲块中,并将旧数据块擦除,原有数据块经擦除之后成为空闲块,可以用于再次写入数据。针对SSD的垃圾回收,当前一般通过在全盘可用空间低于某个阈值时触发垃圾回收,同时迁移有效数据以及擦除原物理块,以达到提高空间回收率目的,采用上述方式进行SSD的垃圾回收,虽考虑到了SSD的空间利用率,但对于磨损均衡的考量,实际上影响了空间回收率,进而影响了数据迁移过程中的写放大,同时也进一步影响了对磨损均衡的控制,使磨损均衡对硬盘性能的影响可控性差。
发明内容
本发明实施例是提供一种固态硬盘的垃圾回收方法、装置、电子设备以及计算机可读存储介质,以解决或部分解决现有固态硬盘的垃圾回收过程中,空间回收率较低,因磨损均衡可控性差,导致对硬盘性能影响较大的问题。
本发明实施例公开了一种固态硬盘的垃圾回收方法,所述固态硬盘包括多个脏数据块以及多个空闲块,所述方法包括:
获取所述固态硬盘的有效数据占比链表、磨损次数链表以及空闲块链表,所述有效数据占比链表对应所述脏数据块的有效数据占比优先级,所述磨损次数链表对应所述脏数据块的磨损优先级,所述空闲块链表对应所述空闲块的空闲优先级;
获取所述空闲块的数量,若所述空闲块的数量低于预设空闲块阈值,则遍历所述有效数据占比链表,按照所述有效数据占比优先级确定各个待回收脏数据块的回收顺序,并依次对各个所述待回收脏数据块进行垃圾回收;
将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块,并通过所述磨损次数链表查找所述目标脏数据块对应的目标磨损优先级;
根据所述固态硬盘当前是否存在数据交互,将所述目标脏数据块对应的目标磨损优先级调整至预设磨损阈值区间内,并通过所述空闲块链表查找空闲优先级最高的空闲块作为目标空闲块,将各个所述目标脏数据块中有效数据迁移至所述目标空闲块。
可选地,所述遍历所述有效数据占比链表,按照所述有效数据占比优先级确定各个待回收脏数据块的回收顺序,并依次对各个所述待回收脏数据块进行垃圾回收,包括:
遍历所述有效数据占比链表,按照所述有效数据占比优先级由小至大的顺序确定各个待回收脏数据块的回收顺序,以及各个所述待回收脏数据块对应的待回收磨损次数;
若所述待回收磨损次数大于预设磨损上限阈值,则上浮所述待回收脏数据块对应的有效数据占比优先级,延后所述待回收脏数据的垃圾回收;
若所述待回收磨损次数大于或等于预设磨损下限阈值,且小于或等于预设磨损上限阈值,则对所述待回收脏数据块进行垃圾回收。
可选地,所述上浮所述待回收脏数据块对应的有效数据占比优先级,包括:
获取所述待回收脏数据块的待回收有效数据占比,采用所述待回收有效数据占比、所述待回收磨损次数以及预设上浮偏移值进行计算,获得所述待回收脏数据块对应的上浮程度值,并根据所述上浮程度值上浮所述待回收脏数据块对应的有效数据占比优先级。
可选地,所述采用所述待回收有效数据占比、所述待回收磨损次数以及预设上浮偏移值进行计算,获得所述待回收脏数据块对应的上浮程度值,包括:
采用公式:
Figure 769497DEST_PATH_IMAGE001
计算得出所述待回收脏数据块对应的上浮程度值;
其中,G为预设上浮偏移值,VDFC为待回收有效数据占比,k为待回收有效数据占比的系数,PEC为待回收磨损次数,b为待回收磨损次数的系数。
可选地,所述将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块,包括:
采用公式:
Figure 787132DEST_PATH_IMAGE002
计算有效占比阈值,并将各个所述待回收脏数据块的有效数据占比与所述有效占比阈值进行比较;
将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块;
Figure 78436DEST_PATH_IMAGE003
为有效数据占比的设定阈值,Total为数据块总的数据帧个数,F为空闲块的 数量,a为空闲块的数量所对应的系数。
可选地,在所述将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块之前,所述方法还包括:
若所述待回收磨损次数大于预设磨损下限阈值,且小于预设常规磨损阈值,则获取所述待回收脏数据块的待回收有效数据占比,并采用所述待回收有效数据占比及空闲块的数量,计算有效占比阈值。
可选地,所述方法还包括:
将有效数据占比大于或等于有效占比阈值的待回收脏数据块作为滞后脏数据块,通过所述磨损次数链表查找所述滞后脏数据块对应的磨损优先级,并按照预设上浮程度值上浮所述滞后脏数据块对应的磨损优先级。
可选地,所述方法还包括:
将待回收磨损次数小于预设磨损下限阈值的待回收脏数据块作为强制脏数据块,并通过所述磨损次数链表查找所述强制脏数据块对应的强制磨损优先级;
根据所述固态硬盘当前是否存在数据交互,将所述强制脏数据块对应的强制磨损优先级调整至预设磨损阈值区间内,并通过所述空闲块链表查找空闲优先级最高的空闲块作为目标空闲块,将各个所述强制脏数据块中有效数据迁移至所述目标空闲块。
可选地,所述根据所述固态硬盘当前是否存在数据交互,将所述目标脏数据块对应的目标磨损优先级调整至预设磨损阈值区间内,包括:
若所述固态硬盘当前存在数据交互,则调整所述目标脏数据块对应的目标磨损优先级,使其处于第一预设磨损优先级与第二预设磨损优先级之间;
若所述固态硬盘当前不存在数据交互,则调整所述目标脏数据块对应的目标磨损优先级,使其处于第三预设磨损优先级与第四预设磨损优先级之间。
可选地,所述方法还包括:
若所述固态硬盘当前存在数据交互,则基于对所述目标脏数据块对应的目标磨损优先级的调整,控制所述目标脏数据块的磨损次数与平均磨损次数的偏差小于或等于第一预设偏差;
若所述固态硬盘当前不存在数据交互,则基于对所述目标脏数据块对应的目标磨损优先级的调整,控制所述目标脏数据块的磨损次数与平均磨损次数的偏差小于或等于第二预设偏差,其中,所述第二预设偏差小于所述第一预设偏差。
可选地,所述若所述固态硬盘当前存在数据交互,包括:
获取当前时间戳,以及所述固态硬盘最近一次进行数据交互对应的历史时间戳;
若所述当前时间戳与所述历史时间戳之间的差值小于或等于预设时间戳差阈值,则所述固态硬盘当前存在数据交互。
可选地,所述若所述固态硬盘当前不存在数据交互,包括:
若所述当前时间戳与所述历史时间戳之间的差值大于预设时间戳差阈值,则所述固态硬盘当前不存在数据交互。
可选地,在所述获取所述固态硬盘的有效数据占比链表、磨损次数链表以及空闲块链表之前,所述方法还包括:
针对所述固态硬盘的脏数据块设立多个有效数据占比优先级、磨损优先级;
针对每一所述有效数据占比优先级建立一个对应的有效数据占比链表,并针对每一所述磨损优先级建立一个对应的磨损次数链表;
获取所述固态硬盘中各个脏数据块的有效数据占比以及磨损次数;
采用各个所述脏数据块的有效数据占比进行有效优先级匹配,确定各个所述脏数据块对应的有效数据占比优先级,并将各个所述脏数据块的有效数据占比信息链接至与所述有效数据占比优先级对应的有效数据占比链表;
采用各个所述脏数据块的磨损次数进行磨损优先级匹配,确定各个所述脏数据块对应的磨损优先级,并将各个所述脏数据块的磨损次数信息链接至与所述磨损优先级对应的磨损次数链表。
可选地,所述方法还包括:
响应于针对所述固态硬盘的初始化操作,将有效数据占比和/或磨损次数发生变化的脏数据块作为变动脏数据块,并获取所述变动脏数据块对应的变动有效数据占比以及变动磨损次数;
采用所述变动有效数据占比进行有效优先级匹配,重新确定所述变动脏数据块对应的变动有效数据占比优先级,并将所述变动有效数据占比信息链接至与所述变动有效数据占比优先级对应的有效数据占比链表;
采用所述变动磨损次数进行磨损优先级匹配,确定所述变动脏数据块对应的变动磨损优先级,并将所述变动磨损次数信息链接至与所述变动磨损优先级对应的磨损次数链表。
可选地,所述采用所述变动有效数据占比进行有效优先级匹配,重新确定所述变动脏数据块对应的变动有效数据占比优先级,并将所述变动有效数据占比信息链接至与所述变动有效数据占比优先级对应的有效数据占比链表,包括:
采用所述变动有效数据占比进行有效优先级匹配,重新确定所述变动脏数据块对应的变动有效数据占比优先级;
若所述变动有效数据占比优先级与变化前的有效数据占比优先级相同,则采用所述变动有效数据占比信息对变化前的有效数据占比信息进行替换;
若所述变动有效数据占比优先级与变化前的有效数据占比优先级不同,则将所述变动有效数据占比信息链接至与所述变动有效数据占比优先级对应的有效数据占比链表,并从原先的有效数据占比链表中删除所述变动脏数据块变化前的有效数据占比信息。
可选地,所述采用所述变动磨损次数进行磨损优先级匹配,确定所述变动脏数据块对应的变动磨损优先级,并将所述变动磨损次数信息链接至与所述变动磨损优先级对应的磨损次数链表,包括:
采用所述变动磨损次数进行磨损优先级匹配,确定所述变动脏数据块对应的变动磨损优先级;
若所述变动磨损优先级与变化前的磨损优先级相同,则采用所述变动磨损次数信息对变化前的磨损次数信息进行替换;
若所述变动磨损优先级与变化前的磨损优先级不同,则将所述变动磨损次数信息链接至与所述变动磨损优先级对应的磨损次数链表,并从原先的磨损次数链表中删除所述变动脏数据块变化前的磨损次数信息。
可选地,所述方法还包括:
若检测到产生新脏数据块,则获取所述新脏数据块对应的新有效数据占比以及新磨损次数;
采用所述新有效数据占比进行有效优先级匹配,确定所述新脏数据块对应的新有效数据占比优先级,并将所述新有效数据占比信息链接至与所述新有效数据占比优先级对应的有效数据占比链表;
采用所述新磨损次数进行磨损优先级匹配,确定所述新脏数据块对应的新磨损优先级,并将所述新磨损次数信息链接至与所述新磨损优先级对应的磨损次数链表。
可选地,在所述获取所述固态硬盘的有效数据占比链表、磨损次数链表以及空闲块链表之前,所述方法还包括:
针对所述固态硬盘的空闲块设立多个空闲优先级,并针对每一所述空闲优先级建立一个对应的空闲块链表;
获取所述固态硬盘中各个空闲块对应的空闲块磨损次数,并采用所述空闲块磨损次数与空闲块平均磨损次数进行偏差计算;
根据计算结果进行空闲优先级匹配,确定所述空闲块对应的空闲优先级,并将所述空闲块磨损次数信息链接至与所述空闲优先级对应的空闲块链表。
可选地,所述方法还包括:
响应于针对所述固态硬盘的初始化操作,将空闲块磨损次数发生变化的空闲块作为变动空闲块,并获取所述变动空闲块对应的变动空闲块磨损次数;
采用所述变动空闲块磨损次数进行空闲优先级匹配,重新确定所述变动空闲块对应的变动空闲优先级,并将所述变动空闲块磨损次数信息链接至与所述变动空闲优先级对应的空闲块链表。
可选地,所述采用所述变动空闲块磨损次数进行空闲优先级匹配,重新确定所述变动空闲块对应的变动空闲优先级,并将所述变动空闲块磨损次数信息链接至与所述变动空闲优先级对应的空闲块链表,包括:
采用所述变动空闲块磨损次数进行空闲优先级匹配,重新确定所述变动空闲块对应的变动空闲优先级;
若所述变动空闲优先级与变化前的空闲优先级相同,则采用所述变动空闲块磨损次数信息对变化前的空闲块磨损次数信息进行替换;
若所述变动空闲优先级与变化前的空闲优先级不同,则将所述变动空闲块磨损次数信息链接至与所述变动空闲优先级对应的空闲块链表,并从原先的空闲块链表中删除所述变动空闲块变化前的空闲块磨损次数信息。
可选地,所述方法还包括:
若检测到产生新空闲块,则获取所述新空闲块对应的新空闲块磨损次数;
采用所述新空闲块磨损次数进行空闲优先级匹配,确定所述新空闲块对应的新空闲优先级,并将所述新空闲块磨损次数信息链接至与所述新空闲优先级对应的空闲块链表。
本发明实施例还公开了一种固态硬盘的垃圾回收装置,所述固态硬盘包括多个脏数据块以及多个空闲块,所述装置包括:
固态硬盘链表获取模块,用于获取所述固态硬盘的有效数据占比链表、磨损次数链表以及空闲块链表,所述有效数据占比链表对应所述脏数据块的有效数据占比优先级,所述磨损次数链表对应所述脏数据块的磨损优先级,所述空闲块链表对应所述空闲块的空闲优先级;
垃圾回收模块,用于获取所述空闲块的数量,若所述空闲块的数量低于预设空闲块阈值,则遍历所述有效数据占比链表,按照所述有效数据占比优先级确定各个待回收脏数据块的回收顺序,并依次对各个所述待回收脏数据块进行垃圾回收;
目标脏数据块确定模块,用于将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块,并通过所述磨损次数链表查找所述目标脏数据块对应的目标磨损优先级;
目标磨损优先级调整模块,用于根据所述固态硬盘当前是否存在数据交互,将所述目标脏数据块对应的目标磨损优先级调整至预设磨损阈值区间内,并通过所述空闲块链表查找空闲优先级最高的空闲块作为目标空闲块,将各个所述目标脏数据块中有效数据迁移至所述目标空闲块。
可选地,所述垃圾回收模块包括:
待回收脏数据块确定模块,用于遍历所述有效数据占比链表,按照所述有效数据占比优先级由小至大的顺序确定各个待回收脏数据块的回收顺序,以及各个所述待回收脏数据块对应的待回收磨损次数;
有效数据占比优先级上浮模块,用于若所述待回收磨损次数大于预设磨损上限阈值,则上浮所述待回收脏数据块对应的有效数据占比优先级,延后所述待回收脏数据的垃圾回收;
待回收脏数据块垃圾回收模块,用于若所述待回收磨损次数大于或等于预设磨损下限阈值,且小于或等于预设磨损上限阈值,则对所述待回收脏数据块进行垃圾回收。
可选地,所述有效数据占比优先级上浮模块具体用于:
获取所述待回收脏数据块的待回收有效数据占比,采用所述待回收有效数据占比、所述待回收磨损次数以及预设上浮偏移值进行计算,获得所述待回收脏数据块对应的上浮程度值,并根据所述上浮程度值上浮所述待回收脏数据块对应的有效数据占比优先级。
可选地,所述有效数据占比优先级上浮模块包括:
上浮程度值计算模块,用于采用公式:
Figure 814311DEST_PATH_IMAGE001
计算得出所述待回收脏数据块对应的上浮程度值;
其中,G为预设上浮偏移值,VDFC为待回收有效数据占比,k为待回收有效数据占比的系数,PEC为待回收磨损次数,b为待回收磨损次数的系数。
可选地,所述目标脏数据块确定模块包括:
有效占比阈值计算模块,用于采用公式:
Figure 482052DEST_PATH_IMAGE004
计算有效占比阈值,并将各个所述待回收脏数据块的有效数据占比与所述有效占比阈值进行比较;
目标脏数据块确定子模块,用于将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块;
Figure 619773DEST_PATH_IMAGE003
为有效数据占比的设定阈值,Total为数据块总的数据帧个数,F为空闲块的 数量,a为空闲块的数量所对应的系数。
可选地,所述装置还包括:
待回收有效数据占比获取模块,用于若所述待回收磨损次数大于预设磨损下限阈值,且小于预设常规磨损阈值,则获取所述待回收脏数据块的待回收有效数据占比,并采用所述待回收有效数据占比及空闲块的数量,计算有效占比阈值。
可选地,所述装置还包括:
滞后脏数据块确定模块,用于将有效数据占比大于或等于有效占比阈值的待回收脏数据块作为滞后脏数据块,通过所述磨损次数链表查找所述滞后脏数据块对应的磨损优先级,并按照预设上浮程度值上浮所述滞后脏数据块对应的磨损优先级。
可选地,所述装置还包括:
强制脏数据块确定模块,用于将待回收磨损次数小于预设磨损下限阈值的待回收脏数据块作为强制脏数据块,并通过所述磨损次数链表查找所述强制脏数据块对应的强制磨损优先级;
强制脏数据块数据迁移模块,用于根据所述固态硬盘当前是否存在数据交互,将所述强制脏数据块对应的强制磨损优先级调整至预设磨损阈值区间内,并通过所述空闲块链表查找空闲优先级最高的空闲块作为目标空闲块,将各个所述强制脏数据块中有效数据迁移至所述目标空闲块。
可选地,所述目标磨损优先级调整模块具体用于:
若所述固态硬盘当前存在数据交互,则调整所述目标脏数据块对应的目标磨损优先级,使其处于第一预设磨损优先级与第二预设磨损优先级之间;
若所述固态硬盘当前不存在数据交互,则调整所述目标脏数据块对应的目标磨损优先级,使其处于第三预设磨损优先级与第四预设磨损优先级之间。
可选地,所述装置还包括:
第一预设偏差控制模块,用于若所述固态硬盘当前存在数据交互,则基于对所述目标脏数据块对应的目标磨损优先级的调整,控制所述目标脏数据块的磨损次数与平均磨损次数的偏差小于或等于第一预设偏差;
第二预设偏差控制模块,用于若所述固态硬盘当前不存在数据交互,则基于对所述目标脏数据块对应的目标磨损优先级的调整,控制所述目标脏数据块的磨损次数与平均磨损次数的偏差小于或等于第二预设偏差,其中,所述第二预设偏差小于所述第一预设偏差。
可选地,所述目标磨损优先级调整模块包括:
时间戳获取模块,用于获取当前时间戳,以及所述固态硬盘最近一次进行数据交互对应的历史时间戳;
时间戳比较模块,用于若所述当前时间戳与所述历史时间戳之间的差值小于或等于预设时间戳差阈值,则所述固态硬盘当前存在数据交互。
可选地,所述目标磨损优先级调整模块还具体用于:
若所述当前时间戳与所述历史时间戳之间的差值大于预设时间戳差阈值,则所述固态硬盘当前不存在数据交互。
可选地,所述装置还包括:
优先级设立模块,用于针对所述固态硬盘的脏数据块设立多个有效数据占比优先级、磨损优先级;
链表建立模块,用于针对每一所述有效数据占比优先级建立一个对应的有效数据占比链表,并针对每一所述磨损优先级建立一个对应的磨损次数链表;
脏数据块数据获取模块,用于获取所述固态硬盘中各个脏数据块的有效数据占比以及磨损次数;
有效优先级匹配模块,用于采用各个所述脏数据块的有效数据占比进行有效优先级匹配,确定各个所述脏数据块对应的有效数据占比优先级,并将各个所述脏数据块的有效数据占比信息链接至与所述有效数据占比优先级对应的有效数据占比链表;
磨损优先级匹配模块,用于采用各个所述脏数据块的磨损次数进行磨损优先级匹配,确定各个所述脏数据块对应的磨损优先级,并将各个所述脏数据块的磨损次数信息链接至与所述磨损优先级对应的磨损次数链表。
可选地,所述装置还包括:
变动脏数据块确定模块,用于响应于针对所述固态硬盘的初始化操作,将有效数据占比和/或磨损次数发生变化的脏数据块作为变动脏数据块,并获取所述变动脏数据块对应的变动有效数据占比以及变动磨损次数;
变动有效优先级匹配模块,用于采用所述变动有效数据占比进行有效优先级匹配,重新确定所述变动脏数据块对应的变动有效数据占比优先级,并将所述变动有效数据占比信息链接至与所述变动有效数据占比优先级对应的有效数据占比链表;
变动磨损优先级匹配模块,用于采用所述变动磨损次数进行磨损优先级匹配,确定所述变动脏数据块对应的变动磨损优先级,并将所述变动磨损次数信息链接至与所述变动磨损优先级对应的磨损次数链表。
可选地,所述变动有效优先级匹配模块包括:
变动有效数据占比优先级确定模块,用于采用所述变动有效数据占比进行有效优先级匹配,重新确定所述变动脏数据块对应的变动有效数据占比优先级;
有效数据占比信息替换模块,用于若所述变动有效数据占比优先级与变化前的有效数据占比优先级相同,则采用所述变动有效数据占比信息对变化前的有效数据占比信息进行替换;
变动有效数据占比信息链接模块,用于若所述变动有效数据占比优先级与变化前的有效数据占比优先级不同,则将所述变动有效数据占比信息链接至与所述变动有效数据占比优先级对应的有效数据占比链表,并从原先的有效数据占比链表中删除所述变动脏数据块变化前的有效数据占比信息。
可选地,所述变动磨损优先级匹配模块包括:
变动磨损优先级确定模块,用于采用所述变动磨损次数进行磨损优先级匹配,确定所述变动脏数据块对应的变动磨损优先级;
磨损次数信息替换模块,用于若所述变动磨损优先级与变化前的磨损优先级相同,则采用所述变动磨损次数信息对变化前的磨损次数信息进行替换;
磨损次数信息链接模块,用于若所述变动磨损优先级与变化前的磨损优先级不同,则将所述变动磨损次数信息链接至与所述变动磨损优先级对应的磨损次数链表,并从原先的磨损次数链表中删除所述变动脏数据块变化前的磨损次数信息。
可选地,所述装置还包括:
新脏数据块确定模块,用于若检测到产生新脏数据块,则获取所述新脏数据块对应的新有效数据占比以及新磨损次数;
新有效优先级匹配模块,用于采用所述新有效数据占比进行有效优先级匹配,确定所述新脏数据块对应的新有效数据占比优先级,并将所述新有效数据占比信息链接至与所述新有效数据占比优先级对应的有效数据占比链表;
新磨损优先级匹配模块,用于采用所述新磨损次数进行磨损优先级匹配,确定所述新脏数据块对应的新磨损优先级,并将所述新磨损次数信息链接至与所述新磨损优先级对应的磨损次数链表。
可选地,所述装置还包括:
空闲优先级设立模块,用于针对所述固态硬盘的空闲块设立多个空闲优先级,并针对每一所述空闲优先级建立一个对应的空闲块链表;
空闲块磨损次数偏差计算模块,用于获取所述固态硬盘中各个空闲块对应的空闲块磨损次数,并采用所述空闲块磨损次数与空闲块平均磨损次数进行偏差计算;
空闲优先级匹配模块,用于根据计算结果进行空闲优先级匹配,确定所述空闲块对应的空闲优先级,并将所述空闲块磨损次数信息链接至与所述空闲优先级对应的空闲块链表。
可选地,所述装置还包括:
变动空闲块确定模块,用于响应于针对所述固态硬盘的初始化操作,将空闲块磨损次数发生变化的空闲块作为变动空闲块,并获取所述变动空闲块对应的变动空闲块磨损次数;
变动空闲优先级匹配模块,用于采用所述变动空闲块磨损次数进行空闲优先级匹配,重新确定所述变动空闲块对应的变动空闲优先级,并将所述变动空闲块磨损次数信息链接至与所述变动空闲优先级对应的空闲块链表。
可选地,所述变动空闲优先级匹配模块包括:
变动空闲优先级确定模块,用于采用所述变动空闲块磨损次数进行空闲优先级匹配,重新确定所述变动空闲块对应的变动空闲优先级;
变动空闲块磨损次数信息替换模块,用于若所述变动空闲优先级与变化前的空闲优先级相同,则采用所述变动空闲块磨损次数信息对变化前的空闲块磨损次数信息进行替换;
变动空闲块磨损次数信息链接模块,用于若所述变动空闲优先级与变化前的空闲优先级不同,则将所述变动空闲块磨损次数信息链接至与所述变动空闲优先级对应的空闲块链表,并从原先的空闲块链表中删除所述变动空闲块变化前的空闲块磨损次数信息。
可选地,所述装置还包括:
新空闲块确定模块,用于若检测到产生新空闲块,则获取所述新空闲块对应的新空闲块磨损次数;
新空闲优先级匹配模块,用于采用所述新空闲块磨损次数进行空闲优先级匹配,确定所述新空闲块对应的新空闲优先级,并将所述新空闲块磨损次数信息链接至与所述新空闲优先级对应的空闲块链表。
本发明实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现如本发明实施例所述的方法。
本发明实施例还公开了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本发明实施例所述的方法。
本发明实施例包括以下优点:
在本发明实施例中,提供了一种既可以针对固态硬盘中脏数据块实现垃圾回收,同时又能针对有效数据占比低于动态有效占比阈值的脏数据块实现动态磨损均衡的垃圾回收方法,即针对脏数据块的有效数据占比划分多个有效数据占比优先级,以及针对脏数据块的磨损次数划分多个磨损优先级,并针对两项优先级分别建立对应的链表,用于实现脏数据块的垃圾回收,同时根据空闲块的磨损次数确定空闲优先级,以及建立对应的空闲块链表,用于实现动态磨损平衡,从而垃圾回收与磨损均衡可以采用各自的触发条件,实现了垃圾回收与磨损均衡的独立管理,提高了垃圾回收的空间回收率,保证了磨损均衡的可控性,进一步降低了固态硬盘中写放大的影响,从而提升了固态硬盘的使用寿命。
附图说明
图1是本发明实施例中提供的一种固态硬盘的垃圾回收方法的步骤流程图;
图2是本发明实施例中提供的另一种固态硬盘的垃圾回收方法的步骤流程图;
图3是本发明实施例中提供的一种固态硬盘的垃圾回收装置的结构框图;
图4是本发明实施例中提供的一种计算机可读介质的示意图;
图5是本发明实施例中提供的一种电子设备的框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为了使本领域技术人员更好地理解本发明实施例中的技术方案,下面对本发明实施例中涉及的部分技术特征进行解释、说明:
脏数据块:表示存在错误数据和/或冲突数据的数据块,可以指在固态硬盘中可以按需进行垃圾回收的数据块。
空闲块:指可以用于写入数据的数据块,可以将脏数据块的有效数据迁移至空闲块,以实现固态硬盘的磨损均衡。
有效数据占比优先级:根据固态硬盘中脏数据块的有效数据占比而确定的优先级,用于表示脏数据块中有效数据占比所处的优先级,有效数据占比优先级越高,说明脏数据块中有效数据占比越高,越不需要进行数据迁移。
有效数据占比链表:一个有效数据占比链表可以对应一个有效数据占比优先级,可以将处于同一有效数据占比优先级的脏数据块链接至与该有效数据占比优先级对应的有效数据占比链表。
磨损优先级:根据固态硬盘中脏数据块的磨损次数而确定的优先级,用于表示脏数据块中磨损次数所处的优先级,磨损优先级越高,说明脏数据块中磨损次数越高,越不需要进行数据迁移。
磨损次数链表:一个磨损次数链表可以对应一个磨损优先级,可以将处于同一磨损优先级的脏数据块链接至与该磨损优先级对应的磨损次数链表。
空闲优先级:根据空闲块的磨损次数以及平均磨损次数进行偏差计算而确定的优先级,空闲优先级越高,说明对应的空闲块的磨损次数越高,可采用空闲优先级高的空闲块作为脏数据块的数据迁移块,以实现动态磨损平衡。
空闲块链表:一个空闲块链表可以对应一个空闲优先级,可以将处于同一空闲优先级的空闲块链接至与该空闲优先级对应的空闲块链表。
垃圾回收(Garbage Collection,GC):固态硬盘的垃圾回收指将写满数据的物理块的有效页迁移至一个新空闲块中,并将旧数据块擦除,原有数据块经擦除之后成为空闲块,可以用于再次写入数据。
写放大(Write Application,WA):闪存及固态硬盘中一种不良现象,即实际写入的物理数据量是写入数据量的多倍。
磨损均衡(Wear Leveling,WL):记录每一个块的磨损次数,在需要擦除或者写入数据时,可以尽量选择磨损次数相对较少的数据块,而磨损相对轻微、且长期没有产生垃圾页的块,可以主动将其中的有效数据迁移至磨损相对严重的块中,从而达到保持整个固态硬盘磨损均衡的效果,经过了磨损均衡的固态硬盘,使用寿命可以得到最大化。
作为一种示例,SSD(Solid State Disk或Solid State Drive,固态硬盘)是目前较为主流的硬盘,随着MLC(Multi-Level Cell,多层单元闪存)、TLC(Trinary-Level Cell,三层单元闪存)、QLC(Quad-Level Cell,四层单元闪存)乃至未来的PLC(Penta-LevelCell,五层单元闪存)等多阶存储单元的发展,SSD的容量也正在迅速增长。
但对于SSD而言,由于SSD采用闪存作为存储介质,一方面使得SSD的可擦写次数有限,另一方面在向SSD写入数据时,必须采用先擦除再写入的方式,从而随着时间的推移,SSD中从未使用的存储空间会越来越少,导致性能明显下降,因此,为更好地利用SSD的空间,需要定期对SSD进行垃圾回收,而在垃圾回收过程中,既要考虑硬盘空间的回收率,保证SSD能够源源不断且快速地提供空闲块,又要兼顾全盘的磨损均衡以及单个block(数据库中最小存储和处理单位)的磨损次数,从而保证SSD的可擦写次数/使用寿命。
目前而言,一般通过在全盘可用空间低于某个阈值时触发垃圾回收,同时迁移有效数据以及擦除原物理块方式,以达到提高空间回收率目的,采用上述方式进行SSD的垃圾回收,虽考虑到了SSD的空间利用率,但对于磨损均衡的考量,实际上影响了空间回收率,进而影响了数据迁移过程中的写放大,同时也进一步影响了对磨损均衡的控制,使磨损均衡对硬盘性能的影响可控性差。因此,高效可行的垃圾回收算法对固态硬盘的性能和寿命都起到至关重要的作用。
对此,本发明实施例的核心发明点之一在于:提供一种既可以针对固态硬盘中脏数据块实现垃圾回收,同时又能针对有效数据占比低于动态有效占比阈值的脏数据块实现动态磨损均衡的垃圾回收方法,即针对脏数据块的有效数据占比划分多个有效数据占比优先级,以及针对脏数据块的磨损次数划分多个磨损优先级,并针对两项优先级分别建立对应的链表,用于实现脏数据块的垃圾回收,同时根据空闲块的磨损次数确定空闲优先级,以及建立对应的空闲块链表,用于实现动态磨损平衡,从而垃圾回收与磨损均衡可以采用各自的触发条件,实现垃圾回收与磨损均衡的独立管理,提高垃圾回收的空间回收率,保证磨损均衡的可控性,进一步降低固态硬盘中写放大的影响,从而提升固态硬盘的使用寿命。
参照图1,示出了本发明实施例中提供的一种固态硬盘的垃圾回收方法的步骤流程图,其中,所述固态硬盘包括多个脏数据块以及多个空闲块,所述方法具体可以包括如下步骤:
步骤101,获取所述固态硬盘的有效数据占比链表、磨损次数链表以及空闲块链表,所述有效数据占比链表对应所述脏数据块的有效数据占比优先级,所述磨损次数链表对应所述脏数据块的磨损优先级,所述空闲块链表对应所述空闲块的空闲优先级;
在进行垃圾回收或者磨损均衡之前,可以先获取需要用到的链表,具体地,可以获取固态硬盘的有效数据占比链表、磨损次数链表以及空闲块链表,其中,有效数据占比链表对应脏数据块的有效数据占比优先级,磨损次数链表对应脏数据块的磨损优先级,空闲块链表对应空闲块的空闲优先级,从而在垃圾回收或磨损均衡过程中能够通过上述链表快速找到对应的脏数据块,提高垃圾回收及磨损均衡效率。
在本发明实施例中,可以根据脏数据块中的有效数据占比确定对应的有效数据占比优先级以及有效数据占比链表,同时可以根据磨损次数确定对应的磨损优先级以及磨损次数链表,则每一个脏数据块可以既对应有效数据占比链表,又对应磨损次数链表。
作为一种可选实施例,在获取固态硬盘的有效数据占比链表、磨损次数链表以及空闲块链表之前,可以针对固态硬盘的脏数据块设立多个有效数据占比优先级、磨损优先级,如可以针对固态硬盘中脏数据块的有效数据占比作为划分依据,以多个有效占比区间值作为划分方式,实现有效数据占比优先级的设立,如可以以有效数据占比5%~10%作为一个区间值,11%~20%作为一个区间值,21%~30%作为一个区间值等,每个区间值可以对应一个有效数据占比优先级,如按有效数据占比区间值由大到小顺序设置为一级、二级、三级等,或按有效数据占比区间值由小到大顺序设置为一级、二级、三级等,只要保证在需要用到有效优先级时,有效优先级的由高至低顺序是按照有效数据占比由大到小排列即可,同理,磨损优先级的划分方式与有效数据占比优先级的划分方式类似,此处不再赘述,可以理解的是,本发明对此不作限制。
接着可以针对每一有效数据占比优先级建立一个对应的有效数据占比链表,并针对每一磨损优先级建立一个对应的磨损次数链表,同时可以获取固态硬盘中各个脏数据块的有效数据占比以及磨损次数,接着采用各个脏数据块的有效数据占比进行有效优先级匹配,确定各个脏数据块对应的有效数据占比优先级,并将各个脏数据块的有效数据占比信息链接至与有效数据占比优先级对应的有效数据占比链表,同时可以采用各个脏数据块的磨损次数进行磨损优先级匹配,确定各个脏数据块对应的磨损优先级,并将各个脏数据块的磨损次数信息链接至与磨损优先级对应的磨损次数链表。
作为一种示例,如某个脏数据块的有效数据占比为16%,则可以将该脏数据块的有效数据占比16%与各个有效数据占比优先级的区间值进行有效优先级匹配,如与区间值11%~20%的有效优先级匹配成功,则可以确定该脏数据块对应的是区间值11%~20%的有效数据占比优先级,并将该脏数据块对应的有效数据占比信息链接至与区间值在11%~20%的有效数据占比优先级对应的有效数据占比链表,同理,脏数据块对应的磨损优先级确定方式与有效数据占比优先级确定方式类似,此处不再赘述,可以理解的是,本发明对此不作限制。
通过上述方式,可以根据各个脏数据块的有效数据占比确定各个脏数据块对应的有效数据占比优先级,以及根据各个脏数据块的磨损次数确定各个脏数据块对应的磨损优先级,并可以同时链接至与有效数据占比优先级对应的有效数据占比链表,以及与磨损优先级对应的磨损次数链表,即一个脏数据块可以同时对应两个链表。
众所周知,固态硬盘中的脏数据块并不是一成不变的,特别是随着垃圾回收、磨损均衡以及新数据写入等一系列操作,脏数据块的数量以及各个脏数据块对应的有效数据占比以及磨损次数信息会随之产生变化,也就意味着脏数据块所对应的有效数据占比优先级、磨损优先级可能也会发生改变,从而需要对数据发生变化的脏数据块对应的有效数据占比优先级以及磨损优先级进行重新确定,并在任一项优先级发生变化时,将该脏数据块的信息链接至变化后的优先级对应链表中,以确保固态硬盘中各个脏数据块的有效数据占比能够正确对应有效数据占比优先级,以及磨损次数能够正确对应磨损优先级,保证垃圾回收的准确性以及可靠性。
在具体的实现中,可以响应于针对固态硬盘的初始化操作,将有效数据占比和/或磨损次数发生变化的脏数据块作为变动脏数据块,并获取变动脏数据块对应的变动有效数据占比以及变动磨损次数,接着采用变动有效数据占比进行有效优先级匹配,重新确定变动脏数据块对应的变动有效数据占比优先级,并将变动有效数据占比信息链接至与变动有效数据占比优先级对应的有效数据占比链表,从而可以通过将发生变化的脏数据块的有效数据占比与每个有效数据占比优先级对应的优先级区间值进行有效优先级匹配,重新确定对应的有效数据占比优先级,并将发生变化的脏数据块最新信息链接至新确定优先级对应的有效数据占比链表,保证信息的实时性。
进一步地,因有效数据占比优先级的划分可以是以有效数据占比范围为划分依据的区间值划分,则可能存在即使脏数据块的有效数据占比发生变化,但是变动脏数据块变化后的有效数据占比对应的有效数据占比优先级并没有发生改变的情况,从而上述有效优先级匹配以及信息链接过程具体可以为:采用变动有效数据占比进行有效优先级匹配,重新确定变动脏数据块对应的变动有效数据占比优先级,若变动有效数据占比优先级与变化前的有效数据占比优先级相同,则采用变动有效数据占比信息对变化前的有效数据占比信息进行替换,若变动有效数据占比优先级与变化前的有效数据占比优先级不同,则将变动有效数据占比信息链接至与变动有效数据占比优先级对应的有效数据占比链表,并从原先的有效数据占比链表中删除变动脏数据块变化前的有效数据占比信息,从而通过针对有效数据占比优先级是否发生变化,采用不同的有效数据占比信息处理方式,进一步保证脏数据块中信息链接的准确性。
同理,可以采用变动磨损次数进行磨损优先级匹配,重新确定变动脏数据块对应的变动磨损优先级,并将变动磨损次数信息链接至与变动磨损优先级对应的磨损次数链表,从而可以通过将发生变化的脏数据块的磨损次数与每个磨损优先级对应的优先级区间值进行磨损优先级匹配,重新确定对应的磨损优先级,并将发生变化的脏数据块最新信息链接至新确定优先级对应的磨损次数链表,保证信息的实时性。
进一步地,因磨损优先级的划分可以是以磨损次数范围为划分依据的区间值划分,则可能存在即使脏数据块的磨损次数发生变化,但是变动脏数据块变化后的磨损次数对应的磨损优先级并没有发生改变的情况,从而上述磨损优先级匹配以及信息链接过程具体可以为:采用变动磨损次数进行磨损优先级匹配,重新确定变动脏数据块对应的变动磨损优先级,若变动磨损优先级与变化前的磨损优先级相同,则采用变动磨损次数信息对变化前的磨损次数信息进行替换,若变动磨损优先级与变化前的磨损优先级不同,则将变动磨损次数信息链接至与变动磨损优先级对应的磨损次数链表,并从原先的磨损次数链表中删除变动脏数据块变化前的磨损次数信息,从而通过针对磨损优先级是否发生变化,采用不同的磨损次数信息处理方式,进一步保证脏数据块中信息链接的准确性。
作为一种可选实施例,固态硬盘中可能不时会产生新的脏数据块,则当检测到产生新脏数据块时,可以获取新脏数据块对应的新有效数据占比以及新磨损次数,并采用新有效数据占比进行有效优先级匹配,确定新脏数据块对应的新有效数据占比优先级,然后将新有效数据占比信息链接至与新有效数据占比优先级对应的有效数据占比链表,同时采用新磨损次数进行磨损优先级匹配,确定新脏数据块对应的新磨损优先级,并将新磨损次数信息链接至与新磨损优先级对应的磨损次数链表,从而通过上述方式,可以及时对产生的新脏数据块进行有效数据占比优先级以及磨损优先级的确定,并链接至对应的两类链表中,实现对固态硬盘中脏数据块的实时管理。
固态硬盘中包括脏数据块,也包括可以写入新数据的空闲块,从而可以针对固态硬盘中的空闲块划分多个空闲优先级,并建立空闲优先级对应的空闲块链表,用于动态磨损平衡,则在获取固态硬盘的有效数据占比链表、磨损次数链表以及空闲块链表之前,还可以针对固态硬盘的空闲块设立多个空闲优先级,并针对每一空闲优先级建立一个对应的空闲块链表,同时获取固态硬盘中各个空闲块对应的空闲块磨损次数,并采用空闲块磨损次数与空闲块平均磨损次数进行偏差计算,根据计算结果进行空闲优先级匹配,确定空闲块对应的空闲优先级,并将空闲块磨损次数信息链接至与空闲优先级对应的空闲块链表,同理,可以采用区间值划分的方式进行空闲优先级的划分,空闲优先级的划分方式及空闲块的空闲优先级确定方式与上述有效数据占比优先级的类似,此处不再赘述,可以理解的是,本发明对此不作限制。
同样地,固态硬盘中的空闲块也不是一成不变的,需要对发生变化的空闲块对应的空闲优先级进行重新确定,并在空闲优先级发生变化时,将该空闲块的信息链接至变化后的空闲快链表中,以确保固态硬盘中各个空闲块能够对应正确的空闲优先级,从而保证动态磨损平衡的准确性以及可靠性。
在具体的实现中,可以响应于针对固态硬盘的初始化操作,将空闲块磨损次数发生变化的空闲块作为变动空闲块,并获取变动空闲块对应的变动空闲块磨损次数,接着采用变动空闲块磨损次数进行空闲优先级匹配,重新确定变动空闲块对应的变动空闲优先级,并将变动空闲块磨损次数信息链接至与变动空闲优先级对应的空闲块链表,以保证信息的实时性。
进一步地,空闲优先级的划分可以是以空闲块磨损次数范围为划分依据的区间值划分,则可能存在即使空闲块的空闲块磨损次数发生变化,但是变动空闲块变化后的空闲块磨损次数对应的空闲优先级并没有发生改变的情况,从而上述空闲优先级匹配以及信息链接过程具体可以为:采用变动空闲块磨损次数进行空闲优先级匹配,重新确定变动空闲块对应的变动空闲优先级,若变动空闲优先级与变化前的空闲优先级相同,则采用变动空闲块磨损次数信息对变化前的空闲块磨损次数信息进行替换,若变动空闲优先级与变化前的空闲优先级不同,则将变动空闲块磨损次数信息链接至与变动空闲优先级对应的空闲块链表,并从原先的空闲块链表中删除变动空闲块变化前的空闲块磨损次数信息,从而通过针对空闲优先级是否发生变化,采用不同的空闲块信息处理方式,进一步保证空闲块中信息链接的准确性。
同样地,固态硬盘中也会不时产生新的空闲块,则当检测到产生新空闲块时,可以获取新空闲块对应的新空闲块磨损次数,并采用新空闲块磨损次数进行空闲优先级匹配,确定新空闲块对应的新空闲优先级,并将新空闲块磨损次数信息链接至与新空闲优先级对应的空闲块链表,从而通过上述方式,可以及时对产生的新空闲块进行空闲优先级的确定,并链接至对应的空闲块链表中,实现对固态硬盘中空闲块的实时管理。
步骤102,获取所述空闲块的数量,若所述空闲块的数量低于预设空闲块阈值,则遍历所述有效数据占比链表,按照所述有效数据占比优先级确定各个待回收脏数据块的回收顺序,并依次对各个所述待回收脏数据块进行垃圾回收;
固态硬盘中空闲块的数量可以反映固态硬盘当前的空余情况,即体现了固态硬盘的可利用空间率,则可以以空闲块的数量作为垃圾回收的触发条件,若当前空闲块的数量低于某个数值,说明固态硬盘的当前可用空间率较低,则可以采用贪婪算法(greedyalgorithm),通过将有效数据占比优先级由小至大顺序作为遍历顺序(有效数据占比优先级小,说明该有效数据占比优先级对应的脏数据块中有效数据占比小,越需要进行垃圾回收,有效数据占比优先级大,说明该有效数据占比优先级对应的脏数据块中有效数据占比大,对其进行垃圾回收的必要性相对较小),对固态硬盘中各个有效数据占比链表进行遍历,快速查找需进行垃圾回收的待回收数据块,并进行垃圾回收。
具体地,可以获取空闲块的数量,若空闲块的数量低于预设空闲块阈值,则遍历有效数据占比链表,按照有效数据占比优先级由小至大的顺序确定各个待回收脏数据块,并依次对各个待回收脏数据块进行垃圾回收,如可以针对固态硬盘的空闲块预先设定一个空闲块的数量阈值,假设为80,若检测到固态硬盘当前的空闲块的数量小于80,则可以采用上述方式遍历有效数据占比链表,快速确定待回收数据块,从而可以通过有效数据占比链表中的脏数据块信息快速确定需要进行垃圾回收的待回收脏数据块,并通过对待回收脏数据块进行垃圾回收,以提高空间利用率,同时采用贪婪算法进行垃圾回收,也可以降低固态硬盘的写放大。
步骤103,将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块,并通过所述磨损次数链表查找所述目标脏数据块对应的目标磨损优先级;
在对待回收数据块进行垃圾回收之后,还需考虑针对待回收数据块的磨损均衡,以提高固态硬盘的使用寿命,一般可以采用脏数据块中有效数据占比作为判断依据,确定是否需要对其进行磨损均衡,假设某个脏数据块中有效数据占比小于固态硬盘的有效占比阈值,说明该脏数据块中的有效数据占比较低,无用数据较多,此时可以对其进行磨损均衡,在具体的实现中,可以将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块,并通过磨损次数链表查找目标脏数据块对应的目标磨损优先级,以在后续动态磨损均衡过程中可以对目标磨损优先级进行调整,控制磨损均衡的强度。
步骤104,根据所述固态硬盘当前是否存在数据交互,将所述目标脏数据块对应的目标磨损优先级调整至预设磨损阈值区间内,并通过所述空闲块链表查找空闲优先级最高的空闲块作为目标空闲块,将各个所述目标脏数据块中有效数据迁移至所述目标空闲块。
在针对目标脏数据块的动态磨损均衡过程中,磨损均衡的强度可以根据固态硬盘当前是否存在数据交互,进行对应的调节,而固态硬盘的数据交互可以是与某个主机间的数据交互(如与主机间存在数据交互,可以记为有HOST I/O,如与主机间不存在数据交互,可以记为无HOST I/O),如固态硬盘当前存在数据交互,则为了减小磨损均衡对正常数据交互的影响,可以减小磨损均衡的强度,而当固态硬盘当前不存在数据交互时,则可以适当加大磨损均衡的强度,而对磨损均衡强度的调整,可以通过对目标脏数据块对应的目标磨损优先级的调整实现,具体地,可以根据固态硬盘当前是否存在数据交互,将目标脏数据块对应的目标磨损优先级调整至预设磨损阈值区间内。并且在对目标磨损优先级进行调整之后,可以将目标脏数据块的有效数据迁移至空闲块,具体地,可以通过空闲块链表查找空闲优先级最高的空闲块作为目标空闲块,并将各个目标脏数据块中有效数据迁移至目标空闲块,实现目标脏数据块的磨损均衡,从而保证了磨损均衡的可控性。
需要说明的是,本发明实施例包括但不限于上述示例,可以理解的是,本领域技术人员在本发明实施例的思想指导下,还可以根据实际需求进行设置,本发明对此不作限制。
在本发明实施例中,提供了一种既可以针对固态硬盘中脏数据块实现垃圾回收,同时又能针对有效数据占比低于动态有效占比阈值的脏数据块实现动态磨损均衡的垃圾回收方法,即针对脏数据块的有效数据占比划分多个有效数据占比优先级,以及针对脏数据块的磨损次数划分多个磨损优先级,并针对两项优先级分别建立对应的链表,用于实现脏数据块的垃圾回收,同时根据空闲块的磨损次数确定空闲优先级,以及建立对应的空闲块链表,用于实现动态磨损平衡,从而垃圾回收与磨损均衡可以采用各自的触发条件,实现了垃圾回收与磨损均衡的独立管理,提高了垃圾回收的空间回收率,保证了磨损均衡的可控性,进一步降低了固态硬盘中写放大的影响,从而提升了固态硬盘的使用寿命。
参照图2,示出了本发明实施例中提供的另一种固态硬盘的垃圾回收方法的步骤流程图,其中,所述固态硬盘包括多个脏数据块以及多个空闲块,所述方法具体可以包括如下步骤:
步骤201,获取所述固态硬盘的有效数据占比链表、磨损次数链表以及空闲块链表,所述有效数据占比链表对应所述脏数据块的有效数据占比优先级,所述磨损次数链表对应所述脏数据块的磨损优先级,所述空闲块链表对应所述空闲块的空闲优先级;
因前述实施例中对此部分内容进行了详细的解释说明,此处不再赘述。
步骤202,获取所述空闲块的数量,若所述空闲块的数量低于预设空闲块阈值,则遍历所述有效数据占比链表,按照所述有效数据占比优先级确定各个待回收脏数据块的回收顺序,以及各个所述待回收脏数据块对应的待回收磨损次数;
因前述实施例中对待回收脏数据块的确定进行了详细的解释说明,此处不再赘述,本发明实例中,在确定各个待回收脏数据块对应的回收顺序的同时,还需获取各个待回收脏数据块对应的待回收磨损次数,以根据待回收磨损次数进一步判断是否需要立即对待回收脏数据块进行垃圾回收。
步骤203,若所述待回收磨损次数大于预设磨损上限阈值,则上浮所述待回收脏数据块对应的有效数据占比优先级,延后所述待回收脏数据的垃圾回收;
在具体的实现中,固态硬盘中存在磨损次数较大的脏数据块,磨损次数越大,说明读写数据次数越多,相较于磨损次数小的脏数据块,垃圾回收的必要性较小,从而可以选择放弃或者滞后此类脏数据块的垃圾回收,因此可以针对脏数据块的磨损次数预先设置磨损上限阈值,并在进行垃圾回收时,将待回收脏数据块的磨损次数与预设磨损上限阈值进行比对,若待回收磨损次数大于预设磨损上限阈值,则上浮待回收脏数据块对应的有效数据占比优先级,以达到延后待回收脏数据的垃圾回收的目的。
进一步地,上浮待回收脏数据块对应的有效数据占比优先级,具体可以为:获取待回收脏数据块的待回收有效数据占比,采用待回收有效数据占比、待回收磨损次数以及预设上浮偏移值进行计算,获得待回收脏数据块对应的上浮程度值,并根据上浮程度值上浮待回收脏数据块对应的有效数据占比优先级,通过垃圾回收算法计算上浮程度,从而实现对有效数据占比优先级的调整。
作为一种可选实施例,上浮程度值的计算过程,具体可以为采用公式:
Figure 816399DEST_PATH_IMAGE001
计算得出待回收脏数据块对应的上浮程度值;
其中,G为预设上浮偏移值,VDFC为待回收有效数据占比,k为待回收有效数据占比的系数,PEC为待回收磨损次数,b为待回收磨损次数的系数,需要说明的是,公式中的预设上浮偏移值以及各项系数均为了保证上浮程度值的合理性,在实际应用中,本领域技术人员可以根据实际情况进行设定,本发明对此不作限制。
步骤204,若所述待回收磨损次数大于或等于预设磨损下限阈值,且小于或等于预设磨损上限阈值,则对所述待回收脏数据块进行垃圾回收;
当待回收脏数据块的待回收磨损次数大于或等于预设磨损下限阈值,且小于或等于预设磨损上限阈值时,说明该待回收脏数据块的磨损次数在可进行垃圾回收的正常范围内,则可以对其进行垃圾回收。
步骤205,将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块,并通过所述磨损次数链表查找所述目标脏数据块对应的目标磨损优先级;
因前述实施例中对目标脏数据块、以及目标脏数据块对应的目标磨损优先级的确定进行了详细的解释说明,此处不再赘述。
作为一种可选实施例,在将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块之前,还可以通过判断待回收脏数据块对应的磨损次数是否处于某个数值区间,以确定是否触发磨损均衡,具体地,可以根据实际情况预先设定一个常规磨损阈值,如可以根据实际需求将常规磨损阈值设定为比预设磨损下限阈值稍微大一点的数值,例如将常规磨损阈值设定为预设磨损下限阈值+10,并可以将预设磨损下限阈值与预设常规磨损阈值范围间的数值确定为磨损均衡触发值,若待回收磨损次数大于预设磨损下限阈值,且小于预设常规磨损阈值,则触发磨损均衡,同时获取待回收脏数据块的待回收有效数据占比,并采用待回收有效数据占比及空闲块的数量,计算有效占比阈值,以便后续过程中目标脏数据块的确定。
进一步地,针对目标脏数据块的确定过程,具体可以为采用公式:
Figure 305149DEST_PATH_IMAGE004
计算有效占比阈值,并将各个待回收脏数据块的有效数据占比与有效占比阈值进 行比较,将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块,其中,Total为数据块总的数据帧个数,
Figure 511002DEST_PATH_IMAGE003
为有效数据占比的设定阈值,F为空闲块的数量,a为 空闲块的数量所对应的系数,有效占比阈值的范围为磨损均衡稳态时有效数据占比平均值 至数据块总的数据帧个数之间,有效数据占比的设定阈值可以根据写放大的倍数确定,具 体确定方式可以为:
Figure 237650DEST_PATH_IMAGE005
Figure 870757DEST_PATH_IMAGE006
其中,WA为写放大的倍数,举个例子,假设写放大的倍数为16倍,则通过计算可以得出有效数据占比的设定阈值为93.75,特别的,当空闲块的数量与预设空闲块阈值相等时,有效占比阈值等于数据块总的数据帧个数,即高于垃圾回收水位线时,磨损均衡不再考虑脏数据块的有效数据占比,从而当空闲块的数量较低时,主要保证空间回收率,而空闲块的数量较高时,主要保证磨损均衡,且需要说明的是,公式中的设定阈值以及系数均为了保证有限占比阈值的合理性,在实际应用中,本领域技术人员可以根据实际情况进行设定,本发明对此不作限制。
在一种可选实施例中,当待回收脏数据块的有效数据占比大于或等于有效占比阈值时,说明该待回收脏数据块暂时不需要进行磨损均衡,则可以上浮其对应的磨损次数优先级,延后磨损均衡,同时可以继续选择其他数据块进行磨损均衡,具体地,可以将有效数据占比大于或等于有效占比阈值的待回收脏数据块作为滞后脏数据块,通过磨损次数链表查找滞后脏数据块对应的磨损优先级,并按照预设上浮程度值上浮滞后脏数据块对应的磨损优先级,通过将有效数据占比较大的待回收脏数据块进行磨损均衡滞后处理,可以减少不必要的磨损均衡,减少工作量,从而提升磨损均衡效率。
在一种可选实施例中,固态硬盘中存在磨损次数较小的脏数据块,这些脏数据块磨损相对轻微、且长期没有产生垃圾页,可以对其进行强制磨损均衡,否则容易出现磨损均衡不可控的情况,具体地,可以将待回收磨损次数小于预设磨损下限阈值的待回收脏数据块作为强制脏数据块,并通过磨损次数链表查找强制脏数据块对应的强制磨损优先级,接着根据固态硬盘当前是否存在数据交互,将强制脏数据块对应的强制磨损优先级调整至预设磨损阈值区间内,并通过空闲块链表查找空闲优先级最高的空闲块作为目标空闲块,将各个强制脏数据块中有效数据迁移至目标空闲块,因前述内容对磨损均衡的过程进行了详细说明,此处不再赘述,在该过程中,通过对磨损次数较小的脏数据块的强制磨损均衡,从而达到保持整个固态硬盘磨损均衡的效果,提升固态硬盘的使用寿命。
步骤206,若所述固态硬盘当前存在数据交互,则调整所述目标脏数据块对应的目标磨损优先级,使其处于第一预设磨损优先级与第二预设磨损优先级之间;
由前述内容可知,可以根据固态硬盘当前存在数据交互情况,对应调整磨损均衡强度,而对磨损均衡强度的调整,可以通过对目标脏数据块对应的目标磨损优先级的调整实现,则当固态硬盘当前存在数据交互时,可以调整目标脏数据块对应的目标磨损优先级,使其处于第一预设磨损优先级与第二预设磨损优先级之间,而基于对目标脏数据块对应的目标磨损优先级的调整,可以控制目标脏数据块的磨损次数与平均磨损次数的偏差小于或等于第一预设偏差,如控制磨损次数与平均磨损次数的偏差小于或等于80,从而针对固态硬盘当前存在数据交互情况,实现减小磨损均衡强度,减小对数据交互的影响。
步骤207,若所述固态硬盘当前不存在数据交互,则调整所述目标脏数据块对应的目标磨损优先级,使其处于第三预设磨损优先级与第四预设磨损优先级之间;
而当固态硬盘当前不存在数据交互时,可以调整目标脏数据块对应的目标磨损优先级,使其处于第三预设磨损优先级与第四预设磨损优先级之间,而基于对目标脏数据块对应的目标磨损优先级的调整,可以控制目标脏数据块的磨损次数与平均磨损次数的偏差小于或等于第二预设偏差,如控制磨损次数与平均磨损次数的偏差小于或等于50,从而针对固态硬盘当前不存在数据交互情况,实现加强磨损均衡强度,达到更好的磨损均衡效果。
值得说明的是,上述示例中的50表示磨损均衡控制力度更强一点,80更弱一点,对于偏差的设定,可根据实际需求适当调整,且由前述有效占比阈值的计算公式可知,在磨损均衡过程中同时考虑还到了脏数据块的有效数据占比,固态硬盘的空闲块的数量,以保证写放大和低水位线时的空间回收率,可以理解的是,本发明对此不作限制。
在一种可选实施例中,可以通过时间戳比较方式确定固态硬盘当前是否存在数据交互,具体地,可以获取当前时间戳,以及固态硬盘最近一次进行数据交互对应的历史时间戳,并采用当前时间戳减去历史时间戳,若两者之间的差值小于或等于预设时间戳差阈值,则说明在预设时间间隔内,固态硬盘与外部(如主机)存在数据往来,即固态硬盘当前存在数据交互,若两者之间差值大于预设时间戳差阈值,则说明在预设时间间隔内,固态硬盘与外部(如主机)并不存在数据往来,即固态硬盘当前不存在数据交互,从而通过时间戳比较的方式确定固态硬盘当前的数据交互状态,以根据不同的数据交互状态实现不同磨损均衡方式。
步骤208,通过所述空闲块链表查找空闲优先级最高的空闲块作为目标空闲块,将各个所述目标脏数据块中有效数据迁移至所述目标空闲块。
因前述实施例中对此部分内容进行了详细的解释说明,此处不再赘述。
需要说明的是,本发明实施例包括但不限于上述示例,可以理解的是,本领域技术人员在本发明实施例的思想指导下,还可以根据实际需求进行设置,本发明对此不作限制。
在本发明实施例中,提供了一种既可以针对固态硬盘中脏数据块实现垃圾回收,同时又能针对有效数据占比低于动态有效占比阈值的脏数据块实现动态磨损均衡的垃圾回收方法,即针对脏数据块的有效数据占比划分多个有效数据占比优先级,以及针对脏数据块的磨损次数划分多个磨损优先级,并针对两项优先级分别建立对应的链表,用于实现脏数据块的垃圾回收,同时根据空闲块的磨损次数确定空闲优先级,以及建立对应的空闲块链表,用于实现动态磨损平衡,从而垃圾回收与磨损均衡可以采用各自的触发条件,实现了垃圾回收与磨损均衡的独立管理,提高了垃圾回收的空间回收率,保证了磨损均衡的可控性,进一步降低了固态硬盘中写放大的影响,从而提升了固态硬盘的使用寿命。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了本发明实施例中提供的一种固态硬盘的垃圾回收装置的结构框图,具体可以包括如下模块:
固态硬盘链表获取模块301,用于获取所述固态硬盘的有效数据占比链表、磨损次数链表以及空闲块链表,所述有效数据占比链表对应所述脏数据块的有效数据占比优先级,所述磨损次数链表对应所述脏数据块的磨损优先级,所述空闲块链表对应所述空闲块的空闲优先级;
垃圾回收模块302,用于获取所述空闲块的数量,若所述空闲块的数量低于预设空闲块阈值,则遍历所述有效数据占比链表,按照所述有效数据占比优先级确定各个待回收脏数据块的回收顺序,并依次对各个所述待回收脏数据块进行垃圾回收;
目标脏数据块确定模块303,用于将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块,并通过所述磨损次数链表查找所述目标脏数据块对应的目标磨损优先级;
目标磨损优先级调整模块304,用于根据所述固态硬盘当前是否存在数据交互,将所述目标脏数据块对应的目标磨损优先级调整至预设磨损阈值区间内,并通过所述空闲块链表查找空闲优先级最高的空闲块作为目标空闲块,将各个所述目标脏数据块中有效数据迁移至所述目标空闲块。
在一种可选实施例中,所述垃圾回收模块302包括:
待回收脏数据块确定模块,用于遍历所述有效数据占比链表,按照所述有效数据占比优先级由小至大的顺序确定各个待回收脏数据块的回收顺序,以及各个所述待回收脏数据块对应的待回收磨损次数;
有效数据占比优先级上浮模块,用于若所述待回收磨损次数大于预设磨损上限阈值,则上浮所述待回收脏数据块对应的有效数据占比优先级,延后所述待回收脏数据的垃圾回收;
待回收脏数据块垃圾回收模块302,用于若所述待回收磨损次数大于或等于预设磨损下限阈值,且小于或等于预设磨损上限阈值,则对所述待回收脏数据块进行垃圾回收。
在一种可选实施例中,所述有效数据占比优先级上浮模块具体用于:
获取所述待回收脏数据块的待回收有效数据占比,采用所述待回收有效数据占比、所述待回收磨损次数以及预设上浮偏移值进行计算,获得所述待回收脏数据块对应的上浮程度值,并根据所述上浮程度值上浮所述待回收脏数据块对应的有效数据占比优先级。
在一种可选实施例中,所述有效数据占比优先级上浮模块包括:
上浮程度值计算模块,用于采用公式:
Figure 315644DEST_PATH_IMAGE001
计算得出所述待回收脏数据块对应的上浮程度值;
其中,G为预设上浮偏移值,VDFC为待回收有效数据占比,k为待回收有效数据占比的系数,PEC为待回收磨损次数,b为待回收磨损次数的系数。
在一种可选实施例中,所述目标脏数据块确定模块303包括:
有效占比阈值计算模块,用于采用公式:
Figure 59609DEST_PATH_IMAGE002
计算有效占比阈值,并将各个所述待回收脏数据块的有效数据占比与所述有效占比阈值进行比较;
目标脏数据块确定子模块,用于将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块;
Figure 906343DEST_PATH_IMAGE003
为有效数据占比的设定阈值,Total为数据块总的数据帧个数,F为空闲块的 数量,a为空闲块的数量所对应的系数。
在一种可选实施例中,所述装置还包括:
待回收有效数据占比获取模块,用于若所述待回收磨损次数大于预设磨损下限阈值,且小于预设常规磨损阈值,则获取所述待回收脏数据块的待回收有效数据占比,并采用所述待回收有效数据占比及空闲块的数量,计算有效占比阈值。
在一种可选实施例中,所述装置还包括:
滞后脏数据块确定模块,用于将有效数据占比大于或等于有效占比阈值的待回收脏数据块作为滞后脏数据块,通过所述磨损次数链表查找所述滞后脏数据块对应的磨损优先级,并按照预设上浮程度值上浮所述滞后脏数据块对应的磨损优先级。
在一种可选实施例中,所述装置还包括:
强制脏数据块确定模块,用于将待回收磨损次数小于预设磨损下限阈值的待回收脏数据块作为强制脏数据块,并通过所述磨损次数链表查找所述强制脏数据块对应的强制磨损优先级;
强制脏数据块数据迁移模块,用于根据所述固态硬盘当前是否存在数据交互,将所述强制脏数据块对应的强制磨损优先级调整至预设磨损阈值区间内,并通过所述空闲块链表查找空闲优先级最高的空闲块作为目标空闲块,将各个所述强制脏数据块中有效数据迁移至所述目标空闲块。
在一种可选实施例中,所述目标磨损优先级调整模块304具体用于:
若所述固态硬盘当前存在数据交互,则调整所述目标脏数据块对应的目标磨损优先级,使其处于第一预设磨损优先级与第二预设磨损优先级之间;
若所述固态硬盘当前不存在数据交互,则调整所述目标脏数据块对应的目标磨损优先级,使其处于第三预设磨损优先级与第四预设磨损优先级之间。
在一种可选实施例中,所述装置还包括:
第一预设偏差控制模块,用于若所述固态硬盘当前存在数据交互,则基于对所述目标脏数据块对应的目标磨损优先级的调整,控制所述目标脏数据块的磨损次数与平均磨损次数的偏差小于或等于第一预设偏差;
第二预设偏差控制模块,用于若所述固态硬盘当前不存在数据交互,则基于对所述目标脏数据块对应的目标磨损优先级的调整,控制所述目标脏数据块的磨损次数与平均磨损次数的偏差小于或等于第二预设偏差,其中,所述第二预设偏差小于所述第一预设偏差。
在一种可选实施例中,所述目标磨损优先级调整模块304包括:
时间戳获取模块,用于获取当前时间戳,以及所述固态硬盘最近一次进行数据交互对应的历史时间戳;
时间戳比较模块,用于若所述当前时间戳与所述历史时间戳之间的差值小于或等于预设时间戳差阈值,则所述固态硬盘当前存在数据交互。
在一种可选实施例中,所述目标磨损优先级调整模块304还具体用于:
若所述当前时间戳与所述历史时间戳之间的差值大于预设时间戳差阈值,则所述固态硬盘当前不存在数据交互。
在一种可选实施例中,所述装置还包括:
优先级设立模块,用于针对所述固态硬盘的脏数据块设立多个有效数据占比优先级、磨损优先级;
链表建立模块,用于针对每一所述有效数据占比优先级建立一个对应的有效数据占比链表,并针对每一所述磨损优先级建立一个对应的磨损次数链表;
脏数据块数据获取模块,用于获取所述固态硬盘中各个脏数据块的有效数据占比以及磨损次数;
有效优先级匹配模块,用于采用各个所述脏数据块的有效数据占比进行有效优先级匹配,确定各个所述脏数据块对应的有效数据占比优先级,并将各个所述脏数据块的有效数据占比信息链接至与所述有效数据占比优先级对应的有效数据占比链表;
磨损优先级匹配模块,用于采用各个所述脏数据块的磨损次数进行磨损优先级匹配,确定各个所述脏数据块对应的磨损优先级,并将各个所述脏数据块的磨损次数信息链接至与所述磨损优先级对应的磨损次数链表。
在一种可选实施例中,所述装置还包括:
变动脏数据块确定模块,用于响应于针对所述固态硬盘的初始化操作,将有效数据占比和/或磨损次数发生变化的脏数据块作为变动脏数据块,并获取所述变动脏数据块对应的变动有效数据占比以及变动磨损次数;
变动有效优先级匹配模块,用于采用所述变动有效数据占比进行有效优先级匹配,重新确定所述变动脏数据块对应的变动有效数据占比优先级,并将所述变动有效数据占比信息链接至与所述变动有效数据占比优先级对应的有效数据占比链表;
变动磨损优先级匹配模块,用于采用所述变动磨损次数进行磨损优先级匹配,确定所述变动脏数据块对应的变动磨损优先级,并将所述变动磨损次数信息链接至与所述变动磨损优先级对应的磨损次数链表。
在一种可选实施例中,所述变动有效优先级匹配模块包括:
变动有效数据占比优先级确定模块,用于采用所述变动有效数据占比进行有效优先级匹配,重新确定所述变动脏数据块对应的变动有效数据占比优先级;
有效数据占比信息替换模块,用于若所述变动有效数据占比优先级与变化前的有效数据占比优先级相同,则采用所述变动有效数据占比信息对变化前的有效数据占比信息进行替换;
变动有效数据占比信息链接模块,用于若所述变动有效数据占比优先级与变化前的有效数据占比优先级不同,则将所述变动有效数据占比信息链接至与所述变动有效数据占比优先级对应的有效数据占比链表,并从原先的有效数据占比链表中删除所述变动脏数据块变化前的有效数据占比信息。
在一种可选实施例中,所述变动磨损优先级匹配模块包括:
变动磨损优先级确定模块,用于采用所述变动磨损次数进行磨损优先级匹配,确定所述变动脏数据块对应的变动磨损优先级;
磨损次数信息替换模块,用于若所述变动磨损优先级与变化前的磨损优先级相同,则采用所述变动磨损次数信息对变化前的磨损次数信息进行替换;
磨损次数信息链接模块,用于若所述变动磨损优先级与变化前的磨损优先级不同,则将所述变动磨损次数信息链接至与所述变动磨损优先级对应的磨损次数链表,并从原先的磨损次数链表中删除所述变动脏数据块变化前的磨损次数信息。
在一种可选实施例中,所述装置还包括:
新脏数据块确定模块,用于若检测到产生新脏数据块,则获取所述新脏数据块对应的新有效数据占比以及新磨损次数;
新有效优先级匹配模块,用于采用所述新有效数据占比进行有效优先级匹配,确定所述新脏数据块对应的新有效数据占比优先级,并将所述新有效数据占比信息链接至与所述新有效数据占比优先级对应的有效数据占比链表;
新磨损优先级匹配模块,用于采用所述新磨损次数进行磨损优先级匹配,确定所述新脏数据块对应的新磨损优先级,并将所述新磨损次数信息链接至与所述新磨损优先级对应的磨损次数链表。
在一种可选实施例中,所述装置还包括:
空闲优先级设立模块,用于针对所述固态硬盘的空闲块设立多个空闲优先级,并针对每一所述空闲优先级建立一个对应的空闲块链表;
空闲块磨损次数偏差计算模块,用于获取所述固态硬盘中各个空闲块对应的空闲块磨损次数,并采用所述空闲块磨损次数与空闲块平均磨损次数进行偏差计算;
空闲优先级匹配模块,用于根据计算结果进行空闲优先级匹配,确定所述空闲块对应的空闲优先级,并将所述空闲块磨损次数信息链接至与所述空闲优先级对应的空闲块链表。
在一种可选实施例中,所述装置还包括:
变动空闲块确定模块,用于响应于针对所述固态硬盘的初始化操作,将空闲块磨损次数发生变化的空闲块作为变动空闲块,并获取所述变动空闲块对应的变动空闲块磨损次数;
变动空闲优先级匹配模块,用于采用所述变动空闲块磨损次数进行空闲优先级匹配,重新确定所述变动空闲块对应的变动空闲优先级,并将所述变动空闲块磨损次数信息链接至与所述变动空闲优先级对应的空闲块链表。
在一种可选实施例中,所述变动空闲优先级匹配模块包括:
变动空闲优先级确定模块,用于采用所述变动空闲块磨损次数进行空闲优先级匹配,重新确定所述变动空闲块对应的变动空闲优先级;
变动空闲块磨损次数信息替换模块,用于若所述变动空闲优先级与变化前的空闲优先级相同,则采用所述变动空闲块磨损次数信息对变化前的空闲块磨损次数信息进行替换;
变动空闲块磨损次数信息链接模块,用于若所述变动空闲优先级与变化前的空闲优先级不同,则将所述变动空闲块磨损次数信息链接至与所述变动空闲优先级对应的空闲块链表,并从原先的空闲块链表中删除所述变动空闲块变化前的空闲块磨损次数信息。
在一种可选实施例中,所述装置还包括:
新空闲块确定模块,用于若检测到产生新空闲块,则获取所述新空闲块对应的新空闲块磨损次数;
新空闲优先级匹配模块,用于采用所述新空闲块磨损次数进行空闲优先级匹配,确定所述新空闲块对应的新空闲优先级,并将所述新空闲块磨损次数信息链接至与所述新空闲优先级对应的空闲块链表。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
另外,本发明实施例还提供了一种电子设备,包括:处理器,存储器,存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述固态硬盘的垃圾回收方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
如图4所示,本发明实施例还提供了一种计算机可读存储介质401,计算机可读存储介质401上存储有计算机程序,计算机程序被处理器执行时实现上述固态硬盘的垃圾回收方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质401,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
图5为实现本发明各个实施例的一种电子设备的硬件结构示意图。
该电子设备500包括但不限于:射频单元501、网络模块502、音频输出单元503、输入单元504、传感器505、显示单元506、用户输入单元507、接口单元508、存储器509、处理器510、以及电源511等部件。本领域技术人员可以理解,本发明实施例中所涉及的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
应理解的是,本发明实施例中,射频单元501可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器510处理;另外,将上行的数据发送给基站。通常,射频单元501包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元501还可以通过无线通信系统与网络和其他设备通信。
电子设备通过网络模块502为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元503可以将射频单元501或网络模块502接收的或者在存储器509中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元503还可以提供与电子设备500执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元503包括扬声器、蜂鸣器以及受话器等。
输入单元504用于接收音频或视频信号。输入单元504可以包括图形处理器(Graphics Processing Unit,GPU)5041和麦克风5042,图形处理器5041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元506上。经图形处理器5041处理后的图像帧可以存储在存储器509(或其它存储介质)中或者经由射频单元501或网络模块502进行发送。麦克风5042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元501发送到移动通信基站的格式输出。
电子设备500还包括至少一种传感器505,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板5061的亮度,接近传感器可在电子设备500移动到耳边时,关闭显示面板5061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器505还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元506用于显示由用户输入的信息或提供给用户的信息。显示单元506可包括显示面板5061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode, OLED)等形式来配置显示面板5061。
用户输入单元507可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元507包括触控面板5071以及其他输入设备5072。触控面板5071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板5071上或在触控面板5071附近的操作)。触控面板5071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器510,接收处理器510发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板5071。除了触控面板5071,用户输入单元507还可以包括其他输入设备5072。具体地,其他输入设备5072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板5071可覆盖在显示面板5061上,当触控面板5071检测到在其上或附近的触摸操作后,传送给处理器510以确定触摸事件的类型,随后处理器510根据触摸事件的类型在显示面板5061上提供相应的视觉输出。可以理解的是,在一种实施例中,触控面板5071与显示面板5061是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板5071与显示面板5061集成而实现电子设备的输入和输出功能,具体此处不做限定。
接口单元508为外部装置与电子设备500连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元508可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备500内的一个或多个元件或者可以用于在电子设备500和外部装置之间传输数据。
存储器509可用于存储软件程序以及各种数据。存储器509可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器509可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器510是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器509内的软件程序和/或模块,以及调用存储在存储器509内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器510可包括一个或多个处理单元;优选的,处理器510可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器510中。
电子设备500还可以包括给各个部件供电的电源511(比如电池),优选的,电源511可以通过电源管理系统与处理器510逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,电子设备500包括一些未示出的功能模块,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (24)

1.一种固态硬盘的垃圾回收方法,其特征在于,所述固态硬盘包括多个脏数据块以及多个空闲块,所述方法包括:
获取所述固态硬盘的有效数据占比链表、磨损次数链表以及空闲块链表,所述有效数据占比链表对应所述脏数据块的有效数据占比优先级,所述磨损次数链表对应所述脏数据块的磨损优先级,所述空闲块链表对应所述空闲块的空闲优先级;
获取所述空闲块的数量,若所述空闲块的数量低于预设空闲块阈值,则遍历所述有效数据占比链表,按照所述有效数据占比优先级确定各个待回收脏数据块的回收顺序,并依次对各个所述待回收脏数据块进行垃圾回收;
将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块,并通过所述磨损次数链表查找所述目标脏数据块对应的目标磨损优先级;
根据所述固态硬盘当前是否存在数据交互,将所述目标脏数据块对应的目标磨损优先级调整至预设磨损阈值区间内,并通过所述空闲块链表查找空闲优先级最高的空闲块作为目标空闲块,将各个所述目标脏数据块中有效数据迁移至所述目标空闲块。
2.根据权利要求1所述的方法,其特征在于,所述遍历所述有效数据占比链表,按照所述有效数据占比优先级确定各个待回收脏数据块的回收顺序,并依次对各个所述待回收脏数据块进行垃圾回收,包括:
遍历所述有效数据占比链表,按照所述有效数据占比优先级由小至大的顺序确定各个待回收脏数据块的回收顺序,以及各个所述待回收脏数据块对应的待回收磨损次数;
若所述待回收磨损次数大于预设磨损上限阈值,则上浮所述待回收脏数据块对应的有效数据占比优先级,延后所述待回收脏数据的垃圾回收;
若所述待回收磨损次数大于或等于预设磨损下限阈值,且小于或等于预设磨损上限阈值,则对所述待回收脏数据块进行垃圾回收。
3.根据权利要求2所述的方法,其特征在于,所述上浮所述待回收脏数据块对应的有效数据占比优先级,包括:
获取所述待回收脏数据块的待回收有效数据占比,采用所述待回收有效数据占比、所述待回收磨损次数以及预设上浮偏移值进行计算,获得所述待回收脏数据块对应的上浮程度值,并根据所述上浮程度值上浮所述待回收脏数据块对应的有效数据占比优先级。
4.根据权利要求3所述的方法,其特征在于,所述采用所述待回收有效数据占比、所述待回收磨损次数以及预设上浮偏移值进行计算,获得所述待回收脏数据块对应的上浮程度值,包括:
采用公式:
Figure 710110DEST_PATH_IMAGE001
计算得出所述待回收脏数据块对应的上浮程度值;
其中,G为预设上浮偏移值,VDFC为待回收有效数据占比,k为待回收有效数据占比的系数,PEC为待回收磨损次数,b为待回收磨损次数的系数。
5.根据权利要求2所述的方法,其特征在于,所述将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块,包括:
采用公式:
Figure 96092DEST_PATH_IMAGE002
计算有效占比阈值,并将各个所述待回收脏数据块的有效数据占比与所述有效占比阈值进行比较;
将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块;
Figure 344671DEST_PATH_IMAGE003
为有效数据占比的设定阈值,Total为数据块总的数据帧个数,F为空闲块的数量, a为空闲块的数量所对应的系数。
6.根据权利要求5所述的方法,其特征在于,在所述将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块之前,还包括:
若所述待回收磨损次数大于预设磨损下限阈值,且小于预设常规磨损阈值,则获取所述待回收脏数据块的待回收有效数据占比,并采用所述待回收有效数据占比及空闲块的数量,计算有效占比阈值。
7.根据权利要求5或6所述的方法,其特征在于,还包括:
将有效数据占比大于或等于有效占比阈值的待回收脏数据块作为滞后脏数据块,通过所述磨损次数链表查找所述滞后脏数据块对应的磨损优先级,并按照预设上浮程度值上浮所述滞后脏数据块对应的磨损优先级。
8.根据权利要求5或6所述的方法,其特征在于,还包括:
将待回收磨损次数小于预设磨损下限阈值的待回收脏数据块作为强制脏数据块,并通过所述磨损次数链表查找所述强制脏数据块对应的强制磨损优先级;
根据所述固态硬盘当前是否存在数据交互,将所述强制脏数据块对应的强制磨损优先级调整至预设磨损阈值区间内,并通过所述空闲块链表查找空闲优先级最高的空闲块作为目标空闲块,将各个所述强制脏数据块中有效数据迁移至所述目标空闲块。
9.根据权利要求1所述的方法,其特征在于,所述根据所述固态硬盘当前是否存在数据交互,将所述目标脏数据块对应的目标磨损优先级调整至预设磨损阈值区间内,包括:
若所述固态硬盘当前存在数据交互,则调整所述目标脏数据块对应的目标磨损优先级,使其处于第一预设磨损优先级与第二预设磨损优先级之间;
若所述固态硬盘当前不存在数据交互,则调整所述目标脏数据块对应的目标磨损优先级,使其处于第三预设磨损优先级与第四预设磨损优先级之间。
10.根据权利要求9所述的方法,其特征在于,还包括:
若所述固态硬盘当前存在数据交互,则基于对所述目标脏数据块对应的目标磨损优先级的调整,控制所述目标脏数据块的磨损次数与平均磨损次数的偏差小于或等于第一预设偏差;
若所述固态硬盘当前不存在数据交互,则基于对所述目标脏数据块对应的目标磨损优先级的调整,控制所述目标脏数据块的磨损次数与平均磨损次数的偏差小于或等于第二预设偏差,其中,所述第二预设偏差小于所述第一预设偏差。
11.根据权利要求9或10所述的方法,其特征在于,所述若所述固态硬盘当前存在数据交互,包括:
获取当前时间戳,以及所述固态硬盘最近一次进行数据交互对应的历史时间戳;
若所述当前时间戳与所述历史时间戳之间的差值小于或等于预设时间戳差阈值,则所述固态硬盘当前存在数据交互。
12.根据权利要求11所述的方法,其特征在于,所述若所述固态硬盘当前不存在数据交互,包括:
若所述当前时间戳与所述历史时间戳之间的差值大于预设时间戳差阈值,则所述固态硬盘当前不存在数据交互。
13.根据权利要求1所述的方法,其特征在于,在所述获取所述固态硬盘的有效数据占比链表、磨损次数链表以及空闲块链表之前,还包括:
针对所述固态硬盘的脏数据块设立多个有效数据占比优先级、磨损优先级;
针对每一所述有效数据占比优先级建立一个对应的有效数据占比链表,并针对每一所述磨损优先级建立一个对应的磨损次数链表;
获取所述固态硬盘中各个脏数据块的有效数据占比以及磨损次数;
采用各个所述脏数据块的有效数据占比进行有效优先级匹配,确定各个所述脏数据块对应的有效数据占比优先级,并将各个所述脏数据块的有效数据占比信息链接至与所述有效数据占比优先级对应的有效数据占比链表;
采用各个所述脏数据块的磨损次数进行磨损优先级匹配,确定各个所述脏数据块对应的磨损优先级,并将各个所述脏数据块的磨损次数信息链接至与所述磨损优先级对应的磨损次数链表。
14.根据权利要求13所述的方法,其特征在于,还包括:
响应于针对所述固态硬盘的初始化操作,将有效数据占比和/或磨损次数发生变化的脏数据块作为变动脏数据块,并获取所述变动脏数据块对应的变动有效数据占比以及变动磨损次数;
采用所述变动有效数据占比进行有效优先级匹配,重新确定所述变动脏数据块对应的变动有效数据占比优先级,并将所述变动有效数据占比信息链接至与所述变动有效数据占比优先级对应的有效数据占比链表;
采用所述变动磨损次数进行磨损优先级匹配,确定所述变动脏数据块对应的变动磨损优先级,并将所述变动磨损次数信息链接至与所述变动磨损优先级对应的磨损次数链表。
15.根据权利要求14所述的方法,其特征在于,所述采用所述变动有效数据占比进行有效优先级匹配,重新确定所述变动脏数据块对应的变动有效数据占比优先级,并将所述变动有效数据占比信息链接至与所述变动有效数据占比优先级对应的有效数据占比链表,包括:
采用所述变动有效数据占比进行有效优先级匹配,重新确定所述变动脏数据块对应的变动有效数据占比优先级;
若所述变动有效数据占比优先级与变化前的有效数据占比优先级相同,则采用所述变动有效数据占比信息对变化前的有效数据占比信息进行替换;
若所述变动有效数据占比优先级与变化前的有效数据占比优先级不同,则将所述变动有效数据占比信息链接至与所述变动有效数据占比优先级对应的有效数据占比链表,并从原先的有效数据占比链表中删除所述变动脏数据块变化前的有效数据占比信息。
16.根据权利要求14所述的方法,其特征在于,所述采用所述变动磨损次数进行磨损优先级匹配,确定所述变动脏数据块对应的变动磨损优先级,并将所述变动磨损次数信息链接至与所述变动磨损优先级对应的磨损次数链表,包括:
采用所述变动磨损次数进行磨损优先级匹配,确定所述变动脏数据块对应的变动磨损优先级;
若所述变动磨损优先级与变化前的磨损优先级相同,则采用所述变动磨损次数信息对变化前的磨损次数信息进行替换;
若所述变动磨损优先级与变化前的磨损优先级不同,则将所述变动磨损次数信息链接至与所述变动磨损优先级对应的磨损次数链表,并从原先的磨损次数链表中删除所述变动脏数据块变化前的磨损次数信息。
17.根据权利要求13所述的方法,其特征在于,还包括:
若检测到产生新脏数据块,则获取所述新脏数据块对应的新有效数据占比以及新磨损次数;
采用所述新有效数据占比进行有效优先级匹配,确定所述新脏数据块对应的新有效数据占比优先级,并将所述新有效数据占比信息链接至与所述新有效数据占比优先级对应的有效数据占比链表;
采用所述新磨损次数进行磨损优先级匹配,确定所述新脏数据块对应的新磨损优先级,并将所述新磨损次数信息链接至与所述新磨损优先级对应的磨损次数链表。
18.根据权利要求1所述的方法,其特征在于,在所述获取所述固态硬盘的有效数据占比链表、磨损次数链表以及空闲块链表之前,还包括:
针对所述固态硬盘的空闲块设立多个空闲优先级,并针对每一所述空闲优先级建立一个对应的空闲块链表;
获取所述固态硬盘中各个空闲块对应的空闲块磨损次数,并采用所述空闲块磨损次数与空闲块平均磨损次数进行偏差计算;
根据计算结果进行空闲优先级匹配,确定所述空闲块对应的空闲优先级,并将所述空闲块磨损次数信息链接至与所述空闲优先级对应的空闲块链表。
19.根据权利要求18所述的方法,其特征在于,还包括:
响应于针对所述固态硬盘的初始化操作,将空闲块磨损次数发生变化的空闲块作为变动空闲块,并获取所述变动空闲块对应的变动空闲块磨损次数;
采用所述变动空闲块磨损次数进行磨损优先级匹配,重新确定所述变动空闲块对应的变动空闲优先级,并将所述变动空闲块磨损次数信息链接至与所述变动空闲优先级对应的空闲块链表。
20.根据权利要求19所述的方法,其特征在于,所述采用所述变动空闲块磨损次数进行磨损优先级匹配,重新确定所述变动空闲块对应的变动空闲优先级,并将所述变动空闲块磨损次数信息链接至与所述变动空闲优先级对应的空闲块链表,包括:
采用所述变动空闲块磨损次数进行磨损优先级匹配,重新确定所述变动空闲块对应的变动空闲优先级;
若所述变动空闲优先级与变化前的空闲优先级相同,则采用所述变动空闲块磨损次数信息对变化前的空闲块磨损次数信息进行替换;
若所述变动空闲优先级与变化前的空闲优先级不同,则将所述变动空闲块磨损次数信息链接至与所述变动空闲优先级对应的空闲块链表,并从原先的空闲块链表中删除所述变动空闲块变化前的空闲块磨损次数信息。
21.根据权利要求18所述的方法,其特征在于,还包括:
若检测到产生新空闲块,则获取所述新空闲块对应的新空闲块磨损次数;
采用所述新空闲块磨损次数进行磨损优先级匹配,确定所述新空闲块对应的新空闲优先级,并将所述新空闲块磨损次数信息链接至与所述新空闲优先级对应的空闲块链表。
22.一种固态硬盘的垃圾回收装置,其特征在于,所述固态硬盘包括多个脏数据块以及多个空闲块,所述装置包括:
固态硬盘链表获取模块,用于获取所述固态硬盘的有效数据占比链表、磨损次数链表以及空闲块链表,所述有效数据占比链表对应所述脏数据块的有效数据占比优先级,所述磨损次数链表对应所述脏数据块的磨损优先级,所述空闲块链表对应所述空闲块的空闲优先级;
垃圾回收模块,用于获取所述空闲块的数量,若所述空闲块的数量低于预设空闲块阈值,则遍历所述有效数据占比链表,按照所述有效数据占比优先级确定各个待回收脏数据块的回收顺序,并依次对各个所述待回收脏数据块进行垃圾回收;
目标脏数据块确定模块,用于将有效数据占比小于有效占比阈值的待回收脏数据块作为目标脏数据块,并通过所述磨损次数链表查找所述目标脏数据块对应的目标磨损优先级;
目标磨损优先级调整模块,用于根据所述固态硬盘当前是否存在数据交互,将所述目标脏数据块对应的目标磨损优先级调整至预设磨损阈值区间内,并通过所述空闲块链表查找空闲优先级最高的空闲块作为目标空闲块,将各个所述目标脏数据块中有效数据迁移至所述目标空闲块。
23.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现如权利要求1-21任一项所述的方法。
24.一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-21任一项所述的方法。
CN202211498331.3A 2022-11-28 2022-11-28 固态硬盘的垃圾回收方法、装置、电子设备及存储介质 Active CN115599308B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211498331.3A CN115599308B (zh) 2022-11-28 2022-11-28 固态硬盘的垃圾回收方法、装置、电子设备及存储介质
PCT/CN2023/098740 WO2024113746A1 (zh) 2022-11-28 2023-06-07 固态硬盘的垃圾回收方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211498331.3A CN115599308B (zh) 2022-11-28 2022-11-28 固态硬盘的垃圾回收方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN115599308A true CN115599308A (zh) 2023-01-13
CN115599308B CN115599308B (zh) 2023-03-21

Family

ID=84852523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211498331.3A Active CN115599308B (zh) 2022-11-28 2022-11-28 固态硬盘的垃圾回收方法、装置、电子设备及存储介质

Country Status (2)

Country Link
CN (1) CN115599308B (zh)
WO (1) WO2024113746A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115904257A (zh) * 2023-02-24 2023-04-04 浪潮电子信息产业股份有限公司 一种ssd的管理方法、系统、服务器、装置及存储介质
CN116719675A (zh) * 2023-05-06 2023-09-08 深圳市晶存科技有限公司 硬盘磨损测试方法、装置及介质
WO2024113746A1 (zh) * 2022-11-28 2024-06-06 苏州元脑智能科技有限公司 固态硬盘的垃圾回收方法、装置、电子设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110138109A1 (en) * 2009-12-07 2011-06-09 Chao-Yin Liu Method for wear-leveling and apparatus thereof
CN103049397A (zh) * 2012-12-20 2013-04-17 中国科学院上海微系统与信息技术研究所 一种基于新型存储器的固态硬盘内部缓存管理方法及系统
CN105389128A (zh) * 2015-11-06 2016-03-09 成都华为技术有限公司 一种固态硬盘数据存储方法及存储控制器
US20170285971A1 (en) * 2016-04-05 2017-10-05 International Business Machines Corporation Hotness based data storage for facilitating garbage collection
CN108681435A (zh) * 2018-05-25 2018-10-19 郑州云海信息技术有限公司 一种固态硬盘的磨损均衡方法、装置、设备及存储介质
CN109254927A (zh) * 2018-08-30 2019-01-22 浪潮电子信息产业股份有限公司 一种固态硬盘磨损均衡的实现方法
CN111090398A (zh) * 2019-12-13 2020-05-01 北京浪潮数据技术有限公司 固态硬盘的垃圾回收方法、装置、设备及可读存储介质
CN111124305A (zh) * 2019-12-20 2020-05-08 浪潮电子信息产业股份有限公司 固态硬盘磨损均衡方法、装置及计算机可读存储介质
CN112328169A (zh) * 2020-10-20 2021-02-05 浙江大华存储科技有限公司 固态硬盘的磨损均衡方法、装置及计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115599308B (zh) * 2022-11-28 2023-03-21 苏州浪潮智能科技有限公司 固态硬盘的垃圾回收方法、装置、电子设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110138109A1 (en) * 2009-12-07 2011-06-09 Chao-Yin Liu Method for wear-leveling and apparatus thereof
CN103049397A (zh) * 2012-12-20 2013-04-17 中国科学院上海微系统与信息技术研究所 一种基于新型存储器的固态硬盘内部缓存管理方法及系统
CN105389128A (zh) * 2015-11-06 2016-03-09 成都华为技术有限公司 一种固态硬盘数据存储方法及存储控制器
US20170285971A1 (en) * 2016-04-05 2017-10-05 International Business Machines Corporation Hotness based data storage for facilitating garbage collection
CN108681435A (zh) * 2018-05-25 2018-10-19 郑州云海信息技术有限公司 一种固态硬盘的磨损均衡方法、装置、设备及存储介质
CN109254927A (zh) * 2018-08-30 2019-01-22 浪潮电子信息产业股份有限公司 一种固态硬盘磨损均衡的实现方法
CN111090398A (zh) * 2019-12-13 2020-05-01 北京浪潮数据技术有限公司 固态硬盘的垃圾回收方法、装置、设备及可读存储介质
CN111124305A (zh) * 2019-12-20 2020-05-08 浪潮电子信息产业股份有限公司 固态硬盘磨损均衡方法、装置及计算机可读存储介质
CN112328169A (zh) * 2020-10-20 2021-02-05 浙江大华存储科技有限公司 固态硬盘的磨损均衡方法、装置及计算机可读存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024113746A1 (zh) * 2022-11-28 2024-06-06 苏州元脑智能科技有限公司 固态硬盘的垃圾回收方法、装置、电子设备及存储介质
CN115904257A (zh) * 2023-02-24 2023-04-04 浪潮电子信息产业股份有限公司 一种ssd的管理方法、系统、服务器、装置及存储介质
CN116719675A (zh) * 2023-05-06 2023-09-08 深圳市晶存科技有限公司 硬盘磨损测试方法、装置及介质
CN116719675B (zh) * 2023-05-06 2024-05-07 深圳市晶存科技有限公司 硬盘磨损测试方法、装置及介质

Also Published As

Publication number Publication date
WO2024113746A1 (zh) 2024-06-06
CN115599308B (zh) 2023-03-21

Similar Documents

Publication Publication Date Title
CN115599308B (zh) 固态硬盘的垃圾回收方法、装置、电子设备及存储介质
CN109343759B (zh) 一种息屏显示的控制方法及终端
CN109509473B (zh) 语音控制方法及终端设备
CN110008141B (zh) 一种碎片整理方法和电子设备
CN108874280B (zh) 屏幕划分方法、终端及计算机可读存储介质
CN110618969B (zh) 一种图标显示方法及电子设备
CN108322599B (zh) 一种网络访问方法和移动终端
CN108073458B (zh) 内存回收方法、移动终端及计算机可读存储介质
CN110007816B (zh) 一种显示区域确定方法、终端及计算机可读存储介质
CN111324235A (zh) 一种屏幕刷新频率调整方法及电子设备
CN110569119B (zh) 后台应用程序管理方法及终端
CN110879680B (zh) 一种图标管理方法及电子设备
CN109995862B (zh) 一种资源调度方法及终端
CN111274160A (zh) 数据存储方法、电子设备及介质
CN109254972B (zh) 一种离线命令词库更新方法、终端及计算机可读存储介质
CN111142679A (zh) 一种显示处理方法及电子设备
CN107277364B (zh) 一种拍摄方法、移动终端及计算机可读存储介质
CN115237618A (zh) 请求处理方法、装置、计算机设备及可读存储介质
CN111261128B (zh) 屏幕亮度调整方法及电子设备
CN111190528B (zh) 笔刷显示方法、电子设备及存储介质
CN110334559B (zh) 一种扫码识别方法、终端及计算机可读存储介质
CN112612552A (zh) 应用程序资源加载方法、装置、电子设备及可读存储介质
CN109508300B (zh) 一种磁盘碎片整理方法、设备及计算机可读存储介质
CN115543221B (zh) 固态硬盘的数据迁移方法、装置、电子设备及存储介质
CN109375982B (zh) 移动终端桌面图标布局方法、装置、终端及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant