一种提高MLC闪存***性能的方法和装置
技术领域
本发明涉及电子设备技术领域,特别是涉及一种提高MLC闪存***性能的方法和一种提高MLC闪存***性能的装置。
背景技术
对于MLC(Multi-Level Cell,多层式存储单元)SSD(Solid State Drive,固态硬盘),1个基础存储单元能够表示两页中的对应数据位,即LSB(LeastSignificant Bit,最低有效位)页和MSB(Most Significant Bit,最高有效位)页中的对应数据位,LSB页和相关MSB页为配对页。其中,对LSB页编程后,在对相关MSB页进行编程时,如果掉电,则LSB页可能会崩溃。
相关技术中,SSD的管理软件大多采用在对MSB页进行编程之前,备份相关LSB页的方式来解决上述问题。
但是,上述相关技术还存在以下缺陷:备份相关LSB页的方式将导致更多的页被编程,浪费了存储空间,同时带来了大量的冗余写操作,对SSD产品性能和寿命都有损伤。
发明内容
鉴于上述问题,本发明实施例提供了克服上述问题的一种提高MLC闪存***性能的方法和一种提高MLC闪存***性能的装置。
为了解决上述问题,本发明实施例公开了一种提高MLC闪存***性能的方法,包括以下步骤:将接收的待写数据写入MLC闪存***时,确定所述待写数据的数据类型;当所述数据类型为非***数据时,控制所述MLC闪存***不对写入LSB页的数据进行备份。
具体地,所述确定所述待写数据的数据类型,包括:获取待写数据对应文件的幻数;根据所述幻数确定待写数据对应文件的文件格式,并当所述文件格式为预设文件格式时,确定所述待写数据的数据类型为非***数据。
具体地,所述预设文件格式为视频文件格式、音频文件格式、文本文件格式、图形文件格式或动画文件格式。
具体地,所述确定所述待写数据的数据类型,包括:判断当前写指令的初始写入地址是否与上一写指令的结束写入地址连续,且如果连续,确定所述待写数据的数据类型为非***数据。
具体地,所述控制所述MLC闪存***不对写入LSB页的数据进行备份,包括:设置备份标志位有效,以使所述MLC闪存***不对写入LSB页的数据进行备份。
为了解决上述问题,本发明实施例还公开了一种提高MLC闪存***性能的装置,包括:数据类型确定模块,用于将接收的待写数据写入MLC闪存***时,确定所述待写数据的数据类型;控制模块,用于当所述数据类型为非***数据时,控制所述MLC闪存***不对写入LSB页的数据进行备份。
具体地,所述数据类型确定模块包括:幻数获取单元,用于获取待写数据对应文件的幻数;第一数据类型确定单元,用于根据所述幻数确定待写数据对应文件的文件格式,并当所述文件格式为预设文件格式时,确定所述待写数据的数据类型为非***数据。
具体地,所述预设文件格式为视频文件格式、音频文件格式、文本文件格式、图形文件格式或动画文件格式。
具体地,所述数据类型确定模块包括:第二数据类型确定单元,用于判断当前写指令的初始写入地址是否与上一写指令的结束写入地址连续,且如果连续,确定所述待写数据的数据类型为非***数据。
具体地,所述控制模块包括:备份标志位设置单元,用于设置备份标志位有效,以使所述MLC闪存***不对写入LSB页的数据进行备份。
本发明实施例的提高MLC闪存***性能的方法和装置包括以下优点:在将接收的待写数据写入MLC闪存***时,先确定待写数据的数据类型,进而当数据类型为非***数据时,控制MLC闪存***不对写入LSB页的数据进行备份。从而实现在将非***数据写入MLC闪存***的过程中避免冗余备份LSB页,节约了存储空间,有效减少了冗余写动作,极大提高了MLC闪存***性能和寿命。
附图说明
图1是本发明的一种提高MLC闪存***性能的方法实施例的步骤流程图;
图2是本发明的另一种提高MLC闪存***性能的方法实施例的步骤流程图;
图3是本发明的再一种提高MLC闪存***性能的方法实施例的步骤流程图;
图4是本发明的一种提高MLC闪存***性能的装置实施例的结构框图;
图5是本发明的另一种提高MLC闪存***性能的装置实施例的结构框图;
图6是本发明的再一种提高MLC闪存***性能的装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
参照图1,示出了本发明的一种提高MLC闪存***性能的方法实施例的步骤流程图,具体可以包括如下步骤:
S1,将接收的待写数据写入MLC闪存***时,确定待写数据的数据类型。
其中,待写数据的数据类型可以为主机侧发送的***数据(包括元数据、操作***运行所需的***数据等)或非***数据即用户数据,MLC闪存***可以包括MLC NAND闪存(闪存的一种,内部采用非线性宏单元模式)。具体地,元数据主要是描述文件特性的***数据,元数据用于支持如指示存储位置、历史数据、资源查找、文件记录等功能。***数据长度较小,例如4K字节,因此,***数据可以写入MLC闪存***的一页中。其中,当掉电时,如果写入***数据的LSB页崩溃,则此时MLC闪存***也必定崩溃了。因此,当将***数据写入MLC闪存***时,需对写入LSB页的***数据进行备份,以避免出现上述崩溃问题。其中,用户数据可以为电影、歌曲和文档等。MLC闪存***可以为具有MLC闪存的SSD、SD(Secure DigitalMemory Card,安全数码卡)卡、Micro SD卡(一种极细小的SD卡)、MMC(Multi-Media Card,多媒体卡)卡和MLC闪存文件***等。
S2,当数据类型为非***数据时,控制MLC闪存***不对写入LSB页的数据进行备份。
步骤S2中,当数据类型为非***数据时,通常待写数据的总长度大于或等于预设长度阈值例如4K字节时。其中,预设长度阈值可以根据实际情况在生产MLC闪存***时进行设置或在使用MLC闪存***时进行设置。
需要说明的是,当MLC闪存***接收一个用户数据时,例如,一个1G字节的电影文件,如果在MLC闪存***向主机确认写操作完成之前,MLC闪存***掉电,此时,MLC闪存***可以忽略该未完成的写操作,同时由于此时主机也处于掉电状态,因此,主机也将忽略该未完成的写操作和写结果。因此,当待写数据为用户数据时,步骤S2可以控制MLC闪存***不对写入LSB页的数据进行备份,从而可以节约存储空间和有效减少冗余写动作,显著改善MLC闪存***在写入非***数据时的性能,极大提高MLC闪存***性能和寿命。
例如,在本发明的一个实施例中,MLC闪存***包括MLC NAND闪存,每个NAND闪存块包含256页,每一页为8K字节,1G字节的电影文件将存储在512个块中。相关技术中,MLC闪存***需要约256个块来备份这512个块中的LSB页。而本发明实施例的提高MLC闪存***性能的方法在这种情况下,无需对这512个块中的LSB页进行备份。也就是说,在这种情况下,本发明实施例的提高MLC闪存***性能的方法可以使得MLC闪存***占用性能大约为相关技术中MLC闪存***占用性能的2/3,因此,应用本发明实施例的提高MLC闪存***性能的方法的MLC闪存***在写入1G字节的电影文件时的性能显著改善。
根据本发明实施例一,在将接收的待写数据写入MLC闪存***时,先确定待写数据的数据类型,进而当数据类型为非***数据时,控制MLC闪存***不对写入LSB页的数据进行备份。从而实现在将非***数据写入MLC闪存***的过程中避免冗余备份LSB页,节约了存储空间,有效减少了冗余写动作,极大提高了MLC闪存***性能和寿命。
实施例二
参照图2,示出了本发明的另一种提高MLC闪存***性能的方法实施例的步骤流程图,具体可以包括如下步骤:
S21,将接收的待写数据写入MLC闪存***时,确定待写数据的数据类型;可以包括:
S211,获取待写数据对应文件的幻数。
其中,步骤S211可以采用已有技术获取待写数据对应文件的幻数。
S212,根据幻数确定待写数据对应文件的文件格式,并当文件格式为预设文件格式时,确定待写数据的数据类型为非***数据。
具体地,预设文件格式可以为视频文件格式、音频文件格式、文本文件格式、图形文件格式或动画文件格式等。其中,当文件格式为预设文件格式时,通常待写数据的总长度大于或等于预设长度阈值例如4K字节,即可以判断待写数据为非***数据。
S22,当数据类型为非***数据时,控制MLC闪存***不对写入LSB页的数据进行备份;可以包括:
S221,设置备份标志位有效,以使MLC闪存***不对写入LSB页的数据进行备份。
其中,当MLC闪存***检测备份标志位有效后,可以控制MLC闪存***中备份LSB页的代码不对写入LSB页的数据进行备份,从而实现节约存储空间和有效减少冗余写动作,并显著改善MLC闪存***在写入非***数据时的性能,极大提高MLC闪存***性能和寿命。
根据本发明实施例二,在将接收的待写数据写入MLC闪存***时,先获取待写数据对应文件的幻数,进而根据幻数确定待写数据对应文件的文件格式例如视频文件格式、音频文件格式、文本文件格式、图形文件格式或动画文件格式等,并当文件格式为预设文件格式时,确定待写数据的数据类型为非***数据,从而当数据类型为非***数据时,设置备份标志位有效,以使MLC闪存***不对写入LSB页的数据进行备份。从而实现在将非***数据写入MLC闪存***的过程中避免冗余备份LSB页,节约了存储空间,有效减少了冗余写动作,极大提高了MLC闪存***性能和寿命。
实施例三
参照图3,示出了本发明的再一种提高MLC闪存***性能的方法实施例的步骤流程图,具体可以包括如下步骤:
S31,将接收的待写数据写入MLC闪存***时,确定待写数据的数据类型;可以包括:
S311,判断当前写指令的初始写入地址是否与上一写指令的结束写入地址连续,且如果连续,确定待写数据的数据类型为非***数据。
其中,上一写指令的结束写入地址由上一写指令的初始写入地址和上一写指令的写入数据总长度决定。当连续时,即上一写指令的写入数据为步骤S31中待写数据的一部分,待写数据需要至少两条写指令才能完成写入MLC闪存***。
S32,当数据类型为非***数据时,控制MLC闪存***不对写入LSB页的数据进行备份;可以包括:
S321,设置备份标志位有效,以使MLC闪存***不对写入LSB页的数据进行备份。
根据本发明实施例三,在将接收的待写数据写入MLC闪存***时,先判断当前写指令的初始写入地址是否与上一写指令的结束写入地址连续,且如果连续,确定待写数据的数据类型为非***数据,从而当数据类型为非***数据时设置备份标志位有效,以使MLC闪存***不对写入LSB页的数据进行备份。从而实现在将非***数据写入MLC闪存***的过程中避免冗余备份LSB页,节约了存储空间,有效减少了冗余写动作,极大提高了MLC闪存***性能和寿命。
需要说明的是,本发明实施例的提高MLC闪存***性能的方法中,确定待写数据的数据类型的方式包括但不仅限于实施例二和实施例三中的方式,任何能够确定待写数据的数据类型的方式均在本发明的保护范围内。
需要进一步说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例四
参照图4,示出了本发明的一种提高MLC闪存***性能的装置实施例的结构框图,具体可以包括如下模块:
数据类型确定模块1,用于将接收的待写数据写入MLC闪存***时,确定待写数据的数据类型。
其中,待写数据的数据类型可以为主机侧发送的***数据(包括元数据、操作***运行所需的***数据等)或非***数据即用户数据,MLC闪存***可以包括MLC NAND闪存。具体地,元数据主要是描述文件特性的***数据,元数据用于支持如指示存储位置、历史数据、资源查找、文件记录等功能。***数据长度较小,例如4K字节,因此,***数据可以写入MLC闪存***的一页中。其中,当掉电时,如果写入***数据的LSB页崩溃,则此时MLC闪存***也必定崩溃了。因此,当将***数据写入MLC闪存***时,需对写入LSB页的***数据进行备份,以避免出现上述崩溃问题。其中,用户数据可以为电影、歌曲和文档等。MLC闪存***可以为具有MLC闪存的SSD、SD卡、Micro SD卡、MMC卡和MLC闪存文件***等。
控制模块2,用于当数据类型为非***数据时,控制MLC闪存***不对写入LSB页的数据进行备份。
控制模块2中,当数据类型为非***数据时,通常待写数据的总长度大于或等于预设长度阈值例如4K字节时。其中,预设长度阈值可以根据实际情况在生产MLC闪存***时进行设置或在使用MLC闪存***时进行设置。
需要说明的是,当MLC闪存***接收一个用户数据时,例如,一个1G字节的电影文件,如果在MLC闪存***向主机确认写操作完成之前,MLC闪存***掉电,此时,MLC闪存***可以忽略该未完成的写操作,同时由于此时主机也处于掉电状态,因此,主机也将忽略该未完成的写操作和写结果。因此,当待写数据为用户数据时,控制模块2可以控制MLC闪存***不对写入LSB页的数据进行备份,从而可以节约存储空间和有效减少冗余写动作,显著改善MLC闪存***在写入非***数据时的性能,极大提高MLC闪存***性能和寿命。
根据本发明实施例四,在数据类型确定模块将接收的待写数据写入MLC闪存***时,先确定待写数据的数据类型,进而当数据类型为非***数据时,控制模块控制MLC闪存***不对写入LSB页的数据进行备份。从而实现在将非***数据写入MLC闪存***的过程中避免冗余备份LSB页,节约了存储空间,有效减少了冗余写动作,极大提高了MLC闪存***性能和寿命。
实施例五
参照图5,示出了本发明的另一种提高MLC闪存***性能的装置实施例的结构框图,具体可以包括如下模块:
数据类型确定模块51,用于将接收的待写数据写入MLC闪存***时,确定待写数据的数据类型;可以包括:
幻数获取单元511,用于获取待写数据对应文件的幻数。
其中,幻数获取单元511可以采用已有技术获取待写数据对应文件的幻数。
第一数据类型确定单元512,用于根据幻数确定待写数据对应文件的文件格式,并当文件格式为预设文件格式时,确定待写数据的数据类型为非***数据。
具体地,预设文件格式可以为视频文件格式、音频文件格式、文本文件格式、图形文件格式或动画文件格式等。其中,当文件格式为预设文件格式时,通常待写数据的总长度大于或等于预设长度阈值例如4K字节,即可以判断待写数据为非***数据。
控制模块52,用于当数据类型为非***数据时,控制MLC闪存***不对写入LSB页的数据进行备份;可以包括:
备份标志位设置单元521,用于设置备份标志位有效,以使MLC闪存***不对写入LSB页的数据进行备份。
其中,当MLC闪存***检测备份标志位有效后,可以控制MLC闪存***中备份LSB页的代码不对写入LSB页的数据进行备份,从而实现节约存储空间和有效减少冗余写动作,并显著改善MLC闪存***在写入非***数据时的性能,极大提高MLC闪存***性能和寿命。
根据本发明实施例五,在将接收的待写数据写入MLC闪存***时,幻数获取单元先获取待写数据对应文件的幻数,进而第一数据类型确定单元根据幻数确定待写数据对应文件的文件格式例如视频文件格式、音频文件格式、文本文件格式、图形文件格式或动画文件格式等,并当文件格式为预设文件格式时,确定待写数据的数据类型为非***数据,从而当数据类型为非***数据时,备份标志位设置单元设置备份标志位有效,以使MLC闪存***不对写入LSB页的数据进行备份。从而实现在将非***数据写入MLC闪存***的过程中避免冗余备份LSB页,节约了存储空间,有效减少了冗余写动作,极大提高了MLC闪存***性能和寿命。
实施例六
参照图6,示出了本发明的再一种提高MLC闪存***性能的装置实施例的结构框图,具体可以包括如下模块:
数据类型确定模块61,用于将接收的待写数据写入MLC闪存***时,确定待写数据的数据类型;可以包括:
第二数据类型确定单元611,用于判断当前写指令的初始写入地址是否与上一写指令的结束写入地址连续,且如果连续,确定待写数据的数据类型为非***数据。
其中,上一写指令的结束写入地址由上一写指令的初始写入地址和上一写指令的写入数据总长度决定。当连续时,即上一写指令的写入数据为数据类型确定模块61中待写数据的一部分,待写数据需要至少两条写指令才能完成写入MLC闪存***。
控制模块62,用于当数据类型为非***数据时,控制MLC闪存***不对写入LSB页的数据进行备份;可以包括:
备份标志位设置单元621,用于设置备份标志位有效,以使MLC闪存***不对写入LSB页的数据进行备份。
根据本发明实施例六,在将接收的待写数据写入MLC闪存***时,第二数据类型确定单元先判断当前写指令的初始写入地址是否与上一写指令的结束写入地址连续,且如果连续,确定待写数据的数据类型为非***数据,从而当数据类型为非***数据时,备份标志位设置单元设置备份标志位有效,以使MLC闪存***不对写入LSB页的数据进行备份。从而实现在将非***数据写入MLC闪存***的过程中避免冗余备份LSB页,节约了存储空间,有效减少了冗余写动作,极大提高了MLC闪存***性能和寿命。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种提高MLC闪存***性能的方法和一种提高MLC闪存***性能的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。