一种固态硬盘数据存储方法、装置、设备及介质与流程

文档序号:18162727发布日期:2019-07-13 09:24阅读:179来源:国知局
一种固态硬盘数据存储方法、装置、设备及介质与流程

本申请涉及存储技术领域,特别涉及一种固态硬盘数据存储方法、装置、设备及介质。



背景技术:

目前,ssd(solidstatedisk,固态硬盘)内部采用多通道结构,如图1所示。在ssd的应用中,数据都是以块为进行存储的(块的大小根据使用ssd的系统而不同,一般为4kb),在系统中每个数据块都有自己对应的逻辑地址,称为lba,系统对数据访问即通过lba地址进行访问。另一方面,nand的最小编程单元为page,每个page的大小根据不同的nand型号而不同,一般page大小为16kb或者32kb。因此为了适应系统对数据的访问,在ssd内部一般将nand的page分成多个sector,如图2所示,每个sector的大小与系统一个lba所对应的数据块的大小相同。每个sector在ssd中的地址称为pba。当系统需要访问某lba的数据时,ssd内部将该lba映射到pba以得到有效数据。

在目前现有的ssd中,数据是先在某个nand的一个page中依次存满之后,再切换到同一个nand的其他page或其他nand的page中进行存储。然而,这样会导致以下问题:以图2为例,当系统读取lba0至lba3对应的数据时,此时只有channel0被命中,也即此时整个系统只有channel0处于工作状态,可是如果此时需要整个系统的channel同时工作起来,则系统需要发送的lba请求中的lba数量高达m×n(m为4,n为通道数)个,此时系统的io深度(即iodepth)过大,导致ssd的读写性能较低。



技术实现要素:

有鉴于此,本申请的目的在于提供一种固态硬盘数据存储方法、装置、设备及介质,能够有效降低系统io深度,提升ssd的读写性能。其具体方案如下:

第一方面,本申请公开了一种固态硬盘数据存储方法,所述固态硬盘的ssd控制器设有n个通道,所述n个通道与n个page一一对应,每个page均设有m个lba,其中,n和m均为不小于2的整数,所述方法包括:

将所述ssd控制器对应的m*n个lba均匀划分为m组,并且,每组lba中的所有lba均匀分布于所述n个page中;

确定数据存储规则;其中,所述数据存储规则规定按照组顺序,将一组lba对应的数据存储完毕之后,再存储下一组lba对应的数据;

当获取到待存储数据,则基于所述数据存储规则对所述待存储数据进行相应的存储。

可选的,所述数据存储规则,还包括:

在对任一组lba对应的数据进行存储时,按照通道的编号顺序,对该组lba对应的数据进行依序存储。

可选的,所述基于所述数据存储规则对所述待存储数据进行相应的存储之前,还包括:

基于所述数据存储规则,确定出所述m*n个lba中每个lba各自对应的存储顺序;

根据每个lba各自对应的存储顺序,依序为每个lba进行相应的编号。

可选的,所述基于所述数据存储规则对所述待存储数据进行相应的存储,包括:

根据基于所述数据存储规则确定出的每个lba的编号的顺序,对所述待存储数据进行相应的存储。

第二方面,本申请公开了一种固态硬盘数据存储装置,所述固态硬盘的ssd控制器设有n个通道,所述n个通道与n个page一一对应,每个page均设有m个lba,其中,n和m均为不小于2的整数,所述装置包括:

lba划分模块,用于将所述ssd控制器对应的m*n个lba均匀划分为m组,并且,每组lba中的所有lba均匀分布于所述n个page中;

规则确定模块,用于确定数据存储规则;其中,所述数据存储规则规定按照组顺序,将一组lba对应的数据存储完毕之后,再存储下一组lba对应的数据;

数据存储模块,用于当获取到待存储数据,则基于所述数据存储规则对所述待存储数据进行相应的存储。

可选的,所述数据存储规则,还包括:

在对任一组lba对应的数据进行存储时,按照通道的编号顺序,对该组lba对应的数据进行依序存储。

可选的,所述装置还包括:

lba编号模块,用于基于所述数据存储规则,确定出所述m*n个lba中每个lba各自对应的存储顺序,然后根据每个lba各自对应的存储顺序,依序为每个lba进行相应的编号。

