管理存储区域的方法及固态硬盘与流程

文档序号:12664086阅读:228来源:国知局
管理存储区域的方法及固态硬盘与流程

本公开涉及数据存储领域,具体地,涉及一种管理存储区域的方法及固态硬盘。



背景技术:

随着数据存储技术的高速发展,越来越多的数据存储装置出现在人们使用的电子设备中,例如:SSD(Solid State Drives,固态硬盘)等。SSD因具有读写速度快、抗震动、低功耗、无噪音、低热量、以及质量轻等特点,已被广泛应用于军事、车载、工业、医疗、和航空等领域。

目前,可以将SSD包括的多个存储单元的工作模式设置为SLC模式,以得到SLC型存储单元,或者设置为TLC模式,以得到TLC型存储单元。相关技术中的SSD包括:控制器、元数据存储区域、SLC缓存区域以及TLC存储区域。相关技术中的SSD所包括的各个存储区域的形成过程如下:

首先,将SSD的一部分固定存储区域包括的多个存储单元的工作模式设置为SLC模式,得到由多个SLC型存储单元组成的元数据存储区域,以存储SSD所存储的数据的元数据(如映射表、坏块表等)。然后,将剩余存储区域中的一部分固定区域包括的多个存储单元的工作模式也设置为SLC模式,得到由多个SLC型存储单元组成的SLC缓存区域,以缓存写入SSD的数据。除元数据存储区域和SLC缓存区域外剩余的存储区域包括的所有存储单元的工作模式保持TLC模式,得到由多个TLC型存储单元组成的TLC存储区域,在FTL(Flash translation layer;闪存转换层)的控制下,缓存在SLC缓存区域中的数据被搬移到TLC存储区域,因而写入SSD的数据最终被存储在TLC存储区域。

然而,TLC型存储单元的使用寿命约为1000次,SLC型存储单元的使用寿命可达50000余次。对相关技术中的SSD来说,其所包括的SLC缓存区域与TLC存储区域各自达到使用寿命的时机通常是不一致的,如果SLC缓存区域先达到使用寿命,则TLC存储区域虽然可以继续使用,但是无法实现写数据加速;如果TLC存储区域先达到使用寿命,则SLC缓存区域不能继续使用,因而SSD的生命周期结束,导致一部分存储单元的使用寿命浪费的问题。



技术实现要素:

本公开的目的是提供一种管理存储区域的方法及固态硬盘,用以提高SSD的读写速度。

为了实现上述目的,本公开提供一种管理存储区域的方法,应用于固态硬盘SSD,所述方法包括:

确定所述SSD的SLC存储区域包括的多个SLC型存储单元所存储的数据的第一读写特征,并确定所述SSD的TLC存储区域包括的多个TLC型存储单元所存储的数据的第二读写特征;

根据所述第一读写特征和所述第二读写特征中的至少一个,对所述TLC存储区域与所述SLC存储区域之间的比例进行调整。

可选地,所述方法还包括:

将所述SSD的用户数据空间包括的部分存储单元的工作模式设置为TLC模式,以得到所述TLC存储区域;

将所述用户数据空间中除所述部分存储单元外的剩余存储单元的工作模式设置为SLC模式,以得到所述SLC存储区域,其中,请求写入所述SSD的数据将被存储在所述SLC存储区域。

可选地,根据所述第一读写特征和所述第二读写特征中的至少一个,对所述TLC存储区域与所述SLC存储区域之间的比例进行调整,包括:

将所述SLC存储区域中读写频率低于预设阈值的数据标记为待非等量搬移;

将所述SLC存储区域包括的空闲SLC型存储单元的工作模式由SLC模式转换为TLC模式,以得到空闲TLC型存储单元;

所述方法还包括:

将所述SLC存储区域中标记为待非等量搬移的数据搬移到空闲TLC型存储单元。

可选地,将所述SLC存储区域所存储的读写频率低于预设阈值的数据标记为待非等量搬移,包括:

对所述SLC存储区域中所有数据的读取频率,按照从高到低的顺序进行排序;

将排在后S位的数据标记为待非等量搬移,S为大于0的整数。

可选地,所述方法还包括:

检测所述SLC存储区域已存储的数据量是否超过预设数值,所述预设数值由所述SSD的标称容量以及所述SLC存储区域已存储的数据量与所述TLC存储区域已存储的数据量之和确定;

将所述SLC存储区域中读写频率低于预设阈值的数据标记为待非等量搬移,包括:

在所述SLC存储区域已存储的数据量超过所述预设数值的情况下,将所述SLC存储区域中读写频率低于预设阈值的数据标记为待非等量搬移。

可选地,在将所述SLC存储区域中标记为待非等量搬移的数据搬移到空闲TLC型存储单元之后,所述方法还包括:

将所述TLC存储区域中标记为待非等量搬移的数据标记为已非等量搬移;

根据所述第一读写特征和所述第二读写特征中的至少一个,对所述TLC存储区域与所述SLC存储区域之间的比例进行调整,包括:

将所述SLC存储区域中满足第一预设条件的数据标记为待等量搬移,并将所述TLC存储区域中满足第二预设条件的数据标记为待等量搬移,其中,所述第一预设条件为:未标记为待非等量搬移,且读写频率小于所述TLC存储区域中未标记为已非等量搬移的数据的读写频率,所述第二预设条件为:未标记为已非等量搬移,且读写频率大于所述SLC存储区域中未标记为待非等量搬移的数据的读写频率;

