一种固态硬盘的垃圾回收处理方法及系统与流程

文档序号:24127769发布日期:2021-03-02 15:04阅读:259来源:国知局
一种固态硬盘的垃圾回收处理方法及系统与流程

[0001]
本发明属于存储技术领域,特别涉及一种固态硬盘的垃圾回收处理方法及系统。


背景技术:

[0002]
固态硬盘(solid state disk,ssd)是一种基于永久性存储器,如闪存。其具有读写速度快,低功耗,无噪音,抗震动,低热量,体积小,工作范围大,广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空等、导航设备等领域。
[0003]
固态硬盘在做垃圾回收时,当用户写入数据时,如果可用闪存块小于一定阈值,这时就需要做垃圾回收,以腾出空间给用户写,这时做的垃圾回收,叫作前台垃圾回收(foreground,gc)。与之相对应的,就是后台垃圾回收(background,gc),它是在固态硬盘空闲的时候,固态硬盘主动去做的垃圾回收,从而改善用户写入性能。但是,出于功耗考虑,固态硬盘就不做后台垃圾回收了,当固态硬盘空闲后,直接进入省电模式。但是现有的垃圾回收的条件固定,没有根据固态硬盘内具体的数据启动垃圾回收功能,影响固态硬盘的寿命。


技术实现要素:

[0004]
本发明的目的在于提供一种固态硬盘的垃圾回收处理方法及系统,通过本发明提供的一种固态硬盘的垃圾回收处理方法及系统,延长所述固态硬盘的寿命,同时使所述固态硬盘具有较好的稳定性。
[0005]
为解决上述技术问题,本发明是通过以下技术方案实现的:
[0006]
本发明提供一种固态硬盘的垃圾回收处理方法,其至少包括以下步骤:
[0007]
获取固态硬盘的固态硬盘总容量、预留空间和闪存块总数量;
[0008]
监控所述固态硬盘中每个所述闪存块中有效数据的数量以及空白闪存块的数量;
[0009]
根据所述预留空间、所述闪存块总数量、每个所述闪存块中有效数据的数量以及所述固态硬盘总容量,获取第一阈值;
[0010]
当所述固态硬盘的可用闪存块的数量等于所述第一阈值时,将源闪存块上的有效数据传送至所述预留空间中,并擦除所述源闪存块上的内容。
[0011]
在本发明一实施例中,所述第一阈值根据以下公式获取:
[0012][0013]
其中,a为所述第一阈值,b为设定的所述空白闪存块的阈值,t
bc
为所述闪存块总数量,op为预留空间系数,t
bovc
为所述闪存块中的有效数据的数量,t
bvc
为所述闪存块允许存储的数据总量。
[0014]
在本发明一实施例中,所述预留空间系数是根据以下公式获取:
[0015][0016]
其中,固态硬盘裸容量为所述固态硬盘总容量,用户容量为系统显示使用者可使用容量大小,所述固态硬盘裸容量为所述用户容量与所述预留空间之和。
[0017]
在本发明一实施例中,当所述闪存块内被写满数据,且为无效数据时,擦除所述闪存块中的所述无效数据。
[0018]
在本发明一实施例中,将源闪存块上的有效数据传送至所述预留空间中,并擦除所述源闪存块上的内容步骤包括:
[0019]
挑选所述源闪存块;
[0020]
从所述源闪存块中找到找到所述有效数据;
[0021]
将所述有效数据写入目标闪存块中,擦除所述源闪存块中的数据;
[0022]
其中,所述目标闪存块位于所述预留空间中。
[0023]
在本发明一实施例中,所述固态硬盘中包括信息记录单元,所述信息记录单元设置于所述预留空间中。
[0024]
在本发明一实施例中,所述信息记录单元中包括闪存转换映射表,所述闪存转换映射表中记录每个逻辑块地址对应的物理地址。
[0025]
在本发明一实施例中,所述信息记录单元中包括有效块记录表,当所述闪存块可存储数据时,所述有效块记录表将所述闪存块标记为所述可用闪存块。
[0026]
在本发明一实施例中,所述信息记录单元中包括有擦除次数记录表,在挑选所述源闪存块时,将擦除次数最少的闪存块优先选作所述源闪存块。
[0027]
本发明还提供一种固态硬盘的垃圾回收处理系统,所述固态硬盘的垃圾回收处理系统包括:
[0028]
采集单元,其电性连接于闪存块,用于获取固态硬盘的固态硬盘总容量、预留空间和闪存块总数量;
[0029]
监控单元,其电性连接于所述闪存块,用于监控所述固态硬盘中每个闪存块中有效数据的数量和空白闪存块的数量;
[0030]
垃圾回收控制单元,其电性连接于采集单元、监控单元和闪存块,用于获取第一阈值,当所述固态硬盘的可用闪存块的数量等于所述第一阈值时,将源闪存块上的有效数据传送至预留空间中,并擦除所述源闪存块上的内容。
[0031]
如上所述本发明提供的一种固态硬盘的垃圾回收处理方法及系统,通过监控所述空白闪存块以及设置所述空白闪存块的阈值,获取启动垃圾回收处理的最低阈值;通过监控所述闪存块中有效数据的数量设定所述第一阈值,根据所述闪存块中有效数据的数量灵活开启垃圾回收功能,当所述闪存块中的有效数据少,垃圾数据多时,更早地启动垃圾回收功能,腾出闪存块的空间,保证固态硬盘的稳定性;当所述闪存块中的有效数据多,无效数据少时,较晚地启动垃圾回收功能,延长所述固态硬盘的寿命,当所述闪存块中均为无效数据时,直接擦除所述闪存块上的所述无效数据,无需启动所述垃圾回收功能。
[0032]
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
[0033]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034]
图1为一种固态硬盘结构图。
[0035]
图2为一种固态硬盘的垃圾回收处理方法流程图。
[0036]
图3为一种固态硬盘闪存块划分结构图。
[0037]
图4为一种闪存块存储数据图。
[0038]
图5为另一种闪存块存储数据图。
[0039]
图6为一种信息记录单元结构图。
[0040]
图7为一种固态硬盘的垃圾回收处理系统结构图。
[0041]
图8为一种计算机可读存储介质的框图。
[0042]
图9为一种电子设备的结构原理框图。
具体实施方式
[0043]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0044]
请参阅图1所示,固态硬盘20是一种以半导体闪存作为介质的存储设备。和传统机械硬盘不同,固态硬盘20以半导体存储数据,用纯电子电路实现,没有任何机械设备。用户在主机10的操作系统的应用层面对固态硬盘20发出请求,文件系统101将读写请求经底层驱动102转化为相应的符合协议的读写和其他命令,固态硬盘20通过固态硬盘接口201收到命令后执行相应的操作,然后输出结果。固态硬盘20的输入是命令,输出是数据和命令状态,固态硬盘接口201接收用户命令请求,经过内部计算和处理逻辑,输出用户所需要的数据或状态。
[0045]
请参阅图1所示,固态硬盘20主要包括固态硬盘接口201、闪存转换层(flash translation layer,ftl)202、闪存块接口203以及多个闪存块204。固态硬盘20的前端,即固态硬盘接口201接收主机10发来的命令和相关数据,命令经固态硬盘20处理后,再由固态硬盘接口201返回命令状态或数据给主机10。固态硬盘接口201例如为sata、sas和pcie等接口与主机10相连,实现对应的ata、scsi和nvme等协议。当主机10通过接口发送写命令给固态硬盘20,固态硬盘20接收到该命令后执行,并接收主机10要写入的数据。数据一般会先缓存在固态硬盘20内部的随机存取存储器(random access memory,ram)中,闪存转换层202会为每个逻辑数据块分配一个闪存地址,当数据凑到一定数量后,闪存转换层202便会发送写闪存请求给后端,后端根据写请求,把随机存取存储器中的数据写到对应的闪存块204中。固态硬盘20为主机10发送来的数据块分配任何可能的闪存块204写入,闪存转换层202中的地址转换单元206,可完成逻辑数据块到闪存物理空间的转换或者映射。同时,闪存转换层202中还具有擦除无效数据的垃圾回收单元207,闪存块204不能覆盖写,随着用户数据
的不断写入,闪存块204内会产生垃圾数据(无效数据),垃圾数据会占用闪存块204的空间,当闪存块204可用空间不够时,闪存转换层202需要做垃圾回收,即把若干个闪存块204上的有效数据搬出,写到某个新的闪存块204,然后把这些之前的闪存块204擦除,得到所述可用闪存块。除此之外,闪存转换层202中还包括保证每个闪存块204均衡写入的磨损平衡单元208,以及实现坏块管理的坏块管理单元205。
[0046]
请参阅图1至图3所示,在本发明一实施例中,提供一种固态硬盘的垃圾回收处理方法,所述固态硬盘的垃圾回收处理方法包括:
[0047]
s10:获取固态硬盘20的固态硬盘总容量、预留空间300和闪存块总数量;
[0048]
s11:监控固态硬盘20中每个闪存块204中有效数据的数量以及空白闪存块的数量;
[0049]
s12:根据预留空间300、闪存块总数量、每个闪存块204中所述有效数据的数量以及固态硬盘总容量,获取第一阈值;
[0050]
s13:当固态硬盘20的可用闪存块的数量等于所述第一阈值时,将源闪存块上的有效数据传送至预留空间中,并擦除所述源闪存块上的内容。
[0051]
请参阅图2所示,在本发明一实施例中,所述第一阈值根据以下公式获取:
[0052][0053]
其中,a为所述第一阈值,b为设定的所述空白闪存块的阈值,在本实施例中,b例如设置为2,即设定的所述空白闪存块的阈值为2,t
bc
为所述闪存块总数量,op为预留空间系数,t
bovc
为所述闪存块中的有效数据的数量,即为每个所述闪存块中有效数据的数量之和,t
bvc
为所述闪存块允许存储的数据总量,即为固态硬盘总容量。其中,在本实施例中,b为设定的所述空白闪存块的阈值,将b设定为2,做垃圾回收处理时,所述空白闪存块的数量必须大于设定的所述空白闪存块的阈值,否则没有足够的暂存空间存放所述有效数据,而去释放出一个新的闪存块204。
[0054]
请参阅图2至图3所示,在本发明一实施例中,固态硬盘20的预留空间系数op的是根据以下公式获取的:
[0055][0056]
其中,固态硬盘裸容量302即为所述固态硬盘总容量,用户容量301为系统(windows/linux)显示使用者可使用容量大小,固态硬盘裸容量302为用户容量301与预留空间300之和。
[0057]
请参阅图3所示,在本发明一实施例中,固态硬盘20的底层设置有多个通道,每个通道连接有多个闪存块204。其中,固态硬盘20的底层设置的通道数量例如为3个,每个通道连接的闪存块204数量例如为5个。则固态硬盘20中共有例如15个闪存块204,固态硬盘裸容量302即为15个闪存块,其中,每个通道上的block5作为预留空间,预留空间300即为3个闪存块,则固态硬盘裸容量302减去预留空间300即为用户容量301。在本实施例中,用户容量301的大小例如为12个闪存块。则固态硬盘20的预留空间系数op为:
[0058][0059]
其中,预留空间300可用做闪存转换层202的映射表存储空间、垃圾回收所需的预留交换空间、闪存坏块的替代空间等。
[0060]
请参阅图4至图5所示,在本发明一实施例中,固态硬盘20中的所述闪存块总数量例如为7,用作用户容量301的闪存块204数量例如为4个,用作预留空间300的闪存块数量例如为3个,每个闪存块204中能够存储的数据总量例如为4096。请参阅图4所示,在本发明一实施例中,前4个闪存块204中写满数据,且每个闪存块204中的有效数据的数量为4096,则此时所述第一阈值时为:
[0061][0062]
请参阅图5所示,在本发明另一实施例中,前4个闪存块204中写满数据,但每个闪存块204中的有效数据的数量为1024,则此时所述第一阈值时为:
[0063][0064]
由上述实施例可知,通过本发明设置的所述第一阈值,当固态硬盘20中没有垃圾数据时,不需要启动垃圾回收功能,延长整个固态硬盘20的寿命,当固态硬盘20中的垃圾数据的数量越多,固态硬盘20会更早地启动垃圾回收功能,腾出闪存块204的空间,保证固态硬盘20的稳定性。通过本发明设置的第一阈值方式,不会出现多余启动垃圾回收功能,提升固态硬盘20的效能。
[0065]
请参阅图2所示,在本发明一实施例中,将源闪存块上的有效数据传送至所述预留空间中,并擦除所述源闪存块上的内容步骤包括:挑选所述源闪存块;从所述源闪存块中找到找到所述有效数据;将所述有效数据写入目标闪存块中;擦除所述源闪存块中的数据。其中,所述目标闪存块可位于所述预留空间中。
[0066]
请参阅图1和图6所示,在本发明一实施例中,固态硬盘20中还包括信息记录单元404,信息记录单元404可设置在闪存块204内部,或电性连接于闪存块于闪存块204,在本实施例中,信息记录单元404设置在闪存块204内部,且位于预留空间300中,当挑选所述源闪存块时,垃圾回收控制单元407能便捷快速查询到闪存块204的信息。信息记录单元404中包括闪存转换映射表400,闪存转换映射表400中记录每个逻辑块地址(logical blockaddress,lba)对应的物理地址,在垃圾回收的过程中,固件读取数据后,获取该数据对应的逻辑块地址,要判断该数据是否无效,则需要查找闪存转换映射表400,获取逻辑块地址对应的物理地址,如果该物理地址与该数据在闪存上的地址一致,则说明该数据有效,否则该数据无效。其中,当某一闪存块204中被写满数据,且均为无效数据时,无需启动垃圾回收功能,直接擦除该闪存块204中的所有无效数据,获取空白闪存块。
[0067]
请参阅图1和图6所示,在本发明一实施例中,信息记录单元404中包括有效页记录表401,有效页记录表401中记录每个闪存块204上的有效页数,有效页记录表401中中的有
效页数量越大,表示该闪存块204中存储的数据越多。在启动垃圾回收功能时,对有效页记录表401进行排序,将有效页数最少的闪存块204优先选作所述源闪存块。
[0068]
请参阅图1和图6所示,在本发明一实施例中,信息记录单元404中包括有效块记录表402,有效块记录表402用于记录每个闪存块204的状态。例如当闪存块204处于可用状态时,即该闪存块204可存储数据,有效块记录表402中将该闪存块204的状态标记为1,为所述可用闪存块;当闪存块204处于不可用状态,即该闪存块204已经写满数据,有效块记录表402中将该闪存块204的状态标记为0。
[0069]
请参阅图1和图6所示,在本发明一实施例中,信息记录单元404中包括擦除次数记录表403,擦除次数记录表403用于记录每个闪存块204的擦除次数。在挑选所述源闪存块时,将擦除次数最少的闪存块204优先选作所述源闪存块。
[0070]
请参阅图3和图7所示,本发明改提供一种固态硬盘的垃圾回收处理系统,所述固态硬盘的垃圾回收处理系统包括:
[0071]
闪存块204,其内设置信息记录单元404,用于记录闪存块204的状态,包括每个闪存块204中的所述有效数据的数量和所述无效数据的数量等;
[0072]
采集单元405,其电性连接于闪存块204,用于获取固态硬盘20的固态硬盘总容量、预留空间300和闪存块总数量;
[0073]
监控单元406,其电性连接于信息记录单元404,用于监控固态硬盘20中每个闪存块204中有效数据的数量和空白闪存块的数量;
[0074]
垃圾回收控制单元407,其电性连接于采集单元405、监控单元406和闪存块204,用于获取第一阈值,当固态硬盘20的可用闪存块的数量等于所述第一阈值时,将源闪存块上的有效数据传送至预留空间300中,并擦除所述源闪存块上的内容。
[0075]
请参阅图8所示,本实施例还提出一种计算机可读存储介质5,所述计算机可读存储介质5存储有计算机指令50,所述计算机指令50用于使用所述固态硬盘的垃圾回收处理方法。计算机可读存储介质5可以是,电子介质、磁介质、光介质、电磁介质、红外介质或半导体系统或传播介质。计算机可读存储介质5还可以包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(ram)、只读存储器(rom)、硬磁盘和光盘。光盘可以包括光盘-只读存储器(cd-rom)、光盘-读/写(cd-rw)和dvd。
[0076]
请参阅图9所示,本发明还提供一种电子设备,包括处理器60和存储器70,存储器70存储有程序指令,处理器60运行程序指令实现上述的一种固态硬盘的垃圾回收处理方法。处理器60可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件;存储器70可能包含随机存取存储器(random access memory,简称ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器70也可以为随机存取存储器(random access memory,ram)类型的内部存储器,处理器60、存储器70可以集成为一个或多个独立的电路或硬件,如:专用集成电路(application specificintegrated circuit,asic)。需要说明的是,存储器70中的计算机程序可以通过软件功能单元的形式实现并作为独立的产品销售或
使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。
[0077]
本发明提供的一种固态硬盘的垃圾回收处理方法,通过监控闪存块204中有效数据的数量设定所述第一阈值,根据闪存块204中有效数据的数量灵活开启垃圾回收功能,当闪存块204中的有效数据少,垃圾数据多时,更早地启动垃圾回收功能,腾出闪存块的空间,保证固态硬盘的稳定性;当闪存块204中的有效数据多,无效数据少时,较晚地启动垃圾回收功能,延长所述固态硬盘的寿命,当闪存块204中均为无效数据时,直接擦除闪存块204上的所述无效数据,无需启动所述垃圾回收功能。同时通过监控每个闪存块204的擦除次数、每个闪存块204上的所述有效数据和所述无效数据的数量选择所述源闪存块,延长了固态硬盘的寿命,保证闪存块204的均衡写入和磨损平衡。
[0078]
以上公开的本发明实施例只是用于帮助阐述本发明。实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1