可选的,所述数据存储模块,具体用于当获取到待存储数据,则根据基于所述数据存储规则确定出的每个lba的编号的顺序,对所述待存储数据进行相应的存储。

第三方面,本申请公开了一种固态硬盘数据存储设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序,以实现前述公开的固态硬盘数据存储方法。

第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的固态硬盘数据存储方法。

可见,本申请公开了一种固态硬盘数据存储方案,其中,上述固态硬盘的ssd控制器设有n个通道,所述n个通道与n个page一一对应,每个page均设有m个lba;本申请先将上述m*n个lba均匀划分为m组,并且,每组lba中的所有lba均匀分布于所述n个page中,这样对应某组lba来说,在任一page中均存在该组lba中的一个lba;然后确定数据存储规则,该规则规定了按照组顺序,将一组lba对应的数据存储完毕之后,再存储下一组lba对应的数据,后续当获取到待存储数据时,便基于上述数据存储规则将待存储数据存储至相应lba对应的位置。通过上述方案,可以使得本申请每在一个通道对应的page中存储了一个lba所对应的数据之后,便切换到下一个通道对应的page中存储一个lba所对应的数据,以此类推,这种方案可以使得当需要整个系统的通道同时工作起来,则系统需要发送的lba请求中的lba数量仅为n个,远小于现有技术中的m×n个,可见本申请大幅降低了系统的io深度,有效提升了ssd的读写性能。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为ssd通道结构示意图;

图2为现有ssd内部结构划分示意图;

图3为本申请公开的一种固态硬盘数据存储方法流程图;

图4为本申请ssd内部结构划分示意图;

图5为本申请公开的一种固态硬盘数据存储装置结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例公开了一种固态硬盘数据存储方法,所述固态硬盘的ssd控制器设有n个通道,所述n个通道与n个page一一对应,每个page均设有m个lba,其中,n和m均为不小于2的整数,参见图3所示,所述方法包括:

步骤s11:将所述ssd控制器对应的m*n个lba均匀划分为m组,并且,每组lba中的所有lba均匀分布于所述n个page中。

可以理解的是,通过上述划分之后,所得到的每组lba中均包括n个lba,并且每组lba中的n个lba一对一地分布于所述n个page中,即每个page均包含该组lba中的一个lba。

步骤s12:确定数据存储规则;其中,所述数据存储规则规定按照组顺序,将一组lba对应的数据存储完毕之后,再存储下一组lba对应的数据。

也即,本申请实施例在上述数据存储规则中规定了以下内容:按照组的顺序,将某组lba对应的数据存储完毕之后,再对下一组lba对应的数据展开存储操作。例如,可以按照从小到大的组号顺序,先对第1组lba对应的数据进行存储,然后再对第2组lba对应的数据进行存储,以此类推。或者按照从大到小的组号顺序,先对第m组lba对应的数据进行存储,然后再对第m-1组lba对应的数据进行存储。以此类推。

进一步的,本实施例中的所述数据存储规则,还可以包括:在对任一组lba对应的数据进行存储时,按照通道的编号顺序,对该组lba对应的数据进行依序存储。

比如,可以按照通道的从小到大的编号顺序,先针对某组lba中与channel0对应的一个lba展开数据存储操作,然后针对该组lba中与channel1对应的一个lba展开数据存储操作,以此类推。或者,也可以按照通道的从大到小的编号顺序,先针对某组lba中与channeln对应的一个lba展开数据存储操作,然后针对该组lba中与channeln-1对应的一个lba展开数据存储操作,以此类推。

步骤s13:当获取到待存储数据,则基于所述数据存储规则对所述待存储数据进行相应的存储。

进一步的,所述基于所述数据存储规则对所述待存储数据进行相应的存储之前,还可以包括:

基于所述数据存储规则,确定出所述m*n个lba中每个lba各自对应的存储顺序;根据每个lba各自对应的存储顺序,依序为每个lba进行相应的编号。

也即,本申请可以基于所述数据存储规则,先确定出每个lba各自对应的存储顺序,然后根据各个lba对应的存储顺序依序为每个lba进行相应的编号,从而使得最终得到的各个lba的编号的大小顺序能够反映出基于所述数据存储规则确定的存储顺序,这样当根据lba编号的大小顺序来依序进行数据存储,即可使得整个存储过程符合所述数据存储规则的规定。