将所述SLC存储区域包括的空闲SLC型存储单元的工作模式由SLC模式转换为TLC模式,以得到空闲TLC型存储单元;

所述方法还包括:

将所述SLC存储区域中标记为待等量搬移的数据搬移到空闲TLC型存储单元,并将所述TLC存储区域中标记为待等量搬移的数据搬移到所述SLC存储区域包括的空闲SLC型存储单元。

可选地,根据所述第一读写特征和所述第二读写特征中的至少一个,对所述TLC存储区域与所述SLC存储区域之间的比例进行调整,包括:

在所述SLC存储区域已存储的数据量未超过所述预设数值的情况下,将所述SLC存储区域中读写频率符合第三预设条件的数据记为待等量搬移,并将所述TLC存储区域中读写频率符合第四预设条件的数据记为待等量搬移,其中,所述第三预设条件为:读写频率低于所述TLC存储区域所存储的数据的读写频率,所述第四预设条件为:读写频率高于所述SLC存储区域所存储的数据的读写频率;

将所述SLC存储区域包括的空闲SLC型存储单元的工作模式由SLC模式转换为TLC模式,以得到空闲TLC型存储单元;

所述方法还包括:

将所述SLC存储区域中标记为待等量搬移的数据搬移到空闲TLC型存储单元,并将所述TLC存储区域中标记为待等量搬移的数据搬移到所述SLC存储区域包括的空闲SLC型存储单元。

可选地,将所述SLC存储区域中满足第一预设条件的数据标记为待等量搬移,并将所述TLC存储区域中满足第二预设条件的数据标记为待等量搬移,包括:

将所述TLC存储区域中未标记为已非等量搬移的数据的读写频率的最大值,与所述SLC存储区域中未标记为待非等量搬移的数据的读写频率的最小值进行比较;

在所述最大值大于所述最小值的情况下,确定所述SLC存储区域中读写频率小于所述最大值且未标记为待非等量搬移的数据量;

在所述数据量不小于所述TLC存储区域中单个TLC型存储单元的容量的情况下,将所述SLC存储区域中读写频率小于所述最大值且未标记为待非等量搬移的数据标记为待等量搬移,并将所述TLC存储区域中读写频率为所述最大值且未标记为已非等量搬移的数据标记为待等量搬移。

本公开还提供一种固态硬盘,包括:控制器、SLC存储区域、TLC存储区域,所述控制器用于:

确定所述SSD的SLC存储区域包括的多个SLC型存储单元所存储的数据的第一读写特征,并确定所述SSD的TLC存储区域包括的多个TLC型存储单元所存储的数据的第二读写特征;

根据所述第一读写特征和所述第二读写特征中的至少一个,对所述TLC存储区域与所述SLC存储区域之间的比例进行调整。

可选地,所述控制器还用于:

将所述SSD的用户数据空间包括的部分存储单元的工作模式设置为TLC模式,以得到所述TLC存储区域;

将所述用户数据空间中除所述部分存储单元外的剩余存储单元的工作模式设置为SLC模式,以得到所述SLC存储区域,其中,请求写入所述SSD的数据将被存储在所述SLC存储区域。

可选地,所述控制器还用于:

将所述SLC存储区域中读写频率低于预设阈值的数据标记为待非等量搬移;

将所述SLC存储区域包括的空闲SLC型存储单元的工作模式由SLC模式转换为TLC模式,以得到空闲TLC型存储单元;

将所述SLC存储区域中标记为待非等量搬移的数据搬移到空闲TLC型存储单元。

可选地,所述控制器还用于:

对所述SLC存储区域中所有数据的读取频率,按照从高到低的顺序进行排序;

将排在后S位的数据标记为待非等量搬移,S为大于0的整数。

可选地,所述控制器还用于:

检测所述SLC存储区域已存储的数据量是否超过预设数值,所述预设数值由所述SSD的标称容量以及所述SLC存储区域已存储的数据量与所述TLC存储区域已存储的数据量之和确定;

在所述SLC存储区域已存储的数据量超过所述预设数值的情况下,将所述SLC存储区域中读写频率低于预设阈值的数据标记为待非等量搬移。

可选地,所述控制器还用于:

在将所述SLC存储区域中标记为待非等量搬移的数据搬移到空闲TLC型存储单元之后,将所述TLC存储区域中标记为待非等量搬移的数据标记为已非等量搬移;

将所述SLC存储区域中满足第一预设条件的数据标记为待等量搬移,并将所述TLC存储区域中满足第二预设条件的数据标记为待等量搬移,其中,所述第一预设条件为:未标记为待非等量搬移,且读写频率小于所述TLC存储区域中未标记为已非等量搬移的数据的读写频率,所述第二预设条件为:未标记为已非等量搬移,且读写频率大于所述SLC存储区域中未标记为待非等量搬移的数据的读写频率;

将所述SLC存储区域包括的空闲SLC型存储单元的工作模式由SLC模式转换为TLC模式,以得到空闲TLC型存储单元;

将所述SLC存储区域中标记为待等量搬移的数据搬移到空闲TLC型存储单元,并将所述TLC存储区域中标记为待等量搬移的数据搬移到所述SLC存储区域包括的空闲SLC型存储单元。

可选地,所述控制器还用于:

在所述SLC存储区域已存储的数据量未超过所述预设数值的情况下,将所述SLC存储区域中读写频率符合第三预设条件的数据记为待等量搬移,并将所述TLC存储区域中读写频率符合第四预设条件的数据记为待等量搬移,其中,所述第三预设条件为:读写频率低于所述TLC存储区域所存储的数据的读写频率,所述第四预设条件为:读写频率高于所述SLC存储区域所存储的数据的读写频率;

将所述SLC存储区域包括的空闲SLC型存储单元的工作模式由SLC模式转换为TLC模式,以得到空闲TLC型存储单元;

将所述SLC存储区域中标记为待等量搬移的数据搬移到空闲TLC型存储单元,并将所述TLC存储区域中标记为待等量搬移的数据搬移到所述SLC存储区域包括的空闲SLC型存储单元。

可选地,所述控制器还用于:

将所述TLC存储区域中未标记为已非等量搬移的数据的读写频率的最大值,与所述SLC存储区域中未标记为待非等量搬移的数据的读写频率的最小值进行比较;

在所述最大值大于所述最小值的情况下,确定所述SLC存储区域中读写频率小于所述最大值且未标记为待非等量搬移的数据量;

在所述数据量不小于所述TLC存储区域中单个TLC型存储单元的容量的情况下,将所述SLC存储区域中读写频率小于所述最大值且未标记为待非等量搬移的数据标记为待等量搬移,并将所述TLC存储区域中读写频率为所述最大值且未标记为已非等量搬移的数据标记为待等量搬移。

通过上述技术方案,对SLC存储区域和TLC存储区域各自所存储的数据的读写特征进行分析,以确定出SLC存储区域包括的多个SLC型存储单元所存储的数据的读写特征,并确定出TLC存储区域包括的多个TLC型存储单元所存储的数据的读写特征。然后,根据确定出的读写特征,对SSD包括的SLC存储区域的大小以及TLC存储区域的大小动态调整一次或多次,可以使SLC存储区域和TLC存储区域各自达到使用寿命的时机尽量一致,避免了一部分存储单元的使用寿命浪费的问题,延长了SSD的生命周期。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是根据一示例性实施例示出的相关技术中的SSD的示意图。

图2是根据一示例性实施例示出的适用于本公开的SSD的示意图。

图3是根据一示例性实施例示出的一种管理存储区域的方法的流程图。

图4是根据一示例性实施例示出的将SLC存储区域中的数据搬移到TLC存储区域的示意图。

图5是根据一示例性实施例示出的将TLC存储区域中的数据搬移到SLC存储区域的示意图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

在对本公开提供的管理存储区域的方法进行说明之前,首先对本公开涉及的相关技术进行说明。如在背景技术中所阐述的,相关技术中的SSD包括:控制器、元数据存储区域、SLC缓存区域以及TLC存储区域。请参考图1,图1是根据一示例性实施例示出的相关技术中的SSD的示意图。相关技术中的SSD响应来自于电子设备的读写请求的过程如下:

响应于来自于电子设备的写入请求,首先将写入SSD的数据暂存于控制器内(即图1所示的“数据写入”),之后在FTL的控制下,在SLC缓存区域为该数据分配存储地址,接着将该数据写入SLC缓存区域中与该存储地址对应的存储单元(即图1所示的“数据写入1”);在这一过程中,伴随该数据产生的元数据(Meta数据)存于元数据存储区域(即图1所示的“元数据写入”)。此外,如在背景技术中所阐述的,在FTL的控制下,缓存在SLC缓存区域中的数据被搬移到TLC存储区域(即图1所示的“数据搬移”)。

在某些情况下,FTL没来得及将缓存在SLC缓存区域中的数据搬移到TLC存储区域,此时,SLC缓存区域的剩余可用存储空间较小,如果SSD需要响应来自于电子设备的大量的写入请求,同理,首先将写入SSD的大量数据暂存于控制器内,之后在FTL的控制下,在TLC存储区域为分配存储地址,将该大量数据直接写入TLC缓存区域中与该存储地址对应的存储单元(即图1所示的“数据写入2”)。

响应于来自于电子设备的读取请求,如果需要读取的数据存储于TLC存储区域,则在FTL的控制下,从TLC存储区域读取数据至控制器(即图1所示的“数据读取1”),接着再将控制器中的数据返回给电子设备,受限于TLC型存储单元的读写性能,读数据的速度较慢;如果需要读取的数据缓存于SLC缓存区域,则在FTL的控制下,直接从SLC缓存区域读取数据至控制器(即图1所示的“数据读取2”),接着再将控制器中的数据返回给电子设备(即图1所示的“数据读取”)。

然而,使用相关技术中的SSD进行数据读写,存在以下缺陷:

1)如在背景技术中所阐述的,对相关技术中的SSD来说,存在SLC缓存区域与TLC存储区域各自达到使用寿命的时机不一致的问题。

2)难以将SLC缓存区域与TLC存储区域之间的比值,设置为最优值。相关技术一般选择SLC缓存区域大约占用3%的SSD的标称容量,使得SLC缓存区域先于TLC存储区域达到使用寿命。无论SLC缓存区域为多大,在SSD的生命周期内,SLC缓存区域只是用于缓存写入SSD的数据,因此由于SLC缓存区域的存在,SSD的用户数据空间(对相关技术中的SSD来说,即为TLC存储区域)相应减小。SLC缓存区域设置得越大,用户数据空间减小得越多。

3)在持续写入数据量大于SLC缓存区域的剩余可用存储空间的大小的的情况下,部分数据会被直接写入TLC存储区域(如图1所示的“数据写入2”),受限于TLC型存储单元的读写性能,写数据的速度较慢。该过程中会出现写入速度显著下降的问题。

4)除需要读取的数据刚好位于SLC缓存区域的情况外,在绝大多数情况下SSD需要从TLC存储区域读取数据,因而SSD的读数据性能较差。

面对上述缺陷,本公开提出一种管理存储区域的方法,用以提高SSD的读写速度。本公开考虑到相关技术中SSD包括的SLC缓存区域不属于用户数据空间,所以提出将SLC缓存区域替换为SLC存储区域,以得到适用于本公开的SSD。也就是说,适用于本公开的SSD包括:控制器、元数据存储区域、SLC存储区域以及TLC存储区域。请参考图2,图2是根据一示例性实施例示出的适用于本公开的SSD的示意图。

其中,适用于本公开的SSD包括的控制器、元数据存储区域以及TLC存储区域的作用,可参考对相关技术中SSD的说明。适用于本公开的SSD包括的SLC存储区域与TLC存储区域的作用相同,均用于存储写入SSD的数据,而不是用于缓存写入SSD的数据,因而SLC存储区域属于用户数据空间,适用于本公开的SSD的用户数据空间较大。

下面对本公开提供的管理存储区域的方法进行说明。本公开提供的管理存储区域的方法适用于图2所示的SSD。请参考图3,图3是根据一示例性实施例示出的一种管理存储区域的方法的流程图。如图3所示,该方法包括以下步骤:

步骤S31:确定所述SSD的SLC存储区域包括的多个SLC型存储单元所存储的数据的第一读写特征,并确定所述SSD的TLC存储区域包括的多个TLC型存储单元所存储的数据的第二读写特征;

步骤S32:根据所述第一读写特征和所述第二读写特征中的至少一个,对所述TLC存储区域与所述SLC存储区域之间的比例进行调整。

本公开为了使SLC存储区域和TLC存储区域各自达到使用寿命的时机尽量相互同步,提出对SSD的用户数据空间进行动态划分,以得出大小可变的SLC存储区域以及大小可变的TLC存储区域。

为了实现动态划分,需要对SLC存储区域和TLC存储区域各自所存储的数据的读写特征进行分析,以确定出SLC存储区域包括的多个SLC型存储单元所存储的数据的读写特征(记为第一读写特征),并确定出TLC存储区域包括的多个TLC型存储单元所存储的数据的读写特征(记为第二读写特征)。然后,根据第一读写特征和第二读写特征中的至少一个,对TLC存储区域与SLC存储区域之间的比例进行调整,也即调整TLC存储区域的大小和SLC存储区域的大小。

由于对适用于本公开的SSD来说,SLC存储区域的大小和TLC存储区域的大小是可以动态调整的,所以如果SLC存储区域和TLC存储区域中的一者有使用寿命,则可以将有使用寿命的存储区域包括的部分存储单元的工作模式调整为另一模式,从而得到有使用寿命的SLC存储区域以及有使用寿命的TLC存储区域。

具体地,如果SLC存储区域先达到使用寿命,且TLC存储区域还有使用寿命,则可以将该TLC存储区域包括的部分存储单元的工作模式由TLC模式切换为SLC模式,以得到有使用寿命的SLC存储区域,因此,相比于相关技术中的SSD,适用于本公开的SSD的生命周期被延长了,避免了相关技术中因TLC存储区域达到使用寿命,而导致的一部分存储单元的使用寿命浪费的问题;如果TLC存储区域先达到使用寿命,且SLC存储区域还有使用寿命,则可以将该SLC存储区域包括的部分存储单元的工作模式由SLC模式切换为TLC模式,以得到有使用寿命的TLC存储区域。

本公开中,通过对SSD包括的SLC存储区域的大小以及TLC存储区域的大小动态调整一次或多次,可以使SLC存储区域和TLC存储区域各自达到使用寿命的时机尽量一致,避免了一部分存储单元的使用寿命浪费的问题,延长了SSD的生命周期。

可选地,所述方法还包括:

将所述SSD的用户数据空间中的部分存储单元的工作模式设置为TLC模式,以得到所述TLC存储区域;

将所述用户数据空间中除所述部分存储单元外的剩余存储单元的工作模式设置为SLC模式,以得到所述SLC存储区域,其中,请求写入所述SSD的数据将被存储在所述SLC存储区域。

本公开中,在对SSD包括的SLC存储区域的大小以及TLC存储区域的大小进行动态调整之前,可以对该SSD的用户数据空间包括的各个存储单元的工作模式进行初始化。该初始化的过程如下:

首先,将SSD的用户数据空间包括的部分存储单元的工作模式设置为TLC模式,以得到TLC存储区域。然后,将用户数据空间中除TLC存储区域外剩余的存储单元的工作模式设置为SLC模式,以得到SLC存储区域。

考虑到SLC型存储单元的读写速度均高于TLC型存储单元的读写速度,为了提高SSD的读写速度,本公开提出将电子设备请求写入的数据存储到SLC存储区域。

对适用于本公开的SSD来说,响应来自于电子设备的读写请求的过程如下:

响应于来自于电子设备的写入请求,首先将写入SSD的数据暂存于控制器内(即图2所示的“数据写入”),之后在FTL的控制下,在SLC存储区域为该数据分配存储地址,接着将该数据写入SLC存储区域中与该存储地址对应的存储单元(即图2所示的“数据写入1”);在这一过程中,伴随该数据产生的元数据(Meta数据)存于元数据存储区域(即图2所示的“元数据写入”)。

