一种利用数据冷热属性存储数据的方法及装置与流程

文档序号:17286774发布日期:2019-04-03 03:37阅读:232来源:国知局
一种利用数据冷热属性存储数据的方法及装置与流程

本发明涉及闪存数据管理技术领域,特别涉及一种利用数据冷热属性存储数据的方法及装置。



背景技术:

nandflash(闪存)作为一种性能优秀的存储设备,受到越来越广泛的应用。受限于自身的物理特性,nandflash在使用过程中需要进行垃圾回收和磨损平衡操作。磨损平衡需要将擦除次数小的block(块)内的有效数据搬到新的block,实际上利用了垃圾回收的操作。垃圾回收操作的效率高低会直接影响到写入nandflash的数据量,进而影响到nandflash设备的寿命与性能。本发明的目的是提升nandflash设备的垃圾回收效率,提升nandflash设备的性能,延长nandflash设备的寿命。

nandflash独特的擦写特性使得block在被擦除之前不能写入数据,故数据需要异地更新,这样在之前的block中存储的同一逻辑位置的数据就变成无效数据。使用过程中要想重新利用这些无效数据占据的物理page(页),就需要引入垃圾回收的机制。所谓垃圾回收,就是将已经写入数据的block中的有效数据搬移到新的block,然后将被垃圾回收的block擦除后重新使用。

nandflash中每个block具有的使用寿命(pecycle)一定,为了避免某些block被频繁使用而被损坏,导致整个nandflash提前损坏,需要引入磨损平衡机制,尽可能保证所有的block的使用情况接近,从而延长nandflash的寿命。

nandflash设备的垃圾回收、磨损平衡操作是在后台处理的,这些操作对于host来说是无效的,会影响到整个nandflash设备的性能和寿命。如何最大限度的减少这些额外操作带来的影响,是nandflash闪存转换层(ftl)设计必须要考虑的问题。

在嵌入式产品使用中,nandflash设备一般以独立形式存在,其后台实现的垃圾回收、磨损平衡操作对于系统来说是不可见的。nandflash设备实现垃圾回收、磨损平衡操作一般存在几种形式:

1.不考虑数据的属性,所有的数据混合在一起,回收到同一个block中,不考虑垃圾回收的效率;

2.nandflash设备内部统计被写入数据的更新频率,在一定程度上对数据的冷热程度进行划分,从而实现数据的隔离,提升垃圾回收的效率;

一般来说,nandflash设备在使用过程中与host联动,主动获取host发送数据的冷热属性,则可以很好地区分冷热数据,实现冷热数据的有效隔离,提升垃圾回收的效率。

现有的几种设计方案各自存在一些使用限制:

在nandflash内部通过统计数据更新频率等方法,可以在一定程度上区分数据的冷热程度,但是无法准确区分冷热数据,同时,由于需要记录数据更新的频率,需要消耗大量内存资源。



技术实现要素:

本申请针对现有技术中存在的不区分冷热数据或不能准确区分冷热数据的问题,极大影响nandflash设备性能和使用寿命的不足,提出了一种利用数据冷热属性存储数据的方法及装置。

首先,本申请提出了一种利用数据冷热属性存储数据的方法,包括以下步骤:

s100)从系统处分别收集并保存闪存中冷数据和热数据的分布特征;

s200)在闪存中分配出冷数据存储区和热数据存储区;

s300)当接收到数据处理任务时,通过预置规则,执行数据冷热判断,并当判断待处理数据为冷数据时,将数据存储在冷数据存储区,否则,将数据存储在热数据存储区。

在本申请上述一种利用数据冷热属性存储数据的方法中,所述预置规则为根据ftl保存的从系统获取的冷热数据分布特征判断被写入的数据的冷热属性。

在本申请上述一种利用数据冷热属性存储数据的方法中,所述冷数据和热数据的分布特征存储在所述闪存内。

在本申请上述一种利用数据冷热属性存储数据的方法中,步骤s200还包括以下前置步骤:

s201)在所述闪存中申请一个用于存储所述分布特征的存储空间。

在本申请上述一种利用数据冷热属性存储数据的方法中,所述数据处理任务为:数据写任务或垃圾回收任务。

在本申请上述一种利用数据冷热属性存储数据的方法中,所述分布特征为所述数据在所述闪存中的存储地址。

在本申请上述一种利用数据冷热属性存储数据的方法中,所述存储地址为所述数据的逻辑地址。

在本申请上述一种利用数据冷热属性存储数据的方法中,所述闪存包括以下中的一个或多个,固态硬盘,嵌入式多媒体卡,多媒体卡,sd卡,tf卡,u盘。

其次,本申请提出一种利用数据冷热属性存储数据的装置,包括以下模块:

收集模块,用于从系统处分别收集并保存闪存中冷数据和热数据的分布特征;

分配模块,用于在闪存中分配出冷数据存储区和热数据存储区;

判断模块,用于当接收到数据处理任务时,通过预置规则,执行数据冷热判断,并当判断待处理数据为冷数据时,将数据存储在冷数据存储区,否则,将数据存储在热数据存储区。

最后,本申请提出一种计算机可读存储介质,其上存储有计算机指令,其特征在于该指令被处理器执行时实现如权利要求1至8中任一项所述的方法的步骤。

本申请的有益成果是:在nandflash设备初始化阶段一次获取系统的冷热数据分布情况,在系统运行过程中将冷热数据进行隔离,分别存储在冷数据存储区和热数据存储区,可以有效改善nandflash设备由于磨损平衡和垃圾回收带来的消耗,有效提升nandflash设备的性能和使用寿命。这种设计基本不影响系统的读写流程,基本不增加内存消耗和软件复杂度,可以有效运用在嵌入式系统在内的多种使用场景中。

附图说明

图1所示为本申请所提出的一种利用数据冷热属性存储数据的方法的一个实施例流程图;

图2所示为本申请所提出的一种利用数据冷热属性存储数据的装置的框架图。

具体实施方式

以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。附图中各处使用的相同的附图标记指示相同或相似的部分。

在说明书的结论部分中特别指出并清楚地要求保护本发明提出的主题。然而,当结合附图进行阅读时,通过参考以下详细描述,可以最好地理解本发明的组织和操作方法以及其目的,特征和优点。

因为本发明的所示实施例可以在大多数情况下使用本领域技术人员已知的电子部件和电路来实现,所以细节将只在如上所述认为必要的程度上进行解释,以便理解本发明的基本概念,以免混淆或分散本发明的教导。

参照图1所示的一种利用数据冷热属性存储数据的方法的一个实施例流程图,本发明提出一种利用数据冷热属性存储数据的方法,包括以下步骤:

s100)从系统处分别收集并保存闪存中冷数据和热数据的分布特征;

s200)在闪存中分配出冷数据存储区和热数据存储区;

s300)当接收到数据处理任务时,通过预置规则,执行数据冷热判断,并当判断待处理数据为冷数据时,将数据存储在冷数据存储区,否则,将数据存储在热数据存储区。

具体地,所述系统为嵌入式系统,本申请的设计是结合ftl算法与嵌入式系统,从系统处获取数据的冷热属性,ftl根据系统给出的冷热信息,考虑了闪存与系统的协作,能够更精确地将冷热数据进行隔离,属于闪存与嵌入式系统的协作。

具体地,闪存里面包括经常更新的数据与不常更新的数据,其中不常被更新的数据叫做冷数据,经常被更新数据叫做热数据,其中冷数据放在冷数据块里面,热数据放在热数据块里面,对冷热数据进行单独的管理,以减少固态硬盘对不常更新的冷数据的搬移次数,提高闪存的利用率和使用寿命。

为了延长nand闪存的寿命,目前固态硬盘中均应用了wearleveling(均衡磨损或磨损平衡)机制,它可以尽可能地保证每个闪存块的编程/擦写次数一致或者接近,避免对某一部分区块的过度地重复进行擦除操作而报废,从而有效延长了固态硬盘的写入寿命。磨损平衡算法一般分为静态和动态,当前所有主流的固态硬盘均支持动态磨损平衡。动态磨损平衡是指主控尽量选择那些“较新”的区块来使用,这种算法的优点是复杂度低,易用控制,不会占用太多资源,但缺点则是这种算法还不是最优。基于动态磨损平衡之上的静态磨损平衡,则是对那些“不经常更新”的文件占用的区块进行优化处理,将他们剔除转移至一个“较老”的区块中。因为这些文件不常被修改,所占用的区块被磨损的次数更少,以此来达到优化的目的,进一步发挥“磨损平衡”的功效。静态磨损平衡最大的优点自然就是对固态硬盘的寿命进行了充分优化,但显然,它的缺点在于复杂性较高,会大量占用主控资源。所以说固态硬盘寿命的长短不仅仅取决于闪存的p/e次数,磨损平衡算法甚至包括后面的垃圾回收机制都起着至关重要的作用。

具体地,所述预置规则为根据ftl保存的从系统获取的冷热数据分布特征判断被写入的数据的冷热属性。

具体地,所述ftl为闪存转换层(flashtranslationlayer,ftl)。

进一步地,本申请的设计是结合ftl算法与嵌入式系统,从系统处获取数据的冷热属性,ftl根据系统给出的冷热信息,考虑了闪存与系统的协作,能够更精确地将冷热数据进行隔离,属于闪存与嵌入式系统的协作。而现有技术是在ftl算法内部,通过ftl算法设计,在闪存内部经过统计尽可能判断数据的冷热属性,闪存作为系统的部件,是孤立的,精确性没有本申请所用的方法高。