具体的,所述基于所述数据存储规则对所述待存储数据进行相应的存储,可以包括:根据基于所述数据存储规则确定出的每个lba的编号的顺序,对所述待存储数据进行相应的存储。如图4所示,可以按照lba的从小到大的编号顺序,先对lba0展开数据存储操作,然后对lba1展开数据存储操作,以此类推,当存储完与lban-1对应的数据之后,再跳转到lban展开新一组lba的数据存储操作。

可见,本申请实施例公开了一种固态硬盘数据存储方案,其中,上述固态硬盘的ssd控制器设有n个通道,所述n个通道与n个page一一对应,每个page均设有m个lba;本申请先将上述m*n个lba均匀划分为m组,并且,每组lba中的所有lba均匀分布于所述n个page中,这样对应某组lba来说,在任一page中均存在该组lba中的一个lba;然后确定数据存储规则,该规则规定了按照组顺序,将一组lba对应的数据存储完毕之后,再存储下一组lba对应的数据,后续当获取到待存储数据时,便基于上述数据存储规则将待存储数据存储至相应lba对应的位置。通过上述方案,可以使得本申请实施例每在一个通道对应的page中存储了一个lba所对应的数据之后,便切换到下一个通道对应的page中存储一个lba所对应的数据,以此类推,这种方案可以使得当需要整个系统的通道同时工作起来,则系统需要发送的lba请求中的lba数量仅为n个,远小于现有技术中的m×n个,可见本申请实施例大幅降低了系统的io深度,有效提升了ssd的读写性能。

参见图5所示,本申请实施例相应地公开了一种固态硬盘数据存储装置,所述固态硬盘的ssd控制器设有n个通道,所述n个通道与n个page一一对应,每个page均设有m个lba,其中,n和m均为不小于2的整数,所述装置包括:

lba划分模块11,用于将所述ssd控制器对应的m*n个lba均匀划分为m组,并且,每组lba中的所有lba均匀分布于所述n个page中;

规则确定模块12,用于确定数据存储规则;其中,所述数据存储规则规定按照组顺序,将一组lba对应的数据存储完毕之后,再存储下一组lba对应的数据;

数据存储模块13,用于当获取到待存储数据,则基于所述数据存储规则对所述待存储数据进行相应的存储。

进一步的,所述数据存储规则,还可以包括:在对任一组lba对应的数据进行存储时,按照通道的编号顺序,对该组lba对应的数据进行依序存储。

进一步的,所述固态硬盘数据存储装置,还可以包括:

lba编号模块,用于基于所述数据存储规则,确定出所述m*n个lba中每个lba各自对应的存储顺序,然后根据每个lba各自对应的存储顺序,依序为每个lba进行相应的编号。

相应的,所述数据存储模块,具体可以用于当获取到待存储数据,则根据基于所述数据存储规则确定出的每个lba的编号的顺序,对所述待存储数据进行相应的存储。

可见,本申请实施例公开了一种固态硬盘数据存储方案,其中,上述固态硬盘的ssd控制器设有n个通道,所述n个通道与n个page一一对应,每个page均设有m个lba;本申请先将上述m*n个lba均匀划分为m组,并且,每组lba中的所有lba均匀分布于所述n个page中,这样对应某组lba来说,在任一page中均存在该组lba中的一个lba;然后确定数据存储规则,该规则规定了按照组顺序,将一组lba对应的数据存储完毕之后,再存储下一组lba对应的数据,后续当获取到待存储数据时,便基于上述数据存储规则将待存储数据存储至相应lba对应的位置。通过上述方案,可以使得本申请实施例每在一个通道对应的page中存储了一个lba所对应的数据之后,便切换到下一个通道对应的page中存储一个lba所对应的数据,以此类推,这种方案可以使得当需要整个系统的通道同时工作起来,则系统需要发送的lba请求中的lba数量仅为n个,远小于现有技术中的m×n个,可见本申请实施例大幅降低了系统的io深度,有效提升了ssd的读写性能。

进一步的,本申请还公开了一种固态硬盘数据存储设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序,以实现前述实施例中公开的固态硬盘数据存储方法。

进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例中公开的固态硬盘数据存储方法。

其中,关于上述固态硬盘数据存储方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种固态硬盘数据存储方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1