CN111538458B - 使用深度学习的存储装置性能优化 - Google Patents
使用深度学习的存储装置性能优化 Download PDFInfo
- Publication number
- CN111538458B CN111538458B CN201911373559.8A CN201911373559A CN111538458B CN 111538458 B CN111538458 B CN 111538458B CN 201911373559 A CN201911373559 A CN 201911373559A CN 111538458 B CN111538458 B CN 111538458B
- Authority
- CN
- China
- Prior art keywords
- neural network
- read
- deep neural
- memory
- operating conditions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/1012—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 codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Read Only Memory (AREA)
Abstract
本申请公开一种使用深度神经网络引擎优化存储器装置的读取阈值的计算机实现的方法,该方法包括:在导致存储器装置中的读取错误的第一组操作条件下,使用施加到该存储器装置的读取阈值电压组从该存储器装置读取数据;在第一组操作条件下使用该读取阈值电压组产生标记训练数据集;基于该存储器装置的特性,确定深度神经网络引擎的层的数量、每层的大小以及输入节点和输出节点的数量;使用标记训练数据集来训练深度神经网络引擎;以及使用经训练的深度神经网络引擎来计算在第二组操作条件下的读取阈值电压值。
Description
相关申请的交叉引用
本专利文献要求于2018年12月31日提交的标题为“使用深度学习的存储装置性能优化”的申请号为62/787,182的美国临时专利申请的优先权和权益。上述专利申请的全部内容作为本专利文件的公开内容的一部分通过引用并入本文。
技术领域
本专利文献涉及半导体存储器和包括该半导体存储器的数据存储装置。
背景技术
包括半导体存储器的数据存储装置将信息存储在半导体存储器单元的阵列中。半导体制造商持续开发支持高容量数据存储装置的新技术,包括三维(3D)闪速存储器堆叠技术,该堆叠技术可以垂直堆叠多个存储器单元层,以及多层单元(MLC)编程技术,该多层单元编程技术使得每个存储器单元能够存储两个或多个信息位。然而,由于MLC存储器单元的密集的阈值电压分布以及密集的存储器阵列中相邻存储器单元之间的干扰,每个存储器单元存储的位的数量增加以及存储器单元阵列的密度增加可能使数据存储装置更易于出错。
发明内容
公开了与使用深度学习来识别在数据存储装置的存储器单元阵列中可能发生的阈值电压偏移的特定的、潜在的风险的数据存储优化技术有关的方法、装置和应用。
所公开技术的一个或多个实施例涉及对导致基于闪速存储器的数据存储固态驱动器(SSD)装置中的读取错误的操作条件的分类以训练一种或多种深度学习算法,然后修改读取阈值。
在所公开技术的实施例中,一种使用深度神经网络引擎来优化存储器装置的读取阈值的计算机实现的方法,包括:在导致存储器装置中的读取错误的第一组操作条件下,使用施加到该存储器装置的读取阈值电压组来从该存储器装置读取数据;在第一组操作条件下使用该读取阈值电压组来产生标记训练数据集;基于该存储器装置的特性,确定深度神经网络引擎的层的数量、每层的大小以及输入节点和输出节点的数量;使用标记训练数据集训练深度神经网络引擎;以及使用经训练的深度神经网络引擎来计算在第二组操作条件下的读取阈值电压值。
在所公开技术的另一实施例中,一种使用深度神经网络引擎来优化存储器装置的读取阈值的计算机实现的方法,包括:在导致存储器装置中的读取错误的第一组操作条件的有限组合下,使用施加到该存储器装置的读取阈值电压组来测量该存储器装置中的数据;找到在第一组操作条件的有限组合下的适当读取阈值电压,以产生标记训练数据集;基于该存储器装置的特征,判定深度神经网络引擎的层的数量和每层的大小;配置深度神经网络引擎的层以及输入节点和输出节点;使用标记训练数据集训练深度神经网络引擎;以及使用经训练的深度神经网络引擎来基于较大的操作条件组计算在读取阈值组下的读取阈值电压值,以产生该存储器装置的最优性能。
在所公开技术的另一实施例中,一种***包括:存储器,存储优化数据存储***中的存储器装置的读取阈值电压的可执行指令;以及处理器,与存储器通信以从该存储器读取可执行指令,以:在导致该存储器装置中的读取错误的第一组操作条件下,使用施加到该存储器装置的读取阈值电组压,从该存储器装置读取数据;在第一组操作条件下,使用该读取阈值电压组生成标记训练数据集;基于该存储器装置的特性,确定深度神经网络引擎的层的数量、每层的大小以及输入节点和输出节点的数量;使用标记训练数据集训练深度神经网络网络引擎;以及使用经训练的深度神经网络引擎来计算在第二组操作条件下的读取阈值电压值。
在所公开技术的另一实施例中,一种***包括:存储器,该存储器存储优化数据存储***中的存储器装置的读取阈值电压的可执行指令,以及处理器,该处理器与存储器通信以从该存储器读取可执行指令,用以:在导致存储器装置中的读取错误的第一组操作条件下,使用施加到该存储器装置的读取阈值电压组来测量该存储器装置中的数据;找到在第一组操作条件下的读取阈值电压以产生标记训练数据集;基于该存储器装置的特性,判定深度神经网络引擎的层的数量和每层的大小;配置深度神经网络引擎的层以及输入节点和输出节点;使用标记训练数据集训练深度神经网络引擎;以及使用经训练的深度神经网络引擎来计算在第二组操作条件下的读取阈值电压值。
在所公开技术的实施例中,一种使用深度神经网络引擎来优化存储器装置的读取阈值的计算机实现的方法,包括:在导致存储器装置中的读取错误的操作条件的有限组合下,使用施加到存储器装置的读取阈值电压组来测量该存储器装置中的数据;找到在操作条件的有限组合下的适当读取阈值以产生标记训练数据集;基于该存储器装置的特性,判定深度神经网络引擎的层的数量和每层的大小;配置深度神经网络引擎的层以及输入节点和输出节点;使用标记训练数据集训练深度神经网络引擎;以及使用经训练的深度神经网络引擎基于较大的操作条件组计算读取阈值组,以产生该存储器装置的最优性能。
在所公开技术的另一实施例中,一种***包括:存储器,存储用于优化数据存储***中的存储器装置的读取阈值电压的可执行指令;以及处理器,与存储器通信以从该存储器读取可执行指令,以:在导致存储器装置中的读取错误的操作条件的有限组合下,使用施加到该存储器装置的读取阈值电压组,测量存储器装置中的数据;找到在操作条件的有限组合下的合适读取阈值电压以产生标记训练数据集;根据该存储器装置的特性,判定深度神经网络引擎的层的数量和每层的大小;配置深度神经网络引擎的层以及输入节点和输出节点;使用标记训练数据集训练深度神经网络引擎;以及使用经训练的深度神经网络引擎基于较大的操作条件组计算读取阈值组,以产生存储器装置的最优性能。
该专利文献中描述的主题可以以提供下列特征中的一个或多个的特定方式来实施。
附图说明
图1是基于所公开技术的一些实施例来实施的存储器***的示例的框图。
图2示出基于所公开技术的一些实施例来实施的存储器单元阵列的示例。
图3示出多层单元装置中的阈值电压分布曲线的示例。
图4示出理想阈值电压分布曲线的示例和失真的阈值电压分布曲线的示例。
图5示出NAND闪速存储器中的单元间干扰的示例。
图6通过将正常阈值电压分布和偏移的阈值电压分布来示出在NAND闪速存储器中的保留错误的示例。
图7示出基于所公开技术的一些实施例来实施的用于数据存储装置性能优化的深度神经网络架构的示例。
图8示出包括输入神经元、隐藏神经元、输出神经元和突触层的计算神经网络的示例配置。
图9示出基于所公开技术的一些实施例来实施的用于数据存储优化的深度神经网络的训练方法的示例。
图10示出基于所公开技术的一些实施例来实施的用于数据存储优化的深度神经网络的推断方法的示例。
图11示出基于所公开技术的一些实施例来实施的用于数据存储优化的深度神经网络***的示例。
图12示出基于所公开技术的一些实施例来实施的数据存储装置的示例。
图13示出从常规读取阈值、理论上的最优读取阈值和使用深度神经网络引擎获得的最优读取阈值获得的性能数据之间的性能比较。
具体实施方式
在本专利文献的上下文中,与阈值或存储器***性能结合使用的词语“最优”、“优化”或“最佳”指示为存储器装置提供比现有的阈值或条件更好的性能的值或条件(例如,更高的可靠性、检测到的错误更少,等)。从这个意义上说,词语“最佳”、“优化”或“最优”可能传达也可能不传达存储器装置所能达到的最优性能。
图1是可以在所公开技术的一些实施例中实施的存储器***100的示例的框图。存储器***100包括存储器模块110,该存储器模块110可以用于存储供其他电子装置或***使用的信息。存储器***100可以并入(例如,位于电路板上)其他电子装置和***中。可选地,存储器***100可以被实施为外部存储器装置,诸如USB闪存驱动器和固态驱动器(SSD)。
在存储器***100中包括的存储器模块110可以包括存储器区域(例如,存储器阵列)102、104、106和108。存储器区域102、104、106和108中的每个可以包括在单个存储器管芯或多个存储器管芯中。存储器管芯可以包括在集成电路(IC)芯片中。
存储器区域102、104、106和108中的每个包括多个存储器单元。可以以存储器单元组(memory unit)为基础执行读取操作、编程操作或擦除操作。因此,每个存储器单元组可以包括预定数量的存储器单元。存储器区域102、104、106或108中的存储器单元可以包括在单个存储器管芯或多个存储器管芯中。
存储器区域102、104、106和108中的每个中的存储器单元可以以行和列布置在存储器单元组中。存储器单元组中的每个可以是物理单元组。例如,多个存储器单元的组可以形成存储器单元组。存储器单元组中的每个也可以是逻辑单元组。例如,存储器单元组可以是可以由诸如存储库(bank)地址、块地址和基于页面的地址的唯一地址来标识的存储库、存储块或存储页面。在读取或写入操作期间,与特定存储器单元相关联的唯一地址可用于访问该特定存储器单元组。基于该唯一地址,可以将信息写入到该特定存储器单元组中的一个或多个存储器单元或者从该特定存储器单元组中的一个或多个存储器单元中检索信息。
存储器区域102、104、106和108中的存储器单元可以包括非易失性存储器单元。非易失性存储器单元的示例包括闪速存储器单元、相变存储器(PRAM)单元、磁阻随机存取存储器(MRAM)单元或其他类型的非易失性存储器单元。在存储器单元被配置为NAND闪速存储器单元的示例实施方式中,可以基于页面来执行读取或写入操作。然而,基于块对NAND闪速存储器执行擦除操作。
非易失性存储器单元中的每个可以被配置为单层单元(SLC)或多层存储器单元。单层单元可以在每单元存储一个信息位。多层存储器单元可以每单元存储多于一个信息位。例如,存储器区域102、104、106和108中的每个可以被配置为每单元存储两个信息位的多层单元(MLC)、配置为每单元存储三个信息位的三层单元(TLC)以在、或配置为每单元存储四个信息位的四层单元(QLC)。在另一示例中,存储器区域111中的每个可以被配置为存储至少一个信息位(例如,一个信息位或多个信息位),并且存储器区域112中的每个可以被配置为存储多于一个信息位。
如图1所示,存储器***100包括控制器模块120。控制器模块120包括与存储器模块110通信的存储器接口121、与主机(未示出)通信的主机接口126、执行固件级别代码的处理器124、以及临时或永久存储可执行固件/指令以及相关信息的高速缓存和存储器122和123。在一些实施方式中,控制器模块120可以包括对存储在存储器模块110中的信息执行错误校正操作的错误校正引擎125。错误校正引擎125可以被配置为检测/校正单个位错误或多个位错误。在另一实施方式中,错误校正引擎125可以位于存储器模块110中。
主机可以是包括一个或多个处理器的装置或***,操作该一个或多个处理器以从存储器***100检索数据或者将数据存储或写入存储器***100。在一些实施方式中,主机的示例可以包括个人计算机(PC)、便携式数字装置、数字照相机、数字多媒体播放器、电视和无线通信装置。
在一些实施方式中,控制器模块120还可以包括与主机通信的主机接口126。主机接口126可以包括符合包括但不限于下列的主机接口规范中的至少一个的组件:串行高级技术附件(SATA)、串列小型计算机***接口(SAS)规范、高速***组件互连(PCIe)。
图2示出可以在所公开技术的一些实施例中使用的所实施的存储器单元阵列的示例。
在一些实施方式中,存储器单元阵列可以包括被划分成许多块的NAND闪速存储器阵列,并且每个块包括一定数量的页面。每个块包括多个存储器单元串,并且每个存储器单元串包括多个存储器单元。
在存储器单元阵列是NAND闪速存储器阵列的一些实施方式中,基于页面执行读取操作和写入(编程)操作,基于块执行擦除操作。在对块中包括的任何页面执行编程操作之前,必须同时擦除相同的块中的所有存储器单元。在一个实施方式中,NAND闪速存储器可以使用偶数/奇数位线结构。在另一实施方式中,NAND闪速存储器可以使用全位线结构。在偶数/奇数位线结构中,偶数和奇数位线沿着每条字线交错并且被交替访问,使得偶数和奇数位线中的每对可以共享诸如页面缓冲器的***电路。在全位线结构中,同时访问所有位线。
在MLC技术中,每个存储器单元可以被编程为属于多种阈值电压电平分布中的一种分布。在理想情况下,每个存储器单元的阈值电压值对应于非重叠阈值电压分布窗口。由于某些存储器单元被编程为相同的值,所以虽然这些存储器单元的晶体管的准确阈值电压可能不同,但是它们的阈值电压分布落入相同的阈值电压分布窗口。
图3示出多层单元装置中的阈值电压分布曲线的示例,其中将每个编程/擦除状态的单元数量绘制为阈值电压的函数。如图3中所示,阈值电压分布曲线包括具有阈值电压最低的擦除状态(表示为“ER”并且对应于“11”)以及读取电压处于(由虚线表示的)状态之间的三个编程状态(分别表示为“P1”、“P2”和“P3”,分别对应于“01”、“00”和“10”)。在一些实施例中,由于存储器阵列的材料属性上的差异,编程/擦除状态的阈值电压分布中的每个具有有限的宽度。
在将多于一个的数据位写入存储器单元中时,由于相邻分布之间的距离减小,因此需要对存储器单元的阈值电压电平进行精细布置。这是通过使用增量步进脉冲编程(ISPP)来实现的,即,使用编程并验证的方法,利用施加到字线的阶梯编程电压对相同字线上的存储器单元进行重复编程。每个编程状态与在验证操作中使用的验证电压相关联,并且设置每个阈值电压分布窗口的目标位置。
当使用特定电压参考值,诸如读取阈值(即,读取电压电平)对存储器阵列执行读取操作时,存储器单元的电荷电平(例如,存储器单元的晶体管的阈值电压电平)与一个或多个电压参考值(也称为“读取电压电平”或“读取阈值”)进行比较,以确定各个存储器单元的状态。例如,当特定读取阈值被施加到存储器阵列时,具有高于该电压参考值的阈值电压电平的存储器单元被导通并且检测为“导通”单元,而具有低于该电压参考值的阈值电压电平的存储器单元被关断并且检测为“关断”单元。因此,每个读取阈值被布置在与不同编程状态对应的相邻阈值电压分布窗口之间,使得每个读取阈值可以通过导通或关断存储器单元晶体管将这些编程状态区分开。
当使用MLC技术对数据存储装置中的存储器单元执行读取操作时,存储器单元的阈值电压电平与多于一个的读取阈值电平进行比较,以确定各个存储器单元的状态。可能由阈值电压分布失真或重叠而导致读取错误。理想的存储器单元阈值电压分布可能由于例如编程和擦除(P/E)周期、单元间干扰以及数据保留错误而显著失真或重叠。例如,随着编程/擦除周期增加,不同编程状态的相邻阈值电压分布之间的裕度减小,最后这些分布开始重叠。因此,具有落入相邻分布的重叠范围内的阈值电压的存储器单元可能在被编程时被读取成不同于原始目标值的值,从而导致读取错误。在大多数情况下,可以通过使用错误校正码(ECC)来管理这种读取错误。当对读取操作的位错误的数量超过数据存储装置的ECC校正能力时,读取操作失败。
某些情况或操作条件,诸如随时间的电荷泄漏和由于使用而导致的装置损耗,可能会导致阈值电压偏移。例如,若干“关断”单元可能由于阈值电压偏移而导致高于读取阈值的阈值电压,所以这种阈值电压偏移会产生读取错误。各种情况可能导致产生读取错误的阈值电压偏移。例如,低耐久性的存储器装置会比高耐久性的存储器装置产生更多的读取错误。诸如存储器阵列的编程/擦除周期的数量增加和数据存储装置的运行温度的操作条件可能引起阈值电压偏移。还可以考虑读取干扰和存储器芯片或存储块的位置,以确定是否可能发生阈值电压偏移。
闪速存储器的耐久性可以由保证闪速存储器能够成功执行编程/擦除操作的最大编程/擦除操作量来表示。在每个存储器单元变得可能不可用之前,只能对该存储器单元进行有限次数的编程和擦除。在所公开技术的一些实施例中,闪速存储器的耐久性可以由每天编程/擦除操作的最大迭代次数来表示。闪速存储器的耐久性可能受诸如高存储器密度的结构问题和诸如高编程电压的操作条件的影响。
数据保留可以指与存储器单元能够在多长时间内维持正确编程状态有关的操作条件。数据保留可能根据操作温度和编程/擦除周期的数量而变化。在特定情况下,高温和大的编程/擦除操作迭代次数会降低数据保留能力。
读取干扰表示一种从闪存单元读取数据可能导致相同存储块中的其他未读取单元的阈值电压偏移到不同(例如更高)的值的现象。虽然单个阈值电压偏移很小,但是当随着时间的推移执行读取操作时,阈值电压偏移最终变大到足以改变存储器单元的状态。
图4示出理想阈值电压分布曲线410的示例和失真的阈值电压分布曲线420的示例。纵轴表示存储器单元的数量,存储器单元具有在横轴上表示的特定阈值电压。
对于n位多层单元NAND闪速存储器,每个单元的阈值电压可以被编程为2n个可能值。在理想的多层单元NAND闪速存储器中,每个值对应于非重叠阈值电压窗口。
闪速存储器P/E周期对单元晶体管的电荷撷取层的浮栅的隧道氧化物造成破坏,这导致阈值电压偏移,从而逐渐降低存储装置噪声裕度。随着P/E周期增加,不同编程状态的相邻分布之间的裕度减小,最后这些分布开始重叠。具有被编程在相邻分布的重叠范围内的阈值电压的存储器单元中存储的数据位可能被误判为不同于原始目标值的值。
图5示出NAND闪速存储器中的单元间干扰的示例。单元间干扰也会使闪存单元的阈值电压失真。一个存储器单元晶体管的阈值电压偏移可以通过干扰单元与牺牲单元之间的寄生电容耦合效应,来影响该存储器单元晶体管的相邻存储器单元晶体管的阈值电压。单元间干扰的量可能受NAND闪速存储器位线结构影响。在偶数/奇数位线结构中,一个字线上的存储器单元交替地连接到偶数和奇数位线,并且在相同字线中的奇数单元之前对偶数单元进行编程。因此,偶数单元和奇数单元经历不同量的单元间干扰。全位线结构中的单元比偶数/奇数位线结构中的偶数单元受到更少的单元间干扰,并且全位线结构可以高效地支持高速电流感测,以提高存储器读取和验证速度。
图5中的虚线表示所考虑的单元的P/E状态(在编程干扰之前)的正常分布,并且“相邻状态值”表示已被编程到相邻状态的值。如图5所示,如果将相邻状态被编程为P1,则所考虑的单元的阈值电压分布偏移特定量。然而,如果相邻状态被编程为具有比P1跟高的阈值电压的P2,则与相邻状态为P1相比,这导致更大的偏移。类似地,当相邻状态被编程为P3时,阈值电压分布的偏移最大。
图6通过将正常阈值电压分布和偏移的阈值电压分布进行比较,来示出NAND闪速存储器中的保留错误的示例。存储在NAND闪速存储器中的数据往往会随着时间的推移而损坏,这被称为数据保留错误。保留错误是由存储在单元晶体管的浮栅或电荷撷取层中的电荷丢失引起的。由于浮栅或电荷撷取层的损耗,具有更多编程擦除周期的存储器单元更可能经历保留错误。在图6的示例中,顶行电压分布(损坏之前)和底行分布(被保留错误损害)的比较显示了向左偏移。
管芯索引、块索引和字线索引可以表示待读取的存储器单元的物理位置。数据存储装置可以由多个存储器芯片管芯组成,该多个存储器芯片管芯中的每个包括多个存储块。每个存储块包括多个存储器单元,并且可以由联接到每个存储器单元的字线来选择每个存储器单元。存储器控制器可以被配置为跟踪数据在多个管芯和多个块之间的移动。基于数据的移动,存储器控制器可以确定特定存储器管芯或特定存储块已经执行了多少次编程/擦除操作。可以根据管芯索引、块索引和字线索引来存储该信息。例如,如果编程/擦除操作集中在数据存储装置的特定位置,则从该位置读取数据时发生读取错误的可能性会更高。
然而,可以通过修改读取阈值来使这种读取错误最小化。在所公开的技术的一些实施例中,可以基于导致基于闪速存储器的数据存储SSD装置中的读取错误的操作条件来修改读取阈值。这些操作条件包括但不限于存储装置的耐久性、数据保留、读取干扰、存储装置的寿命、数据存储装置的操作温度以及待读取的存储器单元的位置,待读取的存储器单元的位置可以由芯片索引、块索引和/或字线索引指示。
诸如SSD的数据存储装置的性能(例如,每秒的输入/输出操作和吞吐量)在很大程度上取决于在进行第一次读取操作时应用的读取阈值设置(即,读取电压设置)。如果未优化读取阈值,则因为这种未优化的读取阈值电压可能会导致读取错误,所以性能可能会降低。读取阈值电压的优化取决于某些操作条件,诸如数据的物理位置、装置耐久性、数据保留时间、运行温度、读取干扰和装置的寿命。然而,手动地考虑不同操作条件的所有可能组合以修改读取阈值是不现实的。如果操作条件具有连续值,则手动地获得优化的读取阈值将更加困难。
在所公开技术的一些实施例中,可以基于以上所讨论的操作条件通过使用深度神经网络来识别在数据存储装置的存储器单元阵列中可能发生的阈值电压偏移的特定影响来使读取错误最小化。在所公开技术的一些实施方式中,对导致可能导致读取错误的阈值电压偏移的操作条件进行分类,并且使用深度神经网络对这些操作条件进行量化。所公开技术的一些实施方式包括必须满足以将读取阈值设置为某个值的识别标准。例如,当确定不满足最优读取阈值的标准时(例如,当错误的数量或来自存储器装置的错误的指示接近不希望的高值时、温度值接近低阈值或高阈值时、等),存储控制器可以基于所感测的操作条件,使用深度学习神经网络引擎生成的值来获取修改读取阈值的新值。包括数据的物理位置、数据存储装置的耐久性,数据保留、操作温度、读取干扰和数据存储装置的寿命的操作条件可以用于估计或预测阈值电压偏移。可以基于从大量闪速存储器芯片管芯收集的输入数据来训练深度神经网络。例如,可以基于操作条件的有限组合来训练深度神经网络。在实施方式中,从经训练的深度神经网络引擎计算优化的读取阈值电压。在另一实施方式中,通过经训练的神经网络引擎获得的值可以存储在数据存储装置的存储器(例如,查找表)中,并且数据存储装置中的存储器控制器可以基于该值来修改读取阈值电压。
在所公开技术的一些实施例中,深度神经网络用于根据存储装置的操作条件来预测最优读取阈值。在一个示例中,深度学习网络可以用于对与从离线存储器装置特性描述获得的、训练数据集中不存在的操作条件相关联的最优读取阈值进行插值。在所公开技术的一些实施例中,基于操作条件的有限组合,可以从离线计算进程中获得用于优化读取阈值电压的经训练的深度神经网络。基于更大的操作条件组,可以通过经训练的深度学习网络计算针对所有可能的操作条件组合的最优读取阈值,使得可以在存储器装置的实际读取操作期间使用优化的结果。
图7示出基于所公开技术的一些实施例来实施的用于数据存储装置性能优化的深度神经网络架构的示例。用于数据存储装置性能优化的深度神经网络架构700包括多个输入节点710、第一和第二连接层720和760、多个连接节点730和750、深度神经网络740和多个输出节点770。在此,第一连接层720和第二连接层760可以是全连接层。例如,第一连接层720可以被配置为将所有输入节点710连接到深度神经网络740的所有连接节点730。同样,第二连接层760可以被配置为将所有输出节点770连接到深度神经网络740的所有连接节点750。在所公开技术的一些实施例中,输入和输出节点710和770可以是输入神经元和输出神经元,并且第一和第二连接层720和760可以是突触层,这将在下面进行讨论。
已经经过训练的深度神经网络740通过多个输入节点710、第一连接层720和第一连接节点730接收导致读取错误的操作条件,诸如耐久性、保留、读取干扰、管芯索引、块索引、字线索引、数据存储驱动器的寿命和/或温度。深度神经网络740使用读取阈值组在操作条件的组合下测量存储器装置中的数据。例如,深度神经网络740可以在包括下列的操作条件的组合下从数据存储装置的某个存储器单元中读出数据:该特定存储器单元所属的存储器装置的耐久性、该特定存储器单元所属的存储器装置的数据保留、与该特定存储器单元相关的预期读取干扰、数据存储装置的寿命、数据存储装置的操作温度以及可以基于管芯索引/块索引以及字线索引确定的该特定存储器单元的物理位置。对于具有连续值的操作条件,所公开的深度神经网络的一些实施方式示例仅选择或提取离散值。通过这种方式,可以从已经经过训练的深度神经网络中获得最优读取阈值。在实施方式中,与操作条件的每种组合对应而优化的阈值电压可以存储在存储装置的存储器(例如,SRAM)中。
图8示出包括输入神经元810、隐藏神经元820、输出神经元830以及突触层840和850的计算神经网络的示例配置。例如,突触层840可以包括多个权重W11、W12、W13、W14、W21、W22、W23、W24、W31、W32、W33和W34。输入神经元810接收一些值并将该一些值传播到该网络的隐藏神经元820。来自一层或多层隐藏神经元820的加权和最终被传播到输出神经元830。在此,神经元的输出通常被称为激活,而突触通常被称为权重。在每层的计算的示例可以表示为:
其中Wji、Xi和Yj分别是权重、输入激活和输出激活。
在所公开技术的一些实施例中,诸如耐久性、保留、读取干扰、管芯索引、块索引、字线索引、数据存储驱动器的寿命以及温度的输入参数被输入深度神经网络的第一层,并且该层的输出可以解释为表示导致阈值电压偏移的不同特征的存在。在后续层中,然后,这些特征被合并为更高层特征的可能存在的度量,这些更高层特征被进一步合并以提供这些高层特征需要读取阈值修改的可能性。
在所公开技术的一些实施例中,用于数据存储装置性能优化的神经网络算法包括确定神经网络中的权重(和偏差)的值,并且称为训练网络。一旦训练完成,程序就可以通过使用在训练过程中确定的权重来计算神经网络的输出而执行该程序的任务。以这些权重运行程序被称为推断。存在多种训练权重的方法。监督学习是一种对所有训练样本都进行标记的方法。无监督学习是所有训练样本均未标记并且本质上目标是在数据中找到结构或聚类的另一种方法。半监督学习介于两种方法之间,其中仅标记训练数据的一小部分。
图9示出基于所公开技术的一些实施例来实施的用于数据存储装置优化的深度神经网络的训练方法900的示例。首先,在操作条件具有连续值的情况下,从导致数据存储装置中的读取错误的操作条件的连续值中选出离散值。在步骤910中,在操作条件的某些组合下使用第一组读取阈值电压读出存储器装置中的数据。例如,在操作条件的某些组合下使用第一组读取阈值电压测量存储器装置的存储器单元的阈值电压。在实施方式中,在操作条件的离散值的某些组合下使用读取阈值组测量存储器单元的阈值电压。在步骤920中,找到适当读取阈值以产生标记训练数据集。在步骤930中,基于存储器装置的特性,确定构造深度神经网络引擎的层的数量和每层的大小以。例如,层的数量和每层的大小被判定为深度神经网络引擎的超参数。深度神经网络引擎的一些示例可以包括:至少两个层、N个输入节点和M个输出节点。在此,N是所考虑的条件的数量,M是所考虑的不同读取阈值设置的数量。层的数量和每层的大小取决于存储器单元的特性。在确定层的数量和每层的大小后,将配置深度神经网络引擎的层和输入/输出节点。在步骤940中,使用与最优读取阈值对应的被标记训练数据集来训练深度神经网络引擎。在步骤950中,经训练的深度神经网络引擎用于计算在较大的操作条件组下的读取阈值电压值。
在所公开技术的一些实施例中,用于数据存储装置性能优化的深度神经网络引擎可以被设计为在确定阈值电压偏移量时帮助识别最有影响的操作条件,以为给定阈值电压分布窗口选择优化的读取阈值。基于这些特征,可以利用机器学习技术来判定优化的读取阈值,从而使读取错误最小化。在实施方式中,与标记训练数据集相关联的优化的读取阈值可以存储在存储装置中的存储器(例如,SRAM)中。
图10示出基于所公开技术的一些实施例来实施的用于数据存储装置优化的深度神经网络的推断方法1000的示例。在步骤1010中,将当前操作条件输入到经训练的深度神经网络的输入节点。在步骤1020中,从经训练的深度神经网络的输出节点获得最优读取阈值。在步骤1030中,将读取阈值修改为最优读取阈值。在步骤1040中,可以使用最优读取阈值从存储器单元读出数据。
图11示出基于所公开技术的一些实施例来实施的用于数据存储装置优化的深度神经网络***1100的示例。深度神经网络1100可以包括一个或多个处理器1110以及可操作地联接到一个或多个处理器1110的一个或多个存储器装置1120。一个或多个处理器1110可操作地用于接收导致数据存储装置中的读取错误的多个操作条件。导致读取错误的某些操作条件包括耐久性、保留、读取干扰、管芯索引、块索引、字线索引、数据存储驱动器的寿命以及操作温度。处理器1110中的一个或多个可操作地用于根据存储装置的操作条件来预测最优读取阈值。例如,一个或多个处理器可以利用深度学习算法来对与从离线存储器装置特征描述获得的、训练数据集中不存在的操作条件相关联的最优读取阈值进行插值。
在所公开技术的一些实施例中,处理器1110中的一个或多个可操作地用于测量在操作条件的某些组合下的存储器单元的阈值电压。处理器1110中的一个或多个可操作地用于找到每个阈值电压分布的最优读取阈值以产生标记训练数据集。在一个示例中,处理器1110中的一个或多个可以包括被配置为产生标记训练数据集的标记训练数据准备模块1112。处理器1110中的一个或多个可操作地用于配置用以接收的输入节点1130以及输出节点1140。例如,处理器1110中的一个或多个可操作地用于配置N个输入节点和M个输出节点,其中N是所考虑的操作条件的数量,M是所考虑的不同读取阈值设置的数量。处理器1110中的一个或多个可操作地用于判定深度神经网络的超参数。处理器中的一个或多个可基于标记训练数据集进行训练。在一个示例中,处理器1110中的一个或多个可以包括被配置为基于标记训练数据集进行训练的训练模块1114。在所公开技术的一些实施例中,存储器装置1120中的一个或多个可以被配置为存储训练模型1122的超参数组和读取阈值1124。
处理器1110中的一个或多个可操作地用于从输出节点获得与输入到输入节点的操作条件的组合对应的最优读取阈值。最优读取阈值及其操作条件的相应组合可以用于计算数据存储装置中的存储器装置的最优阈值电压。在实施方式中,数据存储装置操作地用于使用经训练的深度神经网络引擎来判定读取阈值。
图12示出基于所公开技术的一些实施例来实施的数据存储装置1200的示例。数据存储装置1200可以包括多个存储器管芯1210、控制器1220和存储器1230。数据存储装置的一些示例包括固态驱动器(SSD),该固态驱动器是利用非易失性存储器(例如,闪速存储器)和/或易失性存储器(例如,同步动态随机存取存储器,SDRAM)来存储数据的数据存储装置。例如,数据存储装置1200可以包括使用多层单元技术的多个闪速存储器装置。每个存储器装置包括多个存储块,并且多个存储块中的每个包括多个存储器单元。每个存储器单元可以被编程为多个编程状态中的一个。可以使用多个读取阈值来读取在每个存储器单元中存储的数据。基于所公开技术的一些实施例来实施的数据存储装置被配置为确保可以使用优化的读取阈值来读出数据。因此,数据存储装置可以通过将每个存储器管芯1210的操作条件映射到优化的读取阈值来使用优化的读取阈值。
可以通过使用基于所公开技术的一些实施例来实施的经训练的深度神经网络来获得优化的阈值电压。例如,可以通过将包括下列的更大的操作条件组施加到经训练的深度神经网络引擎来获得操作条件的所有可能组合的最优读取阈值:存储器管芯的耐久性、数据保留、读取干扰、存储装置的寿命、数据存储装置的操作温度以及可以由管芯索引、块索引和/或字线索引指示的待被读取的存储器单元的位置。在所公开技术的实施例中,可以通过离线深度学习网络来计算最优阈值电压。在实施方式中,数据存储装置中的存储器可以存储在数据存储装置的实际读取操作期间待使用的优化的读取阈值。
图13示出了从常规读取阈值、理论上的最优读取阈值和使用深度神经网络引擎获得的最优读取阈值获得的性能数据的示例性比较图。纵轴表示码字失败率,横轴表示失败位的数量。在理论上最优的条件下可以获得最窄曲线(1310),最宽曲线(1330)表示基于若干个块的数据的读取重试阈值的情况。这两条曲线(1310和1330)之间的曲线(1320)可以通过使用深度神经网络引擎基于包括下列的操作条件而获得:存储器装置的耐久性、数据保留、读取干扰、存储器装置的寿命、存储器装置的操作温度、以及待被读取的存储器单元的位置。从图13的示例的比较图中可以看到,使用基于所公开技术的实施例来实施的深度神经网络引擎所获得的结果显示最大失败位为126、平均失败位为46、这更接近理想的情况。
本专利文献中描述的主题和功能操作的实施方式可以在包括本说明书中公开的结构及其结构等同方案的各种***、数字电子电路、或计算机软件、固件或硬件或它们中的一种结构或多种结构的组合中实施。本说明书中描述的主题的实施方式可以被实施为一种或多种计算机程序产品,即在有形的和非暂时性计算机可读介质上编码的计算机程序指令的一个或多个模块,以由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储装置、机器可读存储装置衬底、存储器装置、实现机器可读传播信号的物质组合,或者它们中的一个或多个的组合。术语“处理器”涵盖处理数据的所有设备、装置和机器,通过示例的方式,包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该设备还可以包括为所讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理***、操作***或它们中的一种或多种的组合的代码。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以包括编译或解释语言的任何形式的编程语言来编写,并且可以以包括下列的任何形式进行部署:作为独立程序或作为模块、组件、子例程或适合在计算环境中使用的其他单元。计算机程序不一定与文件***中的文件相对应。程序可以存储在保存其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中、存储在专用于所讨论程序的单个文件中、或者存储在多个协同文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。可以部署计算机程序以在一台计算机上,或者在位于一个站点上或分布在多个站点上并通过通信网络互连的多台计算机上执行。
本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器来执行,该一个或多个可编程处理器运行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。进程和逻辑流程也可以由专用逻辑电路执行,并且设备也可以被实施为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
通过示例的方式,适于执行计算机程序的处理器包括通用微处理器和专用微处理器,以及任何种类的数字计算机的任意一种或多种处理器。通常,处理器将从只读取存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器装置。通常,计算机还包括用于存储数据的一个或多个大容量存储器装置,例如,磁盘、磁光盘或光盘,或者可操作地联接到用于存储数据的一个或多个大容量存储器装置以从该一个或多个大容量存储器装置接收数据,或者将数据传送到该一个或多个大容量存储器装置。然而,计算机不必需具有这些装置。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器装置,通过示例的方式包括半导体存储器装置,例如EPROM、EEPROM和闪速存储器装置。处理器和存储器可以通过专用逻辑电路辅助或并入专用逻辑电路中。
仅描述了一些实施方式和示例,并且可以基于本专利文献中描述和示出的内容进行其他实施方案、改进和变型。
Claims (18)
1.一种使用深度神经网络引擎来优化存储器装置的读取阈值的计算机实现的方法,所述方法包括:
在导致所述存储器装置中的读取错误的第一组操作条件下,使用施加到所述存储器装置的读取阈值电压组,从所述存储器装置读取数据;
在所述第一组操作条件下,使用所述读取阈值电压组产生标记训练数据集;
基于所述存储器装置的特性,确定所述深度神经网络引擎的层的数量、每层的大小以及输入节点和输出节点的数量;
使用所述标记训练数据集训练所述深度神经网络引擎;以及
使用经训练的深度神经网络引擎来计算在第二组操作条件下的读取阈值电压值。
2.根据权利要求1所述的方法,其中所述第一组操作条件包括下列中的至少一个:存储器装置的耐久性、数据保留、读取干扰、所述存储器装置的寿命、所述存储器装置的操作温度或者待读取的存储器单元的位置。
3.根据权利要求2所述的方法,其中所述存储器单元的位置包括管芯索引、块索引和字线索引。
4.根据权利要求1所述的方法,其中所述第一组操作条件的数量小于所述第二组操作条件的数量。
5.根据权利要求1所述的方法,其中所述第一组操作条件包括从操作条件的连续值中选出的离散值。
6.根据权利要求1所述的方法,其中所述深度神经网络引擎的层以及输入节点和输出节点包括:至少两个层、N个输入节点和M个输出节点,其中N是所考虑的条件的数量,M是所考虑的不同读取阈值设置的数量,其中N和M大于或者等于2。
7.根据权利要求1所述的方法,其中使用所述经训练的深度神经网络引擎来计算所述读取阈值电压值包括:将所述标记训练数据集输入到所述深度神经网络引擎的输入节点。
8.根据权利要求7所述的方法,其中使用所述经训练的深度神经网络引擎来计算所述读取阈值电压值进一步包括:从所述经训练的深度神经网络引擎的输出节点获得最优读取阈值。
9.根据权利要求8所述的方法,其中使用所述经训练的深度神经网络引擎来计算所述读取阈值电压值进一步包括:基于所述最优读取阈值来修改读取阈值。
10.一种使用深度神经网络引擎来优化存储器装置的读取阈值的***,所述***包括:
存储器,存储优化数据存储***中的存储器装置的读取阈值电压的可执行指令;以及
处理器,与所述存储器通信以从所述存储器读取所述可执行指令,用以:
在导致所述存储器装置中的读取错误的第一组操作条件下,使用施加到所述存储器装置的读取阈值电压组,从所述存储器装置读取数据;
在所述第一组操作条件下,使用所述读取阈值电压组产生标记训练数据集;
基于所述存储器装置的特性,确定所述深度神经网络引擎的层的数量、每层的大小以及输入节点和输出节点的数量;
使用所述标记训练数据集训练所述深度神经网络引擎;以及
使用经训练的深度神经网络引擎来计算在第二组操作条件下的读取阈值电压值。
11.根据权利要求10所述的***,其中,所述第一组操作条件包括下列中的至少一个:所述存储器装置的耐久性、数据保留、读取干扰、所述存储器装置的寿命、所述存储器装置的操作温度或者待读取的存储器单元的位置。
12.根据权利要求11所述的***,其中所述存储器单元的位置包括管芯索引、块索引和字线索引。
13.根据权利要求10所述的***,其中所述第一组操作条件的数量小于所述第二组操作条件的数量。
14.根据权利要求10所述的***,其中所述第一组操作条件包括从所述操作条件的连续值中选出的离散值。
15.根据权利要求10所述的***,其中所述深度神经网络引擎的层以及输入节点和输出节点包括:至少两个层、N个输入节点和M个输出节点,其中N是所考虑的条件的数量,而M是所考虑的不同的读取阈值设置的数量,其中N和M大于或者等于2。
16.根据权利要求11所述的***,其中使用所述经训练的深度神经网络引擎来计算所述读取阈值电压值进一步包括:将所述标记训练数据集输入到所述深度神经网络引擎的输入节点中。
17.根据权利要求16所述的***,其中使用所述经训练的深度神经网络引擎来计算所述读取阈值电压值进一步包括:从所述经训练的深度神经网络引擎的输出节点获得最优读取阈值。
18.根据权利要求17所述的***,其中使用所述经训练的深度神经网络引擎来计算所述读取阈值电压值进一步包括:基于所述最优读取阈值来修改读取阈值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862787182P | 2018-12-31 | 2018-12-31 | |
US62/787,182 | 2018-12-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111538458A CN111538458A (zh) | 2020-08-14 |
CN111538458B true CN111538458B (zh) | 2023-06-16 |
Family
ID=71123111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911373559.8A Active CN111538458B (zh) | 2018-12-31 | 2019-12-27 | 使用深度学习的存储装置性能优化 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11610116B2 (zh) |
CN (1) | CN111538458B (zh) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11610116B2 (en) | 2018-12-31 | 2023-03-21 | SK Hynix Inc. | Storage device performance optimization using deep learning |
US11016840B2 (en) * | 2019-01-30 | 2021-05-25 | International Business Machines Corporation | Low-overhead error prediction and preemption in deep neural network using apriori network statistics |
US11221769B2 (en) * | 2019-09-27 | 2022-01-11 | Samsung Electronics Co., Ltd. | Performing noise cancellation on a memory device using a neural network |
US11742879B2 (en) | 2019-03-13 | 2023-08-29 | Samsung Electronics Co., Ltd. | Machine-learning error-correcting code controller |
US10861562B1 (en) | 2019-06-24 | 2020-12-08 | SK Hynix Inc. | Deep learning based regression framework for read thresholds in a NAND flash memory |
KR20210082875A (ko) * | 2019-12-26 | 2021-07-06 | 삼성전자주식회사 | 머신 러닝을 이용한 비휘발성 메모리 장치의 동작 제어 방법 및 스토리지 시스템 |
US11907571B2 (en) | 2020-07-13 | 2024-02-20 | SK Hynix Inc. | Read threshold optimization systems and methods using domain transformation |
US11960989B2 (en) | 2020-07-24 | 2024-04-16 | SK Hynix Inc. | Read threshold estimation systems and methods using deep learning |
US20220044102A1 (en) * | 2020-08-06 | 2022-02-10 | Micron Technology, Inc. | Fault tolerant artificial neural network computation in deep learning accelerator having integrated random access memory |
US11355204B2 (en) | 2020-09-03 | 2022-06-07 | SK Hynix Inc. | Efficient read-threshold calculation method for parametric PV-level modeling |
US11335417B1 (en) * | 2020-10-28 | 2022-05-17 | SK Hynix Inc. | Read threshold optimization systems and methods using model-less regression |
CN112506423B (zh) * | 2020-11-02 | 2021-07-20 | 北京迅达云成科技有限公司 | 一种云储存***中动态接入存储设备的方法及装置 |
US11398291B2 (en) | 2020-11-20 | 2022-07-26 | Microchip Technology Inc. | Method and apparatus for determining when actual wear of a flash memory device differs from reliability states for the flash memory device |
US11393539B2 (en) | 2020-11-20 | 2022-07-19 | SK Hynix Inc. | Systems and methods for determining change of read threshold voltage |
CN112817524A (zh) * | 2021-01-19 | 2021-05-18 | 置富科技(深圳)股份有限公司 | 基于动态神经网络的闪存可靠性等级在线预测方法和装置 |
KR20220105940A (ko) * | 2021-01-21 | 2022-07-28 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 동작 방법 |
US11430530B2 (en) | 2021-01-25 | 2022-08-30 | SK Hynix Inc. | Deep learning based program-verify modeling and voltage estimation for memory devices |
US11514992B2 (en) | 2021-02-25 | 2022-11-29 | Microchip Technology Inc. | Method and apparatus for reading a flash memory device |
DE112021005459T5 (de) * | 2021-02-25 | 2023-07-27 | Microchip Technology Inc. | Verfahren und einrichtung zum lesen einer flash-speichervorrichtung |
CN116830200A (zh) * | 2021-02-25 | 2023-09-29 | 微芯片技术股份有限公司 | 用于读取闪存存储器设备的方法和装置 |
US11514999B2 (en) | 2021-04-16 | 2022-11-29 | SK Hynix Inc. | Systems and methods for parametric PV-level modeling and read threshold voltage estimation |
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 |
WO2022250722A1 (en) * | 2021-05-24 | 2022-12-01 | 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 |
US11749354B2 (en) | 2021-07-13 | 2023-09-05 | SK Hynix Inc. | Systems and methods for non-parametric PV-level modeling and read threshold voltage estimation |
US11769556B2 (en) | 2021-07-27 | 2023-09-26 | SK Hynix Inc. | Systems and methods for modeless read threshold voltage estimation |
US11769555B2 (en) | 2021-07-27 | 2023-09-26 | SK Hynix Inc. | Read threshold voltage estimation systems and methods for parametric PV-level modeling |
US20230057711A1 (en) * | 2021-08-19 | 2023-02-23 | Kioxia Corporation | System and method for dynamic inter-cell interference compensation in non-volatile memory storage devices |
DE112022002131T5 (de) | 2021-09-28 | 2024-04-11 | Microchip Technology Inc. | Ldpc-dekodierung mit trapped-block-management |
US11854629B2 (en) | 2021-11-22 | 2023-12-26 | SK Hynix Inc. | System and method for non-parametric optimal read threshold estimation using deep neural network |
KR20230116566A (ko) | 2022-01-28 | 2023-08-04 | 에스케이하이닉스 주식회사 | 메모리 장치의 읽기 기준 전압 결정 장치 및 그 동작 방법 |
US20240061588A1 (en) * | 2022-08-17 | 2024-02-22 | Micron Technology, Inc. | Charge loss mitigation through dynamic programming sequence |
US20240143499A1 (en) * | 2022-10-27 | 2024-05-02 | Dell Products L.P. | Dynamic nand read/write access time for ssd reliability and performance enhancement |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7558109B2 (en) * | 2006-11-03 | 2009-07-07 | Sandisk Corporation | Nonvolatile memory with variable read threshold |
CN105512725A (zh) * | 2015-12-14 | 2016-04-20 | 杭州朗和科技有限公司 | 一种神经网络的训练方法和设备 |
CN108777157A (zh) * | 2018-05-08 | 2018-11-09 | 南京邮电大学 | 基于深度神经网络预测mlc闪存电压阈值的自适应方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7355892B2 (en) | 2006-06-30 | 2008-04-08 | Sandisk Corporation | Partial page fail bit detection in flash memory devices |
KR100891005B1 (ko) | 2007-06-28 | 2009-03-31 | 삼성전자주식회사 | 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법 |
US8370719B2 (en) | 2010-05-21 | 2013-02-05 | Intel Corporation | Persistent moving read reference |
WO2013132532A1 (en) | 2012-03-06 | 2013-09-12 | Hitachi, Ltd. | Semiconductor storage device having nonvolatile semiconductor memory |
US8947958B2 (en) | 2012-10-09 | 2015-02-03 | Freescale Semiconductor, Inc. | Latent slow bit detection for non-volatile memory |
KR102290974B1 (ko) | 2014-11-07 | 2021-08-19 | 삼성전자주식회사 | 불휘발성 메모리 장치, 메모리 컨트롤러 및 그것들을 포함하는 불휘발성 메모리 시스템의 동작 방법 |
US9842610B2 (en) | 2015-06-26 | 2017-12-12 | International Business Machines Corporation | Training deep neural network for acoustic modeling in speech recognition |
US10748064B2 (en) * | 2015-08-27 | 2020-08-18 | International Business Machines Corporation | Deep neural network training with native devices |
CN106816179B (zh) | 2015-11-30 | 2020-12-25 | 华为技术有限公司 | 一种闪存纠错方法和装置 |
US11205119B2 (en) | 2015-12-22 | 2021-12-21 | Applied Materials Israel Ltd. | Method of deep learning-based examination of a semiconductor specimen and system thereof |
US11263521B2 (en) * | 2016-08-30 | 2022-03-01 | International Business Machines Corporation | Voltage control of learning rate for RPU devices for deep neural network training |
KR102656190B1 (ko) * | 2016-11-24 | 2024-04-11 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 불휘발성 메모리 장치의 액세스 방법 |
US11049009B2 (en) * | 2017-06-12 | 2021-06-29 | Western Digital Technologies, Inc. | Identifying memory block write endurance using machine learning |
US10607715B2 (en) * | 2017-06-13 | 2020-03-31 | International Business Machines Corporation | Self-evaluating array of memory |
US10289341B2 (en) * | 2017-06-30 | 2019-05-14 | Western Digital Technologies, Inc. | Operating parameter offsets in solid state memory devices |
US10347344B2 (en) | 2017-08-29 | 2019-07-09 | Micron Technology, Inc. | Read voltage calibration based on host IO operations |
US10877827B2 (en) | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
US11836610B2 (en) * | 2017-12-13 | 2023-12-05 | Advanced Micro Devices, Inc. | Concurrent training of functional subnetworks of a neural network |
US10535383B2 (en) | 2018-02-28 | 2020-01-14 | Sandisk Technologies Llc | Throughput performance for cross temperature handling scenarios |
US10552259B2 (en) | 2018-03-15 | 2020-02-04 | Western Digital Technologies, Inc. | Recovery combining hard decoding, soft decoding and artificial codeword generation |
US11099781B2 (en) | 2018-07-19 | 2021-08-24 | Silicon Motion, Inc. | Flash memory controller, flash memory module and associated electronic device |
CN110751974A (zh) | 2018-07-23 | 2020-02-04 | 爱思开海力士有限公司 | 存储器***和用于优化读取阈值的方法 |
US11610116B2 (en) | 2018-12-31 | 2023-03-21 | SK Hynix Inc. | Storage device performance optimization using deep learning |
US11294819B2 (en) | 2020-03-31 | 2022-04-05 | Western Digital Technologies, Inc. | Command optimization through intelligent threshold detection |
-
2019
- 2019-12-17 US US16/717,888 patent/US11610116B2/en active Active
- 2019-12-27 CN CN201911373559.8A patent/CN111538458B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7558109B2 (en) * | 2006-11-03 | 2009-07-07 | Sandisk Corporation | Nonvolatile memory with variable read threshold |
CN105512725A (zh) * | 2015-12-14 | 2016-04-20 | 杭州朗和科技有限公司 | 一种神经网络的训练方法和设备 |
CN108777157A (zh) * | 2018-05-08 | 2018-11-09 | 南京邮电大学 | 基于深度神经网络预测mlc闪存电压阈值的自适应方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111538458A (zh) | 2020-08-14 |
US20200210831A1 (en) | 2020-07-02 |
US11610116B2 (en) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111538458B (zh) | 使用深度学习的存储装置性能优化 | |
US11783185B2 (en) | Analysis of memory sub-systems based on threshold distributions | |
US8730724B2 (en) | Common line current for program level determination in flash memory | |
US11430530B2 (en) | Deep learning based program-verify modeling and voltage estimation for memory devices | |
US11393539B2 (en) | Systems and methods for determining change of read threshold voltage | |
US11636913B2 (en) | Tracking and refreshing state metrics in memory sub-systems | |
US11960989B2 (en) | Read threshold estimation systems and methods using deep learning | |
CN114765047A (zh) | 非易失性存储器装置中的软读取阈值估计的高斯建模 | |
US20230145358A1 (en) | Copyback clear command for performing a scan and read in a memory device | |
US11715511B2 (en) | Trim level adjustments for memory based on data use | |
US11656934B2 (en) | Managing open blocks in memory systems | |
US11854631B2 (en) | System and method for dynamic compensation for multiple interference sources in non-volatile memory storage devices | |
US11994942B2 (en) | Raw bit error rate based trim level adjustments for memory | |
US20230057711A1 (en) | System and method for dynamic inter-cell interference compensation in non-volatile memory storage devices | |
CN115482866A (zh) | 基于存储器装置中先前读取尝试的参数估计 | |
CN112562772B (zh) | 自适应低密度奇偶校验硬解码器 | |
US20230176765A1 (en) | Read threshold prediction in memory devices using deep neural networks | |
US20230393752A1 (en) | Voltage window adjustment | |
US11837307B2 (en) | Managing error-handling flows in memory devices | |
US12051471B2 (en) | Read disturb management | |
US20230333762A1 (en) | Reuse of bad blocks for tasks in a memory sub-system | |
US20240029802A1 (en) | Read disturb management | |
US20240055054A1 (en) | Independent sensing times |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |