掌桥专利:专业的专利平台
掌桥专利
首页

存储器及其控制方法

文献发布时间:2024-04-18 19:58:30


存储器及其控制方法

技术领域

本公开涉及存储器领域,特别涉及存储器的数据回收处理。

背景技术

近些年来,固态硬盘(SSD,Solid State Drive)在技术发展和市场拓展两方面都取得了长足进展。

在传统SSD存储中,SSD数据回收(GC,Garbage Collection)是影响存储性能及稳定性的一个重要因素。

数据回收,也可以称为“垃圾回收”,是将待回收物理单元,如包括多个页的块,中的有效数据(一般以页为单位)全部迁移到其它物理单元,然后对待回收物理单元执行擦除操作。

例如,在数据中心的服务场景中,主机(host)向SSD发送的服务类型各种各样(主要是混合服务,比如读占70%、写占30%的随机混合服务),SSD常规情况下只有主机流控(FC,Flow Control),即根据GC的实际产出对主机写做流控。然而,在主机侧的服务类型是一些非对齐、或者小IO、或者小压力(JOB/QD)等类似类型的情况下,GC提供给主机写的信用分(credit,其为一种流控的单位,通常一个信用分等效于一个数据单元(DU,Data Unit))不能被完全消耗掉,这样就会出现GC的能力大于主机写性能,导致SSD内部的SPB(StripePhysical Block,物理块条带,也可称为超级块(SuperBlock))资源量越来越多,当多到一定量之后,GC就会停止,主机侧性能就会大幅提升,导致主机写性能出现严重波动。

因此,需要一种新的提升SSD写性能稳定性(consistency)的数据回收方案。

发明内容

本公开要解决的一个技术问题是提供一种新的SSD数据回收方案,其能够提升写性能稳定性。

根据本公开的第一个方面,提供了一种控制存储器的方法,所述存储器包括存储介质模块,所述存储介质模块包括多个物理存储组,所述存储器以物理存储组为单位进行数据回收处理,所述方法包括:在主机写速度低于启动阈值的情况下,启动对数据回收处理的流控,至少根据主机写速度和作为数据回收处理对象的物理存储组中的有效数据量来确定数据搬移速度;以及以所确定的数据搬移速度将数据回收处理对象中的有效数据搬移到其他物理存储组。

可选地,在主机写速度高于停止阈值的情况下,停止对数据回收处理的流控。

可选地,启动阈值和/或停止阈值与数据回收处理提供空闲存储空间的速度正相关;并且/或者以预定的第一时间间隔更新对数据回收处理的流控的启动/停止与否的判断。

可选地,主机写速度是通过在每个指定时间段统计期间主机向存储器写的数据量而得到的;并且/或者以预定的第二时间间隔更新对数据搬移速度的确定。

可选地,确定数据搬移速度的步骤包括:根据数据回收处理对象中的有效数据量确定此次数据回收处理将获得的空闲存储空间;根据将获得的空闲存储空间和过去指定轮次的主机写速度的均值,确定主机写要消耗将获得的空闲存储空间所需的时间;以及根据数据回收处理对象中的有效数据量、以及主机写要消耗将获得的空闲存储空间所需的时间,确定数据搬移速度。

可选地,确定数据搬移速度的步骤包括:至少根据主机写速度和数据回收处理对象中的有效数据量来计算初始的数据搬移速度;以及根据空闲的物理存储组的数量与高位水线和/或低位水线的关系、以及/或者过去指定轮次的数据搬移速度的均值,对初始的数据搬移速度进行补偿,从而将补偿后的数据搬移速度作为最终确定的数据搬移速度。

可选地,在空闲的物理存储组的数量低于低位水线的情况下,以空闲的物理存储组的数量与低位水线之差与低位水线的比值,作为向初始的数据搬移速度增加的补偿比例;并且/或者在空闲的物理存储组的数量高于低位水线或低位水线与指定数值之和的情况下,以空闲的物理存储组的数量与高位水线之差与高位水线的比值,作为向初始的数据搬移速度增加的补偿比例。

可选地,在计算出的初始的数据搬移速度低于过去指定轮次的数据搬移速度的均值的情况下,对初始的数据搬移速度进行补偿以使得补偿后的数据搬移速度不低于过去指定轮次的数据搬移速度的均值。

根据本公开的第二个方面,提供了一种存储器,包括:存储介质模块,包括多个物理存储组,所述存储器以物理存储组为单位进行数据回收处理;以及控制器,被配置为执行如上述第一方面所述的方法。

可选地,所述控制器包括至少两个处理器,其中一个处理器被配置为执行对数据回收处理的流控的启动与否的判断的相关操作,另一个处理器被配置为执行确定数据搬移速度并且搬移数据回收处理对象中的有效数据的相关操作。

根据本公开的第三个方面,提供了一种主机,包括:处理器;以及存储装置,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一方面所述的方法。

根据本公开的第四个方面,提供了一种计算机程序产品,包括可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上述第一方面所述的方法。

根据本公开的第五个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一方面所述的方法。

由此,本公开通过根据主机写性能来确定GC速度,建立GC能力与主机写性能的平衡,能够提升SSD在各种服务模型下的写性能稳定性。

附图说明

通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。

图1示出了根据本公开一个实施例的存储器和主机的示意性结构框图。

图2示出了根据本公开一个实施例的控制存储器的方法的示意性流程图。

图3示出了根据本公开一个实施例的控制存储器的示例方法的示意性流程图。

图4示出了根据本公开一实施例可用于实现方法的计算设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的一些实施方式。虽然附图中显示了本公开的一些实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

如前所述,在本领域中,为了保证SSD写性能稳定性,提出了一种主机流控的方案,其根据GC的实际产出对主机写做流控。例如,GC的产出能力是每秒1000信用分,那么,主机流控可以将1秒的时间片切为10个100ms,每100ms主机写可以消耗100个信用分,以此来保证SSD内SPB资源量不会越来越少,保证系统能正常工作。在这种情况下,如果主机侧的服务类型都是大IO写或者大压力的服务类型,则通常主机写能把GC产出消耗完,那么就自动建立了平衡关系,主机写性能会自动稳定。但是如果GC的能力非常高,即使是大IO写,主机写仍然不能把GC产出完全消耗完,那么空闲的SPB数量就会快速增加,增加到高位水线(highwaterline)之上,GC就会停止,此时主机写会全占NAND资源,写性能会大幅提升,从而导致性能波动。而且如果主机侧的服务类型是前面提到的非对齐、小IO写、小压力的服务类型等,则一定会出现这种性能波动的情况;这是因为GC是在全力运转,而小IO写会伴随着大量的回读,所以写性能一定会波动。也就是说,这种仅靠主机流控的方案无法保证SSD在各种服务状况下的写性能稳定性。

由此,本公开提出了一种改进的用于存储器的数据回收方案,其根据主机写性能来确定GC速度,因此无论主机写性能如何变化,GC都会相对应地去进行适应,保证GC能力与主机写性能在限定范围内波动,建立GC能力与主机写性能的平衡,从而从根本上保证性能的稳定性。

应当理解,虽然本公开是以SSD为例来描述其背景和详细方案的,但是本公开的存储器也可以是同样需要GC处理的其他类型存储器。在一些实施方式中,本公开的存储器可以包括NAND型闪存和/或NOR型闪存。

图1示出了根据本公开一个实施例的存储器和主机的示意性结构框图。

如图1所示,在一些实施方式中,本公开的存储器100可以包括存储介质模块110和控制器120。

在一些实施方式中,在SSD的情况下,存储介质模块110可以包括多个NAND闪存芯片(Die),每个闪存芯片可以包括多个平面(Plane)。各个闪存芯片中的各个平面可并发操作。每个平面可包括多个块(Block),每个块可包括多个页(Page)。每个页能够存储预定数量的数据。如图1所示,前述的SPB(Stripe Physical Block,物理块条带,也可称为超级块(Super Block))可由存储介质模块中的各个平面中位于同一位置的块组成。应当理解,本公开的SPB的结构不限于此,也可以是按照其他方式组织的多个块构成的SPB;例如,SPB也可以包括位于不同位置的块,也可以不包括某个或某些平面中的块,等等。

在一些实施方式中,SSD中的各个块可以被划分为多个数据单元(DU,Data Unit),一个DU可以为512B或4KB。可以以DU为最小读写单元,以块为最小擦除单元。在其他实施方式中,也可以以其他类型数据集合为最小读写单元。例如,其他类型数据集合可以为一页,一页可以存储16KB的数据,可以被分为4个DU。或者其他类型数据集合可以为由若干个DU构成的更大的数据集合,例如,由16个DU构成的64KB大小的逻辑存储单元,如BN(BufferNode,缓冲节点)。

在一些实施方式中,可以以SPB为单位对存储介质模块进行GC处理。应当理解,尽管本文中以SPB为例来详细描述本公开的GC方案,但是本公开不限于此,也可以例如出于方便管理和操作的目的,将存储介质模块按照其他方式以块为最小单元来划分为多个部分,即多个物理存储组,每个物理存储组可以包括一个或多个块,并且以物理存储组为单位对存储介质模块进行GC处理。也就是说,可以出于各种考虑来划分物理存储组。

在一些实施方式中,SSD可以记录每个块或每个SPB中的有效的DU或其他类型数据集合(如BN)的数量(VC,Valid Count),以便在数据回收时迅速了解SPB中的有效数据量。在另一些实施方式中,SSD也可以通过其他方式实时统计每个SPB中的VC。

如图1所示,在一些实施方式中,控制器120可以响应于主机130的各种请求(包括IO读写请求等)对存储介质模块110进行读写操作,另外还可以自行或根据主机130的指示等对存储介质模块110进行其他控制操作,例如数据回收操作等。如图1所示,在一些实施方式中,控制器120可以包括多个处理器(CPU),这多个CPU可以各自独立工作或者相互合作来进行各种操作。应当理解,本公开不限于包括多个CPU的控制器,同样适用于仅包含一个CPU的控制器的情形。

下面将结合图1和图2更详细描述根据本公开的控制存储器的示例性方案。

图2示出了根据本公开一个实施例的控制存储器的方法的示意性流程图。

在一些实施方式中,本公开的存储器可以具有上面结合图1所述的各种结构。存储器中的存储介质模块可以包括多个物理存储组(例如多个SPB),并且存储器以物理存储组为单位进行数据回收(GC)处理。下面均以SPB为例来描述本公开方案的操作,但是应当理解,本公开也适用于其他结构的物理存储组。

在一些实施方式中,本公开的控制方法可以由存储器的控制器(例如图1中的控制器120)执行,可以利用其中的软件、固件和/或专门定制的电路(ASIC)来实现该控制方法。在一些实施方式中,为了加快执行的速度和/或平衡各CPU的工作负载,本公开的控制方法可以由存储器的控制器中的两个或更多个CPU联合执行,例如后面将结合图3详细描述的那样。在一些实施方式中,本公开的控制方法可以由主机或者主机联合存储器的控制器来执行。例如,可以由主机确定是否启动GC流控以及数据搬移速度,并且指示存储器按照其确定的数据搬移速度进行GC处理。或者,可以由主机确定是否启动GC流控,并且指示存储器的控制器据此确定数据搬移速度且按照确定的数据搬移速度进行GC处理。在由主机执行本公开的控制方法的部分或全部操作的情况下,可以由稍后结合图4描述的计算设备来实现该主机。

如图2所示,本公开的控制方法根据主机写速度确定数据回收处理的速度,尽量保持二者的平衡,从而保证写性能稳定性。

具体而言,在步骤S210中,在主机写速度低于启动阈值的情况下,启动对数据回收处理的流控,并且至少根据主机写速度和作为数据回收处理对象的物理存储组中的有效数据量来确定数据搬移速度。

如前所述,在数据回收处理中,待回收的物理存储组中通常还会存在有效数据(例如还有些物理页被标记为有效,其中存储的就是有效数据),在对其进行整体擦除操作之前,必须要将物理存储组中的有效数据全部搬移到其他物理存储组保存,以便后续使用。如前所述,在一些实施方式中,这些有效数据的数量,即,有效数据量,可以用数据单元(DU)或其他类型数据集合(如BN)为单位来表示,例如,物理存储组中的有效数据量可以被表示为物理存储组中的有效的DU数量。如前所述,SSD可以记录每个块或每个SPB中的有效的DU的数量(VC,Valid Count),以便在数据回收时迅速了解SPB中的有效数据量。在另一些实施方式中,SSD也可以通过其他方式实时统计每个SPB中的VC,从而获得有效数据量。

主机写速度指的是主机每秒向存储器写入的数据量,该数据量可以由例如数据单元(DU)为单位来表示,例如主机写速度可以为主机每秒向存储器写入的数据单元的个数。在一些实施方式中,主机写速度是通过在每个指定时间段(例如,每一秒钟)统计期间主机向存储器写的数据量而得到的。

在一些实施方式中,启动阈值可以与数据回收处理提供空闲存储空间的速度正相关,例如成正比。数据回收处理提供空闲存储空间的速度可以例如由前述的数据回收处理每秒提供的主机写的信用分(credit,其为一种流控的单位,通常一个信用分等效于一个DU)的数量来表示。可以通过各种方式(例如,统计、估算等方式)来获得数据回收处理提供空闲存储空间的速度。为了尽量保持数据回收能力与主机写性能的平衡,在一些实施方式中,启动阈值可以被设置为接近于数据回收处理提供空闲存储空间的速度的值,例如,可以根据实际情况选择该启动阈值为该速度的90%的值,或者为该速度的85%到95%之间的值。在主机写速度低于启动阈值的情况下,如前所述,数据回收能力大于主机写性能,会很快出现数据回收能力与主机写性能失衡的状况,因此要启动对数据回收处理的流控。

在一些实施方式中,还可以设置一个停止阈值,在主机写速度高于停止阈值的情况下,可以停止对数据回收处理的流控。停止阈值也可以与数据回收处理提供空闲存储空间的速度正相关,例如成正比。停止阈值高于启动阈值,例如可以被设置为等于或基本等于数据回收处理提供空闲存储空间的速度的值,例如,可以根据实际情况被选择为该速度的95%到100%之间的值。

在一些情况下,主机写速度的波动较大,为了更好保持写性能稳定性,可以以预定的第一时间间隔更新对数据回收处理的流控的启动/停止与否的判断。另外,由于主机写速度和/或数据回收实际速度的波动,还可以以预定的第二时间间隔更新对数据搬移速度的确定。由此可以实时地根据主机写速度来调整数据回收速度,以尽量达到二者的平衡。

在一些实施方式中,在没有对数据回收处理进行流控的情况下,可以全速(即没有限制)地将数据回收处理对象中的有效数据搬移到其他物理存储组。而在启动对数据回收处理的流控的情况下,可以根据主机写速度和数据回收处理对象中的有效数据量来确定数据搬移速度。

例如,在一些实施方式中,可以先根据数据回收处理对象中的有效数据量确定此次数据回收处理将获得的空闲存储空间(例如等于数据回收处理对象的总存储量减去其中的有效数据量)。然后,根据将获得的空闲存储空间和过去指定轮次的主机写速度的均值,确定主机写要消耗将获得的空闲存储空间所需的时间(例如等于将获得的空闲存储空间除以主机写速度均值)。然后,根据数据回收处理对象中的有效数据量、以及主机写要消耗将获得的空闲存储空间所需的时间,确定数据搬移速度。例如,可以将有效数据量除以主机写要消耗将获得的空闲存储空间所需的时间,从而得到数据搬移速度;由此可以使得在此次数据回收处理的执行时间内此次数据回收处理提供的空闲空间量刚好被主机写消耗完,从而使得空闲存储空间的产生和消耗达到平衡,保持写性能的稳定性。

在一些实施方式中,由于数据搬移的实际速度会受多方面(比如CPU计划时间(schedule time)、读取命令性能(mrd/ard)等)影响,因此通常会导致实际执行的数据搬移速度与指示执行的期望的数据搬移速度有差距。为此,可以以例如前面讨论的方式计算的期望的数据搬移速度作为初始的数据搬移速度,然后对该初始的数据搬移速度进行补偿,从而将补偿后的数据搬移速度作为最终确定的数据搬移速度。例如,可以根据空闲的物理存储组的数量与高位水线和/或低位水线的关系,对初始的数据搬移速度进行补偿。

在一些实施方式中,水线指的是为空闲物理存储组(例如SPB)的数量预设的阈值,其可以包括两个指标:低位水线(low)和高位水线(high),低位水线可以为空闲SPB数的最低限,表示剩余存储空间不足了,而高位水线可以为空闲SPB数的最高限,表示剩余空间非常充足,可停止GC操作,避免过度写放大。应该理解,还可以根据其他需求来设置高位水线和/或低位水线。

在一些实施方式中,在空闲的物理存储组的数量低于低位水线的情况下,可以以空闲的物理存储组的数量与低位水线之差与低位水线的比值,作为向初始的数据搬移速度增加的补偿比例。在空闲的物理存储组的数量高于低位水线或低位水线与指定数值之和的情况下,可以以空闲的物理存储组的数量与高位水线之差与高位水线的比值,作为向初始的数据搬移速度增加的补偿比例。也就是说,最终确定的数据搬移速度可以等于(1+补偿比例)*初始的数据搬移速度。

