CN111913830B - 一种重读操作处理方法、装置、设备及可读存储介质 - Google Patents

一种重读操作处理方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN111913830B
CN111913830B CN202010830876.4A CN202010830876A CN111913830B CN 111913830 B CN111913830 B CN 111913830B CN 202010830876 A CN202010830876 A CN 202010830876A CN 111913830 B CN111913830 B CN 111913830B
Authority
CN
China
Prior art keywords
data
error
voltage value
target
rereading
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
Application number
CN202010830876.4A
Other languages
English (en)
Other versions
CN111913830A (zh
Inventor
王岩
李卫军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Dapu Microelectronics Co Ltd
Original Assignee
Shenzhen Dapu Microelectronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Dapu Microelectronics Co Ltd filed Critical Shenzhen Dapu Microelectronics Co Ltd
Priority to CN202010830876.4A priority Critical patent/CN111913830B/zh
Publication of CN111913830A publication Critical patent/CN111913830A/zh
Priority to PCT/CN2021/083880 priority patent/WO2022037071A1/zh
Application granted granted Critical
Publication of CN111913830B publication Critical patent/CN111913830B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/1056Updating check bits on partial write, i.e. read/modify/write
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请公开了一种重读操作处理方法、装置、设备及可读存储介质。本申请公开的方法包括:若读取目标数据发生错误,则获取读取目标数据时所用的目标电压值组和解码错误信息;将目标电压值组和解码错误信息组合为待分类数据;利用机器学习算法对待分类数据进行分类,以输出错误所属的错误类别;查询错误类别对应的重读电压值组,并利用重读电压值组对目标数据执行重读操作。本申请利用机器学习算法判定错误类别,能够提高错误类别判断的准确性,从而可降低重读操作次数,提高重读成功率,从而提高了固态硬盘性能。相应地,本申请提供的一种重读操作处理装置、设备及可读存储介质,也同样具有上述技术效果。

Description

一种重读操作处理方法、装置、设备及可读存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种重读操作处理方法、装置、设备及可读存储介质。
背景技术
固态硬盘一般基于Nand flash进行数据的读取。若读取数据时发生错误,那么可以尝试重读。在重读之前,为了提高重读成功率,会先判断当前发生的错误属于哪种错误类别,而后再利用相应错误类别的电压值组执行重读操作。错误类别一般包括:数据保存时间错误(data retention error)、读干扰错误(read disturb error)、程序干扰错误(Program disturb error)、擦写次数错误(P/E cycle error)等。
目前,判断错误类别的现有方案包括:
方案一:设置专门的电路获取指定采样点的电压值,若读取数据时发生错误,则通过采集的电压值的变化确定错误类别。此方案需要额外设置硬件电路,因此会增加硬件开销。
方案二:技术人员根据经验设置各个统计量的阈值,若读取数据时发生错误,则比较各个统计量与其对应的阈值的大小,然后根据比较结果选择可能性较大的错误类别。其中,各个统计量可以为:数据页/块的写入时间、擦写次数、读取次数等。此方案需要额外存储空间和操作来记录各个统计量,对于大容量的存储器,这是一个不小的计算开销。并且,导致读取数据出错的原因一般比较复杂,也就是导致读取数据出错的原因并不是“非此即彼”,其是“线性不可分”的问题,因此基于人工经验设置的阈值判定错误类别,准确性有待提高。
可见,判断错误类别的现有方案会增加硬件开销和计算开销,并且判定的错误类别不够准确,会降低重读成功率,导致重读操作频繁。频繁出现重读操作对读写IO的性能有很大的影响,甚至会因为IO超时而导致固态硬盘故障。
因此,如何准确判定读取数据时发生的错误类别,提高重读成功率,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种重读操作处理方法、装置、设备及可读存储介质,以准确判定读取数据时发生的错误类别,提高重读成功率。其具体方案如下:
第一方面,本申请提供了一种重读操作处理方法,包括:
若读取目标数据发生错误,则获取读取所述目标数据时所用的目标电压值组和解码错误信息;
将所述目标电压值组和所述解码错误信息组合为待分类数据;
利用机器学习算法对所述待分类数据进行分类,以输出所述错误所属的错误类别;
查询所述错误类别对应的重读电压值组,并利用所述重读电压值组对所述目标数据执行重读操作。
优选地,所述将所述目标电压值组和所述解码错误信息组合为待分类数据,包括:
获取所述目标数据包括的各个数据段分别对应的校验方程错误信息;所述校验方程错误信息为任一个数据段对应的校验方程不成立的个数;
根据各个校验方程错误信息生成所述解码错误信息;
组合所述目标电压值组和所述解码错误信息,获得所述待分类数据。
优选地,所述根据各个校验方程错误信息生成所述解码错误信息,包括:
将各个校验方程错误信息分别转换为目标矩阵,并将各个目标矩阵对位相加,获得所述解码错误信息。
优选地,所述利用机器学习算法对所述待分类数据进行分类,以输出所述错误所属的错误类别,包括:
利用SVM对所述待分类数据进行分类,以输出所述错误类别。
优选地,所述利用SVM对所述待分类数据进行分类,以输出所述错误类别,包括:
利用多个SVM分类器分别处理所述待分类数据,以输出多个待选类别;所述多个SVM分类器按照一对一的二分类规则训练获得;
将所述多个待选类别中的相同类别划分至同一组;
确定待选类别个数最多的目标组,并将所述目标组对应的待选类别确定为所述错误类别。
优选地,所述利用SVM对所述待分类数据进行分类,以输出所述错误类别,包括:
利用多个SVM分类器分别处理所述待分类数据,以输出多个待选类别;所述多个SVM分类器按照一对多的二分类规则训练获得;
确定各个待选类别分别对应的分类值;
将最大分类值对应的待选类别确定为所述错误类别。
优选地,所述查询所述错误类别对应的重读电压值组,包括:
获取所述错误类别对应的推荐电压表;
将所述推荐电压表中的尚未用于重读操作的各个电压值组按照重读成功率降序或升序排列;
选择重读成功率最大的电压值组作为所述重读电压值组。
优选地,所述利用所述重读电压值组对所述目标数据执行重读操作之后,还包括:
若读取所述目标数据发生错误,则判断是否达到最大重读次数;
若是,则利用所述目标电压值组读取所述目标数据,并对读取的数据进行硬解码,若硬解码失败,则对读取的目标数据进行软解码;
若否,则执行所述获取读取所述目标数据时所用的目标电压值组和解码错误信息的步骤。
第二方面,本申请提供了一种重读操作处理装置,包括:
获取模块,用于若读取目标数据发生错误,则获取读取所述目标数据时所用的目标电压值组和解码错误信息;
组合模块,用于将所述目标电压值组和所述解码错误信息组合为待分类数据;
分类模块,用于利用机器学习算法对所述待分类数据进行分类,以输出所述错误所属的错误类别;
重读模块,用于查询所述错误类别对应的重读电压值组,并利用所述重读电压值组对所述目标数据执行重读操作。
第三方面,本申请提供了一种重读操作处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的重读操作处理方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的重读操作处理方法。
通过以上方案可知,本申请提供了一种重读操作处理方法,包括:若读取目标数据发生错误,则获取读取所述目标数据时所用的目标电压值组和解码错误信息;将所述目标电压值组和所述解码错误信息组合为待分类数据;利用机器学习算法对所述待分类数据进行分类,以输出所述错误所属的错误类别;查询所述错误类别对应的重读电压值组,并利用所述重读电压值组对所述目标数据执行重读操作。
可见,本申请在读取目标数据发生错误时,获取读取目标数据时所用的目标电压值组和解码错误信息,并将目标电压值组和解码错误信息组合为待分类数据,然后利用机器学习算法对待分类数据进行分类,从而输出错误所属的错误类别,最后查询错误类别对应的重读电压值组,并利用重读电压值组对目标数据执行重读操作。导致读取数据出错的原因是“线性不可分”的问题,而机器学习算法能够基于样本得到较好的结果,因此利用机器学习算法判定错误类别,能够提高错误类别判断的准确性,从而可降低重读操作次数,提高重读成功率,也不会因为重读操作较多影响读写IO的性能,从而提高了固态硬盘性能。
相应地,本申请提供的一种重读操作处理装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的第一种重读操作处理方法流程图;
图2为本申请公开的第二种重读操作处理方法流程图;
图3为本申请公开的一种推荐电压值组的方法流程图;
图4为本申请公开的一种重读操作处理装置示意图;
图5为本申请公开的一种重读操作处理设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,判断错误类别的现有方案会增加硬件开销和计算开销,并且判定的错误类别不够准确,会降低重读成功率,导致重读操作频繁。频繁出现重读操作对读写IO的性能有很大的影响,甚至会因为IO超时而导致固态硬盘故障。为此,本申请提供了一种重读操作处理方案,能够准确判定读取数据时发生的错误类别,提高重读成功率。
参见图1所示,本申请实施例公开了第一种重读操作处理方法,包括:
S101、若读取目标数据发生错误,则获取读取目标数据时所用的目标电压值组和解码错误信息。
需要说明的是,目标电压值组与目标数据所存储的当前存储介质相对应。例如:TLC Nand Flash对应7个电压值:A~G,这7个电压值将电压值划分为多个范围,各个范围表示地址上存储的具体数据。其中,TLC即Triple-Level Cell,其1个储存单元可存放3bit的数据。目标数据可能是分数据段解码的,因此解码错误信息由目标数据包括的所有数据段对应的校验方程错误信息整合获得。
S102、将目标电压值组和解码错误信息组合为待分类数据。
目标数据可能是分数据段解码的。例如:读取一个2KB的目标数据,需要分别解码多次(即分别读取多个不同的数据段),才能完成整个目标数据的正确读取。并且,每次解码一个数据段,都会用相应纠错码进行解码(即纠错)。首先,判断所解码数据段中是否存在错误的数据位,如果存在,则根据纠错算法挑选出出错概率最高的1-n位进行反转(0变1,或1变0);再次判断经过部分位反转后的数据段中是否存在错误的数据位,如果依然存在错误的数据位,继续选出出错概率最高的1-n位进行反转;重复上面第二步,直到所有错误的数据位被全部纠正,或是因为迭代次数超过最大限制而解码失败,此时读取目标数据发生错误。具体的,判定所解码数据段中是否存在错误的数据位的条件为:利用当前纠错码编码所得的所有校验方程均成立。
假设当前所用纠错码为LDPC,LDPC的特征是低密度,也就是说校验矩阵里面的“1”的分布比较稀疏。LDPC又分为正则LDPC(regular LDPC)和非正则LDPC(irregular LDPC)编码。正则LDPC可以保证校验矩阵每行有固定J个1,每列有固定K个1。非正则LDPC没有上述限制。
假设长度为12的正则LDPC编码C,满足下列校验方程组:
上述校验方程组用校验矩阵表示为:
其中,C1~C12为正则LDPC编码中的数据格式。如果上述校验方程组中的各个等式都成立(即所有等式都等于0),则表明数据解码成功;否则,表明数据中依然存在错误,需要继续解码迭代或是重读。校验方程组中的等式个数可根据纠错码类型设置。
纠错码可以为任意种类的纠错码,如:海明码、BCH(Bose Ray-ChaudhuriHocquenghem)、极化码(Polar Code)、LDPC(Low Density Parity-Check Code,即低密度奇偶校验码)等。
由于目标数据中包括的多个数据段,因此每个数据段都对应一个校验方程组,统计每个校验方程组中的校验方程不成立的个数(即等式不成立的个数),即可获得各个数据段分别对应的校验方程错误信息。假设对于数据A分数据段读了3次,那么可获得3个校验方程组(假设利用正则LDPC编码),其中:第一个校验方程组中第3个等式不成立(即第3个等式等于1),因此当前数据段对应的校验方程错误信息可用向量表示为:(0,0,1,0,0,0,0,0,0);第二个校验方程组中第3个和第8个等式不成立(即第3个和第8个等式等于1),因此当前数据段对应的校验方程错误信息可用向量表示为:(0,0,1,0,0,0,0,1,0);第三个校验方程组中所有等式都成立,因此当前数据段对应的校验方程错误信息可用向量表示为:(0,0,0,0,0,0,0,0,0)。据此,可获得这3个数据段分别对应的校验方程错误信息。
在一种具体实施方式中,将目标电压值组和解码错误信息组合为待分类数据,包括:获取目标数据包括的各个数据段分别对应的校验方程错误信息;校验方程错误信息为任一个数据段对应的校验方程不成立的个数;根据各个校验方程错误信息生成解码错误信息;组合目标电压值组和解码错误信息,获得待分类数据。在一种具体实施方式中,根据各个校验方程错误信息生成解码错误信息,包括:将各个校验方程错误信息分别转换为目标矩阵,并将各个目标矩阵对位相加,获得解码错误信息。
以上述数据A为例,(0,0,1,0,0,0,0,0,0)、(0,0,1,0,0,0,0,1,0)和(0,0,0,0,0,0,0,0,0)即为转换各个校验方程错误信息所得的目标矩阵,这3个目标矩阵对位相加,则有:(0,0,2,0,0,0,0,1,0),因此(0,0,2,0,0,0,0,1,0)即为数据A的解码错误信息。
其中,读取数据A所用的目标电压值组与数据A所存储的当前存储介质相对应,假设数据A存储在TLC Nand Flash中,那么目标电压值组可以为:(v0,v1,v2,v3,v4,v5,v6),将该目标电压值组组合在数据A的解码错误信息(0,0,2,0,0,0,0,1,0)的尾部,即可获得16维的待分类数据(0,0,2,0,0,0,0,1,0,v0,v1,v2,v3,v4,v5,v6)。其中,目标电压值组和解码错误信息的组合没有固定顺序,可以将二者先后拼接,也可以将二者各自包括的数据交叉融合,交叉融合可得到如(0,0,2,0,0,0,v4,v5,v6,v0,v1,v2,v3,0,1,0)所示的待分类数据。
S103、利用机器学习算法对待分类数据进行分类,以输出错误所属的错误类别。
需要说明的是,机器学习算法为可以为任意用于分类数据的算法,例如:SVM(Support Vector Machine,支持向量机)、CNN(Convolutional Neural Network,卷积神经网络)、KNN(K-Nearest Neighbor,最近邻分类算法)等。其中,SVM和KNN不能处理矩阵,因此若待分类数据以矩阵表示,则需要将待分类数据转换为向量后,再用SVM或KNN处理。
在一种具体实施方式中,利用机器学习算法对待分类数据进行分类,以输出错误所属的错误类别,包括:利用SVM对待分类数据进行分类,以输出错误类别。若利用SVM分类待分类数据,则可以按照多分类规则、一对一的二分类规则或一对多的二分类规则训练SVM分类器。
若按照多分类规则训练SVM分类器,则利用带有不同标签的数据(即标注有不同错误类别的数据)训练同一个SVM分类器,使得SVM分类器可以识别任意错误类别的数据。该SVM分类器中设有用于识别错误类别的多个分界面。
若按照一对一的二分类规则训练分类器,则利用带有两种标签的数据(即标注有两种错误类别的数据)训练同一个SVM分类器,使得SVM分类器可以识别这两种错误类别。由于错误类别众多,因此需要训练多个SVM分类器,以覆盖所有错误类别。假设错误类别有3种:A、B、C,则需要训练用于识别A和B的SVM分类器、用于识别A和C的SVM分类器、用于识别B和C的SVM分类器这3个SVM分类器。各个SVM分类器中设置有用于识别错误类别的一个分界面wx+b=0,每个SVM分类器计算wx+b的值,其中,w为预设权重,x为SVM分类器的输入数据,b为预设偏移量。如果,wx+b>0即输入数据x在分界面上方,判定为正样本类,输出1;反之,wx+b<0时,x在分界面下方,归为负样本类,输出-1或者0。
在一种具体实施方式中,利用SVM对待分类数据进行分类,以输出错误类别,包括:利用多个SVM分类器分别处理待分类数据,以输出多个待选类别;多个SVM分类器按照一对一的二分类规则训练获得;将多个待选类别中的相同类别划分至同一组;确定待选类别个数最多的目标组,并将目标组对应的待选类别确定为错误类别。若目标组有多个,则确定各个目标组对应的待选类别,并查询用于识别这些待选类别的SVM分类器的输出,并以SVM分类器的输出为最终所确定的错误类别。例如:目标组有两个,其分别对应类别1和类别2,而用于识别类别1和类别2的SVM分类器的输出为类别2,那么类别2就是最终所确定的错误类别。
若按照一对多的二分类规则训练分类器,则利用带有任一种错误类别标签和除此之外的其它类别标签的数据,训练同一个SVM分类器,使得SVM分类器可以识别这一种错误类别。由于错误类别众多,因此需要训练多个SVM分类器,以覆盖所有错误类别。假设错误类别有3种:A、B、C,则需要训练用于识别A和其他类别的SVM分类器、用于识别B和其他类别的SVM分类器、用于识别C和其他类别的SVM分类器这3个SVM分类器。各个SVM分类器中设置有用于识别错误类别的一个分界面wx+b=0,每个SVM分类器计算wx+b的值作为该待选类别对应的分类值,其中,w为预设权重,x为SVM分类器的输入数据,b为预设偏移量。如果,输入数据x在分界面上方,则输出wx+b的值大于0,判定为属于该待选类别;反之,x在分界面下方,则输出wx+b的值小于0,判定为不属于该待选类别。
在一种具体实施方式中,利用SVM对待分类数据进行分类,以输出错误类别,包括:利用多个SVM分类器分别处理待分类数据,以输出多个待选类别;多个SVM分类器按照一对多的二分类规则训练获得;确定各个待选类别分别对应的分类值;将最大分类值对应的待选类别确定为错误类别。此方式中,各个SVM分类器均会输出一个分类值,哪个分类值最大,其对应的待选类别即为最终所确定的错误类别。
S104、查询错误类别对应的重读电压值组,并利用重读电压值组对目标数据执行重读操作。
其中,错误类别对应的电压值组有多组(这些电压值组一般设置在推荐电压表中),因此一般可循环执行多次重读操作(每次用不同的电压值组)。若重读达到最大限制次数,则重读操作失败。其中,在循环执行重读操作的过程中,若读取数据出错,仍然会进入S101-S104的流程。
在一种具体实施方式中,查询错误类别对应的重读电压值组,包括:获取错误类别对应的推荐电压表;将推荐电压表中的尚未用于重读操作的各个电压值组按照重读成功率降序或升序排列;选择重读成功率最大的电压值组作为重读电压值组。优先使用重读成功率最大的电压值组,可以提高重读操作的成功概率,从而降低重读次数。推荐电压表如表1。
在一种具体实施方式中,利用重读电压值组对目标数据执行重读操作之后,还包括:若读取目标数据发生错误,则判断是否达到最大重读次数;若是,则利用目标电压值组读取目标数据,并对读取的数据进行硬解码,若硬解码失败,则对读取的目标数据进行软解码;若否,则执行获取读取目标数据时所用的目标电压值组和解码错误信息的步骤,即进入S101-S104的流程。其中,软解码可以对比同一数据段的读取结果,并从中选择出正确的结果。最大重读次数为预设值。
可见,本申请实施例在读取目标数据发生错误时,获取读取目标数据时所用的目标电压值组和解码错误信息,并将目标电压值组和解码错误信息组合为待分类数据,然后利用机器学习算法对待分类数据进行分类,从而输出错误所属的错误类别,最后查询错误类别对应的重读电压值组,并利用重读电压值组对目标数据执行重读操作。导致读取数据出错的原因是“线性不可分”的问题,而机器学习算法能够基于样本训练得到较好的结果,因此利用机器学习算法判定错误类别,能够提高错误类别判断的准确性,从而可降低重读操作次数,提高重读成功率,也不会因为重读操作较多影响读写IO的性能,从而提高了固态硬盘性能。
参见图2所示,本申请实施例公开了第二种重读操作处理方法,包括:
(1)使用预设电压值读取目标数据;
(2)使用LDPC硬解码,即利用硬件电路加速解码;
(3)判断是否解码失败,如果是,则执行(4),否则,数据读成功;
(4)统计各个校验方程组中的等式不为0的等式个数,以获得LDPC解码错误信息;
(5)将LDPC解码错误信息和读取目标数据所用的电压值组合为x后,输入到SVM分类器中,以输出错误类别,并查询错误类别对应的推荐电压值(即重读电压值组);
(6)是否查询到新的推荐电压值;若是,则执行(7);否则,执行(10);
(7)基于新的推荐电压值执行重读操作,并使用LDPC硬解码;
(8)判断是否解码失败,如果是,则执行(9),否则,数据读成功;
(9)是否达到最大重读次数;如果是,则执行(10),否则,执行(4);
(10)使用预设电压值读取目标数据;
(11)使用LDPC硬解码;
(12)判断是否解码失败,如果是,则使用LDPC软解码,否则,数据读成功。
其中,推荐电压值可参照表1。表1为Data Retention Error对应的推荐电压值。
表1
各个错误类别对应的推荐电压值预设设置。每种错误类别都对应一个推荐表。这里以Data Retention Error为例,表1中的行数(即1、2、3、4等)代表了重读成功概率的降序排序,7列表示TLC Nand Flash每次读取目标数据需要设置7个阈值电压(A~G)。表中,正数表示右移相应步长的电压值,负数表示左移相应步长的电压值,0表示不移动。例如:阈值C的标准电压值是4.5V(标准电压值与存储介质相对应),表中阈值C对应的3表示右移3个0.05V,即4.65V;表中阈值C对应的-3表示左移3个0.05V,即4.35V。
请参见图3,如果第一次解码失败并判断错误类别是Data Retention,则用表1中第一行的电压值read retry(重读),如果再次失败且判断错误类别同是Data Retention,则用表1中第二行的电压值read retry,以此类推。当判断错误类型是Data Retention且表中的每行电压值都已尝试、和/或retry的次数达到了预设的关于Data Retention错误类型可以read retry的最大次数,则停止read retry并返回错误,当然也可以进行软纠错及其它read尝试。
其中,步骤(5)具体包括:
假设基于四种错误类别和一对一的二分类规则训练有6个SVM分类器,将步骤(5)中的x分别输入这6个SVM分类器,获得的结果如表2所示。
表2
从表2可看出,每个SVM分类器都从任意两种错误类别中选择了一种(标记为1的即为SVM分类器选择的),最终,Program Disturb Error和Disturb Retention Error都得2票,但是由于区分这两类的SVM5投给了Program Disturb Error,所以最终确定的错误类别为Program Disturb Error。
假设基于四种错误类别和一对多的二分类规则训练有4个SVM分类器,将步骤(5)中的x分别输入这4个SVM分类器,获得的结果如表3所示。
表3
分类器 Two Parts 分类值
SVM0 Program Disturb Error v.s.The Rest 2.32
SVM1 Read Disturb Error v.s.The Rest -0.13
SVM2 Disturb Retention Error v.s.The Rest 1.22
SVM3 P/E Cycle Disturb Error v.s.The Rest 0.57
从表3可看出,每个SVM分类器都输出了其识别的错误类别的分类值,此时选择最大分类值对应的错误类别为最终确定的错误类别,即Program Disturb Error。
本实施例利用SVM研究解码错误信息和错误类别的关系,从而利用SVM输出每次读取数据错误对应的错误类别,并据此查询相应推荐表,然后执行重读操作。本实施例解决了数据读取错误分类的线性不可分问题,且无需增加额外电路,无需增加额外空间和操作。错误类别的判断可以做到更细致、更准确、每次重读的阈值电压推荐的更适当,减少了重读次数,降低了延时和功耗,能够提高带宽利用率,使存储介质获得更好的性能。
下面对本申请实施例提供的一种重读操作处理装置进行介绍,下文描述的一种重读操作处理装置与上文描述的一种重读操作处理方法可以相互参照。
参见图4所示,本申请实施例公开了一种重读操作处理装置,包括:
获取模块401,用于若读取目标数据发生错误,则获取读取目标数据时所用的目标电压值组和解码错误信息;
组合模块402,用于将目标电压值组和解码错误信息组合为待分类数据;
分类模块403,用于利用机器学习算法对待分类数据进行分类,以输出错误所属的错误类别;
重读模块404,用于查询错误类别对应的重读电压值组,并利用重读电压值组对目标数据执行重读操作。
在一种具体实施方式中,组合模块包括:
获取单元,用于获取目标数据包括的各个数据段分别对应的校验方程错误信息;校验方程错误信息为任一个数据段对应的校验方程不成立的个数;
生成单元,用于根据各个校验方程错误信息生成解码错误信息;
组合单元,用于组合目标电压值组和解码错误信息,获得待分类数据。
在一种具体实施方式中,生成单元具体用于:
将各个校验方程错误信息分别转换为目标矩阵,并将各个目标矩阵对位相加,获得解码错误信息。
在一种具体实施方式中,分类模块具体用于:
利用SVM对待分类数据进行分类,以输出错误类别。
在一种具体实施方式中,分类模块包括:
第一分类单元,用于利用多个SVM分类器分别处理待分类数据,以输出多个待选类别;多个SVM分类器按照一对一的二分类规则训练获得;
划分单元,用于将多个待选类别中的相同类别划分至同一组;
第一确定单元,用于确定待选类别个数最多的目标组,并将目标组对应的待选类别确定为错误类别。
在一种具体实施方式中,分类模块包括:
第二分类单元,用于利用多个SVM分类器分别处理待分类数据,以输出多个待选类别;多个SVM分类器按照一对多的二分类规则训练获得;
第二确定单元,用于确定各个待选类别分别对应的分类值;
第三确定单元,用于将最大分类值对应的待选类别确定为错误类别。
在一种具体实施方式中,重读模块具体用于:
获取错误类别对应的推荐电压表;将推荐电压表中的尚未用于重读操作的各个电压值组按照重读成功率降序或升序排列;选择重读成功率最大的电压值组作为重读电压值组。
在一种具体实施方式中,还包括:
重读次数判断模块,用于若读取目标数据发生错误,则判断是否达到最大重读次数;
软解码模块,用于若达到最大重读次数,则利用目标电压值组读取目标数据,并对读取的数据进行硬解码,若硬解码失败,则对读取的目标数据进行软解码;
执行模块,用于若未达到最大重读次数,则执行获取读取目标数据时所用的目标电压值组和解码错误信息的步骤。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种重读操作处理装置,该装置利用机器学习算法判定错误类别,能够提高错误类别判断的准确性,从而可降低重读操作次数,提高重读成功率,也不会因为重读操作较多影响读写IO的性能,从而提高了固态硬盘性能。
下面对本申请实施例提供的一种重读操作处理设备进行介绍,下文描述的一种重读操作处理设备与上文描述的一种重读操作处理方法及装置可以相互参照。
参见图5所示,本申请实施例公开了一种重读操作处理设备,包括:
存储器501,用于保存计算机程序;
处理器502,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种重读操作处理方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的重读操作处理方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (8)

1.一种重读操作处理方法,其特征在于,包括:
若读取目标数据发生错误,则获取读取所述目标数据时所用的目标电压值组;
获取所述目标数据包括的各个数据段分别对应的校验方程错误信息;所述校验方程错误信息为任一个数据段对应的校验方程不成立的个数;
将各个校验方程错误信息分别转换为目标矩阵,并将各个目标矩阵对位相加,获得解码错误信息;
组合所述目标电压值组和所述解码错误信息,获得待分类数据;
利用机器学习算法对所述待分类数据进行分类,以输出所述错误所属的错误类别;
查询所述错误类别对应的重读电压值组,并利用所述重读电压值组对所述目标数据执行重读操作。
2.根据权利要求1所述的重读操作处理方法,其特征在于,所述利用机器学习算法对所述待分类数据进行分类,以输出所述错误所属的错误类别,包括:
利用SVM对所述待分类数据进行分类,以输出所述错误类别。
3.根据权利要求2所述的重读操作处理方法,其特征在于,所述利用SVM对所述待分类数据进行分类,以输出所述错误类别,包括:
利用多个SVM分类器分别处理所述待分类数据,以输出多个待选类别;所述多个SVM分类器按照一对一的二分类规则训练获得;
将所述多个待选类别中的相同类别划分至同一组;
确定待选类别个数最多的目标组,并将所述目标组对应的待选类别确定为所述错误类别;
利用多个SVM分类器分别处理所述待分类数据,以输出多个待选类别;所述多个SVM分类器按照一对多的二分类规则训练获得;
确定各个待选类别分别对应的分类值;
将最大分类值对应的待选类别确定为所述错误类别。
4.根据权利要求1所述的重读操作处理方法,其特征在于,所述查询所述错误类别对应的重读电压值组,包括:
获取所述错误类别对应的推荐电压表;
将所述推荐电压表中的尚未用于重读操作的各个电压值组按照重读成功率降序或升序排列;
选择重读成功率最大的电压值组作为所述重读电压值组。
5.根据权利要求1至4任一项所述的重读操作处理方法,其特征在于,所述利用所述重读电压值组对所述目标数据执行重读操作之后,还包括:
若读取所述目标数据发生错误,则判断是否达到最大重读次数;
若是,则利用所述目标电压值组读取所述目标数据,并对读取的数据进行硬解码,若硬解码失败,则对读取的目标数据进行软解码;
若否,则执行所述获取读取所述目标数据时所用的目标电压值组的步骤。
6.一种重读操作处理装置,其特征在于,包括:
获取模块,用于若读取目标数据发生错误,则获取读取所述目标数据时所用的目标电压值组;
组合模块,用于获取所述目标数据包括的各个数据段分别对应的校验方程错误信息;所述校验方程错误信息为任一个数据段对应的校验方程不成立的个数;将各个校验方程错误信息分别转换为目标矩阵,并将各个目标矩阵对位相加,获得解码错误信息;组合所述目标电压值组和所述解码错误信息,获得待分类数据;
分类模块,用于利用机器学习算法对所述待分类数据进行分类,以输出所述错误所属的错误类别;
重读模块,用于查询所述错误类别对应的重读电压值组,并利用所述重读电压值组对所述目标数据执行重读操作。
7.一种重读操作处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至5任一项所述的重读操作处理方法。
8.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的重读操作处理方法。
CN202010830876.4A 2020-08-18 2020-08-18 一种重读操作处理方法、装置、设备及可读存储介质 Active CN111913830B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010830876.4A CN111913830B (zh) 2020-08-18 2020-08-18 一种重读操作处理方法、装置、设备及可读存储介质
PCT/CN2021/083880 WO2022037071A1 (zh) 2020-08-18 2021-03-30 一种重读操作处理方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010830876.4A CN111913830B (zh) 2020-08-18 2020-08-18 一种重读操作处理方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN111913830A CN111913830A (zh) 2020-11-10
CN111913830B true CN111913830B (zh) 2024-03-19

Family

ID=73279687

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010830876.4A Active CN111913830B (zh) 2020-08-18 2020-08-18 一种重读操作处理方法、装置、设备及可读存储介质

Country Status (2)

Country Link
CN (1) CN111913830B (zh)
WO (1) WO2022037071A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111913830B (zh) * 2020-08-18 2024-03-19 深圳大普微电子科技有限公司 一种重读操作处理方法、装置、设备及可读存储介质
CN114356218B (zh) * 2021-12-07 2024-01-16 广州致存科技有限责任公司 Flash存储器的数据纠错方法、设备以及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106022213A (zh) * 2016-05-04 2016-10-12 北方工业大学 一种基于三维骨骼信息的人体动作识别方法
CN108153608A (zh) * 2016-12-06 2018-06-12 桑迪士克科技有限责任公司 基于动态存储器错误模型估计的纠错码和读取调整
CN110515760A (zh) * 2019-08-29 2019-11-29 北京计算机技术及应用研究所 一种基于机器学习的ldpc闪存纠错方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108370253B (zh) * 2015-12-24 2022-05-03 英特尔公司 用于低密度奇偶校验解码的混合式调度和基于锁存器的流水线
CN117215824A (zh) * 2017-09-28 2023-12-12 北京忆芯科技有限公司 基于机器学习的读出数据错误处理
CN109901944B (zh) * 2017-12-07 2024-04-12 北京忆恒创源科技股份有限公司 基于机器学习的读数据错误处理方法与系统
US11056185B2 (en) * 2018-10-12 2021-07-06 International Business Machines Corporation Apparatus for deep learning operations on resistive crossbar array
CN111475326A (zh) * 2019-01-23 2020-07-31 深圳衡宇芯片科技有限公司 训练人工智能执行低密度奇偶检查码的译码程序的方法
CN111913830B (zh) * 2020-08-18 2024-03-19 深圳大普微电子科技有限公司 一种重读操作处理方法、装置、设备及可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106022213A (zh) * 2016-05-04 2016-10-12 北方工业大学 一种基于三维骨骼信息的人体动作识别方法
CN108153608A (zh) * 2016-12-06 2018-06-12 桑迪士克科技有限责任公司 基于动态存储器错误模型估计的纠错码和读取调整
CN110515760A (zh) * 2019-08-29 2019-11-29 北京计算机技术及应用研究所 一种基于机器学习的ldpc闪存纠错方法

Also Published As

Publication number Publication date
WO2022037071A1 (zh) 2022-02-24
CN111913830A (zh) 2020-11-10

Similar Documents

Publication Publication Date Title
CN102568593B (zh) 读取快闪存储器中储存数据的方法、存储器控制器与装置
KR101981355B1 (ko) 메모리 시스템들을 위한 소프트 정보 생성
US20120254686A1 (en) Non-volatile semiconductor memory devices and error correction methods
CN111913830B (zh) 一种重读操作处理方法、装置、设备及可读存储介质
TW201511016A (zh) 更新讀取電壓
CN104756194B (zh) 基于估计概率密度函数的中心读取参考电压确定
US11768732B2 (en) Soft decoding method using LLR conversion table
CN106981308B (zh) 一种精准获取llr信息的应用方法
CN103811075A (zh) 错误检测和纠正装置及方法、失配检测装置及存储器系统
CN108647111A (zh) 用于存储器的读取控制装置、读取控制方法和存储器控制器
US11144388B2 (en) Nonvolatile memory device and memory system including nonvolatile memory device
US10574272B2 (en) Memory system
CN111638994B (zh) 一种闪存存储器及其错误比特计数检测方法和系统
US9390002B1 (en) Efficient bin labeling schemes for tracking cells in solid state storage devices
US20060282756A1 (en) Device and method for determining a position of a bit error in a bit sequence
CN110689914B (zh) 一种固态硬盘的读纠错方法、装置、设备及存储介质
CN109660263B (zh) 一种适用于mlc nand闪存的ldpc码译码方法
CN109785895B (zh) 纠正NAND Flash中多比特错误的ECC装置和方法
US20240013843A1 (en) Method for finding common optimal read voltage of multi-dies, storage system
US11374595B2 (en) Method for selectively inverting words to be written to a memory and device for implementing same
CN113129980B (zh) 一种信息译码方法、装置、电子设备及存储介质
US9236888B2 (en) Storage device, memory controller and memory control method
KR20130102397A (ko) 플래시 메모리 및 플래시 메모리에서의 리드 방법
GB2518632A (en) Estimation of level-thresholds for memory cells
US9971646B2 (en) Reading-threshold setting based on data encoded with a multi-component code

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