CN111767165B - 数据处理方法、装置及控制设备 - Google Patents
数据处理方法、装置及控制设备 Download PDFInfo
- Publication number
- CN111767165B CN111767165B CN202010611609.8A CN202010611609A CN111767165B CN 111767165 B CN111767165 B CN 111767165B CN 202010611609 A CN202010611609 A CN 202010611609A CN 111767165 B CN111767165 B CN 111767165B
- Authority
- CN
- China
- Prior art keywords
- error
- data
- error correction
- correction mechanism
- storage system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 238000012937 correction Methods 0.000 claims abstract description 347
- 230000007246 mechanism Effects 0.000 claims abstract description 314
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000004044 response Effects 0.000 claims abstract description 34
- 230000008859 change Effects 0.000 claims abstract description 20
- 230000015654 memory Effects 0.000 claims abstract description 19
- 238000012545 processing Methods 0.000 claims abstract description 17
- 238000013507 mapping Methods 0.000 claims description 10
- 230000006872 improvement Effects 0.000 claims description 9
- 238000012360 testing method Methods 0.000 claims description 7
- 238000013500 data storage Methods 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 18
- 239000007787 solid Substances 0.000 description 8
- 238000011084 recovery Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请提供了一种数据处理方法、装置及控制设备,属于数据存储技术领域。该方法包括:获取存储***的多个块的状态影响信息,状态影响信息用于表示块随着数据读写事件的发生而产生的状态变化;基于多个块的状态影响信息,获取存储***的第一错误特征,第一错误特征用于表示存储***在应用当前级别的数据纠错机制后的数据读取错误情况;响应于第一错误特征与参考错误特征不匹配,对当前级别的数据纠错机制进行调整,参考错误特征用于表示存储***容许发生的数据读取错误情况。本申请基于存储***不同使用阶段的状态影响信息,动态调整数据纠错机制的级别,提高了数据纠错机制的级别与存储***所需的数据纠错能力的匹配程度。
Description
技术领域
本申请涉及数据存储技术领域,特别涉及一种数据处理方法、装置及控制设备。
背景技术
在从存储***中读取数据时,会发生读取错误的情况,为保证数据读取的准确性,需要对数据进行纠错处理。例如,可以在存储***中应用RAID(Redundant Arrays ofIndependent Disks,独立磁盘冗余阵列)机制进行纠错处理。
应用了RAID机制的存储***在写入原始数据时,还会对应存储一份冗余数据,若原始数据出现错误,可以基于对应的冗余数据,对出现错误的原始数据进行恢复。为保证数据读取的可靠性,存储***的厂家通常会设置一个固定且级别较高的RAID机制来进行数据纠错。
但是,存储***的数据读取错误情况在不同的使用阶段是有差异的,一个固定且级别较高的RAID机制并不能适用于存储***的不同使用阶段。对于存储***的大多数使用阶段,级别较高的RAID机制的数据纠错能力是过剩的,基于级别较高的RAID机制存储的冗余数据会占用过多不必要的存储空间,且数据恢复会消耗过多不必要的计算资源,导致所应用的RAID机制与存储***当前阶段所需的数据纠错能力不匹配。
发明内容
本申请实施例提供了一种数据处理方法、装置及控制设备,能够提高数据纠错机制的级别与存储***所需的数据纠错能力的匹配程度。所述技术方案如下:
根据本申请实施例的一方面,提供了一种数据处理方法,所述方法包括:
获取存储***的多个块的状态影响信息,所述状态影响信息用于表示所述块随着数据读写事件的发生而产生的状态变化;
基于所述多个块的状态影响信息,获取所述存储***的第一错误特征,所述第一错误特征用于表示所述存储***在应用当前级别的数据纠错机制后的数据读取错误情况;
响应于所述第一错误特征与参考错误特征不匹配,对所述当前级别的数据纠错机制进行调整,所述参考错误特征用于表示所述存储***容许发生的数据读取错误情况。
在一种可能的实现方式中,所述响应于所述第一错误特征与参考错误特征不匹配,对所述当前级别的数据纠错机制进行调整,包括下述任一项:
响应于所述第一错误特征大于所述参考错误特征,将所述当前级别的数据纠错机制调整为第一目标级别的数据纠错机制,所述第一目标级别高于所述当前级别;
响应于所述第一错误特征小于所述参考错误特征,将所述当前级别的数据纠错机制调整为第二目标级别的数据纠错机制,所述第二目标级别低于所述当前级别。
在另一种可能的实现方式中,所述响应于所述第一错误特征大于所述参考错误特征,将所述当前级别的数据纠错机制调整为第一目标级别的数据纠错机制,包括:
按照数据纠错机制的级别从低到高的顺序,从高于所述当前级别的数据纠错机制中,依次获取级别高于所述当前级别的数据纠错机制;
响应于所述存储***在本次获取的第一目标级别的数据纠错机制下的错误特征不大于所述参考错误特征,将所述当前级别的数据纠错机制调整为所述第一目标级别的数据纠错机制。
在另一种可能的实现方式中,所述响应于所述第一错误特征小于所述参考错误特征,将所述当前级别的数据纠错机制调整为第二目标级别的数据纠错机制,包括:
按照数据纠错机制的级别从高到低的顺序,从低于所述当前级别的数据纠错机制中,依次获取级别低于当前级别的数据纠错机制;
响应于首次获取到第三目标级别的数据纠错机制,所述存储***在第三目标级别的数据纠错机制下的错误特征大于所述参考错误特征,将所述当前级别的数据纠错机制调整为上一次获取的第二目标级别的数据纠错机制。
在另一种可能的实现方式中,所述参考错误特征为预设的错误特征值,所述第一错误特征大于所述参考错误特征是指所述第一错误特征大于所述预设的错误特征值;所述第一错误特征小于所述参考错误特征是指所述第一错误特征小于所述预设的错误特征值。
在另一种可能的实现方式中,所述参考错误特征为预设的错误特征范围,所述第一错误特征大于所述参考错误特征是指所述第一错误特征大于所述预设的错误特征范围的最大值;所述第一错误特征小于所述参考错误特征是指所述第一错误特征小于所述预设的错误特征范围的最小值。
在另一种可能的实现方式中,所述方法还包括:
响应于满足状态影响信息的获取条件,执行所述获取存储***的多个块的状态影响信息的步骤。
在另一种可能的实现方式中,所述基于所述多个块的状态影响信息,获取所述存储***的第一错误特征,包括:
基于所述多个块的状态影响信息,确定所述多个块的错误特征,所述多个块的错误特征分别用于表示对应的块在应用数据纠错机制前的数据读取错误情况;
根据所述多个块的错误特征,确定所述存储***的第一错误特征。
在另一种可能的实现方式中,所述根据所述多个块的错误特征,确定所述存储***的第一错误特征,包括:
根据所述多个块的错误特征,确定所述存储***的第二错误特征,所述第二错误特征用于表示所述存储***在应用数据纠错机制前的数据读取错误情况;
根据所述第二错误特征和所述当前级别的数据纠错机制,得到所述存储***的第一错误特征。
在另一种可能的实现方式中,所述基于所述多个块的状态影响信息,确定所述多个块的错误特征,包括:
将所述多个块的状态影响信息输入到错误特征模型中,得到所述多个块的错误特征,所述错误特征模型为状态影响信息与错误特征之间的映射模型,是基于多个样本状态影响信息以及对应的样本错误特征进行拟合得到的;所述将所述多个块的状态影响信息输入到错误特征模型中之前,所述错误特征模型的构建方法,包括:
从所述状态影响信息对应的取值范围中选取多个样本状态影响信息,分别构建符合每个样本状态影响信息的块;
对所述符合每个样本状态影响信息的块进行错误特征测试,得到所述符合每个样本状态影响信息的块的样本错误特征;
对所述多个样本状态影响信息以及所述符合每个样本状态影响信息的块的样本错误特征进行拟合处理,得到错误特征模型。
在另一种可能的实现方式中,所述多个块在所述存储***中均匀分布,且所述多个块的数量满足目标条件;
在另一种可能的实现方式中,所述状态影响信息包括编程擦除次数、数据放置时间、数据读取次数和温度变化量中的至少一个。
根据本申请实施例的另一方面,提供了一种数据处理装置,所述装置包括:
第一获取模块,用于获取存储***的多个块的状态影响信息,所述状态影响信息用于表示所述块随着数据读写事件的发生而产生的状态变化;
第二获取模块,用于基于所述多个块的状态影响信息,获取所述存储***的第一错误特征,所述第一错误特征用于表示所述存储***在应用当前级别的数据纠错机制后的数据读取错误情况;
调整模块,用于响应于所述第一错误特征与参考错误特征不匹配,对所述当前级别的数据纠错机制进行调整,所述参考错误特征用于表示所述存储***容许发生的数据读取错误情况。
在一种可能的实现方式中,所述调整模块,包括:
第一调整子模块,用于响应于所述第一错误特征大于所述参考错误特征,将所述当前级别的数据纠错机制调整为第一目标级别的数据纠错机制,所述第一目标级别高于所述当前级别;
第二调整子模块,用于响应于所述第一错误特征小于所述参考错误特征,将所述当前级别的数据纠错机制调整为第二目标级别的数据纠错机制,所述第二目标级别低于所述当前级别。
在另一种可能的实现方式中,所述第一调整子模块,用于:
按照数据纠错机制的级别从低到高的顺序,从高于所述当前级别的数据纠错机制中,依次获取级别高于所述当前级别的数据纠错机制;
响应于所述存储***在本次获取的第一目标级别的数据纠错机制下的错误特征不大于所述参考错误特征,将所述当前级别的数据纠错机制调整为所述第一目标级别的数据纠错机制。
在另一种可能的实现方式中,所述第二调整子模块,用于:
按照数据纠错机制的级别从高到低的顺序,从低于所述当前级别的数据纠错机制中,依次获取级别低于当前级别的数据纠错机制;
响应于首次获取到第三目标级别的数据纠错机制,所述存储***在第三目标级别的数据纠错机制下的错误特征大于所述参考错误特征,将所述当前级别的数据纠错机制调整为上一次获取的第二目标级别的数据纠错机制。
在另一种可能的实现方式中,所述参考错误特征为预设的错误特征值,所述第一错误特征大于所述参考错误特征是指所述第一错误特征大于所述预设的错误特征值;所述第一错误特征小于所述参考错误特征是指所述第一错误特征小于所述预设的错误特征值。
在另一种可能的实现方式中,所述参考错误特征为预设的错误特征范围,所述第一错误特征大于所述参考错误特征是指所述第一错误特征大于所述预设的错误特征范围的最大值;所述第一错误特征小于所述参考错误特征是指所述第一错误特征小于所述预设的错误特征范围的最小值。
在另一种可能的实现方式中,所述第一获取模块,用于响应于满足状态影响信息的获取条件,获取存储***的多个块的状态影响信息。
在另一种可能的实现方式中,所述第二获取模块,包括:
第一确定子模块,用于基于所述多个块的状态影响信息,确定所述多个块的错误特征,所述多个块的错误特征分别用于表示对应的块在应用数据纠错机制前的数据读取错误情况;
第二确定子模块,用于根据所述多个块的错误特征,确定所述存储***的第一错误特征。
在另一种可能的实现方式中,所述第二确定子模块,用于:
根据所述多个块的错误特征,确定所述存储***的第二错误特征,所述第二错误特征用于表示所述存储***在应用数据纠错机制前的数据读取错误情况;
根据所述第二错误特征和所述当前级别的数据纠错机制,得到所述存储***的第一错误特征。
在另一种可能的实现方式中,所述第一确定子模块,用于:
将所述多个块的状态影响信息输入到错误特征模型中,得到所述多个块的错误特征,所述错误特征模型为状态影响信息与错误特征之间的映射模型,是基于多个样本状态影响信息以及对应的样本错误特征进行拟合得到的;所述将所述多个块的状态影响信息输入到错误特征模型中之前,所述错误特征模型的构建方法,包括:
从所述状态影响信息对应的取值范围中选取多个样本状态影响信息,分别构建符合每个样本状态影响信息的块;
对所述符合每个样本状态影响信息的块进行错误特征测试,得到所述符合每个样本状态影响信息的块的样本错误特征;
对所述多个样本状态影响信息以及所述符合每个样本状态影响信息的块的样本错误特征进行拟合处理,得到错误特征模型。
在另一种可能的实现方式中,所述多个块在所述存储***中均匀分布,且所述多个块的数量满足目标条件。
在另一种可能的实现方式中,所述状态影响信息包括编程擦除次数、数据放置时间、数据读取次数和温度变化量中的至少一个。
根据本申请实施例的另一方面,提供了一种控制设备,所述控制设备包括处理器和存储器;所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现上述任一可能实现方式所述的数据处理方法。
根据本申请实施例的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述至少一条指令由处理器执行,以实现上述任一可能实现方式所述的数据处理方法。
本申请实施例提供的技术方案,基于数据读写事件的发生对块的状态影响,来获取存储***在当前级别的数据纠错机制下的数据读写错误情况,如果存储***当前的数据读写错误情况与其容许发生的数据读写错误情况不匹配,则对所应用的当前级别的数据纠错机制进行调整,以使存储***在调整后的数据纠错机制下的数据读写错误情况满足匹配条件,从而随着存储***的状态变化,动态调整为不同级别的数据纠错机制,满足存储***在不同使用阶段的数据纠错能力需求,减少由于数据纠错机制级别过高而导致的冗余数据占用过多存储空间,数据恢复消耗过多计算资源的问题,提高数据纠错机制的级别与存储***所需的数据纠错能力的匹配程度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的示意图;
图2是本申请实施例提供的一种数据处理方法的流程图;
图3是本申请实施例提供的一种数据处理方法的流程图;
图4是本申请实施例提供的一种周期性调整数据纠错机制的级别的流程图;
图5是本申请实施例提供的一种数据处理方法的流程图;
图6是本申请实施例提供的一种错误特征模型的构建方法的流程图;
图7是本申请实施例提供的一种数据处理装置的框图;
图8是本申请实施例提供的一种控制设备的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任意变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
为了方便理解,下面对本申请实施例中涉及的名词进行解释说明。
RAID机制:一种应用在存储***中的数据纠错机制。基于RAID机制在写入原始数据时,同时存储对应的冗余数据,以在原始数据出错时,基于冗余数据对原始数据进行恢复。RAID机制可以划分为RAID 0、RAID 1、RAID 2、RAID 3、RAID 4、RAID 5、RAID 6、RAID 0+1、RAID1+0等级别中的任意多种。在实际应用过程中,RAID机制还可以在应用方式上进行细分,例如,RAID机制还可以进一步划分为以plane(平面,由多个块组成)为单位应用的RAID、以die(核心,由多个平面组成)为单位应用的RAID等。
SSD(Solid State Disk,固态硬盘):一种主要以NAND flash memory(NAND闪存,NAND表示not AND,非与)集成电路组件作为持久性存储器的存储设备。
block(块):固态硬盘中数据擦除的最小单元。块由多个page(页)组成,其中,页为固态硬盘中数据读写的最小单元。
垃圾回收(Garbage Collection):在固态硬盘中,将多个块中的有效数据搬移到新的块,对数据搬移后的多个块进行擦除。其中,块中未存储有效数据的页为无效页,也即是垃圾回收所回收的“垃圾”。
磨损平衡(Wear Leveling):块的编程擦除次数是有限的,需要平衡固态硬盘中所有块的编程擦除次数,避免一直针对某些块进行擦除而缩减固态硬盘的使用寿命。
图1是本申请实施例提供的一种实施环境的示意图。参见图1,该实施环境中包括存储***100,存储***100包括存储设备101和控制设备102。
存储设备101可以为固态硬盘,存储设备101可以基于NAND flash memory集成电路组件存储数据。控制设备102为存储***100中的核心控制设备,用于实现如数据的读写寻址、垃圾回收、磨损平衡、数据纠错等控制逻辑。
存储***100中包括一个或多个存储设备101,在一种可能的实现方式中,存储***100中包括至少一个控制设备102,存储***100中的多个存储设备101可以作为一个存储阵列,存储***100中的任一控制设备102可以针对存储阵列中的多个存储设备101同时进行数据纠错机制的级别的调整。
在另一种可能的实现方式中,存储***100中包括至少一个控制设备102,任一控制设备102可以对存储***100中的多个存储设备101分别进行数据纠错机制的级别的调整。
图2是本申请实施例提供的一种数据处理方法的流程图。参见图2,该数据处理方法包括:
201、获取存储***的多个块的状态影响信息,状态影响信息用于表示块随着数据读写事件的发生而产生的状态变化。
数据读写事件的发生会对块造成消耗,使块的状态发生改变,进而通过状态影响信息能够表现出块当前被消耗的程度。
202、基于多个块的状态影响信息,获取存储***的第一错误特征,第一错误特征用于表示存储***在应用当前级别的数据纠错机制后的数据读取错误情况。
随着数据读写事件的发生对块的消耗不断增大,存储***的数据读取错误情况也会随之改变,进而基于多个块的状态影响信息,能够获取到存储***的第一错误特征。
203、响应于第一错误特征与参考错误特征不匹配,对当前级别的数据纠错机制进行调整,参考错误特征用于表示存储***容许发生的数据读取错误情况。
若第一错误特征与参考错误特征不匹配,则当前级别的数据纠错机制的数据纠错能力无法满足存储***当前的数据纠错需求,需要对当前级别的数据纠错机制进行调整,以使调整后的数据纠错机制的数据纠错能力满足存储***当前的数据纠错需求,使第一错误特征与参考错误特征匹配。
本申请实施例提供的技术方案,基于数据读写事件的发生对块的状态影响,来获取存储***在当前级别的数据纠错机制下的数据读写错误情况,如果存储***当前的数据读写错误情况与其容许发生的数据读写错误情况不匹配,则对所应用的当前级别的数据纠错机制进行调整,以使存储***在调整后的数据纠错机制下的数据读写错误情况满足匹配条件,从而随着存储***的状态变化,动态调整为不同级别的数据纠错机制,满足存储***在不同使用阶段的数据纠错能力需求,减少由于数据纠错机制级别过高而导致的冗余数据占用过多存储空间,数据恢复消耗过多计算资源的问题,提高数据纠错机制的级别与存储***所需的数据纠错能力的匹配程度。
图3是本申请实施例提供的一种数据处理方法的流程图。参见图3,在本申请实施例中,以控制设备同时针对存储***中的多个存储设备执行数据处理方法为例进行说明,该实施例包括:
301、控制设备获取存储***的多个块的状态影响信息。
其中,状态影响信息用于表示存储***的块随着数据读写事件的发生而产生的状态变化,数据读写事件可以为数据擦除事件、数据写入事件、数据读取事件和温度变化事件中的至少一个。数据擦除事件为对块上已有的数据进行擦除的事件,数据写入事件为在块中的页上写入数据的事件,数据读取事件为在块中的页上读取数据的事件,温度变化事件为块上的数据所处的温度相较于写入时的温度的变化事件。相应的,状态影响信息可以包括编程擦除次数(PE,Program/Erase Count)、数据放置时间(Data Retention)、数据读取次数(Read Cnt,Read Count)和温度变化量中的至少一个。
上述编程擦除次数为块上已发生的数据擦除事件的数量,例如,某个块的编程擦除次数为10,表示该块已被擦除过10次。数据放置时间用于表示数据已在块中存储的时长,也即,数据放置时间可以为从数据写入事件发生的时间开始至当前时间的时长。数据放置时间可以为基于块上的数据而统计的数据存储时长,数据放置时间也可以为基于块中所包括的页上的数据所统计的数据存储时长。数据读取次数用于表示块上的数据读取情况。数据读取次数可以为块上已发生的数据读取事件的数量。数据读取次数也可以为块中所包括的页上已发生的数据读取事件的数量。温度变化量为块所处的温度与参考温度之间的差值。参考温度可以为数据写入时块所处的温度。
需要说明的一点是,状态影响信息除了包括编程擦除次数、数据放置时间、数据读取次数和温度变化量之外,还可以包括其他用于表示块由于数据读写事件的发生而产生状态变化的参数,在本申请实施例中,对状态影响信息中所包括的参数,不加以限定。
在本申请实施例中,控制设备可以将编程擦除次数、数据放置时间、数据读取次数和温度变化量中的一个或者多个的组合确定为状态影响信息,从多个不同的方面更加真实的表现存储***当前的运行状态,进而基于状态影响信息,能够确定出更加符合存储***当前所需级别的数据纠错机制,提高数据纠错机制的级别与存储***所需的数据纠错能力的匹配程度,在该数据纠错机制下,进一步提升存储***的性能。
需要说明的另一点是,上述多个块可以为存储***中一定数量的任意多个块。上述多个块也可以为存储***中的全部块。上述多个块也可以为在存储***中均匀分布,且上述多个块的数量满足目标条件的多个块。其中,目标条件可以为预设的数量限制条件。目标条件可以为多个块的数量在存储***中所占的比例为目标数值,目标数值可以为大于0且小于1的任一数值,例如,目标数值可以为0.4,假设存储***中全部块的数量为1000,则该多个块可以为分别从存储***全局的各个区域中确定出的400个块。
在本申请实施例中,控制设备基于存储***中均匀分布的部分块,获取存储***的错误特征,在相对较少运算量的基础上,使得所获取的错误特征更加真实的反映存储***当前的数据读取错误情况,进而基于该错误特征,确定出更加符合存储***当前所需的数据纠错机制,从而在提高数据纠错机制的调整效率的基础上,提高数据纠错机制的级别与存储***所需的数据纠错能力的匹配程度,在该数据纠错机制下,进一步提升存储***的性能。
需要说明的另一点是,控制设备可以实时获取存储***的多个块的状态影响信息,基于实时获取到的状态影响信息,确定存储***的数据读取错误情况,进而在存储***的数据读取错误情况不满足条件时,及时对当前级别的数据纠错机制做出调整,提高数据纠错机制的级别与存储***所需的数据纠错能力的匹配程度。
需要说明的另一点是,控制设备也可以在满足状态影响信息的获取条件时,才执行获取存储***的多个块的状态影响信息的步骤。在一种可能的实现方式中,控制设备可以周期性的获取状态影响信息,以周期性的判断是否对当前级别的数据纠错机制做出调整,状态影响信息的获取条件为到达状态影响信息的获取周期。参见图4,控制设备获取存储***的多个块的状态影响信息的步骤可以为:控制设备计算当前时刻t与上一次获取状态影响信息的时刻last_t的差值Δt;响应于Δt大于或等于获取周期T,执行获取存储***的多个块的状态影响信息的步骤,以基于状态影响信息,进行数据纠错机制的级别的动态调整,以及,将last_t赋值为t;响应于Δt小于获取周期T,继续执行计算当前时刻t与上一次获取状态影响信息的时刻last_t的差值Δt的步骤。其中,状态影响信息的获取周期可以为任一长度的时间段,例如,获取周期可以为1天或2天等。
上述过程中,控制设备每隔一段时间获取一次状态影响信息,基于状态影响信息,启动数据纠错机制的调整过程,由于随着存储***使用时间的增长,存储***的数据读取错误情况会发生变化,因此,基于存储***使用时间的变化,周期性的基于状态影响信息,对数据纠错机制进行调整,能够使每次调整后的数据纠错机制与存储***所处使用阶段的数据读取错误情况相匹配,提高数据纠错机制的级别与存储***所需的数据纠错能力的匹配程度,进而提升存储***的数据读写性能。
在另一种可能的实现方式中,存储***每写入一定量的数据,控制设备可以获取一次状态影响信息,以基于状态影响信息进行数据纠错机制的调整过程。状态影响信息的获取条件可以为存储***从上一次获取状态影响信息开始到当前时刻的数据写入量大于或等于目标阈值,相应的,控制设备获取存储***的多个块的状态影响信息的步骤可以为:控制设备获取存储***从上一次获取状态影响信息开始到当前时刻的数据写入量;响应于该数据写入量大于或等于目标阈值,执行获取存储***的多个块的状态影响信息的步骤;响应于该数据写入量小于目标阈值,继续执行获取存储***从上一次获取状态影响信息开始到当前时刻的数据写入量的步骤。其中,目标阈值可以设置为任一表示数据量的数值,如10G、20G等。
上述过程中,控制设备可以随着存储***数据写入量的增大,来获取状态影响信息,以基于状态影响信息,进行数据纠错机制的调整过程,由于数据的写入会对存储***造成损耗,影响存储***的数据读取错误情况,因此,基于数据写入量的变化,来启动数据纠错机制的调整过程,能够使每次调整后的数据纠错机制与存储***所处使用阶段的数据读取错误情况相匹配,提高数据纠错机制的级别与存储***所需的数据纠错能力的匹配程度,进而提升存储***的数据读写性能。
在本申请实施例中,控制设备可以在满足状态影响信息的获取条件时,才获取存储***多个块的状态影响信息,进而基于状态影响信息,进行数据纠错机制的调整过程,在其他时间不执行数据纠错机制的调整过程,能够减少由于执行数据纠错机制的调整过程所消耗的机器资源,降低数据纠错机制的调整成本。
302、控制设备基于多个块的状态影响信息,确定多个块的错误特征。
其中,多个块的错误特征分别用于表示对应的块在应用数据纠错机制前的数据读取错误情况。其中,错误特征可以为错误比特率(BER,Bit Error Rate),错误比特率为读取错误的比特数占总读取比特数的比例。错误特征也可以为任一表示数据读取错误情况的参数,例如,错误特征可以为读取一个page(页)时的错误数据量,在本申请实施例中,对错误特征的具体表示方式不加以限定。
需要说明的是,数据读写事件的发生会使块的状态发生改变,进而会对块的错误特征产生影响,相应的,用于表示块上所发生的数据读写事件的状态影响信息,与错误特征之间存在映射关系,状态影响信息与错误特征之间的映射关系可以由错误特征模型来表示。
控制设备可以将多个块的状态影响信息输入到错误特征模型中,得到多个块的错误特征。其中,错误特征模型为状态影响信息与错误特征之间的映射模型,是基于多个样本状态影响信息以及对应的样本错误特征进行拟合得到的。
在本申请实施例中,控制设备基于易于获取和采集的状态影响信息,得到难以直接测量得到的错误特征,进而基于错误特征,实现对数据纠错机制级别的动态调整,满足存储***在不同使用阶段的数据纠错能力需求,提高数据纠错机制的级别与存储***所需的数据纠错能力的匹配程度。
303、控制设备根据多个块的错误特征,确定存储***的第二错误特征,第二错误特征用于表示存储***在应用数据纠错机制前的数据读取错误情况。
在一种可能的实现方式中,控制设备可以将多个块的错误特征中的最大值,确定为第二错误特征。
在本申请实施例中,用多个块的错误特征中的最大值来表示存储***在应用数据纠错机制前的错误特征,也即,用多个块中数据读取错误情况最差的块来表示存储***在应用数据纠错机制前的错误特征,基于该错误特征对数据纠错机制的级别进行调整,能够在调整后的数据纠错机制下,使最差的块的数据读取错误情况也满足数据读取的准确性条件,进而提高数据读取的准确性。
在另一种可能的实现方式中,控制设备可以将多个块的错误特征的平均值,确定为第二错误特征。
在本申请实施例中,通过多个块的错误特征的平均值来综合表示存储***在应用数据纠错机制前的数据读取错误情况,进而使得调整后的数据纠错机制的数据纠错能力与存储***整体的数据读取错误情况匹配,使存储***整体上保持较优的数据读写性能。
304、控制设备根据第二错误特征和当前级别的数据纠错机制,得到存储***的第一错误特征,第一错误特征用于表示存储***在应用当前级别的数据纠错机制后的数据读取错误情况。
其中,存储***可以应用数据纠错机制来纠正错误数据,例如,数据纠错机制可以为RAID机制。不同级别的数据纠错机制的数据纠错能力不同,数据纠错机制的级别越高,所能纠正的错误数据的位数越多,数据纠错能力越强。例如,RAID 5级别的数据纠错机制可以纠正1位错误数据,RAID 6级别的数据纠错机制可以纠正2位错误数据。控制设备基于数据纠错机制的不同级别,对存储***所应用的数据纠错机制进行调整,以使调整后的数据纠错机制的纠错能力满足存储***的需求。控制设备除了应用数据纠错机制来进行数据纠错之外,还可以结合其他方法进行数据纠错,如ECC(Error Correction Coding,差错检测和修正)算法。
需要说明的一点是,第一错误特征也即存储***在应用当前级别的数据纠错机制进行纠错后,仍发生的数据读取错误情况。第一错误特征与第二错误特征可以分别由两种不同的参数来表示。例如,第二错误特征可以由BER(Bit Error Rate,错误比特率)来表示;第一错误特征可以由UBER(Uncorrectable Bit Error Rate,不可修复的错误比特率)或Error Cnt(Error Count,错误量)等参数来表示。
第一错误特征与第二错误特征也可以由同一种参数来表示。例如,第一错误特征和第二错误特征均由Error Cnt来表示,表示第一错误特征的Error Cnt的数值与表示第二错误特征的Error Cnt的数值不同。在本申请实施例中,对第一错误特征和第二错误特征的表示方式,不加以限定。
不同级别的数据纠错机制的纠错能力不同,应用在存储***上对数据读取错误情况的改善程度也不同。对于任一级别的数据纠错机制,存储***应用该级别的数据纠错机制之前的错误特征与应用该级别的数据纠错机制之后的错误特征是相关的,存在一定的映射关系,任一级别的数据纠错机制应用前后的错误特征之间的映射关系可以由错误改善模型来进行表示。错误改善模型可以基于多组任一级别的数据纠错机制对应的应用前后的错误特征得到。
相应的,步骤304可以通过以下步骤实现:控制设备确定当前级别的数据纠错机制对应的错误改善模型;将第二错误特征输入到该错误改善模型中,得到存储***的第一错误特征。
305、控制设备对比第一错误特征和参考错误特征,基于对比结果,对当前级别的数据纠错机制进行调整,参考错误特征用于表示存储***容许发生的数据读取错误情况。
在实际应用过程中,存储***的性能指标应满足一定的条件,以保证存储***的使用质量。因此,存储***通常设置有参考错误特征,参考错误特征用于表示存储***容许发生的数据读取错误情况。其中,参考错误特征可以为预设的错误特征值,也即是存储***所能容许的应用数据纠错机制后的错误特征的上限,例如,预设的错误特征值可以为0.05。参考错误特征也可以为预设的错误特征范围,也即是存储***所能容许的应用数据纠错机制后的错误特征的上限范围,例如,预设的错误特征范围可以为0.01至0.05。
控制设备可以先对比第一错误特征与参考错误特征,基于对比结果,判断是否对当前级别的数据纠错机制进行调整。
若第一错误特征与参考错误特征匹配,则表示当前级别的数据纠错机制适用于当前的存储***,存储***所应用的数据纠错机制的级别当前无需调整,可以结束本次数据纠错机制的调整过程,不再执行后续的步骤。其中,若参考错误特征为预设的错误特征值,则第一错误特征与参考错误特征匹配是指第一错误特征与预设的错误特征值相等。若参考错误特征为预设的错误特征范围,则第一错误特征与参考错误特征匹配是指第一错误特征落在预设的错误特征范围之内,例如,第一错误特征为0.03,预设的错误特征范围为0.01至0.05,则第一错误特征与预设的错误特征范围匹配。
参见图5,若参考错误特征为预设的错误特征值,则控制设备确定第一错误特征E’之后,将该第一错误特征E’和参考错误特征E*进行对比,可以先判断该第一错误特征E’与参考错误特征E*是否相等;若该第一错误特征E’与参考错误特征E*不相等,再判断该第一错误特征E’是否大于参考错误特征E*。
若第一错误特征与参考错误特征不匹配,则对当前级别的数据纠错机制进行调整。其中,第一错误特征与参考错误特征不匹配包括以下两种情况:
第一、第一错误特征大于参考错误特征。若参考错误特征为预设的错误特征值,则第一错误特征大于参考错误特征是指第一错误特征大于预设的错误特征值。若参考错误特征为预设的错误特征范围,则第一错误特征大于参考错误特征是指第一错误特征大于预设的错误特征范围的最大值,例如,第一错误特征为0.06,预设的错误特征范围为0.01至0.05,则第一错误特征大于参考错误特征。
第二、第一错误特征小于参考错误特征。若参考错误特征为预设的错误特征值,则第一错误特征小于参考错误特征是指第一错误特征小于预设的错误特征值。若参考错误特征为预设的错误特征范围,则第一错误特征小于参考错误特征是指第一错误特征小于预设的错误特征范围的最小值,例如,第一错误特征为0.0002,预设的错误特征范围为0.01至0.05,则第一错误特征小于参考错误特征。
若控制设备确定第一错误特征大于参考错误特征,则表示当前级别的数据纠错机制的纠错能力不能满足当前的存储***的数据纠错需求,需要应用更高级别的数据纠错机制来进行数据纠错,相应的,若第一错误特征大于参考错误特征,可以执行步骤306,调整为级别高于当前级别的数据纠错机制。
若控制设备确定第一错误特征小于参考错误特征,则表示当前级别的数据纠错机制的纠错能力对于当前的存储***来说是过剩的,存储***应用较低级别的数据纠错机制也应能满足当前的存储***的数据纠错需求,相应的,若第一错误特征小于参考错误特征,可以执行步骤307,调整为级别低于当前级别的数据纠错机制。
306、控制设备响应于第一错误特征大于参考错误特征,将当前级别的数据纠错机制调整为第一目标级别的数据纠错机制,第一目标级别高于当前级别。
其中,第一目标级别的数据纠错机制为高于当前级别的数据纠错机制中最低级别,且用于使存储***应用第一目标级别的数据纠错机制后的错误特征不大于参考错误特征的数据纠错机制。
继续参见图5,若第一错误特征E’大于参考错误特征E*,则控制设备可以向高级别的数据纠错机制的方向进行搜索,将当前级别的数据纠错机制调整为第一个获取到的满足第一错误特征E’不大于参考错误特征E*的数据纠错机制。相应的,控制设备响应于第一错误特征大于参考错误特征,将当前级别的数据纠错机制调整为第一目标级别的数据纠错机制的步骤可以为:控制设备按照数据纠错机制的级别从低到高的顺序,从高于当前级别的数据纠错机制中,依次获取级别高于当前级别的数据纠错机制;响应于存储***在本次获取的第一目标级别的数据纠错机制下的错误特征不大于参考错误特征,将当前级别的数据纠错机制调整为第一目标级别的数据纠错机制。
若存储***在本次获取的第一目标级别的数据纠错机制下的错误特征不大于参考错误特征,则结束按照数据纠错机制的级别从低到高的顺序,获取级别高于当前级别的数据纠错机制的步骤。若存储***在任一次获取的数据纠错机制下的错误特征仍大于参考错误特征,则按照数据纠错机制的级别从低到高的顺序,继续获取下一个级别高于本次获取的数据纠错机制级别的数据纠错机制。
需要说明的一点是,控制设备可以根据存储***的第二错误特征和本次获取的数据纠错机制,得到存储***在本次获取的数据纠错机制下的错误特征,进而对比存储***在本次获取的数据纠错机制下的错误特征与参考错误特征,对当前级别的数据纠错机制进行调整。
需要说明的另一点是,若按照数据纠错机制的级别从低到高的顺序未获取到使存储***在应用所获取的数据纠错机制后的错误特征不大于参考错误特征的数据纠错机制,则将当前级别的数据纠错机制调整为最高级别的数据纠错机制。
在本申请实施例中,控制设备在当前级别的数据纠错机制不能满足存储***的数据纠错需求时,将当前级别的数据纠错机制调整为在多个级别的数据纠错机制中级别相对较低的,能够满足存储***当前的数据纠错需求的数据纠错机制,使存储***在应用所确定出的数据纠错机制后的错误特征能够满足存储***的质量要求,并且,由于所确定的数据纠错机制为多个级别的数据纠错机制中级别相对较低的,能够减少由于数据纠错机制级别过高而导致的冗余数据占用过多存储空间,数据恢复消耗过多计算资源的问题,从而提高数据纠错机制的级别与存储***所需的数据纠错能力的匹配程度,在保证存储***数据读取准确性的基础上,进一步提升存储***的数据读写性能。
307、控制设备响应于第一错误特征小于参考错误特征,将当前级别的数据纠错机制调整为第二目标级别的数据纠错机制,第二目标级别低于当前级别。
其中,第二目标级别的数据纠错机制为低于当前级别的数据纠错机制中最低级别,且用于使存储***应用第二目标级别的数据纠错机制后的错误特征不大于参考错误特征的数据纠错机制。
继续参见图5,若第一错误特征E’小于参考错误特征E*,则控制设备可以向低级别的数据纠错机制的方向进行搜索,将当前级别的数据纠错机制调整为满足第一错误特征E’不大于参考错误特征E*的最低级别的数据纠错机制,相应的,控制设备响应于第一错误特征小于参考错误特征,将当前级别的数据纠错机制调整为第二目标级别的数据纠错机制的步骤可以为:控制设备按照数据纠错机制的级别从高到低的顺序,从低于当前级别的数据纠错机制中,依次获取级别低于当前级别的数据纠错机制;响应于首次获取到第三目标级别的数据纠错机制,存储***在第三目标级别的数据纠错机制下的错误特征大于参考错误特征,将当前级别的数据纠错机制调整为上一次获取的第二目标级别的数据纠错机制。
由于控制设备按照数据纠错机制的级别从高到低的顺序,依次获取数据纠错机制,且级别越高的数据纠错机制,数据纠错能力越强,若首次获取到第三目标级别的数据纠错机制,则上一次获取的第二目标级别的数据纠错机制不符合在第二目标级别的数据纠错机制下的错误特征大于参考错误特征,也即,第二目标级别的数据纠错机制是级别最低的,且使存储***在该第二目标级别的数据纠错机制下的错误特征不大于参考错误特征的数据纠错机制。
在本申请实施例中,在当前级别的数据纠错机制能够满足存储***的数据纠错需求时,向更低级别的方向进行搜索,确定出最低级别的能够满足存储***的数据纠错需求的数据纠错机制,在保证数据读取准确性的基础上,减少由于数据纠错机制级别过高,存储过多不必要的冗余数据而造成的存储空间的浪费和计算资源的消耗,从而提高数据纠错机制的级别与存储***所需的数据纠错能力的匹配程度,进一步提升存储***的数据读写性能。
需要说明的一点是,参考错误特征也可以为0,若第一错误特征与参考错误特征相等,则也可以将当前级别的数据纠错机制,调整为级别最低的使存储***的错误特征不大于参考错误特征的数据纠错机制。
需要说明的另一点是,控制设备将参考错误特征和第一错误特征进行对比,得到的对比结果也可以为参考错误特征与第一错误特征的差值,控制设备可以基于该差值,将当前级别的数据纠错机制调整为与该差值匹配的目标级别的数据纠错机制。相应的,步骤305至步骤307也可以替换为以下步骤:控制设备确定参考错误特征和第一错误特征的差值;获取该差值对应的级别调整数;响应于该差值为正,确定第四目标级别的数据纠错机制,当前级别高于第四目标级别,且当前级别与第四目标级别的差值为级别调整数;响应于该差值为负,确定第五目标级别的数据纠错机制,当前级别低于第五目标级别,且第五目标级别与当前级别的差值为级别调整数。
例如,参考错误特征为0.05,第一错误特征为0.01,参考错误特征与第一错误特征的差值为0.04,该差值对应的级别调整数可以为1,则所确定的第四目标级别比当前级别低1个级别。再如,参考错误特征为0.05,第一错误特征为0.1,参考错误特征与第一错误特征的差值为-0.05,该差值对应的级别调整数可以为1,则所确定的第五目标级别比当前级别高1个级别。
上述过程中,控制设备可以基于参考错误特征和存储***的第一错误特征的差值,直接确定该差值对应的级别调整数,对数据纠错机制的级别进行调整,不需要从多个级别的数据纠错机制中依次寻找目标级别的数据纠错机制,能够提高数据纠错机制的调整效率。
308、控制设备基于调整后的数据纠错机制,进行数据处理。
例如,调整后的数据纠错机制为RAID 5级别的数据纠错机制,当原始数据写入存储***时,通过数据校验,得到原始数据对应的冗余数据,如原始数据为0110,则冗余数据可以为0;若原始数据的第一位数据出现错误,变为1110,则可以基于RAID 5级别的数据纠错机制,根据冗余数据0和原始数据中正确的数据110,进行反校验,对出现错误的第一位数据进行恢复。
需要说明的一点是,控制设备在调整存储***的数据纠错机制的过程中,可以通过将块的状态影响信息输入到错误特征模型中,来得到块的错误特征。存储***中可以预先存储有已构建好的错误特征模型,控制设备可以基于该错误特征模型来确定块的错误特征。相应的,在应用错误特征模型之前,需要预先构建出错误特征模型,将错误特征模型存储于存储***中。其中,错误特征模型可以是基于应用该错误特征模型的存储***构建得到的,错误特征模型也可以是基于同类的其他存储***构建得到。
参见图6,图6是本申请实施例提供的一种错误特征模型的构建方法的流程图,该错误特征模型的构建方法包括:
601、控制设备从状态影响信息对应的取值范围中选取多个样本状态影响信息,分别构建符合每个样本状态影响信息的块。
错误特征模型用于反映状态影响信息与错误特征的映射关系,需要基于各种可能存在的状态影响信息构建得到。状态影响信息可以包括编程擦除次数、数据放置时间、数据读取次数和温度变化量中的至少一个。其中,每个块可被编程擦除的次数是有限的,也即,每个块的编程擦除次数存在最大值的限制,若某个块累计的编程擦除次数超过最大值,则这个块会损坏。相应的,编程擦除次数的取值范围可以设置为0至可编程擦除次数的最大值,例如,编程擦除次数的取值范围可以为0至1000。
样本状态影响信息可以包括编程擦除次数、数据放置时间、数据读取次数和温度变化量中任一个参数的取值;样本状态影响信息也可以包括编程擦除次数、数据放置时间、数据读取次数和温度变化量中任意多个参数的取值的随机组合。
控制设备可以从状态影响信息对应的取值范围中随机选取多个样本状态影响信息。控制设备可以每隔状态影响信息对应的取值步长,从状态影响信息对应的取值范围中依次选取多个样本状态影响信息。
例如,状态影响信息包括编程擦除次数、数据放置时间、数据读取次数和温度变化量。编程擦除次数的取值范围为0至1000,取值步长为1,数据放置时间的取值范围为0至1万个小时,取值步长为2,数据读取次数为0至1000万次,取值步长为5,温度变化量为-40至+30,取值步长为1,样本状态影响信息可以为编程擦除次数的任一取值、数据放置时间的任一取值、数据读取次数的任一取值和温度变化量的任一取值的随机组合,如样本状态影响信息包括[2,10,50,+1]、[2,120,100,+2]、[5,1200,10000,+2]等。
控制设备根据所选取的多个样本状态影响信息,分别构建符合每个样本状态影响信息的块,所构建的块的状态影响信息为样本状态影响信息。具体地,多个样本状态影响信息包括Xi,i=1,2…n(n为多个样本状态影响信息的数量),控制设备构建符合样本状态影响信息Xi的块blocki。例如,样本状态影响信息为[2,10,5,+1],则对应的块的编程擦除次数为2,块的数据放置时间为10小时,块的数据读取次数为5,块的温度变化量为+1摄氏度。
602、控制设备对符合每个样本状态影响信息的块进行错误特征测试,得到符合每个样本状态影响信息的块的样本错误特征。
在一种可能的实现方式中,控制设备可以针对块blocki进行数据的读写操作,根据块blocki上的数据读取的错误情况,确定块blocki的错误特征。
在另一种可能的实现方式中,控制设备可以根据块中的页的错误特征,得到块的错误特征。相应的,控制设备对符合每个样本状态影响信息的块进行错误特征测试,得到符合每个样本状态影响信息的块的样本错误特征可以通过以下步骤(1)至(2)实现:
(1)控制设备对符合每个样本状态影响信息的块进行错误特征测试,得到符合每个样本状态影响信息的块中的多个页的错误特征。
控制设备可以针对块blocki中的每个页进行数据的读写操作,根据blocki中的每个页上的数据读取的错误情况,确定每个页对应的错误特征Epage=Ei,j,j=1,2...m(m为块中所包括的页的数量)。
(2)控制设备根据多个页的错误特征,确定符合每个样本状态影响信息的块的样本错误特征。
控制设备可以将多个页的错误特征中的最大值确定为所属块的错误特征,也即控制设备取Ei,j,j=1,2…m序列中的最大值得到块blocki的样本错误特征Ei。
在本申请实施例中,将多个页的错误特征中的最大值确定为所属块的错误特征,使块的错误特征能够代表多个页中的数据读取错误情况最差的页,基于此得到的错误特征模型能够根据块的状态影响信息,输出代表数据读取错误最差情况的错误特征,进而基于该错误特征进行数据纠错机制的调整,能够在调整后数据纠错机制下使最差的数据读取错误情况也能得到相应的改善,提高数据读取的准确性。
需要说明的一点是,控制设备也可以将多个页的错误特征经过其他数据处理得到所属块的错误特征,例如,控制设备也可以将多个页的错误特征中的平均值确定为所属块的错误特征。
603、控制设备对多个样本状态影响信息以及符合每个样本状态影响信息的块的样本错误特征进行拟合处理,得到错误特征模型。
控制设备可以对多组样本状态影响信息和对应的样本错误特征,也即[Xi,Ei],i=1,2...n进行拟合处理,得到错误特征模型。其中,控制设备可以基于神经网络、样条插值或者最小二乘法等数据拟合方法对多组样本状态影响信息和对应的样本错误特征进行拟合处理,得到错误特征模型。
本申请实施例提供的技术方案,基于数据读写事件的发生对块的状态影响,来获取存储***在当前级别的数据纠错机制下的数据读写错误情况,如果存储***当前的数据读写错误情况与其容许发生的数据读写错误情况不匹配,则对所应用的当前级别的数据纠错机制进行调整,以使存储***在调整后的数据纠错机制下的数据读写错误情况满足匹配条件,从而随着存储***的状态变化,动态调整为不同级别的数据纠错机制,满足存储***在不同使用阶段的数据纠错能力需求,减少由于数据纠错机制级别过高而导致的冗余数据占用过多存储空间,数据恢复消耗过多计算资源的问题,提高数据纠错机制的级别与存储***所需的数据纠错能力的匹配程度。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
图7是本申请实施例提供的一种数据处理装置的框图。参见图7,该装置包括:
第一获取模块701,用于获取存储***的多个块的状态影响信息,状态影响信息用于表示块随着数据读写事件的发生而产生的状态变化;
第二获取模块702,用于基于多个块的状态影响信息,获取存储***的第一错误特征,第一错误特征用于表示存储***在应用当前级别的数据纠错机制后的数据读取错误情况;
调整模块703,用于响应于第一错误特征与参考错误特征不匹配,对当前级别的数据纠错机制进行调整,参考错误特征用于表示存储***容许发生的数据读取错误情况。
在一种可能的实现方式中,调整模块703,包括:
第一调整子模块,用于响应于第一错误特征大于参考错误特征,将当前级别的数据纠错机制调整为第一目标级别的数据纠错机制,第一目标级别高于当前级别;
第二调整子模块,用于响应于第一错误特征小于参考错误特征,将当前级别的数据纠错机制调整为第二目标级别的数据纠错机制,第二目标级别低于当前级别。
在另一种可能的实现方式中,第一调整子模块,用于:
按照数据纠错机制的级别从低到高的顺序,从高于当前级别的数据纠错机制中,依次获取级别高于当前级别的数据纠错机制;
响应于存储***在本次获取的第一目标级别的数据纠错机制下的错误特征不大于参考错误特征,将当前级别的数据纠错机制调整为第一目标级别的数据纠错机制。
在另一种可能的实现方式中,第二调整子模块,用于:
按照数据纠错机制的级别从高到低的顺序,从低于当前级别的数据纠错机制中,依次获取级别低于当前级别的数据纠错机制;
响应于首次获取到第三目标级别的数据纠错机制,存储***在第三目标级别的数据纠错机制下的错误特征大于参考错误特征,将当前级别的数据纠错机制调整为上一次获取的第二目标级别的数据纠错机制。
在另一种可能的实现方式中,参考错误特征为预设的错误特征值,第一错误特征大于参考错误特征是指第一错误特征大于预设的错误特征值;第一错误特征小于参考错误特征是指第一错误特征小于预设的错误特征值。
在另一种可能的实现方式中,参考错误特征为预设的错误特征范围,第一错误特征大于参考错误特征是指第一错误特征大于预设的错误特征范围的最大值;第一错误特征小于参考错误特征是指第一错误特征小于预设的错误特征范围的最小值。
在另一种可能的实现方式中,第一获取模块701,用于响应于满足状态影响信息的获取条件,获取存储***的多个块的状态影响信息。
在另一种可能的实现方式中,第二获取模块702,包括:
第一确定子模块,用于基于多个块的状态影响信息,确定多个块的错误特征,多个块的错误特征分别用于表示对应的块在应用数据纠错机制前的数据读取错误情况;
第二确定子模块,用于根据多个块的错误特征,确定存储***的第一错误特征。
在另一种可能的实现方式中,第二确定子模块,用于:
根据多个块的错误特征,确定存储***的第二错误特征,第二错误特征用于表示存储***在应用数据纠错机制前的数据读取错误情况;
根据第二错误特征和当前级别的数据纠错机制,得到存储***的第一错误特征。
在另一种可能的实现方式中,第一确定子模块,用于:
将多个块的状态影响信息输入到错误特征模型中,得到多个块的错误特征,错误特征模型为状态影响信息与错误特征之间的映射模型,是基于多个样本状态影响信息以及对应的样本错误特征进行拟合得到的;将多个块的状态影响信息输入到错误特征模型中之前,错误特征模型的构建方法,包括:
从状态影响信息对应的取值范围中选取多个样本状态影响信息,分别构建符合每个样本状态影响信息的块;
对符合每个样本状态影响信息的块进行错误特征测试,得到符合每个样本状态影响信息的块的样本错误特征;
对多个样本状态影响信息以及符合每个样本状态影响信息的块的样本错误特征进行拟合处理,得到错误特征模型。
在另一种可能的实现方式中,多个块在存储***中均匀分布,且多个块的数量满足目标条件。
在另一种可能的实现方式中,状态影响信息包括编程擦除次数、数据放置时间、数据读取次数和温度变化量中的至少一个。
需要说明的是:上述实施例提供的数据处理装置在进行数据处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将存储***中的控制设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据处理装置与数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例提供的技术方案,基于数据读写事件的发生对块的状态影响,来获取存储***在当前级别的数据纠错机制下的数据读写错误情况,如果存储***当前的数据读写错误情况与其容许发生的数据读写错误情况不匹配,则对所应用的当前级别的数据纠错机制进行调整,以使存储***在调整后的数据纠错机制下的数据读写错误情况满足匹配条件,从而随着存储***的状态变化,动态调整为不同级别的数据纠错机制,满足存储***在不同使用阶段的数据纠错能力需求,减少由于数据纠错机制级别过高而导致的冗余数据占用过多存储空间,数据恢复消耗过多计算资源的问题,提高数据纠错机制的级别与存储***所需的数据纠错能力的匹配程度。
图8是本申请实施例提供的一种控制设备的框图,该控制设备800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器801和一个或一个以上的存储器802,其中,存储器802中存储有至少一条指令,上述至少一条指令由处理器801加载并执行以实现上述各个方法实施例提供的数据处理方法。当然,该控制设备800还可以具有有线或无线网络接口、输入输出接口等部件,以便进行输入输出,该控制设备800还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条指令,上述至少一条指令可由控制设备的处理器执行以完成上述实施例中的数据处理方法。例如,计算机可读存储介质可以是ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-OnlyMemory,只读光盘)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (7)
1.一种数据处理方法,其特征在于,所述方法包括:
获取存储***从上一次获取状态影响信息开始到当前时刻的数据写入量;响应于所述数据写入量大于或等于目标阈值,获取所述存储***的多个块的状态影响信息,所述状态影响信息用于表示所述块随着数据读写事件的发生而产生的状态变化,所述多个块为所述存储***中均匀分布的部分块;
基于所述多个块的状态影响信息,确定所述多个块的错误特征,所述多个块的错误特征分别用于表示对应的块在应用数据纠错机制前的数据读取错误情况;根据所述多个块的错误特征,确定所述存储***的第一第二错误特征,所述第二错误特征用于表示存储***在应用数据纠错机制前的数据读取错误情况;确定当前级别的数据纠错机制对应的错误改善模型,将所述第二错误特征输入到所述错误改善模型中,得到所述存储***的第一错误特征,所述第一错误特征用于表示所述存储***在应用当前级别的数据纠错机制后的数据读取错误情况;
响应于所述第一错误特征大于参考错误特征,按照数据纠错机制的级别从低到高的顺序,从高于所述当前级别的数据纠错机制中,依次获取级别高于所述当前级别的数据纠错机制;响应于所述存储***在本次获取的第一目标级别的数据纠错机制下的错误特征不大于所述参考错误特征,将所述当前级别的数据纠错机制调整为第一目标级别的数据纠错机制;
响应于所述第一错误特征小于所述参考错误特征,按照数据纠错机制的级别从高到低的顺序,从低于所述当前级别的数据纠错机制中,依次获取级别低于当前级别的数据纠错机制;响应于首次获取到第三目标级别的数据纠错机制,所述存储***在第三目标级别的数据纠错机制下的错误特征大于所述参考错误特征,将所述当前级别的数据纠错机制调整为上一次获取的第二目标级别的数据纠错机制;
所述参考错误特征用于表示所述存储***容许发生的数据读取错误情况。
2.根据权利要求1所述的方法,其特征在于,所述参考错误特征为预设的错误特征值,所述第一错误特征大于所述参考错误特征是指所述第一错误特征大于所述预设的错误特征值;所述第一错误特征小于所述参考错误特征是指所述第一错误特征小于所述预设的错误特征值;
或者;
所述参考错误特征为预设的错误特征范围,所述第一错误特征大于所述参考错误特征是指所述第一错误特征大于所述预设的错误特征范围的最大值;所述第一错误特征小于所述参考错误特征是指所述第一错误特征小于所述预设的错误特征范围的最小值。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于满足状态影响信息的获取条件,执行所述获取存储***的多个块的状态影响信息的步骤。
4.根据权利要求1所述的方法,其特征在于,所述基于所述多个块的状态影响信息,确定所述多个块的错误特征,包括:
将所述多个块的状态影响信息输入到错误特征模型中,得到所述多个块的错误特征,所述错误特征模型为状态影响信息与错误特征之间的映射模型,是基于多个样本状态影响信息以及对应的样本错误特征进行拟合得到的;所述将所述多个块的状态影响信息输入到错误特征模型中之前,所述错误特征模型的构建方法,包括:
从所述状态影响信息对应的取值范围中选取多个样本状态影响信息,分别构建符合每个样本状态影响信息的块;
对所述符合每个样本状态影响信息的块进行错误特征测试,得到所述符合每个样本状态影响信息的块的样本错误特征;
对所述多个样本状态影响信息以及所述符合每个样本状态影响信息的块的样本错误特征进行拟合处理,得到错误特征模型。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括下述任一项:
所述多个块的数量满足目标条件;
所述状态影响信息包括编程擦除次数、数据放置时间、数据读取次数和温度变化量中的至少一个。
6.一种数据处理装置,其特征在于,所述装置包括:
第一获取模块,用于获取存储***从上一次获取状态影响信息开始到当前时刻的数据写入量;响应于所述数据写入量大于或等于目标阈值,获取所述存储***的多个块的状态影响信息,所述状态影响信息用于表示所述块随着数据读写事件的发生而产生的状态变化,所述多个块为所述存储***中均匀分布的部分块;
第二获取模块,用于基于所述多个块的状态影响信息,确定所述多个块的错误特征,所述多个块的错误特征分别用于表示对应的块在应用数据纠错机制前的数据读取错误情况;根据所述多个块的错误特征,确定所述存储***的第二错误特征,所述第二错误特征用于表示存储***在应用数据纠错机制前的数据读取错误情况;确定当前级别的数据纠错机制对应的错误改善模型,将所述第二错误特征输入到所述错误改善模型中,得到所述存储***的第一错误特征,所述第一错误特征用于表示所述存储***在应用当前级别的数据纠错机制后的数据读取错误情况;
调整模块,用于响应于所述第一错误特征大于参考错误特征,按照数据纠错机制的级别从低到高的顺序,从高于所述当前级别的数据纠错机制中,依次获取级别高于所述当前级别的数据纠错机制;响应于所述存储***在本次获取的第一目标级别的数据纠错机制下的错误特征不大于所述参考错误特征,将所述当前级别的数据纠错机制调整为第一目标级别的数据纠错机制;响应于所述第一错误特征小于所述参考错误特征,按照数据纠错机制的级别从高到低的顺序,从低于所述当前级别的数据纠错机制中,依次获取级别低于当前级别的数据纠错机制;响应于首次获取到第三目标级别的数据纠错机制,所述存储***在第三目标级别的数据纠错机制下的错误特征大于所述参考错误特征,将所述当前级别的数据纠错机制调整为上一次获取的第二目标级别的数据纠错机制;所述参考错误特征用于表示所述存储***容许发生的数据读取错误情况。
7.一种控制设备,其特征在于,所述控制设备包括处理器和存储器;所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现如权利要求1-5任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010611609.8A CN111767165B (zh) | 2020-06-30 | 2020-06-30 | 数据处理方法、装置及控制设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010611609.8A CN111767165B (zh) | 2020-06-30 | 2020-06-30 | 数据处理方法、装置及控制设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111767165A CN111767165A (zh) | 2020-10-13 |
CN111767165B true CN111767165B (zh) | 2024-06-14 |
Family
ID=72722983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010611609.8A Active CN111767165B (zh) | 2020-06-30 | 2020-06-30 | 数据处理方法、装置及控制设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111767165B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116884469B (zh) * | 2023-06-08 | 2024-05-07 | 珠海妙存科技有限公司 | 一种闪存性能的检测方法、装置、设备及介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009037304A (ja) * | 2007-07-31 | 2009-02-19 | Hitachi Ltd | Raidレベルを変更する機能を有したストレージシステム |
US8095851B2 (en) * | 2007-09-06 | 2012-01-10 | Siliconsystems, Inc. | Storage subsystem capable of adjusting ECC settings based on monitored conditions |
US8775868B2 (en) * | 2010-09-28 | 2014-07-08 | Pure Storage, Inc. | Adaptive RAID for an SSD environment |
US8856431B2 (en) * | 2012-08-02 | 2014-10-07 | Lsi Corporation | Mixed granularity higher-level redundancy for non-volatile memory |
US9448877B2 (en) * | 2013-03-15 | 2016-09-20 | Cisco Technology, Inc. | Methods and apparatus for error detection and correction in data storage systems using hash value comparisons |
CN103269230B (zh) * | 2013-05-28 | 2017-02-22 | 中国科学院自动化研究所 | 一种自适应调整纠错码的容错***及方法 |
US10067823B2 (en) * | 2014-12-04 | 2018-09-04 | Western Digital Technologies, Inc. | Systems and methods for adaptive error corrective code mechanisms |
JP6486723B2 (ja) * | 2015-01-21 | 2019-03-20 | 東芝メモリ株式会社 | メモリシステムおよび処理装置 |
US10803972B2 (en) * | 2017-03-06 | 2020-10-13 | Hitachi, Ltd. | Flash memory module, storage system, and method of controlling flash memory |
US10528258B2 (en) * | 2018-02-28 | 2020-01-07 | International Business Machines Corporation | Determination of redundant array of independent disk level for storage of datasets |
US11119850B2 (en) * | 2018-06-29 | 2021-09-14 | International Business Machines Corporation | Determining when to perform error checking of a storage unit by using a machine learning module |
CN109558269A (zh) * | 2018-12-05 | 2019-04-02 | 郑州云海信息技术有限公司 | 一种固态硬盘状态的检测方法、装置和介质 |
US20200394112A1 (en) * | 2019-06-15 | 2020-12-17 | International Business Machines Corporation | Reducing incidents of data loss in raid arrays of differing raid levels |
-
2020
- 2020-06-30 CN CN202010611609.8A patent/CN111767165B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111767165A (zh) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101529526B (zh) | 用于估计和报告闪存盘存储器的预期寿命的方法 | |
US8458417B2 (en) | Garbage collection in a storage device | |
CN109599143B (zh) | 具有读阈值机制的存储***及其操作方法 | |
US11016679B2 (en) | Balanced die set execution in a data storage system | |
CN111078123B (zh) | 一种闪存块的磨损程度的评估方法及装置 | |
US11915776B2 (en) | Error avoidance based on voltage distribution parameters of block families | |
US11735254B2 (en) | Error avoidance based on voltage distribution parameters of blocks | |
US10324648B1 (en) | Wear-based access optimization | |
US20210109660A1 (en) | Operation method of a storage controller configured to control a nonvolatile memory device | |
WO2020041635A1 (en) | Multi-level wear leveling for non-volatile memory | |
JP2018163707A (ja) | 半導体記憶装置及びそのリード制御方法 | |
CN113724775A (zh) | 元信息管理方法、固态硬盘控制器及固态硬盘 | |
CN111767165B (zh) | 数据处理方法、装置及控制设备 | |
CN112802529A (zh) | 一种军工级Nand闪存的检测方法、装置、电子设备及存储介质 | |
US10614892B1 (en) | Data reading method, storage controller and storage device | |
CN110377538B (zh) | 存储器管理方法以及存储控制器 | |
CN114385092B (zh) | 固态硬盘闪存阵列的擦除方法、固态硬盘主控芯片 | |
US11705193B2 (en) | Error avoidance based on voltage distribution parameters | |
CN110364197B (zh) | 解码方法以及存储控制器 | |
CN111489776B (zh) | 数据读取方法、存储控制器与存储装置 | |
CN110364207B (zh) | 解码方法以及储存控制器 | |
CN109273037B (zh) | 数据读取方法以及存储控制器 | |
US11983431B2 (en) | Read-disturb-based read temperature time-based attenuation system | |
US20230289087A1 (en) | Read-disturb-based read temperature determination system | |
KR20170096444A (ko) | 플래시 메모리의 읽기 간섭 오류 감소를 위한 데이터 분산이주 방법 및 그 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |