一种用于提高SSD写入效率的组块方法和装置与流程

文档序号:15312169发布日期:2018-08-31 22:06阅读:197来源:国知局

本发明涉及计算机技术领域,尤其涉及一种用于提高ssd写入效率的组块方法和装置。



背景技术:

nandflush时ssd的核心硬件,其质量决定了firmware的设计方案。相较于2dtlc型nandflush,3dnandflush颗粒稳定性能较差,易产生较多的出厂坏块。当各bank中坏块数目相差较大时,会对写入性能及op大小产生影响。为了保证ssd有较高的写入性能,要求的写入时各个bank都有可写块,这就要求vblock数目较少的bank从vblock数目较多的bank借块。

但本申请发明人在实现本申请实施例中发明技术方案的过程中,发现上述技术至少存在如下技术问题:

现有技术中的每个bank拿出一个vblock组成mblk,当某一个mblk中有多个bank是从其他bank借的vblock时,写数据的时候不能充分发挥多通道并行写的性能,影响写入速度。



技术实现要素:

本发明实施例提供了一种用于提高ssd写入效率的组块方法和装置,解决现有技术中每个bank拿出一个vblock组成mblk,当某一个mblk中有多个bank是从其他bank借的vblock时,写数据的时候不能充分发挥多通道并行写的性能,影响写入速度的技术问题,实现了能够充分利用各个bank上的好块、提高op,又能最大程度减小组合块对写入性能的影响,保证写入速度的技术效果。

鉴于上述问题,提出了本申请实施例以便提供一种用于提高ssd写入效率的组块方法和装置。

第一方面,本发明提供了一种用于提高ssd写入效率的组块方法,所述方法包括:

获得ssd硬盘中各个bank的坏块分布情况;根据所述坏块分布情况获得各个bank的vblock数据情况;根据所述各个bank的vblock数据情况,将vblock数据较多的bank借入vblock数据较少的bank中,其中,vblock数据较少的bank从一个vblock数据较多的bank中借块。

优选地,所述方法还包括:借块之后的各个bank中的vblock数据相同。

第二方面,本发明提供了一种用于提高ssd写入效率的组块装置,所述装置包括:

第一获得单元,所述第一获得单元用于获得ssd硬盘中各个bank的坏块分布情况;

第二获得单元,所述第二获得单元用于根据所述坏块分布情况获得各个bank的vblock数据情况;

第一操作单元,所述第一操作单元用于根据所述各个bank的vblock数据情况,将vblock数据较多的bank借入vblock数据较少的bank中,其中,vblock数据较少的bank从一个vblock数据较多的bank中借块。

优选地,所述装置还包括:

第一操作单元中借块之后的各个bank中的vblock数据相同。

第三方面,本发明提供了一种用于提高ssd写入效率的组块装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:获得ssd硬盘中各个bank的坏块分布情况;根据所述坏块分布情况获得各个bank的vblock数据情况;根据所述各个bank的vblock数据情况,将vblock数据较多的bank借入vblock数据较少的bank中,其中,vblock数据较少的bank从一个vblock数据较多的bank中借块。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

本申请实施例提供的一种用于提高ssd写入效率的组块方法和装置,通过获得ssd硬盘中各个bank的坏块分布情况;根据所述坏块分布情况获得各个bank的vblock数据情况;根据所述各个bank的vblock数据情况,将vblock数据较多的bank借入vblock数据较少的bank中,其中,vblock数据较少的bank从一个vblock数据较多的bank中借块。解决现有技术中每个bank拿出一个vblock组成mblk,当某一个mblk中有多个bank是从其他bank借的vblock时,写数据的时候不能充分发挥多通道并行写的性能,影响写入速度的技术问题,实现了能够充分利用各个bank上的好块、提高op,又能最大程度减小组合块对写入性能的影响,保证写入速度的技术效果。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

图1为本发明实施例中一种用于提高ssd写入效率的组块方法的流程示意图;

图2为本发明实施例中一种用于提高ssd写入效率的组块装置的结构示意图;

图3为本发明实施例提供的ssd存储架构的示意图;

图4为本发明实施例提供的bank的结构示意图;

图5为本发明实施例提供的vblock数目分布情况示意图。

具体实施方式

本发明实施例提供了一种用于提高ssd写入效率的组块方法和装置,本发明提供的技术方案总体思路如下:获得ssd硬盘中各个bank的坏块分布情况;根据所述坏块分布情况获得各个bank的vblock数据情况;根据所述各个bank的vblock数据情况,将vblock数据较多的bank借入vblock数据较少的bank中,其中,vblock数据较少的bank从一个vblock数据较多的bank中借块。解决现有技术中每个bank拿出一个vblock组成mblk,当某一个mblk中有多个bank是从其他bank借的vblock时,写数据的时候不能充分发挥多通道并行写的性能,影响写入速度的技术问题,实现了能够充分利用各个bank上的好块、提高op,又能最大程度减小组合块对写入性能的影响,保证写入速度的技术效果。

下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。

为了更清楚公开本申请实施例所提供的一种用于提高ssd写入效率的组块方法和装置,下面介绍相关术语。

硬盘即固态硬盘ssd(solidstatedrives),简称固盘,固态硬盘用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(flash芯片、dram芯片)组成。所述ssd硬盘具有读写速度快、低功耗、无噪音、抗震动、低热量、体积小、工作温度范围大的特点。

vblock:虚拟块,在使用过程中虚拟的逻辑块,物理地址不一定是同一个块

mblk:宏块,由多个虚拟块组成的一种特殊组合

实施例一

图1为本发明实施例中一种用于提高ssd写入效率的组块方法的流程示意图。如图1所示,应用于一种用于提高ssd写入效率的组块设备,所述用于提高ssd写入效率的组块设备包括一识别设备、一操作设备,所述识别设备内部具有识别模块,所述操作设备内部具有数据比较单元、数据处理单元、存储器,所述识别设备与所述操作设备连接。所述方法包括:

步骤110:获得ssd硬盘中各个bank的坏块分布情况;

步骤120:根据所述坏块分布情况获得各个bank的vblock数据情况。

具体而言,通过获得ssd硬盘中各个bank的坏块分布情况,请参考图3、图4,一个bank(储库)包含两个plane(平面),为了保证写的效率,普遍采用双plane写。这样在bank内组块时(称其为vblock),必须在plane0及plane1内各挑取一个好块,从而获得各个bank的坏块分布情况。请参考图5,根据所述坏块分布情况获得各个bank的vblock数据情况,由于各bank中坏块的分布不同(坏块数目不同及各plane中坏块数目不同),各bank组出的vblock数目不同,有时数目相差较大。

步骤130:根据所述各个bank的vblock数据情况,将vblock数据较多的bank借入vblock数据较少的bank中,其中,vblock数据较少的bank从一个vblock数据较多的bank中借块。

进一步的,所述方法还包括:借块之后的各个bank中的vblock数据相同。

具体而言,本发明实施例提供了根据所述各个bank的vblock数据情况,将vblock数据较多的bank借入vblock数据较少的bank中,其中,vblock数据较少的bank从一个vblock数据较多的bank中借块。也就是说,每个bank拿出一个vblock组成mblk。

在组成mblk的时候,为了保证写数据的时候可以充分发挥多通道并行写的性能,不影响写入速度,增加一个新的组成mblk的规则,即要求每一个mblk中最多有一个bank是从其他bank借vblock,并且要求借块之后的各个bank中的vblock数据相同。可以达到充分利用各个bank上的好块、提高op,又能最大程度减小组合块对写入性能的影响,按照这种规则形成的mblk可以称之为qmblk(quickmblk)。随着坏块增加,可能无法满足这种规则,此时可以采用原来生成mblk的规则,可以从多个bank中借多个vblock。

实施例2

基于与前述实施例中一种用于提高ssd写入效率的组块方法同样的发明构思,本发明还提供一种用于提高ssd写入效率的组块装置,如图2所示,包括:

第一获得单元,所述第一获得单元用于获得ssd硬盘中各个bank的坏块分布情况;

第二获得单元,所述第二获得单元用于根据所述坏块分布情况获得各个bank的vblock数据情况;

第一操作单元,所述第一操作单元用于根据所述各个bank的vblock数据情况,将vblock数据较多的bank借入vblock数据较少的bank中,其中,vblock数据较少的bank从一个vblock数据较多的bank中借块。

进一步的,所述装置还包括:

第一操作单元中借块之后的各个bank中的vblock数据相同。

前述图1实施例1中的一种用于提高ssd写入效率的组块方法的各种变化方式和具体实例同样适用于本实施例的一种用于提高ssd写入效率的组块装置,通过前述对一种用于提高ssd写入效率的组块方法的详细描述,本领域技术人员可以清楚的知道本实施例中一种用于提高ssd写入效率的组块装置的实施方法,所以为了说明书的简洁,在此不再详述。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

本申请实施例提供的一种用于提高ssd写入效率的组块方法和装置,通过获得ssd硬盘中各个bank的坏块分布情况;根据所述坏块分布情况获得各个bank的vblock数据情况;根据所述各个bank的vblock数据情况,将vblock数据较多的bank借入vblock数据较少的bank中,其中,vblock数据较少的bank从一个vblock数据较多的bank中借块。解决现有技术中每个bank拿出一个vblock组成mblk,当某一个mblk中有多个bank是从其他bank借的vblock时,写数据的时候不能充分发挥多通道并行写的性能,影响写入速度的技术问题,实现了能够充分利用各个bank上的好块、提高op,又能最大程度减小组合块对写入性能的影响,保证写入速度的技术效果。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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