由于请求写入SSD的数据将被存储在SLC存储区域,所以从提高写入速度的角度考虑,SLC存储区域越大越好,因此,一种可选的初始化方式是:预置一个阈值作为TLC存储区域的最低容量,该阈值即为上述部分存储单元的数量,按照该阈值初始化TLC存储区域的大小(如图2中的双点划线所示)。在按照该阈值划分出TLC存储区域后,可以将用户数据空间中剩余的存储单元的工作模式设置为SLC模式,以将SLC存储区域的大小初始化为最大,进而实现最大化地提高SSD的写入速度。

响应于来自于电子设备的读取请求,如果需要读取的数据存储于TLC存储区域,则在FTL的控制下,从TLC存储区域读取数据至控制器(即图2所示的“数据读取1”),接着再将控制器中的数据返回给电子设备,受限于TLC型存储单元的读写性能,读数据的速度较慢;如果需要读取的数据缓存于SLC缓存区域,则在FTL的控制下,直接从SLC缓存区域读取数据至控制器(即图2所示的“数据读取2”),接着再将控制器中的数据返回给电子设备(即图2所示的“数据读取”)。

为了进一步提高SSD的读写速度,本公开提出对写入SSD的数据进行数据搬移,以实现将不同读写特征的数据,存储到对应的存储单元中。具体过程如下:

首先,可以对SSD已做出响应的读写请求进行统计,得出SSD所存储的数据的读写特征。其中,数据的读写特征可以包括:该数据在某一历史段时间段的读写频率,或者该数据在某一未来时间段的读写频率。为描述方便,可以将读写频率较高的数据称为热数据,以表征电子设备针对该数据的读写请求较多;同理,将读写频率较低的数据称为冷数据,以表征电子设备针对该数据的读写请求较少。

然后,对写入SSD的数据(即因对电子设备的写入请求进行响应,而存储到SLC存储区域中的数据)的读写特征进行分析,将其中的冷数据搬移到TLC存储区域中,将其中的热数据保留在SLC存储区域中(即图2所示的“冷数据搬移”)。

随着SSD响应读写请求的进行,TLC存储区域以及SLC存储区域各自所存储的数据的数据特征会发生变化,有些数据可能从冷数据变成了热数据,有些数据可能从热数据变成了冷数据,如果TLC存储区域中有数据的冷热程度高于SLC存储区域中的任一数据,则可以将该数据搬移到SLC存储区域中(即图2所示的“热数据搬移”)。

SSD多次执行以上数据搬移过程,可以保证SLC存储区域中存储的数据的冷热程度均高于TLC存储区域中存储的数据的冷热程度,这样,可以最大化利用SLC型存储单元的读写速度,以进一步提高SSD的读写速度。

上述数据搬移过程中,如果是进行冷数据搬移,则需要在TLC存储区域中开辟用于存储来自于SLC存储区域的冷数据的存储单元;如果是进行热数据搬移,则需要在SLC存储区域中开辟用于存储来自于TLC存储区域的热数据的存储单元。

在初始化过程完成后的一段时间内,TLC存储区域中有空闲TLC型存储单元,可以进行冷数据搬移,随着冷数据搬移的进行,TLC存储区域中的所有存储单元都被占用,没有空闲TLC型存储单元;然而,由于SLC存储区域通常较大,所以在初始化过程完成后的所有时间内,SLC存储区域中通常有空闲SLC型存储单元。在没有空闲TLC型存储单元,且有空闲SLC型存储单元的情况下,需要执行步骤S32,将空闲SLC型存储单元的工作模式由SLC模式转换为TLC模式,从而得到空闲TLC型存储单元,也即:减小SLC存储区域,并增大TLC存储区域。

可选地,为了使SLC存储区域尽可能大,以应对大量的数据读写请求,在每次执行完冷数据搬移后,可以执行步骤S32,将TLC存储区域中剩余的空闲TLC型存储单元的工作模式由TLC模式转换为SLC模式,从而得到空闲SLC型存储单元,也即:增大SLC存储区域,并减小TLC存储区域。

可见,在数据搬移过程中,如果空闲存储单元的总容量不够,可以执行步骤S32。由于本公开提出的数据搬移可以分为两种:等量数据搬移和非等量数据搬移,所以步骤S32的实施方式有所不同。下面对步骤S32的实施方式以及对应的数据搬移过程进行说明。

下面对非等量数据搬移过程,以及非等量数据搬移过程中可能执行的步骤S32的实施方式进行说明。

非等量数据搬移过程中可能执行的步骤S32的实施方式包括以下步骤:

将所述SLC存储区域中读写频率低于预设阈值的数据标记为待非等量搬移;

将所述SLC存储区域包括的空闲SLC型存储单元的工作模式由SLC模式转换为TLC模式,以得到空闲TLC型存储单元;

所述方法还包括:

将所述SLC存储区域中标记为待非等量搬移的数据搬移到空闲TLC型存储单元。

如前所述,SLC存储区域通常存储的是热数据,可以将其中较冷的数据搬移到TLC存储区域。因此,可以对SLC存储区域中的数据的读写特征进行统计,利用预设阈值衡量SLC存储区域中的数据是否应该被标记为非等量搬移,然后将读写频率低于预设阈值数据标记为待非等量搬移。

其中,预设阈值可以是电子设备、SSD或用户预先设定的。可选地,预设阈值还可以由以下公式得到:

其中,Gtotal=GSLC+GTLC,GSLC表示SLC存储区域已存储的数据量,GTLC表示TLC存储区域已存储的数据量,G表示SSD的标称容量。

可选地,将所述SLC存储区域所存储的读写频率低于预设阈值的数据标记为待非等量搬移,包括:

对所述SLC存储区域中所有数据的读取频率,按照从高到低的顺序进行排序;

将排在后S位的数据标记为待非等量搬移,S为大于0的整数。

可选地,还可以根据SLC存储区域中所有数据的读写特征,衡量SLC存储区域中的数据是否应该被标记为非等量搬移。为此,首先对SLC存储区域中所有数据的读取频率,按照从高到低的顺序进行排序,然后,将排在后S为的数据标记为待非等量搬移。其中,S的大小可以是电子设备、SSD或用户预先设定的。

在确定出待非等量搬移的数据后,检测TLC存储区域中是否有空闲TLC型存储单元,如果TLC存储区域中有空闲TLC型存储单元,则可以将标记为待非等量搬移的数据搬移到空闲TLC型存储单元;如果TLC存储区域中没有空闲TLC型存储单元,则可以将空闲SLC型存储单元的工作模式由SLC模式转换为TLC模式,从而得到空闲TLC型存储单元,接着将SLC存储区域中标记为待非等量搬移的数据搬移到空闲TLC型存储单元。请参考图4,图4是根据一示例性实施例示出的将SLC存储区域中的数据搬移到TLC存储区域的示意图。

可选地,所述方法还包括:

检测所述SLC存储区域已存储的数据量是否超过预设数值,所述预设数值由所述SSD的标称容量以及所述SLC存储区域已存储的数据量与所述TLC存储区域已存储的数据量之和确定;

将所述SLC存储区域中读写频率低于预设阈值的数据标记为待非等量搬移,包括:

在所述SLC存储区域已存储的数据量超过所述预设数值的情况下,将所述SLC存储区域中读写频率低于预设阈值的数据标记为待非等量搬移。

考虑到非等量数据搬移是将标记为待非等量搬移的数据,从SLC存储区域中的数据搬移到TLC存储区域,非等量数据搬移完成之后,如果还需要读取该数据,则需要从TLC存储区域中读取,导致读取速度降低。因而本公开提出预设数值,用于衡量SLC存储区域的剩余可用空间是否足够应对即将到来的数据读写请求。其中,预设阈值可以通过对SSD已做出响应的读写请求的数量得出,也可以由电子设备、SSD或用户预先设定。

在SLC存储区域已存储的数据量超过预设数值的前提下,进行非等量数据搬移。如果SLC存储区域已存储的数据量超过预设数值,则说明SLC存储区域的剩余可用空闲不足以应对即将到来的数据读写请求,需要将SLC存储区域中的部分数据搬移到TLC存储区域中,进而开辟出较多的空闲SLC型存储单元。

下面对等量数据搬移过程,以及等量数据搬移过程中可能执行的步骤S32的实施方式进行说明。

等量数据搬移过程中可能执行的步骤S32的实施方式包括以下步骤:

在所述SLC存储区域已存储的数据量未超过所述预设数值的情况下,将所述SLC存储区域中读写频率符合第三预设条件的数据记为待等量搬移,并将所述TLC存储区域中读写频率符合第四预设条件的数据记为待等量搬移,其中,所述第三预设条件为:读写频率低于所述TLC存储区域所存储的数据的读写频率,所述第四预设条件为:读写频率高于所述SLC存储区域所存储的数据的读写频率;

将所述SLC存储区域包括的空闲SLC型存储单元的工作模式由SLC模式转换为TLC模式,以得到空闲TLC型存储单元;

所述方法还包括:

将所述SLC存储区域中标记为待等量搬移的数据搬移到空闲TLC型存储单元,并将所述TLC存储区域中标记为待等量搬移的数据搬移到所述SLC存储区域包括的空闲SLC型存储单元。

等量数据搬移是指:SLC存储区域中待等量搬移的数据的总量,与TLC存储区域中待等量搬移的数据的总量是相等的,从SLC存储区域中搬走多少数据,相应地,从TLC存储区域中搬来多少数据。SLC存储区域以及TLC存储区域各自所存储的数据量,不因等量数据搬移而发生变化。

通常情况下,不进行等量数据搬移,以节约SSD的功耗。因而,执行等量数据搬移,是有前提条件的,该前提条件为:TLC存储区域中某些数据的读写频率高于SLC存储区域中某些数据的读写频率,并且SLC存储区域中有足够的数据的读写频率均低于TLC存储区域中某些数据的读写频率。由于3个SLC型存储单元的总容量等于单个TLC型存储单元的总容量,所以,如果SLC存储区域中读写频率较低的数据的总量达到或超过单个TLC型存储单元的总容量,并且这些读写频率较低的数据的读写频率均低于TLC存储区域中某些数据的读写频率,则可以进行等量数据搬移。

与进行非等量数据搬移相比,进行等量数据搬移发生在SLC存储区域已存储的数据量未超过预设数值的情况下。进行等量数据搬移的过程如下:

首先,将SLC存储区域所处存储的所有数据的读写频率,分别与TLC存储区域所存储的所有数据的读写频率进行比较,将SLC存储区域中读写频率低于TLC存储区域所存储的数据的读写频率的数据标记为待等量搬移,并将TLC存储区域中读写频率低于SLC存储区域所存储的数据的读写频率的数据标记为待等量搬移。

可选地,为提高将某一数据标记为待等量搬移的效率,可以执行以下步骤:

将所述TLC存储区域中所有数据的读写频率的最大值,与所述SLC存储区域中所有数据的读写频率的最小值进行比较;

在所述最大值大于所述最小值的情况下,确定所述SLC存储区域中读写频率小于所述最大值且未标记为待非等量搬移的数据量;

在所述数据量不小于所述TLC存储区域中单个TLC型存储单元的容量的情况下,将所述SLC存储区域中读写频率小于所述最大值且未标记为待非等量搬移的数据标记为待等量搬移,并将所述TLC存储区域中读写频率为所述最大值且未标记为已非等量搬移的数据标记为待等量搬移。

首先,可以分别对TLC存储区域以及SLC存储区域各自所存储的所有数据的读写频率,按照从高到低的顺序排列,进而确定TLC存储区域中所有数据的读写频率的最大值,并确定SLC存储区域中所有数据的读写频率的最小值,如果该最大值大于该最小值,则说明TLC存储区域中某些数据的读写频率高于SLC存储区域中某些数据的读写频率,有可能执行等量数据搬移,反之,则无需执行等量数据搬移。

在上述最大值大于上述最小值的前提下,确定SLC存储区域中读写频率小于该最大值的数据的总量,并该总量与单个TLC型存储单元的容量进行比较,如果该总量不小于单个TLC型存储单元的容量,则说明SLC存储区域中有足够的数据的读写频率均低于该最大值,可以进行等量数据搬移,反之,则无需进行等量数据搬移。

最后,将TLC存储区域中读写频率为上述最大值的数据标记为待非等量搬移,并将SLC存储区域中读写频率小于上述最大值的数据标记为待等量搬移。

在确定出待等量搬移的数据后,检测TLC存储区域中是否有空闲TLC型存储单元,如果TLC存储区域中有空闲TLC型存储单元,则可以将标记为待非等量搬移的数据搬移到空闲TLC型存储单元;如果TLC存储区域中没有空闲TLC型存储单元,则可以将空闲SLC型存储单元的工作模式由SLC模式转换为TLC模式,从而得到空闲TLC型存储单元,接着将SLC存储区域中标记为待等量搬移的数据搬移到空闲TLC型存储单元,并将TLC存储区域中标记为待等量搬移的数据搬移到空闲SLC型存储单元。请参考图5,图5是根据一示例性实施例示出的将TLC存储区域中的数据搬移到SLC存储区域的示意图。

可选地,在将所述SLC存储区域中标记为待非等量搬移的数据搬移到空闲TLC型存储单元之后,所述方法还包括:

将所述TLC存储区域中标记为待非等量搬移的数据标记为已非等量搬移;

根据所述第一读写特征和所述第二读写特征中的至少一个,对所述TLC存储区域与所述SLC存储区域之间的比例进行调整,包括:

将所述SLC存储区域中满足第一预设条件的数据标记为待等量搬移,并将所述TLC存储区域中满足第二预设条件的数据标记为待等量搬移,其中,所述第一预设条件为:未标记为待非等量搬移,且读写频率小于所述TLC存储区域中未标记为已非等量搬移的数据的读写频率,所述第二预设条件为:未标记为已非等量搬移,且读写频率大于所述SLC存储区域中未标记为待非等量搬移的数据的读写频率;

将所述SLC存储区域包括的空闲SLC型存储单元的工作模式由SLC模式转换为TLC模式,以得到空闲TLC型存储单元;

所述方法还包括:

将所述SLC存储区域中标记为待等量搬移的数据搬移到空闲TLC型存储单元,并将所述TLC存储区域中标记为待等量搬移的数据搬移到所述SLC存储区域包括的空闲SLC型存储单元。

可选地,将所述SLC存储区域中满足第一预设条件的数据标记为待等量搬移,并将所述TLC存储区域中满足第二预设条件的数据标记为待等量搬移,包括:

将所述TLC存储区域中未标记为已非等量搬移的数据的读写频率的最大值,与所述SLC存储区域中未标记为待非等量搬移的数据的读写频率的最小值进行比较;

在所述最大值大于所述最小值的情况下,确定所述SLC存储区域中读写频率小于所述最大值且未标记为待非等量搬移的数据量;

在所述数据量不小于所述TLC存储区域中单个TLC型存储单元的容量的情况下,将所述SLC存储区域中读写频率小于所述最大值且未标记为待非等量搬移的数据标记为待等量搬移,并将所述TLC存储区域中读写频率为所述最大值且未标记为已非等量搬移的数据标记为待等量搬移。

在执行完非等量数据搬移之后,还有可能执行等量数据搬移。此时判断是否需要执行等量数据搬移,应该把非等量数据搬移所针对的数据排除在外,因为非等量数据搬移所针对的数据在SLC存储区域中是相对较冷的数据,被搬移到TLC存储区域中后,在TLC存储区域中是相对较热的数据。如果将非等量数据搬移所针对的数据考虑在内,以判断是否需要执行等量数据搬移,则会引发针对同一数据反复搬移的情况,无谓地增加SSD的功耗。