具体地,所述冷数据和热数据的分布特征存储在所述闪存内。

优选地,步骤s200还包括以下前置步骤:

s201)在所述闪存中申请一个用于存储所述分布特征的存储空间。

具体地,其特征在于,所述数据处理任务为:数据写任务或垃圾回收任务。

具体地,当系统向闪存发送写请求时,通过这笔请求的数据地址判断其冷热属性,分别将所要写的数据写到对应的冷数据存储区或热数据存储区中。

具体地,当进行垃圾回收时,通过被回收数据的地址判断其冷热属性,分别写到对应的冷数据存储区或热数据存储区中。

具体地,闪存的一个特性是在更新存储的数据时,闪存不是本地更新的,也就是说,该闪存不是在原数据所在的物理地址上直接进行更新的。在闪存更新数据时,设备端为更新的数据重新分配物理空间来存储,把该更新的数据所占用的物理页置为有效,原数据所占用的物理页置为无效,并将逻辑地址指向该更新的数据所占用的物理页对应的物理地址。只是这一过程经过设备端的ftl的封装,对用户不可见,所以同磁盘一样,用户依然使用逻辑地址作为数据存储和查找的唯一地址,不关心数据真正的物理存储位置。

基于闪存的上述特性,当闪存的存储空间不足时,为了回收存储空间,需要对该闪存进行垃圾回收(garbagecollection,gc)操作。该gc操作的目的是回收物理块中已经置为无效的物理页,重新利用被置为无效的物理页存储数据。首先,设备端(device)需要将选定的物理块中有效的物理页拷贝到新的存储空间,然后再将整个物理块中的数据擦除。这样,物理块中有效物理页的数量直接影响gc操作的效率。

具体地,所述ftl具备以下功能:

地址映射管理。闪存设备对外是一个黑盒子,里面集成了nand闪存和ftl等,上层应用使用逻辑地址来访问,ftl把逻辑地址映射到不同物理地址上,管理着每个逻辑地址最新的数据存放的物理位置。

垃圾回收。随着数据的写入,闪存设备上有些块的部分数据已经无效了,需要把有效的数据从块上搬走,然后擦除用来接收新的数据。磨损均衡和坏块管理。因为每个块的p/e次数是有限的,某些块可能被重复使用而损坏了,而有些块数据很少被访问,所以一直没有进行操作过。为了避免这种情况,ftl加入磨损均衡的功能,大致是通过控制垃圾回收和空块池的管理,从而平衡每个块的使用次数,最理想是所有块一起达到磨损阈值。

由于flash本身就存在部分坏块,在使用的过程中部分块会变坏,所以ftl在管理的时候需要避开这些无用块,把使用后变得不稳定块上的数据及时拷贝到稳定位置。

优选地,所述存储地址为所述数据的逻辑地址。

具体地,所述逻辑地址是指由程序产生的与段相关的偏移地址部分,在有地址变换功能的计算机中,访问指令给出的地址(操作数)叫逻辑地址,也叫相对地址。要经过寻址方式的计算或变换才得到内存储器中的物理地址。

优选地,所述闪存包括以下中的一个或多个,固态硬盘(ssd),嵌入式多媒体卡(emmc),多媒体卡(mmc),sd卡,tf卡,u盘。

参照图2所示的一种利用数据冷热属性存储数据的装置,包括以下模块:

收集模块,用于从系统处分别收集并保存闪存中冷数据和热数据的分布特征;

分配模块,用于在闪存中分配出冷数据存储区和热数据存储区;

判断模块,用于当接收到数据处理任务时,通过预置规则,执行数据冷热判断,并当判断待处理数据为冷数据时,将数据存储在冷数据存储区,否则,将数据存储在热数据存储区。

最后,本发明还提供了一种计算机可读存储介质,其上存储有计算机指令。该指令被处理器执行时实现如前述任一项方法的步骤。

应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作-根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。

进一步,该方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。

本文描述了本公开的实施例,包括发明人已知用于执行本发明的最佳模式。在阅读了上述描述后,这些所述实施例的变化对本领域的技术人员将变得明显。发明人希望技术人员视情况采用此类变型,并且发明人意图以不同于如本文具体描述的方式来实践本公开的实施例。因此,经适用的法律许可,本公开的范围包括在此所附的权利要求书中叙述的主题的所有修改和等效物。此外,本公开的范围涵盖其所有可能变型中的上述元素的任意组合,除非本文另外指示或以其他方式明显地与上下文矛盾。

尽管本发明的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本发明的预定范围。此外,上文以发明人可预见的实施例对本发明进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本发明的非实质性改动仍可代表本发明的等效改动。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1