CN118069068A - 固态硬盘的管理方法、装置、电子设备以及存储介质 - Google Patents
固态硬盘的管理方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN118069068A CN118069068A CN202410454647.5A CN202410454647A CN118069068A CN 118069068 A CN118069068 A CN 118069068A CN 202410454647 A CN202410454647 A CN 202410454647A CN 118069068 A CN118069068 A CN 118069068A
- Authority
- CN
- China
- Prior art keywords
- target
- block
- data
- page
- wear resistance
- 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
Links
- 239000007787 solid Substances 0.000 title claims abstract description 117
- 238000003860 storage Methods 0.000 title claims abstract description 15
- 238000007726 management method Methods 0.000 title abstract description 11
- 238000011084 recovery Methods 0.000 claims abstract description 199
- 238000013507 mapping Methods 0.000 claims description 66
- 238000000034 method Methods 0.000 claims description 53
- 238000005299 abrasion Methods 0.000 claims description 30
- 238000004064 recycling Methods 0.000 claims description 10
- 230000009471 action Effects 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 7
- 239000000306 component Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000002035 prolonged effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000011066 ex-situ storage Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例提供了一种固态硬盘的管理方法、装置、电子设备以及存储介质,涉及计算机存储技术领域,该方法基于固态硬盘中的至少两个无效数据块的耐磨度值,将满足预设耐磨度条件的无效数据块确定为目标回收块;数据块的耐磨度值是基于无效数据块的擦除次数、无效数据块对应的闪存的擦除寿命以及无效数据块的原始比特出错概率确定的;在目标回收块的有效页数量小于预设有效页阈值且在第一空闲链表中的数据块数量小于等于所述预设空闲数据块阈值的情况下,对所述目标回收块进行回收;第一空闲链表用于记录耐磨度值大于预设耐磨度阈值的空闲数据块。在确保固态硬盘运行的可靠性,保证读写效率的基础上,提高了数据块的磨损均衡性以及固态硬盘的使用寿命。
Description
技术领域
本发明属于计算机存储技术领域,特别是涉及一种固态硬盘的管理方法、装置、电子设备以及存储介质。
背景技术
随着云计算、互联网技术的快速发展,在人们的生产生活中会时时刻刻会产生大量的数据,因此对数据存储技术有了更高的需求。固态硬盘是用固态电子存储芯片阵列制成的硬盘,在性能、尺寸、能耗、可靠性等方面有着明显的优势。
但随着固态硬盘的长期使用,无效页大量堆积,将占用大量存储空间。因此在固态硬盘的使用过程中,通过垃圾回收可有效提升其空间利用率。垃圾回收是指将写满数据的无效数据块中的有效页中的数据搬移到任一空闲数据块中,然后再把原无效数据块进行数据擦除,从而提高固态硬盘的空间利用率。但这种方式中在选择无效数据块以及空闲数据块时并不合理,并未考虑到无效数据块以及空闲数据块的实际使用情况,使得各个数据块的磨损均衡性较差,影响固态硬盘的使用寿命。
发明内容
为克服相关技术中存在的问题,本发明提供了一种固态硬盘的管理方法、装置、电子设备以及存储介质。
第一方面,本发明提供了一种固态硬盘的管理方法,所述方法包括:
基于所述固态硬盘中的至少两个无效数据块的耐磨度值,将满足预设耐磨度条件的无效数据块确定为目标回收块;所述数据块的耐磨度值是基于所述无效数据块的擦除次数、所述无效数据块对应的闪存的擦除寿命以及所述无效数据块的原始比特出错概率确定的;
在所述目标回收块的有效页数量小于预设有效页阈值的情况下,确定第一空闲链表中的数据块数量是否大于预设空闲数据块阈值;所述第一空闲链表用于记录耐磨度值大于预设耐磨度阈值的空闲数据块;
在所述第一空闲链表中的数据块数量小于等于所述预设空闲数据块阈值的情况下,对所述目标回收块进行回收。
第二方面,本发明提供了一种固态硬盘的管理装置,所述装置包括:
第一确定模块,用于基于所述固态硬盘中的至少两个无效数据块的耐磨度值,将满足预设耐磨度条件的无效数据块确定为目标回收块;所述数据块的耐磨度值是基于所述无效数据块的擦除次数、所述无效数据块对应的闪存的擦除寿命以及所述无效数据块的原始比特出错概率确定的;
第二确定模块,用于在所述目标回收块的有效页数量小于预设有效页阈值的情况下,确定第一空闲链表中的数据块数量是否大于预设空闲数据块阈值;所述第一空闲链表用于记录耐磨度值大于预设耐磨度阈值的空闲数据块;
第一回收模块,用于在所述第一空闲链表中的数据块数量小于等于所述预设空闲数据块阈值的情况下,对所述目标回收块进行回收。
第三方面,本发明提供一种电子设备,包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述第一方面中任一项所述的固态硬盘的管理方法。
第四方面,本发明提供一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如上述第一方面中任一项实施例中的固态硬盘的管理方法中的步骤。
本发明实施例中,通过对无效数据块的耐磨度值进行判断,将满足预设耐磨度条件的无效数据块确定为目标回收块,以无效数据块为判断对象,并以耐磨度值(数据块的磨损情况)为判断标准,进而可以选择合适的无效数据块作为目标回收块进行后续处理,一定程度上提高了数据块回收过程中数据块选择的合理性。进一步地,本发明实施例中的耐磨度值是基于无效数据块的擦除次数、无效数据块对应的闪存的擦除寿命以及无效数据块的原始比特出错概率确定的,由于数据块之间的比特位出错的比率差别很大,因此,将比特出错概率作为耐磨度值的参考可以一定程度上使得数据块的耐磨度值更加合理准确,基于擦除次数、闪存的擦除寿命以及原始比特出错概率确定的耐磨度值更能反映数据块的实际磨损情况。同时,本发明实施例基于目标回收块的有效页数量以及第一空闲链表中的数据块数量确定是否对目标回收块进行回收,在确保固态硬盘运行的可靠性,保证读写效率的基础上,一定程度上节约了资源,提高了固态硬盘中数据块之间的磨损均衡性,进而提高了固态硬盘的使用寿命。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种固态硬盘的管理方法的步骤流程图;
图2是本发明实施例提供的一种目标映射表的示意图;
图3是本发明实施例提供的一种第一空闲链表的示意图;
图4是本发明实施例提供的一种数据块回收的步骤流程图;
图5是本发明实施例提供的一种数据写入方法的步骤流程图;
图6是本发明实施例提供的一种固态硬盘的管理装置的结构图;
图7是本发明实施例提供的一种电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种固态硬盘的管理方法的步骤流程图。固态硬盘主要由用户接口、固态硬盘控制器与闪存芯片阵列三部件组成。其中,固态硬盘控制器是核心部件,包括闪存转换层(Flash Translation Layer,FTL)、动态随机存取存储器(DynamicRandom Access Memory,DRAM)缓存、掉电保护以及连接闪存芯片阵列控制等功能模块。闪存转换层是固态硬盘的软件核心技术,FTL的功能包括地址映射、无效数据块(脏块)回收、磨损均衡、坏块管理、数据保护与检查纠正等。
如图1所示,该方法可以包括:
步骤101、基于所述固态硬盘中的至少两个无效数据块的耐磨度值,将满足预设耐磨度条件的无效数据块确定为目标回收块;所述数据块的耐磨度值是基于所述无效数据块的擦除次数、所述无效数据块对应的闪存的擦除寿命以及所述无效数据块的原始比特出错概率确定的。
本发明实施例中,无效数据块可以是固态硬盘中的脏块,即包含无效数据(脏数据)的数据块,无效数据(脏数据)可以指因不同原因导致的失效过期数据,例如因数据重复录入、共同处理等不规范操作而产生的混乱、无效数据。由于固态硬盘中的FTL可以实现地址映射功能,记录逻辑地址与物理地址之间的映射关系。本发明实施例基于页地址映射关系,生成目标映射表。目标映射表可以是页级地址映射表。页级映射表用于记录逻辑页地址与物理页地址的对应关系。例如,可以目标映射表中可以记录多组逻辑页地址与物理页地址(例如数据块标识以及页标识)的对应关系。示例性的,目标映射表可以如图2所示,图2中,目标映射表中记录了逻辑页地址与物理页地址的多组对应关系,例如逻辑页地址2,对应物理页地址(0,3),保证逻辑页地址2对应闪存中数据块0中的页3。
进一步地,本发明实施例采用页可用位图以及页有效位图记录各数据块中物理页的状态信息。页可用位图用于记录物理页是否可用(可编程写入),示例性的,可以在页可用位图中对物理页标记为0,表征该物理页可编程写入;在页可用位图中对物理页标记为1,表征该物理页不可编程写入。页有效位图用于记录物理页中是否包含有效数据,示例性的,可以在页有效位图中对物理页标记为0,表征该物理页中包含的数据为无效数据;在页有效位图中对物理页标记为1,表征该物理页中包含的数据为有效数据。相应的,基于页有效位图以及页可用位图可以将物理页的状态信息划分为可用页、有效页以及无效页。其中,可用页表征该物理页可以被编程写入;有效页表征该物理页中存在有效数据;无效页表征该物理页中的数据被异地更新,但物理页并没有被回收。示例性的,可用页是页可用位图中标记为0的物理页,有效页是页可用位图中标记为1且页有效位图标记为1的物理页,无效页是页可用位图标记为1且页有效位图标记为0的物理页。当某数据块存在无效页时,则将该数据块确定为无效数据块(脏块);当某数据块中所有物理页都是可用页时,则将该数据块确定为空闲数据块。可以理解的是,页可用位图以及页有效位图的形式可以根据需求自行设定,示例性的,页可用位图以及页有效位图的数据结构可以为32位整型的数组,大小为,其中,第n位代表第n物理页的状态。
本发明实施例中,针对无效数据块,可以基于无效数据块中有效数据页的数量以及无效数据块的耐磨度值进行划分。数据块的耐磨度值可以表征数据块的磨损情况,不同数据块的耐磨度值可以是不同的。具体的,可以预先设置第一目标集合以及第二目标集合,分别用于记录不同类型的无效数据块。其中,第二目标集合中可以记录无效数据块中有效数据页大于预设有效页阈值且耐磨度值小于预设耐磨度阈值的目标无效数据块(特殊脏块),第一目标集合中可以记录除第二目标集合中包含的目标无效数据块外的其它无效数据块(普通脏块),相应的,为了便于理解,第一目标集合可以称为普通脏块集合,用于存储除特殊脏块外的其它无效数据块,第二目标集合可以称为特殊脏块集合,用于存储有效页数较多且耐磨度值较低的无效数据块。可以理解的是,预设有效页阈值以及预设耐磨度阈值可以根据需求自行设定,本发明实施例对此不做限制。
基于至少两个无效数据块的耐磨度值,从至少两个无效数据块中选择耐磨度值满足预设耐磨度条件的无效数据块,并将其确定为目标回收块。示例性的,可以从第一目标集合和/或第二目标集合中存储的至少两个无效数据块中选择目标回收块。其中,预设耐磨度条件可以包括无效数据块的耐磨度值最高或无效数据块的耐磨度值大于第一数值等条件,具体可以根据需求自行设定,本发明实施例对此不做限制。
无效数据块的耐磨度值是基于该无效数据块的擦除次数、无效数据块对应的闪存的擦除寿命(P/E擦除寿命)以及无效数据块对应的原始比特出错概率确定的。示例性的,无效数据块的擦除次数可以基于固态硬盘针对擦除动作进行记录得到的记录数据确定的,无效数据块对应的闪存的擦除寿命(P/E擦除寿命)可以基于固态硬盘的设备参数或基于预先对固态硬盘进行实验得到的预设值确定,无效数据块对应的原始比特出错概率可以基于固态硬盘在读取数据时记录得到的记录数据确定。
可选地,本发明实施例可以包括以下步骤:
步骤201、针对任一数据块,根据第二公式、所述数据块对应的擦写次数、所述数据块对应的闪存的擦除寿命以及所述数据块对应的原始比特出错概率,确定所述数据块的耐磨度值。
本发明实施例中,针对任一数据块,获取该数据块对应的擦写次数、该数据块对应的闪存的擦除寿命以及该数据块对应的原始比特出错概率。示例性的,可以基于固态硬盘(如固态硬盘)记录的擦除动作,确定数据块对应的擦写次数;基于固态硬盘的设备参数或基于预先对固态硬盘进行实验得到的预设值,确定数据块对应的闪存的擦除寿命;基于固态硬盘在读取数据时记录得到的记录数据,确定数据块对应的原始比特出错概率。基于第二公式、该数据块对应的擦写次数、该数据块对应的闪存的擦除寿命以及该数据块对应的原始比特出错概率,确定该数据块的耐磨度值。
示例性的,第二公式可以为:
其中,用于表示第i块数据块的耐磨度值;/>为第i块数据块的擦写次数,/>为第i块数据块对应的闪存的擦除寿命,/>为第i块数据块的原始比特出错概率,/>为预设的原始位错误率阈值,/>为权重参数,/>为标准的块擦除时间,/>为第i块数据块最近一次的块擦除时间。
步骤202、按照预设形式将所述数据块的耐磨度值记录在耐磨度参数表中。
本发明实施例中,在确定固态硬盘中的数据块对应的耐磨度值的情况下,可以将数据块对应的耐磨度值按照预设形式整理记录至耐磨度参数表中。其中,预设形式包括但不限于数组形式,具体可以根据需求自行设定,本发明实施例对此不做限制。
在一种可能的实施方式中,可以预先针对各数据块的耐磨度进行计算,生成耐磨度参数表,该数据表可以以数组的形式进行记录。第n个数组成员记录有第n个数据块的耐磨度值以及相关参数,包括数据块的擦除次数、数据块对应的闪存的擦除寿命(P/E擦除寿命)以及数据块对应的原始比特出错概率等数据。该耐磨度参数表可以按照预设更新规则进行更新,以确保耐磨度参数表的准确性,提高获取数据块的耐磨度值的速度。
步骤102、在所述目标回收块的有效页数量小于预设有效页阈值的情况下,确定第一空闲链表中的数据块数量是否大于预设空闲数据块阈值;所述第一空闲链表用于记录耐磨度值大于预设耐磨度阈值的空闲数据块。
本发明实施例中,获取目标回收块中包含的有效页数量,在有效页数量小于预设有效页阈值的情况下,表征该目标回收块中有效页的数量较少,即目标回收块中包含较多无效数据。因此,可以对目标回收块进行回收。进一步地,为了节约处理资源,可以基于第一空闲链表中包含的数据块数量是否大于预设空闲数据块阈值,判断是否对目标回收块进行回收。其中,第一空闲链表用于记录耐磨度值大于预设耐磨度阈值的空闲数据块,即第一空闲链表中包含耐磨度值大于预设耐磨度阈值的至少两个空闲数据块。当第一空闲链表中的数据块数量大于预设空闲数据块阈值时,表征固态硬盘中存在一定数量耐磨度值较高的可用空闲数据块,能够暂时满足用户需求,因此为了节省处理资源,降低处理器的使用率,可以暂时不对该无效数据块执行回收操作;当第一空闲链表中的数据块数量小于等于预设空闲数据块阈值时,表征固态硬盘中耐磨度值较高的空闲数据块的数量已经不能满足用户需求,需要及时对无效数据块进行回收。其中,预设空闲数据块阈值可以根据用户需求进行设定,本发明实施例对此不做限制。
本发明实施例中,还设置有第二空闲链表,其中,第二空闲链表用于记录耐磨度值小于或等于预设耐磨度阈值的空闲数据块,即第二空闲链表中包含耐磨度值小于或等于预设耐磨度阈值的至少两个空闲数据块。可以理解的是,为了便于理解,第一空闲链表可以称为年轻空闲数据块链表,第二空闲链表可以称为年老空闲数据块链表。
可选地,在目标回收块的有效页数量大于预设有效页阈值的情况下,可以将目标回收块添加至第二目标集合(即特殊脏块集合)中。
步骤103、在所述第一空闲链表中的数据块数量小于等于所述预设空闲数据块阈值的情况下,对所述目标回收块进行回收。
本发明实施例中,在第一空闲链表中的数据块数量小于等于预设空闲数据块阈值的情况下,表征固态硬盘中空闲数据块的数量已经不能满足用户需求,无法保障固态硬盘的写性能,需要对目标回收块进行回收处理,因此,对目标数据块中的数据进行对应处理,包括对有效数据进行转移以及对数据转移后的目标数据块中的数据进行擦除等。可以理解的是,在对目标回收块进行回收之后,可以根据当前情况对目标映射表、页可用位图以及页有效位图进行对应更新,以确保目标映射表、页可用位图以及页有效位图的实时性以及有效性。
综上所述,本发明实施例中,通过对无效数据块的耐磨度值进行判断,将满足预设耐磨度条件的无效数据块确定为目标回收块,以无效数据块为判断对象,并以耐磨度值(数据块的磨损情况)为判断标准,进而可以选择合适的无效数据块作为目标回收块进行后续处理,一定程度上提高了数据块回收过程中数据块选择的合理性。进一步地,本发明实施例中的耐磨度值是基于无效数据块的擦除次数、无效数据块对应的闪存的擦除寿命以及无效数据块的原始比特出错概率确定的,由于数据块之间的比特位出错的比率差别很大,因此,将比特出错概率作为耐磨度值的参考可以一定程度上使得数据块的耐磨度值更加合理准确,基于擦除次数、闪存的擦除寿命以及原始比特出错概率确定的耐磨度值更能反映数据块的实际磨损情况。同时,本发明实施例基于目标回收块的有效页数量以及第一空闲链表中的数据块数量确定是否对目标回收块进行回收,在确保固态硬盘运行的可靠性,保证读写效率的基础上,一定程度上节约了资源,提高了固态硬盘中数据块之间的磨损均衡性,进而提高了固态硬盘的使用寿命。
可选地,步骤103可以包括以下步骤:
步骤301、基于页可用位图以及页有效位图,确定所述目标回收块中有效页对应的第一有效页数量。
本发明实施例中,在页可用位图中确定目标回收块对应的非可用页,并基于页有效位图确定目标回收块对应的非可用页中有效页的数量,作为第一有效页数量。示例性的,可以基于页可用位图确定目标回收块对应的标记为1的物理页,即非可用页,再基于页有效位图确定标记为1的非可用页,即有效页,统计有效页的数量作为第一有效页数量。
步骤302、基于所述页可用位图以及所述第一有效页数量,确定目标空闲页。
本发明实施例中,基于页可用位图,从页可用位图中确定与第一有效页数量相同的可用页,作为目标空闲页。其中,目标空闲页所属的数据块与目标回收块不同。示例性的,为了延长目标回收块中数据转移后的回收周期,目标空闲页所属的数据块不包含在第二空闲链表。换言之,基于页可用位图,从页可用位图中确定出与第一有效页数量相同且不属于第二空闲链表中的任一数据块的可用页作为目标空闲页。
步骤303、将所述目标回收块中有效页的目标数据写入所述目标空闲页。
本发明实施例中,获取目标回收块中有效页中的目标数据,并将该目标数据写入目标空闲页。示例性的,可以将目标回收块中的目标数据先存储在预设缓存,再将预设缓存中的目标数据存储至目标空闲页。
步骤304、擦除所述目标回收块中的数据,并更新目标映射表、所述页可用位图以及所述页有效位图。
本发明实施例中,在将目标回收块中有效页的目标数据写入目标空闲页之后,可以将目标回收块中的数据进行擦除,更新目标映射表中物理地址与逻辑地址的映射关系,同时更新页可用位图中目标回收块中的有效页以及目标空闲页对应的可用状态,以及,更新页有效位图中目标回收块中的有效页以及目标空闲页对应的有效状态。对目标回收块中的数据进行擦除可以是将目标数据库恢复至初始状态,具体擦除方式本发明实施例对此不做限制。示例性的,可以将目标映射表中目标回收块以及有效页对应的逻辑地址与物理地址的关系,替换为目标空闲页对应的数据块以及目标空闲页对应的逻辑地址与物理地址的关系;将页可用位图中目标回收块的有效页对应的可用状态标记为0,并将页有效位图中目标回收块的有效页删除;将页可用位图中目标空闲页对应的可用状态标记为1,并将页有效位图中目标空闲页对应的状态标记为1,即表明目标空闲页中存储有有效数据。
本发明实施例中,通过确定符合要求的目标空闲页,可以将目标回收块中有效页的目标数据转移至目标空白页,在确保有效页中的数据不丢失的情况下,释放了数据块资源。
本发明实施例中,第一目标集合、第二目标集合、第一空闲链表以及第二空闲链表均可以以链表的形式进行记录,链表中的每个链表成员代表一个数据块,针对每个链表成员记录其数据块标识(PPN)、耐磨度值以及指向下一链表成员的地址(NEXT)。其中,目标映射表、页可用位图、页有效位图、耐磨度参数表、第一目标集合、第二目标集合、第一空闲链表以及第二空闲链表均可以存储在固态硬盘的DRAM缓存中,具体的,上电时从固态硬盘的闪存中读取,掉电时从DRAM缓存中写入固态硬盘相应的闪存。示例性的,以第一空闲链表为例,第一空闲链表可以如图3所示,图3中每个链表成员代表一个数据块,针对每个链表成员记录其数据块标识、耐磨度值以及指向下一链表成员的地址。
可选地,本发明实施例还可以包括以下步骤:
步骤401、获取所述目标回收块的耐磨度值。
本发明实施例中,在完成对目标回收块中有效页的数据转移以及对目标回收块的数据擦除之后,目标回收块已处于初始状态,因此可以对目标回收块进行保留以待后续使用。获取目标回收块的耐磨度值,具体可以基于耐磨度参数表直接查询目标回收块对应的耐磨度值,或直接基于目标回收块对应的擦除次数、目标回收块对应的闪存的擦除寿命(P/E擦除寿命)以及目标回收块对应的原始比特出错概率等数据计算确定目标回收块对应的耐磨度值。
步骤402、在所述目标回收块的耐磨度值大于预设耐磨度阈值的情况下,将所述目标回收块添加至所述第一空闲链表。
步骤403、在所述目标回收块的耐磨度值小于等于所述预设耐磨度阈值的情况下,将所述目标回收块添加至第二空闲链表。
本发明实施例中,在目标回收块的耐磨度值大于预设耐磨度阈值的情况下,表征目标回收块的磨损程度较轻,相应的,相对于耐磨度值低的数据块而言目标回收块的潜在使用寿命较长,因此,可以将目标回收块添加至第一空闲链表(即年轻空闲数据块链表)。在目标回收块的耐磨度值小于等于预设耐磨度阈值的情况下,表征目标回收块的磨损程度较重,相应的,相对于耐磨度值高的数据块而言目标回收块的潜在使用寿命较短,因此,可以将目标回收块添加至第二空闲链表,即年老空闲数据块链表。
本发明实施例中,在对目标回收块进行数据擦除之后,将恢复为初始状态的目标回收块按照耐磨度值添加至第一空闲链表或第二空闲链表,实现了对目标回收块的归类,并有利于后续对目标回收块的利用。
可选地,在步骤103之后,本发明实施例还包括以下步骤:
步骤501、在所述第一空闲链表中的数据块数量大于所述预设空闲数据块阈值的情况下,确定所述目标回收块的热度值。
本发明实施例中,在第一空闲链表中的数据块数量大于预设空闲数据块阈值的情况下,表征固态硬盘中空闲数据块的数量暂时还可以满足用户需求,暂时可以保障固态硬盘的写性能,因此,可以进一步基于目标回收块的热度值,判断对目标回收块执行的下一步操作。获取目标回收块对应的热度值,其中,数据块对应的热度值可以与数据块中存储的数据冷热度相关,根据数据冷热度可以将数据划分为热数据以及冷数据,经常读写使用的数据是热数据,很少读写使用的数据是冷数据。相应的,数据块的热度值高表征该数据块最近经常被使用(即擦除次数多,潜在剩余寿命短),数据块的热度值低表征该数据块最近使用频率较低(即擦除次数少,潜在剩余寿命长)。可以理解的是,可以将热度值大于等于预设热度阈值的数据块称为热数据块,将热度值小于预设热度阈值的数据块称为冷数据块。
本发明实施例中,可以基于第一公式,确定目标回收块的热度值。其中,第一公式包括:
其中,所述用于表示所述目标回收块的热度值;所述/>用于表示所述目标回收块对应的固态硬盘最近/>次擦除动作中对第i块目标回收块进行擦除的擦除次数,目标回收块对应的固态硬盘可以是目标回收块所属的固态硬盘;所述/>用于表示所述固态硬盘中的闪存的P/E擦除寿命次数;所述/>用于表示第i块目标回收块对应的擦除次数;/>为权重参数;B为常数。
步骤502、在所述目标回收块的热度值小于预设热度阈值的情况下,从第二目标集合中确定目标交换块。
本发明实施例中,由于第一空闲链表中的数据块数量大于预设空闲数据块阈值,即空闲数据块暂时可以满足用户需求,可以不对目标回收块进行回收,而由于在目标回收块的热度值小于预设热度阈值的情况下,表征目标回收块的使用频率相对较低,相应的,其潜在寿命较长,因此,可以基于目标回收块潜在寿命相对较长的特征,与其它潜在寿命较短但数据块对应的热度值较高的数据块进行数据交换。从第二目标集合中确定目标交换块,由于第二目标集合中记录有无效数据块中有效数据页大于预设有效页阈值且耐磨度值小于预设耐磨度阈值的目标无效数据块(特殊脏块),即第二目标集合中的无效数据块均为有效数据较多但数据块耐磨度值较低的数据块,因此,可以选择第二目标集合中热度值最高的数据块作为目标交换块。目标交换块为有效页数量较多、耐磨度值较低且数据块热度值较高的数据块,代表目标交换块潜在使用寿命相对较短,但有效数据较多且数据块的使用率较高。
可选地,步骤502可以包括以下步骤:
步骤5021、将所述第二目标集合中的数据块按照热度值进行排序,并确定热度值最高的目标热数据块。
本发明实施例中,将第二目标集合中的数据块按照热度值升序或降序进行排序,将热度值最高的数据块确定为目标热数据块。
步骤5022、在所述目标热数据块的数量为一个的情况下,将所述目标热数据块确定为所述目标交换块。
步骤5023、在所述目标热数据块的数量为至少两个的情况下,将至少两个目标热数据块中耐磨度值最小的数据块作为所述目标交换块。
本发明实施例中,在目标热数据块的数量为一个的情况下,即第二目标集合中热度值最高的数据块为一个的情况下,直接将该目标热数据块确定为目标交换块。在目标热数据块的数量为至少两个的情况下,即第二目标集合中包含至少两个热度值最高的数据块,这时,可以基于数据块的耐磨度值进一步进行判断,数据块热度值高且耐磨度值小说明该数据块的潜在使用寿命较短但数据块使用率较高,数据块磨损较快,因此,可以将至少两个目标热数据块中耐磨度值最小的数据块作为目标交换块。
步骤503、交换所述目标回收块与所述目标交换块的数据。
本发明实施例中,目标回收块的有效页数量较少且热度值较低,目标交换块的有效页数量较多且热度值较高,因此,交换目标回收块以及目标交换块中的数据,可以使得有效页数量较多且使用率较高的数据块中的数据转移到目标回收块中。
可选地,步骤503可以包括以下步骤:
步骤5031、在所述目标回收块的耐磨度值大于等于所述目标交换块的耐磨度值的情况下,交换所述目标回收块与所述目标交换块的数据。
本发明实施例中,为了提高数据交换后的有效性,可以获取目标回收块以及目标交换块的耐磨度值,当目标回收块的耐磨度值大于等于目标交换块的耐磨度值的情况下,再交换目标回收块与目标交换块的数据。这样,可以使得数据交换后,减少对磨损程度较高的数据块(目标交换块)的读写擦除磨损。
本发明实施例中,通过确定目标交换块,并交换目标回收块与目标交换块之间的数据,可以使得数据交换后,减少对磨损程度较高的数据块(目标交换块)的读写擦除磨损,一定程度上提高了固态硬盘的磨损均衡性。
可选地,步骤503可以包括以下步骤:
步骤601、将所述目标回收块中的数据以及所述目标交换块中的数据写入目标缓存,并擦除所述目标回收块以及所述目标交换块。
本发明实施例中,获取目标回收块中的数据以及目标交换块中的数据,并将目标回收块中的数据以及目标交换块中的数据全部写入目标缓存。其中,目标缓存可以是固态硬盘中的预先划分的缓存空间,例如DRAM缓存。在将目标回收块中的数据以及目标交换块中的数据全部写入目标缓存之后,擦除目标回收块以及目标交换块中的数据,使得目标回收块以及目标交换块恢复为初始状态。
步骤602、将所述目标交换块的有效页对应的第一数据写入所述目标回收块中,以及,将所述目标回收块的有效页对应的第二数据写入所述目标交换块。
本发明实施例中,由于有效页中存储的数据有交换价值,而无效页中存储的数据需要被回收则没有交换价值,因此,将目标交换块的有效页对应的第一数据写入目标回收块中,以及,将目标回收块的有效页对应的第二数据写入目标交换块,以完成目标交换块与目标回收块中有效数据的数据交换。并且,由于在数据写入之前已经对目标交换块与目标回收块进行数据擦除,则数据交换后的目标交换块与目标回收块中仅包含对方数据块中的有效数据。
相应的,本发明实施例可以包括以下步骤:
步骤603、更新目标映射表、页可用位图以及页有效位图,并删除所述第二目标集合中的目标交换块。
本发明实施例中,在完成对目标交换块以及目标回收块的数据交换后,基于目标交换块与目标回收块的当前实际存储状态,对应更新目标映射表、页可用位图以及页有效位图中的信息。示例性的,可以对第一数据对应的逻辑页地址与物理页地址之间的映射关系进行更新,并且对第二数据对应的逻辑页地址与物理页地址之间的映射关系进行更新。将目标回收块中未存储第一数据的物理页以及目标交换块中为存储第二数据的物理页的状态在页可用位图中更新为可用状态(例如标记为0),并将目标回收块中存储第一数据的物理页以及目标交换块中存储第二数据的物理页的状态在页可用位图中更新为不可用状态(例如标记为1),并在页有效位图中更新为有效状态(例如标记为1)。
在一种可能的实施方式中,在完成目标交换块与目标回收块之间的数据交换后,可以从第二目标集合中删除目标交换块。
本发明实施例中,通过将目标交换块的有效页对应的第一数据以及目标回收块的有效页对应的第二数据交换写入目标交换块以及目标回收块,实现了有效数据的数据交换以及无效数据的擦除。
可选地,在预设耐磨度条件包括无效数据块的耐磨度值最高的情况下,步骤101可以包括以下步骤:
步骤701、将第一目标集合中的无效数据块按照耐磨度值进行排序,并将耐磨度值最高的无效数据块确定为所述目标回收块;所述预设耐磨度条件包括无效数据块的耐磨度值最高。
本发明实施例中,将第一目标集合中的无效数据块按照耐磨度值进行升序或降序排列,并将耐磨度值最高的无效数据块确定为目标回收块。目标回收块的耐磨度值在第一目标集合中最高表明该目标回收块相对于第一目标集合中的其它无效数据块而言潜在寿命最长,相应的,其回收价值更高,更有利于提高固态硬盘的磨损均衡性。
可选地,本发明实施例可以包括以下步骤:
步骤801、响应于主机发送的写请求,在所述写请求为新写入请求的情况下,将所述写请求指示的指定数据写入第一目标空闲页;所述第一目标空闲页是基于页可用位图确定的,所述第一目标空闲页对应的第一数据块不属于第二空闲链表。
本发明实施例中,主机在需要向固态硬盘写入数据时,会生成写请求并发送给固态硬盘,固态硬盘响应于主机发送的写请求,判断写请求的请求类型。其中,请求类型可以包括新写入请求以及覆盖写入请求。示例性的,可以基于写请求携带的写入地址以及目标映射表确定写请求的请求类型。在写请求为新写入请求的情况下,根据页可用位图,确定满足该写请求对应的写入需求的可用页(空闲页),作为第一目标空闲页。第一目标空闲页对应的第一数据块不属于第二空闲链表(年老数据块链表),即第一目标空闲页对应的第一数据块可以是耐磨度值大于预设耐磨度阈值的空闲数据块。将写请求指示的指定数据写入第一目标空闲页。
步骤802、更新页可用位图、页有效位图以及目标映射表。
本发明实施例中,在将指定数据写入第一目标空白页后,将页可用位图中第一目标空白页对应的标记更新为不可用(例如标记为1),并将页有效位图中第一目标空白页对应的标记更新为有效(例如标记为1)。再基于指定数据与第一目标空白页的存储关系,更新目标映射表,示例性的,可以在目标映射表中增加第一目标空白页对应的逻辑页地址与物理页地址的映射关系。
本发明实施例中,在写请求为新写入请求的情况下,基于页可用位图确定出第一目标空闲页,将写请求指示的指定数据写入第一目标空闲页,并更新页可用位图、页有效位图以及目标映射表,这样,可以使得新写入请求指示的指定数据可以存储至耐磨度值大于预设耐磨度阈值的空闲数据块,进而一定程度上提高耐磨度值较大的数据块的使用率,降低耐磨度值较小的数据块的使用率,相较于任一选择数据块进行数据写入,基于耐磨度值选择数据块的方式更加合理,进而提高了磨损均衡性。
可选地,本发明实施例可以包括以下步骤:
步骤901、响应于主机发送的写请求,在所述写请求为覆盖写入请求的情况下,将所述写请求指示的指定数据写入第二目标空闲页;所述第二目标空闲页是基于页可用位图确定的,所述第二目标空闲页对应的第二数据块不属于第二空闲链表。
本发明实施例中,由于固态硬盘的闪存不能“覆盖写”,闪存中数据块的物理页只有在其“空闲”的时候才能写入。因此,当一个物理页的数据需要更新时,固态硬盘会先将更新数据写入到别的空的物理页中,再将原物理页的逻辑地址重定向,同时把原物理页标为无效。也就是说,在固态硬盘接收到的写请求为覆盖写请求的情况下,数据并非就地在写请求指定的目标逻辑地址对应的物理页进行更新,而是会写入到一个新的空闲页,再将写请求指定的目标逻辑地址对应的物理页进行重定向。同时,一旦数据被新的空闲页保存,原先的页就会被标记为“stale(意为腐败的,不新鲜的)”,即被标记为无效页,直到其被擦除。
基于此,在本发明实施例中,在接收到主机发送的写请求的情况下,判断该写请求为覆盖写入请求的情况下,根据页可用位图,确定满足该写请求对应的写入需求的可用页(空闲页),作为第二目标空闲页。第二目标空闲页对应的第二数据块不属于第二空闲链表(年老数据块链表),即第二目标空闲页对应的第二数据块可以是耐磨度值大于预设耐磨度阈值的空闲数据块。将写请求指示的指定数据写入第二目标空闲页。
步骤902、更新页可用位图和页有效位图中所述写请求指示的目标逻辑地址对应的物理页的第一页状态以及所述第二目标空闲页的第二页状态。
本发明实施例中,将页可用位图中写请求指示的目标逻辑地址对应的物理页的第一页状态更新为不可用状态(例如标记为1),并将页有效位图中写请求指示的目标逻辑地址对应的物理页的第一页状态更新为无效(例如标记为0)。将页可用位图中第二目标空闲页的第二页状态更新为不可用状态(例如标记为1),并将页有效位图中第二目标空闲页的第二页状态更新为有效(例如标记为1)。
在一种可能的实施方式中,可以将写请求指示的目标逻辑地址对应的物理页所在的旧数据块添加至第一目标集合(普通脏块集合),具体的,可以先在第一目标集合(普通脏块集合)以及第二目标集合(特殊脏块集合)中查找该旧数据块,若该旧数据块已存在于第一目标集合或第二目标集合,则不作处理;若该旧数据块不存在于第一目标集合或第二目标集合,则将该旧数据块添加至第一目标集合。
步骤903、将目标映射表中所述写请求指示的目标逻辑地址对应的物理页的映射关系删除,以及,将所述第二目标空闲页的映射关系添加至所述目标映射表。
本发明实施例中,在完成数据写入操作之后,更新目标映射表中的页映射关系。示例性的,可以删除目标映射表中写请求指示的目标逻辑地址对应的物理页的映射关系,并将第二目标空闲页的映射关系添加至目标映射表。
本发明实施例中,在写请求为覆盖写入请求的情况下,将写请求指示的指定数据写入第二目标空闲页后,对应更新页可用位图、页有效位图以及目标映射页。一定程度上提高耐磨度值较大的数据块的使用率,降低耐磨度值较小的数据块的使用率,并且,通过及时更新页可用位图、页有效位图以及目标映射页,确保页可用位图、页有效位图以及目标映射页的实时性以及准确性,为后续进行数据块回收奠定了基础。
可选地,本发明实施例还可以包括以下步骤:
步骤1001、响应于主机发送的读请求,基于目标映射表确定所述读请求指示的目标读数据对应的目标数据地址。
步骤1002、基于所述目标数据地址,读取所述目标读数据,并将所述目标读数据返回所述主机。
本发明实施例中,在主机需要读取固态硬盘的数据的情况下,会生成读请求并发送至固态硬盘。固态硬盘响应于主机发送的读请求,基于目标映射表,确定该读请求指示的目标读数据对应的目标数据地址。示例性的,读请求可以携带目标读数据对应的逻辑地址,基于目标映射表,可以根据目标读数据对应的逻辑地址确定出目标读数据对应的目标数据地址。基于目标数据地址获取目标读数据,将该目标读数据返回主机。
可选地,在步骤1002之后,本发明实施例可以包括以下步骤:
步骤1101、基于所述目标读数据生成目标校验数据。
本发明实施例中,当主机向固态硬盘发送读请求后,固态硬盘的固件会响应读请求执行读操作。具体的,读操作是先读取物理页中的目标读数据,再读取目标读数据对应的初始校验数据(ECC)。基于目标读数据生成目标校验数据,可以理解的是,基于目标读数据生成目标校验数据的方式可以参考现有技术,本发明实施例对此不做限制。
步骤1102、基于所述目标校验数据以及初始校验数据,获取所述目标读数据对应的数据块的读取数据总数据量和出错数据量。
本发明实施例中,对目标校验数据以及初始校验数据进行对比,并确定本次读操作读取目标读数据对应的读取数据总数据量和出错数据量。读取数据总数据量和出错数据量可以表征本次读操作读取的数据正确与否。记录每次读操作对应的读取数据总数据量和出错数据量。
步骤1103、基于所述读取数据总数据量和所述出错数据量,确定所述目标读数据对应的数据块的原始比特出错概率。
本发明实施例中,可以基于读取数据总数据量和出错数据量计算得到目标读数据所在的数据块对应的原始比特出错概率。示例性的,可以基于出错数据量与读取数据总数据量进行除法计算,得到目标读数据所在的数据块对应的原始比特出错概率。原始比特出错概率用于更新计算目标读数据所在的数据块的耐磨度值。在确定目标读数据所在的数据块对应的原始比特出错概率之后,对应更新目标读数据所在的数据块对应的耐磨度值。
本发明实施例中,在每次读取数据之后,获取读取数据总数据量和出错数据量,可以得到目标读数据对应的数据块的原始比特出错概率,进而根据原始比特出错概率可以确定目标读数据对应的数据块的耐磨度值,使得数据块的耐磨度值更加真实可靠。
可选地,步骤101可以包括以下步骤:
步骤1201、在达到预设回收条件的情况下,基于所述固态硬盘中的至少两个无效数据块的耐磨度值,将满足预设耐磨度条件的无效数据块确定为目标回收块;所述预设回收条件包括以下至少一种:所述固态硬盘中空闲数据块的数量小于预设阈值、目标回收时长大于预设时长。
本发明实施例中,在达到预设回收条件的情况下,触发对无效数据块的回收操作。其中,预设回收条件包括以下至少一种:固态硬盘中空闲数据块的数量小于预设阈值、目标回收时长大于预设时长。目标回收时长可以是上一次对无效数据块进行回收的时间与当前时间之间的时间差,目标回收时长大于预设时长可以理解为距离上一次数据回收操作超过预设时长。也就是说,当固态硬盘中空闲数据块的数量小于预设阈值和/或目标回收时长大于预设时长时,基于至少两个无效数据块的耐磨度值,确定目标回收块,并执行对目标回收块的判断以及后续操作(如数据回收、数据交换等)。示例性的,还可以预先为固态硬盘设置周期启动无效数据块回收操作,在达到预设周期时,触发无效数据块回收操作。本发明实施例对预设回收条件不做限制。
本发明实施例中,通过设置预设回收条件,有条件的触发对无效数据块的回收操作,可以一定程度上节约资源。
示例性的,图4示出了一种数据块回收的步骤流程图,如图4所示,在达到预设回收条件的情况下,对第一目标集合中的无效数据块进行排序,并选择耐磨度值最高的无效数据块作为目标回收块。获取目标回收块对应的有效页数量,判断目标回收块的有效页数量是否小于预设有效页阈值,若是,则判断第一空闲链表中的数据块数量是否大于预设空闲数据块阈值;若否,则将目标回收块添加至第二目标集合。若第一空闲链表中的数据块数量大于预设空闲数据块阈值,则判断目标回收块的热度值是否小于预设热度阈值;若第一空闲链表中的数据块数量小于等于预设空闲数据块阈值,则对目标回收块进行回收。若目标回收块的热度值大于等于预设热度阈值,则停止操作。若目标回收块的热度值小于预设热度阈值,则从第二目标集合中确定目标交换块,并且在目标回收块的耐磨度值大于等于目标交换块的耐磨度值的情况下,交换目标回收块与目标交换块之间的数据;若目标回收块的耐磨度值小于目标交换块的耐磨度值,停止操作。
示例性的,图5示出了一种数据写入方法的步骤流程图,如图5所示,在固态硬盘接收到写请求的情况下,判断写请求的类型,在写请求为新写入请求的情况下,基于页可用位图确定第一目标空闲页,将指定数据写入第一目标空闲页。更新页可用位图以及页有效位图中第一目标空闲页的页状态(例如将页状态更新为不可用、有效),同时更新目标映射表中第一目标空闲页对应的页映射关系。在写请求为覆盖写入请求的情况下,基于页可用位图确定第二目标空闲页,将指定数据写入第二目标空闲页。更新页可用位图以及页有效位图中旧页(写请求指示的目标逻辑地址对应的物理页)以及第二目标空闲页的页状态(例如将旧页对应的页状态更新为不可用、无效,将第二目标空闲页的页状态更新为不可用、有效),并将旧页对应的旧数据块添加至第一目标集合。同时删除目标映射表中旧页(写请求指示的目标逻辑地址对应的物理页)对应的映射关系,在目标映射表中添加第二目标空闲页对应的映射关系。
图6是本发明实施例提供的一种固态硬盘的管理装置的结构示意图,如图6所示,该装置具体可以包括:
第一确定模块1301,用于基于所述固态硬盘中的至少两个无效数据块的耐磨度值,将满足预设耐磨度条件的无效数据块确定为目标回收块;所述数据块的耐磨度值是基于所述无效数据块的擦除次数、所述无效数据块对应的闪存的擦除寿命以及所述无效数据块的原始比特出错概率确定的;
第二确定模块1302,用于在所述目标回收块的有效页数量小于预设有效页阈值的情况下,确定第一空闲链表中的数据块数量是否大于预设空闲数据块阈值;所述第一空闲链表用于记录耐磨度值大于预设耐磨度阈值的空闲数据块;
第一回收模块1303,用于在所述第一空闲链表中的数据块数量小于等于所述预设空闲数据块阈值的情况下,对所述目标回收块进行回收。
本发明实施例提供一种固态硬盘的管理装置,通过对无效数据块的耐磨度值进行判断,将满足预设耐磨度条件的无效数据块确定为目标回收块,以无效数据块为判断对象,并以耐磨度值(数据块的磨损情况)为判断标准,进而可以选择合适的无效数据块作为目标回收块进行后续处理,一定程度上提高了数据块回收过程中数据块选择的合理性。进一步地,本发明实施例中的耐磨度值是基于无效数据块的擦除次数、无效数据块对应的闪存的擦除寿命以及无效数据块的原始比特出错概率确定的,由于数据块之间的比特位出错的比率差别很大,因此,将比特出错概率作为耐磨度值的参考可以一定程度上使得数据块的耐磨度值更加合理准确,基于擦除次数、闪存的擦除寿命以及原始比特出错概率确定的耐磨度值更能反映数据块的实际磨损情况。同时,本发明实施例基于目标回收块的有效页数量以及第一空闲链表中的数据块数量确定是否对目标回收块进行回收,在确保固态硬盘运行的可靠性,保证读写效率的基础上,一定程度上节约了资源,提高了固态硬盘中数据块之间的磨损均衡性,进而提高了固态硬盘的使用寿命。
可选地,第一回收模块1303包括:
第一确定子模块,用于基于页可用位图以及页有效位图,确定所述目标回收块中有效页对应的第一有效页数量;
第二确定子模块,用于基于所述页可用位图以及所述第一有效页数量,确定目标空闲页;
第一写入模块,用于将所述目标回收块中有效页的目标数据写入所述目标空闲页;
第一更新模块,用于擦除所述目标回收块中的数据,并更新目标映射表、所述页可用位图以及所述页有效位图。
可选地,该装置还包括:
第一获取模块,用于获取所述目标回收块的耐磨度值;
第一添加模块,用于在所述目标回收块的耐磨度值大于预设耐磨度阈值的情况下,将所述目标回收块添加至所述第一空闲链表;
第二添加模块,用于在所述目标回收块的耐磨度值小于等于所述预设耐磨度阈值的情况下,将所述目标回收块添加至第二空闲链表。
可选地,该装置还包括:
第三确定模块,用于在所述第一空闲链表中的数据块数量大于所述预设空闲数据块阈值的情况下,确定所述目标回收块的热度值;
第四确定模块,用于在所述目标回收块的热度值小于预设热度阈值的情况下,从第二目标集合中确定目标交换块;
第一交换模块,用于交换所述目标回收块与所述目标交换块的数据。
可选地,第三确定模块包括:
第三确定子模块,用于基于第一公式,确定所述目标回收块的热度值;
所述第一公式包括:
其中,所述用于表示所述目标回收块的热度值;所述/>用于表示所述目标回收块对应的固态硬盘最近/>次擦除动作中对第i块目标回收块进行擦除的擦除次数;所述/>用于表示所述固态硬盘中的闪存的P/E擦除寿命次数;所述/>用于表示第i块目标回收块对应的擦除次数;/>为权重参数;B为常数。
可选地,第四确定模块包括:
第四确定子模块,用于将所述第二目标集合中的数据块按照热度值进行排序,并确定热度值最高的目标热数据块;
第五确定子模块,用于在所述目标热数据块的数量为一个的情况下,将所述目标热数据块确定为所述目标交换块;
第六确定子模块,用于在所述目标热数据块的数量为至少两个的情况下,将至少两个目标热数据块中耐磨度值最小的数据块作为所述目标交换块。
可选地,第一交换模块包括:
第一交换子模块,用于在所述目标回收块的耐磨度值大于等于所述目标交换块的耐磨度值的情况下,交换所述目标回收块与所述目标交换块的数据。
可选地,第一交换模块包括:
第二写入模块,用于将所述目标回收块中的数据以及所述目标交换块中的数据写入目标缓存,并擦除所述目标回收块以及所述目标交换块;
第三写入模块,用于将所述目标交换块的有效页对应的第一数据写入所述目标回收块中,以及,将所述目标回收块的有效页对应的第二数据写入所述目标交换块;
该装置还包括:
第二更新模块,用于更新目标映射表、页可用位图以及页有效位图,并删除所述第二目标集合中的目标交换块。
可选地,该装置还包括:
第五确定模块,用于针对任一数据块,根据第二公式、所述数据块对应的擦写次数、所述数据块对应的闪存的擦除寿命以及所述数据块对应的原始比特出错概率,确定所述数据块的耐磨度值;
第一记录模块,用于按照预设形式将所述数据块的耐磨度值记录在耐磨度参数表中。
可选地,第一确定模块1301包括:
第七确定子模块,用于将第一目标集合中的无效数据块按照耐磨度值进行排序,并将耐磨度值最高的无效数据块确定为所述目标回收块;所述预设耐磨度条件包括无效数据块的耐磨度值最高。
可选地,该装置还包括:
第四写入模块,用于响应于主机发送的写请求,在所述写请求为新写入请求的情况下,将所述写请求指示的指定数据写入第一目标空闲页;所述第一目标空闲页是基于页可用位图确定的,所述第一目标空闲页对应的第一数据块不属于第二空闲链表;
第三更新模块,用于更新页可用位图、页有效位图以及目标映射表。
可选地,该装置还包括:
第五写入模块,用于响应于主机发送的写请求,在所述写请求为覆盖写入请求的情况下,将所述写请求指示的指定数据写入第二目标空闲页;所述第二目标空闲页是基于页可用位图确定的,所述第二目标空闲页对应的第二数据块不属于第二空闲链表;
第四更新模块,用于更新页可用位图和页有效位图中所述写请求指示的目标逻辑地址对应的物理页的第一页状态以及所述第二目标空闲页的第二页状态;
第五更新模块,用于将目标映射表中所述写请求指示的目标逻辑地址对应的物理页的映射关系删除,以及,将所述第二目标空闲页的映射关系添加至所述目标映射表。
可选地,该装置还包括:
第六确定模块,用于响应于主机发送的读请求,基于目标映射表确定所述读请求指示的目标读数据对应的目标数据地址;
第一读取模块,用于基于所述目标数据地址,读取所述目标读数据,并将所述目标读数据返回所述主机。
可选地,该装置还包括:
第一生成模块,用于基于所述目标读数据生成目标校验数据;
第二获取模块,用于基于所述目标校验数据以及初始校验数据,获取所述目标读数据对应的数据块的读取数据总数据量和出错数据量;
第七确定模块,用于基于所述读取数据总数据量和所述出错数据量,确定所述目标读数据对应的数据块的原始比特出错概率。
可选地,第一确定模块1301包括:
第八确定子模块,用于在达到预设回收条件的情况下,基于所述固态硬盘中的至少两个无效数据块的耐磨度值,将满足预设耐磨度条件的无效数据块确定为目标回收块;所述预设回收条件包括以下至少一种:所述固态硬盘中空闲数据块的数量小于预设阈值、目标回收时长大于预设时长。
本发明还提供了一种电子设备,参见图7,包括:处理器1401、存储器1402以及存储在所述存储器上并可在所述处理器上运行的计算机程序14021,所述处理器执行所述程序时实现前述实施例的固态硬盘的管理方法。
本发明还提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述实施例的固态硬盘的管理方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明的排序设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要指出的是,本申请中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (20)
1.一种固态硬盘的管理方法,其特征在于,所述方法包括:
基于所述固态硬盘中的至少两个无效数据块的耐磨度值,将满足预设耐磨度条件的无效数据块确定为目标回收块;所述数据块的耐磨度值是基于所述无效数据块的擦除次数、所述无效数据块对应的闪存的擦除寿命以及所述无效数据块的原始比特出错概率确定的;
在所述目标回收块的有效页数量小于预设有效页阈值的情况下,确定第一空闲链表中的数据块数量是否大于预设空闲数据块阈值;所述第一空闲链表用于记录耐磨度值大于预设耐磨度阈值的空闲数据块;
在所述第一空闲链表中的数据块数量小于等于所述预设空闲数据块阈值的情况下,对所述目标回收块进行回收。
2.根据权利要求1所述的固态硬盘的管理方法,其特征在于,所述对所述目标回收块进行回收,包括:
基于页可用位图以及页有效位图,确定所述目标回收块中有效页对应的第一有效页数量;
基于所述页可用位图以及所述第一有效页数量,确定目标空闲页;
将所述目标回收块中有效页的目标数据写入所述目标空闲页;
擦除所述目标回收块中的数据,并更新目标映射表、所述页可用位图以及所述页有效位图。
3.根据权利要求2所述的固态硬盘的管理方法,其特征在于,在所述擦除所述目标回收块中的数据之后,所述方法还包括:
获取所述目标回收块的耐磨度值;
在所述目标回收块的耐磨度值大于预设耐磨度阈值的情况下,将所述目标回收块添加至所述第一空闲链表;
在所述目标回收块的耐磨度值小于等于所述预设耐磨度阈值的情况下,将所述目标回收块添加至第二空闲链表。
4.根据权利要求1所述的固态硬盘的管理方法,其特征在于,所述方法还包括:
在所述第一空闲链表中的数据块数量大于所述预设空闲数据块阈值的情况下,确定所述目标回收块的热度值;
在所述目标回收块的热度值小于预设热度阈值的情况下,从第二目标集合中确定目标交换块;
交换所述目标回收块与所述目标交换块的数据。
5.根据权利要求4所述的固态硬盘的管理方法,其特征在于,所述确定所述目标回收块的热度值,包括:
基于第一公式,确定所述目标回收块的热度值;
所述第一公式包括:
其中,所述用于表示所述目标回收块的热度值;所述/>用于表示所述目标回收块对应的固态硬盘最近/>次擦除动作中对第i块目标回收块进行擦除的擦除次数;所述/>用于表示所述固态硬盘中的闪存的P/E擦除寿命次数;所述/>用于表示第i块目标回收块对应的擦除次数;/>为权重参数;B为常数。
6.根据权利要求4所述的固态硬盘的管理方法,其特征在于,所述从第二目标集合中确定目标交换块,包括:
将所述第二目标集合中的数据块按照热度值进行排序,并确定热度值最高的目标热数据块;
在所述目标热数据块的数量为一个的情况下,将所述目标热数据块确定为所述目标交换块;
在所述目标热数据块的数量为至少两个的情况下,将至少两个目标热数据块中耐磨度值最小的数据块作为所述目标交换块。
7.根据权利要求4所述的固态硬盘的管理方法,其特征在于,所述交换所述目标回收块与所述目标交换块的数据,包括:
在所述目标回收块的耐磨度值大于等于所述目标交换块的耐磨度值的情况下,交换所述目标回收块与所述目标交换块的数据。
8.根据权利要求4所述的固态硬盘的管理方法,其特征在于,所述交换所述目标回收块与所述目标交换块的数据,包括:
将所述目标回收块中的数据以及所述目标交换块中的数据写入目标缓存,并擦除所述目标回收块以及所述目标交换块;
将所述目标交换块的有效页对应的第一数据写入所述目标回收块中,以及,将所述目标回收块的有效页对应的第二数据写入所述目标交换块;
所述方法还包括:
更新目标映射表、页可用位图以及页有效位图,并删除所述第二目标集合中的目标交换块。
9.根据权利要求1所述的固态硬盘的管理方法,其特征在于,所述方法还包括:
针对任一数据块,根据第二公式、所述数据块对应的擦写次数、所述数据块对应的闪存的擦除寿命以及所述数据块对应的原始比特出错概率,确定所述数据块的耐磨度值;
按照预设形式将所述数据块的耐磨度值记录在耐磨度参数表中。
10.根据权利要求9所述的固态硬盘的管理方法,其特征在于,所述第二公式包括:
其中,用于表示第i块数据块的耐磨度值;/>为第i块数据块的擦写次数,/>为第i块数据块对应的闪存的擦除寿命,/>为第i块数据块的原始比特出错概率,/>为预设的原始位错误率阈值,/>为权重参数,/>为标准的块擦除时间,/>为第i块数据块最近一次的块擦除时间。
11.根据权利要求1所述的固态硬盘的管理方法,其特征在于,所述基于所述固态硬盘中的至少两个无效数据块的耐磨度值,将满足预设耐磨度条件的无效数据块确定为目标回收块,包括:
将第一目标集合中的无效数据块按照耐磨度值进行排序,并将耐磨度值最高的无效数据块确定为所述目标回收块;所述预设耐磨度条件包括无效数据块的耐磨度值最高。
12.根据权利要求1所述的固态硬盘的管理方法,其特征在于,第二空闲链表用于记录耐磨度值小于或等于所述预设耐磨度阈值的空闲数据块,第二目标集合用于记录无效数据块中有效数据页大于预设有效页阈值且耐磨度值小于所述预设耐磨度阈值的目标无效数据块,第一目标集合用于记录无效数据块中除所述第二目标集合中包含的目标无效数据块外的其它无效数据块。
13.根据权利要求1所述的固态硬盘的管理方法,其特征在于,所述方法还包括:
响应于主机发送的写请求,在所述写请求为新写入请求的情况下,将所述写请求指示的指定数据写入第一目标空闲页;所述第一目标空闲页是基于页可用位图确定的,所述第一目标空闲页对应的第一数据块不属于第二空闲链表;
更新页可用位图、页有效位图以及目标映射表。
14.根据权利要求1所述的固态硬盘的管理方法,其特征在于,所述方法还包括:
响应于主机发送的写请求,在所述写请求为覆盖写入请求的情况下,将所述写请求指示的指定数据写入第二目标空闲页;所述第二目标空闲页是基于页可用位图确定的,所述第二目标空闲页对应的第二数据块不属于第二空闲链表;
更新页可用位图和页有效位图中所述写请求指示的目标逻辑地址对应的物理页的第一页状态以及所述第二目标空闲页的第二页状态;
将目标映射表中所述写请求指示的目标逻辑地址对应的物理页的映射关系删除,以及,将所述第二目标空闲页的映射关系添加至所述目标映射表。
15.根据权利要求1所述的固态硬盘的管理方法,其特征在于,所述方法还包括:
响应于主机发送的读请求,基于目标映射表确定所述读请求指示的目标读数据对应的目标数据地址;
基于所述目标数据地址,读取所述目标读数据,并将所述目标读数据返回所述主机。
16.根据权利要求15所述的固态硬盘的管理方法,其特征在于,在所述基于所述目标数据地址,读取所述目标读数据之后,所述方法还包括:
基于所述目标读数据生成目标校验数据;
基于所述目标校验数据以及初始校验数据,获取所述目标读数据对应的数据块的读取数据总数据量和出错数据量;
基于所述读取数据总数据量和所述出错数据量,确定所述目标读数据对应的数据块的原始比特出错概率。
17.根据权利要求1所述的固态硬盘的管理方法,其特征在于,所述基于所述固态硬盘中的至少两个无效数据块的耐磨度值,将满足预设耐磨度条件的无效数据块确定为目标回收块,包括:
在达到预设回收条件的情况下,基于所述固态硬盘中的至少两个无效数据块的耐磨度值,将满足预设耐磨度条件的无效数据块确定为目标回收块;所述预设回收条件包括以下至少一种:所述固态硬盘中空闲数据块的数量小于预设阈值、目标回收时长大于预设时长。
18.一种固态硬盘的管理装置,其特征在于,所述装置包括:
第一确定模块,用于基于所述固态硬盘中的至少两个无效数据块的耐磨度值,将满足预设耐磨度条件的无效数据块确定为目标回收块;所述数据块的耐磨度值是基于所述无效数据块的擦除次数、所述无效数据块对应的闪存的擦除寿命以及所述无效数据块的原始比特出错概率确定的;
第二确定模块,用于在所述目标回收块的有效页数量小于预设有效页阈值的情况下,确定第一空闲链表中的数据块数量是否大于预设空闲数据块阈值;所述第一空闲链表用于记录耐磨度值大于预设耐磨度阈值的空闲数据块;
第一回收模块,用于在所述第一空闲链表中的数据块数量小于等于所述预设空闲数据块阈值的情况下,对所述目标回收块进行回收。
19.一种电子设备,其特征在于,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-17中任一所述的固态硬盘的管理方法。
20.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行权利要求1-17中任一所述的固态硬盘的管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410454647.5A CN118069068B (zh) | 2024-04-16 | 固态硬盘的管理方法、装置、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410454647.5A CN118069068B (zh) | 2024-04-16 | 固态硬盘的管理方法、装置、电子设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118069068A true CN118069068A (zh) | 2024-05-24 |
CN118069068B CN118069068B (zh) | 2024-07-02 |
Family
ID=
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789423A (zh) * | 2012-07-11 | 2012-11-21 | 山东华芯半导体有限公司 | 四池闪存磨损均衡方法 |
CN106484323A (zh) * | 2016-09-13 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种固态存储的损耗均衡方法及系统 |
CN110515859A (zh) * | 2019-07-09 | 2019-11-29 | 杭州电子科技大学 | 一种固态硬盘读写请求并行处理方法 |
CN111026673A (zh) * | 2019-11-19 | 2020-04-17 | 中国航空工业集团公司西安航空计算技术研究所 | 一种nand flash垃圾回收动态优化方法 |
CN112463057A (zh) * | 2020-11-28 | 2021-03-09 | 济南华芯算古信息科技有限公司 | 兼容NVMe固态硬盘的智能垃圾回收方法及设备 |
CN115617261A (zh) * | 2022-07-14 | 2023-01-17 | 上海乐存信息科技有限公司 | 一种存储产品的闪存磨损p/e参数选择的优化方法 |
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789423A (zh) * | 2012-07-11 | 2012-11-21 | 山东华芯半导体有限公司 | 四池闪存磨损均衡方法 |
CN106484323A (zh) * | 2016-09-13 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种固态存储的损耗均衡方法及系统 |
CN110515859A (zh) * | 2019-07-09 | 2019-11-29 | 杭州电子科技大学 | 一种固态硬盘读写请求并行处理方法 |
CN111026673A (zh) * | 2019-11-19 | 2020-04-17 | 中国航空工业集团公司西安航空计算技术研究所 | 一种nand flash垃圾回收动态优化方法 |
CN112463057A (zh) * | 2020-11-28 | 2021-03-09 | 济南华芯算古信息科技有限公司 | 兼容NVMe固态硬盘的智能垃圾回收方法及设备 |
CN115617261A (zh) * | 2022-07-14 | 2023-01-17 | 上海乐存信息科技有限公司 | 一种存储产品的闪存磨损p/e参数选择的优化方法 |
Non-Patent Citations (2)
Title |
---|
PAN, Y等: ""Error Rate-Based Wear-Leveling for nand Flash Memory at Highly Scaled Technology Nodes"", 《ZHANG IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS》, vol. 21, no. 7, 1 January 2013 (2013-01-01), pages 1350 - 1354, XP011516234, DOI: 10.1109/TVLSI.2012.2210256 * |
赵乾瑞等: ""减轻读干扰的垃圾回收算法"", 《现代信息科技》, vol. 8, no. 7, 10 April 2024 (2024-04-10), pages 81 - 85 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10838859B2 (en) | Recency based victim block selection for garbage collection in a solid state device (SSD) | |
KR101894625B1 (ko) | 데이터 저장 시스템들에 대한 우선순위 기반 가비지 수집 | |
US8041883B2 (en) | Restoring storage devices based on flash memories and related circuit, system, and method | |
CN107943719B (zh) | 一种基于请求分类的闪存转换层控制方法 | |
GB2511325A (en) | Cache allocation in a computerized system | |
CN108776614B (zh) | 存储块的回收方法和装置 | |
CN103019958A (zh) | 使用数据属性来管理固态存储器里的数据的方法 | |
US20140372675A1 (en) | Information processing apparatus, control circuit, and control method | |
US20130166828A1 (en) | Data update apparatus and method for flash memory file system | |
CN105095116A (zh) | 缓存替换的方法、缓存控制器和处理器 | |
KR101297442B1 (ko) | 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템 | |
US20170075805A1 (en) | Garbage collection in ssd drives | |
US20130297853A1 (en) | Selective write-once-memory encoding in a flash based disk cache memory | |
CN107122130B (zh) | 一种数据重删方法及装置 | |
CN110888600B (zh) | 一种面向nand闪存的缓冲区管理方法 | |
CN109471594B (zh) | 一种mlc闪存读写方法 | |
US10235284B2 (en) | Memory system | |
US20140372673A1 (en) | Information processing apparatus, control circuit, and control method | |
CN110674056B (zh) | 一种垃圾回收方法及装置 | |
CN112799595B (zh) | 数据处理方法、设备及存储介质 | |
CN112035061A (zh) | 固态硬盘资源分配方法、装置和存储介质 | |
CN111104045A (zh) | 一种存储控制方法、装置、设备和计算机存储介质 | |
CN111580754A (zh) | 一种写友好的闪存固态盘缓存管理方法 | |
CN111625482B (zh) | 顺序流检测方法与装置 | |
KR101026634B1 (ko) | 하이브리드 플래시 메모리의 데이터 저장 방법 |
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 |