可替代地或者可选地,为了不让数据回收处理发生掉速,还可以根据过去指定轮次的数据搬移速度的均值,对初始的数据搬移速度进行补偿。在一些情况下,数据回收处理速度一旦发生下降,就会导致稳定性(consistency)无法达标,如果强制稳定性达标,则物理存储空间可能会很快耗尽,为此希望保证当前的数据搬移速度不低于过去若干轮次(例如前8轮)的数据搬移速度的均值。为此,在计算出的初始的数据搬移速度低于过去指定轮次的数据搬移速度的均值的情况下,可以对初始的数据搬移速度进行补偿以使得补偿后的数据搬移速度不低于过去指定轮次的数据搬移速度的均值。

在如前所述地确定了数据搬移速度之后,在步骤S220中,可以以该数据搬移速度将数据回收处理对象中的有效数据搬移到其他物理存储组。在有效数据搬移完成后可以对数据回收处理对象进行整体擦除操作,从而将其变为空闲的物理存储组。在一些情况下,有效数据搬移所需的时间大于擦除操作的时间,数据回收处理的时间主要为有效数据搬移的时间,因此控制了有效数据搬移的速度就基本相当于控制了数据回收处理的时间。

下面将结合图1和图3来描述根据本公开的一个更具体的存储器控制流程示例。

如前所述,在一些情况下,因为存储器的控制器要完成的功能较多,所以可以采用控制器内不同的CPU协作完成一些工作,多个CPU可以相互配合来达到功能并发的目的。例如,可以由存储器的控制器120内部的两个CPU(例如图3中示出的CPU1和CPU2)来协作执行本公开的控制方法。应当理解,本公开不限于此,例如,图3中示出的CPU1和CPU2分别执行的流程也可以仅由一个CPU来执行,或者可以仅由主机的CPU来执行,或者可以由主机的CPU和控制器的CPU来分别执行。

如图3所示,CPU1被配置为执行对数据回收(GC)处理的流控的启动与否的判断的相关操作,CPU2被配置为执行确定数据搬移速度并且搬移数据回收处理对象中的有效数据的相关操作。

具体而言,对于CPU1的操作,在步骤S310中,可以启用GC流控定时器,从而以预设时间间隔来判定GC流控的启动与否。

达到预设时间间隔时,可以如步骤S311中那样先判断当前GC是否正在运转。如果GC正在运转,才需要进行接下来的判定是否启动GC流控的操作,否则就按照默认操作,例如使用默认的主机写信用分值,进行例如对主机写操作的流控等等。

在GC正在运转的情况下,在步骤S312中,可以统计主机写性能,例如统计主机向存储器写入的数据量。应当理解,本公开的主机并不仅限于单个主机,而是可以包括所有可以向该存储器写数据的主机。

然后,在步骤S313中,判断时间段是否达到预设的粒度,例如1秒的粒度。

然后,在达到1s的粒度的情况下,在步骤S314中,可以将统计得到的主机写速度(每秒写入的DU数量)与设定的启动阈值和/或停止阈值进行比较,从而判定是否启动/停止对GC的流控。如前所述,启动阈值和/或停止阈值可以与GC提供空闲存储空间的速度(其可以由GC每秒提供的主机写信用分的数量来表示)正相关。例如,启动阈值可以为GC每秒提供的主机写信用分量的90%,停止阈值可以为GC每秒提供的主机写信用分量的95%,则:

如果主机写速度<(90%*GC每秒提供的主机写信用分量),启动GC流控;

如果主机写速度>=(95%*GC每秒提供的主机写信用分量),停止GC流控。

CPU1可以根据S314中的判定结果向CPU2发送相应的信息,以便通知其启动/停止对GC的流控。另外,主机写速度也可以每秒都被CPU1统计获得,并且被不停地反馈给CPU2。

CPU2主要负责GC处理。具体而言,对于CPU2的操作,在步骤S360中,可以启动GC。在一些实施方式中,可以由主机向存储器的控制器发送针对指定SPB的GC指令,从而启动对指定SPB的GC处理。也可以由存储器的控制器自行决定启动对某个SPB的GC处理。

然后,在步骤S361中,可以确定当前是否启动了GC流控。

如果未启动GC流控,则如步骤S366那样,不对GC速度进行限制,可以全速搬移源SPB中的有效数据。当然,在全速搬移过程中,如果启动了GC流控,还可以转到步骤S362。如果有效数据被全速搬移完,则可以对源SPB进行擦除处理,将其变为空闲SPB,从而此次GC处理结束(步骤S367)。

