CN109901944A - 基于机器学习的读数据错误处理方法与系统 - Google Patents
基于机器学习的读数据错误处理方法与系统 Download PDFInfo
- Publication number
- CN109901944A CN109901944A CN201711281523.8A CN201711281523A CN109901944A CN 109901944 A CN109901944 A CN 109901944A CN 201711281523 A CN201711281523 A CN 201711281523A CN 109901944 A CN109901944 A CN 109901944A
- Authority
- CN
- China
- Prior art keywords
- read command
- read
- data
- scene
- memory
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 125
- 238000010801 machine learning Methods 0.000 title abstract description 5
- 238000012937 correction Methods 0.000 claims abstract description 86
- 238000012549 training Methods 0.000 claims abstract description 47
- 230000033001 locomotion Effects 0.000 claims description 66
- 238000012545 processing Methods 0.000 claims description 45
- 230000008569 process Effects 0.000 claims description 38
- 230000002787 reinforcement Effects 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 2
- 239000011159 matrix material Substances 0.000 description 65
- 239000007787 solid Substances 0.000 description 27
- 238000013473 artificial intelligence Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 18
- 238000005516 engineering process Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000005611 electricity Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012216 screening Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 208000033748 Device issues Diseases 0.000 description 2
- 240000002853 Nelumbo nucifera Species 0.000 description 2
- 235000006508 Nelumbo nucifera Nutrition 0.000 description 2
- 235000006510 Nelumbo pentapetala Nutrition 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 229940044442 onfi Drugs 0.000 description 1
- 230000017702 response to host Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开了基于机器学习的读数据错误处理方法与系统。所提供的读命令的错误处理方法,其特征在于,包括:向存储器发出读命令;接收所述存储器提供的对应于所述读命令的读出数据;若对所述读出数据的错误校正失败,对所述读命令被应用的场景进行强化学习训练,得到与读命令被应用的场景对应的重读命令或重读命令序列;以及向存储器发出重读命令。
Description
技术领域
本申请涉及存储领域,具体地,涉及利用机器学习技术对从NVM芯片中读出数据的错误处理。
背景技术
诸如闪存的NVM芯片通过在存储单元中保持电荷量来存储信息。存储单元中的电荷量决定了存储单元的读出电压。在读取闪存数据时,比较存储单元的读出电压与阈值电压来识别存储单元所存储的信息。相变存储器、阻变存储器、磁旋存储器、DRAM各自利用基于不同原理的存储单元来存储信息。
存储介质一般不是完全可靠的。由于存储单元的电荷量受存储单元的质量、寿命、时间等多种因素的影响,以及从多个存储单元到敏感放大器的信号传输路径的非均一性,导致从存储单元读取的数据同写入的数据存在偏差,无法正确体现原始向存储单元写入的信息。
现有技术中采用一些手段来预防或应对因存储单元的电荷量等因素的变化而导致读取的数据无法正确体现写入的数据的问题,例如,在美国专利US9070454B1中,根据存储单元的擦写次数、保持时间等因素计算阈值电压(从存储单元中读取数据或向存储单元中写入数据时使用的阈值电压或判决电压),并使用计算出的阈值电压向存储单元写入数据。阈值电压可包括用于读操作的读阈值与用于写操作的写阈值。申请号为201710957709.4的中国专利提供了智能重读命令生成技术。
在闪存芯片中,通过为读操作指示不同的参数,来选择读操作时所使用的阈值电压。通过具有不同阈值电压的读操作,从存储单元读出的数据可以有不同的结果。有些结果具有较低的比特错误率(Bit Error Ratio,错误比特与传输的总比特数的百分比),而有些结果具有较高的比特错误率。结合使用ECC(Error Correction Code,错误校正码)技术,具有较低的比特错误率的读取结果被ECC技术纠正的几率较高,从而通过尝试不同参数,来应对读操作中遇到的错误。参数可以合并在读命中中提供给闪存芯片,或者在闪存芯片中设置用于读操作的参数,而在闪存芯片处理读操作时,使用所设置的参数。
ECC技术的纠错能力是有限的,例如,最多能在1K字节数据(被称为ECC数据帧)中纠正40比特错误。当存储的数据的错误比特数量超出了ECC部件的纠错能力,需要尝试具有其他参数的读操作,以期待得到具有较少错误比特数的读出数据,以符合ECC部件的纠错能力要求。
存储介质上通常按页来存储和读取数据,而按块来擦除数据。通常,块包含多个页,存储介质上的页(称为物理页)具有固定的尺寸,例如17664字节,当然,物理页也可以具有其他的尺寸。在读出或写入数据时,一般为每个页的所有存储单元设置相同的阈值电压。
图1A是现有技术的固态存储设备的示意图。固态存储设备包括控制部件与耦合到控制器部件的一片或多片NVM(非易失性存储器)芯片。NVM芯片是例如NAND闪存、相变存储器、阻变存储器、磁旋存储器。控制部件还耦合到主机,以响应主机发出的访问固态存储设备的命令。控制部件包括命令下发队列、命令完成队列、ECC部件以及介质接口控制器。
介质接口控制器耦合到NVM芯片,并以遵循NVM芯片的接口协议的方式向NVM芯片发出命令,以操作NVM芯片,并接收从NVM芯片输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
如图1A所示,主机向固态存储设备发出访问固态存储设备的命令(1)。命令下发队列用于接收并缓存主机发出的访问固态存储设备的命令。主机发出的命令经过处理,并被转发给介质接口控制器(2)。介质接口控制器根据主机发出的命令向NVM芯片发出命令(3)。介质接口控制器还从NVM芯片获取命令处理结果(4)。以读命令为例,从NVM芯片读出的数据被提供给ECC部件进行错误校正(5)。处理完成的命令被添加到命令完成队列(6)。通过访问命令完成队列,主机获取命令处理结果(7)。
可以理解地,为使用ECC部件对读出数据进行错误校正,在向NVM芯片写入数据时,还用ECC部件对待写入数据进行错误校正编码(图1中未示出)。
ECC部件对从NVM芯片读出的数据进行的错误校正可能成功,也可能失败。在一个实施方式中,即使ECC部件对读出数据的错误校正失败,也向命令完成队列添加命令处理完成指示。若从命令完成队列中的命令处理完成指示中识别出数据的错误校正失败,则响应于错误校正失败,主机生成重读命令(重读命令指示与错误校正失败的读命令不同的读操作参数),发送给固态存储设备的命令下发队列。以及还重复步骤1-7,以再次尝试读取数据。
一般情况下,主机会尝试NVM芯片提供的多种或所有重读命令。如果尝试了所有的重读命令,依然没能获得错误校正成功的结果,则需要通过其他错误处理手段获取数据(例如,通过RAID技术)。而当通过某个重读命令获得了错误校正成功的正确数据,则终止对其他重读命令的尝试。
可选地,一些NVM芯片提供不同形式的重读命令。例如,通过设置特征(SetFeature)命令与读命令的组合来实现重读命令的功能。使用设置特征命令来设置读命令参数,并在读命令中,使用所设置的读命令参数。
依然可选地,在重读命令中指示与错误校正失败的读命令相同的读命令参数。
Q-Learning是强化学习技术(Reinforcement Learning)的一种。图1B展示了Q-Learning算法的示意图。Q-Learning算法的核心是维护Q-Matrix(Q-矩阵)。图1C是根据本申请实施例的Q-Matrix的示意图。Q-Matrix是二维表或矩阵,其行与列分别表示状态(s)与动作(a)。状态s的每个取值,在Q-Matrix中占据一行,而动作(a)的每个取值,在Q-Matrix中占据一列。行与列的交点被填入Q值。Q值评价了在状态(s)采取动作(a)究竟有多好。
在Q-Learning技术的训练过程中,用公式(1)更新Q-Matrix。公式(1)中,Q(s,a)表示以状态s为行、动作a为列的Q-Matrix。α是学习率(learning rate)(0<α≤1),r是观察到的对当前状态s的奖励,γ是折扣因子(discount factor),maxα′Q(s′,a′)是对Q-Matrix最优将来值的估计。
Q(s,a)←Q(s,a)+α[r+γmaxα′Q(s′,a′)-Q(s,a)] (1)
发明内容
读操作具有多种参数,分别指示了不同的读阈值电压。在对读操作的错误处理中,需要提高选择读操作参数的效率,以加快数据读取过程,并减少从NVM芯片重复读数据的次数,以提升读数据的有效带宽。
根据本申请的第一方面,提供了根据本申请第一方面的第一读命令的错误处理方法,其特征在于,包括:向存储器发出读命令;接收所述存储器提供的对应于所述读命令的读出数据;若对所述读出数据的错误校正失败,对所述读命令被应用的场景进行强化学习训练,得到与读命令被应用的场景对应的重读命令或重读命令序列;以及向存储器发出重读命令。
根据本申请第一方面的第一读命令的错误处理方法,提供了根据本申请第一方面的第二读命令的错误处理方法,其中读命令被应用的场景被作为强化学习系统的状态,用于错误处理的重读命令作为强化学习系统的动作,以及将完成错误处理过程的开销作为强化学习系统的奖励。
根据本申请第一方面的第一或第二读命令的错误处理方法,提供了根据本申请第一方面的第三读命令的错误处理方法,还包括:接收所述存储器提供的对应于重读命令的读出数据;对所述重读命令被应用的场景进行强化学习训练。
根据本申请第一方面的第一至第三读命令的错误处理方法之一,提供了根据本申请第一方面的第四读命令的错误处理方法,其中读命令被应用的场景包括,读命令所访问的存储单元被擦除的次数、读命令所访问的存储单元上次被擦除后的被读出次数、读命令所访问的存储单元的数据被写入至今的时间间隔、读命令所访问的存储单元的物理页类型、读命令访问的存储单元所在的LUN、读命令所访问的存储单元的物理地址,和/或读命令所访问的存储单元所在的物理块是否被完整写入。
根据本申请第一方面的第二读命令的错误处理方法,提供了根据本申请第一方面的第五读命令的错误处理方法,其中完成错误处理过程的开销包括,完成错误处理过程所需的时间、数据传输量和/或功耗。
根据本申请第一方面的第一至第五读命令的错误处理方法之一,提供了根据本申请第一方面的第六读命令的错误处理方法,其中还将所述存储器提供的对应于重读命令的读出数据的错误比特数,作为强化学习的奖励。
根据本申请第一方面的第一至第六读命令的错误处理方法之一,提供了根据本申请第一方面的第七读命令的错误处理方法,其中强化学习系统的动作包括“停止”动作;训练强化学习系统,使得响应于对应于重读命令的读出数据的错误校正成功,或者错误处理过程的开销超过阈值,强化学习系统输出“停止”动作。
根据本申请第一方面的第七读命令的错误处理方法,提供了根据本申请第一方面的第八读命令的错误处理方法,其中通过强化学习获得输出“停止”动作的最佳时机。
根据本申请第一方面的第一至第八读命令的错误处理方法之一,提供了根据本申请第一方面的第九读命令的错误处理方法,还包括:若对所述读出数据的错误校正失败,开始对强化学习系统的训练的局;响应于对应于重读命令的读出数据的错误校正成功,结束对强化学习系统的训练的所述局。
根据本申请第一方面的第九读命令的错误处理方法,提供了根据本申请第一方面的第十读命令的错误处理方法,其中将得到与读命令被应用的场景对应的重读命令或重读命令序列作为强化学习系统的步。
根据本申请第一方面的第九或第十读命令的错误处理方法,提供了根据本申请第一方面的第十一读命令的错误处理方法,其中响应于开始对强化学习系统的训练的第一局,生成第一局标识符;以及响应于接收所述存储器提供的对应于第一局的重读命令的读出数据,用第一局标识符获取第一局的重读命令被应用的场景。
根据本申请第一方面的第九至第十一读命令的错误处理方法之一,提供了根据本申请第一方面的第十二读命令的错误处理方法,其中读命令被应用的场景还包括当前局的错误处理过程中应用过的重读命令序列。
根据本申请第一方面的第九至第十二读命令的错误处理方法之一,提供了根据本申请第一方面的第十三读命令的错误处理方法,其中将当前局中从存储器读出的数据的信息熵、从存储器读出的数据与存储器存储的数据的联合信息熵、和/或从存储器读出的数据与存储器存储的数据的互信息作为强化学习系统的奖励。
根据本申请第一方面的第一至第十三读命令的错误处理方法之一,提供了根据本申请第一方面的第十四读命令的错误处理方法,还包括:筛选从强化学习系统得到的重读命令或重读命令序列,剔除可被识别为对错误处理过程无效的重读命令或重读命令序列。
根据本申请第一方面的第一至第十四读命令的错误处理方法之一,提供了根据本申请第一方面的第十五读命令的错误处理方法,还包括设置强化学习系统的参数,所述强化学习系统的参数被存储在存储器中或由主机提供。
根据本申请第一方面的第一至第十五读命令的错误处理方法之一,提供了根据本申请第一方面的第十六读命令的错误处理方法,还包括获取强化学习系统的参数,并将所述强化学习系统的参数提供给主机或将所述强化学习系统的参数存储在所述存储器中。
根据本申请第一方面的第一至第十六读命令的错误处理方法之一,提供了根据本申请第一方面的第十七读命令的错误处理方法,还包括将强化学习的训练结果记录在存储器、动态随机存取存储器或者非易失性存储器中。
根据本申请第一方面的第一至第十七读命令的错误处理方法之一,提供了根据本申请第一方面的第十八读命令的错误处理方法,还包括:响应于对根据第二读命令从存储器读出数据的错误校正失败,对第二读命令被应用的场景进行强化学习推断,得到与地儿读命令被应用的场景对应的重读命令或重读命令序列;以及向存储器发出重读命令。
根据本申请第一方面的第二读命令的错误处理方法,提供了根据本申请第一方面的第十九读命令的错误处理方法,其中根据强化学习系统的奖励,更新对同强化学习系统的状态对应的强化学习系统的动作的评价。
根据本申请第一方面的第一至第十九读命令的错误处理方法之一,提供了根据本申请第一方面的第二十读命令的错误处理方法,其中所述强化学习系统应用Q-Learning算法。
根据本申请的第二方面,提供了根据本申请第二方面的第一存储设备,包括控制部件、存储器芯片与强化学习部件;所述控制部件耦合所述存储器芯片与所述强化学习部件,并执行根据本申请第一方面的第一至第二十错误处理方法之一。
根据本申请的第三方面,提供了根据本申请第三方面的第一错误处理系统,包括主机与同主机耦合的存储设备;所述存储设备包括控制部件与存储器芯片;所述控制部件用于向存储器发出读命令并接收所述存储器提供的对应于所述读命令的读出数据;响应于对所述读出数据的错误校正失败,所述控制部件将所述读命令被应用的场景提供给所述主机;所述主机对所述读命令被应用的场景进行强化学习训练,将得到的与读命令被应用的场景对应的重读命令或重读命令序列提供给所述控制部件;以及所述控制部件向所述存储器芯片发出重读命令。
根据本申请第三方面的第一错误处理系统,提供了根据本申请第三方面的第二错误处理系统,其中所述控制部件还接收所述存储器提供的对应于重读命令的读出数据;将得到的与重读命令被应用的场景提供给所述主机;所述主机对所述重读命令被应用的场景进行强化学习训练。
根据本申请的第四方面,提供了根据本申请第四方面的第一错误处理系统,包括:读命令模块,用于向存储器发出读命令;数据接收模块,用于接收所述存储器提供的对应于所述读命令的读出数据;强化学习模块,用于若对所述读出数据的错误校正失败,对所述读命令被应用的场景进行强化学习训练,得到与读命令被应用的场景对应的重读命令或重读命令序列;以及重读命令模块,用于向存储器发出重读命令。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域技术人员来讲,还可以根据这些附图获得其他的附图。
图1A是现有技术的固态存储设备的示意图;
图1B是Q-Learning技术的示意图;
图1C是Q-Matrix的示意图;
图2A是根据本申请实施例的固态存储设备的示意图;
图2B是根据图2A的实施例的固态存储设备处理读命令的示意图;
图3根据本申请实施的固态存储设备的读出数据错误处理系统的示意图;
图4A是根据本申请的实施例对Q-Learning部件进行训练的流程图;
图4B是根据本申请的又一实施例对Q-Learning部件进行训练的流程图;
图5A是根据本申请的实施例的固态存储设备处理读命令的示意图;
图5B是根据本申请的又一实施例的固态存储设备处理读命令的示意图;
图6是根据本申请又一实施的固态存储设备的读出数据错误处理系统的示意图;以及
图7是根据本申请的依然又一实施例对Q-Learning部件进行训练的流程图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图2A是根据本申请实施例的固态存储设备的示意图。根据图2A的实施例的固态存储设备的控制部件,包括命令下发队列、命令完成队列、介质接口控制器、ECC部件以及AI(人工智能,Artificial Intelligence)部件或机器学习部件。AI部件耦合到ECC部件。响应于ECC部件指示错误校正成功,将当前读命令被应用的场景与当前读命令的读命令参数提供给AI部件,用于训练AI部件。例如,在实现了强化学习算法的AI部件中,训练AI部件。可选地,AI部件还耦合到控制部件外部的DRAM,以缓存AI部件的神经网络的参数。AI部件可以是IP核、CPU核或耦合到控制器的ASIC芯片。
在根据本申请的又一种实施方式中,控制部件的CPU核(图中未示出)识别ECC部件对读出数据的错误校正结果,并将对应的读命令参数与读命令被应用的场景提供给AI部件,以训练AI部件的神经网络。CPU核通过执行软件,控制AI部件的训练、推断、开启和/或关闭。
依然可选地,响应于主机的命令或指示,为AI部件设置神经网络的参数,所设置的神经网络的参数可以存储在固态存储设备的NVM芯片中或由主机提供。可选地,响应于主机的命令或指示,从AI部件获取经学习得到的神经网络参数,并提供给主机或存储在固态存储设备的NVM芯片中,以供其他固态存储设备使用。
继续参看图2A,以固态存储设备读命令处理流程为例,主机向固态存储设备的命令下发队列发出读访问命令(1)。主机发出的读访问命令经过处理,并被转发给介质接口控制器(2)。介质接口控制器根据主机发出的读访问命令向NVM芯片发出命令(3)。介质接口控制器还从NVM芯片获取读命令的处理结果(4)。对于读命令,从NVM芯片读出的数据被提供给ECC部件进行错误校正(5)。若ECC部件对数据的错误校正成功,处理完成的读命令被添加到命令完成队列(6),并且当前读命令被应用的场景与读命令参数还被转发给AI部件(6),用于训练AI部件的神经网络。训练AI部件所得的结果被记录在控制部件的存储器、动态随机存取存储器(DRAM)或者NVM芯片中。
图2B是根据图2A的实施例的固态存储设备处理读命令的示意图。
在图2B中,主机向固态存储设备的命令下发队列发出读访问命令(1)。主机发出的读访问命令经过处理,并被转发给介质接口控制器(2)。介质接口控制器根据主机发出的读访问命令向NVM芯片发出读命令(3)。介质接口控制器还从NVM芯片获取命令处理结果(4)。对于读命令,从NVM芯片读出的数据被提供给ECC部件进行错误校正(5)。若ECC部件对数据的错误校正失败,读命令被应用的场景(可选地,还包括读命令参数(例如,读出阈值电压、读出数据的错误比特数和/或读命令参数的序列))被转发给AI部件(6)。AI部件根据接收的读命令被应用的场景推断最佳的读命令参数(例如,读出阈值电压或具有不同读出阈值电压的读命令序列),生成重读命令,将重读命令发送给介质接口控制器(7)。介质接口控制器根据重读命令向NVM芯片发出重读命令(8)。介质接口控制器还从NVM芯片获取重读命令的处理结果(9)。重读命令读出的数据被提供给ECC部件(10)。若ECC部件对读出数据的错误校正失败,由AI部件再次发起从步骤(6)到步骤(10)的过程。若ECC部件对读出数据的错误校正成功,处理完成的命令被添加到命令完成队列(11)。通过访问命令完成队列,主机获取命令处理结果(12)。
在根据本申请的又一种实施方式中,控制部件的CPU核(未示出)识别ECC部件对读出数据的错误校正结果,并将对应的读命令被应用的场景(可选地,还包括读命令参数)提供给AI部件,AI部件生成重读命令,并在控制部件的CPU核(未示出)的控制下将重读命令发送给介质接口控制器。
图3根据本申请实施的固态存储设备的读出数据错误处理系统的示意图。
介质接口控制器向NVM芯片发出读命令或重读命令,从NVM芯片读出数据。读命令/重读命令可指示多种不同的读操作参数。ECC部件对读出数据进行错误校正。响应于对读出数据的错误校正失败,将对应的读命令被应用的场景作为状态,提供给Q-Learning部件,用于训练(学习)和/或推断。
为了清楚的目的,区分读命令与重读命令。将介质接口控制器为读取NVM芯片指定存储单元而向NVM芯片首次发出的命令称为读命令,而若读命令对应的读出数据的错误校正失败,而实施错误处理过程,将错误处理过程中发出的读命令称为重读命令。可以理解地,读命令与重读命令的形态可以相同或不同。错误处理过程,对一个读命令引起的错误进行处理,直到得到对应于读命令的正确数据作为错误处理过程的结束,或者以指定的终止条件作为处理过程的结束。
读命令被应用的场景的属性包括读命令访问的存储单元的被擦除次数、存储单元上次被擦除后的被读出次数、物理块上的数据被写入至今的时间间隔和/或存储单元的物理页类型(LSB/CSB/MSB)等。
根据本申请实施例的Q-Learning部件的学习中,将对一个读命令引起的错误处理过程称为局(Episode),而将产生的一个重读命令或重读命令序列称为步(step)。
Q-Learning部件将接收的读命令被应用的场景的属性的部分或全部,作为要应用于Q-Matrix的状态(s)。Q-Matrix的动作(a)是介质接口控制器所能产生的或者NVM芯片所能接收的多种所有读命令(具有不同的读操作参数)。
Q-Learning部件根据接收的读命令被应用的场景得到Q-Matrix的状态(s),并从Q-Matrix获得对应于状态(s)的动作(a)。动作(a)是例如当前Q-Matrix中对应于状态(s)的最优动作(a)(例如,具有最大的奖励(r)),或者引入随机值而选择的动作(a)。Q-Learning部件将Q-Matrix提供的动作(a)(或同动作(a)对应的读操作参数)提供给介质接口控制器。
介质接口控制器根据接收的读操作参数产生重读命令,并发送给NVM芯片以重新读出数据。介质接口控制器还获取根据重读命令从NVM芯片读出的数据,由ECC部件对读出数据进行错误校正。ECC部件还给出错误校正成功/失败的指示,以及可选地,读出数据中的错误比特数。将错误校正成功/失败的指示,以及可选地,读出数据中的错误比特数提供给Q-Learning部件,作为同动作(a)对应的奖励(r),以更新Q-Matrix。
可选地,Q-Learning部件还记录当前局所经历的时间期间(t),将时间期间(t)也作为用于Q-Matrix的奖励(r)。其中,时间期间(t)越短,对应的奖励(r)越大。
可选地,若ECC部件告知Q-Learning部件对重读命令读出的数据的错误校正成功,Q-Learning部件也生成对应的奖励(r),更新Q-Matrix,并结束对应于该重读命令的当前局的训练。
依然可选地,根据读出数据中的错误比特数与当前局所经历的时间期间(t)计算奖励(r)。例如,对读出数据中的错误比特数与当前局所经历的时间期间(t)各自设置权重并通过加权求和以得到奖励(r)
若ECC部件告知Q-Learning部件对重读命令读出的数据的错误校正依然失败,Q-Learning部件根据更新的Q-Matrix生成下一最优动作(a)提供给介质接口控制器。介质接口控制器生成新的重读命令。
根据本申请的实施例,对Q-Learning的学习过程,将错误处理过程完成作为Q-Learning的局结束的标志。作为举例,ECC部件指示对重读命令的错误校正成功是错误处理过程完成的标志;作为又一个例子,错误处理过程已进行的时间超过阈值是错误处理过程完成的标志。
可选地,Q-Matrix的包括“退出”动作,作为动作(a)的一种。响应于执行“退出”动作,学习过程的一局结束。例如,当学习过程的一局的步(step)数达到指定阈值时,执行“退出”动作。作为又一个例子,“退出”动作在Q-Matrix中也有其对应的Q值。通过学习过程,也更新“退出”动作对应的Q值,并且为“退出”动作的选取策略进行学习。例如,一些情况下,错误处理过程将以失败告终,那么尽早执行“退出”动作,将缩短错误处理过程的时间。
图4A是根据本申请的实施例对Q-Learning部件进行训练的流程图。
对Q-Learning部件的训练可以在实验室中进行(在存储设备被提供给用户之前),并得到训练好的Q-Learning部件及其Q-Matrix。在存储设备中集成训练好的Learning部件与Q-Matrix,并在正常工作时,响应于ECC部件指示的错误校正失败,而生成优选的重读命令,以执行错误处理过程。作为又一个例子,在存储设备正常工作时,也对Q-Learning部件进行训练,并更新Q-Matrix。在Q-Learning部件得到良好训练之前,用已知的错误处理策略来选择读操作的参数。作为再一个例子,在实验室中对Q-Learning部件进行第一阶段的训练,得到基本可用的Q-Learning部件与Q-Matrix。并且在存储设备的使用过程中,用真实发生的错误校正失败的实例,继续对Q-Learning进行训练,以使Q-Learning部件不断学习,并改进错误处理过程。
对Q-Learning部件的训练可由存储设备的控制部件实施,或者在实验室中由计算机和/或服务器等通用计算平台(例如,图1A的主机)、AI(Artificial Intelligence)专用加速器(例如,图2A、2B的AI部件)等实施。
参看图4A,为训练Q-Learning部件,首先初始化Q-Matrix(410)。例如,根据已知的知识,为Q-Matrix的各个状态(s)对应的动作(a)设置Q值。可选地,为Q-Matrix中的各Q值设置为相同的值或随机值。
响应于从NVM芯片读出的数据的错误校正失败(420),开始用于训练Q-Learning部件的一局(Episode)。例如,由ECC部件指示读出数据的错误校正失败。又例如,Q-Learning部件输出局(Episode)索引给ECC部件/介质接口控制器(或包含ECC部件/介质接口控制器的控制部件)。
将对应于错误校正失败的读出数据的读命令所应用的场景提供给Q-Learning部件,用于确定对应于Q-Matrix的状态(s)(430)。例如,读命令被应用的场景包括读命令访问的存储单元的被擦除次数与读命令访问的存储单元上的数据被写入至今的时间间隔。存储单元被擦除次数的取值范围为例如0~3000次,数据被写入至今的时间间隔的取值范围为例如0-12个月(以小时、天、周或月为单位)。可选地,读命令被应用的场景还包括存储单元上次被擦除后的被读出次数和/或存储单元的物理页类型(LSB/CSB/MSB)。依然可选地,读命令被应用的场景还包括读命令访问的LUN(逻辑单元,由LUN号识别)、存储单元的物理地址(由物理块/物理页地址识别),和/或存储单元所在的物理块是否被完整写入(以及当前被写入的位置(由物理页地址识别))。
可选地,减少Q-Matrix的状态空间,以降低训练过程的复杂度。例如,对存储单元被擦除次数分段,分为0-500次、500-1000次、1000-1500次,每段作为状态空间的元素之一。作为又一个例子,将与状态相关的多种因素组合,状态空间的元素之一为被擦除次数在0-500次,且数据被写入至今的时间间隔为0-2周。
Q-Learning根据状态(s)与Q-Matrix记录的对应于状态(s)的一个或多个动作(a)的Q值,选择最优的动作(a’)。根据动作(a’)获得对应的读操作参数,生成重读命令(440)。例如,Q-Learning将选择的动作(a’)提供给介质接口控制部,由介质接口控制器产生重读命令并提供给NVM芯片。介质接口控制器还接收重读命令从NVM芯片读出的数据,ECC部件对用重读命令读出的数据进行错误校正,并将错误校正结果提供给Q-Learning部件。
可选地,为指定状态(s)选择最优动作(a’)时,还应用已知的知识。例如,已知随时间流逝,存储单元中存储的电荷有流失的倾向,而随着存储单元被读取的次数增加,存储单元的存储的电荷有增加的倾向。从而根据读命令被应用的场景,确定存储单元中存储的电荷的变化倾向,并选择与存储的电荷变化倾向对应的动作(a)。例如,可选动作集合中有多个动作,一半动作对应的读操作参数适用于流失了电荷的存储单元,而另一半动作对应的读操作参数适用于增加了电荷的存储单元,从而选择与存储的电荷变化倾向对应的动作(a),可大幅度减少训练量。
还将重读命令所应用的场景提供给Q-Learning部件,Q-Learning部件根据场景识别出同场景对应的局。可选地,向Q-Learning部件提供局(Episode)索引,以指示当前的错误校正结果属于哪个局。Q-Learning部件可同时进行多局的学习。Q-Learning部件为每局记录当前的进展(例如,通过标记步(step)序号)。
Q-Learning部件使用例如公式(1)根据重读命令的读出数据的错误校正结果更新Q-Matrix(450)。以及判断是否满足学习过程的停止条件(460)。例如,将错误校正成功作为停止条件之一。若错误校正成功,则当前局的学习完成(470)。若对重读命令的读出数据的错误校正依然失败,则不满足停止条件(460),Q-Learning部件根据重读命令的应用场景或局索引得到用于Q-Matrix的状态(s’)(430),以及通过更新后的Q-Matrix得到当前局面下的最优动作(a’),并由介质接口控制器生成重读命令(440),以及重复对Q-Learning部件的训练过程。
学习过程的终止条件还包括错误处理过程(当前局)的执行时间超出阈值,或者当前局中已经执行的步(step)数超出阈值,或者Q-Learning部件得到终止当前局的指示。
图4B是根据本申请的又一实施例对Q-Learning部件进行训练的流程图。
训练Q-Learning部件的局,开始于指定的Q-Matrix的状态(s),例如,ECC部件指示错误校正失败时,同引起错误校正失败的读命令所应用的场景对应的状态(s)。为获得Q-Learning的理想训练结果,需要提高训练效率,并使训练过程尽快覆盖更多的状态(s)。图4B的实施例中,通过步骤415构造读命令所应用的读出数据的场景,以提高训练过程的效率。
参看图4B,为训练Q-Learning部件,首先初始化Q-Matrix(410),以及构造读命令所应用的读出数据的场景(415)。例如,对NVM芯片的一个或多个存储单元施加指定次数的擦写(例如,500次、1000次、1500次等),来构成读命令所应用的场景。可选地,或进一步地,对施加了指定擦写次数的存储单元,还设置其被写入数据至今的时间间隔,以构成读命令所应用的场景。
在被构造的场景中应用读命令。响应于从NVM芯片读出的数据的错误校正失败(420),开始用于训练Q-Learning部件的一局(Episode)。
将对应于错误校正失败的读出数据的读命令所应用的场景提供给Q-Learning部件,用于确定对应于Q-Matrix的状态(s)(430)。作为举例,在构造的场景基础上,记录所构造场景的变化(例如,又发生的对存储单元的擦写次数、存储单元上记录的数据又经过的时间间隔等),以得到对应于错误校正失败的读出数据的读命令所应用的场景。
Q-Learning根据状态(s)与Q-Matrix记录的对应于状态(s)的一个或多个动作(a)的Q值,选择最优的动作(a’)。根据动作(a’)获得对应的读操作参数,生成重读命令(440)。
Q-Learning部件根据重读命令的读出数据的错误校正结果更新Q-Matrix(450)。以及判断是否满足学习过程的停止条件(460)。
若满足学习过程的停止条件(460),则当前局的学习完成(470)。以及返回步骤415,构造下一个读出数据的读命令所应用的场景(415),并通过步骤420进入对Q-Learning部件下一局的学习。
若不满足停止条件(460),Q-Learning部件根据重读命令的应用场景或局索引得到用于Q-Matrix的状态(s’)(430),以及通过更新后的Q-Matrix得到当前局面下的最优动作(a’),并由介质接口控制器生成重读命令(440),以及重复对Q-Learning部件的训练过程。
图5A是根据本申请的实施例的固态存储设备处理读命令的示意图。
控制部件的质接口控制器向NVM芯片发出读命令,并从NVM芯片获取读命令的读出数据。ECC部件对读出数据进行错误校正。响应于从NVM芯片读出的数据的错误校正失败(510),将读命令所应用的场景提供给Q-Learning部件,以获取在当前场景下优选的用于错误处理过程的动作(520)。Q-Learning部件根据读命令所应用的场景获得对应于Q-Matrix的状态(s),并访问Q-Matrix获得同状态(s)对应的最优动作(a)。例如,最优动作(a)指示了读操作参数、重读命令和/或重读命令序列。介质接口控制器根据Q-Learning部件指示的最优动作(a)或最优动作序列,向NVM芯片发出重读命令或者重读命令序列。
可选地,获取重读命令或重读命令序列的读出数据,对读出数据进行错误校正。若错误校正失败,则返回步骤510继续进行错误处理过程。
可选地,在步骤520,Q-Learning部件输出最优动作(a)的序列。例如,Q-Learning部件预计到在执行了最优动作(a)后,同重读命令对应的场景将变为状态(s)的下一状态(记为s1),以及从Q-Matrix中获得对应于状态(s1)的最优动作(a1)。以类似的方式,Q-Learning部件输出最优动作序列(a、a1、a2……)。以及介质接口控制器根据Q-Learning部件指示的最优动作(a)序列,向NVM芯片发出重读命令序列。以此方式,响应于一次ECC部件指示错误校正失败,仅需访问一次Q-Learning部件,减少了ECC部件与Q-Learning部件交互的次数,有助于降低错误处理过程所需的时间。
图5B是根据本申请的又一实施例的固态存储设备处理读命令的示意图。
控制部件的质接口控制器向NVM芯片发出读命令(R1)。ECC部件对读出数据进行错误校正。响应于从NVM芯片读出的数据的错误校正失败(540),开启错误处理流程。作为举例,将读命令所应用的场景提供给Q-Learning部件。可选地,还将ECC部件提供的读出数据的错误比特数量提供给Q-Learning部件。Q-Learning部件输出的优选动作指示再次发出读命令(R2)(同读命令R1使用相同的读操作参数)(550)。
响应于读命令(R2)读出的数据的错误校正成功(555),错误处理流程结束,将校正后的读出数据作为对读命令的响应提供给主机。以及还将读命令(R2)读出的数据的错误校正成功作为奖励提供给Q-Learning部件,Q-Learning部件相应地更新Q-Matrix。
若读命令(R2)读出的数据的错误校正失败(555),将读命令所应用的场景提供给Q-Learning部件,Q-Learning部件输出的优选动作指示发出重读命令1(560)。可选地,还将读命令(R2)读出的数据的错误比特数作为奖励提供给Q-Learning部件,Q-Learning部件相应地更新Q-Matrix。以及识别通过重读命令1读出的数据是否错误校正成功(565)。
响应于重读命令1读出的数据的错误校正成功(565),错误处理流程结束。以及还将重读命令1读出的数据的错误校正成功作为奖励提供给Q-Learning部件,Q-Learning部件相应地更新Q-Matrix。若重读命令1读出的数据的错误校正失败(565),将读命令所应用的场景提供给Q-Learning部件,Q-Learning部件输出的优选动作指示发出重读命令2(570)。可选地,还将重读命令1读出的数据的错误比特数作为奖励提供给Q-Learning部件,Q-Learning部件相应地更新Q-Matrix。以及识别通过重读命令2读出的数据是否错误校正成功(575)。
响应于重读命令2读出的数据的错误校正成功(575),错误处理流程结束。以及还将重读命令2读出的数据的错误校正成功作为奖励提供给Q-Learning部件,Q-Learning部件相应地更新Q-Matrix。若重读命令2读出的数据的错误校正失败(575),将读命令所应用的场景提供给Q-Learning部件,Q-Learning部件输出的优选动作指示发出重读命令3(580)。可选地,还将重读命令2读出的数据的错误比特数作为奖励提供给Q-Learning部件,Q-Learning部件相应地更新Q-Matrix。以及识别通过重读命令3读出的数据是否错误校正成功(585)。
响应于重读命令3读出的数据的错误校正成功(585),错误处理流程结束。以及还将重读命令3读出的数据的错误校正成功作为奖励提供给Q-Learning部件,Q-Learning部件相应地更新Q-Matrix。若重读命令3读出的数据的错误校正失败(585),由于已经达到错误处理过程的最大次数(例如,3次),Q-Learning部件输出的优选动作为“停止”动作。相应地,报告读数据失败(590),或错误处理过程失败。可选地,还将重读命令3读出的数据的错误比特数作为奖励提供给Q-Learning部件,Q-Learning部件相应地更新Q-Matrix。
图6是根据本申请又一实施的固态存储设备的读出数据错误处理系统的示意图。
介质接口控制器向NVM芯片发出读命令或重读命令,从NVM芯片读出数据。ECC部件对读出数据进行错误校正。响应于对读出数据的错误校正失败,将对应的读命令被应用的场景作为状态,提供给Q-Learning部件,用于训练(学习)和/或推断。
读命令被应用的场景的属性包括读命令访问的存储单元的被擦除次数、存储单元上次被擦除后的被读出次数、物理块上的数据被写入至今的时间间隔和/或存储单元的物理页类型(LSB/CSB/MSB)等。提供给Q-Learning部件的场景还包括已在当前局的错误处理过程中应用过的重读命令序列。
Q-Learning部件将接收的读命令被应用的场景的属性的部分或全部,作为要应用于Q-Matrix的状态(s)。Q-Matrix的动作(a)是介质接口控制器所能产生的或者NVM芯片所能接收的多种所有读命令(具有不同的读操作参数)。
Q-Learning部件根据接收的读命令被应用的场景得到Q-Matrix的状态(s),并从Q-Matrix获得对应于状态(s)的动作(a)。Q-Learning部件将Q-Matrix提供的动作(a)(或同动作(a)对应的读操作参数)提供给介质接口控制器。
介质接口控制器根据接收的读操作参数产生重读命令,并发送给NVM芯片以重新读出数据。介质接口控制器还获取根据重读命令从NVM芯片读出的数据,由ECC部件对读出数据进行错误校正。将错误校正成功/失败的指示、读出数据中的错误比特数、当前局所经历的时间期间(t)、和/或当前局中从NVM芯片读出数据的信息熵或互信息提供给Q-Learning部件,作为同动作(a)对应的奖励(r),以更新Q-Matrix。申请号为201710030720.6的中国专利申请提供了计算从NVM芯片读出的数据的信息熵H(Y),从NVM芯片读出数据与NVM芯片存储的数据的联合信息熵H(X,Y)以及互信息I(X,Y)的方法,将该中国专利申请的全文通过引用合并入本申请。
其中,通过多种处理过程T处理随机变量X,处理的结果作为随机变量Y,并依据公式(1)与(2)计算X与Y的互信息I(X,Y)。
H(X)=-∑x∈Xp(x)log2p(x) (2)
I(X,Y)=H(X)+H(Y)-H(X,Y) (3)
随机变量X表示原始数据,例如写入NVM芯片中的数据。
随机变量Y表示对随机变量X经过处理过程T得到的数据,例如从NVM芯片读出的数据。
作为举例,X代表写入NVM芯片的原始数据,而处理过程T是参数为r的重读命令,Y代表从NVM芯片读出的数据。
H(X)是随机变量X的信息熵,由X的边缘概率计算(公式(2));H(Y)是随机变量Y的信息熵,由Y的边缘概率计算(公式(2)),H(X,Y)是随机变量X与Y的联合信息熵,H(X,Y)=-∑(x,y)∈(X,Y)p(x,y)log2p(x,y)。
x是随机变量X的一个可能的值(也称为符号)。y是随机变量Y的一个可能的值(也称为符号)。p(x)是x的边缘概率,x∈X,p(y)是y的边缘概率,y∈Y。p(x,y)是x和y同时出现的概率(x与y的联合概率)。
根据本申请的实施例,从NVM芯片读出的数据的信息熵越低或者NVM芯片读出数据与NVM芯片存储的数据的互信息I(X,Y)越大,对应了更大的奖励(r)。
可以理解地,向Q-Learning部件提供当前局已应用的重读命令序列,与向Q-Learning部件提供信息熵/互信息或与其相关的奖励,不必同时应用。即使向Q-Learning部件提供的读命令被应用的场景不包括重读命令序列,也可将信息熵/互信息作为奖励提供给Q-Learning部件。类似地,即使向Q-Learning部件提供当前局已应用的重读命令序列,在向Q-Learning部件提供的奖励中,可以不包括信息熵/互信息。
图7是根据本申请的依然又一实施例对Q-Learning部件进行训练的流程图。
固态存储设备有多个LUN或存储单元。在多个存储单元上构造多个场景,以同时用多个场景训练Q-Learning部件,以加快训练的过程。
参看图7,为训练Q-Learning部件,首先初始化Q-Matrix(710),以及构造读命令所应用的读出数据的场景(715)。构造多个读命令所应用的读出场景(作为举例,分别记为场景1、场景2与场景3)。例如,场景1中,对NVM芯片的一个或多个存储单元施加500次的擦写,场景2中,对NVM芯片的一个或多个存储单元施加1000次的擦写,场景3中,对NVM芯片的一个或多个存储单元施加1500次的擦写。可选地,或进一步地,与场景有关的其他因素(例如存储单元上次被擦除后的被读出次数、物理块上的数据被写入至今的时间间隔和/或存储单元的物理页类型(LSB/CSB/MSB)、存储单元的物理地址,和/或存储单元所在的物理块是否被完整写入)也被用于构造场景。
根据图7的实施例,在被构造的多个场景中同时或并发地应用读命令。响应于任何场景中从NVM芯片读出的数据的错误校正失败(720),开始用于训练Q-Learning部件的一局(Episode)。训练Q-Learning部件的多局可并发或同时处理。
对于每局,将对应于错误校正失败的读出数据的读命令所应用的场景提供给Q-Learning部件,用于确定对应于Q-Matrix的状态(s)(730)。Q-Learning部件根据状态(s)与Q-Matrix记录的对应于状态(s)的一个或多个动作(a)的Q值,选择最优的动作(a’)。根据动作(a’)获得对应的读操作参数,生成重读命令(740)。
可选地,为指定状态(s)选择最优动作(a’)时,除了根据Q值选择动作,还应用已知的知识筛选动作(745)。例如,已知随时间流逝,存储单元中存储的电荷有流失的倾向,而随着存储单元被读取的次数增加,存储单元的存储的电荷有增加的倾向。从而根据读命令被应用的场景,确定存储单元中存储的电荷的变化倾向,并选择与存储的电荷变化倾向对应的动作(a),或者剔除与存储的电荷变化倾向无关或相反的动作(a)。作为又一个例子,根据Q值选择动作(a’),在对选出的动作(a’)进行筛选,若动作(a’)不满足筛选条件,则放弃动作(a’)而返回步骤740再次选择最优动作。通过筛选步骤745,排除掉大量“糟糕”的动作,以减低训练量,并加快学习过程。
若动作(a’)满足筛选条件,则进入步骤750,Q-Learning部件根据重读命令的读出数据的错误校正结果更新Q-Matrix。以及判断是否满足学习过程的停止条件(760)。
若满足学习过程的停止条件(760),则当前局的学习完成(770)。以及返回步骤715,构造下一个或多个读出数据的读命令所应用的场景(715),并通过步骤720进入对Q-Learning部件下一局学习。
若不满足停止条件(760),Q-Learning部件根据重读命令的应用场景或局索引得到用于Q-Matrix的状态(s’)(730),以及重复对Q-Learning部件的训练过程。
本申请实施例的阈值设置方法可应用于基于NVM芯片的固态存储设备,包括但不限于固态硬盘、U盘、SD卡,还可以应用于手机、平板电脑等便携式电子设备,以及其他多种使用NVM芯片(诸如NAND闪存、相变存储器、FeRAM、MRAM等是常见的NVM。)的需要存储信息的电子设备。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种读命令的错误处理方法,其特征在于,包括:
向存储器发出读命令;
接收所述存储器提供的对应于所述读命令的读出数据;
若对所述读出数据的错误校正失败,对所述读命令被应用的场景进行强化学习训练,得到与读命令被应用的场景对应的重读命令或重读命令序列;以及
向存储器发出重读命令。
2.根据权利要求1所述的方法,其中读命令被应用的场景被作为强化学习系统的状态,用于错误处理的重读命令作为强化学习系统的动作,以及将完成错误处理过程的开销作为强化学习系统的奖励。
3.根据权利要求1或2所述的方法,还包括:
接收所述存储器提供的对应于重读命令的读出数据;
对所述重读命令被应用的场景进行强化学习训练。
4.根据权利要求1-3之一所述的方法,其中
读命令被应用的场景包括,读命令所访问的存储单元被擦除的次数、读命令所访问的存储单元上次被擦除后的被读出次数、读命令所访问的存储单元的数据被写入至今的时间间隔、读命令所访问的存储单元的物理页类型、读命令访问的存储单元所在的LUN、读命令所访问的存储单元的物理地址,和/或读命令所访问的存储单元所在的物理块是否被完整写入。
5.根据权利要求2所述的方法,其中
完成错误处理过程的开销包括,完成错误处理过程所需的时间、数据传输量和/或功耗。
6.根据权利要求1-5之一所述的错误处理方法,其中强化学习系统的动作包括“停止”动作;
训练强化学习系统,使得响应于对应于重读命令的读出数据的错误校正成功,或者错误处理过程的开销超过阈值,强化学习系统输出“停止”动作。
7.根据权利要求1-6之一所述的方法,还包括:
若对所述读出数据的错误校正失败,开始对强化学习系统的训练的局;
响应于对应于重读命令的读出数据的错误校正成功,结束对强化学习系统的训练的所述局。
8.根据权利要求7所述的方法,其中
将当前局中从存储器读出的数据的信息熵、从存储器读出的数据与存储器存储的数据的联合信息熵、和/或从存储器读出的数据与存储器存储的数据的互信息作为强化学习系统的奖励。
9.一种存储设备,包括控制部件、存储器芯片与强化学习部件;
所述控制部件耦合所述存储器芯片与所述强化学习部件,并执行根据权利要求1-8之一所述的方法。
10.一种错误处理系统,包括主机与同主机耦合的存储设备;
所述存储设备包括控制部件与存储器芯片;
所述控制部件用于向存储器发出读命令并接收所述存储器提供的对应于所述读命令的读出数据;
响应于对所述读出数据的错误校正失败,所述控制部件将所述读命令被应用的场景提供给所述主机;
所述主机对所述读命令被应用的场景进行强化学习训练,将得到的与读命令被应用的场景对应的重读命令或重读命令序列提供给所述控制部件;以及
所述控制部件向所述存储器芯片发出重读命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711281523.8A CN109901944B (zh) | 2017-12-07 | 2017-12-07 | 基于机器学习的读数据错误处理方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711281523.8A CN109901944B (zh) | 2017-12-07 | 2017-12-07 | 基于机器学习的读数据错误处理方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109901944A true CN109901944A (zh) | 2019-06-18 |
CN109901944B CN109901944B (zh) | 2024-04-12 |
Family
ID=66938751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711281523.8A Active CN109901944B (zh) | 2017-12-07 | 2017-12-07 | 基于机器学习的读数据错误处理方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109901944B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625194A (zh) * | 2020-05-26 | 2020-09-04 | 合肥康芯威存储技术有限公司 | 一种存储介质的数据读取方法、存储系统及存储设备 |
WO2022037071A1 (zh) * | 2020-08-18 | 2022-02-24 | 深圳大普微电子科技有限公司 | 一种重读操作处理方法、装置、设备及可读存储介质 |
CN114121127A (zh) * | 2020-08-27 | 2022-03-01 | 成都忆芯科技有限公司 | 动态调整读重做序列以优化读命令处理 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831026A (zh) * | 2012-08-13 | 2012-12-19 | 忆正科技(武汉)有限公司 | 多层单元闪存及其软信息位读取电压阈值动态调整方法 |
US20140359197A1 (en) * | 2013-05-28 | 2014-12-04 | International Business Machines Corporation | Implementing reinforcement learning based flash control |
CN104428755A (zh) * | 2012-07-24 | 2015-03-18 | 通用电气公司 | 用于控制可靠性操作的系统和方法 |
US9069737B1 (en) * | 2013-07-15 | 2015-06-30 | Amazon Technologies, Inc. | Machine learning based instance remediation |
CN104952486A (zh) * | 2014-03-25 | 2015-09-30 | 群联电子股份有限公司 | 数据储存方法、存储器控制电路单元以及存储器储存装置 |
EP3136304A1 (en) * | 2015-08-26 | 2017-03-01 | Applied Brain Research Inc. | Methods and systems for performing reinforcement learning in hierarchical and temporally extended environments |
US20170154283A1 (en) * | 2015-11-30 | 2017-06-01 | Fanuc Corporation | Machine learning apparatus and method for optimizing smoothness of feed of feed axis of machine and motor control apparatus including machine learning apparatus |
CN107209872A (zh) * | 2015-02-06 | 2017-09-26 | 谷歌公司 | 强化学习系统的分布式训练 |
WO2017188968A1 (en) * | 2016-04-29 | 2017-11-02 | Hewlett Packard Enterprise Development Lp | Storage device failure policies |
-
2017
- 2017-12-07 CN CN201711281523.8A patent/CN109901944B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104428755A (zh) * | 2012-07-24 | 2015-03-18 | 通用电气公司 | 用于控制可靠性操作的系统和方法 |
CN102831026A (zh) * | 2012-08-13 | 2012-12-19 | 忆正科技(武汉)有限公司 | 多层单元闪存及其软信息位读取电压阈值动态调整方法 |
US20140359197A1 (en) * | 2013-05-28 | 2014-12-04 | International Business Machines Corporation | Implementing reinforcement learning based flash control |
US9069737B1 (en) * | 2013-07-15 | 2015-06-30 | Amazon Technologies, Inc. | Machine learning based instance remediation |
CN104952486A (zh) * | 2014-03-25 | 2015-09-30 | 群联电子股份有限公司 | 数据储存方法、存储器控制电路单元以及存储器储存装置 |
CN107209872A (zh) * | 2015-02-06 | 2017-09-26 | 谷歌公司 | 强化学习系统的分布式训练 |
EP3136304A1 (en) * | 2015-08-26 | 2017-03-01 | Applied Brain Research Inc. | Methods and systems for performing reinforcement learning in hierarchical and temporally extended environments |
US20170154283A1 (en) * | 2015-11-30 | 2017-06-01 | Fanuc Corporation | Machine learning apparatus and method for optimizing smoothness of feed of feed axis of machine and motor control apparatus including machine learning apparatus |
WO2017188968A1 (en) * | 2016-04-29 | 2017-11-02 | Hewlett Packard Enterprise Development Lp | Storage device failure policies |
Non-Patent Citations (2)
Title |
---|
TIANHAO ZHANG ET AL.: "Learning Deep Control Policies for Autonomous Aerial Vehicles with MPC-Guided Policy Search", pages 1 - 8 * |
段鑫冬: "基于云存储的可信加密磁盘的设计与实现", pages 1 - 20 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625194A (zh) * | 2020-05-26 | 2020-09-04 | 合肥康芯威存储技术有限公司 | 一种存储介质的数据读取方法、存储系统及存储设备 |
CN111625194B (zh) * | 2020-05-26 | 2023-03-24 | 合肥康芯威存储技术有限公司 | 一种存储介质的数据读取方法、存储系统及存储设备 |
WO2022037071A1 (zh) * | 2020-08-18 | 2022-02-24 | 深圳大普微电子科技有限公司 | 一种重读操作处理方法、装置、设备及可读存储介质 |
CN114121127A (zh) * | 2020-08-27 | 2022-03-01 | 成都忆芯科技有限公司 | 动态调整读重做序列以优化读命令处理 |
Also Published As
Publication number | Publication date |
---|---|
CN109901944B (zh) | 2024-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8812784B2 (en) | Command executing method, memory controller and memory storage apparatus | |
CN102354299B (zh) | 存储卡和半导体器件 | |
US8681552B2 (en) | System and method for accessing and storing interleaved data | |
JP4751163B2 (ja) | メモリシステム | |
CN104765568B (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
CN106598479A (zh) | 闪速存储器的故障安全擦除的方法和装置 | |
CN109697026A (zh) | 包括主机设备和用于执行清除操作的存储设备的存储系统 | |
TWI273604B (en) | Memory card and semiconductor device | |
DE102018105943A1 (de) | Kontextbewusste dynamische Befehlsplanung für ein Datenspeichersystem | |
CN109901944A (zh) | 基于机器学习的读数据错误处理方法与系统 | |
US20120278535A1 (en) | Data writing method, memory controller, and memory storage apparatus | |
CN109582490A (zh) | 智能重读命令生成 | |
JP2014530420A (ja) | ソリッドステートドライブのメモリ装置への論理的アドレスの適応マッピング | |
US8769243B2 (en) | Apparatus with smart card chip for storing communication file in non-volatile memory | |
CN110032396A (zh) | 存储器系统及其操作方法 | |
CN109671459A (zh) | 存储器系统及其操作方法 | |
CN108628763A (zh) | 用于高效垃圾收集的预测块分配的存储系统和方法 | |
US11763899B2 (en) | Balanced three-level read disturb management in a memory device | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN113221983B (zh) | 迁移学习模型的训练方法及装置、图像处理方法及装置 | |
TW201135462A (en) | Method of dynamically switching partitions, memory card controller and memory card storage system | |
CN108762989A (zh) | 固态硬盘的数据存储方法、装置、设备及可读存储介质 | |
CN110389709A (zh) | 顺序流检测与数据预读 | |
CN109582491B (zh) | 基于机器学习的读出数据错误处理 | |
CN106980466A (zh) | 数据存储装置及其操作方法 |
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 | ||
CB02 | Change of applicant information |
Address after: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing Applicant after: Beijing yihengchuangyuan Technology Co.,Ltd. Address before: 100192 room A302, building B-2, Dongsheng Science Park, Zhongguancun, 66 xixiaokou Road, Haidian District, Beijing Applicant before: BEIJING MEMBLAZE TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |