发明内容
本发明实施例提供一种数据处理方法、装置和闪存存储系统。目的在于保证闪存具有较高的空间利用率的同时又能具有较高的数据访问性能。
一种数据处理方法,包括:
接收用户对数据页的操作请求;
根据所述操作请求判断数据页的写计数是否大于预置的阀值;
若是,则确定数据页为热属性,采用热处理方式处理数据页;
若否,则确定数据页为冷属性,采用冷处理方式处理数据页;
当所述操作请求为读取请求时,所述采用热处理方式处理数据页包括:从闪存的单层单元芯片中读取所述数据页对应的压缩页并解压;所述采用冷处理方式处理数据页包括:从闪存的多层单元芯片中读取所述数据页对应的压缩页并解压。
一种数据处理方法,包括:
接收用户对数据页的操作请求;
根据所述操作请求判断数据页的写计数是否大于预置的阀值;
若是,则确定数据页热属性,采用热处理方式处理数据页;
若否,则确定数据页为冷属性,采用冷处理方式处理数据页;
当所述操作请求为写入请求时,所述采用热处理方式处理数据页包括:采用热数据页压缩算法对所述数据页进行压缩,将压缩后的数据页存储在内存的热数据区,将热数据区的数据页分组写入闪存的单层单元芯片;
所述采用冷处理方式处理数据页包括:采用冷数据页压缩算法对所述数据页进行压缩,将压缩后的数据页存储在内存的冷数据区,将冷数据区的数据页分组写入闪存的多层单元芯片;
其中,所述热数据页压缩算法为采用压缩比较低的算法,所述冷数据页压缩算法为采用压缩比较高的算法;所述热数据区为热数据页的存储处,冷数据区为冷数据页的存储处。
一种数据处理方法,包括:
接收用户对数据页的操作请求;
根据所述操作请求判断数据页的写计数是否大于预置的阀值;
若是,则确定数据页热属性,采用热处理方式处理数据页;
若否,则确定数据页为冷属性,采用冷处理方式处理数据页;
当所述操作请求为删除请求时,所述采用热处理方式处理数据页包括:从闪存的单层单元芯片读取所述数据页对应的压缩页,从压缩页中删除所述数据页对应的数据,将压缩页中剩下的数据存储在内存的热存储区,将热数据区的数据页分组写入闪存的单层单元芯片;
所述采用冷处理方式处理数据页包括:从闪存的多层单元芯片读取所述数据页对应的压缩页,从压缩页中删除所述数据页对应的数据,并将压缩页中剩下的数据存储在内存的冷存储区,将冷数据区的数据页分组写入闪存的多层单元芯片;
其中,所述热数据区为热数据页的存储处,冷数据区为冷数据页的存储处。
一种数据处理方法,包括:
接收用户对数据页的操作请求;
根据所述操作请求判断数据页的写计数是否大于预置的阀值;
若是,则确定数据页热属性,采用热处理方式处理数据页;
若否,则确定数据页为冷属性,采用冷处理方式处理数据页;
当所述操作请求为更新请求时,所述采用热处理方式处理数据页包括:从闪存的单层单元芯片读取所述数据页对应的压缩页并解压,接收到用户写入的更新后的数据页后,采用热数据页压缩算法对所述更新后的数据页进行压缩,将压缩后的数据页存储在内存的热数据区,将热数据区的数据页分组写入闪存的单层单元芯片;
所述采用冷处理方式处理数据页包括:从闪存的多层单元芯片读取所述数据页对应的压缩页并解压,接收到用户写入的更新后的数据页后,采用冷数据页压缩算法对所述更新后的数据页进行压缩,将压缩后的数据页存储在内存的冷数据区,将冷数据区的数据页分组写入闪存的多层单元芯片;
其中,所述热数据页压缩算法为采用压缩比较低的算法,所述冷数据页压缩算法为采用压缩比较高的算法;所述热数据区为热数据页的存储处,冷数据区为冷数据页的存储处。
一种数据处理装置,包括接收单元、属性确定单元、热处理单元和冷处理单元;其中,所述热处理单元至少包括热读取子单元;所述冷处理单元至少包括冷读取子单元;
接收单元,用于接收系统对数据页的操作请求;
属性确定单元,用于根据所述接收单元接收到的操作请求判断数据页的写计数是否大于预置的阀值,若是,则确定数据页为热属性,若否,则确定数据页为冷属性;
热读取子单元,用于当接收单元接收到的操作请求为读取请求,且属性确定单元确定数据页为热属性时,从闪存的单层单元芯片中读取所述数据页对应的压缩页并解压;
冷读取子单元,用于当接收单元接收到的操作请求为读取请求,且属性确定单元确定数据页为冷属性时,从闪存的多层单元芯片中读取所述数据页对应的压缩页并解压。
一种数据处理装置,包括接收单元、属性确定单元、热处理单元和冷处理单元;其中,所述热处理单元至少包括热写入子单元;所述冷处理单元至少包括冷写入子单元;
接收单元,用于接收系统对数据页的操作请求;
属性确定单元,用于根据所述接收单元接收到的操作请求判断数据页的写计数是否大于预置的阀值,若是,则确定数据页为热属性,若否,则确定数据页为冷属性;
热写入子单元,用于当接收单元接收到的操作请求为写入请求,且属性确定单元确定数据页为热属性时,采用热数据页压缩算法对所述数据页进行压缩,将压缩后的数据页存储在内存的热数据区,将热数据区的数据页分组写入闪存的单层单元芯片;
冷写入子单元,用于当接收单元接收到的操作请求为写入请求,且属性确定单元确定数据页为冷属性时,采用冷数据页压缩算法对所述数据页进行压缩,将压缩后的数据页存储在内存的冷数据区,将冷数据区的数据页分组写入闪存的多层单元芯片;
其中,所述热数据页压缩算法为采用压缩比较低的算法,所述冷数据页压缩算法为采用压缩比较高的算法;所述热数据区为热数据页的存储处,冷数据区为冷数据页的存储处。
一种数据处理装置,包括接收单元、属性确定单元、热处理单元和冷处理单元;其中,所述热处理单元至少包括热删除子单元;所述冷处理单元至少包括冷删除子单元;
接收单元,用于接收系统对数据页的操作请求;
属性确定单元,用于根据所述接收单元接收到的操作请求判断数据页的写计数是否大于预置的阀值,若是,则确定数据页为热属性,若否,则确定数据页为冷属性;
热删除子单元,用于当接收单元接收到的操作请求为删除请求,且属性确定单元确定数据页为热属性时,从闪存的单层单元芯片读取所述数据页对应的压缩页,从压缩页中删除所述数据页对应的数据,将压缩页中剩下的数据存储在内存的热存储区,将热数据区的数据页分组写入闪存的单层单元芯片;
冷删除子单元,用于当接收单元接收到的操作请求为删除请求,且属性确定单元确定数据页为冷属性时,从闪存的多层单元芯片读取所述数据页对应的压缩页,从压缩页中删除所述数据页对应的数据,并将压缩页中剩下的数据存储在内存的冷存储区,将冷数据区的数据页分组写入闪存的多层单元芯片;
其中,所述热数据区为热数据页的存储处,冷数据区为冷数据页的存储处。
一种数据处理装置,包括接收单元、属性确定单元、热处理单元和冷处理单元;其中,所述热处理单元至少包括热更新子单元;所述冷处理单元至少包括冷更新子单元;
接收单元,用于接收系统对数据页的操作请求;
属性确定单元,用于根据所述接收单元接收到的操作请求判断数据页的写计数是否大于预置的阀值,若是,则确定数据页为热属性,若否,则确定数据页为冷属性;
热更新子单元,用于当接收单元接收到的操作请求为更新请求,且属性确定单元确定数据页为热属性时,从闪存的单层单元芯片读取所述数据页对应的压缩页并解压,接收到用户写入的更新后的数据页后,采用热数据页压缩算法对所述更新后的数据页进行压缩,将压缩后的数据页存储在内存的热数据区,将热数据区的数据页分组写入闪存的单层单元芯片;
冷更新子单元,用于当接收单元接收到的操作请求为更新请求,且属性确定单元确定数据页为冷属性时,从闪存的多层单元芯片读取所述数据页对应的压缩页并解压,接收到用户写入的更新后的数据页后,采用冷数据页压缩算法对所述更新后的数据页进行压缩,将压缩后的数据页存储在内存的冷数据区,将冷数据区的数据页分组写入闪存的多层单元芯片;
其中,所述热数据页压缩算法为采用压缩比较低的算法,所述冷数据页压缩算法为采用压缩比较高的算法;所述热数据区为热数据页的存储处,冷数据区为冷数据页的存储处。
一种闪存,包括:
热存储单元,用于存储数据处理装置采用热处理方式处理后由内存分组写入的数据页;其中,当操作请求为读取请求时,采用热处理方式处理数据页包括:从闪存的热存储单元中读取数据页对应的压缩页并解压;
冷存储单元,用于存储数据处理装置采用冷处理方式处理后由内存分组写入的数据页;当操作请求为读取请求时,采用冷处理方式处理数据页包括:从闪存的冷存储单元中读取数据页对应的压缩页并解压。
一种闪存,包括:
热存储单元,用于存储数据处理装置采用热处理方式处理后由内存分组写入的数据页;其中,当所述操作请求为写入请求时,所述采用热处理方式处理数据页包括:采用热数据页压缩算法对所述数据页进行压缩,将压缩后的数据页存储在内存的热数据区,将热数据区的数据页分组写入闪存的热存储单元;
冷存储单元,用于存储数据处理装置采用冷处理方式处理后由内存分组写入的数据页;其中,当所述操作请求为写入请求时,采用冷处理方式处理数据页包括:采用冷数据页压缩算法对所述数据页进行压缩,将压缩后的数据页存储在内存的冷数据区,将冷数据区的数据页分组写入闪存的冷存储单元;
其中,所述热数据页压缩算法为采用压缩比较低的算法,所述冷数据页压缩算法为采用压缩比较高的算法;所述热数据区为热数据页的存储处,冷数据区为冷数据页的存储处。
一种闪存,包括:
热存储单元,用于存储数据处理装置采用热处理方式处理后由内存分组写入的数据页;其中,当所述操作请求为删除请求时,所述采用热处理方式处理数据页包括:从闪存的热存储单元读取数据页对应的压缩页,从压缩页中删除所述数据页对应的数据,将压缩页中剩下的数据存储在内存的热存储区,将热数据区的数据页分组写入闪存的热存储单元;
冷存储单元,用于存储数据处理装置采用冷处理方式处理后由内存分组写入的数据页;其中,当所述操作请求为删除请求时,采用冷处理方式处理数据页包括:从闪存的冷存储单元读取数据页对应的压缩页,从压缩页中删除所述数据页对应的数据,并将压缩页中剩下的数据存储在内存的冷存储区,将冷数据区的数据页分组写入闪存的冷存储单元;
其中,所述热数据区为热数据页的存储处,冷数据区为冷数据页的存储处。一种闪存,包括:
热存储单元,用于存储数据处理装置采用热处理方式处理后由内存分组写入的数据页;其中,当所述操作请求为更新请求时,所述采用热处理方式处理数据页包括:从闪存的热存储单元读取数据页对应的压缩页并解压,接收到用户写入的更新后的数据页后,采用热数据页压缩算法对所述更新后的数据页进行压缩,将压缩后的数据页存储在内存的热数据区,将热数据区的数据页分组写入闪存的热存储单元;
冷存储单元,用于存储数据处理装置采用冷处理方式处理后由内存分组写入的数据页;其中,当所述操作请求为更新请求时,采用冷处理方式处理数据页包括:从闪存的冷存储单元读取数据页对应的压缩页并解压,接收到用户写入的更新后的数据页后,采用冷数据页压缩算法对所述更新后的数据页进行压缩,将压缩后的数据页存储在内存的冷数据区,将冷数据区的数据页分组写入闪存的冷存储单元;
其中,所述热数据页压缩算法为采用压缩比较低的算法,所述冷数据页压缩算法为采用压缩比较高的算法;所述热数据区为热数据页的存储处,冷数据区为冷数据页的存储处。
一种闪存存储系统,包括:
数据处理装置,用于接收用户对数据页的操作请求,根据所述操作请求判断数据页的写计数是否大于预置的阀值,若是,则确定数据页为热属性,采用热处理方式处理数据页,若否,则确定数据页为冷属性,采用冷处理方式处理数据页;当所述操作请求为读取请求时,所述采用热处理方式处理数据页包括:从闪存的单层单元芯片中读取所述数据页对应的压缩页并解压;所述采用冷处理方式处理数据页包括:从闪存的多层单元芯片中读取所述数据页对应的压缩页并解压;当所述操作请求为写入请求时,若确定数据页为热属性,则采用热数据页压缩算法对所述数据页进行压缩,将压缩后的数据页存储在内存的热数据区,将热数据区的数据页分组写入闪存的单层单元芯片;若确定数据页为冷属性,则采用冷数据页压缩算法对所述数据页进行压缩,将压缩后的数据页存储在内存的冷数据区,将冷数据区的数据页分组写入闪存的多层单元芯片;当所述操作请求为删除请求时,若确定数据页为热属性,则从闪存的单层单元芯片读取所述数据页对应的压缩页,从压缩页中删除所述数据页对应的数据,将压缩页中剩下的数据存储在内存的热存储区,将热数据区的数据页分组写入闪存的单层单元芯片;若确定数据页为冷属性,则从闪存的多层单元芯片读取所述数据页对应的压缩页,从压缩页中删除所述数据页对应的数据,并将压缩页中剩下的数据存储在内存的冷存储区,将冷数据区的数据页分组写入闪存的多层单元芯片;当所述操作请求为更新请求时,若确定数据页为热属性,则从闪存的单层单元芯片读取所述数据页对应的压缩页并解压,接收到用户写入的更新后的数据页后,采用热数据页压缩算法对所述更新后的数据页进行压缩,将压缩后的数据页存储在内存的热数据区,将热数据区的数据页分组写入闪存的单层单元芯片;若确定数据页为冷属性,则从闪存的多层单元芯片读取所述数据页对应的压缩页并解压,接收到用户写入的更新后的数据页后,采用冷数据页压缩算法对所述更新后的数据页进行压缩,将压缩后的数据页存储在内存的冷数据区,将冷数据区的数据页分组写入闪存的多层单元芯片;其中,所述热数据页压缩算法为采用压缩比较低的算法,所述冷数据页压缩算法为采用压缩比较高的算法;所述热数据区为热数据页的存储处,冷数据区为冷数据页的存储处;
闪存,用于存储数据处理装置采用热处理方式处理后由内存分组写入的数据页,以及存储数据处理装置采用冷处理方式处理后由内存分组写入的数据页。
本发明实施例通过确定数据页的冷热属性来衡量用户对数据页的写频率,对不同冷热属性的数据页采用不同的处理方式,例如对用户经常写的数据页采用写性能较高的热处理方式进行处理,对用户较少写的数据页采用空间利用率较高的冷处理方式进行处理,从而可以实现在整体上保证闪存具有较高的空间利用率的同时,又能具有较高的数据访问性能。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种数据处理方法、装置和闪存存储系统。以下分别进行详细说明。
实施例一、
本实施例将从数据处理装置的角度进行描述。该数据处理装置可以在闪存存储系统启动时直接从闪存中调用并安装在闪存存储系统中,也可以通过其它途径进行下载,然后再安装在闪存存储系统中。该数据处理装置具体可以为闪存驱动程序模块。
一种数据处理方法,在接收到用户对数据页的操作请求后,根据该操作请求确定数据页的冷热属性,若数据页为热属性,则采用热处理方式处理数据页;若数据页为冷属性,则采用冷处理方式处理数据页。其中,数据页的冷热属性指示了用户对数据页的写频率,热属性表示写频率较高,冷属性表示写频率较低,为了描述方便,以下实施例中将把热属性的数据页称为热数据页,冷属性的数据页称为冷数据页。如图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)、磁盘或光盘等。
以上对本发明实施例所提供的数据处理方法、装置和闪存存储系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。