如果启动了GC流控,则在步骤S362中,确定数据搬移速度。

例如,可以根据过去10轮(10s)的主机写速度的均值、以及当前源SPB的有效数据量(可用VC表示,代表有效的DU数量),如下地计算初始的数据搬移速度(每秒GC可以搬移的数据量,以DU为单位):

初始的数据搬移速度=VC/((源SPB的总DU数量-VC)/主机写速度均值)

根据主机写速度均值(即平均每秒写入多少个DU)估算多长时间能消耗掉此次GC释放出来的DU数(即源SPB总DU数减去VC得到的原先无效的DU数),然后期望在该时间内把源SPB中的VC都搬移完,以便保持空闲存储空间的产出与消耗的平衡。由此得到了上式中的初始的数据搬移速度。

如前所述,由于GC的实际速度会受多方面影响,因此会导致GC的实际搬移速度与期望值有差距。同时,主机写性能可能也会有波动,可能与GC速度失去平衡。为此,可以如步骤S364那样每过1秒都重新去确定一次数据搬移速度。另外,还可以建立如下两个策略点来对初始的数据搬移速度进行补偿,从而得到最终确定的数据搬移速度:

1.根据空闲SPB数量与高位水线(由high表示)/低位水线(由low表示)的关系做如下补偿:

1)如果空闲SPB数量

2)如果空闲SPB数量>low+1,则增加补偿比例=(high-空闲SPB数量)/high。

最终的数据搬移速度=(1+补偿比例)*初始的数据搬移速度。

由此,空闲SPB数量越多,补偿比例越少,GC运转越慢。由此可以形成负反馈,将空闲SPB数量维持在合适范围。

2.如果初始的数据搬移速度发生掉速(例如低于前面8轮的数据搬移速度的均值),则:

数据搬移速度的补偿量=8轮均值-初始的数据搬移速度。

在经过补偿得到最终确定的数据搬移速度后,在步骤S363中,以该确定的数据搬移速度来进行有效数据搬移,直到步骤S365中确定有效数据已搬移完。如前所述,在有效数据未搬移完时要如步骤S364那样每过1秒更新一下数据搬移速度。

在有效数据已搬移完后,可以对源SPB进行擦除处理,将其变为空闲SPB,从而此次GC处理结束(步骤S367)。

另外,虽然未示出,但是在一些实施方式中,确定了GC流控和/或数据搬移速度后,还可以相应地更新GC提供的主机写的信用分量。在一些实施方式中,主机还可以根据GC提供的主机写的信用分量来对主机写进行流控。

如上所述,本公开提出了根据主机写性能来进行GC流控,并可以根据主机写性能实时调整GC速度,以此使得GC能力与主机写消耗达到平衡状态,从服务上、后端压力等多个层面保证性能的稳定性。利用本公开的方案,能够达到主机性能与GC性能长期保持一致的目的,从而保证写性能的稳定性。

图4示出了根据本公开一实施例可用于实现上述存储器的控制方法的计算设备的结构示意图。

参见图4,计算设备400包括存储装置410和处理器420。

处理器420可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器420可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器420可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。

存储装置410可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器420或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储装置410可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储装置410可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。

存储装置410上存储有可执行代码,当可执行代码被处理器420处理时,可以使处理器420执行上文述及的存储器的控制方法。

上文中已经参考附图详细描述了根据本公开的存储器的控制方法。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

此外,根据本公开的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本公开的上述方法中限定的上述各步骤的计算机程序代码指令。

或者,本公开还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本公开的上述方法的各个步骤。

本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。

附图中的流程图和框图显示了根据本公开的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

相关技术
  • 存储器管理方法、存储器控制电路单元与存储器存储装置
  • 浮栅存储器件及其控制方法、3D存储器件与2D存储器件
  • 存储器控制电路单元、存储器存储装置及其控制方法
  • 存储器控制器、存储器控制方法以及半导体存储装置
  • 解码方法、存储器存储装置及存储器控制电路单元
  • 存储器装置、主机装置、存储器系统、存储器装置控制方法、主机装置控制方法以及存储器系统控制方法
  • 存储器装置、主机装置、存储器系统、存储器装置控制方法、主机装置控制方法以及存储器系统控制方法
技术分类

06120116498282