一种SSD写性能的提高方法及装置与流程

文档序号:14835592发布日期:2018-06-30 12:16阅读:226来源:国知局
一种SSD写性能的提高方法及装置与流程

本申请涉及电子技术领域,尤其涉及一种SSD写性能的提高方法及装置。



背景技术:

SSD(Solid State Drives,固态硬盘),是固态电子存储芯片阵列而制成的硬盘,由主控芯片和闪存组成。其闪存类型可以是SLC(Single Level Cell,单层式存储)、MLC(Multi Level Cell,多层式存储)或TLC(Trinary-Level Cell,三层式存储)。MLC和TLC闪存支持SLC操作模式,所以无论采用何种闪存类型,SSD都开辟一段物理存储空间做SLC操作模块,用于数据缓存,称为SLC Cache。

在向SSD写入数据时,首先写入SLC Cache;若SLC Cache写满且写IO(Input Output,输入输出)持续,新的写IO数据将写入到MLC、TLC中。由于MLC、TLC模式编程性能低于SLC模式,因此,性能将会下降。因此,在持续写IO进行时,盘片能够提供高写性能的容量或时间取决于SLC Cache的大小。

现有技术中SSD盘片在SLC Cache大小固定,而SSD盘片SLC Cache大小受限于SSD盘片在MLC、TLC模式下物理空间的冗余,在保证MLC、TLC空间满足逻辑空间和GC(Garbage Collector,垃圾回收)性能的前提下,剩余的空间才可用于SLC Cache。因此,SSD盘片SLC Cache空间大小将有明显的限制,也就限制了SSD写性能的持久度。



技术实现要素:

本申请提供了一种SSD写性能的提高方法及装置,以解决SSD写性能的持久度低的的问题。

第一方面,本申请提供了一种SSD写性能的提高方法,该方法包括:如果接收到写IO指令,则判断SLC Cache是否存在空闲物理空间,所述空闲物理空间是指所述SLC Cache的剩余空闲空间大于或等于写入数据的所需的存储空间;如果不存在所述空闲物理空间,则获取SSD的闪存的Block地址;更改所述Block地址的闪存模式为单层式存储SLC模式,所述Block地址为借用SLC Cache;根据所述SLC模式,在所述Block地址内所述执行所述写IO指令。采用本实现方式,在SLC Cache不存在空闲物理空间时,可以将闪存中的Block地址作为SLC Cache使用,能够提高写性能的持久度。

结合第一方面,在第一方面第一种可能的实现方式中,所述闪存模式包括多层式存储MLC模式和三层式存储TLC模式。

结合第一方面,在第一方面第二种可能实现的方式中,所述在所述Block地址内所述执行所述写IO指令之后,所述方法还包括:判断所述SSD的属性是否满足预置释放条件;如果判断结果为是,则根据预置垃圾回收机制GC,将所述Block地址内的数据搬移到所述空闲存储空间;还原所述Block地址的闪存模式,释放所述借用SLC Cache。

结合第一方面,在第一方面的第三种可能实现的方式中,所述判断所述SSD是否满足预置释放条件,包括:判断所述SSD的闪存的空闲存储空间是否小于预置最小剩余存储空间;和/或,判断所述SSD的IO压力是否小于预置压力值。

结合第一方面,在第一方面的第四中可能的实现方式中,所述Block地址包括闪存空间中n个Block,n大于或等于1,且n为整数。

第二方面,本申请还提供了一种SSD写性能的提高装置,所述装置包括用于执行第一方面各种实现方式中方法步骤的模块。

第三方面,本申请还提供了一种SSD,包括:处理器、及存储器;所述处理器可以执行所述存储器中所存储的程序或指令,从而实现以第一方面各种实现方式所述SSD写性能的提高方法。

第四方面,本申请还提供了一种存储介质,该计算机存储介质可存储有程序,该程序执行时可实现包括本申请提供的SSD写性能的提高方法各实施例中的部分或全部步骤。

附图说明

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

图1为本申请提供的一种SSD写性能的提高方法流程图;

图2为本申请提供的另一种SSD写性能的提高方法流程图;

图3为本申请提供的一种SSD写性能的提高装置组成框图;

图4为本申请提供的另一种SSD写性能的提高装置组成框图。

具体实施方式

参见图1,为本申请提供的一种SSD写性能的提高方法流程图。如图1所示,该方法包括:

101、如果接收到写IO指令,则判断SLC Cache是否存在空闲物理空间。

