CN113010391A - 基于阈值分布的存储器子系统分析 - Google Patents
基于阈值分布的存储器子系统分析 Download PDFInfo
- Publication number
- CN113010391A CN113010391A CN202011521379.2A CN202011521379A CN113010391A CN 113010391 A CN113010391 A CN 113010391A CN 202011521379 A CN202011521379 A CN 202011521379A CN 113010391 A CN113010391 A CN 113010391A
- Authority
- CN
- China
- Prior art keywords
- memory
- distribution
- threshold voltage
- distributions
- tail
- 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.)
- Pending
Links
- 238000009826 distribution Methods 0.000 title claims abstract description 296
- 230000015654 memory Effects 0.000 title claims abstract description 274
- 238000004458 analytical method Methods 0.000 title abstract description 5
- 238000012545 processing Methods 0.000 claims abstract description 77
- 239000013598 vector Substances 0.000 claims abstract description 28
- 210000004027 cell Anatomy 0.000 claims description 90
- 238000000034 method Methods 0.000 claims description 72
- 238000012549 training Methods 0.000 claims description 55
- 238000003860 storage Methods 0.000 claims description 26
- 238000010801 machine learning Methods 0.000 claims description 13
- 238000003062 neural network model Methods 0.000 claims description 11
- 210000002569 neuron Anatomy 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 7
- 238000012937 correction Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000012544 monitoring process Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000007667 floating Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000010339 dilation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 239000002784 hot electron Substances 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000013641 positive control Substances 0.000 description 1
- 238000004705 quadratic configuration interaction calculation Methods 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Images
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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2257—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using expert systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2263—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/2431—Multiple classes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50004—Marginal testing, e.g. race, voltage or current testing of threshold voltage
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0403—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals during or with feedback to manufacture
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
- G11C2029/5004—Voltage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Computer Hardware Design (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Medical Informatics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本申请案涉及基于阈值分布的存储器子系统分析。公开一种系统,其包含:存储器组件,其具有多个存储器单元,能够处于多个状态,所述多个状态中的每一状态对应于由所述存储器单元存储的值;及处理装置,其与所述存储器组件进行操作耦合,以执行包括以下各项的操作:针对所述多个存储器单元获得多个阈值电压分布,其中所述多个分布中的每一个对应于所述多个状态中的一个;将所述多个分布中的每一个分类在多个分类中的一个当中;产生包括多个分量的矢量,其中所述多个分量中的每一个表示所述多个分布中的相应一个的所述类别;及使用分类器处理所述所产生矢量以确定所述存储器组件将在目标时间段内产生故障的可能性。
Description
技术领域
本公开的实施例大体来说涉及存储器子系统,且更具体来说,涉及基于阈值分布分析存储器子系统。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置及易失性存储器装置。通常,主机系统可利用存储器子系统来将数据存储在存储器装置处并从存储器装置检索数据。
发明内容
在一个方面中,本申请案提供一种系统,其包括:存储器组件,其包括多个存储器单元,其中所述多个存储器单元中的每一存储器单元能够处于多个状态,所述多个状态中的每一状态对应于由所述存储器单元存储的值;及处理装置,其与所述存储器组件进行操作耦合,以执行包括以下各项的操作:对于所述多个存储器单元,获得多个阈值电压分布,其中所述多个分布中的每一个对应于所述多个状态中的一个;将所述多个分布中的每一个分类在多个类别中的一个;产生包括多个分量的矢量,其中所述多个分量中的每一个表示所述多个分布中的相应一个的所述类别;及使用分类器处理所述所产生矢量来确定所述存储器组件将在目标时间段内发生故障的可能性。
在另一方面中,本申请案提供一种方法,其包括:通过与包括多个存储器单元的存储器组件进行操作耦合的处理装置,获得多个阈值电压分布,其中所述多个分布中的每一个对应于所述多个存储器中的存储器单元的多个状态中的一个,其中所述多个状态中的每一状态对应于由所述存储器单元存储的值;将所述多个分布中的每一个分类在多个类别中的一个;产生包括多个分量的矢量,其中所述多个分量中的每一个表示所述多个分布中的相应一个的所述类别;及使用分类器处理所述所产生矢量来确定所述存储器组件将在目标时间段内发生故障的可能性。
在又一方面中,本申请案提供一种方法,其包括:通过处理装置获得包括存储器组件的多个阈值电压分布的训练输入,其中所述多个阈值电压中的每一个对应于多个状态中的一个,所述多个状态中的每一状态对应于由所述存储器组件的存储器单元存储的值;通过所述处理装置获得目标输出,所述目标输出包括所述存储器组件在目标时间间隔内发生故障的目标可能性;通过包括多个神经元的神经网络模型处理所述训练输入以通过所述处理装置获得训练输出,其中所述训练输出包括所述存储器组件在所述目标时间间隔内发生故障的预测可能性;通过所述处理装置确定所述预测故障可能性与所述目标故障可能性之间的差异;及通过所述处理装置基于所述所确定差异修改所述神经网络模型的参数。
附图说明
从下文给出的详细描述且从本公开的各种实施例的附图将更全面理解本公开。
图1根据本公开的一些实施例说明包含存储器子系统的实例计算环境。
图2根据本公开的一些实施例示意性说明用于训练机器学习分类器的训练阶段,所述分类器可用于预测存储器装置的潜在故障的可能性。
图3A根据本公开的一些实施例示意性说明结构化直方图,描绘能够存储三位数据的稳健存储器单元的阈值电压分布。
图3B根据本公开的一些实施例示意性说明条件直方图,描绘受损TLC存储器单元的阈值电压分布。
图3C根据本公开的一些实施例示意性说明非结构化分布数据,如可通过存储器子系统控制器收集的。
图4根据本公开的一些实施例说明阈值电压分布的各种特征的示范性分类。
图5A根据本公开的一些实施例说明结构化直方图,描绘稳健TLC存储器单元的实际阈值电压分布,其中各种分布充分彼此分离。
图5B根据本公开的一些实施例说明结构化直方图,描绘受损TLC存储器单元的实际阈值电压分布,其中一些分布彼此显著重叠。
图5C根据本公开的一些实施例说明结构化直方图,描绘受损TLC存储器单元的实际阈值电压分布,其中一些分布被擦除。
图6A根据本公开的一些实施例使用对应于目标装置分布的存储器单元的特定状态的阈值电压分布相对于控制分布的分位数-分位数表示(QQR)来说明一些示范性尾部特征的分类。
图6B根据本公开的一些实施例说明TLC存储器装置的七个不同的阈值电压分布的一组示范性分位数-分位数表示。
图6C根据本公开的一些实施例说明另一TLC存储器装置件的七个不同的阈值电压分布的另一组示范性分位数-分位数表示。
图7根据本公开的一些实施例说明用以预测存储器装置(组件)的潜在故障的可能性的实例方法的流程图。
图8根据本公开的一些实施例说明用以将存储器组件的多个分布分类在多个类别中的一个中的实例方法的流程图。
图9根据本公开的一些实施例说明训练机器学习模型来确定存储器组件的故障的可能性的实例方法的流程图。
图10为其中本公开的实施例可操作的实例计算机系统的框图。
具体实施方式
本公开的方面针对基于阈值分布分析存储器子系统。存储器子系统可为存储装置、存储器模块或存储装置及存储器模块的混合。下文结合图1描述存储装置及存储器模块的实例。通常,主机系统可利用包含一或多个存储器组件(例如存储数据的存储器装置)的存储器子系统。主机系统可提供待存储在存储器子系统处的数据,且可请求从存储器子系统检索数据。
将数据存储在具有不同媒体类型的某些存储器装置上,依赖于将电荷精确置放到存储器装置的存储器单元中。置放在存储器单元上的电荷量可用于表示由存储器单元所存储的值。取决于所置放的电荷量,通过存储器单元的电流可需要施加特定于值的阈值电压。存储器单元的可读性主要取决于表示不同存储值的阈值电压的特殊性。由于各种存储器单元的大小、位置及环境不可避免的变化,即使在同一衬底上实施,对应于各种存储器单元的给定值的阈值电压也不相同,且属于某一电压宽度的分布范围内。但是,只要对应于不同值的分布不显著重叠,偶然错误存储值可被检测到并通过纠错码纠正。
然而,随着时间的推移且执行多个写入/读取操作,分布可会移位、扩大或以其它方式失真,以使得不同存储值的表示性的特殊性可能受损,从而导致存储器装置的最终故障。此类存储器故障在意外发生时,可导致关键数据丢失及更广泛的系统故障。存储器装置的分布的恶化经常随着时间而逐渐发生,且可能在严重故障发生之前的早期阶段检测到。然而,传统的分布监测是耗时的,且依赖于人为干涉进行准确的数据分析。
本公开的方面通过具有包含经训练分类器的存储器子系统来解决上述及其它缺陷,所述经训练分类器能够检测可指示即将发生故障的分布特征(例如,移位、尾部、擦除等等)。在一些实施例中,分类器可为经训练机器学习模型。分类器可在多个数据集(例如,分布直方图)上进行训练,所述数据集可包含表示良好存储器装置(未处于故障危险中的那些存储器装置)以及故障装置及/或临界装置(可能在特定时间周期内发生故障的那些装置)的数据集。在训练阶段期间,分类器可在一组特定分布特征(例如,在多个分布中同时存在各种尾部)与故障可能性之间建立关联。在检测(识别)阶段期间,经训练分类器可获得表征正在测试的存储器装置的某一子组存储器单元的电压阈值的分布的直方图,提取分布特征,且将分布分类在数个类别当中。基于所获得类别,分类器可确定存储器装置在不久的将来将发生故障的可能性。
本公开的优点包含但不限于能够快速自动“实时”监测存储器装置的声音。传统上,使用分布直方图进行产品控制由于收集分布数据及分析直方图需要大量时间而受阻。尽管在硬件加速平台解决方案中,数据收集时间已显著缩减,但分析仍然需要人工工程输入,并且表示高效存储器装置监测中的关键瓶颈。大容量存储平台可能需要大量的分布数据来进行监测,大量的分布数据可使甚至大规模存储器装置制造商的工程师感到紧张此外,对于存储器装置的售后监测,较小的客户可必须承担大量费用以便定期进行此类监测,或完全放弃。在此上下文中,对有问题的存储器问题的自动动态实时检测表示重大的技术改进。
图1根据本公开的一些实施例说明包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或此类组合。
存储器子系统110可为存储装置、存储器模块或存储装置及存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它交通工具)、支持物联网(IoT)的装置、嵌入式计算机(例如,包含在运载工具、工业设备或联网商用装置中的计算机),或包含存储器及处理装置的此类计算装置。
计算系统100可包含主机系统120,所述主机系统耦合到一或多个存储器子系统110。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”通常是指组件之间的连接,所述连接可为间接通信连接或直接通信连接(例如,无需中间组件),无论有线还是无线的,包含例如电、光学、磁性等连接。
主机系统120可包含处理器芯片组及由处理器芯片组执行的软件堆叠。处理器芯片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,NVDIMM控制器)及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120例如使用存储器子系统110将数据写入到存储器子系统110,且从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行先进技术附件(SATA)接口、快速外围组件互连(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、双数据速率(DDR)存储器总线、小计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接字接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用高速NVM(NVMe)接口存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1说明存储器子系统110作为实例。通常,主机系统120可经由相同的通信连接、多个单独的通信连接及/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置及/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。
非易失性存储器装置的一些实例(例如,存储器装置130)包含“与非”(NAND)类型快闪存储器及就地写入存储器,例如三维交叉点(“3D交叉点”)存储器。非易失性存储器的交叉点阵列可结合可堆叠的交叉网格化数据存取阵列基于体电阻的改变执行位存储。此外,与许多基于快闪存储器的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下编程非易失性存储器单元。NAND型快闪存储器包含二维NAND(2D NAND)及三维NAND(3D NAND)。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如,单层级单元(SLC)可每单元存储一个位。其它类型的存储器单元(例如多层级单元(MLC)、三层级单元(TLC)及四层级单元(QLC))可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,诸如SLC、MLC、TTC、QLC或此类的任一组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分及MLC部分、TLC部分或QLC部分。此外,存储器装置130的存储器单元可经分组为页,所述页可指代用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),可将页分组以形成块。
尽管描述了非易失性存储器组件,例如非易失性存储器单元的3D交叉点阵列及NAND类型快闪存储器(例如,2D NAND、3D NAND),存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM),磁随机存取存储器(MRAM)、旋转传送扭矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、“或非”(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据的操作以及其它此类操作。存储器子系统控制器115可包含例如一或多个集成电路及/或离散组件的硬件、缓冲存储器或其组合。硬件可包含具有专用(即,硬编码)逻辑的数字电路系统,以执行本文中所描述的操作。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适处理器。
存储器子系统控制器115可包含经配置以执行存储在本地存储器119中的指令的处理器117(例如,处理装置)。在所说明实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,所述嵌入式存储器经配置以存储用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流以及例程的指令。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已经说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含控制器115,且替代地可依赖于外部控制(例如,由外部主机,或由与存储器子系统分开的处理器或控制器提供)。
通常,存储器子系统控制器115可从主机系统120接收命令或操作,且可将命令或操作转换为指令或适当的命令,以实现对存储器装置130的所要存取。存储器子系统控制器115可负责其它操作,例如损耗均衡操作、无用信息收集操作、错误检测与纠错码(ECC)操作、加密操作、高速缓冲操作,以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、命名空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换为命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换为用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,DRAM)及地址电路系统(例如,行解码器及列解码器),其可自存储器子系统控制器115接收地址并解码所述地址以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130为受管理存储器装置,其为与用于媒体管理的本地控制器(例如,本地控制器135)一起组合在同一存储器装置封装内的原始存储器装置。受管理存储器装置的实例为受管理NAND(MNAND)装置。
存储器子系统110包含故障预测组件(FPC)113,所述故障预测组件能够确定一或多个存储器装置130及/或140的条件(例如,电压阈值的分布),并确定存储器装置在将来(例如下个月、下周等)一定时间间隔内是否可能发生故障。在一些情况下,FPC 113可确定给定数目个未来存储器操作(例如,写入、擦除、重新编程、读取等)故障的可能性。FPC 113可基于平均使用强度(例如每时间间隔的写入/读取操作次数)进一步确定存储器装置可能发生故障的时间。在一些实施例中,FPC 113可在从控制器115的ECC(未展示)收到的指示时,启动测试,指示ECC已无法纠正与对存储器130(或140,或未展示的任何其它存储器装置)的某一分区(页、块)执行的写入操作相关联的数据中的错误。ECC可基于汉明、里德-所罗门、BCB、低密度奇偶校验(LDPC)算法或任何其它纠错算法。
在一些实施例中,FPC 113可从主机系统120接收执行存储器装置检查的指令。例如,主机系统可检测从存储器子系统110接收存储器子系统控制器115无法检测及/或校正的损坏数据。在一些实施例中,FPC 113可按计划时间间隔对存储器装置执行监测,即使从存储器子系统控制器115或主机系统120中未接收到启动检查的指令。在一些实施例中,监测计划可存储在本地存储器119中(例如,存储在本地存储器119的嵌入式存储器中)。
在一些实施例中,存储器子系统控制器115包含FPC组件113的至少一部分。例如,存储器子系统控制器115可包含处理器117(处理装置),所述处理器经配置以执行存储在本地存储器119中的指令以执行本文中所描述的操作。在一些实施例中,FPC 113为主机系统110、应用程序或操作系统的部分。在一些实施例中,FPC 113可具有存储在存储器装置130(及/或存储器装置140)中的配置数据、库及其它信息。
FPC 113可基于一或多个机器学习模型。模型可包含多个神经元层,且可在安装在存储器子系统110之前进行训练。在一些实施方案中,模型可根据下文的图2的描述进行训练。训练阶段可在单独的计算系统(例如,在制造商端)上执行,在生产阶段期间嵌入到本地存储器119中,并由FPC 113调用用于计划监测及/或计划外的实时检查。下文描述关于FPC113的操作的更多细节。
图2根据本公开的一些实施例示意性说明用于训练机器学习分类器的训练阶段200,所述分类器可用于预测存储器装置(组件)的潜在故障的可能性。为了训练机器学习模型以检测即将发生的存储器装置故障,训练阶段200可产生用于训练机器学习模型的训练集。训练集产生器210可产生训练输入220,例如通过获得良好装置数据220A、故障装置数据220B、修改良好装置数据、人工输入220D等。训练输入220可包含各种类似存储器装置的电压分布,例如存储器装置每存储器单元具有与所测试目标装置相同数目的层级。例如,可使用关于类似TLC存储器装置的数据来训练打算测试目标TLC存储器装置的模型,所述目标TLC存储器装置每存储器单元存储最多8个位。在一些实施例中,在使用时,TLC存储器装置可不再能够存储每单元三个位,此归因于其阈值电压分布的扩大,且因此用作MLC装置(其中存储器单元仅存储4个位)。因此,此类TLC装置的训练输入220可额外包含MLC(或甚至SLC)训练数据。
在一些实施例中,良好装置数据220A可包含各种装置(例如,工程师)认为在检查后不太可能在目标时间段(或目标数目的存储器操作)内发生故障的装置的阈值分布。例如,良好的装置数据220A可具有接近正态(高斯)分布的分布,每一分布具有致使与其它(例如,邻近)电压分布的不显著重叠的此类均值及宽度(标准差)。如果重叠涉及以足够低概率发生的两个分布中的罕见事件(单个单元中的阈值电压),那么所述重叠可不显著,例如,3标准差、3.5标准差等,使得在存储器装置规模上发生的预期罕见错误不会损害装置完整性。良好装置数据220A还可包含更强的重叠,例如,2.5标准差,所述重叠对应于更频繁的事件,但其仍可由存储器子系统控制器115的ECC纠正。
在一些实施例中,故障装置数据220B可包含已发生故障或被视为在检查后可能在目标时间段(或在目标数目个操作时)发生故障的装置的各种装置的阈值分布。例如,故障装置数据220B可包含偏离良好分布的分布。例如,分布仍可为正态的,但朝向邻近分布移位如此显著,使得ECC无法能够纠正所产生的错误。在读取操作返回太多不正确的值(与最初存储在存储器单元中的值不同)的情况下,可发生上述情形。作为另一实例,故障装置数据220B可包含足够显著扩大以达到邻近分布的分布,以使得两个分布之间产生不可接受的重叠(例如,2标准差、2.5标准差等)。作为另一实例,分布中的一或多个可为非正态的,且形成延伸足够远到邻近分布中的尾部。在一些故障装置中,如果单独存在,那么分布中无一者可具有将导致故障的显著的移位/尾部/扩大。然而,当考虑其全部时,具有较小偏差的多个分布仍可指示装置完整性受损,且因此,可被包含在故障装置数据220B中。
在一些实施例中,良好装置数据220A及故障装置数据220B可包含各种实际(物理)装置的分布。但是,因为从许多物理装置收集此类实际数据有时可能是一项极其困难或昂贵的任务,因此训练输入220可另外包含经修改装置数据220C。在一些实施方案中,经修改装置数据220C可基于(实际或理想)存储器装置,所述装置条件良好,但其阈值分布可被人工地修改为类似于故障装置或将来可能发生故障的装置。例如,一组良好的分布可人工移位、扩大或配备尾部,所述尾部进一步向外延伸到更低(底部尾部)或更高(顶部尾部)阈值电压值。在一些实施方案中,经修改装置数据220C可基于实际出现故障(或被视为有故障危险)的存储器装置的分布,但以减少临界特征的某一方式被修改。例如,一些尾部可缩减,或甚至完全移除,一些分布可往回移位更接近于其正常位置、缩小等。
训练输入220可进一步包含人力输入220D。在一些实施例中,人力输入220D可包含对其它输入数据的分类。例如,人力输入可通过将各种阈值电压分布置放到多个存储桶(按在测试后的目标时间内的故障可能性排名)来对良好装置数据220A及故障装置数据220B进行评级。在一个示范性实施例中,分布可按存储桶编号(使用从0到10的标度)进行排名,其中存储桶编号0对应于在下个月内发生故障的可能性小于1%的存储器装置。存储桶1可对应于约10%的故障概率,存储桶2可对应于20%的概率,等等,其中存储桶10对应于在目标时间内故障的实质确定性。存储桶编号可用作到图2中所说明的机器学习分类器的额外输入,且可由分类器的神经层进行处理,以建立故障可能性与训练分布的特定特征之间的关联。
各种训练输入220可由训练集产生器210选择,所述训练集产生器也可选择目标输出230,例如装置故障的可能性232。训练集产生器210可进一步建立训练输入220与对应目标输出230之间的输入-输出关联235。在建立输入-输出关联235中,训练集产生器可使用分组及群集算法,例如具有噪声的应用的基于密度的空间群集(DBSCAN)算法或类似算法。训练集产生器210可进一步将包括训练输入、退出的目标输出及输入输出关联的训练集存储在计算机可读存储媒体(未展示)上。
图3A到3C说明存储器装置的各种可能的阈值电压分布。在一些实施例中,图3A到3C中展示的分布可对应于图2的各种训练输入分布。在其它实施例中,图3A到3C中展示的分布可对应于检测(识别)阶段的目标输入。在一些实施例中,图3A到3C中展示的分布可描述基于晶体管的存储器单元(例如金属氧化物半导体场效应晶体管(MOSFET)存储器单元)的状态。晶体管可具有使电流从中通过的源极电极及漏极电极。存储器单元可进一步具有控制栅极电极,以接收电压信号VCG以控制源极电极与漏极电极之间流动的电流的量级。在一些实施例中,小于阈值控制栅极电压VT(本文中也被称为“阈值电压”)的电压信号(VCG<VT)可导致低源极-漏极电流。一旦控制栅极电压已超过阈值电压(VCG>VT),电流可显著增加。因为存储器单元(以及存储器单元的环境)的栅极及电极的实际几何形状可能因单元而异,所以阈值电压VT甚至针对在同一裸片上实施的晶体管也可能不同。因此,同一存储器装置的晶体管可通过其阈值电压的分布(P(VT)=dW/dVT)表征,其中dW=P(VT)dVT表示任何给定晶体管具有在区间[VT,VT+dVT]内的阈值电压的概率。
在具有非易失性存储器单元的存储器装置中,单元可进一步配备有导电岛(浮动栅极),所述导电岛通过绝缘层与控制栅极、源极电极及漏极电极电隔离。响应于适当选择的正(相对于源极电势)控制栅极电压VCG,浮动栅极可接收(经由富勒-诺德海姆隧穿或热电子注入)负电荷Q,甚至到存储器单元的功率(且因此源极-漏极电流)被停止之后,所述负电荷仍可永久存在在所述浮动栅极上。与无电荷浮动栅极的分布P(VT)相比,电荷q的存在通常使阈值电压的分布Pq(VT)移位。这是因为可能需要更强正控制栅极电压VCG来克服浮动栅极电荷q的负电势。如果序列qk电荷中的任一电荷(其中1≤k≤2N)可选择性地编程(并稍后在读取操作期间被检测)到存储器单元中,那么存储器单元可充当N位存储器单元。为了恰当地充当存储器单元,单元应理想地具有足够分离(例如,通过谷值容限)的邻近电压分布Pq(VT)。
图3A根据本公开的一些实施例示意性说明结构化直方图,描绘能够存储三位数据的稳健存储器单元的阈值电压分布。图3A展示关于三层级单元(TLC)的8种不同充电状态的阈值电压分布P(VT)。数字0、1...7枚举TLC的各种状态。例如,编程为电荷状态0的存储器单元可表示存储值111,状态1可表示存储值011,状态2可表示存储值001,等等。图3A中的分布说明一些存储器装置的存储器单元的各种电荷状态之间具有稳健分离(“良好分布”)的存储器装置的分布。图3A中的分布(在一些情况下)可近似为正态(高斯)分布。
图3B根据本公开的一些实施例示意性说明条件直方图,描绘受损TLC存储器单元的阈值电压分布。图3B中描述分布良好0、1、2、5、6及7,其与图3A中所描绘的分布相似。相比之下,分布3及4为失真分布。分布3为“底部尾部”分布,其延伸超出正态分布朝向阈值电压VT的更低(低于均值)的值。分布3为“顶部尾部”分布,其延伸超出正态分布朝向阈值电压VT的更高(高于均值)的值。分布3与邻近分布2显著重叠(且甚至扩展到对应于分布1的VT的范围内)。因此,在一个说明性实例中,装置的大量一部分存储器单元无法可靠地区分存储值101及001。类似地,在一个说明性实例中,分布4与分布5显著地重叠,此可导致存储值100与000之间缺乏区分。(实际值可取决于正在测试的存储器装置所使用的特定编码方案。)
图3A及3B中所描绘的分布为“结构化”直方图,其中不同的电荷状态具有单独显示的分布。相比之下,图3C根据本公开的一些实施例示意性说明非结构化分布数据,如可通过存储器子系统控制器115收集的。图3C中描绘的非结构化数据可为作为硬件后台检查操作的一部分收集的所有分布的总和。在一些实施例中,存储器子系统控制器115可执行非结构化数据分离成如图3A及3B中所描绘的一组结构化直方图。例如,可用无条件数据对机器学习模型进行训练。为了减少数据元素属于各种分布(例如,两个邻近分布的顶部尾部及底部尾部)的多种可能性,可使用窗函数提取属于各种分布的数据。上述情形可用于预测每一所提取分布。训练数据可通过将无条件数据与已知其与特定分布的关联的数据组合来产生。
图4根据本公开的一些实施例说明阈值电压分布的各种特征的示范性分类。良好分布(由虚线描绘)可为正态分布或某一其它控制分布。扩大分布可具有与良好分布相同的均值(或中值),但可具有不同(更大)宽度。移位分布可具有与良好分布相同的宽度,但不同的均值(或中值)。在一些实施例中,执行分类的处理装置可忽略小于一些预定阈值(例如,0.5标准差、0.75标准差)的扩大,并视对应分布为良好分布。类似地,在一些实施例中,可忽略小于一些预定阈值移位(例如,0.25标准差、0.5标准差)的移位。在一些实施例中,良好分布的均值及标准差可存储在存储器子系统110中,例如,在局部存储器119中。
具有延伸到阈值电压的高值中的尾部的分布可分类为“顶部尾部”。具有延伸到阈值电压的低值中的尾部的分布可分类为“底部尾部”。在一些实施例中,对应于罕见事件(偶然的存储器单元)的弱而长的尾部(在下文关于图8所描述的更定量的意义上)可被忽略。类似地,未偏离均值(或中值)较远的强但短的尾部也可被忽略。在分布具有延伸朝向更高及更低的电压的两个尾部的情况下,执行分类的处理装置可将此类分布分类为“顶部及底部尾部”分布。在一些实施例中,可以实施额外类别的分布。例如,各种尾部类别可细分为识别尾部的强度的多个子类。在一些实施例中,可通过计算实际分布中的均方偏差与良好分布的标准差的偏差的程度来量化尾部。在一些实施例中,可对分布的底部/顶部部分执行计算,以便区分底部尾部与顶部尾部。在其它实施例中,处理装置可使用各种其它方案来量化尾部强度。
图5A到5C根据本公开的一些实施例说明存储器装置的各种阈值电压分布。在一些实施例中,图5A到5C中展示的分布可对应于图2的目标输入分布。在其它实施例中,图5A到5C中展示的分布可对应于训练输入。图5A根据本公开的一些实施例说明结构化直方图,描绘稳健TLC存储器单元的实际阈值电压分布,其中各种分布充分彼此分离。如在图5A中所描绘,一些分布(例如,1及5)可更接近于正态分布,而其它分布(例如,7)可与正态分布有显著偏离。因此,与特定分布与正态分布的接近程度相比,分布之间的稳健分离可为良好存储器装置的更佳指示符。
图5B根据本公开的一些实施例说明结构化直方图,描绘受损TLC存储器单元的实际阈值电压分布,其中一些分布彼此显著重叠。如在图5B中所描绘,分布0、1、2及3具有顶部尾部,其中分布0及1显示最明显的尾部。图5B的直方图可指示状态0与1、1与2、2与3以及(可能)3与4之间的区别受到显著损害,达到ECC可无法错误纠正随后的硬件故障的程度。
图5C根据本公开的一些实施例说明结构化直方图,描绘受损TLC存储器单元的实际阈值电压分布,其中一些分布被擦除。如在图5C中所描绘,所有分布基本上彼此不可区分的。然而,在其它情况下,可仅擦除一些分布(例如5、6及7),而其它分布可为良好(或具有如上文所描述特征)。
图6A到6C说明各种阈值电压分布相对于控制分布的分位数-分位数表示。控制分布可为良好装置的实际分布或近似理想存储器装置的某一模型分布(例如,正态分布)。在一些实施例中,图6A到6C中所说明的各种分布可对应于图2的目标输入分布。在其它实施例中,图6A到6C中展示的分布可对应于训练输入。图6A根据本公开的一些实施例使用对应于目标装置分布的存储器单元的特定状态的阈值电压分布相对于控制分布的分位数-分位数表示(QQR)来说明一些示范性尾部特征的分类。QQR可将实际目标装置阈值电压的分布P(V)映射到控制分布PC(V)。构建QQR的处理装置可首先确定(例如,通过计算可用数据集中的可用点)目标分布的分位数Q(例如,百分位数),P(V)→Q(V)。分位数Q(V)结合其倒数V(Q)一起表示对应于各种百分位数的特定阈值电压V(例如,Q=0.1可对应于分布P(V)的第10个百分位数,Q=0.84可对应于第84个百分位数,等等)。类似地,控制分布PC(V)可具有其自己的一组分位数QC:PC(V)→QC(V)。QQR可为(在一些实施例中,准连续)标绘图Q(V(QC)),其指示目标分位数Q对控制分布的各种分位数QC的位置。如在图6A中所展示,与控制分布一致的目标分布由虚线Q=QC表示。
图6A依据QQR说明目标分布P(V)与控制分布的各种可能偏离(特征)。例如,尾部A为顶部尾部,其指示从约+1标准差开始的与控制分布的显著偏离,且表示目标存储器装置的可能负性能。尾部B为底部尾部,其指示从约-3标准差开的与始与控制分布的显著偏离。在一些情况下,此类尾部可指示存储器装置的相对不显著性能问题,因为其限制于对应于相对罕见(低达1%)事件的电压范围(换句话说,仅罕见存储器单元具有在尾部B内的阈值电压)。因此,限制于非常低或非常高的分位数(例如,其发生概率低于某一截止值,例如+或-3标准差)的尾部B及其它尾部可被忽略。作为另一实例,尾部C为底部尾部,其(与尾部B不同)从相对常见事件(-1标准差)开始,但在一些实施例中,可类似地被忽略,因为它未偏离控制分布足够远,且因此不太可能交叉到邻近状态分布中。在一些实施例中,可实施以下程序来确定尾部是否被忽略。首先,其中所有或大多数点(例如,超过总尾部点80%或90%)对应于罕见事件(|Q|>Q1(例如,Q<-3标准差或Q>3标准差))的尾部可被忽略。第二,在区域|Q|<Q1内开始(或其点大多被限制)的尾部也可被忽略,前提是尾部从线Q=QC保持在第二截止值Q2内(至少直到其达到第一截止值Q1为止):|ΔQ|<Q2。在各种实施例中,可沿着QQR标绘图的水平方向,沿QQR标绘图的垂直方向,或沿着距对角线Q=QC的最短距离方向,或以其它方式确定距离ΔQ。所属领域的技术人员将了解,上述只是一些示范性方案,且存在几乎无限的方法来确立特定尾部可被忽略的时间,因为其表示1)罕见事件,或2)不会对存储器装置功能产生实质性影响的与控制分布的不显著偏离。在一些实施例中,顶部尾部及底部尾部的截止值可被选择为彼此不同。
图6B根据本公开的一些实施例说明TLC存储器装置的七个不同的阈值电压分布的一组示范性分位数-分位数表示。分布7经展示为具有有效的底部尾部(从约-2标准差开始),而分布6的尾部可被忽略,因为尽管其从约-2.5标准差开始,但在其到达截止值-3标准差之前,其不会从直线显著偏离。图6C根据本公开的一些实施例说明另一TLC存储器装置件的七个不同的阈值电压分布的另一组示范性分位数-分位数表示。分布7具有有效的底部尾部,而分布6的尾部虽然显著,但被限制于小于-3.5标准差的值。也示意性描绘(由虚线)分布2中可被忽略的顶部尾部,因为在其到达截止值(例如,+3标准差)之前其不会与直线显著偏离。分布2中的虚线尾部说明可如何修改良好分布(例如,由工程师编辑),以使一组可用的存储器装置分布多样化,以便训练分类器。
图7及图8分别说明方法700及方法800。方法700或方法800可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑,微码,装置的硬件,集成电路等),软件(例如,在处理装置上运行或执行的指令)或其组合。尽管以特定次序展示,但除非另有规定,否则可修改操作的次序。因此,所说明的实施例应仅理解为实例,且所说明的操作可以不同次序执行,其中一些操作可并行执行。另外,在各种实施例中可省略一或多个操作。因此,并不是每个实施例都需要方法700或方法800的所有操作。其它操作流程也是可能的。在其它实施例中,可使用不同操作。可注意到,本公开的方面可用于任何类型的多位存储器单元。
图7根据本公开的一些实施例说明用以预测存储器装置(组件)的潜在故障的可能性的实例方法700的流程图。在一个实施例中,FPC 113可根据存储在本地存储器119的嵌入式存储器中的指令执行实例方法700。在一些实施例中,存储器子系统110(或存储器装置130)的固件可执行实例方法700。在一些实施例中,外部处理装置,例如主机系统120的处理装置,可执行实例方法700。
所述方法700可包含通过处理装置获得存储器组件(例如,存储器装置130)的多个阈值电压分布(操作710)。处理装置(例如,处理器117)可与存储器组件进行操作耦合。存储器组件可包含多个存储器单元。存储器单元中的每一个或一些可具有与存储器单元可存储的各种值对应的多个状态。多个分布中的每一个可对应于存储器单元的状态中的一个。SLC存储器组件可具有两个分布,MLC存储器组件可具有四个分布,TLC存储器组件可具有八个分布,QLC存储器组件可具有十六个分布,等等。在一些实施例中,存储器控制器115可确定存储器组件的存储器单元的代表性子集的阈值电压分布。例如,在一些实施例中,子集可包含存储器组件的字线的随机采样。在一些实施例中,可采样数千个存储器单元(例如,2kB的存储器块)。所获得分布的数目可等于组件的每存储器单元可存储的不同值的数目。在一些实施例中,所获得的分布的数目可小于可存储的值的数目。例如,在一些实施例中,可省略最低分布(分布0)。在一些实施例中,执行方法700的处理装置可响应于纠错模块检测到存储器组件在存储(写入)操作期间无法正确存储数据而获得多个阈值电压分布。
在操作720中,执行方法700的处理装置可将多个所获得分布中的每一个分类在多个类别中的一个当中。在一个示范性实施例中,第j分布可属于以下七个类别中的一个:良好分布(Cj=0)、顶部尾部分布(Cj=1)、底部尾部分布(Cj=2)、顶部及底部尾部分布(Cj=3)、扩大分布(Cj=4)、移位分布(Cj=5),及擦除分布(Cj=6)。在一些实施例中,可减少类别的数目,例如,没有建立对应于扩大及/或移位分布的类别。在其它实施例中,可使用超过七个类别。例如,顶部及/或底部尾部分布可进一步细分为指定相应尾部的强度的多个子类别。
在操作730处,执行方法700的处理装置可产生存储器组件的分布的矢量表示。矢量可具有多个与分布的数目相等的分量数目,例如,C=(C0,C1=1,…C7)。矢量C的分量可表示相应分布(存储器状态)的类别。例如,矢量C=(0,0,1,6,0,3,0,0)可表示分布2具有顶部尾部,分布5具有顶部尾部及底部尾部两者,分布3被擦除,且其余分布为良好。在一些实施例中,矢量C可替代地使用类别作为索引(标签表示)来表示。例如,上述分布可如下分类(其中每一类别标签后列出特定分布):
“良好”:0、1、4、6、7;
“顶部尾部”:2;
“底部尾部”:–;
“顶部及底部尾部”:5;
“扩大”:–;
“移位”:–;
“擦除”:3。
方法700可在操作740处继续处理装置使用分类器分析所产生矢量(或其标签表示),以确定存储器组件在目标时间段内发生故障的可能性。在一个示范性表示中,分类器可为经如上文所描述训练的机器学习模型。在一些实施例中,分类器可为任何处理器操作的模型或码,一旦经过训练,能够分析电压的分布,以确定在没有人工输入或监督的情况下发生故障的可能性。在一些实施方案中,分类器可为使用矢量分量Cj作为输入的公式,对输入矢量组件执行一组数学运算,并输出表示失败可能性的值。在一些实施例中,所述值可介于0与10之间(介于0与100之间,或在任何其它设置范围内),其中0指示极不可能的故障,且10指示几乎必然的故障。在一些实施例中,输出可具有估计故障概率(例如,65%)的含义。
图8根据本公开的一些实施例说明用以将存储器组件的多个分布分类在多个类别中的一个中的实例方法800的流程图。在一些实施例中,方法800可作为方法700的操作720的一部分执行。在一个实施例中,FPC 113可根据存储在本地存储器119的嵌入式存储器中的指令执行实例方法800。在一些实施例中,存储器子系统110(或存储器装置130)的固件可执行实例方法800。在一些实施例中,外部处理装置,例如主机系统120的处理装置,可执行实例方法800。
方法800可包含通过处理装置获得针对第二存储器组件中的存储器单元的给定状态的阈值电压分布(操作810)。在一个示范性实施例中,分布可为图3、5及6中所描述的分布中的一个。方法800可继续处理装置获得相对于控件分布的分布的分位数-分位数表示(QQR)(操作820)。在操作830处,方法800可继续处理装置识别分布的QQR中存在尾部。(处理装置可能够从数字QQR中提取分布特征,而无需产生实际标绘图。)处理装置可能够识别多于一个尾部,例如,第一尾部(其可为顶部尾部)及第二尾部(其可为底部尾部)。在此类情况中,可相对于第一尾部及第二尾部执行所描述操作。
在决策操作835处,处理装置可确定(第一或第二)尾部是否对应于发生概率低于第一截止值(例如,Q1)的事件,如上文关于图6A到6C所解释。如果尾部对应于此类罕见事件,那么方法800可继续将第一尾部视为不存在(操作840)。如果尾部对应于发生概率低于第一截止值Q1的事件,方法800可继续决策操作845,其中处理装置可确定尾部是否对应于低于第二截止值Q2的与控制分布的偏差ΔQ。如果是这样,那么方法800可继续执行操作840,并将尾部视为不存在。在其中尾部对应于其发生概率处于或高于第二值Q2表示的值的事件时,执行方法800的处理装置可将尾部视为有效(操作850)。然后,方法800可继续将尾部标识为顶部尾部或底部尾部中的一个,并将分布指派给分布的相应类别。方法800还可(任选地)继续处理装置,以识别分布(第一及/或第二)是否移动、扩大等(操作860)。方法800的输出可为将分布指派在多个类别当中,如上文所描述。处理装置可重复方法800以实现所得到阈值电压分布中的一些或全部。
图9根据本公开的一些实施例说明训练机器学习模型来确定存储器组件的故障的可能性的实例方法900的流程图。在一些实施例中,存储器组件的制造商侧的计算系统的处理装置可执行实例方法900,并在存储器子系统110中实施训练模型。在一些实施例中,主机系统120的处理装置可执行实例方法900。在一个实施例中,FPC 113可执行实例方法900。实例方法900可涉及通过处理装置获得包含存储器组件的多个阈值电压分布的训练输入(操作910)。多个阈值电压中的每一个可对应于存储器组件的存储器单元的多个状态中的一个。实例方法900可继续处理装置获得目标输出(操作920)。目标输出可包含存储器组件在目标时间间隔内发生故障的目标可能性(例如,概率)。在一些实施例中,目标时间间隔可按天、周、月等进行测量。在一些实施例中,目标时间间隔可在多个存储器操作(读取、写入、擦除等)中测量。
执行方法900的处理装置可通过神经网络模型处理训练输入(操作930)。神经网络模型可包含多个神经元,所述神经元与可学习权重及偏差相关联。神经元可布置在层中。神经网络模型可通过一或多个神经元层处理训练输入并产生训练输出。训练输出可包含在目标时间间隔内存储器组件发生故障的预测可能性。在一些实施例中,预测可能性可为数值,如20%、65%等。在其它实施例中,预测可能性可为离散类别,例如“不太可能”、“可能”、“当然”等。在操作940处,执行方法900的处理装置可确定预测故障可能性与目标故障可能性之间的差异。例如,处理装置可确定(预测可能性和目标可能性的)两个概率之间的差异。在那些实施例中,在使用离散预测类别的情况下,差异可包含两个可能性是否属于同一类别的指示。例如,如果两个可能性均属于“非常可能”类别,那么处理装置可检测不到任何差异。作为另一实例,如果预测可能性属于“不可能”类别,且目标可能性为“可能”类别,那么处理装置可确定差异为“低估”。
已确定可能性差异,处理装置可基于所确定差异修改(调整)神经网络模型的参数(操作950)。在一个示范性实施例中,神经网络模型的参数(例如,神经连接的权重、偏差等)的修改可通过反向传播的方法执行。例如,可调整参数,以便使目标输出与神经网络产生的预测输出之间的差异最小化。
在一些实施例中,神经网络模型可包含第一神经元子网络及第二神经元子网络。第一子网络可用于处理训练输入并产生中间输出,其中可包含分布所属的类别,第二子网络可用于基于中间输出(分布的类别)确定预测的故障可能性。
在一些实施例中,第二子网络可使用多个训练输入(分布)实施群集(分组)操作,以创建矢量组,如矢量C,如关于方法700所描述。例如,执行方法800的处理装置可使用例如以下的群集算法中的一个:DBSCAN算法、自动编码器(例如,变体自动编码器)、K-means群集、期望最大化算法、均值移位算法、终止算法、泛化算法、奇异值分解算法或其它适当的算法。
在训练阶段期间确定群集(矢量C组)后,可在识别阶段使用群集。处理装置(例如,执行方法700及800的装置)可比较所测试的目标存储器装置的矢量C的值,并确定此矢量属于哪个群集。可经由相似性函数(相关性函数、相似性度量)或差异函数来估计矢量与特定群集的接近度。例如,第j群集可具有关于属于所述群集的矢量C的每一分量的特定形心值。处理装置可通过计算目标存储器组件的矢量C与训练期间确定的每一群集形心之间的距离(在矢量分量空间中)来确定矢量C与第j群集之间的相关性。
群集(组)可取决于多个(在一些实施例中,全部)分布的特征。例如,群集可包含通过“分布0、1、3中的顶部尾部及分布5及6中的底部尾部”表征的分布(存储器装置)。另一群集可包含“至少三个分布中的顶部尾部与底部尾部”的实例。在一些实施例中,群集可包含导致处理装置寻求分布数据的上下文(例如,导致ECC无法纠正的错误的操作历史记录)或存储器装置的物理上下文(例如,选择用于分析的存储器组件是否完全或部分被编程)。例如,群集可包含“在部分编程块上多次读取后,分布5、6及7中的顶部尾部”。
图10说明计算机系统1000的实例机器,在所述计算机系统内可执行用于致使机器执行本文中所论述的方法中的任何一或多者的指令集。在一些实施例中,计算机系统1000可对应于主机系统(例如,图1的主机系统120),其包含,耦合到,或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的故障预测组件113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网及/或因特网中的其它机器。机器可在客户端-服务器网络环境中以服务器或客户端机器的身份运行,作为对等(或分布式)网络环境中的对等机器运行,或作为云计算基础设施或环境中的服务器或客户端机器运行。
所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、服务器、网络路由器、交换机或网桥,或能够执行规定由所述机器进行的动作的指令集(按顺序或其它方式)的任何机器。此外,虽然说明单个机器,但术语“机器”还应被视为包含单独或联合执行一(或多个)指令集以执行本文所论述的方法中的任何一或多个的任何机器集合。
实例计算机系统1000包含经由总线1030彼此通信的处理装置1002、主存储器1004(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)例如同步DRAM(SDRAM)或Rambus公司DRAM(RDRAM)等)、静态存储器1006(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统1018。
处理装置1002表示一或多个通用处理装置,例如微处理器、中央处理单元,等等。更具体地,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集组合的处理器。处理装置1002还可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器,等等。处理装置1002经配置以执行用于执行本文中所论述的操作及步骤的指令1026。计算机系统1000可进一步包含网络接口装置1008以经由网络1020进行通信。
数据存储系统1018可包含机器可读存储媒体1024(也被称作为非暂时性计算机可读存储媒体),其上存储体现本文中所描述的方法或功能中的任何一或多个的一或多个集合的指令1026或软件。指令1026还可在计算机系统1000执行所述指令期间完全或至少部分地驻留在主存储器1004内及/或处理装置1002内,主存储器1004和处理装置1002也构成机器可读存储媒体。机器可读存储媒体1024、数据存储系统1018及/或主存储器1004可对应于图1的存储器子系统110。
在一个实施例中,指令1026包含指令,以实施对应于图1的故障预测组件113的功能性。虽然机器可读存储媒体1024在实例实施例中被展示为单个媒体,但术语“机器可读存储媒体”应被视为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被视为包含能够存储或编码指令集以供机器执行且致使机器执行本公开的方法中的任何一或多个的任何媒体。因此,术语“机器可读存储媒体”应被视为包含(但不限于)固态存储器、光学媒体及磁媒体。
已在计算机存储器内的操作及数据位的操作的符号表示的形式来呈现前面的详细描述的一些部分。这些算法描述及表示为由所属数据处理领域的技术人员用于以向所属领域的其它技术人员传达其工作的本质的方式。算法或操作此处且通常被认为导致所要结果的自洽操作序列。操作为需要物理操纵物理量的操作。通常,但非必需地,这些数量可采取能够存储,组合,比较或以其它方式操纵的电或磁信号的形式。将这些信号称作位、值、元素、符号、字符、项、数字等等有时已证明是便利的(主要出于共用的原因)。
然而,应记住,所有这些术语及类似术语均与适当的物理量相关联,且仅作为应用于这些量的方便标签。本公开可是指计算机系统或类似电子计算装置的动作及过程,其将表示为计算机系统的寄存器及存储器内的物理(电子)量的数据操纵及变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
本公开还涉及用于执行本文中操作的设备。此设备可为特定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的磁盘,包含软盘、光盘、CD-ROM及磁光盘,只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡,或适用于存储电子指令的任何类型的媒体,每一者都耦合到计算机系统总线。
本文中所呈现的算法、操作及显示并不与任何特定计算机或其它设备内在地相关。根据本文中的教示,各种通用系统可与程序一起使用,或可证明构造更专用的装置以执行所述方法为方便的。各种这些系统的结构将如下文描述中所述。另外,不参考任何特定编程语言描述本公开。应理解,可使用各种编程语言来实施如本文中所描述的本公开的教示。
本公开可经提供作为计算机程序产品或软件,其可包含机器可读媒体,具有存储于其上的指令,所述指令可用于对计算机系统(或其它电子装置)进行编程以根据本公开执行处理。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁性磁盘存储媒体、光存储媒体、快闪存储器组件等。
词语“实例”或“示范性”在本文中用于意指“用作实例、情况或说明”。在本文中描述为“实例”或“示范性”的任何方面或设计未必应视为比其它方面或设计优选或有利。确切地说,使用词语“实例”或“示范性”的目的是以具体的方式提出概念。如在本申请案中所使用,术语“或”打算意指包含性“或”而非互斥“或”。也就是说,除非另有规定,或从上下文明确,“X包含A或B”打算意指自然包含性排列中的任一个。也就是说,如果X包含A;X包含B;或X包含A及B两者,那么在前述情况中的任一个下满足“X包含A或B”。另外,除非另有规定或从上下文明确是针对单数形式,否则如本申请案及随附权利要求书中所使用的冠词“一(a)”及“一(an)”通常应解释为意指“一或多个”。此外,贯穿全文使用术语“实施例”或“一个实施例”或“实施例”或“一个实施例”等等并不打算意指相同实施例,除非描述如此。本文中所描述的一或多个实施例或实施例可组合在特定实施例中。如本文中所使用,术语“第一”、“第二”、“第三”、“第四”等意指作为区分不同元件的标记,且可不必具有根据其数字指定的序数含义。
在上述说明书中,本公开的实施例已参考其特定实例实施例进行描述。显而易见的是,在不脱离所附权利要求书中所阐明的本公开的实施例的更广泛的精神及范围的情况下,可对其进行各种修改。因此,说明书及图式应考虑说明性而非限制性。
Claims (22)
1.一种系统,其包括:
存储器组件,其包括多个存储器单元,其中所述多个存储器单元中的每一存储器单元能够处于多个状态,所述多个状态中的每一状态对应于由所述存储器单元存储的值;及
处理装置,其与所述存储器组件进行操作耦合,以执行包括以下各项的操作:
对于所述多个存储器单元,获得多个阈值电压分布,其中所述多个分布中的每一个对应于所述多个状态中的一个;
将所述多个分布中的每一个分类在多个类别中的一个;
产生包括多个分量的矢量,其中所述多个分量中的每一个表示所述多个分布中的相应一个的所述类别;及
使用分类器处理所述所产生矢量来确定所述存储器组件将在目标时间段内发生故障的可能性。
2.根据权利要求1所述的系统,其中对所述多个阈值电压分布中的第一分布进行分类包括识别所述第一分布相对于控制分布的分位数-分位数表示中的第一尾部。
3.根据权利要求2所述的系统,其中所述控制分布为正态分布。
4.根据权利要求2所述的系统,其中对所述多个阈值电压分布中的所述第一分布进行分类进一步包括:
确定所述第一尾部对应于对应发生概率低于第一截止值的事件;及
将所述第一尾部视为不存在。
5.根据权利要求2所述的系统,其中对所述多个阈值电压分布中的所述第一分布进行分类进一步包括:
确定所述第一尾部对应于与所述控制分布的偏差,其中所述偏差低于第二截止值;及
将所述第一尾部视为不存在。
6.根据权利要求2所述的系统,其中对所述多个阈值电压分布中的所述第一分布进行分类包括将所述第一尾部识别为顶部尾部或下部尾部中的一个,其中所述顶部尾部对应于高于所述第一分布的均值的阈值电压,且其中所述底部尾部对应于低于所述第一分布的所述均值的阈值电压。
7.根据权利要求2所述的系统,其中对所述多个阈值电压分布中的第二分布进行分类包括识别所述第二分布相对于所述控制分布的移位。
8.根据权利要求1所述的系统,其中所述分类器包括机器学习模型。
9.根据权利要求8所述的系统,其中所述机器学习模型基于训练输入、目标输出以及所述训练输入与所述目标输出之间的关联进行训练,其中所述训练输入包括训练多个阈值电压分布,其中所述训练多个分布包括关于故障存储器组件的多个阈值电压分布中的一个,关于良好存储器组件的多个阈值电压分布,或关于良好存储器组件的多个阈值电压分布,修改以模拟故障存储器组件。
10.根据权利要求9所述的系统,其中所述目标输出包括具有所述训练多个阈值电压分布的存储器装置将在所述目标时间段内产生故障的可能性。
11.根据权利要求1所述的系统,其中获得所述多个阈值电压分布包括:
收集非结构化阈值电压数据;及
将所述非结构化阈值电压数据转换为与所述多个状态中的每一个相对应的所述多个阈值电压分布。
12.根据权利要求1的系统,其中获得所述多个阈值电压分布响应于纠错模块检测到所述存储器组件在存储操作后无法正确存储数据。
13.一种方法,其包括:
通过与包括多个存储器单元的存储器组件进行操作耦合的处理装置,获得多个阈值电压分布,其中所述多个分布中的每一个对应于所述多个存储器中的存储器单元的多个状态中的一个,其中所述多个状态中的每一状态对应于由所述存储器单元存储的值;
将所述多个分布中的每一个分类在多个类别中的一个;
产生包括多个分量的矢量,其中所述多个分量中的每一个表示所述多个分布中的相应一个的所述类别;及
使用分类器处理所述所产生矢量来确定所述存储器组件将在目标时间段内发生故障的可能性。
14.根据权利要求13所述的方法,其中对所述多个阈值电压分布中的第一分布进行分类包括识别所述第一分布相对于控制分布的分位数-分位数表示中的第一尾部。
15.根据权利要求14所述的方法,其中所述控制分布为正态分布。
16.根据权利要求14所述的方法,其中对所述多个阈值电压分布中的所述第一分布进行分类进一步包括:
确定所述第一尾部对应于对应发生概率低于第一截止值的事件;及
将所述第一尾部视为不存在。
17.根据权利要求14所述的方法,其中对所述多个阈值电压分布中的所述第一分布进行分类进一步包括:
确定所述第一尾部对应于与所述控制分布的偏差,其中所述偏差低于第二截止值;及
将所述第一尾部视为不存在。
18.根据权利要求14所述的方法,其中对所述多个阈值电压分布中的所述第一分布进行分类包括将所述第一尾部识别为顶部尾部或下部尾部中的一个,其中所述顶部尾部对应于高于所述第一分布的均值的阈值电压,且其中所述底部尾部对应于低于所述第一分布的所述均值的阈值电压。
19.根据权利要求14所述的方法,其中对所述多个阈值电压分布中的第二分布进行分类包括识别所述第二分布相对于所述控制分布的移位。
20.根据权利要求13的方法,其中获得所述多个阈值电压分布响应于纠错模块检测到所述存储器组件在存储操作后无法正确存储数据。
21.一种方法,其包括:
通过处理装置获得包括存储器组件的多个阈值电压分布的训练输入,其中所述多个阈值电压中的每一个对应于多个状态中的一个,所述多个状态中的每一状态对应于由所述存储器组件的存储器单元存储的值;
通过所述处理装置获得目标输出,所述目标输出包括所述存储器组件在目标时间间隔内发生故障的目标可能性;
通过包括多个神经元的神经网络模型处理所述训练输入以通过所述处理装置获得训练输出,其中所述训练输出包括所述存储器组件在所述目标时间间隔内发生故障的预测可能性;
通过所述处理装置确定所述预测故障可能性与所述目标故障可能性之间的差异;及
通过所述处理装置基于所述所确定差异修改所述神经网络模型的参数。
22.根据权利要求21所述的方法,其中所述神经网络模型包括第一神经元子网络及第二神经元子网络,其中所述第一子网络将处理所述训练输入并输出关于所述多个阈值电压分布的类别,且其中所述第二子网络将基于所述输出类别确定所述预测故障可能性。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/722,507 | 2019-12-20 | ||
US16/722,507 US11295209B2 (en) | 2019-12-20 | 2019-12-20 | Analysis of memory sub-systems based on threshold distributions |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113010391A true CN113010391A (zh) | 2021-06-22 |
Family
ID=76383671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011521379.2A Pending CN113010391A (zh) | 2019-12-20 | 2020-12-21 | 基于阈值分布的存储器子系统分析 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11295209B2 (zh) |
CN (1) | CN113010391A (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11295209B2 (en) * | 2019-12-20 | 2022-04-05 | Micron Technology, Inc. | Analysis of memory sub-systems based on threshold distributions |
US20220076160A1 (en) * | 2020-09-09 | 2022-03-10 | Western Digital Technologies, Inc. | Embedded Machine Learning for Storage Devices |
US20220121985A1 (en) * | 2020-10-20 | 2022-04-21 | Western Digital Technologies, Inc. | Machine Learning Supplemented Storage Device Calibration |
US20220121930A1 (en) * | 2020-10-20 | 2022-04-21 | Western Digital Technologies, Inc. | Embedded Multi-Attribute Machine Learning For Storage Devices |
US11514992B2 (en) | 2021-02-25 | 2022-11-29 | Microchip Technology Inc. | Method and apparatus for reading a flash memory device |
US11934696B2 (en) | 2021-05-18 | 2024-03-19 | Microchip Technology Inc. | Machine learning assisted quality of service (QoS) for solid state drives |
US11699493B2 (en) | 2021-05-24 | 2023-07-11 | Microchip Technology Inc. | Method and apparatus for performing a read of a flash memory using predicted retention-and-read-disturb-compensated threshold voltage shift offset values |
US11514994B1 (en) * | 2021-05-28 | 2022-11-29 | Microchip Technology Inc. | Method and apparatus for outlier management |
US12020762B2 (en) | 2021-09-27 | 2024-06-25 | Silicon Storage Technology, Inc. | Method of determining defective die containing non-volatile memory cells |
CN117480732A (zh) | 2021-09-28 | 2024-01-30 | 微芯片技术股份有限公司 | 具有陷阱块管理的ldpc解码 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1297231A (zh) * | 1999-11-17 | 2001-05-30 | 摩托罗拉公司 | 线路中的存储器阵列比特单元阈值电压分布式测量 |
CN101681321A (zh) * | 2007-06-05 | 2010-03-24 | 美光科技公司 | 利用数据值的模拟通信的固态存储器 |
US20160358663A1 (en) * | 2015-06-04 | 2016-12-08 | Sk Hynix Memory Solutions Inc. | Modeling method of threshold voltage distributions |
US20190286792A1 (en) * | 2018-03-13 | 2019-09-19 | International Business Machines Corporation | Chemical compound discovery using machine learning technologies |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080195903A1 (en) * | 2007-02-14 | 2008-08-14 | Qimonda Flash Gmbh & Co. Kg | Non-volatile memory device with built-in test control unit and methods of testing and repairing a cell array |
US8527819B2 (en) * | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
KR102461726B1 (ko) * | 2016-07-19 | 2022-11-02 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이의 동작 방법 |
US10726930B2 (en) * | 2017-10-06 | 2020-07-28 | Western Digital Technologies, Inc. | Method and system for a storage (SSD) drive-level failure and health prediction leveraging machine learning on internal parametric data |
US11012289B2 (en) * | 2019-07-10 | 2021-05-18 | Sap Se | Reinforced machine learning tool for anomaly detection |
KR20210069257A (ko) * | 2019-12-03 | 2021-06-11 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그것의 동작 방법 |
US11295209B2 (en) * | 2019-12-20 | 2022-04-05 | Micron Technology, Inc. | Analysis of memory sub-systems based on threshold distributions |
-
2019
- 2019-12-20 US US16/722,507 patent/US11295209B2/en active Active
-
2020
- 2020-12-21 CN CN202011521379.2A patent/CN113010391A/zh active Pending
-
2022
- 2022-03-28 US US17/706,256 patent/US11783185B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1297231A (zh) * | 1999-11-17 | 2001-05-30 | 摩托罗拉公司 | 线路中的存储器阵列比特单元阈值电压分布式测量 |
CN101681321A (zh) * | 2007-06-05 | 2010-03-24 | 美光科技公司 | 利用数据值的模拟通信的固态存储器 |
US20160358663A1 (en) * | 2015-06-04 | 2016-12-08 | Sk Hynix Memory Solutions Inc. | Modeling method of threshold voltage distributions |
US20190286792A1 (en) * | 2018-03-13 | 2019-09-19 | International Business Machines Corporation | Chemical compound discovery using machine learning technologies |
Also Published As
Publication number | Publication date |
---|---|
US20210192333A1 (en) | 2021-06-24 |
US11783185B2 (en) | 2023-10-10 |
US11295209B2 (en) | 2022-04-05 |
US20220215261A1 (en) | 2022-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11783185B2 (en) | Analysis of memory sub-systems based on threshold distributions | |
CN111538458B (zh) | 使用深度学习的存储装置性能优化 | |
US10726934B2 (en) | Memory characterization and sub-system modification | |
CN112166472A (zh) | 具有使用基于组件的功能进行的动态校准的存储器子系统 | |
US11960989B2 (en) | Read threshold estimation systems and methods using deep learning | |
US12009034B2 (en) | Classification of error rate of data retrieved from memory cells | |
US11544008B2 (en) | Temperature correction in memory sub-systems | |
US10665309B2 (en) | Memory endurance measures based on an extrapolated function fit to metric points for a memory sub-system | |
US11379122B2 (en) | Selective relocation of data of a subset of a data block based on distribution of reliability statistics | |
US10854305B2 (en) | Using a status indicator in a memory sub-system to detect an event | |
US20220165337A1 (en) | Systems and methods for determining change of read threshold voltage | |
US11636913B2 (en) | Tracking and refreshing state metrics in memory sub-systems | |
CN112740331A (zh) | 基于存储器组件特性组件刷新存储在存储器组件处的数据 | |
CN116168753A (zh) | 存储器装置缺陷扫描 | |
US11854631B2 (en) | System and method for dynamic compensation for multiple interference sources in non-volatile memory storage devices | |
US20230060943A1 (en) | Memory device defect management | |
US20230057711A1 (en) | System and method for dynamic inter-cell interference compensation in non-volatile memory storage devices | |
US20230333762A1 (en) | Reuse of bad blocks for tasks in a memory sub-system | |
US20240330717A1 (en) | Machine learning-based adjustment of memory configuration parameters | |
US12050777B2 (en) | Adaptive scanning of memory devices with supervised learning | |
US12007838B2 (en) | Accessing data using error correction operation(s) to reduce latency at a memory sub-system | |
US20240029802A1 (en) | Read disturb management | |
US20230298674A1 (en) | Programming by self adjusting program voltage targets compensating for cell-to-cell interference and pe cycles |
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 |