一种闪存热数据识别方法与流程

文档序号:16880344发布日期:2019-02-15 22:04阅读:197来源:国知局
一种闪存热数据识别方法与流程

本申请实施例涉及存储数据处理技术领域,具体提供了一种闪存热数据识别方法。



背景技术:

与传统硬盘相比,闪存的读写速度高且功耗较低,且随着制造工艺的提高,成本的降低,闪存得到越来越多的应用。

由于闪存写入数据后不可以重复再写入数据,必须使用额外的闪存块整理已写入的数据,此过程称为闪存垃圾回收。

冷数据为写入闪存后很少被更新的数据,这种数据整理后,不容易被更新,垃圾回收的效益最高。相反,热数据为写入闪存后,频繁被写入,回收热数据后,在很短的时间内,又再次被回收,影响回收效能。

已有技术中,识别冷热数据的方法是统计每个逻辑地址的写入次数,写入次数多的为热数据,写入次数少的则为冷数据。但是每种系统的文件系统(例如fat系统,fat32系统,ntfs系统,ext4系统等)存在差异,已有技术中根据写入次数判断冷数据的方法具有相对性,可能会导致将热数据判断为冷数据的情况。



技术实现要素:

有鉴于此,本申请实施例所解决的技术问题之一在于提供一种闪存热数据识别方法,能够在结合写入次数阈值分类的基础上进行数据优化,从冷数据块识别出热数据,改善回收效率。

为解决上述技术问题,提出一种闪存热数据识别方法,其包括以下步骤:

s100:在闪存中查找物理数据块的有效数据页的数量与总页数之比大于预先设定值的物理数据块;

s110:提取出s100中查找出的所有的物理数据块中无效数据页的逻辑地址;

s120:当s110提取出的无效数据页的逻辑地址未被判断为热数据逻辑地址时,将该提取出的无效数据页的逻辑地址设置为热数据逻辑地址。

其中,预先设定值为五分之四、四分之三、或者二分之一。

其中,s120包括将该提取出的无效数据页的逻辑地址添加进热数据逻辑地址列表的步骤。

本申请提出的闪存热数据识别方法具体如下技术效果:通过后期的物理数据块中有效数据页的数量与总页数之比的判断,重新筛选冷热数据,可以完全弥补由于冷热数据写入次数的阈值不正确导致的冷热数据相间的情况发生,进一步优化分类方法,特别是随着系统运行,该闪存热数据识别方法结合写入次数阈值,越能准确地识别出冷热数据,在结合写入次数阈值分类的基础上,进一步改善回收效率,减少垃圾回收的压力。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本申请实施例中一种闪存物理结构示意图;

图2为本申请实施例中一种闪存的物理数据块的结构示意图;

图3为本申请实施例中一种闪存热数据识别(从冷数据中识别出热数据)方法的流程示意图;

图4为显示本申请实施例中将该提取出的无效数据页的逻辑地址添加进热数据逻辑地址列表的步骤的图示。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。冷数据块是数据很少被更新的数据块,其中,通常大部分数据是有效数据,只有很少的部分数据是无效数据。与冷数据块不同,热数据块是数据频繁被更新的数据块,其中,通常大部分数据是无效数据,只有很少的部分数据是有效数据。

本申请发明人锐意研究发现,通过统计逻辑地址写入的次数的方式来判断冷热数据的方法会涉及一个判断标准的问题,写入次数大于多少才是热数据。每种系统的文件系统都存在差异,该方法只能简单的区分。究其本质,区分冷热数据的目的是为了保证大量不需要更新的数据保存在一起,经常更新的数据保存在一起。特别地,逻辑地址写入次数低的热数据,夹杂在大量冷数据中间被写入冷数据块。对于这种热数据,是不能简单通过写入次数来判断,需要进一步优化分类方法。

如图1和图2所示,闪存具有物理数据块blk(英文block)0,blk1,blk2,blkn,…blkm。物理数据块blkn的页n+2中数据因为写入次数少于热数据判断的阈值,导致写入冷数据块后再在其他物理地址更新。物理数据块blkn为冷数据块,大部分数据是有效数据,只有很少无效数据,在图2中只有一个数据是无效数据-即页n+2中数据。众所周知,假如多次(大于热数据判断的阈值的次数)写入同一个逻辑地址,这个逻辑地址会被判断为热数据地址,此时只有一个页的数据是有效的,其他页因为数据的更新无效,回收该物理地址时,搬移物理数据块的所有有效数据页可完成回收。当物理数据块blkn中出现页n+2的无效数据,回收一个闪存物理数据块需要搬移255个有效数据。换言之,搬移255个有效数据才多出一个有效数据页,回收效率很低。

针对逻辑地址写入次数低的热数据,夹杂在大量冷数据中间被写入冷数据块,导致回收效率低的上述问题,提出了以下闪存热数据识别方法,如图3所示,包括以下步骤:

s100:在闪存中查找物理数据块的有效数据页的数量(validpagecount,以下简称vpc)与总页数之比大于预先设定值的物理数据块;

s110:提取出s100中查找出的所有的物理数据块中无效数据页的逻辑地址;

s120:当s110提取出的无效数据页的逻辑地址未被判断为热数据逻辑地址时,将该提取出的无效数据页的逻辑地址设置为热数据逻辑地址。

其中,s100中预先设定值例如为五分之四、四分之三或二分之一。

可以按照物理数据块的vpc与总页数之比的大小依次从大到小,对各个物理数据块逐个逐个地实施步骤s110和s120,直到遍历查找出的所有的物理数据块的无效数据页。

如图1所示,闪存具有物理数据块blk(英文block)0,blk1,blk2,blkn,…blkm。物理数据块blkn为冷数据块,绝大部分数据是有效数据(也称有效页),只有一个数据是无效数据(也称无效页),即页n+2。

通过上述闪存热数据识别方法,结合写入次数阈值的分类方法,对现有的分类的物理数据块进一步优化,对物理数据块进行查找筛选,从中找出误判的热数据地址,加以优化弥补。

在一个具体应用例中,首先,对闪存中所有的物理数据块vpc进行排序,因为冷数据块的vpc通常是较大的。接着,筛选出vpc与总页数之比大于预先设定值的冷数据块,即,筛选出内部由于误判而将热数据更新进来的物理数据块。接着,读出前一步骤中查找出的所有的物理数据块中无效数据页的逻辑地址,该逻辑地址一般保存在物理页的冗余空间内部。接着,判断该逻辑地址是否已经判断为热数据逻辑地址,没有则添加进入热数据逻辑地址表。重复前一步骤,直到vpc与总页数之比大于预先设定值的冷数据块的无效数据页的逻辑地址均被设置为热数据逻辑地址。

在判断该逻辑地址是否已经判断为热数据逻辑地址,没有则添加进入热数据逻辑地址列表的步骤中,如图4所示,热数据逻辑地址列表常驻控制器的ram中,示意图中举例保存了一个lpax的热数据逻辑地址记录,一旦扫描有新的热数据逻辑地址(lpx+1)被发现,则往后添加进热数据逻辑地址列表,以后该逻辑地址数据会被写入热数据块,分类更加准确,可以进一步改善回收效率。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

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