SSD的内部构造十分简单,其主体是一块PCB板,在该PCB板上最基本的配件包括控制芯片、缓存芯片和闪存芯片。写IO指令,是指向SSD的闪存芯片写入数据的命令。是使用SSD时,SSD响应于用户在主机上的操作,启动写IO指令。如果SSD的主控芯片接收到写IO指令,在执行写IO指令之前,还需判断该指令能够执行,在执行时是否具有其他限定条件。SLC Cache是指SSD的缓存。空闲物理空间是指所述SLC Cache的剩余空闲空间大于或等于写入数据所需的存储空间。写入数据所需的存储空间,可以通过写IO指令获取,也可以在写IO指令之前单独发出为写入数据所需存储空间的指令,在本申请实施例中对写入数据所需的存储空间的获取方式不做限定。如果接收到写IO指令,则判断SLC Cache是否存在空闲物理空间。也就是判断SLC Cache还是否存在能够写出数据的的存储空间。

102、如果不存在空闲物理空间,则获取SSD的闪存的Block地址。

如果SLC Cache中不存在空闲物理空间,则不能执行写IO指令。为了能够继续执行写IO指令,将SSD内部的闪存暂时作为SLC Cache使用。获取SSD的闪存的Block地址,其中Block地址可以是闪存中的任意地址。对于获取的Block地址所对应的物理空间大小,也就是能够存储的数据量大小,可以根据本次写IO指令预计写入的内容大小确定,也可以选取一个大小为预置存储空间的内存块,还可以选取存储空间总和为预置存在空间的多个内存块,在本申请实施例中对Block地址的获取方式不做限定。因为Flash空间管理粒度最大就是Block,分配空间均是按Block为单位进行,所以1Block地址包括闪存空间中n个Block,n大于或等于1,且n为整数。

103、更改Block地址的闪存模式为单层式存储SLC模式。

与SSD中的闪存类型相对应,其闪存模式包括多层式存储MLC模式和三层式存储TLC模式。更改Block地址的闪存模式为SLC模式,也就是更改了Block地址的应用环境,Block地址为借用SLC Cache,借用SLC Cache与SLC Cache的使用方式相同。

104、根据SLC模式,在Block地址内执行写IO指令。

在Block地址写入写IO指令指示的写入内容。

采用本实现方式,在SLC Cache不存在空闲物理空间时,可以将闪存中的Block地址作为SLC Cache使用,能够提高写性能的持久度。

参见图2,为本申请提供的另一种SSD写性能的提高方法流程图。在图1所示方法的基础上,如图2所示,在Block地址内执行写IO指令之后,方法还包括:

201、判断SSD的属性是否满足预置释放条件。

具体的,判断SSD的闪存的空闲存储空间是否小于预置最小剩余存储空间;和/或,判断SSD的IO压力是否小于预置压力值。其中,SSD的属性,包括空闲存储空间、IO压力、主控芯片的利用率、SSD的温度等等。

202、如果判断结果为是,则根据预置垃圾回收机制GC,将Block地址内的数据搬移到空闲存储空间。

如果SSD的属性满足预置释放条件,则将Block地址内的数据搬移到空间存储空间,搬移方法根据预置垃圾回收机制制定。

203、还原Block地址的闪存模式,释放借用SLC Cache。

Block地址是借用SLC Cache,不属于SLC Cache,在将Block地址内的数据搬出后,还原Block地址的闪存模式,释放借用SLC Cache。恢复SSD的原有缓冲和闪存的设置状态。

参见图3,为本申请提供的一种SSD写性能的提高装置组成框图,参见图4,为本申请提供的另一种SSD写性能的提高装置组成框图。作为图1和图2所示方法的具体实现,如图3所示,该装置包括:

第一判断单元31,用于如果接收到写IO指令,则判断SLC Cache是否存在空闲物理空间,空闲物理空间是指SLC Cache的剩余空闲空间大于或等于写入数据所需的存储空间;

获取单元32,用于如果不存在空闲物理空间,则获取SSD的闪存的Block地址;

更改单元33,用于更改Block地址的闪存模式为单层式存储SLC模式,Block地址为借用SLC Cache;

执行单元34,用于根据SLC模式,在Block地址内执行写IO指令。

进一步地,闪存模式包括多层式存储MLC模式和三层式存储TLC模式。

进一步地,如图4所示,该装置还包括:

第二判断单元35,用于在Block地址内执行写IO指令之后,判断SSD的属性是否满足预置释放条件;

搬移单元36,用于如果判断结果为是,则根据预置垃圾回收机制GC,将Block地址内的数据搬移到空闲存储空间;

还原单元37,用于还原Block地址的闪存模式,释放借用SLC Cache。

进一步地,第二判断单元35,用于:

判断SSD的闪存的空闲存储空间是否小于预置最小剩余存储空间;和/或,

判断SSD的IO压力是否小于预置压力值。

进一步地,Block地址包括闪存空间中n个Block,n大于或等于1,且n为整数。

具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的SSD写性能的提高方法的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。

本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于SSD写性能的提高装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。

以上所述的本发明实施方式并不构成对本发明保护范围的限定。

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