CN101526923A - 一种数据处理方法、装置和闪存存储系统 - Google Patents

一种数据处理方法、装置和闪存存储系统 Download PDF

Info

Publication number
CN101526923A
CN101526923A CN200910133333A CN200910133333A CN101526923A CN 101526923 A CN101526923 A CN 101526923A CN 200910133333 A CN200910133333 A CN 200910133333A CN 200910133333 A CN200910133333 A CN 200910133333A CN 101526923 A CN101526923 A CN 101526923A
Authority
CN
China
Prior art keywords
data page
data
cold
page
leaf
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
Application number
CN200910133333A
Other languages
English (en)
Other versions
CN101526923B (zh
Inventor
肖飞
徐君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Huawei Symantec Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Symantec Technologies Co Ltd filed Critical Huawei Symantec Technologies Co Ltd
Priority to CN2009101333330A priority Critical patent/CN101526923B/zh
Publication of CN101526923A publication Critical patent/CN101526923A/zh
Application granted granted Critical
Publication of CN101526923B publication Critical patent/CN101526923B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Read Only Memory (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种数据处理方法、装置和闪存存储系统。一种数据处理方法,包括:接收用户对数据页的操作请求,根据所述操作请求判断数据页的写计数是否大于预置的阀值,若是,则确定数据页为热属性,采用热处理方式处理数据页,若否,则确定数据页为冷属性,采用冷处理方式处理数据页,其中,所述冷热属性指示了用户对数据页的访问频率。一种数据处理装置,包括接收单元和处理单元。一种闪存,包括接受单元和存储单元。一种闪存存储系统,包括数据处理装置和闪存。采用本发明实施例所提供的方案可以实现在保证闪存具有较高的空间利用率的同时,又能具有较高的数据访问性能。

Description

一种数据处理方法、装置和闪存存储系统
技术领域
本发明涉及通信技术领域,具体涉及一种数据处理方法、装置和闪存存储系统。
背景技术
闪存是近年来快速发展的一种新型存储介质,已被广泛用于各种嵌入式系统和便携式设备,如数码相机和手机等。闪存有NOR(用非或门技术做的一种闪存)和NAND(用与非门技术做的一种闪存)两种类型,其中NOR型闪存通常用于存储程序,而NAND类型闪存常用于存储数据。本发明实施例仅针对NAND型闪存(以下说明中闪存若无额外解释均指NAND型闪存)。
闪存与磁盘相比,主要有高读写速度、抗震性、低功耗和体积小等优点,但也具有一些局限,例如容量较小,空间消耗较快等等。为了克服闪存存在的这些局限性,一种有效的方法就是对闪存上的数据进行压缩存储,这样可以减少数据写入闪存后实际占用的物理空间,从而提高闪存的空间利用率。压缩对象包括程序代码、文本文件、配置文件、元数据文件等等。数据读写以页为单位,对于一个数据页的压缩通常意义并不大,这是因为尽管数据页压缩后占用的实际物理空间减少,但是由于闪存的器件物理特性,单个压缩后的数据页(简称压缩页)写入闪存后,闪存页中的剩余物理空间无法再写入新的数据,也就说,这部分空间没有利用价值,成了内部零碎空间(Internal Fragmentation)。因此,在对内存中的数据页进行压缩后,还必须考虑对这些压缩页分组合并成一个个完整的闪存页,然后再写入闪存芯片。这种技术被称为压缩分组技术。现有的压缩分组技术会根据数据页的空间组织,采用某种压缩算法来对数据页进行压缩。
在对现有技术的研究和实践过程中,本发明的发明人发现,采用已有的压缩分组技术难于解决闪存空间利用率和访问性能之间的矛盾,例如,为了提高空间利用率,要求采用压缩比高的压缩算法,但这会提高压缩和解压缩的代价,即花费更多的时间来进行压缩和解压缩等,从而降低数据访问性能;如果采用压缩比低的压缩算法,数据访问性能相比之下有所提高,但空间利用率又下降了。
发明内容
本发明实施例提供一种数据处理方法、装置和闪存存储系统。目的在于保证闪存具有较高的空间利用率的同时又能具有较高的数据访问性能。
一种数据处理方法,包括:
接收用户对数据页的操作请求;
根据所述操作请求判断数据页的写计数是否大于预置的阀值;
若是,则确定数据页为热属性,采用热处理方式处理数据页;
若否,则确定数据页为冷属性,采用冷处理方式处理数据页。
一种数据处理装置,包括:
接收单元,用于接收系统对数据页的操作请求;
属性确定单元,用于根据所述接收单元接收到的操作请求判断数据页的写计数是否大于预置的阀值,若是,则确定数据页为热属性,若否,则确定数据页为冷属性;
热处理单元,用于当属性确定单元确定数据页为热属性时,采用热处理方式处理数据页;冷处理单元,用于当属性确定单元确定数据页为冷属性时,采用冷处理方式处理数据页。
一种闪存,包括:
热存储单元,用于存储数据处理装置采用热处理方式处理后由内存分组写入的数据页;
冷存储单元,用于存储数据处理装置采用冷处理方式处理后由内存分组写入的数据页。
一种闪存存储系统,包括:
数据处理装置,用于接收用户对数据页的操作请求,根据所述操作请求判断数据页的写计数是否大于预置的阀值,若是,则确定数据页为热属性,采用热处理方式处理数据页,若否,则确定数据页为冷属性,采用冷处理方式处理数据页;
闪存,用于存储数据处理装置采用热处理方式处理后由内存分组写入的数据页,以及存储数据处理装置采用冷处理方式处理后由内存分组写入的数据页。
本发明实施例通过确定数据页的冷热属性来衡量用户对数据页的写频率,对不同冷热属性的数据页采用不同的处理方式,例如对用户经常写的数据页采用写性能较高的热处理方式进行处理,对用户较少写的数据页采用空间利用率较高的冷处理方式进行处理,从而可以实现在整体上保证闪存具有较高的空间利用率的同时,又能具有较高的数据访问性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的数据处理方法的方法流程图;
图2是本发明实施例提供的闪存的示意图;
图3是本发明实施例二提供的有序双链表结构的HCL的示意图;
图4是本发明实施例二提供的HCL运行示意图;
图5是本发明实施例二提供的数据处理方法的执行示意图;
图6是本发明实施例二提供的数据处理方法中分组写入的流程示意图;
图7是本发明实施例三提供的数据处理装置的结构示意图;
图8是本发明实施例三提供的另一数据处理装置的结构示意图;
图9是本发明实施例四提供的闪存的结构示意图;
图10是本发明实施例五提供的闪存存储系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种数据处理方法、装置和闪存存储系统。以下分别进行详细说明。
实施例一、
本实施例将从数据处理装置的角度进行描述。该数据处理装置可以在闪存存储系统启动时直接从闪存中调用并安装在闪存存储系统中,也可以通过其它途径进行下载,然后再安装在闪存存储系统中。该数据处理装置具体可以为闪存驱动程序模块。
一种数据处理方法,在接收到用户对数据页的操作请求后,根据该操作请求确定数据页的冷热属性,若数据页为热属性,则采用热处理方式处理数据页;若数据页为冷属性,则采用冷处理方式处理数据页。其中,数据页的冷热属性指示了用户户对数据页的写频率,热属性表示写频率较高,冷属性表示写频率较低,为了描述方便,以下实施例中将把热属性的数据页称为热数据页,冷属性的数据页称为冷数据页。如图1所示,具体流程如下:
101、接收用户对数据页的操作请求;该操作请求可以是对数据页的读取请求或对数据页的写入请求或对数据页的删除请求或对数据页的更新请求等;
102、根据该操作请求确定数据页的冷热属性,若确定数据页为热属性(热数据页),则执行步骤103,若确定数据页为冷属性(冷数据页),则执行步骤104;
比如,可以用数据页的写计数来反映数据页的冷热属性,定义写计数高于预置的阈值的为热属性,写计数低于预置的阈值的则为冷属性,这样,在接收到用户对数据页的操作请求后(步骤101),就可以根据该操作请求和数据页的写计数来判断需要处理的数据页是热属性或冷属性,然后采取相应的处理方式对该数据页进行处理。例如,可以根据所述操作请求查找到数据页的写计数,然后判断数据页的写计数是否大于预置的阀值,若是,则确定数据页为热属性;若否,则确定数据页为冷属性。
数据页的写计数可以存储在一独立的数据链表中,当需要对某个数据页进行处理时,则可以通过查询该数据链表获知需要处理的数据页的写计数,然后根据需要处理的数据页的写计数判断该需要处理的数据页是热属性还是冷属性,然后根据判断结果采用相应的处理方式进行处理。
数据页的写计数也可以与数据页的地址映射信息一起存储在冷热链表HCL(Hot Cool List,以下均简称为HCL),比如有序双链表结构的HCL中。该HCL可以在闪存存储系统第一次运行时建立,例如数据处理装置通过扫描单层单元(SLC,Single Layer Cell)芯片和多层单元(MLC,Multi-Level Cell)芯片的页附加空间(该页附加空间中存储了页地址映射信息)直接在内存中构建,这样,当数据处理装置接收到用户对数据页的操作请求后,就可以根据所述操作请求通过查找该HCL获知数据页的写计数,然后根据数据页的写计数确定数据页的冷热属性,采用与数据页冷热属性相应的处理方式对数据页进行处理。在此之后,还可以根据对数据页的处理的情况对该HCL进行动态的更新维护,以便可以及时地反应数据页的冷热属性的变化,保证HCL中的信息的真实性和及时性。当然,每隔一段预置的时间后还可以对HCL中的写计数进行老化操作(即周期性地对写计数进行老化操作),这样,即使某一个数据页在当前写计数很高(很热),如果在后续的时间里没有写,则其写计数将会越来越小,直到变成冷属性(即数据页变成冷数据页)。
需说明的是,在闪存存储系统卸载时,可以将所述HCL写入闪存,以便在下一次启动闪存存储系统时可以直接调用,也就是说,在构建用于存储数据页的地址映射信息和写计数的HCL之前还可以对闪存中是否存在HCL进行判断,若闪存中存在HCL,则从闪存中读取所述HCL到内存;若闪存中不存在HCL,才执行构建用于存储数据页的地址映射信息和写计数的HCL的步骤,这样,有利于节省运行时间和系统资源。
当然,还可以采用其他的方式来反映数据页的冷热属性,比如为数据页设置新的属性项来反映数据页的冷热属性等等;在闪存存储系统卸载时,也可以将HCL保存在其他的设备上,然后在下一次启动闪存存储系统时从保存有该HCL的设备上进行调用。
103、采用热处理方式处理数据页;
104、采用冷处理方式处理数据页。
下面将从接收到不同的用户对数据页的操作请求的角度对步骤103和104进行综合的举例说明,可参见图5。
(1)所述操作请求为写入请求
若在步骤102中,确定数据页为热属性,则采用热数据页压缩算法对所述数据页进行压缩,将压缩后的数据页存储在内存的热数据区,将热数据区的数据页分组写入闪存的SLC芯片;
若在步骤102中,确定数据页为冷属性,则采用冷数据页压缩算法对所述数据页进行压缩,将压缩后的数据页存储在内存的冷数据区,将冷数据区的数据页分组写入闪存的MLC芯片。
(2)所述操作请求为读取请求
若在步骤102中,确定数据页为热属性,则从闪存的SLC芯片中读取所述数据页对应的压缩页并解压;
若在步骤102中,确定数据页为冷属性,则从闪存的MLC芯片中读取所述数据页对应的压缩页并解压。
需说明的是,解压时所采用的解压算法与压缩算法相对应,例如,如果压缩时是采用热数据压缩算法进行压缩的,则在解压时采用热数据解压算法进行解压,如果压缩时是采用冷数据压缩算法进行压缩的,则在解压时采用冷数据解压算法进行解压;其中,热数据页压缩算法和热数据解压算法采用压缩比较低的算法,冷数据页压缩算法和冷数据解压算法采用压缩比较高的算法。
(3)所述操作请求为删除请求
若在步骤102中,确定数据页为热属性,则从闪存的SLC芯片读取所述数据页对应的压缩页,从压缩页中删除所述数据页对应的数据,将压缩页中剩下的数据(即除需要删除的数据以外的数据)存储在内存的热存储区,将热数据区的数据页分组写入闪存的SLC芯片;
若在步骤102中,确定数据页为冷属性,则从闪存的MLC芯片读取所述数据页对应的压缩页,从压缩页中删除所述数据页对应的数据,并将压缩页中剩下的数据(即除需要删除的数据以外的数据)存储在内存的冷存储区,将冷数据区的数据页分组写入闪存的MLC芯片。
(4)所述操作请求为更新请求
若在步骤102中,确定数据页为热属性,则从闪存的SLC芯片读取所述数据页对应的压缩页并解压,接收到用户写入的更新后的数据页后,采用热数据页压缩算法对所述更新后的数据页进行压缩,将压缩后的数据页存储在内存的热数据区,将热数据区的数据页分组写入闪存的SLC芯片;
若在步骤102中,确定数据页为冷属性,则从闪存的MLC芯片读取所述数据页对应的压缩页并解压,接收到用户写入的更新后的数据页后,采用冷数据页压缩算法对所述更新后的数据页进行压缩,将压缩后的数据页存储在内存的冷数据区,将冷数据区的数据页分组写入闪存的MLC芯片。
其中,将热数据区的数据页分组写入闪存的SLC芯片具体可以如下:
判断存储在内存的热数据区的数据页是否超过预置的阈值,若否,则不动作;若是,则将热数据区的数据页分组写入闪存的SLC芯片,例如,对热数据区中的数据页进行大小分组,即将热数据区中的数据页组装到若干个压缩页(压缩分组后形成的闪存页)中,使得总压缩页数最少,如果SLC空闲空间不足,则执行一次垃圾回收操作,将大小分组后形成的压缩页写入闪存对应的SLC芯片中。
将冷数据区的数据页分组写入闪存的MLC芯片具体可以如下:
判断存储在内存的冷数据区的数据页是否超过预置的阈值,若否,则不动作;若是,则将冷数据区的数据页分组写入闪存的MLC芯片,例如,对冷数据区中的数据页进行大小分组,即将冷数据区中的数据页组装到若干个压缩页(压缩分组后形成的闪存页)中,使得总压缩页数最少,如果MLC空闲空间不足,则执行一次垃圾回收操作,将大小分组后形成的压缩页写入闪存对应的MLC芯片中。
需说明的是,为了描述方便,本发明实施例中将压缩前的闪存页称为“数据页”,而压缩分组后所形成的闪存页称为“压缩页”。“数据页”和“压缩页”在结构上是完全一样的,所不同的是“数据页”是上层应用直接访问的对象,而“压缩页”是多个“数据页”的压缩存储。只有数据页才有冷热属性,因为数据页是用户直接访问的对象。
由上可知,本实施例通过确定数据页的冷热属性来衡量用户对数据页的写频率,对不同冷热属性的数据页采用不同的处理方式,比如对用户经常写的数据页采用写性能较高的热处理方式进行处理,对用户较少写的数据页采用空间利用率较高的冷处理方式进行处理,从而可以实现在整体上保证闪存具有较高的空间利用率的同时,又能具有较高的数据访问性能。比如在对数据页进行写入操作时,对用户常用的数据页采用低压缩比的算法进行压缩,并写入闪存中写性能较高但价格较贵的SLC芯片中,以提高闪存整体的数据访问性能,而对于用户较少访问的数据页则采用高压缩比的算法进行压缩,并写入写性能不是很高但价格便宜的MLC芯片中,从而可以保证在不影响闪存整体的数据访问性能的前提下获得更高的空间利用率。
实施例二、
本实施例将以数据页的冷热属性为数据页的写计数,且数据页的写计数与数据页的地址映射信息一起存储在HCL中为例对本发明实施例作进一步详细说明。
为了描述方便,以下实施例中将把热属性的数据页称为热数据页,冷属性的数据页称为冷数据页。
首先,需要说明的是,本实施例所采用的闪存是包含SLC芯片和MLC芯片的混合式闪存设备,参见图2。其中,无论是SLC芯片还是MLC芯片,都包含有多个块,每个块由多个闪存页组成,每个闪存页包括数据存储区和附加空间。SLC芯片和MLC芯片在数据读写性能上存在着明显的差异,两者的读性能差不多,但是SLC芯片的写性能相对于MLC芯片来说要高出很多。以Intel的MLC固态硬盘X-25M和SLC固态硬盘X-25E为例,两者的读速率都为250M/s,但SLC芯片的写速率达到170M/s,而MLC芯片的写速率只有70M/s。虽然SLC芯片具有比MLC芯片高得多的写性能,但价格更昂贵,因此可以将数据量较小但写较频繁的热数据页压缩存储在SLC芯片上以提高系统的整体访问性能,而将数据量较大但写较不频繁的冷数据页压缩存储在写速度相对较慢但容量更大价格更低的MLC芯片上,从而可以保证在不影响系统访问性能的前提下获得更高的空间利用率。
在本实施例中,定义数据页的冷热属性为数据页的写计数,并且,数据页的写计数与数据页的地址映射信息一起被存储在闪存中,如下:
本实施例使用一种有序双链表结构的HCL来表示和存储数据页的地址映射信息和写计数,可参见图3,HCL由一个热数据页有序双向链表和一个冷数据页有序双向链表构成。在本实施例中假设链表的节点数据为<LBA,PBA,counter,prev,next>,其中,LBA(Logical Block Addressing)为数据页的逻辑地址,PBA(Physical Block Addressing)为该数据页压缩存储的压缩页物理地址,逻辑地址LBA和物理地址PBA即为本发明实施例所说的数据页的地址映射信息,counter为数据页的写计数,prev指向链表的前一个节点,next指向链表的后一个节点;链表中的所有节点可以按照节点的counter值从大到小有序排列在HCL中;需说明的是,在图3中的“首块”指的是HCL的链首指针,操作HCL时,一般需要先由链首指针引导;另外,一般可设置counter(写计数)的下界为1,即写计数的最小值为1。
当数据页的写计数,即counter值发生改变时,可以通过对HCL的调整来反映冷热数据页(冷数据页和热数据页)分布的变化。例如:
每当用户写一次某个数据页时,将该数据页的写计数加1,那么,即使该数据页当前为冷数据页,在经过用户的多次写之后,如果该数据页的写计数达到预置的阀值,即可以转换成热数据页,此时,该数据页的地址映射信息和写计数等信息也将会从原来的冷数据页有序双向链表中转移到热数据页有序双向链表上,原本存储在闪存的MLC芯片上的数据页也会转移到SLC芯片中,当然,如果此时SLC芯片中的空闲空间已经不足,而该数据页的写计数又大于HCL中热数据链表中的某一个写计数,则将该数据页与所述热数据链表中的某一个写计数所对应的数据页进行置换,同时更新HCL。例如,若HCL中某一个冷数据页的写计数超过了热数据链表中的最小写计数,则如果SLC芯片中仍有空闲空间则直接插入该冷数据页,否则将该冷数据页与热数据链表中的最小写计数所对应的数据页进行置换,同时更新HCL。
反之,可以让系统每隔一段时间执行一次老化操作,比如,将每一个数据页的写计数除以一个预置的参数,例如2(一般可设置写计数下界为1,即写计数的最小值为1)或3或4等等。那么,即使某一个数据页在当前写计数很高(很热),如果在后续的时间里没有写,则其写计数将会越来越小,直到变成冷数据页并迁移到MLC芯片中,当然,相应的,该数据页的地址映射信息和写计数等信息也将会从原来的热数据页有序双向链表中转移到冷数据页有序双向链表上。需说明的是,以上只是举出老化操作的一种常规做法,除此之外,还可以采用其他的老化操作方法,只要可以保证如果某个数据页在后续的时间里没有写,其写计数将会变得越来越小即可,应当理解的是,如果采用了其他方式的老化操作,也应当属于本发明的保护范围之内。
闪存的SLC芯片和MLC芯片的页附加空间一般用于存储数据页的地址映射信息,所以HCL可以在闪存存储系统第一次运行(启动)时通过扫描SLC和MLC闪存芯片的页附加空间直接在内存中构建,可以定义HCL中所有数据页的默认写计数(初始写计数)均为1,然后在闪存存储系统运行过程中动态更新HCL,并在闪存存储系统卸载时写入到MLC闪存的固定区域(HCL存储区)中,可参见图4。这主要是考虑到SLC芯片容量有限而MLC芯片较大,并且HCL对系统性能的影响主要在于启动时的读入,而MLC的读性能和SLC相当。当下一次闪存存储系统再次启动时,则可以直接从MLC闪存的固定区域将上一次写入的HCL读入到内存中。
当闪存存储系统启动后,数据处理装置接收用户(或者说上层应用)对数据页的操作请求,然后根据该操作请求确定数据页的冷热属性,若数据页为热属性,则采用热处理方式处理数据页;若数据页为冷属性,则采用冷处理方式处理数据页。如图5所示,具体可以如下:
(1)写入请求
当用户需要写入(插入)一个新的数据页时,发送对数据页的写入请求给数据处理装置,该需要写入的新数据页的写计数默认为1(即一般设置写计数的初始值为1),数据处理装置在接收到该写入请求后,首先,根据该需要写入的新数据页的写计数判断该需要写入的数据页的冷热属性,比如可以判断该写计数是否大于预置的阀值n,若写计数大于阈值n,则确定该需要写入的新的数据页为热数据页,对该数据页采用压缩比较低的热数据页压缩算法进行压缩,并将压缩后的数据页存储在内存的热数据区,在热数据区存储的数据页的数量达到预置的值k时,将热数据区存储的数据页分组写入闪存的SLC芯片中;反之,若写计数小于阈值n,则确定该需要写入的新的数据页为冷数据页,对该数据页采用压缩比较高的冷数据页压缩算法进行压缩,并将压缩后的数据页存储在内存的冷数据区,在冷数据区存储的数据页的数量达到预置的值k时,将冷数据区存储的数据页的分组写入闪存的MLC芯片中,可参见图6。
其中,阈值n可以根据用户的需求进行预置,也可以由生产商进行预置,值k则可以根据闪存中SLC芯片的存储容量进行设置。另外,需说明的是,在确定需要写入的新的数据页为热数据页时,如果此时闪存中的SLC芯片已经没有空闲的空间,则可以发送提示消息给用户,提醒用户可以删除SLC芯片中其它数据已腾出空间,或者对该需要写入的新的数据页的处理方式转换为采用冷数据处理方式进行处理。
当然,为了避免出现在需要将新的数据页写入SLC芯片时,SLC芯片已经没有空闲的空间的情况,还可以采用其它的方式判断该需要写入的数据页的冷热属性,例如,数据处理装置在接收到该写入请求后,首先,将该写计数与内存中的HCL中的热数据页的最小写计数值做比较,假设该最小写计数值为c,如果c=1并且HCL热数据链表节点数小于SLC芯片的页数(表示SLC芯片还具有空闲的空间),则将该数据页按热数据压缩算法压缩并写入内存中的热数据区,否则按冷数据压缩算法压缩并写入内存中的冷数据区,可参见图5;当热数据区或冷数据区中存储的数据页的数量已经达到预置的值k时,执行一次分组写入操作,如图6所示,分组写入启动后:
(a)对内存的热数据区或冷数据区中的数据进行大小分组,即将数据区中的数据组装到若干个压缩页中,使得总压缩页数最少;
(b)判断SLC芯片或者MLC芯片是否有空闲空间,若有,则执行(d),若没有,则执行步骤(c)
(c)如果此时SLC芯片或者MLC芯片的空闲空间不足,则执行一次垃圾回收操作,然后执行步骤(f)或(d);
(d)如果此时SLC芯片或者MLC芯片有空闲空间,将大小分组后形成的压缩页写入闪存对应的SLC芯片(如果数据页存储在热数据区)或MLC芯片(如果数据页存储在冷数据区)中,然后执行步骤(e)。
(e)更新内存中的HCL,包括更新数据页的写计数和地址映射信息等信息。需说明的是,若分组结果中的某一个逻辑页号(逻辑地址LBA)在HCL中出现,则说明该逻辑页先前已经存储在闪存上(比如之前某一数据页存储在闪存的MLC芯片中,现在将该数据页写入(插入)到SLC芯片中),那么,根据HCL中与此LBA对应的物理页号(物理地址PBA)将相应的物理页置为无效,这是因为该物理页所存储的所有逻辑页此时都已经在内存中,因此不需要再次拷贝到内存中。
(f)如果垃圾回收后SLC仍空间不足,则启动一次冷热数据迁移操作,将SLC芯片中某些压缩页迁移到MLC芯片中,同时更新HCL,即执行步骤
(d),然后再重新写入该需要写入的新的数据页。
(2)读取请求
当用户需要读取闪存上压缩存储的数据时,发送对数据页的读取请求给数据处理装置,数据处理装置在接收到该读取请求后,首先根据读取请求中携带的需要读取的数据页的逻辑页号(逻辑地址LBA)在内存的HCL中查找该需要读取的数据页的写计数,根据查找到的写计数判断该需要读取的数据页的冷热属性,从而得知该需要读取的数据页是位于闪存的SLC芯片(热数据页的存储处)还是MLC芯片(冷数据页的存储处)中,例如,判断该写计数是否大于预置的阀值n,若是,则确定该需要读取的数据页为热数据页,可以得知该需要读取的数据页是位于闪存的SLC芯片中;若否,则确定该需要读取的数据页为冷数据页,可以得知该需要读取的数据页是位于闪存的MLC芯片中。
与此同时,数据处理装置通过查找HCL获得该需要读取的数据页的地址映射消息,即该需要读取的数据页所对应的压缩页(压缩分组后的数据页)地址,数据处理装置读入该压缩页,查找需要读取的数据页在压缩页中的压缩存储地址,根据该查找到的压缩存储地址读取压缩后的数据页,如果是热数据页则采用热数据解压算法进行解压,否则采用冷数据解压算法进行解压,然后将解压后的数据页放置在内存中,并返回解压后的数据页在内存中的地址;需说明的是,热数据解压算法与热数据页压缩算法是相对应的。
(3)删除请求
当用户需要删除闪存上压缩存储的数据时,发送对数据页的删除请求给数据处理装置,数据处理装置在接收到该删除请求后,首先,根据该删除请求中携带的需要删除的数据页的逻辑页号(逻辑地址LBA)在内存的HCL中查找该数据页的写计数,根据查找到的写计数判断该需要读取的数据页的冷热属性,从而得知该需要读取的数据页是位于闪存的SLC芯片还是MLC芯片中,并获得该数据页对应的压缩页地址,根据获得的压缩页地址读入压缩页,在压缩页中删除需要删除的数据页所对应的压缩数据,将除要删除的数据页之外的其余压缩数据拷贝到内存的热数据区(如果是热数据页)或者冷数据区(如果是冷数据页)中,并且更新HCL,即在HCL中删除该删除了的数据页所对应的节点。
当热数据区或冷数据区中存储的数据页的量已经达到预置的值时,启动分组写入操作,具体可参见本实施例中(1)写入请求中的描述,在此不再累赘。
(4)更新请求
当用户需要更新闪存上压缩存储的数据时,发送对数据页的删除请求给数据处理装置,数据处理装置在接收到该删除请求后,首先根据删除请求中携带的逻辑页号(逻辑地址LBA)更新页读取数据页,具体可参见(2)读取请求中的描述。
其次,当在内存中完成修改需要将数据页写回时,首先更新该数据页的写计数,比如可以将数据页的写计数加1,如果数据页成为热数据页,则对该数据页采用热数据页压缩算法进行压缩并写入热数据区;此时如果该数据页原先是冷数据,此步操作保证该数据页会写入到SLC芯片中,而不是写回到MLC芯片中;如果数据页是冷数据页,则对该数据页采用冷数据页压缩算法进行压缩并写入冷数据区;具体写入的执行可参见(1)写入请求中的描述;
对于该数据页原本所在(更新前)的压缩页所包含的其余数据页,由于读取时存放在内存中,并未解压,所以可以通过HCL确定它们的冷热属性,然后根据它们的冷热属性直接将它们拷贝到内存的热数据区或冷数据区。
当热数据区或冷数据区中存储的数据页的量已经达到预置的值时,启动分组写入操作,具体可参见本实施例中(1)写入请求中的描述,在此不再累赘。
需要说明的是,对于具体的数据压缩算法,虽然本发明实施例对于冷数据和热数据采取了不同的压缩算法,但对具体算法并不做强制要求。闪存存储系统选择压缩算法时,首先需要考虑算法的运行环境。如果闪存存储系统中数据压缩是使用硬件方式,则选择压缩算法时应主要考虑其程序代码的大小。如果嵌入式系统中内存空间受到了严格的限制,则压缩算法运行时的内存空间占用量成为主要的选择依据。另一方面,如果闪存存储系统中数据压缩使用了软件方式,且内存空间没有受到严格限制,此时,数据压缩比、压缩解压缩时间成为选择压缩算法的主要指标。然而,压缩算法通常在这两个方面是互相影响的。例如,对于同样使用字典压缩技术的LZSS算法和LZW算法而言,LZSS算法压缩率比LZW算法压缩率高,但LZSS算法程序比LZW算法程序代码长,所占用的存储容量大,执行时所占用的时间也较长。因此,需要根据闪存存储系统的具体需要加以选择。比如,对冷数据页进行压缩时,一般对压缩率要求较高,可以采用LZSS算法;而对热数据页进行压缩时,由于其访问更新次数较多对压缩速度要求较高,同时存储系统中热数据的比重较小而对压缩率要求较低,则可以使用LZW算法。
由上可知,本实施例可以在不影响应用数据存取性能的前提下有效提高目前闪存的空间利用率。由于对于长久不使用的冷数据页采取了压缩比高的压缩算法,因此可以保证系统内的大部分数据均可以采用高压缩比的算法压缩存储,提高闪存的空间利用率。按照Prato法则,一个系统内80%的应用都仅访问20%的数据,也就是80%的数据都是不常访问的,因此,本发明实施例将这类数据以高压缩比的算法压缩存储在MLC芯片上,在不影响应用访问20%的热数据页的前提下,提高了闪存的有效使用空间。另外,本发明实施例可以为闪存数据访问提供更高的存取性能。由于大部分应用仅访问系统内的20%数据,在本发明实施例中,我们将这部分热数据页存储在读写性能更高的SLC芯片上,并且采用了压缩比较低但解压速度快的压缩算法,从而当应用访问数据时,绝大部分情况下都只要直接存取SLC芯片上的热数据页即可,因此可以提供比已有的MLC闪存更高的性能。同时,由于本发明中所使用的闪存设备中的SLC芯片不需要很大容量,因此在价格上也不会有太大的提高,具有很好的性价比。
实施例三、
为了更好地实施以上方法,本发明实施例还相应地提供一种数据处理装置,如图7和图8所示,该数据处理装置可以包括接收单元301、属性确定单元302、热处理单元303和冷处理单元304;
接收单元301,用于接收系统对数据页的操作请求;该操作请求可以是对数据页的读取请求或对数据页的写入请求或对数据页的删除请求或对数据页的更新请求等;
属性确定单元302,用于根据接收单元301接收到的操作请求确定数据页的冷热属性,例如,可以将数据页的写计数作为数据页的冷热属性,定义写计数高于预置的阈值的为热属性,写计数低于预置的阈值的则为冷属性,则属性确定单元302可以根据接收单元301接收到的操作请求判断数据页的写计数是否大于预置的阀值,若是,则确定数据页为热属性,若否,则确定数据页为冷属性;
热处理单元303,用于当属性确定单元302确定数据页为热属性时,采用热处理方式处理数据页;
冷处理单元304,用于当属性确定单元302确定数据页为冷属性时,采用冷处理方式处理数据页。
如图8所示,该数据处理单元还可以包括链表构建单元305、链表更新单元306和链表老化单元307;
链表构建单元305,用于构建用于存储数据页的地址映射信息和写计数的HCL,所述HCL为有序双链表结构;
所述属性确定单元302,还用于根据所述接收单元301接收到的操作请求通过查找所述链表构建单元305构建的HCL确定数据页的冷热属性,例如根据所述接收单元301接收到的操作请求通过查找所述链表构建单元305构建的HCL判断数据页的写计数是否大于预置的阀值。
链表更新单元306,用于根据热处理单元303或冷处理单元304的处理的情况对所述HCL进行更新。
链表老化单元307,用于在每隔一段预置的时间后对链表构建单元305构建的HCL中的写计数进行老化操作。
如图8所示,该数据处理装置还可以包括链表写入单元308,以便在下一次启动闪存存储系统时可以直接调用该HCL;
链表写入单元308,用于在闪存存储系统卸载时,将所述链表构建单元305构建的HCL写入闪存。
相应的,如图8所示,该数据处理装置还可以包括链表判断单元309和链表读取单元310;
链表判断单元309,用于在链表构建单元305构建用于存储数据页的地址映射信息和写计数的HCL之前,判断闪存中是否存在HCL;
链表读取单元310,用于当链表判断单元309判断闪存中存在HCL时,从闪存中读取所述HCL到内存;
所述链表构建单元305,用于当链表判断单元309判断闪存中不存在HCL时,构建用于存储数据页的地址映射信息和写计数的HCL。
其中,如图7所示,所述热处理单元303可以包括热读取子单元3031、热写入子单元3032、热删除子单元3033和热更新子单元3034;
热读取子单元3031,用于当接收单元301接收到的操作请求为读取请求,且属性确定单元302确定数据页为热属性时,从闪存的SLC芯片中读取所述数据页对应的压缩页并解压;
热写入子单元3032,用于当接收单元301接收到的操作请求为写入请求,且属性确定单元302确定数据页为热属性时,采用高压缩比的算法对所述数据页进行压缩,将压缩后的数据页存储在内存的热数据区,将热数据区的数据页分组写入闪存的SLC芯片;
热删除子单元3033,用于当接收单元301接收到的操作请求为删除请求,且属性确定单元302确定数据页为热属性时,从闪存的SLC芯片读取所述数据页对应的压缩页,从压缩页中删除所述数据页对应的数据,将压缩页中剩下的数据存储在内存的热存储区,将热数据区的数据页分组写入闪存的SLC芯片;
热更新子单元3034,用于当接收单元301接收到的操作请求为更新请求,且属性确定单元302确定数据页为热属性时,从闪存的SLC芯片读取所述数据页对应的压缩页并解压,接收到用户写入的更新后的数据页后,采用高压缩比的算法对所述更新后的数据页进行压缩,将压缩后的数据页存储在内存的热数据区,将热数据区的数据页分组写入闪存的SLC芯片。
其中,如图7所示,所述冷处理单元304可以包括冷读取子单元3041、冷写入子单元3042、冷删除子单元3043和冷更新子单元3044;
冷读取子单元3041,用于当接收单元301接收到的操作请求为读取请求,且属性确定单元302确定数据页为冷属性时,从闪存的MLC芯片中读取所述数据页对应的压缩页并解压;
冷写入子单元3042,用于当接收单元301接收到的操作请求为写入请求,且属性确定单元302确定数据页为冷属性时,采用低压缩比的算法对所述数据页进行压缩,将压缩后的数据页存储在内存的冷数据区,将冷数据区的数据页分组写入闪存的MLC芯片;
冷删除子单元3043,用于当接收单元301接收到的操作请求为删除请求,且属性确定单元302确定数据页为冷属性时,从闪存的MLC芯片读取所述数据页对应的压缩页,从压缩页中删除所述数据页对应的数据,并将压缩页中剩下的数据存储在内存的冷存储区,将冷数据区的数据页分组写入闪存的MLC芯片;
冷更新子单元3044,用于当接收单元301接收到的操作请求为更新请求,且属性确定单元302确定数据页为冷属性时,从闪存的MLC芯片读取所述数据页对应的压缩页并解压,接收到用户写入的更新后的数据页后,采用低压缩比的算法对所述更新后的数据页进行压缩,将压缩后的数据页存储在内存的冷数据区,将冷数据区的数据页分组写入闪存的MLC芯片。
关于如何判断数据页的冷热属性,以及如何采用冷处理方式或热处理方式处理数据页等方案可参见实施例二,在此不再累赘。
由上可知,本实施例提供的数据处理装置可以通过确定数据页的冷热属性来衡量用户对数据页的写频率,对不同冷热属性的数据页采用不同的处理方式,即对用户经常写的数据页采用写性能较高的热处理方式进行处理,对用户较少写的数据页采用空间利用率较高的冷处理方式进行处理,从而可以实现在整体上保证闪存具有较高的空间利用率的同时,又能具有较高的数据访问性能。
实施例四、
为了更好实施例以上方法,本发明实施例还相应地提供一种闪存400,如图9所示,该闪存400包括热存储单元401和冷存储单元402;需说明的是,为了描述得更清楚,图9中还包括数据处理装置300;
热存储单元401,用于存储数据处理装置300采用热处理方式处理后由内存分组写入的数据页;该热存储单元401可以包括SLC芯片,SLC芯片可以包括多个块;
冷存储单元402,用于存储数据处理装置300采用冷处理方式处理后由内存分组写入的数据页;该冷存储单元可以包括MLC芯片,MLC芯片可以包括多个块。
如图9所示,该闪存400还可以包括链表接收单元403、链表存储单元404和链表发送单元405;
链表接收单元403,用于接收数据处理装置300由内存写入的HCL,所述HCL用于保存存储单元中存储的数据页的地址映射信息和写计数;
链表存储单元404,用于保存链表接收单元403接收到的HCL;需说明的是,该链表存储单元404的实体可以为冷存储单元402的实体的一部分,即将冷存储单元402中划分出一部分作为链表存储单元404;
链表发送单元405,用于将链表存储单元404中保存的HCL发送给内存,以便数据处理装置300可以根据该HCL对数据页进行处理。
由上可知,本实施例提供的闪存400是一种包括了热存储单元401和冷存储单元402的混合式闪存设备,例如采用SLC芯片作为热存储单元401,采用MLC芯片作为冷存储单元402,参见图2,虽然SLC芯片具有比MLC芯片高得多的写性能,但价格更昂贵,因此可以将数据量较小但写较频繁的热数据页压缩存储在SLC芯片上以提高系统的整体访问性能,而将数据量较大但写较不频繁的冷数据页压缩存储在写速度相对较慢但容量更大价格更低的MLC芯片上,从而可以保证在不影响系统访问性能的前提下获得更高的空间利用率,而且,还可以保证具有较高的性价比。
实施例五、
相应的,本发明实施例还提供了一种闪存存储系统,如图10所示,该闪存存储系统包括数据处理装置501和闪存502;
数据处理装置501,用于接收用户对数据页的操作请求,根据所述操作请求确定数据页的冷热属性,若为热属性,则采用热处理方式处理数据页,若为冷属性,则采用冷处理方式处理数据页;例如可以根据所述操作请求判断数据页的写计数是否大于预置的阀值,若是,则确定数据页为热属性,采用热处理方式处理数据页,若否,则确定数据页为冷属性,采用冷处理方式处理数据页;该数据处理装置可以在闪存存储系统启动时直接从闪存502中调用并安装在闪存存储系统中,也可以通过其它途径进行下载,然后再安装在闪存存储系统中。该数据处理装置具体可以为闪存驱动程序模块。具体可参见上述实施例,在此不再累赘。
闪存502,用于存储数据处理装置501采用热处理方式处理后由内存分组写入的数据页,以及存储数据处理装置501采用冷处理方式处理后由内存分组写入的数据页;该闪存502是一种包括了热存储单元和冷存储单元的混合式闪存设备,例如采用SLC芯片作为热存储单元,采用MLC芯片作为冷存储单元等等,具体可参见上述实施例,在此不再累赘。
其中,数据处理装置501可以包括接收单元301、属性确定单元302、热处理单元303和冷处理单元304,还可以包括链表构建单元305、链表更新单元306、链表老化单元307、链表写入单元308、链表判断单元309和链表读取单元310;其中,所述热处理单元303可以包括热读取子单元3031、热写入子单元3032、热删除子单元3033和热更新子单元3034;所述冷处理单元可以包括冷读取子单元3041、冷写入子单元3042、冷删除子单元3043和冷更新子单元3044。
其中,闪存502可以包括热存储单元401和冷存储单元402,还可以包括链表接收单元403、链表存储单元404和链表发送单元405。
综上,本发明实施例可以在不影响应用数据存取性能的前提下有效提高目前闪存的空间利用率。由于对于长久不使用的冷数据页采取了压缩比高的压缩算法,因此可以保证系统内的大部分数据均可以采用高压缩比的算法压缩存储,提高闪存的空间利用率。按照Prato法则,一个系统内80%的应用都仅访问20%的数据,也就是80%的数据都是不常访问的,因此,本发明将这类数据以高压缩比的算法压缩存储在MLC芯片上,在不影响应用访问20%的热数据页的前提下,提高了闪存的有效使用空间。另外,本发明实施例可以为闪存数据访问提供更高的存取性能。由于大部分应用仅访问系统内的20%数据,在本发明实施例中,我们将这部分热数据页存储在读写性能更高的SLC芯片上,并且采用了压缩比较低但解压速度快的压缩算法,从而当应用访问数据时,绝大部分情况下都只要直接存取SLC芯片上的热数据页即可,因此可以提供比现有的MLC闪存更高的性能。同时,由于本发明中所使用的闪存中的SLC芯片不需要很大容量,因此在价格上也不会有太大的提高,具有很好的性价比。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的数据处理方法、装置和闪存存储系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (17)

1、一种数据处理方法,其特征在于,包括:
接收用户对数据页的操作请求;
根据所述操作请求判断数据页的写计数是否大于预置的阀值;
若是,则确定数据页为热属性,采用热处理方式处理数据页;
若否,则确定数据页为冷属性,采用冷处理方式处理数据页。
2、根据权利要求1所述的数据处理方法,其特征在于,还包括:
构建用于存储数据页的地址映射信息和写计数的冷热链表,所述冷热链表为有序双链表结构;
在接收到用户对数据页的操作请求后,根据所述操作请求通过查找冷热链表获取数据页的写计数。
3、根据权利要求2所述的数据处理方法,其特征在于,所述构建用于存储数据页的地址映射信息和写计数的冷热链表包括:
通过扫描闪存的单层单元芯片和多层单元芯片的页附加空间构建用于存储数据页的地址映射信息和写计数的冷热链表,所述闪存的单层单元芯片和多层单元芯片的页附加空间存储有数据页的地址映射信息。
4、根据权利要求1所述的数据处理方法,其特征在于,当所述操作请求为读取请求时,
所述采用热处理方式处理数据页包括:从闪存的单层单元芯片中读取所述数据页对应的压缩页并解压;
所述采用冷处理方式处理数据页包括:从闪存的多层单元芯片中读取所述数据页对应的压缩页并解压。
5、根据权利要求1所述的数据处理方法,其特征在于,当所述操作请求为写入请求时,
所述采用热处理方式处理数据页包括:采用热数据页压缩算法对所述数据页进行压缩,将压缩后的数据页存储在内存的热数据区,将热数据区的数据页分组写入闪存的单层单元芯片;
所述采用冷处理方式处理数据页包括:采用冷数据页压缩算法对所述数据页进行压缩,将压缩后的数据页存储在内存的冷数据区,将冷数据区的数据页分组写入闪存的多层单元芯片。
6、根据权利要求1所述的数据处理方法,其特征在于,当所述操作请求为删除请求时,
所述采用热处理方式处理数据页包括:从闪存的单层单元芯片读取所述数据页对应的压缩页,从压缩页中删除所述数据页对应的数据,将压缩页中剩下的数据存储在内存的热存储区,将热数据区的数据页分组写入闪存的单层单元芯片;
所述采用冷处理方式处理数据页包括:从闪存的多层单元芯片读取所述数据页对应的压缩页,从压缩页中删除所述数据页对应的数据,并将压缩页中剩下的数据存储在内存的冷存储区,将冷数据区的数据页分组写入闪存的多层单元芯片。
7、根据权利要求1所述的数据处理方法,其特征在于,当所述操作请求为更新请求时,
所述采用热处理方式处理数据页包括:从闪存的单层单元芯片读取所述数据页对应的压缩页并解压,接收到用户写入的更新后的数据页后,采用热数据页压缩算法对所述更新后的数据页进行压缩,将压缩后的数据页存储在内存的热数据区,将热数据区的数据页分组写入闪存的单层单元芯片;
所述采用冷处理方式处理数据页包括:从闪存的多层单元芯片读取所述数据页对应的压缩页并解压,接收到用户写入的更新后的数据页后,采用冷数据页压缩算法对所述更新后的数据页进行压缩,将压缩后的数据页存储在内存的冷数据区,将冷数据区的数据页分组写入闪存的多层单元芯片。
8、根据权利要求4至7所述的数据处理方法,其特征在于,
所述将热数据区的数据页分组写入闪存的单层单元芯片包括:
判断存储在内存的热数据区的数据页是否超过预置的阈值;
若是,则将热数据区的数据页分组写入闪存的单层单元芯片;
所述将冷数据区的数据页分组写入闪存的多层单元芯片具体为:
判断存储在内存的冷数据区的数据页是否超过预置的阈值;
若是,则将冷数据区的数据页分组写入闪存的多层单元芯片。
9、一种数据处理装置,其特征在于,包括:
接收单元,用于接收系统对数据页的操作请求;
属性确定单元,用于根据所述接收单元接收到的操作请求判断数据页的写计数是否大于预置的阀值,若是,则确定数据页为热属性,若否,则确定数据页为冷属性;
热处理单元,用于当属性确定单元确定数据页为热属性时,采用热处理方式处理数据页;
冷处理单元,用于当属性确定单元确定数据页为冷属性时,采用冷处理方式处理数据页。
10、根据权利要求9所述的数据处理装置,其特征在于,还包括:
链表构建单元,用于构建用于存储数据页的地址映射信息和写计数的冷热链表,所述冷热链表为有序双链表结构;
所述属性确定单元,还用于根据所述接收单元接收到的操作请求通过查找所述链表构建单元构建的冷热链表判断数据页的写计数是否大于预置的阀值。
11、根据权利要求9或10所述的数据处理装置,其特征在于,还包括:
链表判断单元,用于在链表构建单元构建用于存储数据页的地址映射信息和写计数的冷热链表之前,判断闪存中是否存在冷热链表;
链表读取单元,用于当链表判断单元判断闪存中存在冷热链表时,从闪存中读取所述冷热链表到内存;
所述链表构建单元,用于当链表判断单元判断闪存中不存在冷热链表时,构建用于存储数据页的地址映射信息和写计数的冷热链表。
12、根据权利要求9所述的数据处理装置,其特征在于,所述热处理单元包括:
热读取子单元,用于当接收单元接收到的操作请求为读取请求,且属性确定单元确定数据页为热属性时,从闪存的单层单元芯片中读取所述数据页对应的压缩页并解压;
热写入子单元,用于当接收单元接收到的操作请求为写入请求,且属性确定单元确定数据页为热属性时,采用热数据页压缩算法对所述数据页进行压缩,将压缩后的数据页存储在内存的热数据区,将热数据区的数据页分组写入闪存的单层单元芯片;
热删除子单元,用于当接收单元接收到的操作请求为删除请求,且属性确定单元确定数据页为热属性时,从闪存的单层单元芯片读取所述数据页对应的压缩页,从压缩页中删除所述数据页对应的数据,将压缩页中剩下的数据存储在内存的热存储区,将热数据区的数据页分组写入闪存的单层单元芯片;
热更新子单元,用于当接收单元接收到的操作请求为更新请求,且属性确定单元确定数据页为热属性时,从闪存的单层单元芯片读取所述数据页对应的压缩页并解压,接收到用户写入的更新后的数据页后,采用热数据页压缩算法对所述更新后的数据页进行压缩,将压缩后的数据页存储在内存的热数据区,将热数据区的数据页分组写入闪存的单层单元芯片。
13、根据权利要求9所述的数据处理装置,其特征在于,所述冷处理单元包括:
冷读取子单元,用于当接收单元接收到的操作请求为读取请求,且属性确定单元确定数据页为冷属性时,从闪存的多层单元芯片中读取所述数据页对应的压缩页并解压;
冷写入子单元,用于当接收单元接收到的操作请求为写入请求,且属性确定单元确定数据页为冷属性时,采用冷数据页压缩算法对所述数据页进行压缩,将压缩后的数据页存储在内存的冷数据区,将冷数据区的数据页分组写入闪存的多层单元芯片;
冷删除子单元,用于当接收单元接收到的操作请求为删除请求,且属性确定单元确定数据页为冷属性时,从闪存的多层单元芯片读取所述数据页对应的压缩页,从压缩页中删除所述数据页对应的数据,并将压缩页中剩下的数据存储在内存的冷存储区,将冷数据区的数据页分组写入闪存的多层单元芯片;
冷更新子单元,用于当接收单元接收到的操作请求为更新请求,且属性确定单元确定数据页为冷属性时,从闪存的多层单元芯片读取所述数据页对应的压缩页并解压,接收到用户写入的更新后的数据页后,采用冷数据页压缩算法对所述更新后的数据页进行压缩,将压缩后的数据页存储在内存的冷数据区,将冷数据区的数据页分组写入闪存的多层单元芯片。
14、一种闪存,其特征在于,包括:
热存储单元,用于存储数据处理装置采用热处理方式处理后由内存分组写入的数据页;
冷存储单元,用于存储数据处理装置采用冷处理方式处理后由内存分组写入的数据页。
15、根据权利要求14所述的闪存,其特征在于,所述存储单元包括:
所述热存储单元包括单层单元芯片;
所述冷存储单元包括多层单元芯片。
16、根据权利要求14或15所述的内存,其特征在于,还包括:
链表接收单元,用于接收由内存写入的冷热链表,所述冷热链表用于保存存储单元中存储的数据页的地址映射信息和写计数;
链表存储单元,用于保存链表接收单元接收到的冷热链表;
链表发送单元,用于将链表存储单元中保存的冷热链表发送给内存。
17、一种闪存存储系统,其特征在于,包括:
数据处理装置,用于接收用户对数据页的操作请求,根据所述操作请求判断数据页的写计数是否大于预置的阀值,若是,则确定数据页为热属性,采用热处理方式处理数据页,若否,则确定数据页为冷属性,采用冷处理方式处理数据页;
闪存,用于存储数据处理装置采用热处理方式处理后由内存分组写入的数据页,以及存储数据处理装置采用冷处理方式处理后由内存分组写入的数据页。
CN2009101333330A 2009-04-02 2009-04-02 一种数据处理方法、装置和闪存存储系统 Active CN101526923B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009101333330A CN101526923B (zh) 2009-04-02 2009-04-02 一种数据处理方法、装置和闪存存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009101333330A CN101526923B (zh) 2009-04-02 2009-04-02 一种数据处理方法、装置和闪存存储系统

Publications (2)

Publication Number Publication Date
CN101526923A true CN101526923A (zh) 2009-09-09
CN101526923B CN101526923B (zh) 2012-04-04

Family

ID=41094793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101333330A Active CN101526923B (zh) 2009-04-02 2009-04-02 一种数据处理方法、装置和闪存存储系统

Country Status (1)

Country Link
CN (1) CN101526923B (zh)

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101794199A (zh) * 2010-03-26 2010-08-04 山东高效能服务器和存储研究院 基于高速磁盘缓存的计算机磁盘性能加速方法
CN102073594A (zh) * 2010-11-26 2011-05-25 钰创科技股份有限公司 衰减热数据的方法
CN102142277A (zh) * 2010-01-28 2011-08-03 深圳市江波龙电子有限公司 一种存储器及存储器读写控制方法及系统
CN102760099A (zh) * 2011-04-29 2012-10-31 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
CN103049216A (zh) * 2012-12-07 2013-04-17 记忆科技(深圳)有限公司 固态硬盘及其数据处理方法、系统
CN103246609A (zh) * 2013-04-24 2013-08-14 深圳市江波龙电子有限公司 一种闪存存储设备中冷热数据区分管理的方法及装置
CN103870205A (zh) * 2012-12-11 2014-06-18 联想(北京)有限公司 用于存储控制的方法和装置、以及信息处理的方法和装置
CN104346291A (zh) * 2013-08-05 2015-02-11 炬芯(珠海)科技有限公司 一种存储器的存储方法及存储系统
CN104572478A (zh) * 2013-10-14 2015-04-29 联想(北京)有限公司 数据存取方法和数据存取装置
CN105095492A (zh) * 2015-08-19 2015-11-25 北京京东尚科信息技术有限公司 一种数据处理方法及装置
CN105867834A (zh) * 2015-01-22 2016-08-17 深圳市硅格半导体有限公司 存储装置数据整理方法
WO2016188098A1 (zh) * 2015-05-27 2016-12-01 华为技术有限公司 瓦记录感知文件系统中垃圾数据的回收方法和装置
CN106970881A (zh) * 2017-03-10 2017-07-21 浙江大学 一基于大页的冷热页追踪及压缩回收方法
CN106980541A (zh) * 2017-03-10 2017-07-25 浙江大学 一种大页内存压缩回收系统及方法
CN107168643A (zh) * 2017-03-31 2017-09-15 北京奇艺世纪科技有限公司 一种数据存储方法及装置
CN107678684A (zh) * 2017-08-22 2018-02-09 深圳市硅格半导体股份有限公司 存储器的无效数据清除方法、装置和存储器
CN109062502A (zh) * 2018-07-10 2018-12-21 郑州云海信息技术有限公司 一种数据压缩方法、装置、设备及计算机可读存储介质
CN109376094A (zh) * 2018-09-27 2019-02-22 郑州云海信息技术有限公司 一种存储系统中垃圾回收冷热数据迁移的方法
CN109388579A (zh) * 2018-09-18 2019-02-26 深圳市德名利电子有限公司 一种闪存冷数据识别方法
TWI652571B (zh) 2017-08-09 2019-03-01 旺宏電子股份有限公司 記憶體裝置之管理系統及管理方法
CN109471594A (zh) * 2018-10-09 2019-03-15 华中科技大学 一种mlc闪存读写方法
CN109558075A (zh) * 2018-10-29 2019-04-02 珠海妙存科技有限公司 一种利用数据冷热属性存储数据的方法及装置
CN109756230A (zh) * 2019-01-03 2019-05-14 Oppo广东移动通信有限公司 数据压缩存储方法、数据压缩方法、装置、设备及介质
CN109802684A (zh) * 2018-12-26 2019-05-24 华为技术有限公司 进行数据压缩的方法和装置
CN109814809A (zh) * 2019-01-14 2019-05-28 杭州宏杉科技股份有限公司 数据压缩方法及装置
CN110223726A (zh) * 2019-06-04 2019-09-10 深圳忆联信息系统有限公司 一种增加ssd使用寿命的方法及其系统
CN110321081A (zh) * 2019-07-08 2019-10-11 深圳忆联信息系统有限公司 一种闪存读缓存的方法及其系统
CN110704488A (zh) * 2019-09-29 2020-01-17 北京元年科技股份有限公司 用于管理数据的方法及相应的系统、计算机设备和介质
CN110908923A (zh) * 2018-09-14 2020-03-24 阿里巴巴集团控股有限公司 内存回收方法及装置
CN111414132A (zh) * 2019-01-07 2020-07-14 爱思开海力士有限公司 带异构存储器的主存储设备、计算机系统及数据管理方法
CN112286843A (zh) * 2020-08-12 2021-01-29 深圳安捷丽新技术有限公司 数据存储系统的系统和方法
CN112906071A (zh) * 2020-12-01 2021-06-04 深圳安捷丽新技术有限公司 一种基于页温动态冷热切换的数据保护方法和装置
WO2021120645A1 (zh) * 2019-12-20 2021-06-24 华为技术有限公司 数据写入固态硬盘的方法、垃圾回收的方法、装置
CN113452726A (zh) * 2020-03-24 2021-09-28 中兴通讯股份有限公司 数据传输方法、终端及计算机可读存储介质
CN114127677A (zh) * 2019-07-10 2022-03-01 国际商业机器公司 支持读热数据分离的写高速缓存架构中的数据放置
CN115905168A (zh) * 2022-11-15 2023-04-04 本原数据(北京)信息技术有限公司 自适应压缩方法和压缩装置、计算机设备、存储介质

Cited By (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102142277A (zh) * 2010-01-28 2011-08-03 深圳市江波龙电子有限公司 一种存储器及存储器读写控制方法及系统
CN101794199A (zh) * 2010-03-26 2010-08-04 山东高效能服务器和存储研究院 基于高速磁盘缓存的计算机磁盘性能加速方法
CN102073594A (zh) * 2010-11-26 2011-05-25 钰创科技股份有限公司 衰减热数据的方法
CN102073594B (zh) * 2010-11-26 2012-10-03 钰创科技股份有限公司 衰减热数据的方法
CN102760099A (zh) * 2011-04-29 2012-10-31 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
CN102760099B (zh) * 2011-04-29 2015-10-14 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
CN103049216A (zh) * 2012-12-07 2013-04-17 记忆科技(深圳)有限公司 固态硬盘及其数据处理方法、系统
CN103049216B (zh) * 2012-12-07 2015-11-25 记忆科技(深圳)有限公司 固态硬盘及其数据处理方法、系统
CN103870205A (zh) * 2012-12-11 2014-06-18 联想(北京)有限公司 用于存储控制的方法和装置、以及信息处理的方法和装置
CN103870205B (zh) * 2012-12-11 2018-08-07 联想(北京)有限公司 用于存储控制的方法和装置、以及信息处理的方法和装置
CN103246609B (zh) * 2013-04-24 2015-12-09 深圳市江波龙电子有限公司 一种闪存存储设备中冷热数据区分管理的方法及装置
CN103246609A (zh) * 2013-04-24 2013-08-14 深圳市江波龙电子有限公司 一种闪存存储设备中冷热数据区分管理的方法及装置
CN104346291A (zh) * 2013-08-05 2015-02-11 炬芯(珠海)科技有限公司 一种存储器的存储方法及存储系统
WO2015018305A1 (zh) * 2013-08-05 2015-02-12 炬力集成电路设计有限公司 一种存储器的存储方法及存储系统
CN104346291B (zh) * 2013-08-05 2017-08-01 炬芯(珠海)科技有限公司 一种存储器的存储方法及存储系统
CN104572478A (zh) * 2013-10-14 2015-04-29 联想(北京)有限公司 数据存取方法和数据存取装置
CN104572478B (zh) * 2013-10-14 2018-07-06 联想(北京)有限公司 数据存取方法和数据存取装置
CN105867834A (zh) * 2015-01-22 2016-08-17 深圳市硅格半导体有限公司 存储装置数据整理方法
WO2016188098A1 (zh) * 2015-05-27 2016-12-01 华为技术有限公司 瓦记录感知文件系统中垃圾数据的回收方法和装置
CN105095492A (zh) * 2015-08-19 2015-11-25 北京京东尚科信息技术有限公司 一种数据处理方法及装置
CN105095492B (zh) * 2015-08-19 2018-09-04 北京京东尚科信息技术有限公司 一种数据处理方法及装置
CN106980541A (zh) * 2017-03-10 2017-07-25 浙江大学 一种大页内存压缩回收系统及方法
CN106970881A (zh) * 2017-03-10 2017-07-21 浙江大学 一基于大页的冷热页追踪及压缩回收方法
CN106980541B (zh) * 2017-03-10 2019-11-19 浙江大学 一种大页内存压缩回收系统及方法
CN106970881B (zh) * 2017-03-10 2020-04-28 浙江大学 一基于大页的冷热页追踪及压缩回收方法
CN107168643A (zh) * 2017-03-31 2017-09-15 北京奇艺世纪科技有限公司 一种数据存储方法及装置
CN107168643B (zh) * 2017-03-31 2020-04-03 北京奇艺世纪科技有限公司 一种数据存储方法及装置
TWI652571B (zh) 2017-08-09 2019-03-01 旺宏電子股份有限公司 記憶體裝置之管理系統及管理方法
CN107678684A (zh) * 2017-08-22 2018-02-09 深圳市硅格半导体股份有限公司 存储器的无效数据清除方法、装置和存储器
CN107678684B (zh) * 2017-08-22 2020-11-10 深圳市硅格半导体有限公司 存储器的无效数据清除方法、装置和存储器
CN109062502A (zh) * 2018-07-10 2018-12-21 郑州云海信息技术有限公司 一种数据压缩方法、装置、设备及计算机可读存储介质
CN110908923B (zh) * 2018-09-14 2023-05-02 阿里巴巴集团控股有限公司 内存回收方法及装置
CN110908923A (zh) * 2018-09-14 2020-03-24 阿里巴巴集团控股有限公司 内存回收方法及装置
CN109388579A (zh) * 2018-09-18 2019-02-26 深圳市德名利电子有限公司 一种闪存冷数据识别方法
CN109376094A (zh) * 2018-09-27 2019-02-22 郑州云海信息技术有限公司 一种存储系统中垃圾回收冷热数据迁移的方法
CN109471594A (zh) * 2018-10-09 2019-03-15 华中科技大学 一种mlc闪存读写方法
CN109558075A (zh) * 2018-10-29 2019-04-02 珠海妙存科技有限公司 一种利用数据冷热属性存储数据的方法及装置
WO2020135384A1 (zh) * 2018-12-26 2020-07-02 华为技术有限公司 进行数据压缩的方法和装置
CN109802684A (zh) * 2018-12-26 2019-05-24 华为技术有限公司 进行数据压缩的方法和装置
CN109756230B (zh) * 2019-01-03 2024-02-27 Oppo广东移动通信有限公司 数据压缩存储方法、数据压缩方法、装置、设备及介质
CN109756230A (zh) * 2019-01-03 2019-05-14 Oppo广东移动通信有限公司 数据压缩存储方法、数据压缩方法、装置、设备及介质
CN111414132A (zh) * 2019-01-07 2020-07-14 爱思开海力士有限公司 带异构存储器的主存储设备、计算机系统及数据管理方法
CN111414132B (zh) * 2019-01-07 2024-03-12 爱思开海力士有限公司 带异构存储器的主存储设备、计算机系统及数据管理方法
CN109814809A (zh) * 2019-01-14 2019-05-28 杭州宏杉科技股份有限公司 数据压缩方法及装置
CN109814809B (zh) * 2019-01-14 2022-03-11 杭州宏杉科技股份有限公司 数据压缩方法及装置
CN110223726A (zh) * 2019-06-04 2019-09-10 深圳忆联信息系统有限公司 一种增加ssd使用寿命的方法及其系统
CN110223726B (zh) * 2019-06-04 2020-12-01 深圳忆联信息系统有限公司 一种增加ssd使用寿命的方法及其系统
CN110321081A (zh) * 2019-07-08 2019-10-11 深圳忆联信息系统有限公司 一种闪存读缓存的方法及其系统
CN110321081B (zh) * 2019-07-08 2023-06-06 深圳忆联信息系统有限公司 一种闪存读缓存的方法及其系统
CN114127677B (zh) * 2019-07-10 2024-02-09 国际商业机器公司 用于写高速缓存架构中的数据放置的方法和系统
CN114127677A (zh) * 2019-07-10 2022-03-01 国际商业机器公司 支持读热数据分离的写高速缓存架构中的数据放置
CN110704488B (zh) * 2019-09-29 2022-02-08 北京元年科技股份有限公司 用于管理数据的方法及相应的系统、计算机设备和介质
CN110704488A (zh) * 2019-09-29 2020-01-17 北京元年科技股份有限公司 用于管理数据的方法及相应的系统、计算机设备和介质
WO2021120645A1 (zh) * 2019-12-20 2021-06-24 华为技术有限公司 数据写入固态硬盘的方法、垃圾回收的方法、装置
CN113452726A (zh) * 2020-03-24 2021-09-28 中兴通讯股份有限公司 数据传输方法、终端及计算机可读存储介质
CN113452726B (zh) * 2020-03-24 2024-02-20 中兴通讯股份有限公司 数据传输方法、终端及计算机可读存储介质
CN112286843A (zh) * 2020-08-12 2021-01-29 深圳安捷丽新技术有限公司 数据存储系统的系统和方法
CN112906071B (zh) * 2020-12-01 2023-07-14 深圳安捷丽新技术有限公司 一种基于页温动态冷热切换的数据保护方法和装置
CN112906071A (zh) * 2020-12-01 2021-06-04 深圳安捷丽新技术有限公司 一种基于页温动态冷热切换的数据保护方法和装置
CN115905168A (zh) * 2022-11-15 2023-04-04 本原数据(北京)信息技术有限公司 自适应压缩方法和压缩装置、计算机设备、存储介质
CN115905168B (zh) * 2022-11-15 2023-11-07 本原数据(北京)信息技术有限公司 基于数据库的自适应压缩方法和装置、设备、存储介质

Also Published As

Publication number Publication date
CN101526923B (zh) 2012-04-04

Similar Documents

Publication Publication Date Title
CN101526923B (zh) 一种数据处理方法、装置和闪存存储系统
KR102252724B1 (ko) 다중-스트림 가비지 컬렉션 방법
US10310747B2 (en) Memory management device and method
US8510500B2 (en) Device driver including a flash memory file system and method thereof and a flash memory device and method thereof
US8910017B2 (en) Flash memory with random partition
KR102252419B1 (ko) 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
CA2511304C (en) Dual journaling store method and storage medium thereof
US20070233941A1 (en) Method for initializing and operating flash memory file system and computer-readable medium storing related program
US9830106B2 (en) Management of memory array with magnetic random access memory (MRAM)
EP2665065A2 (en) Electronic device employing flash memory
CN112771493B (zh) 将写入流分离到多个分区中
JP2011530133A (ja) キャッシュコンテンツの記憶管理
US8332575B2 (en) Data management systems, methods and computer program products using a phase-change random access memory for selective data maintenance
US20210216448A1 (en) Data storage device in a key-value storage architecture with data compression, and non-volatile memory control method
US20050169058A1 (en) Data management apparatus and method used for flash memory
CN108664577B (zh) 一种基于flash空闲区的文件管理方法及系统
US10095413B2 (en) Memory system with address translation between a logical address and a physical address
CN102792296B (zh) 移动终端中请求页面调度方法、控制器以及移动终端
CN115934002B (zh) 固态硬盘的访问方法、固态硬盘、存储系统及云服务器
CN102521156A (zh) 一种映射关系访问方法和装置
KR101699779B1 (ko) 플래시 메모리의 색인 방법
CN108958657B (zh) 一种数据存储方法、存储设备及存储系统
US20060224817A1 (en) NOR flash file allocation
US11402995B2 (en) Data storage system in a key-value storage architecture with data compression, and non-volatile memory control method
CN113467699B (zh) 一种提升可用存储容量方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee

Owner name: HUAWEI DIGITAL TECHNOLOGY (CHENGDU) CO., LTD.

Free format text: FORMER NAME: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES CO., LTD.

CP01 Change in the name or title of a patent holder

Address after: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee after: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

Address before: 611731 Chengdu high tech Zone, Sichuan, West Park, Qingshui River

Patentee before: CHENGDU HUAWEI SYMANTEC TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20220907

Address after: No. 1899 Xiyuan Avenue, high tech Zone (West District), Chengdu, Sichuan 610041

Patentee after: Chengdu Huawei Technologies Co.,Ltd.

Address before: 611731 Qingshui River District, Chengdu hi tech Zone, Sichuan, China

Patentee before: HUAWEI DIGITAL TECHNOLOGIES (CHENG DU) Co.,Ltd.

TR01 Transfer of patent right