CN113051098A - 使用机器学习控制非易失性存储器设备的操作的方法和存储系统 - Google Patents
使用机器学习控制非易失性存储器设备的操作的方法和存储系统 Download PDFInfo
- Publication number
- CN113051098A CN113051098A CN202011260929.XA CN202011260929A CN113051098A CN 113051098 A CN113051098 A CN 113051098A CN 202011260929 A CN202011260929 A CN 202011260929A CN 113051098 A CN113051098 A CN 113051098A
- Authority
- CN
- China
- Prior art keywords
- read
- machine learning
- memory device
- volatile memory
- data
- 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
Images
Classifications
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- 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/1044—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 with specific ECC/EDC distribution
-
- 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/1048—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 using arrangements adapted for a specific error detection or correction feature
-
- 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/1068—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 sector programmable memories, e.g. flash disk
-
- 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/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
- G06F18/2148—Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
-
- 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
- G06N20/00—Machine learning
- G06N20/20—Ensemble 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
- G06N3/045—Combinations of networks
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- 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
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- 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/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- 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
- 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/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
-
- 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/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/40—Response verification devices using compression techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Quality & Reliability (AREA)
- Medical Informatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
根据一种使用机器学习来控制非易失性存储器设备的操作的方法,通过使用机器学习模型执行推断操作来确定非易失性存储器设备的操作条件。收集基于特征信息和错误信息生成的训练数据,其中错误信息指示非易失性存储器设备的错误校正码(ECC)解码的结果。通过基于训练数据执行学习操作来更新机器学习模型。通过在存储系统中收集训练数据并基于训练数据执行学习操作和推断操作来提供针对各个用户环境的最优操作条件。
Description
相关申请的交叉引用
本申请要求享有2019年12月26日在韩国知识产权局(KIPO)提交的韩国专利申请第10-2019-0175273号的优先权,该韩国专利申请的公开内容通过引用全文合并于此。
技术领域
示例实施例总体上涉及半导体集成电路,更具体地,涉及使用机器学习来控制非易失性存储器设备的操作的方法以及包括非易失性存储器设备的存储系统。
背景技术
诸如闪存设备、电阻存储器设备等的非易失性存储器设备可以存储与多个阈值电压分布、多个电阻分布等有关的数据。每个相应的“分布”表示所存储数据的对应的逻辑状态。一旦被写入(或被编程)到非易失性存储器单元,所存储的数据就可以通过施加预定的读取电压来读取。在存储器单元的编程期间或之后,其预期分布可能因许多事件或条件而改变或失真,这些事件或条件包括例如电荷泄漏、编程干扰、读取干扰、字线和/或位线联接、温度变化、电压变化、存储器单元的退化等。在极端情况下,预期分布可能变得如此偏移和/或加宽,以致发生“读取失败”。
当发生读取失败时,某些非易失性存储器设备可以执行与导致读取失败的操作不同类型的读取操作(即,具有不同读取序列的读取操作)。然而,设置正确地解释可能改变了正在被读取的分布的许多事件和条件的读取序列并不容易。因此,“读取延迟”(即,读取所存储的数据所需的时间段)可能随着按可接受的读取序列来评估或识别当前操作条件的变化而增加,并且非易失性存储器设备的性能可能随着其读取延迟的延长而劣化。
发明内容
一些示例实施例可以提供一种控制非易失性存储器设备的操作的方法以及一种执行该方法的存储系统,该方法能够高效地控制非易失性存储器设备的操作条件。
根据示例实施例,一种使用机器学习来控制非易失性存储器设备的操作的方法包括:通过使用机器学习模型执行推断操作来确定非易失性存储器设备的操作条件;收集基于特征信息和错误信息生成的训练数据,错误信息指示非易失性存储器设备的错误校正码(ECC)解码的结果;以及通过基于训练数据执行学习操作来更新机器学习模型。
根据示例实施例,一种使用机器学习来控制非易失性存储器设备的操作的方法包括:提供多个读取电平集,每个读取电平集对应于用于非易失性存储器设备的读取操作的读取电压的电平的组合;通过基于作为机器学习模型的输入的当前特征信息执行推断操作来确定所述多个读取电平集之中的与当前特征信息对应的最优读取电平集;收集基于特征信息和错误信息生成的训练数据,特征信息包括非易失性存储器设备的物理地址和指示与该物理地址对应的存储器单元的阈值电压分布的单元计数数据,错误信息指示非易失性存储器设备的错误校正码(ECC)解码的结果;通过基于训练数据执行学习操作来更新机器学习模型;以及基于推断操作失败的概率和ECC解码失败的概率来确定执行学习操作的时机。
根据示例实施例,一种存储系统包括非易失性存储器设备和配置为控制非易失性存储器设备的存储控制器。该存储控制器包括:数据收集器,配置为收集基于特征信息和错误信息生成的训练数据,错误信息指示非易失性存储器设备的错误校正码(ECC)解码的结果;缓冲存储器,配置为存储训练数据;以及机器学习引擎,配置为通过使用机器学习模型执行推断操作来确定非易失性存储器设备的操作条件,并通过基于训练数据执行学习操作来更新机器学习模型。
根据示例实施例的控制非易失性存储器设备的操作的方法和存储系统可以通过在存储系统中收集训练数据并基于训练数据执行学习操作和推断操作来为各个用户环境提供优化或改善的操作条件。
附图说明
本公开的示例实施例将由以下结合附图的详细描述被更清楚地理解。
图1是示出根据示例实施例的包括在非易失性存储器设备中的机器学习设备的框图。
图2是示出根据示例实施例的控制非易失性存储器设备的操作的方法的流程图。
图3是示出根据示例实施例的存储系统的框图。
图4是示出根据示例实施例的非易失性存储器设备的框图。
图5是示出包括在图4的非易失性存储器设备中的存储器单元阵列的框图。
图6是示出参照图5描述的存储器块的等效电路的电路图。
图7是示出根据示例实施例的包括在非易失性存储器设备中的多层单元的状态的图。
图8是示出根据示例实施例的示例读取序列的图。
图9是示出根据图8的读取序列读取数据的方法的流程图。
图10是示出根据示例实施例的在控制非易失性存储器设备的操作的方法中确定操作条件的示例实施例的流程图。
图11是示出用于图10的确定操作条件的示例读取序列集的图。
图12是示出根据示例实施例的在控制非易失性存储器设备的操作的方法中确定操作条件的示例实施例的流程图。
图13是示出根据图12的确定操作条件的可靠性等级的图。
图14是示出根据示例实施例的在控制非易失性存储器设备的操作的方法中确定操作条件的示例实施例的流程图。
图15是用于描述预定读取电压和最优读取电压的图。
图16、图17和图18是示出根据示例实施例的读取序列的图。
图19是示出2比特软判决读取操作的示例的图,图20是示出3比特软判决读取操作的示例的图。
图21是示出根据示例实施例的控制非易失性存储器设备的操作的方法的流程图。
图22是根据示例实施例的机器学习引擎。
图23和图24是示出根据示例实施例的包括在存储系统中的机器学习设备的框图。
图25和图26是用于描述根据示例实施例的由机器学习设备驱动的深度学习神经网络结构的示例的图。
图27是示出包括在神经网络中的节点的示例的图。
图28是示出根据示例实施例的存储系统的图。
具体实施方式
在下文中将参照附图更全面地描述各种示例实施例,在附图中示出了一些示例实施例。在附图中,同样的附图标记始终指代同样的元件。可以省略重复的描述。
图1是示出根据示例实施例的包括在非易失性存储器设备中的机器学习设备的框图,图2是示出根据示例实施例的控制非易失性存储器设备的操作的方法的流程图。
参照图1,机器学习设备10可以包括机器学习引擎20、数据收集器DCLL30和缓冲存储器BUFF 40。
机器学习引擎20可以包括控制器CTRL和机器学习模块MLMDL。控制器CTRL可以驱动机器学习模块MLMDL以更新多个机器学习模型MD1~MD3。
在一些示例实施例中,更新机器学习模型可以包括更新与机器学习模型对应的权重值。权重值将在下面参照图25至图27来描述。
如下面将描述地,多个机器学习模型MD1~MD3中的每个可以对应于诸如读取电平集、可靠性等级、读取序列等的操作条件之一。
缓冲存储器40可以存储数据和/或信息,诸如训练数据TRD、设置表STTBL等。
为了图示的方便,图1示出了三个机器学习模型MD1~MD3,但是示例实施例不限于此。可以各种各样地实现机器学习模型的数量。
参照图1和图2,机器学习引擎20可以通过使用机器学习模型MDi(i=1,2,3)执行推断操作来确定非易失性存储器设备的操作条件(S100)。机器学习引擎20可以基于作为机器学习引擎20的输入的当前特征信息FTRINF_C来执行推断操作。
数据收集器30可以收集基于特征信息FTRINF和错误信息ERRINF生成的训练数据TRD,其中错误信息ERRINF指示非易失性存储器设备的错误校正码(ECC)解码的结果(S200)。机器学习引擎20可以通过基于训练数据TRD执行学习操作来更新机器学习模型MDi(S300)。
特征信息FTRINF可以包括非易失性存储器设备的物理地址和指示与该物理地址对应的存储器单元的阈值电压分布的单元计数数据。错误信息ERRINF可以包括ECC解码失败的概率和由ECC解码确定的错误数中的至少之一。
训练数据TRD可以包括特征信息FTRINF和成功完成的推断操作的结果。此外,训练数据TRD可以包括:操作温度,操作电压,编程和擦除(P/E)循环,读取操作的数量,读取、写入(即编程)和擦除操作的延迟等。
控制器CTRL可以从特征信息FTRINF提取与机器学习模型MDi对应的数据,并提供所提取的数据作为由机器学习模块MLMDL实现的神经网络的输入。此外,控制器CTRL可以优化与机器学习模型MDi对应的神经网络的权重值。神经网络和权重值将参照图25至图27来描述。
在包括诸如闪存设备的非易失性存储器设备的存储系统中,可以通过用于确定各种操作条件的预测算法来提高非易失性存储器设备的性能和可靠性,但是预测算法可能不能反映各种用户环境和非易失性存储器设备的特性变化。根据示例实施例,机器学习可以用于防止由于用户环境和非易失性存储器设备的工作负荷的变化导致的预测算法的准确性降低。
这样,根据示例实施例的控制非易失性存储器设备的操作的方法和存储系统可以通过在存储系统中收集训练数据并基于训练数据执行学习操作和推断操作来为各个用户环境提供优化的操作条件。
图3是示出根据示例实施例的存储系统的框图。
参照图3,存储系统1000包括多个非易失性存储器设备1100和存储控制器1200。存储系统1000可以是存储器卡、固态驱动器(SSD)、通用闪存(UFS)等。
非易失性存储器设备1100包括存储器单元阵列,该存储器单元阵列包括存储数据的多个存储器单元。非易失性存储器设备1100可以可选地被配置为接收高电压VPP。非易失性存储器设备1100的示例将参照图4至图6以一些额外的细节来描述。
存储控制器1200可以控制非易失性存储器设备1100的整体操作。存储控制器1200可以控制外部主机与非易失性存储器设备1100之间的数据传输。存储控制器1200可以包括诸如中央处理单元(CPU)的处理器1210、缓冲存储器1220、主机接口1250、存储器(例如NVM)接口1260、ECC块1230、机器学习引擎MLD 20和数据收集器DCLL 30。处理器1210可以执行用于数据传输的操作。
在一些示例实施例中,缓冲存储器1220可以由静态随机存取存储器(SRAM)实现。在另一些示例实施例中,缓冲存储器1220可以由动态随机存取存储器(DRAM)、相位随机存取存储器(PRAM)、铁电随机存取存储器(FRAM)、电阻随机存取存储器(RRAM)、磁性随机存取存储器(MRAM)等实现。根据示例实施例,缓冲存储器1220可以位于存储控制器1200的内部或外部。
主机接口1250可以联接到主机,存储器接口1260可以通过多个通道CH1、CH2、CH3、……、CHi联接到非易失性存储器设备1100。处理器1210可以经由主机接口1250与主机通信。例如,主机接口1250可以被配置为使用各种接口协议(诸如通用串行总线(USB)、多媒体卡(MMC)、外围组件互连高速(PCI-E)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小磁盘接口(ESDI)、电子集成驱动器(IDE)等)中的至少一种与主机通信。此外,处理器1210可以经由存储器接口1260与非易失性存储器设备1100通信。
在一些示例实施例中,ECC块1230可以通过使用博斯-查德胡里-霍昆格姆(BCH)码来执行ECC编码和ECC解码。在另一些示例实施例中,ECC块1015可以通过使用低密度奇偶校验(LDPC)码来执行ECC编码和ECC解码。在又一些示例实施例中,ECC块1230可以通过使用turbo码、里德-所罗门码、卷积码、递归系统码(RSC)、编码调制(诸如网格编码调制(TCM)、块编码调制(BCM)等)或其他错误校正码来执行ECC编码和ECC解码。
根据示例实施例,存储控制器1200可以置于非易失性存储器设备1100中,或者存储控制器1200和非易失性存储器设备1100可以被实现为分离的芯片。根据示例实施例,ECC块1230可以被包括在非易失性存储器设备1100中,以减少存储控制器1200与非易失性存储器设备1100之间的数据传输量。在这种情况下,非易失性存储器设备1100可以在读取失败的情况下仅将关于读取失败和错误比特的信息传输给存储控制器1200。非易失性存储器设备1100可以在读取成功的情况下将可通过ECC解码获得的有效读取数据提供给存储控制器1200。
机器学习引擎20和数据收集器30可以被实现为执行如参照图1和图2所述的控制非易失性存储器设备的操作的方法。图1中的缓冲存储器40可以对应于图3中的缓冲存储器1220。机器学习引擎20的至少一部分可以被实现为由处理器1210运行的程序代码。
图4是示出根据示例实施例的非易失性存储器设备的框图。
参照图4,非易失性存储器设备NVM包括存储器单元阵列100、页缓冲器电路410、数据输入/输出电路420、地址解码器430、控制电路450和电压生成器460。
存储器单元阵列100可以通过多条串选择线SSL、多条字线WL和多条地选择线GSL联接到地址解码器430。此外,存储器单元阵列100可以通过多条位线BL联接到页缓冲器电路410。
存储器单元阵列100可以包括联接到多条字线WL和多条位线BL的多个存储器单元。在一些示例实施例中,存储器单元阵列100可以是三维存储器单元阵列,其以三维结构(或垂直结构)形成在基板上。在这种情况下,存储器单元阵列100可以包括多个NAND串,所述多个NAND串垂直取向使得至少一个存储器单元位于另一个存储器单元上方。
控制电路450可以从存储器控制器20接收命令(信号)CMD和地址(信号)ADDR,并基于命令信号CMD和地址信号ADDR来控制非易失性存储器设备NVM的擦除、编程和读取操作。擦除操作可以包括执行一系列擦除循环,编程操作可以包括执行一系列编程循环。每个编程循环可以包括编程时段和编程验证时段。每个擦除循环可以包括擦除时段和擦除验证时段。读取操作可以包括正常读取操作和数据恢复读取操作。
例如,控制电路450可以生成用于控制电压生成器460的控制信号CTL,并且可以基于命令信号CMD生成用于控制页缓冲器电路410的页缓冲器控制信号PBC,并基于地址信号ADDR生成行地址R_ADDR和列地址C_ADDR。控制电路450可以将行地址R_ADDR提供给地址解码器430,并将列地址C_ADDR提供给数据输入/输出电路420。
地址解码器430可以通过多条串选择线SSL、多条字线WL和多条地选择线GSL联接到存储器单元阵列100。在编程操作或读取操作期间,地址解码器430可以基于行地址R_ADDR将多条字线WL之一确定为被选择的字线并将多条字线WL中的除了被选择的字线以外的其余字线确定为未被选择的字线。
此外,在编程操作或读取操作期间,地址解码器430可以基于行地址R_ADDR将多条串选择线SSL之一确定为被选择的串选择线并将多条串选择线SSL中的除被选择的串选择线以外的其余串选择线确定为未被选择的串选择线。
电压生成器460可以基于控制信号CTL生成非易失性存储器设备NVM的存储器单元阵列100的操作所需的字线电压VWL。电压生成器460可以从存储器控制器20接收电力PWR。字线电压VWL可以通过地址解码器430施加到多条字线WL。
例如,在编程操作期间,电压生成器460可以将编程电压施加到被选择的字线,并且可以将编程通过电压施加到未被选择的字线。此外,在编程验证操作期间,电压生成器460可以将编程验证电压施加到被选择的字线,并且可以将验证通过电压施加到未被选择的字线。
此外,在正常读取操作期间,电压生成器460可以将读取电压施加到被选定的字线,并且可以将读取通过电压施加到未被选择的字线。在数据恢复读取操作期间,电压生成器460可以将读取电压施加到与被选择的字线相邻的字线,并且可以将恢复读取电压施加到被选择字线。
页缓冲器电路410可以通过多条位线BL联接到存储器单元阵列100。页缓冲器电路410可以包括多个缓冲器。在一些示例实施例中,每个缓冲器可以仅连接到一条位线。在另一些示例实施例中,每个缓冲器可以连接到两条或更多条位线。
页缓冲器电路410可以临时存储将要被编程在存储器单元阵列100的被选择的页中的数据或从存储器单元阵列100的被选择的页中读出的数据。
数据输入/输出电路420可以通过数据线DL联接到页缓冲器电路410。在编程操作期间,数据输入/输出电路410可以接收从存储器控制器20接收到的程序数据DATA,并基于从控制电路450接收到的列地址C_ADDR将程序数据DATA提供给页缓冲器电路410。在读取操作期间,数据输入/输出电路420可以基于从控制电路450接收到的列地址C_ADDR将已经从存储器单元阵列100读取并存储在页缓冲器电路410中的读取数据DATA提供给存储器控制器20。
此外,页缓冲器电路410和数据输入/输出电路420可以从存储器单元阵列100的第一区域读取数据,并将该读取的数据写入存储器单元阵列100的第二区域(例如,而不将数据发送到非易失性存储器设备NVM外部的源,诸如发送到存储器控制器20)。即,页缓冲器电路410和数据输入/输出电路420可以执行回拷操作。
在下文中,第一方向D1指示垂直于半导体基板的上表面的方向,第二方向D2和第三方向D3指示平行于半导体基板的上表面的两个方向。例如,第二方向D2和第三方向D3可以彼此垂直。第一方向D1可以被称为垂直方向,第二方向D2可以被称为行方向,第三方向D3可以被称为列方向。附图中由箭头指示的方向和相反的方向可以被认为是同一方向。
图5是示出包括在图4的非易失性存储器设备中的存储器单元阵列的框图,图6是示出参照图5描述的存储器块的等效电路的电路图。
参照图5,存储器单元阵列100可以包括多个存储器块BLK1至BLKz。在示例实施例中,由图4中的地址解码器430选择存储器块BLK1至BLKz。例如,地址解码器430可以选择存储器块BLK1至BLKz之中的与块地址对应的特定存储器块BLK。
图6的存储器块BLKi可以以三维结构(或垂直结构)形成在基板上。例如,包括在存储器块BLKi中的多个NAND串或单元串可以在垂直于基板的上表面的第一方向D1上形成。
参照图6,存储器块BLKi可以包括联接在位线BL1、BL2和BL3与公共源极线CSL之间的NAND串NS11至NS33。NAND串NS11至NS33中的每个可以包括串选择晶体管SST、多个存储器单元MC1至MC8和地选择晶体管GST。在图6中,NAND串NS11至NS33中的每个被示出为包括八个存储器单元MC1至MC8。然而,示例实施例不限于此。在一些示例实施例中,NAND串NS11至NS33中的每个可以包括任何数量的存储器单元。
每个串选择晶体管SST可以连接到对应的串选择线(SSL1至SSL3之一)。多个存储器单元MC1至MC8可以分别连接到对应的栅极线GTL1至GTL8。栅极线GTL1至GTL8可以是字线,并且栅极线GTL1至GTL8中的一些可以是虚设字线。每个地选择晶体管GST可以连接到对应的地选择线(GSL1至GSL3之一)。每个串选择晶体管SST可以连接到对应的位线(例如BL1、BL2和BL3之一),并且每个地选择晶体管GST可以连接到公共源极线CSL。
具有相同高度的字线(例如WL1)可以被共同地连接,并且地选择线GSL1至GSL3和串选择线SSL1至SSL3可以被分开。尽管未示出,但是与中间开关线对应的栅极线可以如下所述地被分开。在图6中,存储器块BLKi被示出为联接到八条栅极线GTL1至GTL8和三条位线BL1至BL3。然而,示例实施例不限于此。存储器单元阵列100中的每个存储器块可以联接到任何数量的字线和任何数量的位线。
已经参照图6描述了三维NAND闪存设备或垂直NAND闪存作为应用示例实施例的非易失性存储器设备,但是示例实施例限于特定的存储器类型。例如,示例实施例可以应用于各种非易失性存储器设备,诸如相变随机存取存储器(PRAM)、磁性随机存取存储器(MRAM)、电阻随机存取存储器(RRAM)、铁电随机存取存储器(FRAM)等。
图7是示出根据示例实施例的包括在非易失性存储器设备中的多层单元的状态的图。
图7示出了三层单元(TLC)的第一至第八状态S1~S8,其中每个TLC可以存储三个数据比特。在图7中,横轴表示存储器单元的阈值电压VTH,纵轴表示与阈值电压VTH对应的存储器单元的数量。在编程操作期间,可以通过将第一至第七验证读取电压VVR1~VVR7依次施加到被选择的字线来区分第一至第八状态S1~S8的编程成功。此外,在正常读取操作期间,可以通过将第一至第七正常读取电压VR1~VR7的至少一部分施加到被选择的字线来区分第一至第八状态S1至S8,如下面将参照图12和图13所述。
由于与存储器单元的数据保持能力相关联的保持特性的退化和/或与读取操作相关联的读取干扰特性的退化,存储器单元的阈值电压分布可能偏移。可能由于阈值电压分布的失真而在读取数据中引起错误,因此将根据操作条件的变化来调整预定的读取电压。根据示例实施例,可以通过基于训练数据执行学习操作和推断操作来提供针对各个用户环境的最优操作条件。
图8是示出根据示例实施例的示例读取序列的图。
参照图8,每个读取序列RSEQ可以包括多个读取操作ROP1~ROPk,所述多个读取操作ROP1~ROPk具有彼此不同的各自的读取时间tRD1~tRDk。
在读取时间的长度与对应的读取操作的准确性之间存在取舍。换句话说,具有较短读取时间的读取操作也具有较高的读取失败结果的可能性,而具有较长读取时间的读取操作具有较高的成功读取操作结果的可能性。因此,每个读取序列RSEQ可以被设置为使得具有较短读取时间的读取操作将在具有较长读取时间的读取操作之前被执行,例如,如图8所示。这里,首先执行具有最短读取时间tRD1的第一读取操作ROP1,然后在第一读取操作ROP1之后执行具有比第一读取时间tRD1长的第二读取时间tRD2的第二读取操作ROP2,然后在第二读取操作ROP2之后执行具有比第二读取时间tRD2长的第三读取时间tRD3的第三读取操作ROP3,然后依此类推直至具有最长读取时间tRDk的第k读取操作ROPk。
可以使用错误检查和校正(ECC)解码来执行读取操作ROP1~ROPk中的每个。可以依次执行被选择的读取序列RSEQ中的读取操作ROP1~ROPk,直至获得有效数据,如由ECC解码所正确地指示地。一旦获得有效数据,将不执行较后的读取操作,并且结束读取序列RSEQ。
结果,与被选择的读取序列相关联的读取延迟对应于被执行直至获得有效数据的读取操作的读取时间之和。在图8的示出的示例中,如果通过第一读取操作ROP1获得有效数据,则读取延迟tLAT1对应于第一读取时间tRD1,如果通过第二读取操作ROP2获得有效数据,则读取延迟tLAT2对应于第一读取时间tRD1和第二读取时间tRD2之和tRD1+tRD2,如果通过第三读取操作ROP3获得有效数据,则读取延迟tLAT3对应于第一读取时间tRD1、第二读取时间tRD2和第三读取时间tRD3之和tRD1+tRD2+tRD3,如果通过最后一个读取操作ROPk获得有效数据,则读取延迟tLATk对应于所有读取时间tRD1~tRDk之和tRD1+tRD2+……+tRDk。
图9是示出根据图8的读取序列读取数据的方法的流程图。
参照图9,根据读取序列RSEQ,执行最高优先级的第一读取操作ROP1(S11)。这里,与图8的示例一样,假设结合ECC解码来执行每个读取操作。因此,当通过ECC解码确定所读取的数据中的(多个)错误是可校正的时(S12:是),将第一读取操作ROP1的第一读取时间tRD1确定为读取延迟tLAT1(S13)。因此,由于(多个)错误(如果有的话)是可校正的,因此获得有效数据并且结束读取序列RSEQ。
然而,当(多个)错误不是可校正的时(S12:否),执行下一优先级的第二读取操作ROP2(S21)。再次,如果通过ECC解码确定所读取的数据中的(多个)结果错误(如果有的话)是可校正的(S22:是),则将第一读取操作ROP1和第二读取操作ROP2的读取时间之和tRD1+tRD2确定为读取延迟tLAT2(S23)。
然而,如果(多个)错误不是可校正的(S22:否),则执行下一优先级的第三读取操作ROP3(S31)。再次,如果通过ECC解码确定所读取的数据中的(多个)错误(如果有的话)是可校正的(S32:是),则将第一读取操作ROP1、第二读取操作ROP2和第三读取操作ROP3的读取时间之和tRD1+tRD2+tRD3确定为读取延迟tLAT3(S33)。
以这种方式,只要没有通过执行具有较高优先级的读取操作获得有效数据,就依次执行被各种各样地设置的读取操作,直至执行最后一个读取操作ROPk(S41)。因此,最后,如果通过ECC解码确定所读取的数据中的(多个)错误(如果有的话)是可校正的(S42:是),则将所有读取操作ROP1~ROPk的读取时间之和tRD1+tRD2+……+tRDk确定为读取延迟tLATk(S43)。
然而,如果没有通过最后一个读取操作ROPk获得有效数据,则确定当前的读取操作是不可能的(S50)(即,发生读取失败),并结束读取序列RSEQ。
如果操作条件不是太不利,则在许多情况下,将通过第一读取操作ROP1获得有效数据。因此,可以通过使用示出的读取序列来最小化读取延迟,使得可以以最小的实际读取延迟来执行整个读取操作。然而,如果操作条件恶化,则将可能不会通过仅使用第一读取操作就获得有效数据。因此,可以执行具有相应优先级的第二读取操作以及有可能地后续读取操作。这种必要性显然将延长整个读取操作的读取延迟。因此,可以通过设置分别对应于不同操作条件的多个读取序列来提高非易失性存储器设备的性能,其中可以自适应地选择多个读取序列之中的特定读取序列的使用。
如将在下面参照图10至图20所述,根据示例实施例,可以针对操作条件的变化来优化诸如读取电平集、可靠性等级、读取序列等的操作条件。
图10是示出根据示例实施例的在控制非易失性存储器设备的操作的方法中确定操作条件的示例实施例的流程图,图11是示出用于图10的确定操作条件的示例读取序列集的图。
参照图1、图10和图11,提供多个读取电平集RLS1~RLS3,使得每个读取电平集RLSi(i=1,2,3)可以对应于用于非易失性存储器设备的读取操作的读取电压VR1~VRm的电平VLij(j=1~m)的组合(S111),多个读取电平集RLS1~RLS3可以作为设置表STTBL的形式存储在图1的缓冲存储器40中。
可以通过基于作为机器学习模型的输入的当前特征信息FTRINF_C执行推断操作来确定多个读取电平集RLS1~RLS3之中的与当前特征信息FTRINF_C对应的最优读取电平集(S112)。
在一些示例实施例中,可以相对于包括在非易失性存储器设备中的多个存储器平面中的每个或相对于包括在非易失性存储器设备中的多个存储器块中的每个分别确定最优读取电平集。
图12是示出根据示例实施例的在控制非易失性存储器设备的操作的方法中确定操作条件的示例实施例的流程图,图13是示出根据图12的确定操作条件的可靠性等级的图。
参照图12和图13,可以相对于包括在非易失性存储器设备中的多个存储器块中的每个监视指示存储器块中的存储器单元的阈值电压分布的当前单元计数数据(S121)。
可以通过基于作为机器学习模型的输入的当前单元计数执行推断操作来确定与多个存储器块对应的多个可靠性等级,使得每个可靠性等级可以指示存储在每个存储器块中的数据的寿命(S122)。
在一些示例实施例中,可以周期性地执行监视当前单元计数数据的操作和确定多个可靠性等级的操作。图13示出了在时间点T1~T4确定的针对相应存储器块BLK1~BLK4的可靠性等级RL1~RL4的示例。在图13中,RLi指示比RLi+1高的可靠性等级,即,R1是最高的可靠性等级,R4是最低的可靠性等级。结果,图13示出了其中数据被分析的存储器块BLK1至BLK4的可靠性等级可以随着时间逐渐降低。
可以基于多个可靠性等级相对于存储在多个存储器块中的数据执行重写操作。例如,如果存储器块BLK3的可靠性等级RL4低于预定的参考等级,则可以相对于存储器块BLK3执行重写操作,并且存储器块BLK3可以被初始化为具有最高的可靠性等级RL1。
图14是示出根据示例实施例的在控制非易失性存储器设备的操作的方法中确定操作条件的示例实施例的流程图。
参照图14,可以设置非易失性存储器设备的多个读取序列(S131)。将参照图16至图18描述的多个读取序列可以作为设置表STTBL的形式存储在图1的缓冲存储器40中。
可以通过基于作为机器学习模型的输入的当前特征信息执行推断操作来确定多个读取序列之中的与当前特征信息对应的最优读取序列(S132)。
图15是用于描述预定读取电压和最优读取电压的图。
假设在本公开的一个实施例中使用闪存设备,在图15中示出了针对两个相邻状态Si和Si+1的阈值电压分布。然而,本领域技术人员将认识到,在假设电阻存储器设备的情况下,以下描述可以应用于相邻的电阻分布。
最优读取电压Vop是导致同时读出的数据比特之中的错误比特的最少数量的读取电压。最优读取电压Vop对应于谷,即,两个状态Si和Si+1的阈值电压分布的交叉点。当分布根据操作条件的变化而偏移和/或加宽时,预定读取电压与最优读取电压之间的差值增大。随着该差值增大,BER或读取失败的可能性也增大。
当预定电压被包括在第一电压范围Rl中时,可以通过具有硬判决(HD)的ECC解码来校正所读取的数据中的错误。当预定电压被包括在第二电压范围R2中时,可以通过具有软判决(SD)的ECC解码来校正所读取的数据中的错误。某些HD和SD的示例将参照图19和图20以一些额外的细节来描述。
当所读取的数据中的比特错误太多并且预定读取电压超出第二范围R2时,将无法使用适用的ECC解码获得有效数据。当通过基于预定读取电压执行先前的读取操作未获得有效数据时,可以执行谷搜索(valley search)操作来确定最优读取电压Vop。此后,可以使用最优读取电压来执行读取操作。这样的谷搜索操作和基于最优读取操作的读取操作可以被称为“电压补偿读取操作”。在一些实施例中,每个读取序列可以包括基于具有较高优先级的预定读取电压的读取操作、以及具有较低优先级的至少一个电压补偿读取操作,如图16、图17和图18所示。谷搜索操作花费太多时间并且使非易失性存储器设备和包括该非易失性存储器设备的存储系统的性能劣化。根据示例实施例,可以通过使用机器学习执行学习操作和推断操作来针对用户环境优化读取电平集和读取序列。
图16、图17和图18是示出根据示例实施例的读取序列的图。
图16、图17和图18中的读取序列是用于描述本公开的非限制性示例。
参照图16,第一读取序列RSEQ1可以包括根据各自的优先级排列的第一至第六读取操作ROP11~ROP16。第一读取操作ROP11、第二读取操作ROP12和第三读取操作ROP13可以基于预定读取电压,第四读取操作ROP14、第五读取操作ROP15和第六读取操作ROP16可以是电压补偿读取操作。
如上所述,可以在具有较长读取时间的读取操作之前执行具有较短读取时间的读取操作。换句话说,随着读取时间越短,读取操作的优先级可能越高。可以首先执行具有最短读取时间即第一读取时间tRD11的第一读取操作ROP11,可以在第一读取操作ROP11之后执行具有比第一读取时间tRD11长的第二读取时间tRD12的第二读取操作ROP12,可能最后执行具有最长读取时间tRD16的第六读取操作ROP16。
第一读取操作ROP11和第二读取操作ROP12中的每个可以是硬判决(HD)读取操作,其使用预定读取电压读出硬判决数据并基于硬判决数据执行ECC解码。第一读取操作ROP11可以是基于预定读取电压的快速读取操作DEF(F),第二读取操作ROP12可以是基于预定读取电压的正常读取操作DEF(N)。
第三读取操作ROP13可以是软判决(SD)读取操作,其使用基于预定读取电压的正常读取操作DEF(N)读出硬判决数据,使用围绕预定读取电压的多个读取电压提供硬判决数据的可靠性信息在,并基于硬判决数据和可靠性信息执行ECC解码。
第四读取操作ROP14、第五读取操作ROP15和第六读取操作ROP16可以将软判决(SD)与电压补偿读取操作结合,该电压补偿读取操作分别包括谷搜索操作VS1、VS2和VS3以及基于检测到的最优读取电压的读取操作。谷搜索操作VS1、VS2和VS3可以被各种各样地实现以具有不同的搜索时间和不同的读取准确性。
参照图17,第二读取序列RSEQ2可以包括根据各自的优先级排列的第一至第四读取操作ROP21~ROP24。第一读取操作ROP21和第二读取操作ROP22可以基于预定读取电压,第三读取操作ROP23和第四读取操作ROP24可以是电压补偿读取操作。
如上所述,可以在具有较长读取时间的读取操作之前执行具有较短读取时间的读取操作。可以首先执行具有最短读取时间即第一读取时间tRD21的第一读取操作ROP21,在第一读取操作ROP21之后执行具有比第一读取时间tRD21长的第二读取时间tRD22的第二读取操作ROP22,可能最后执行具有最长读取时间tRD24的第四读取操作ROP24。标记DEF(N)、HD、SD、VS2和VS3与参照图16所述相同。
参照图18,第三读取序列RSEQ3可以包括根据各自的优先级排列的第一读取操作ROP31、第二读取操作ROP32和第三读取操作ROP33。第一读取操作ROP31可以基于预定读取电压,第二读取操作ROP32和第三读取操作ROP33可以是电压补偿读取操作。
如上所述,可以在具有较长读取时间的读取操作之前执行具有较短读取时间的读取操作。可以首先执行具有最短读取时间即第一读取时间tRD31的第一读取操作ROP31,在第一读取操作ROP31之后执行具有比第一读取时间tRD31长的第二读取时间tRD32的第二读取操作ROP32,最后执行具有最长读取时间tRD33的最后一个读取操作ROP33。标记DEF(N)、SD、VS2和VS3与参照图16所述相同。
例如,可以针对相对较低的BER范围的操作条件设置第一读取序列RSEQ1,可以针对中间的BER范围的操作条件设置图17的第二读取序列RSEQ2,可以针对相对较高的BER范围的操作条件设置图18的第三读取序列RSEQ3。这样,可以通过设置分别对应于不同操作条件的多个读取序列并自适应地控制读取序列来改善非易失性存储器设备的性能。
图19是示出2比特软判决读取操作的示例的图,图20是示出3比特软判决读取操作的示例的图。
如图19所示,非易失性存储器设备可以执行2比特软判决读取操作。2比特软判决读取操作可以包括使用具有规则间隔的三个电压V1、V2和V3的三个读取操作。例如,三个电压V1、V2和V3可以包括:第一电压V1,具有用于在对应于数据“1”的第一状态Si与对应于数据“0”的第二状态Si+1之间进行区分的预定参考电平;第二电压V2,比第一电压V1低预定电平;以及第三电压V3,比第一电压V1高预定电平。在一些实施例中,通过使用具有参考电平的第一电压V1读取的数据710可以是通过硬判决读取操作读取的硬判决数据710,并且2比特软判决读取操作可以使用通过硬判决读取操作读取的硬判决数据710,而没有施加具有参考电平的第一电压V1。2比特软判决读取操作可以通过对经由使用第二电压V2读取的数据和经由使用第三电压V3读取的数据执行预定逻辑运算(例如XNOR运算730)(或编码)来生成具有针对硬判决数据710的可靠性信息的软判决数据720。软判决数据720的每个比特可以表示硬判决数据710的对应比特的可靠性程度。例如,软判决数据720的具有值“1”的比特可以表示硬判决数据710的对应比特具有强(S)可靠性,软判决数据720的具有值“0”的比特可以表示硬判决数据710的对应比特具有弱(W)可靠性。
如图20所示,非易失性存储器设备可以执行3比特软判决读取操作。3比特软判决读取操作可以包括使用具有规则间隔的七个电压V1、V2、V3、V4、V5、V6和V7的七个读取操作。例如,七个电压V1、V2、V3、V4、V5、V6和V7可以包括在2比特软判决读取操作中使用的三个电压V1、V2和V3,并且还可以包括低于第二电压V2的第四电压V4、在第二电压V2与第一电压V1之间的第五电压V5、在第一电压V1与第三电压V3之间的第六电压V6、以及高于第三电压V3的第七电压V7。在一些实施例中,通过使用第一电压V1读取的数据710可以是通过硬判决读取操作读取的硬判决数据710。通过使用第二电压V2和第三电压V3读取的数据720可以是与通过2比特软判决读取操作读取的软判决数据720对应的最高有效位(MSB)软判决数据720。3比特软判决读取操作可以通过对经由使用第四电压V4、第五电压V5、第六电压V6和第七电压V7读取的数据执行预定逻辑运算(例如XNOR运算750)(或编码)来生成最低有效位(LSB)软判决数据740。具有两个比特的每个软判决数据720和740可以表示硬判决数据710的对应比特的可靠性程度。例如,具有值“11”的每个软判决数据720和740可以表示硬判决数据710的对应比特具有非常强(VS)的可靠性,具有值“10”的每个软判决数据720和740可以表示硬判决数据710的对应比特具有强(S)可靠性,具有值“00”的每个软判决数据720和740可以表示硬判决数据710的对应比特具有弱(W)可靠性,具有值“01”的每个软判决数据720和740可以表示硬判定数据710的对应比特具有非常弱(VW)的可靠性。
尽管图19和20示出了两个相邻的状态Si和Si+1,但是可以执行图19和图20所示的2比特软判决读取操作和3比特软判决读取操作以在多个状态中的任何两个相邻的状态之间进行区分。非易失性存储器设备的存储器单元可以是被编程为一个2N状态以存储N比特数据的多层单元(MLC)。尽管图19和图20示出了存储两个或三个比特的MLC,但是示例实施例可以应用于存储四个或更多比特的MLC。
图21是示出根据示例实施例的控制非易失性存储器设备的操作的方法的流程图。
参照图21,可以执行如参照图14至图20所述确定的读取序列RSEQ(S10)。可以基于读取序列RSEQ和ECC解码的结果来收集训练数据TRD(S20)。可以积累指示ECC解码的结果的错误信息ERRINF(S30),并且可以基于积累的错误信息ERRINF来计算ECC解码失败的概率(S40)。当概率PRFL高于参考值TH时(S50:是),可以通过执行学习操作来更新机器学习模型MD(S60)。当概率PRFL不高于参考值TH(S50:否)时,可以维持机器学习模型MD。
这样,可以基于ECC解码失败的概率PRFL来确定执行学习操作的时机。在一些示例实施例中,失败的概率PRFL可以是硬决策读取操作的失败概率。在一些示例实施例中,可以如参照图8和图9所述地监视读取延迟,可以基于监视到的读取延迟来确定概率PRFL,该概率PRFL用于确定执行学习操作的时机。在一些示例实施例中,可以基于推断操作失败的概率来确定执行学习操作的时机。
图22是根据示例实施例的机器学习引擎。
参照图22,机器学习引擎21可以包括控制器CTRL、第一机器学习模块MLMDL1和第二机器学习模块MLMDL2。控制器可以驱动机器学习模块MLMDL以更新机器学习模型MD。
第一机器学习模块MLMDL1可以具有第一性能PFM1,并基于训练数据TRD来执行学习操作。第二机器学习模块MLMDL2可以具有比第一性能PFM1高的第二性能PFM2,并基于当前特征信息FTRINF_C来执行推断操作。通过这样的双重结构,即使在学习操作期间发生延迟,也可以不延迟要求高速的推断操作。
在一些示例实施例中,在第一机器学习模型MLMDL1中同时执行节点操作的节点的第一数量可以小于在第二机器学习模型MLMDL2中同时执行节点操作的节点的第二数量。在一些示例实施例中,第一机器学习模型MLMDL1的第一硬件性能(例如操作时钟信号的频率)可以低于第二机器学习模型MLMDL2的第二硬件性能。
图23和图24是示出根据示例实施例的包括在存储系统中的机器学习设备的框图。
参照图23和图24,可以减小训练数据TRD的大小,并且可以将大小减小的训练数据存储在缓冲存储器中。在下文中,与图1重复的描述可以被省略。
在一些示例实施例中,训练数据TRD可以被压缩,并且大小减小的训练数据TRD'可以存储在缓冲存储器BUFF中。压缩方案可以是无损压缩方案或有损压缩方案。在一些示例实施例中,训练数据TRD可以被归一化,并且大小减小的训练数据TRD'可以存储在缓冲存储器BUFF中。这里,“归一化”表示数据的值成比例地减小,使得值的范围可以变窄。这样,可以通过减少训练数据TRD并存储大小减小的训练数据TRD'来减少或高效地使用缓冲存储器BUFF的存储器容量。
参照图23,机器学习设备11可以包括机器学习引擎MLD、数据收集器DCLL、缓冲存储器BUFF、缩小单元DNSZ和扩大单元UPZ。缩小单元DNSZ可以压缩或归一化训练数据TRD以将大小减小的训练数据TRD'存储在缓冲存储器BUFF中。扩大单元UPSZ可以基于存储在缓冲存储器BUFF中的大小减小的训练数据TRD'来恢复训练数据TRD,并将训练数据TRD提供给机器学习引擎MLD。机器学习引擎MLD可以基于训练数据TRD来执行学习操作,并基于当前特征信息FTRINF_C来执行推断操作。
与图23的机器学习设备11相比,在图24的机器学习设备12中省略了扩大单元UPSZ。在这种情况下,机器学习引擎MLD可以基于大小减小的训练数据TRD'来执行学习操作。缩小单元DNSZ可以在推断操作期间提供大小减小的当前特征信息FTRINF_C',并且机器学习引擎MLD可以基于大小减小的当前特征信息FTRINF_C'来执行推断操作。
图25和图26是用于描述根据示例实施例的由机器学习设备驱动的深度学习神经网络结构的示例的图。
参照图25,一般的神经网络可以包括:输入层IL,多个隐藏层HL1、HL2、……、HLn,和输出层OL。
输入层IL可以包括i个输入节点x1、x2、……、xi,其中i是自然数。可以将其长度为i的特征信息FTRINF(例如矢量输入数据)输入到输入节点x1、x2、……、xi,使得特征信息FTRINF的每个元素被输入到输入节点x1、x2、……、xi中的相应节点。
多个隐藏层HL1、HL2、……、HLn可以包括n个隐藏层,其中n是自然数,并且可以包括多个隐藏节点h1 1、h1 2、h1 3、……、h1 m、h2 1、h2 2、h2 3、……、h2 m、hn 1、hn 2、hn 3、……、hn m。例如,隐藏层HL1可以包括m个隐藏节点h1 1、h1 2、h1 3、……、h1 m,隐藏层HL2可以包括m个隐藏节点h2 1、h2 2、h2 3、……、h2 m,隐藏层HLn可以包括m个隐藏节点hn 1、hn 2、hn 3、……、hn m,其中m是自然数。
输出层OL可以包括j个输出节点y1、y2、……、yj,其中j是自然数。输出节点y1、y2、……、yj中的每个可以对应于要被归类的类别中的相应类别。输出层OL可以针对每个类别输出与特征信息FTRINF相关联的输出值(例如,类别得分,或简称为得分)ODAT。输出层OL可以被称为全连接层,并且可以指示例如特征信息FTRINF对应于每个操作条件的概率。
图25所示的神经网络的结构可以由关于节点之间的被示出为线的分支(或连接)的信息以及分配给每个分支的加权值来表现。一个层内的节点可以不彼此连接,但是不同层的节点可以完全或部分地彼此连接。
每个节点(例如节点h1 1)可以接收先前节点(例如节点x1)的输出,可以对接收到的输出执行计算操作、计算或运算,并且可以输出计算操作、计算或运算的结果作为到下一个节点(例如节点h21)的输出。每个节点可以通过将输入应用于特定函数(例如非线性函数)来计算要输出的值。
一般,可以预先设置神经网络的结构,并且使用具有数据属于哪个类别的已知答案的数据来适当地设置用于节点之间的连接的加权值。具有已知答案的数据被称为“训练数据”,确定加权值的过程被称为“训练”。神经网络在训练过程期间“学习”。可独立训练的结构和加权值的组被称为“模型”,通过具有确定的加权值的模型预测输入数据属于哪个类别、然后输出预测值的过程被称为“测试”过程。
参照图26,卷积神经网络可以包括多个层CONV1、RELU1、CONV2、RELU2、POOL1、CONV3、RELU3、CONV4、RELU4、POOL2、CONV5、RELU5、CONV6、RELU6、POOL3和FC。
与一般的神经网络不同,卷积神经网络的每一层可以具有宽度、高度和深度的三个维度,因此输入到每一层的数据可以是具有宽度、高度和深度的三个维度的体数据。
卷积层CONV1、CONV2、CONV3、CONV4、CONV5和CONV6中的每个可以对当前特征信息FTRINF_C执行卷积操作。卷积操作表示这样的操作,其中基于具有加权值的掩码来处理数据并且通过将输入值与加权值相乘并且将总的相乘后的值相加来获得输出值。掩码可以被称为过滤器、窗口或内核。
RELU层RELU1、RELU2、RELU3、RELU4、RELU5和RELU6中的每个可以对输入执行修正线性单元操作。池化层POOL1、POOL2和POOL3中的每个可以沿宽度和高度的空间维度对输入的体数据执行下采样操作。通常,一个卷积层(例如CONV1)和一个RELU层(例如RELU1)可以在卷积神经网络中形成一对CONV/RELU层,成对的CONV/RELU层可以重复地排列在卷积神经网络中,并且池化层可以周期性地插入卷积神经网络,从而减小数据大小并提取数据特征。
输出层或全连接层FC可以针对每个类别输出当前特征信息FTRINF_C的结果(例如类别得分)。例如,当重复卷积操作和下采样操作时,可以将与当前特征信息FTRINF_C对应的输入的体数据转换成一维矩阵或向量。例如,全连接层FC可以表示当前特征信息FTRINF_C分别对应于多个读取电平集RLS1~RLS5的概率。这样,可以将与最高概率对应的读取电平集确定为多个读取电平集RLS1~RLS5之中的最优读取电平集。
图27是示出包括在神经网络中的节点的示例和由神经网络中的节点ND执行的示例节点操作的图。
当将N个输入a1~an提供给节点ND时,节点ND可以分别将n个输入a1~an和对应的n个权重w1~wn相乘,可以对通过乘法获得的n个值求和,可以将求和值加上偏移量“b”,并且可以通过将向加上了偏移量“b”的值应用于特定函数“σ”来生成一个输出值。可以基于训练数据TRD来执行学习操作以更新神经网络中的所有节点。
图28是示出根据示例实施例的存储系统的图。
参照图28,计算系统2600包括处理器2610、存储器设备2620、用户接口2630、总线2650和存储系统2660。在一些实施例中,计算系统2600还可以包括调制解调器2640,诸如基带芯片组。
处理器2610可以执行特定的计算或任务。例如,处理器2610可以是微处理器、中央处理单元(CPU)、数字信号处理器等。处理器2610可以经由总线2650(诸如地址总线、控制总线和/或数据总线)联接到存储器设备2620。此外,处理器2610可以联接到诸如外围组件互连(PCI)总线的扩展总线,并且可以控制包括至少一个输入设备(诸如键盘、鼠标、触摸屏等)和至少一个输出设备(打印机、显示设备等)的用户接口2630。调制解调器2640可以与外部设备进行有线或无线通信。
存储系统2660可以包括存储控制器SCON 2670和非易失性存储器设备NVM 2680。存储控制器2670可以包括如上所述的机器学习设备ML,以根据示例实施例执行控制非易失性存储器设备的操作的方法。
如上所述,根据示例实施例的控制非易失性存储器设备的操作的方法和存储系统可以通过在存储系统中收集训练数据并基于训练数据执行学习操作和推断操作来为各个用户环境提供优化的操作条件。
本公开可以应用于包括非易失性存储器设备的任何电子设备和系统。例如,本公开可以应用于诸如以下的系统:存储器卡、固态驱动器(SSD)、嵌入式多媒体卡(eMMC)、通用闪存(UFS)、移动电话、智能电话、个人数字助理(PDA)、便携式多媒体播放器(PMP)、数码相机、便携式摄像机、个人计算机(PC)、服务器计算机、工作站、膝上型计算机、数字电视、机顶盒、便携式游戏主机、导航系统、可穿戴设备、物联网(IoT)设备、万物互联(IoE)设备、电子书、虚拟现实(VR)设备、增强现实(AR)设备等。
在本领域中传统的是,可以按执行所描述的一个或多个功能的块来描述和示出实施例。在这里可称为单元或模块等的这些块由模拟和/或数字电路(诸如逻辑门、集成电路、微处理器、微控制器、存储器电路、无源电子组件、有源电子组件、光学组件、硬接线电路等)物理地实现,并且可以可选地由固件和/或软件驱动。电路可以例如体现在一个或更多个半导体芯片中,或者在诸如印刷电路板等的基板支撑件上。构成块的电路可以由专用硬件实现,或由处理器(例如一个或更多个被编程的微处理器和相关电路)实现,或由执行块的一些功能的专用硬件和执行块的其他功能的处理器的组合实现。在不脱离本公开的范围的情况下,实施例的每个块可以在物理上被分成两个或更多个相互作用且离散的块。同样地,在不脱离本公开的范围的情况下,实施例的块可以物理地组合成更复杂的块。实施例的方面可以通过存储在非暂时性存储介质中并由处理器运行的指令来实现。
前述内容是对示例实施例的说明,并且将不被解释为对其的限制。尽管已经描述了一些示例实施例,但是本领域技术人员将容易理解,在实质上不脱离本公开的情况下,可以在示例实施例中进行许多修改。
Claims (20)
1.一种使用机器学习来控制非易失性存储器设备的操作的方法,该方法包括:
通过使用机器学习模型执行推断操作来确定非易失性存储器设备的操作条件;
收集基于特征信息和错误信息生成的训练数据,错误信息指示非易失性存储器设备的错误校正码(ECC)解码的结果;以及
通过基于训练数据执行学习操作来更新机器学习模型。
2.根据权利要求1所述的方法,其中,特征信息包括非易失性存储器设备的物理地址和指示与该物理地址对应的存储器单元的阈值电压分布的单元计数数据。
3.根据权利要求1所述的方法,其中,错误信息包括ECC解码失败的概率和由ECC解码确定的错误数中的至少之一。
4.根据权利要求1所述的方法,其中,确定操作条件包括:
提供多个读取电平集,每个读取电平集对应于用于非易失性存储器设备的读取操作的读取电压的电平的组合;以及
通过基于作为机器学习模型的输入的当前特征信息执行推断操作来确定所述多个读取电平集之中的与当前特征信息对应的最优读取电平集,
其中,最优读取电平是导致同时读出的数据比特之中的错误比特的最少数量的读取电平。
5.根据权利要求4所述的方法,其中,分别相对于包括在非易失性存储器设备中的多个存储器平面中的每个或相对于包括在非易失性存储器设备中的多个存储器块中的每个确定最优读取电平集。
6.根据权利要求1所述的方法,其中,确定操作条件包括:
相对于包括在非易失性存储器设备中的多个存储器块中的每个,监视指示存储器块中的存储器单元的阈值电压分布的当前单元计数数据;以及
通过基于作为机器学习模型的输入的当前单元计数数据执行推断操作来确定与所述多个存储器块对应的多个可靠性等级,每个可靠性等级指示存储在每个存储器块中的数据的寿命。
7.根据权利要求6所述的方法,还包括基于所述多个可靠性等级相对于存储在所述多个存储器块中的数据执行重写操作。
8.根据权利要求6所述的方法,其中,周期性地执行监视当前单元计数数据以及确定所述多个可靠性等级。
9.根据权利要求1所述的方法,其中,确定操作条件包括:
设置非易失性存储器设备的多个读取序列;以及
通过基于作为机器学习模型的输入的当前特征信息执行推断操作来确定所述多个读取序列之中的与当前特征信息对应的最优读取序列。
10.根据权利要求1所述的方法,其中,学习操作由具有第一性能的第一机器学习模块执行,并且推断操作由具有高于第一性能的第二性能的第二机器学习模块执行。
11.根据权利要求10所述的方法,其中,在第一机器学习模型中同时执行节点操作的节点的第一数量小于在第二机器学习模型中同时执行节点操作的节点的第二数量。
12.根据权利要求1所述的方法,其中,收集训练数据包括减小训练数据的大小以将大小减小的训练数据存储在缓冲存储器中。
13.根据权利要求12所述的方法,其中,减小训练数据的大小包括压缩训练数据。
14.根据权利要求12所述的方法,其中,减小训练数据的大小包括归一化训练数据。
15.根据权利要求1所述的方法,还包括基于推断操作失败的概率和ECC解码失败的概率来确定执行学习操作的时机。
16.一种使用机器学习来控制非易失性存储器设备的操作的方法,该方法包括:
提供多个读取电平集,每个读取电平集对应于用于非易失性存储器设备的读取操作的读取电压的电平的组合;
通过基于作为机器学习模型的输入的当前特征信息执行推断操作来确定所述多个读取电平集之中的与当前特征信息对应的最优读取电平集;
收集基于特征信息和错误信息生成的训练数据,特征信息包括非易失性存储器设备的物理地址和指示与该物理地址对应的存储器单元的阈值电压分布的单元计数数据,错误信息指示非易失性存储器设备的错误校正码(ECC)解码的结果;
通过基于训练数据执行学习操作来更新机器学习模型;以及
基于推断操作失败的概率和ECC解码失败的概率来确定执行学习操作的时机。
17.一种存储系统,包括:
非易失性存储器设备;以及
存储控制器,配置为控制非易失性存储器设备,该存储控制器包括:
数据收集器,配置为收集基于特征信息和错误信息生成的训练数据,错误信息指示非易失性存储器设备的错误校正码(ECC)解码的结果;
缓冲存储器,配置为存储训练数据;以及
机器学习引擎,配置为通过使用机器学习模型执行推断操作来确定非易失性存储器设备的操作条件,并通过基于训练数据执行学习操作来更新机器学习模型。
18.根据权利要求17所述的存储系统,其中:
特征信息包括非易失性存储器设备的物理地址和指示与该物理地址对应的存储器单元的阈值电压分布的单元计数数据,以及
错误信息包括ECC解码失败的概率和由ECC解码确定的错误数中的至少之一。
19.根据权利要求17所述的存储系统,其中,机器学习引擎通过基于作为机器学习模型的输入的当前特征信息执行推断操作来确定多个读取电平集之中的与当前特征信息对应的最优读取电平集。
20.根据权利要求17所述的非易失性存储器设备,其中,机器学习引擎包括:
第一机器学习模块,配置为以第一性能来执行学习操作;以及
第二机器学习模块,配置为以高于第一性能的第二性能来执行推断操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190175273A KR20210082875A (ko) | 2019-12-26 | 2019-12-26 | 머신 러닝을 이용한 비휘발성 메모리 장치의 동작 제어 방법 및 스토리지 시스템 |
KR10-2019-0175273 | 2019-12-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113051098A true CN113051098A (zh) | 2021-06-29 |
Family
ID=76310506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011260929.XA Pending CN113051098A (zh) | 2019-12-26 | 2020-11-12 | 使用机器学习控制非易失性存储器设备的操作的方法和存储系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11189358B2 (zh) |
KR (1) | KR20210082875A (zh) |
CN (1) | CN113051098A (zh) |
DE (1) | DE102020119694A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021149995A (ja) * | 2020-03-23 | 2021-09-27 | キオクシア株式会社 | メモリシステム |
US11217320B1 (en) | 2020-08-13 | 2022-01-04 | Micron Technology, Inc. | Bin placement according to program-erase cycles |
KR20220058278A (ko) * | 2020-10-30 | 2022-05-09 | 삼성전자주식회사 | 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 동작 방법 |
KR102460717B1 (ko) | 2021-08-17 | 2022-10-31 | 삼성전자주식회사 | 최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 |
KR102491652B1 (ko) | 2021-09-17 | 2023-01-27 | 삼성전자주식회사 | 산포 타입을 결정하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법 |
EP4160603A1 (en) * | 2021-10-01 | 2023-04-05 | Samsung Electronics Co., Ltd. | Storage controller determining error count, method of operating the same, and method of operating storage device including the same |
KR102491655B1 (ko) | 2021-10-01 | 2023-01-27 | 삼성전자주식회사 | 에러 카운트를 결정하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9251019B2 (en) | 2012-05-29 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system and method for managing solid-state retirement |
US9569120B2 (en) * | 2014-08-04 | 2017-02-14 | Nvmdurance Limited | Adaptive flash tuning |
TWI510916B (zh) | 2015-02-05 | 2015-12-01 | 緯創資通股份有限公司 | 儲存裝置壽命監控系統以及其儲存裝置壽命監控方法 |
KR102643916B1 (ko) * | 2016-10-18 | 2024-03-08 | 삼성전자주식회사 | 스토리지 장치, 메모리 시스템, 및 그것의 읽기 전압 결정 방법 |
JP6386523B2 (ja) | 2016-12-15 | 2018-09-05 | ファナック株式会社 | Nandフラッシュメモリの寿命を予測する機械学習装置、寿命予測装置、数値制御装置、生産システム、及び機械学習方法 |
US11049009B2 (en) | 2017-06-12 | 2021-06-29 | Western Digital Technologies, Inc. | Identifying memory block write endurance using machine learning |
US10289341B2 (en) | 2017-06-30 | 2019-05-14 | Western Digital Technologies, Inc. | Operating parameter offsets in solid state memory devices |
US10210926B1 (en) | 2017-09-15 | 2019-02-19 | Pure Storage, Inc. | Tracking of optimum read voltage thresholds in nand flash devices |
KR102353405B1 (ko) | 2017-09-19 | 2022-01-19 | 삼성전자주식회사 | 특성 데이터 전처리 시스템, 장치, 방법 및 이를 이용한 메모리 제어 시스템 |
US10394706B2 (en) * | 2017-11-02 | 2019-08-27 | Western Digital Technologies, Inc. | Non-volatile storage with adaptive command prediction |
US11610116B2 (en) * | 2018-12-31 | 2023-03-21 | SK Hynix Inc. | Storage device performance optimization using deep learning |
US10977125B2 (en) * | 2019-06-06 | 2021-04-13 | Western Digital Technologies, Inc. | Adaptive usage of irregular code schemas based on specific system level triggers and policies |
-
2019
- 2019-12-26 KR KR1020190175273A patent/KR20210082875A/ko not_active Application Discontinuation
-
2020
- 2020-07-02 US US16/919,187 patent/US11189358B2/en active Active
- 2020-07-27 DE DE102020119694.6A patent/DE102020119694A1/de active Pending
- 2020-11-12 CN CN202011260929.XA patent/CN113051098A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102020119694A1 (de) | 2021-07-01 |
KR20210082875A (ko) | 2021-07-06 |
US11189358B2 (en) | 2021-11-30 |
US20210202028A1 (en) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11189358B2 (en) | Method of controlling operation of nonvolatile memory device using machine learning and storage system | |
KR101979734B1 (ko) | 메모리 장치의 독출 전압 제어 방법 및 이를 이용한 데이터 독출 방법 | |
CN109428606B (zh) | 具有ldpc解码器的存储器系统及其操作方法 | |
CN106257594B (zh) | 读取干扰收回策略 | |
US11960989B2 (en) | Read threshold estimation systems and methods using deep learning | |
US11749354B2 (en) | Systems and methods for non-parametric PV-level modeling and read threshold voltage estimation | |
KR20140113190A (ko) | 비휘발성 메모리 장치의 llr 최적화 방법 및 비휘발성 메모리 장치의 에러 정정 방법 | |
CN110444242B (zh) | 有基于深度学习的干扰校正能力的存储器系统及操作方法 | |
US11514999B2 (en) | Systems and methods for parametric PV-level modeling and read threshold voltage estimation | |
US11769556B2 (en) | Systems and methods for modeless read threshold voltage estimation | |
US11769555B2 (en) | Read threshold voltage estimation systems and methods for parametric PV-level modeling | |
CN111540393B (zh) | 用于基于字线分组的读取操作的存储器系统和方法 | |
US11393539B2 (en) | Systems and methods for determining change of read threshold voltage | |
US11335417B1 (en) | Read threshold optimization systems and methods using model-less regression | |
KR20220008058A (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
US11854629B2 (en) | System and method for non-parametric optimal read threshold estimation using deep neural network | |
US10938419B2 (en) | Encoding method and system for memory device including QLC cells | |
CN114464241A (zh) | 用于读取错误恢复的系统和方法 | |
US11635916B2 (en) | Workload-aware memory controller based on compact workload representation and method thereof | |
US11265021B2 (en) | Apparatus and method for error recovery in memory system | |
US11366718B2 (en) | Optimal read bias tracking system and method thereof | |
CN114255807A (zh) | 以先前读取为条件的读取重试阈值优化系统和方法 | |
US20220253681A1 (en) | Compact workload representation of memory system | |
US20240086101A1 (en) | System and method for history-based non-parametric channel information prediciton using a deep neural network | |
US20210367616A1 (en) | Descrambler for memory systems and method thereof |
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 |