配置码率的方法、装置及计算机可读存储介质与流程

文档序号:15143900发布日期:2018-08-10 20:13阅读:145来源:国知局

本公开涉及数据存储技术领域,具体地,涉及一种配置码率的方法、装置及计算机可读存储介质。



背景技术:

随着数据存储技术的高速发展,诸如ssd(solidstatedrives,固态硬盘)等等数据存储装置由于具有读写速度快、抗震动、低功耗、无噪音、低热量、以及质量轻等特点,已被广泛应用于军事、车载、工业、医疗、和航空等领域。

在使用数据存储装置(比如ssd)进行数据读写时,可能会产生随机错误。目前,可以通过引入ecc(errorcorrectioncode,纠错码)来纠正随机错误。为此,数据存储装置除存储数据外,还需存储相应的ecc。在使用数据存储装置的初期,该数据存储装置相对比较可靠,因此可以使用较高码率的ecc。随着数据存储装置的使用时长的增加,数据存储装置变得越来越不可靠,相应地,需要使用较低码率的ecc,以保证存储的数据准确性。

然而,如果使用较低码率的ecc,则需要将较多位数的ecc存入数据存储装置,较多位数的ecc占用了原本用于存储数据的存储空间,导致数据存储装置的利用率较低。



技术实现要素:

本公开的目的是提供一种配置码率的方法、装置及计算机可读存储介质,以在确保存储的数据的准确性的前提下,提高数据存储装置的利用率。

为了达到上述目的,本公开第一方面提供了一种配置码率的方法,所述方法包括:

确定数据存储装置的第一存储区域和第二存储区域,所述第一存储区域的读写错误率低于所述第二存储区域的读写错误率;

为所述第一存储区域配置第一码率的ecc,并为所述第二存储区域配置第二码率的ecc,所述第一码率高于所述第二码率。

可选地,所述第二码率的数量为一个或多个,在所述第二码率的数量是多个时,所述第一码率分别高于多个所述第二码率。

可选地,确定数据存储装置的第一存储区域和第二存储区域,包括:

将所述数据存储装置中工作模式为pslc模式的存储区域确定为所述第一存储区域;

将所述数据存储装置中工作模式为mlc模式或tlc模式的存储区域确定为所述第二存储区域。

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

将元数据、时间戳以及ftl映射表中的至少一者存储至所述第一存储区域中,所述ftl映射表用于表征主机发送的逻辑地址与所述ssd的物理地址之间的对应关系。

本公开第二方面提供了一种配置码率的装置,所述装置包括:

确定模块,用于确定数据存储装置的第一存储区域和第二存储区域,所述第一存储区域的读写错误率低于所述第二存储区域的读写错误率;

配置模块,用于为所述第一存储区域配置第一码率的ecc,并为所述第二存储区域配置第二码率的ecc,所述第一码率高于所述第二码率。

可选地,所述第二码率的数量为一个或多个,在所述第二码率的数量是多个时,所述第一码率分别高于多个所述第二码率。

可选地,所述确定模块包括:

第一确定子模块,用于将所述数据存储装置中工作模式为pslc模式的存储区域确定为所述第一存储区域;

第二确定子模块,用于将所述数据存储装置中工作模式为mlc模式或tlc模式的存储区域确定为所述第二存储区域。

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

存储模块,用于将元数据、时间戳以及ftl映射表中的至少一者存储至所述第一存储区域中,所述ftl映射表用于表征主机发送的逻辑地址与所述ssd的物理地址之间的对应关系。

本公开第三方面提供了一种配置码率的装置,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行本公开第一方面所述的配置码率的方法。

本公开第四方面提供了一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开第一方面所述的配置码率的方法的步骤。

通过上述技术方案,根据数据存储装置的各个存储区域的读写错误率,为各个存储区域配置相应码率的ecc,以达到在保证存储的数据的准确性的前提下,通过为读写错误率较低的存储区域配置较低码率的ecc,将更多的数据存储到该读写错误率较低的存储区域,因为读写错误率较低的存储区域本身的可靠性较高,其并不需要较多位数的ecc来保证存储的数据的准确性,如果对读写错误率较低的存储区域均配置较高码率的ecc,相当于该读写错误率较低的存储区域存储有多位不必要的ecc,造成了存储空间的浪费,采用本公开实施例提供的配置码率的方法,可以避免存储空间的浪费,在确保存储的数据的准确性的前提下,提高了数据存储装置的利用率。

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

附图说明

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

图1是本公开实施例提供的配置码率的方法的流程图。

图2是本公开实施例提供的配置码率的方法的示意图。

图3是本公开实施例提供的配置码率的装置的示意图。

具体实施方式

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

本公开实施例提供了一种配置码率的方法,该方法应用于数据存储装置。数据存储装置例如可以是ssd,即,用固态电子存储芯片阵列制成的硬盘。目前,ssd的存储介质一般可以有两种,一种是采用闪存(flash)芯片作为存储介质,另外一种是采用动态随机存取存储器(dynamicrandomaccessmemory,dram)作为存储介质。其中,采用flash芯片作为存储介质的ssd,它的外观可以被制作成多种模样,例如:笔记本硬盘、微硬盘、存储卡等样式。以本公开实施例提供的方法应用于ssd为例,由ssd中的主控制器执行该方法。

图1是本公开实施例提供的配置码率的方法的流程图。如图1所示,该方法包括以下步骤:

步骤s11:确定数据存储装置的第一存储区域和第二存储区域,所述第一存储区域的读写错误率低于所述第二存储区域的读写错误率;

步骤s12:为所述第一存储区域配置第一码率的ecc,并为所述第二存储区域配置第二码率的ecc,所述第一码率高于所述第二码率。

本公开实施例中,根据数据存储装置的各个存储区域本身的特性,例如各个存储区域的读写错误率,将数据存储装置包括的各个存储区域分为两大类型:第一存储区域和第二存储区域。一种实施方式是:将读写错误率较低的存储区域确定为第一存储区域,并将读写错误率较高的存储区域确定为第二存储区域。

然后,为不同类型的存储区域配置不同码率的ecc。因为不同类型的存储区域的读写错误率不同,所以不同类型的存储区域中需要存储的ecc的位数也不同,读写错误率较高的存储区域需要存储较多位数的ecc才能保证存储的数据的准确性,而读写错误率较低的存储区域仅需要存储较少位数的ecc就能保证存储的数据的准确性,剩余的存储空间即可用于存储更多的数据。

一个存储区域存储较多位数的ecc,相当于为该存储区域配置较低码率的ecc;一个存储区域存储较少位数的ecc,相当于为该存储区域配置较高码率的ecc。因此,一种实施方式是:为第一存储区域配置第一码率的ecc,并为第二存储区域配置第二码率的ecc,第一码率高于第二码率。

本公开实施例提出了根据数据存储装置的各个存储区域的读写错误率,为各个存储区域配置相应码率的ecc,以达到在保证存储的数据的准确性的前提下,通过为读写错误率较低的存储区域配置较低码率的ecc,将更多的数据存储到该读写错误率较低的存储区域,因为读写错误率较低的存储区域本身的可靠性较高,其并不需要较多位数的ecc来保证存储的数据的准确性,如果对读写错误率较低的存储区域均配置较高码率的ecc,相当于该读写错误率较低的存储区域存储有多位不必要的ecc,造成了存储空间的浪费,采用本公开实施例提供的配置码率的方法,可以避免存储空间的浪费,在确保存储的数据的准确性的前提下,提高了数据存储装置的利用率。

可选地,所述第二码率的数量为一个或多个,在所述第二码率的数量是多个时,所述第一码率分别高于多个所述第二码率。

本公开实施例中,在为第一存储区域配置第一码率的ecc的条件下,第一码率始终是整个数据存储装置中的最高码率。针对第二存储区域配置何种码率的ecc,有且不限于以下两种实施方式:

一种实施方式是:为第二存储区域配置固定码率的ecc,且该固定码率低于第一码率。在该实施方式中,第二存储区域中存储固定位数的ecc,该固定位数的ecc始终能够保证第二存储区域存储的数据的准确性。

另一种实施方式是:为第二存储区域配置可变码率的ecc,且该可变码率包括多个码率,多个码率均低于第一码率。在该实施方式中,第二存储区域支持可变码率的ecc,第二存储区域存储可变位数的ecc,在使用第二存储区域的初期,第二存储区域的可靠性较高,因此为第二存储区域配置较低码率且低于第一码率的ecc,第二存储区域存储较少位数的ecc,剩余的存储空间即可用于存储更多的数据;随着第二存储区域的使用时长的增加,第二存储区域的可靠性逐渐降低,因此为第二存储区域配置较高码率且低于第一码率的ecc,第二存储区域存储较多位数的ecc。采用该实施方式,在使用第二存储区域的初期,仍然可以利用第二存储区域中除ecc占用的存储空间外剩余的存储空间存储更多的数据,提高了数据存储装置的利用率。

可选地,结合以上各个实施方式,步骤s11包括:

将所述数据存储装置中工作模式为pslc模式的存储区域确定为所述第一存储区域;

将所述数据存储装置中工作模式为mlc模式或tlc模式的存储区域确定为所述第二存储区域。

根据使用需求,数据存储装置中各个存储区域的工作模式被配置成多种工作模式中的任一种,例如:pslc(pseudosingle-levelcell,伪单层单元)模式、mlc(multi-levelcell,多层单元)模式或tlc(trinary-levelcell,三层单元)模式。

本发明实施例利用了工作模式为pslc模式的存储区域(简称pslc区域)具有较低错误率的特性,将pslc区域确定为第一存储区域,进而为pslc区域配置第一码率的ecc。

并且,本发明实施例利用了工作模式为mlc模式或tlc模式的存储区域(简称mlc区域或tlc区域)具有较高错误率的特性,将mlc区域或tlc区域确定为第二存储区域,进而为mlc区域或tlc区域配置第二码率的ecc。

示例地,图2是本公开实施例提供的配置码率的方法的示意图。如图2所示,为pslc区域配置数据存储装置中的最高码率的ecc,为tlc区域配置多个码率的ecc。

可选地,结合以上各个实施方式,所述方法还包括:

将元数据、时间戳以及ftl映射表中的至少一者存储至所述第一存储区域中,所述ftl映射表用于表征主机发送的逻辑地址与所述ssd的物理页面之间的对应关系。

在为第一存储区域配置第一码率的ecc之后,由于第一存储区域存储较少位数的ecc,所以剩余的存储空间较多,因此将元数据、时间戳以及ftl(flashtranslationlayer,闪存转换层)映射表中的至少一者存储到剩余的存储空间,以充分利用数据存储装置的存储空间。

在第一存储区域是pslc区域,且第二存储区域是mlc区域或tlc区域的情况下,本发明实施例还利用了pslc区域的读取时间比mlc区域或tlc区域的读取时间稍快的特性,将元数据、时间戳以及ftl映射表中的至少一者存储到pslc区域,增加了元数据、时间戳以及ftl映射表的搜索效率。如图2所示,图2以将元数据、时间戳以及ftl映射表均存储到pslc区域为例示意。

并且,本发明实施例还利用了pslc区域的读写错误率比mlc区域或tlc区域的读写错误率低的特性,将元数据、时间戳以及ftl映射表中的至少一者存储到pslc区域,增加了元数据、时间戳以及ftl映射表的准确性,且由于ftl映射表准确性的增加,进一步提高了ftl算法的稳定性。

基于同一发明构思,本公开实施例还提供了一种配置码率的装置。图3是本公开实施例提供的配置码率的装置的示意图。如图3所示,该装置300包括:

确定模块301,用于确定数据存储装置的第一存储区域和第二存储区域,所述第一存储区域的读写错误率低于所述第二存储区域的读写错误率;

配置模块302,用于为所述第一存储区域配置第一码率的ecc,并为所述第二存储区域配置第二码率的ecc,所述第一码率高于所述第二码率。

可选地,所述第二码率的数量为一个或多个,在所述第二码率的数量是多个时,所述第一码率分别高于多个所述第二码率。

可选地,所述确定模块包括:

第一确定子模块,用于将所述数据存储装置中工作模式为pslc模式的存储区域确定为所述第一存储区域;

第二确定子模块,用于将所述数据存储装置中工作模式为mlc模式或tlc模式的存储区域确定为所述第二存储区域。

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

存储模块,用于将元数据、时间戳以及ftl映射表中的至少一者存储至所述第一存储区域中,所述ftl映射表用于表征主机发送的逻辑地址与所述ssd的物理地址之间的对应关系。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开实施例还提供了一种配置码率的装置,所述装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:执行实现上述配置码率的方法的步骤。

本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现上述配置码率的方法的步骤。

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

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

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

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