固态硬盘的数据处理方法及固态硬盘的制作方法

文档序号:6372405阅读:135来源:国知局
专利名称:固态硬盘的数据处理方法及固态硬盘的制作方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种固态硬盘的数据处理方法及固态硬盘。
背景技术
随着计算机技术的发展,固态硬盘已在该领域得到了较为广泛的应用。一般的固态硬盘是以Flash作为存储介质,其Flash介质具有以下特性写入最小单位为页,擦除的最小单位为块;Flash块的擦写次数是有限的,决定了其寿命相对机械硬盘要短。显而易见的,相同数据的情况下,固态硬盘中实际写入数据量越少,则写入放大率越小,其寿命越长。 在传统固态硬盘写入方法中,FTL(Flash translation layer,闪存转换层)地址映射表以页(或小于Flash块)大小进行映射时,Flash块中的数据活跃度不同,垃圾回收时难以保证Flash块中数据全部为无效数据,将存在部分有效页需要搬移写入到另一块新的Flash块中。如图I所示,对数据未分级情况下,对活跃数据的修改过程中,可能有小部分次活跃,或少量不活跃数据,一段时间后,当较活跃数据被再次修改时,该Flash块将残留部分较不活跃数据,垃圾回收时则需要搬移该Flash块中的有效页中的数据,增加了固态硬盘的写入放大率,且这种有效页的搬移写入操作,也大大降低了垃圾回收效率。综上可知,现有的固态硬盘的数据写入的处理技术,在实际使用上显然存在不便与缺陷,所以有必要加以改进。

