TLC芯片固态硬盘的动态分区存储方法及装置、系统
技术领域
本发明涉及存储系统领域,特别涉及一种TLC芯片固态硬盘的动态分区存储方法及装置、系统。
背景技术
随着电子技术的不断发展,对存储介质的性能的要求也越来越高,闪存是新型非易失存储介质的代表,具有读写速度高、低功耗和抗震等优点,广泛应用于嵌入式设备、移动终端等消费类电子产品中。
目前,固态硬盘主要有SLC(Single-Level Cell)芯片固态硬盘、MLC(Multi-LevelCell)芯片固态硬盘和TLC(Trinary-Level Cell)芯片固态硬盘这三种类型,这三种固态硬盘相比,TLC芯片固态硬盘的存储机制是3bit/1cell,存储容量大,价格低廉但速度慢,这制约了TCL芯片固态硬盘在高性能电子产品中的应用,若能提高其读写速度,则可以大大降低应用成本。
发明内容
本发明旨在至少解决上述问题之一,提供一种TLC芯片固态硬盘的动态分区存储方法及装置、系统,提高TLC芯片固态硬盘的读写速度。
为实现上述目的,本发明有如下技术方案:
根据本发明的一个方面,一种TLC芯片固态硬盘的动态分区存储方法,包括:
当TLC芯片固态硬盘的剩余存储空间大于第一预设数值时,将数据流以第一方式存储到TLC芯片固态硬盘中,以形成快速操作数据区;
当TLC芯片固态硬盘的剩余存储空间小于第一预设数值时,以快速操作数据区所在的硬盘区域为第一区域,将第一区域中的热数据以第二方式移动存储到剩余存储空间的第二区域中,将第一区域中的冷数据以第三方式移动存储到剩余空间的第三区域中,其中,第一方式为每个存储单元存储一位数据的方式,第二方式为每个存储单元存储两位数据的方式,第三方式为每个存储单元中存储三位数据的方式。
可选地,还包括:
当第一区域的剩余存储空间大于第二预设数值时,将数据流以第一方式存储到第一区域中;
当第一区域的剩余存储空间小于第二预设数值时,判断第二区域是否具有足够的空间容纳第一区域中的热数据,若有,则将第一区域中的热数据以第二方式移动存储到第二区域中,若否,则将第一区域的至少部分空间增添到第二区域,并将第一区域中的热数据以第二方式移动存储到第二区域中;以及
判断第三区域是否具有足够的空间容纳第一区域中的冷数据,若有,则将第一区域中的冷数据以第三方式移动存储到第三区域中,若否,则将第一区域的至少部分空间增添到第三区域,并将第一区域中的冷数据以第三方式移动存储到第三区域中。
可选地,还包括:
根据TLC芯片固态硬盘中各区域内存储单元的剩余可擦写次数,重新划分TLC芯片固态硬盘的第一区域、第二区域和第三区域,并进行存储数据的替换。
可选地,第一区域中冷数据和热数据的确定方法包括:根据缓存中建立的冷热数据链表,确定第一区域中的冷数据和热数据。
可选地,第一区域中冷数据和热数据的确定方法包括:根据最近一定时间段内对第一区域中的数据的访问频率,确定第一区域中的冷数据和热数据。
根据本发明的另一方面,一种TLC芯片固态硬盘的动态分区存储装置,包括:
快速存储单元,用于当TLC芯片固态硬盘的剩余存储空间大于第一预设数值时,将数据流以第一方式存储到TLC芯片固态硬盘中,以形成快速操作数据区;
第二区域划分存储单元,用于当TLC芯片固态硬盘的剩余存储空间小于第一预设数值时,以快速操作数据区所在的硬盘区域为第一区域,将第一区域中的热数据以第二方式移动存储到剩余存储空间的第二区域中;
第三区域划分存储单元,用于当TLC芯片固态硬盘的剩余存储空间小于第一预设数值时,将第一区域中的冷数据以第三方式移动存储到剩余空间的第三区域中;
其中,第一方式为每个存储单元存储一位数据的方式,第二方式为每个存储单元存储两位数据的方式,第三方式为每个存储单元中存储三位数据的方式。
可选地,还包括:
第一区域存储单元,用于当第一区域的剩余存储空间大于第二预设数值时,将数据流以第一方式存储到第一区域中;
第二区域再存储单元,用于当第一区域的剩余存储空间小于第二预设数值时,判断第二区域是否具有足够的空间容纳第一区域中的热数据,若有,则将第一区域中的热数据以第二方式移动存储到第二区域中,若否,则将第一区域的至少部分空间增添到第二区域,并将第一区域中的热数据以第二方式移动存储到第二区域中;
第三区域再存储单元,用于当第一区域的剩余存储空间小于第二预设数值时,判断第三区域是否具有足够的空间容纳第一区域中的冷数据,若有,则将第一区域中的冷数据以第三方式移动存储到第三区域中,若否,则将第一区域的至少部分空间增添到第三区域,并将第一区域中的冷数据以第三方式移动存储到第三区域中。
可选地,还包括:
区域再划分单元,用于根据TLC芯片固态硬盘中各区域内存储单元的剩余可擦写次数,重新划分TLC芯片固态硬盘的第一区域、第二区域和第三区域,并进行存储数据的替换。
可选地,根据缓存中建立的冷热数据链表,确定第一区域中的冷数据和热数据。
可选地,根据最近一定时间段内对第一区域中的数据的访问频率,确定第一区域中的冷数据和热数据。
根据本发明的又一方面,一种TLC芯片固态硬盘的动态分区存储系统,包括上述任一的存储装置,以及TLC芯片固态硬盘。
可选地,所述的存储装置设置在主控单元中。
可选地,还包括与所述的存储装置连接的主控单元。
可选地,还包括缓存单元。
本发明实施例提供了一种TLC芯片固态硬盘的动态分区存储方法及其装置、系统,在硬盘空间大于预设数值时,按照一个存储单元存储一位数据的方式将数据流存储到硬盘中,而当硬盘空间小于预设数值时,硬盘空间分成三个区域,将已经存储到硬盘中的热、冷数据按照一个存储单元存储两位数据和一个存储单元存储三位数据的方式分别移动存储到另外的两个区域中。这样,在TLC芯片固态硬盘空间较大时,可以保证对硬盘的快速的读写,而在硬盘空间较小时,按照数据的使用频率将数据移动到不同的区域,原区域仍用于快速数据的存储,这样,在兼顾数据读写速度的同时保证硬盘的正常操作,大大提高了低成本、大容量的TLC硬盘的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本发明实施例的TLC芯片固态硬盘的动态分区存储方法的流程图;
图2示出了根据本发明实施例的TLC芯片固态硬盘的动态分区存储装置的结构示意图;
图3示出了根据本发明实施例一的TLC芯片固态硬盘的动态分区存储装置的系统示意图;
图4示出了根据本发明实施例二的TLC芯片固态硬盘的动态分区存储装置的系统示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
本发明实施例提供的存储方法,是基于TLC芯片固态硬盘的,传统的TLC芯片固态硬盘的一个存储单元可以存储3位数据,即3bit/1cell,在TLC芯片固态硬盘的物理结构中,一个存储单元为一个存储器件,存储器件通常为MOSFET(Metal-Oxide-SemiconductorField-Effect Transistor,MOSFET),在存储数据时,也就是写操作时,对存储器件的控制栅施加八种不同的电压,分别代表3位数据的八种状态,因此,可以在一个存储单元中存储3位数据,在读取时,施加对应的读取电压,来获取相应的数据,这种硬盘的存储容量大,价格低廉,但读写操作时,对电压的敏感性强,经常需要多次读取操作,读写速度慢,制约了其在高性能产品中的应用。为此,本发明提出了一种动态分区存储方法,以提高TLC芯片固态硬盘的读写速度。
参考图1所示,一种TLC芯片固态硬盘的动态分区存储方法,包括:
S101,当TLC芯片固态硬盘的剩余存储空间大于第一预设数值时,将数据流以第一方式存储到TLC芯片固态硬盘中,以形成快速操作数据区;
S102,当TLC芯片固态硬盘的剩余存储空间小于第一预设数值时,以快速操作数据区所在的硬盘区域为第一区域,将第一区域中的热数据以第二方式移动存储到剩余存储空间的第二区域中,将第一区域中的冷数据以第三方式移动存储到剩余空间的第三区域中,其中,第一方式为每个存储单元存储一位数据的方式,第二方式为每个存储单元存储两位数据的方式,第三方式为每个存储单元中存储三位数据的方式。
在本发明的实施例中,TLC芯片固态硬盘可以由一个或多个TLC闪存颗粒组成,例如为128G的TLC芯片固态硬盘,可以是一个128G的TLC闪存颗粒,也可以是由4个32G的TLC闪存颗粒组成,多个TLC闪存颗粒组成的硬盘在逻辑上为一个整体的硬盘存储空间。
为了更好地理解本发明实施例的技术方案,先对第一存储方式、第二存储方式和第三存储方式进行说明,这三种不同的存储方式是对这种TLC芯片固态硬盘做出的。对于TLC芯片固态硬盘由多个存储单元组成,每个存储单元为一个存储器件,TLC这种硬盘中的存储器件,在一个存储单元中存储三位数据,为了描述方便,本发明中记做第三方式,写操作即往存储单元中存储数据,在写操作时对控制栅施加八种写电压,对应3位数据的八种状态,从而实现一个存储单元存储三位数据,这是TLC硬盘的传统存储模式,相应地,在读操作时,施加相应的八种读取电压,实现3位数据的读取,由于对读写操作时电压的灵敏度要求高,经常需要多次读写才能成功,导致读写速度慢,在这三种方式中,第三方式是读写速度最慢的,最节省存储空间。
而针对TLC这种硬盘中的存储器件,在本发明实施例中,还提出了第一方式和第二方式的存储方式,第一方式为每个存储单元存储一位数据的方式,第二方式为每个存储单元存储两位数据的方式。对于第一方式,在写操作时对控制栅施加两种写电压,对应1位数据的两种状态,从而实现一个存储单元存储一位数据,相应地,在读操作时,施加相应的两种读取电压,实现1位数据的读取,在这三种方式中,第一方式是读写速度最快的,占用最多存储空间。对于第二方式,在写操作时对控制栅施加四种写电压,对应2位数据的四种状态,从而实现一个存储单元存储两位数据,相应地,在读操作时,施加相应的四种读取电压,实现2位数据的读取,在这三种方式中,第二方式是读写速度和占用存储空间都居中。
以下将结合具体的实施例对本发明的技术方案进行说明。在本发明的实施例中,首先,在TLC芯片固态硬盘的剩余存储空间大于第一预设数值时,将数据流以每个存储单元存储一位数据的方式存储到硬盘中。
此时,认为硬盘的存储空间相对较为富裕,可以将请求存储的数据流都以具有最快存储效率的第一存储方式放到硬盘中,这里将以第一方式存进的数据记做快速操作数据区。可以根据具体的需要来设定该第一预设数值,例如可以为总存储空间的一半或三分之二等,此时,可以使得固态硬盘的读写速度最大化。
而后,当TLC芯片固态硬盘的剩余存储空间小于第一预设数值时,以快速操作数据区所在的硬盘区域为第一区域,将第一区域中的热数据以第二方式存储到剩余存储空间的第二区域中,将第一区域中的冷数据以第三方式存储到剩余空间的第三区域中,其中,第一区域、第二区域和第三区域分别用于以第一方式、第二方式、第三方式存储数据流。
此时,随着第一方式存储的数据越来越多,对存储空间的消耗加大,剩余的存储空间越来越小,根据快速操作数据区中的冷、热数据的情况,将这些数据以另两种占用存储空间更小的方式存储在不同的区域中,原来的快速操作数据区所在的区域仍用作后续数据流的以第一方式进行存储,这样,在保证硬盘有足够空间正常读写的情况下,兼顾读写速度,尽可能地提高读写性能。
在硬盘的剩余存储空间小于第一预设数值时,硬盘被分成三个区域,第一区域为原快速操作数据区所在的硬盘区域,第一区域可以大于或等于快速操作数据区的区域,第二区域和第三区域是从剩余存储空间划分出来的,第一区域、第二区域、第三区域都是TLC芯片固态硬盘的逻辑区域,每一个区域可以是地址连续的一块区域或多块区域组成,这样,将硬盘分成了三个区域,分别用于以第一方式、第二方式、第三方式存储数据流。
具体的,将第一区域中的热数据以第二方式存储到第二区域中,将第一区域中的冷数据以第三方式存储到第三区域中,这里的热数据和冷数据是相对而言的,热数据是相对于冷数据具有更高的访问频率的数据。
可以通过不同的方式确定第一区域中的冷数据和热数据,在一些实施例中,可以根据缓存中建立的冷热数据链表,确定第一区域中的冷数据和热数据。在一些应用中,数据进入硬盘之前,会先在缓存中建立冷热数据链表,利用不同的算法和方法,可以建立不同的冷热数据链表,例如冷热数据链表中仅存在一个冷数据链表和一个热数据链表,也可以存在多个冷数据链表或多个热数据链表,在具体确定第一区域中的冷数据和热数据时,根据冷热链表,根据具体的需要,可以将热链表中的数据作为第一区域中的热数据,冷链表中的数据作为第一区域中的冷数据,当链表为多个时,也可以将部分热链表中的数据作为第一区域中的热数据,另一部分热链表和冷链表中的数据作为第一区域中的冷数据,可以理解的是,缓存中的冷热链表并没有包含第一区域中的所有数据,第一区域中未在缓存冷热链表中出现的数据为最近一段时间访问很少的数据,这些数据也认为是冷数据。
在另一些实施例中,可以直接判断冷热数据,根据最近一定时间段内对第一区域中的数据的访问频率,确定第一区域中的冷数据和热数据。具体可以通过统计一段时间对第一区域中的数据的访问次数,进而获得这段时间的访问频率,按照访问频率的排序或者访问频率的大小,确定一些数据为冷数据,另一些数据为热数据。
而后,将确定的热数据将以第二方式移动存储到第二区域中,将确定的冷数据以第三方式移动存储到第三区域中,也就是说数据在存储到第二区域之后,第一区域中的数据将被擦除。这样,第一区域将释放出来,仍然用于以第一方式存储后续请求存储的数据流,而访问次数少的数据以较为密集的方式存储,访问次数较多的数据以存储速度和存储密度居中的方式存储,兼顾存储和速度,提高了TLC芯片固态硬盘的速度和性价比。
由于数据量和存储空间的不同,在一些实施例中,上述分区之后就可以以较高的性能实现数据的存储,而在另一些实施例中,还需要进一步的分区存储,具体的,还包括以下继续分区的步骤:
当第一区域的剩余存储空间大于第二预设数值时,将数据流以第一方式存储到第一区域中;
当第一区域的剩余存储空间小于第二预设数值时,判断第二区域是否具有足够的空间容纳第一区域中的热数据,若有,则将第一区域中的热数据以第二方式移动存储到第二区域中,若否,则将第一区域的至少部分空间增添到第二区域,并将第一区域中的热数据以第二方式移动存储到第二区域中;以及
判断第三区域是否具有足够的空间容纳第一区域中的冷数据,若有,则将第一区域中的冷数据以第三方式移动存储到第三区域中,若否,则将第一区域的至少部分空间增添到第三区域,并将第一区域中的冷数据以第三方式移动存储到第三区域中。
在该继续分区的步骤中,在第一区域中继续以第一方式存储数据流,在第一区域存储有一定的数据量之后,判断第二区域和第三区域是否有足够的空间进行移动存储,若有,则将第一区域中的热数据以第二方式移动存储到第二区域中,将第一区域中的冷数据以第三方式移动存储到第三区域中;若没有,则进行存储空间的再划分,将第一区域的部分空间划分给第二区域和/或第三区域,再将第一区域中的热数据和冷数据移动存储到第二区域和第三区域中,这样,在充分保证硬盘正常读写的情况下,使得硬盘性能最大化。在该继续分区的步骤中,冷数据和热数据的确定的方法同上述实施例中的描述,这里不再赘述。根据具体的需要,该继续分区的步骤可以重复多次,在数据存储量不断增加时,不断的缩小第一区域所占的比重,充分保证硬盘正常读写。
对于上述的实施例,还可以进一步进行重新分区,重新分区的步骤包括:根据TLC芯片固态硬盘中各区域内存储单元的剩余可擦写次数,重新划分TLC芯片固态硬盘的第一区域、第二区域和第三区域,并进行存储数据的替换。
重新分区的步骤可以在任意时刻进行,优选在硬盘没有操作时进行,更优地,可以在第一区域中的数据向第二区域和第三区域移动存储之前进行。在重新划分区域时,主要考虑TLC芯片固态硬盘中各区域内存储单元的剩余可擦写次数,例如,在具体的实施例中,第一区域中的部分空间的剩余可擦写次数小于一定的预设值,第二区域中的部分空间的剩余可擦写次数小于另一预设值,而硬盘的其他空间存在剩余可擦写次数大于一预设值的空间,则将第一区域和第二区域划分到剩余可擦写次数多的空间上,根据划分空间的情况,再确定是否需要重新划分第三区域。在重新划分时,还要进行存储数据的替换,将原来各区域中的数据按照原有的存储方式移动存储到新划分的各区域中,这样,可以进一步保证硬盘数据的正常读写。
以上对本发明实施例的TLC芯片固态硬盘的动态分区存储方法进行了详细的说明,此外,本发明还提供了与上述方法相对应的TLC芯片固态硬盘的动态分区存储装置,用于实现上述方法,参考图2所示,该装置200包括:
快速存储单元210,用于当TLC芯片固态硬盘的剩余存储空间大于第一预设数值时,将数据流以第一方式存储到TLC芯片固态硬盘中,以形成快速操作数据区;
第二区域划分存储单元220,用于当TLC芯片固态硬盘的剩余存储空间小于第一预设数值时,以快速操作数据区所在的硬盘区域为第一区域,将第一区域中的热数据以第二方式移动存储到剩余存储空间的第二区域中;
第三区域划分存储单元230,用于当TLC芯片固态硬盘的剩余存储空间小于第一预设数值时,将第一区域中的冷数据以第三方式移动存储到剩余空间的第三区域中;
其中,第一方式为每个存储单元存储一位数据的方式,第二方式为每个存储单元存储两位数据的方式,第三方式为每个存储单元中存储三位数据的方式。
进一步地,还包括:
第一区域存储单元,用于当第一区域的剩余存储空间大于第二预设数值时,将数据流以第一方式存储到第一区域中;
第二区域再存储单元,用于当第一区域的剩余存储空间小于第二预设数值时,判断第二区域是否具有足够的空间容纳第一区域中的热数据,若有,则将第一区域中的热数据以第二方式移动存储到第二区域中,若否,则将第一区域的至少部分空间增添到第二区域,并将第一区域中的热数据以第二方式移动存储到第二区域中;
第三区域再存储单元,用于当第一区域的剩余存储空间小于第二预设数值时,判断第三区域是否具有足够的空间容纳第一区域中的冷数据,若有,则将第一区域中的冷数据以第三方式移动存储到第三区域中,若否,则将第一区域的至少部分空间增添到第三区域,并将第一区域中的冷数据以第三方式移动存储到第三区域中。
进一步地,还包括:
区域再划分单元,用于根据TLC芯片固态硬盘中各区域内存储单元的剩余可擦写次数,重新划分TLC芯片固态硬盘的第一区域、第二区域和第三区域,并进行存储数据的替换。
进一步地,根据缓存中建立的冷热数据链表,确定第一区域中的冷数据和热数据。
进一步地,根据最近一定时间段内对第一区域中的数据的访问频率,确定第一区域中的冷数据和热数据。
参考图3和图4所示,本发明还提供了包含上述任一存储装置200的TLC芯片固态硬盘的动态分区存储系统,该系统还包括TLC芯片固态硬盘300。
如图3所示,在一些实施例中,存储装置200设置在主控单元310中,主控单元310可以为一主控芯片,主要负责固态硬盘的存储管理并承担数据的中转,主控芯片例如可以为MCU((Microcontroller Unit,微控制单元)芯片,主控单元将来自I/O的数据流动态存储到TLC芯片固态硬盘300中,TLC芯片固态硬盘300可以包含一个或多个TLC缓存颗粒,在该实施例中,存储系统还可以进一步包括缓存单元320,缓存单元320用于常用文件的随机性读写以及碎片文件快速读写的缓冲,存储装置200将来自缓存单元的数据流动态存储到TLC芯片固态硬盘300中。
如图4所示,在另一些实施例中,该存储系统包括主控单元410以及与主控单元连接的所述的存储装置200,主控单元410可以为一主控芯片,主要负责固态硬盘的存储管理并承担数据的中转,主控芯片例如可以为MCU((Microcontroller Unit,微控制单元)芯片,所述的存储装置200可以为另一控制芯片,例如另一MCU芯片,主控单元410将来自I/O的数据流通过存储装置200动态存储到TLC芯片固态硬盘400中,在该实施例中,存储系统还可以进一步包括缓存单元420,存储装置根据主控单元410的指令将来自缓存单元420的数据流动态存储到TLC芯片固态硬盘400中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的模块或单元可以是或者也可以不是物理上分开的,作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明的优选实施方式,虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。