一种用于固态硬盘的存储方法及其系统技术领域
本发明涉及闪存存储技术领域,特别是涉及一种用于固态硬盘的存储方法及其系
统。
背景技术
随着互联网、云计算、物联网等技术的发展,固态硬盘作为新的一代存储,广泛被
应用。
TLC nand flash中包括有多个物理页,每个物理页可以存放至少一个用户的数据
页帧,但是当数据页帧较大使得当前对应的物理页不够再容纳一个数据页帧(例如一个物
理页只能容纳3个数据页帧,而剩余部分不够再容纳一个数据页帧)时,该物理页内剩余的
部分存储空间即会被填充上无效数据而浪费掉,对物理页空间的利用效率低。
因此,如何提供一种利用效率高的用于固态硬盘的存储方法及其系统是本领域技
术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种用于固态硬盘的存储方法及其系统,能够避免对物理页
内存储空间的浪费,提高物理页空间的利用效率。
为解决上述技术问题,本发明提供了一种用于固态硬盘的存储方法,所述固态硬
盘内包括多个物理页,所述方法包括:
接收用户发送的数据页帧;
检测当前对应的物理页的剩余存储空间大小;
判断所述剩余存储空间是否大于所述数据页帧的大小;
若是,将所述数据页帧存入所述物理页的所述剩余存储空间内;
否则,将所述数据页帧标记为跨页页帧,从所述跨页页帧内选取与所述剩余存储
空间相同大小的部分数据存储至所述物理页中,将所述跨页页帧内剩余的部分数据存储至
下一个物理页中。
优选地,每个所述物理页内包括整数个ECC块,所述ECC块包括校验位以及被保护
数据空间,所述剩余存储空间具体为所述物理页中各个所述ECC块的剩余被保护数据空间;
所述将所述数据页帧存入所述物理页的所述剩余存储空间内的过程具体为:
将所述数据页帧存入所述剩余被保护数据空间内;
所述从所述跨页页帧内选取与所述剩余存储空间相同大小的部分数据存储至所
述物理页中,将所述跨页页帧内剩余的部分数据存储至下一个物理页中的过程具体为:
从所述跨页页帧内选取与所述剩余被保护数据空间相同大小的部分数据存储至
所述物理页中,将所述跨页页帧内剩余的部分数据依次存储至下一个物理页中的ECC块内
的被保护数据空间内。
优选地,所述ECC块还包括随机化种子以及循环冗余校验码。
为解决上述技术问题,本发明还提供了一种用于固态硬盘的存储系统,所述固态
硬盘内包括多个物理页,所述系统包括:
接收模块,用于接收用户发送的数据页帧;
检测判断模块,用于检测当前对应的物理页的剩余存储空间大小;判断所述剩余
存储空间是否大于所述数据页帧的大小;若是,触发第一写入模块;否则,触发第二写入模
块;
所述第一写入模块,用于将所述数据页帧存入所述物理页的所述剩余存储空间
内;
所述第二写入模块,用于将所述数据页帧标记为跨页页帧,从所述跨页页帧内选
取与所述剩余存储空间相同大小的部分数据存储至所述物理页中,将所述跨页页帧内剩余
的部分数据存储至下一个物理页中。
优选地,每个所述物理页内包括整数个ECC块,所述ECC块包括校验位以及被保护
数据空间,所述剩余存储空间具体为所述物理页中各个所述ECC块的剩余被保护数据空间;
所述第一写入模块具体用于将所述数据页帧存入所述剩余被保护数据空间内;
所述第二写入模块具体用于将所述数据页帧标记为跨页页帧,从所述跨页页帧内
选取与所述剩余被保护数据空间相同大小的部分数据存储至所述物理页中,将所述跨页页
帧内剩余的部分数据依次存储至下一个物理页中的ECC块内的被保护数据空间内。
优选地,每个所述物理页内包括2-5个ECC块,每个所述ECC块内的被保护数据空间
大小为50字节。
本发明提供了一种用于固态硬盘的存储方法及其系统,当判断当前对应的物理页
内的剩余存储空间不足够存储一个数据页帧时,将该数据页帧标记为跨页页帧,并从跨页
页帧内选取与剩余存储空间相同大小的部分数据存储至当前对应的物理页中,然后将跨页
页帧内剩余的部分数据存储至下一个物理页中。可见,本发明在当前对应的物理页不够再
容纳一个数据页帧时,避免了对该物理页内剩余的存储空间的浪费,大大提高了对物理页
空间的利用效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所
需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施
例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获
得其他的附图。
图1为本发明提供的一种用于固态硬盘的存储方法的结构示意图;
图2为目前存储方式下一种具体实施例的示意图;
图3为本发明提供的一种具体实施例的示意图。
具体实施方式
本发明的核心是提供一种用于固态硬盘的存储方法及其系统,能够避免对物理页
内存储空间的浪费,提高物理页空间的利用效率。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例
中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员
在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种用于固态硬盘的存储方法,固态硬盘内包括多个物理页,参见
图1所示,图1为本发明提供的一种用于固态硬盘的存储方法的结构示意图;该方法包括:
步骤s101:接收用户发送的数据页帧;
步骤s102:检测当前对应的物理页的剩余存储空间大小;
步骤s103:判断剩余存储空间是否大于数据页帧的大小;若是,进入步骤s104;否
则,进入步骤s105;
步骤s104:将数据页帧存入物理页的剩余存储空间内;
步骤s105:将数据页帧标记为跨页页帧,从跨页页帧内选取与剩余存储空间相同
大小的部分数据存储至物理页中,将跨页页帧内剩余的部分数据存储至下一个物理页中。
可以理解的是,用户发送的数据页帧的大小一般是固定的,例如为60字节,同时固
态硬盘内每个物理页的大小也是固定的,例如可以为136字节,由于现有技术中数据页帧不
能跨页存储,即当一个物理页剩余的部分空间大小不够存储一个数据页帧时(例如小于60
字节),该部分空间即会被浪费,而本发明实现了数据页帧的跨页存储,在上述情况下,会将
数据页帧的一部分存储至当前物理页内剩余的部分空间内,然后将数据页帧的剩余部分存
储至下一物理页内,避免了物理页内出现大量无效数据空间的情况,提高了物理页的存储
使用效率。
其中,当对跨页页帧进行存储时,首先确定剩余存储空间的起止地址,然后从跨页
页帧内截取与剩余存储空间等长的一段数据(一般从跨页页帧的起始位置开始截取),并存
入剩余存储空间内,然后再从下一个物理页中获取与跨页页帧内剩余的部分数据长度相同
的存储空间的起止地址,并将剩余的部分数据存入该部分存储空间内。
进一步可知,每个物理页内包括整数个ECC(Error Checking and Correcting,错
误检查和纠正)块,ECC块包括校验位以及被保护数据空间,剩余存储空间具体为物理页中
各个ECC块的剩余被保护数据空间;
将数据页帧存入物理页的剩余存储空间内的过程具体为:
将数据页帧存入剩余被保护数据空间内;
从跨页页帧内选取与剩余存储空间相同大小的部分数据存储至物理页中,将跨页
页帧内剩余的部分数据存储至下一个物理页中的过程具体为:
从跨页页帧内选取与剩余被保护数据空间相同大小的部分数据存储至物理页中,
将跨页页帧内剩余的部分数据依次存储至下一个物理页中的ECC块内的被保护数据空间
内。
可以理解的是,由于工艺特性,TLC nand flash相较SLC以及MLC nand flash的擦
写寿命进一步降低,为了保证固态硬盘的使用寿命,必须使用LDPC(Low Density Parity
Check Code,低密度奇偶校验码)纠错码的机制进行纠错。这种情况下,TLC nand flash里
需要包括整数个ECC块,ECC块里除了用于存储数据页帧内数据的被保护数据空间,还要包
括用于进行纠错的校验位。此时,数据页帧在存入物理页内时,会依次存储于各个ECC块内
的被保护数据空间(即先存满一个ECC块,再把剩余的数据存储至下一个ECC块内)。
具体的,ECC块还包括随机化种子以及循环冗余校验码。这里的随机化种子为每个
ECC块的编码。每个ECC块中的校验位、循环冗余校验码以及被保护数据空间的长度本发明
均不作限定,可根据实际情况自行设定。
可以理解的是,由于被保护数据空间的大小一般与用户数据页帧的大小不等长,
故才导致当有新的数据页帧需要存储时,物理页内会有不足一个的剩余被保护数据空间存
在(例如剩余1/2个被保护数据空间)。
本发明提供了一种用于固态硬盘的存储方法,当判断当前对应的物理页内的剩余
存储空间不足够存储一个数据页帧时,将该数据页帧标记为跨页页帧,并从跨页页帧内选
取与剩余存储空间相同大小的部分数据存储至当前对应的物理页中,然后将跨页页帧内剩
余的部分数据存储至下一个物理页中。可见,本发明在当前对应的物理页不够再容纳一个
数据页帧时,避免了对该物理页内剩余的存储空间的浪费,大大提高了对物理页空间的利
用效率。
本发明还提供了一种用于固态硬盘的存储系统,固态硬盘内包括多个物理页,该
系统包括:
接收模块,用于接收用户发送的数据页帧;
检测判断模块,用于检测当前对应的物理页的剩余存储空间大小;判断剩余存储
空间是否大于数据页帧的大小;若是,触发第一写入模块;否则,触发第二写入模块;
第一写入模块,用于将数据页帧存入物理页的剩余存储空间内;
第二写入模块,用于将数据页帧标记为跨页页帧,从跨页页帧内选取与剩余存储
空间相同大小的部分数据存储至物理页中,将跨页页帧内剩余的部分数据存储至下一个物
理页中。
优选地,每个物理页内包括整数个ECC块,ECC块包括校验位以及被保护数据空间,
剩余存储空间具体为物理页中各个ECC块的剩余被保护数据空间;
第一写入模块具体用于将数据页帧存入剩余被保护数据空间内;
第二写入模块具体用于将数据页帧标记为跨页页帧,从跨页页帧内选取与剩余被
保护数据空间相同大小的部分数据存储至物理页中,将跨页页帧内剩余的部分数据依次存
储至下一个物理页中的ECC块内的被保护数据空间内。
具体的,每个物理页内包括2-5个ECC块,每个ECC块内的被保护数据空间大小为50
字节。当然,本发明不限定每个物理页中包括的ECC块的具体个数,也不限定个ECC块内的被
保护数据空间的大小,该被保护数据空间的大小可根据用户数据页帧的大小自行进行设
定。
本发明提供了一种用于固态硬盘的存储系统,当判断当前对应的物理页内的剩余
存储空间不足够存储一个数据页帧时,将该数据页帧标记为跨页页帧,并从跨页页帧内选
取与剩余存储空间相同大小的部分数据存储至当前对应的物理页中,然后将跨页页帧内剩
余的部分数据存储至下一个物理页中。可见,本发明在当前对应的物理页不够再容纳一个
数据页帧时,避免了对该物理页内剩余的存储空间的浪费,大大提高了对物理页空间的利
用效率。
需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一
个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之
间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在
涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些
要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设
备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除
在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。
对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的
一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明
将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
致的最宽的范围。