为了把非等量数据搬移所针对的数据排除在外,可以在将SLC存储区域中标记为待非等量搬移的数据搬移到空闲TLC型存储单元之后,将TLC存储区域中标记为待非等量搬移的数据标记为已非等量搬移。这样,非等量数据搬移所针对的数据在SLC存储区域中被标记为待非等量搬移,且在TLC存储区域中被标记为已非等量搬移。因而,可以根据SLC存储区域中未标记为待非等量搬移数据,以及TLC存储区域中未标记为已非等量搬移的数据,判断是否进行等量数据搬移,如果需要进行等量数据搬移,等量数据搬移所搬移的数据也是未被标记为待非等量搬移且未被标记为已非等量搬移的。具体等量数据搬移的过程可参考前文,在此就不再赘述。

基于同一发明构思,本公开还提供一种固态硬盘。该固态硬盘可参考图2。如图2所示,该固态硬盘包括:控制器、SLC存储区域、TLC存储区域,所述控制器用于:

确定所述SSD的SLC存储区域包括的多个SLC型存储单元所存储的数据的第一读写特征,并确定所述SSD的TLC存储区域包括的多个TLC型存储单元所存储的数据的第二读写特征;

根据所述第一读写特征和所述第二读写特征中的至少一个,对所述TLC存储区域与所述SLC存储区域之间的比例进行调整。

可选地,所述控制器还用于:

将所述SSD的用户数据空间包括的部分存储单元的工作模式设置为TLC模式,以得到所述TLC存储区域;

将所述用户数据空间中除所述部分存储单元外的剩余存储单元的工作模式设置为SLC模式,以得到所述SLC存储区域,其中,请求写入所述SSD的数据将被存储在所述SLC存储区域。

可选地,所述控制器还用于:

将所述SLC存储区域中读写频率低于预设阈值的数据标记为待非等量搬移;

将所述SLC存储区域包括的空闲SLC型存储单元的工作模式由SLC模式转换为TLC模式,以得到空闲TLC型存储单元;

将所述SLC存储区域中标记为待非等量搬移的数据搬移到空闲TLC型存储单元。

可选地,所述控制器还用于:

对所述SLC存储区域中所有数据的读取频率,按照从高到低的顺序进行排序;

将排在后S位的数据标记为待非等量搬移,S为大于0的整数。

可选地,所述控制器还用于:

检测所述SLC存储区域已存储的数据量是否超过预设数值,所述预设数值由所述SSD的标称容量以及所述SLC存储区域已存储的数据量与所述TLC存储区域已存储的数据量之和确定;

在所述SLC存储区域已存储的数据量超过所述预设数值的情况下,将所述SLC存储区域中读写频率低于预设阈值的数据标记为待非等量搬移。

可选地,所述控制器还用于:

在将所述SLC存储区域中标记为待非等量搬移的数据搬移到空闲TLC型存储单元之后,将所述TLC存储区域中标记为待非等量搬移的数据标记为已非等量搬移;

将所述SLC存储区域中满足第一预设条件的数据标记为待等量搬移,并将所述TLC存储区域中满足第二预设条件的数据标记为待等量搬移,其中,所述第一预设条件为:未标记为待非等量搬移,且读写频率小于所述TLC存储区域中未标记为已非等量搬移的数据的读写频率,所述第二预设条件为:未标记为已非等量搬移,且读写频率大于所述SLC存储区域中未标记为待非等量搬移的数据的读写频率;

将所述SLC存储区域包括的空闲SLC型存储单元的工作模式由SLC模式转换为TLC模式,以得到空闲TLC型存储单元;

将所述SLC存储区域中标记为待等量搬移的数据搬移到空闲TLC型存储单元,并将所述TLC存储区域中标记为待等量搬移的数据搬移到所述SLC存储区域包括的空闲SLC型存储单元。

可选地,所述控制器还用于:

在所述SLC存储区域已存储的数据量未超过所述预设数值的情况下,将所述SLC存储区域中读写频率符合第三预设条件的数据记为待等量搬移,并将所述TLC存储区域中读写频率符合第四预设条件的数据记为待等量搬移,其中,所述第三预设条件为:读写频率低于所述TLC存储区域所存储的数据的读写频率,所述第四预设条件为:读写频率高于所述SLC存储区域所存储的数据的读写频率;

将所述SLC存储区域包括的空闲SLC型存储单元的工作模式由SLC模式转换为TLC模式,以得到空闲TLC型存储单元;

将所述SLC存储区域中标记为待等量搬移的数据搬移到空闲TLC型存储单元,并将所述TLC存储区域中标记为待等量搬移的数据搬移到所述SLC存储区域包括的空闲SLC型存储单元。

可选地,所述控制器还用于:

将所述TLC存储区域中未标记为已非等量搬移的数据的读写频率的最大值,与所述SLC存储区域中未标记为待非等量搬移的数据的读写频率的最小值进行比较;

在所述最大值大于所述最小值的情况下,确定所述SLC存储区域中读写频率小于所述最大值且未标记为待非等量搬移的数据量;

在所述数据量不小于所述TLC存储区域中单个TLC型存储单元的容量的情况下,将所述SLC存储区域中读写频率小于所述最大值且未标记为待非等量搬移的数据标记为待等量搬移,并将所述TLC存储区域中读写频率为所述最大值且未标记为已非等量搬移的数据标记为待等量搬移。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将固态硬盘的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得固态硬盘执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、RAM存储器、磁碟或者光盘等各种可以存储程序代码的介质。

具体来讲,本申请实施例中的一种数据写入方法对应的计算机程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种数据写入方法对应的计算机程序指令被一固态硬盘读取或被执行时,包括以上管理存储区域的方法的各个步骤。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

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