发明内容
针对上述的缺陷,本发明的目的在于提供一种固态硬盘的数据处理方法及固态硬盘,其可以降低数据的写放大率,提高垃圾回收效率。为了实现上述目的,本发明提供一种固态硬盘的数据处理方法,所述方法包括设置逻辑页地址的活跃度分级策略;将每个所述逻辑页地址对应的活跃度等级各关联至少一个Flash块,用于储存相同活跃度地址等级的数据;当所述固态硬盘有数据写入时,判断所述数据的逻辑页地址的对应的活跃度等级;选择垃圾回收策略。根据本发明的固态硬盘的数据处理方法,所述活跃度分级策略包括对所述固态硬盘进行分区,将各个分区按照应用确定为不同活跃度等级,并将所述各个分区的地址换算为逻辑页地址,当有数据写入时,记录该逻辑页地址数据的活跃度等级。根据本发明的固态硬盘的数据处理方法,所述活跃度分级策略包括设置所述逻辑页地址的活跃度等级个数,以及每一个活跃度等级对应的逻辑页地址的数据修改计数范围。根据本发明的固态硬盘的数据处理方法,所述判断所述数据的逻辑页地址的对应的活跃度等级步骤包括记录所述逻辑页地址的数据修改计数,当所述修改计数在设定的某活跃度等级对应的修改计数范围内时,将所述逻辑页地址数据确定为该活跃度等级。根据本发明的固态硬盘的数据处理方法,所述逻辑页地址数据每修改一次,则所述逻辑页地址的数据修改计数作加I处理。根据本发明的固态硬盘的数据处理方法,所述方法还包括记录所述逻辑页地址数据的每一次修改时间,若所述逻辑页地址数据的下一次的修改时间与上次的修改时间间隔超过预设值,则对所述逻辑页地址的活跃度等级进行降级处理。根据本发明的固态硬盘的数据处理方法,所述方法还包括
所述每个活跃度等级对应的Flash块排成一个队列,当某活跃度等级的数据被修改时,将所述数据写入所述队列中的最后一个Flash块中,若所述最后一个Flash块已被写满,则获取一空闲的Flash块,并将所述空闲的Flash块加入到所述队列。根据本发明的固态硬盘的数据处理方法,当所述Flash块被垃圾回收清空时,将所述Flash块从当前队列中删除。根据本发明的固态硬盘的数据处理方法,所述垃圾回收策略包括全块垃圾回收策略和部分垃圾回收策略。根据本发明的固态硬盘的数据处理方法,所述选择垃圾回收策略步骤包括设置全块垃圾回收策略和部分垃圾回收策略对应的无效数据占有率阈值;分时检测每个活跃度等级对应Flash块的无效数据占有率;根据所述无效数据占有率选择所述垃圾回收策略。本发明还提供一种固态硬盘,包括分级设置模块,用于设置逻辑页地址的活跃度分级策略;判断模块,用于当所述固态硬盘有数据写入时,判断所述逻辑页地址的数据对应的活跃度等级;Flash关联模块,用于将每个所述逻辑页地址对应的活跃度等级各关联至少一个Flash块,用于储存相同活跃度等级的数据;垃圾回收管理模块,用于选择垃圾回收策略。根据本发明的固态硬盘,所述分级设置模块包括分区处理子模块,用于对所述固态硬盘进行分区,将各个分区按照应用确定为不同活跃度等级,并将所述各个分区的地址换算为逻辑页地址,当有数据写入时,记录该逻辑页地址数据的活跃度等级。根据本发明的固态硬盘,所述分级设置模块包括分级子模块,用于设置所述活跃度等级个数,以及每一个活跃度等级对应的逻辑页地址的数据修改计数范围;所述分级子模块还用于记录所述逻辑页地址数据的修改计数,当所述修改计数在设定的某活跃度等级对应的修改计数范围内时,将所述逻辑页地址数据确定为该活跃度等级。根据本发明的固态硬盘,所述固态硬盘内设有时间戳,用于记录所述逻辑页地址数据的每一次修改时间;若所述逻辑页地址数据的下一次的修改时间与上次的修改时间间隔超过预设值,则对所述逻辑页地址的活跃度等级进行降级处理。
本发明通过对固态硬盘数据逻辑页地址的活跃度设置分级策略,并将固态硬盘中的Flash块按级别关联,当固态硬盘有数据写入时,判断数据的逻辑页地址对应的活跃度等级,并写入与其活跃度等级关联的Flash块中,借此使每个Flash块中只储存相同活跃度等级的数据。更好的,在垃圾回收时,可以根据不同等级的Flash块指定垃圾回收时机和策略,借此可以减少Flash块中有效数据迁移,提高垃圾回收效率,降低数据写入放大率,提高固态硬盘使用效率,延长使用寿命。


图I是现有技术的固态硬盘Flash块中页数据的活跃度等级示意图;图2是本发明的固态硬盘的结构示意图;图3是本发明一实施例的Flash块中页数据的活跃度等级示意图;图4是本发明一实施例的固态硬盘的数据处理方法流程图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。参见图2,本发明提供了一种固态硬盘,该固态硬盘100至少包括分级设置模块10, Flash关联模块20、判断模块30以及垃圾回收管理模块40,其中分级设置模块10用于设置固态硬盘100内部逻辑页地址的活跃度分级策略,具体分级策略包括固定分级和活跃度统计分级。具体的,分级设置模块10包括分区处理子模块11和分级子模块12。其中,分区处理子模块11用于对所述固态硬盘100进行分区,将各个分区按照应用确定为不同活跃度等级,并将各个分区的地址换算为逻辑页地址(LPA),当有数据写入该LPA时,记录该LPA的数据对应的活跃度等级,借此完成固定分级策略。分级子模块12用于设置所述活跃度等级个数,以及每一个活跃度等级对应的逻辑页地址的数据修改计数范围。比如,某LPA的修改计数(被修改的次数)范围为I 10,则规定其活跃度等级为0级,修改计数范围在11 100为I级,100以上为2级。同时,分级子模块12还用于记录所述LPA数据的修改计数,假定该计数为R,当R在设定的某活跃度等级对应的修改计数范围内时,将所述LPA数据确定为该活跃度等级,比如统计获取某LPA数据的R值为12,则确定该LPA数据活跃度等级为2级,该LPA的数据每被修改一次,其计数R作加I处理。优选的是,固态硬盘100内还设有时间戳,用于记录LPA数据的每一次修改时间,若LPA数据的下一次的修改时间与上次的修改时间间隔超过预设值,比如24小时,则对该LPA的活跃度等级进行降级处理。Flash关联模块20用于将每个LPA的数据对应的活跃度等级各关联至少一个Flash块,每个Flash块用于储存相同活跃度等级的数据。结合图3所示的实施例,活跃度等级由分级子模块12划分为L0、L1和L2三个等级,每个活跃度等级对应至少一 Flash块,且Flash块中储存相同活跃度等级的LPA数据。比如,与LO等级关联的Flash块中,仅储存活跃度等级为LO的LPA数据。
判断模块30,用于当固态硬盘100有数据写入时,判断所述数据的LPA的对应的活跃度等级。若分级策略采用的为固定分级策略,则可直接根据LPA确定其活跃度等级;若分级策略采用的为活跃度统计分级方式,则判断该LPA数据上次写入时间,如果大于设定值,则对LPA活跃度降低处理。同时将降级后的LPA对应的Flash块加入到相同等级的Flash块队列中。垃圾回收管理模块40,用于选择垃圾回收策略。具体应用中,垃圾回收策略包括全块垃圾回收策略和部分垃圾回收策略。本发明的实施例根据Flash块队列中的页无效率设置垃圾回收阈值,当达到第一阈值时启用部分垃圾回收策略,达到第二阈值时启用全块垃圾回收策略。在本发明的实施例中,页无效率的计算方式为块中无效页数/块中总页数。活跃度等级越高的Flash块队列,设置的回收阈值越高。最高等级的部分回收阈值可设置为100%,即最高活跃度等级的Flash块队列,不进行部分回收,因为活跃度较高,在较短的时间内,该块中的所有页都可能变为无效页,可以进行全块回收,所以该阶段不对最高活跃度的Flash块进行部分回收。·本发明另一实施例中,全块垃圾回收过程如下1)根据LPA活跃度等级,设置不同活跃度等级Flash块队列的回收计数,初始值为MN(N为活跃度等级,M为回收频率系数),M值代表高活跃度队列回收M次,下一级队列回收一次,其根据数据活跃度等级范围标准而定,本发明的应用中可以将M取值为2 ;2)对该等级活跃度的Flash块队列回收一次,其回收计数减一处理,然后计算回收计数是否可以整除M值,若是,则对下一级Flash块启动全块垃圾回收;3)如果最高等级Flash块的回收计数为0,则更新各等级Flash块队列的回收计数为初始值。本发明根据LPA活跃度等级设置不同的垃圾回收阈值,使得Flash块在垃圾回收时更大程度上保证全部回收,减少Flash块中有效数据迁移,提高垃圾回收效率,降低数据写入放大率,提高固态硬盘使用效率,延长使用寿命。参见图4,本发明提供了一种固态硬盘的数据处理方法,其可以通过如图2所示的固态硬盘实现,该方法包括步骤S401,分级设置模块10设置LPA的活跃度分级策略。本发明中的LPA活跃度分级策略包括固定分级和自动分级,具体的,固定分级是通过分区处理子模块11对固态硬盘100进行分区,将各个分区按照应用确定为不同活跃度等级,并将各个分区的地址换算为LPA,当有数据写入时,记录该逻辑页地址数据的活跃度等级。自动分级是通过分级子模块12设置所述活跃度等级个数,以及每一个活跃度等级对应的LPA的数据修改计数范围,当某一 LPA的数据有改动时,记录所述逻辑页地址数据的修改计数,当其修改计数在设定的某活跃度等级对应的修改计数范围内时,将所述LPA确定为该活跃度等级。步骤S402,Flash关联模块20将每个LPA对应的活跃度等级各关联至少一个Flash块,用于储存相同活跃度等级的数据。每个LPA活跃度等级对应的Flash块排成一个队列,当某活跃度等级的数据被修改时,将所述数据写入所述队列中的最后一个Flash块中,若所述最后一个Flash块已被写满,则获取一空闲的Flash块,并将所述空闲的Flash块加入到所述队列,当某Flash块被垃圾回收清空时,将该Flash块从当前队列中删除。步骤S403,当所述固态硬盘有数据写入时,判断模块30判断所述数据的LPA的对应的活跃度等级。若LPA的分级策略采用的为固定分级策略,则可直接根据LPA确定其活跃度等级。若LPA的分级策略采用的是自动分级策略,则记录LPA的数据修改计数,当所述修改计数在设定的某活跃度等级对应的修改计数范围内时,将所述逻辑页地址数据确定为该活跃度等级,且LPA数据每修改一次,则LPA的数据修改计数作加I处理,当修改计数对应其它级别时,将当前LPA的级别对应的升级或降级处理。优选的是,本发明中,还可以通过时间戳记录LPA数据的每一次修改时间,若LPA数据的下一次的修改时间与上次的修改时间间隔超过预设值,则对LPA的活跃度等级进行降级处理。步骤S404,选择垃圾回收策略。本发明的垃圾回收策略至少包括全块垃圾回收策略和部分垃圾回收策略,具体 应用中,根据各Flash块的等级设置不同无效数据占有率阈值,比如,无效数据占有率达到40%时启用部分垃圾回收策略,达到60%时启用全块垃圾回收策略。优选的是,不同的Flash块的活跃度等级,可以设置不同的检测频率,即对活跃度较高的Flash块检测频率要相对较高,借此分时检测每个活跃度等级对应Flash块的无效数据占有率,同进根据该无效数据占有率选择垃圾回收策略,可最大程度上减少垃圾回收时的数据搬移,降低数据的写放大。综上所述,本发明通过对固态硬盘数据逻辑页地址的活跃度设置分级策略,并将固态硬盘中的Flash块按级别关联,当固态硬盘有数据写入时,判断数据的逻辑页地址对应的活跃度等级,并写入与其活跃度等级关联的Flash块中,借此使每个Flash块中只储存相同活跃度等级的数据。更好的,在垃圾回收时,可以根据不同等级的Flash块指定垃圾回收时机和策略,借此可以减少Flash块中有效数据迁移,提高垃圾回收效率,降低数据写入放大率,提高固态硬盘使用效率,延长使用寿命。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种固态硬盘的数据处理方法,其特征在于,所述方法包括 设置逻辑页地址的活跃度分级策略; 将每个所述逻辑页地址对应的活跃度等级各关联至少一个Flash块,用于储存相同活跃度地址等级的数据; 当所述固态硬盘有数据写入时,判断数据的逻辑页地址对应的活跃度等级; 选择垃圾回收策略。
2.根据权利要求I所述的固态硬盘的数据处理方法,其特征在于,所述活跃度分级策略包括对所述固态硬盘进行分区,将各个分区按照应用确定为不同活跃度等级,并将所述各个分区的地址换算为逻辑页地址,当有数据写入时,记录该逻辑页地址数据的活跃度等级。
3.根据权利要求I所述的固态硬盘的数据处理方法,其特征在于,所述活跃度分级策略包括 设置所述逻辑页地址的活跃度等级个数,以及每一个活跃度等级对应的逻辑页地址的数据修改计数范围。
4.根据权利要求3所述的固态硬盘的数据处理方法,其特征在于,所述判断数据的逻辑页地址对应的活跃度等级步骤包括 记录所述逻辑页地址的数据修改计数,当所述修改计数在设定的某活跃度等级对应的修改计数范围内时,将所述逻辑页地址数据确定为该活跃度等级。
5.根据权利要求4所述的固态硬盘的数据处理方法,其特征在于,所述逻辑页地址数据每修改一次,则所述逻辑页地址的数据修改计数作加I处理。
6.根据权利要求3所述的固态硬盘的数据处理方法,其特征在于,所述方法还包括记录所述逻辑页地址数据的每一次修改时间,若所述逻辑页地址数据的下一次的修改时间与上次的修改时间间隔超过预设值,则对所述逻辑页地址的活跃度等级进行降级处理。
7.根据权利要求I所述的固态硬盘的数据处理方法,其特征在于,所述方法还包括 所述每个活跃度等级对应的Flash块排成一个队列,当某活跃度等级的数据被修改时,将所述数据写入所述队列中的最后一个Flash块中,若所述最后一个Flash块已被写满,则获取一空闲的Flash块,并将所述空闲的Flash块加入到所述队列。
8.根据权利要求7所述的固态硬盘的数据处理方法,其特征在于,当所述Flash块被垃圾回收清空时,将所述Flash块从当前队列中删除。
9.根据权利要求I所述的固态硬盘的数据处理方法,其特征在于,所述垃圾回收策略包括全块垃圾回收策略和部分垃圾回收策略。
10.根据权利要求9所述的固态硬盘的数据处理方法,其特征在于,所述选择垃圾回收策略步骤包括 设置全块垃圾回收策略和部分垃圾回收策略对应的无效数据占有率阈值; 分时检测每个活跃度等级对应Flash块的无效数据占有率; 根据所述无效数据占有率选择所述垃圾回收策略。
11.一种固态硬盘,其特征在于,包括 分级设置模块,用于设置逻辑页地址的活跃度分级策略; 判断模块,用于当所述固态硬盘有数据写入时,判断所述逻辑页地址对应的活跃度等级; Flash关联模块,用于将每个所述逻辑页地址对应的活跃度等级各关联至少一个Flash块,用于储存位于相同活跃度等级的数据; 垃圾回收管理模块,用于选择垃圾回收策略。
12.根据权利要求11所述的固态硬盘,其特征在于,所述分级设置模块包括分区处理子模块,用于对所述固态硬盘进行分区,将各个分区按照应用确定为不同活跃度等级,并将所述各个分区的地址换算为逻辑页地址,当有数据写入时,记录该逻辑页地址数据的活跃度等级。
13.根据权利要求11所述的固态硬盘,其特征在于,所述分级设置模块包括分级子模块,用于设置所述活跃度等级个数,以及每一个活跃度等级对应的逻辑页地址的数据修改计数范围; 所述分级子模块还用于记录所述逻辑页地址数据的修改计数,当所述修改计数在设定的某活跃度等级对应的修改计数范围内时,将所述逻辑页地址确定为该活跃度等级。
14.根据权利要求13所述的固态硬盘,其特征在于,所述固态硬盘内设有时间戳,用于记录所述逻辑页地址数据的每一次修改时间; 若所述逻辑页地址数据的下一次的修改时间与上次的修改时间间隔超过预设值,则对所述逻辑页地址的活跃度等级进行降级处理。
全文摘要
本发明提供了一种固态硬盘的数据处理方法,所述方法包括设置逻辑页地址的活跃度分级策略;将每个所述逻辑页地址对应的活跃度等级各关联至少一个Flash块,用于储存相同活跃度地址等级的数据;当所述固态硬盘有数据写入时,判断数据的逻辑页地址对应的活跃度等级;选择垃圾回收策略。本发明还相应的提供一种固态硬盘。借此,本发明对固态硬盘写入数据进行分级,提高垃圾回收效率,降低写入放大率,提高固态硬盘使用寿命。
文档编号G06F12/06GK102799535SQ201210222549
公开日2012年11月28日 申请日期2012年6月29日 优先权日2012年6月29日
发明者李明星 申请人:记忆科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1