CN112582004A - 存储器系统、执行噪声消除的方法和计算机程序产品 - Google Patents
存储器系统、执行噪声消除的方法和计算机程序产品 Download PDFInfo
- Publication number
- CN112582004A CN112582004A CN202010277924.1A CN202010277924A CN112582004A CN 112582004 A CN112582004 A CN 112582004A CN 202010277924 A CN202010277924 A CN 202010277924A CN 112582004 A CN112582004 A CN 112582004A
- Authority
- CN
- China
- Prior art keywords
- memory
- voltage level
- neural network
- noise cancellation
- ssls
- 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
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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
- G11C11/5621—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 using charge storage in a floating gate
-
- 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
- G11C11/5671—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 using charge trapping in an insulator
-
- 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
-
- 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
- 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
- G11C11/5621—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 using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- 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/10—Programming or data input circuits
-
- 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/30—Power supply circuits
-
- 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/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- 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/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
-
- 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
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/563—Multilevel memory reading aspects
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)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
Abstract
本公开提供存储器系统、执行噪声消除的方法和计算机程序产品。一种存储器系统包括存储器设备和存储器控制器,存储器控制器包括处理器和内部存储器。包括神经网络的计算机程序被存储在存储器系统中。处理器运行计算机程序以:从连接到一条串选择线(SSL)的多个存储器单元中的每一个提取电压电平,其中存储器单元和SSL被包括在存储器设备的存储器块中;将电压电平作为输入提供给神经网络;以及使用神经网络通过将电压电平中的至少一个从第一电压电平改变为第二电压电平来对SSL执行噪声消除。第一电压电平被归入到第一群组的存储器单元中,第二电压电平被归入到不同于第一群组的第二群组的存储器单元中。
Description
技术领域
本发明构思的示例性实施例涉及被配置成使用神经网络执行噪声消除的存储器设备以及使用神经网络对存储器设备执行噪声消除的方法。
背景技术
现代NAND闪速存储器设备允许在每个存储器单元中存储若干位的数据,从而改进制造成本和性能。其中存储了多个位的数据的存储器单元可以称为多级(multi-level)存储器单元。多级存储器单元将存储器单元的阈值电压范围划分成若干电压状态,并且使用存储器单元电压电平(voltage level)提取写入存储器单元的数据值。然而,每存储器单元存储多个位可能降低每个电压状态的动态电压范围,使得存储器单元更容易受噪声的影响。
发明内容
根据示例性实施例,一种存储器系统包括存储器设备和存储器控制器,存储器控制器包括处理器和内部存储器。存储器设备在存储器控制器的控制下操作。包括神经网络的计算机程序被存储在存储器控制器的内部存储器中或存储器设备中。处理器被配置成:运行计算机程序以从连接到一条串选择线(string select line,SSL)的多个存储器单元中的每一个提取电压电平,其中存储器单元和SSL被包括在存储器设备的存储器块中;将存储器单元的电压电平作为输入提供给神经网络;以及使用神经网络通过将存储器单元的电压电平中的至少一个从第一电压电平改变成第二电压电平来对SSL执行噪声消除。第一电压电平被归入到第一群组(cluster)的存储器单元中,第二电压电平被归入到不同于第一群组的第二群组的存储器单元中。
根据示例性实施例,一种使用神经网络对存储器设备执行噪声消除的方法包括:从连接到一条串选择线(SSL)的多个存储器单元中的每一个提取电压电平,其中存储器单元和SSL被包括在存储器设备的存储器块中;将存储器单元的电压电平作为输入提供给神经网络;以及使用神经网络通过将存储器单元的电压电平中的至少一个从第一电压电平改变成第二电压电平来对SSL执行噪声消除。第一电压电平被归入到第一群组的存储器单元中,第二电压电平被归入到不同于第一群组的第二群组的存储器单元中。
根据示例性实施例,一种用于使用神经网络对存储器设备执行噪声消除的计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有通过其体现的程序指令。程序指令可由处理器运行,以使处理器:从连接到一条串选择线(SSL)的多个存储器单元中的每一个提取电压电平,其中存储器单元和SSL被包括在存储器设备的存储器块中;将存储器单元的电压电平作为输入提供给神经网络;以及使用神经网络通过将存储器单元的电压电平中的至少一个从第一电压电平改变成第二电压电平来对SSL执行噪声消除。第一电压电平被归入到第一群组的存储器单元中,第二电压电平被归入到不同于第一群组的第二群组的存储器单元中。
附图说明
通过参考附图详细描述本发明构思的示例性实施例,本发明构思的以上和其他特征将变得更加明显,其中:
图1是示出根据本发明构思的示例性实施例的包括存储器系统的数据处理系统的实施方式的框图。
图2是根据本发明构思的示例性实施例的图1的非易失性存储器设备的详细框图。
图3是示出根据本发明构思的示例性实施例的图1的存储器系统的框图。
图4是根据本发明构思的示例性实施例的图2的存储器单元阵列的框图。
图5是根据本发明构思的示例性实施例的图4的存储器单元阵列的存储器块的电路图。
图6是示出当对存储器块的字线编程时可能发生的干扰的框图。
图7是示出根据本发明构思的示例性实施例的对存储器块执行的连续噪声消除过程的概述的流程图。
图8是示出根据本发明构思的示例性实施例的用于执行噪声消除的残差神经网络(residual neural network,ResNet)的结构的图。
图9是示出根据本发明构思的示例性实施例的与ResNet有关的相对于电压间隔(distance)的损耗函数的曲线图。
图10是示出根据本发明构思的示例性实施例的使用神经网络对存储器设备执行噪声消除的结果的曲线图。
图11是示出根据本发明构思的示例性实施例的对存储器块的特定电平执行噪声消除的效果的曲线图。
图12是根据本发明构思的示例性实施例的包括非易失性存储器系统的计算系统的框图。
具体实施方式
下文将参考附图更全面地描述本发明构思的示例性实施例。在所有附图中,相似的附图标记可以指代相似的元件。
应当理解,术语“第一”、“第二”、“第三”等这里用于将一个元件与另一元件区分开来,并且元件不受这些术语的限制。因此,示例性实施例中的“第一”元件在另一示例性实施例中可以描述为“第二”元件。
应当理解,对每个示例性实施例中的特征或方面的描述通常应当被认为可用于其他示例性实施例中的其他类似特征或方面,除非上下文清楚地指示其他情况。
如这里所使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另外清楚地指示。
这里,当一个值被描述为大约等于另一值或基本上与另一值相同或相等,应当理解这些值在测量误差内彼此相等,或者如果在测量上不相等,如本领域普通技术人员将理解的,这些值足够接近,从而在功能上彼此相等。例如,考虑到所讨论的测量和与特定量的测量(即,测量系统的限制)相关联的误差,这里所使用的术语“大约”包括所陈述的值,并且意指在如本领域普通技术人员所确定的特定值的可接受偏差范围内。例如,“大约”可以意指在一个或多个标准差内,如本领域普通技术人员所理解的。此外,应当理解,虽然参数在这里可以被描述为具有“大约”某个值,但是根据示例性实施例,该参数可以是精确的某个值或者在测量误差内近似某个值,如本领域普通技术人员将理解的。
图1是示出了根据本发明构思的示例性实施例的包括存储器系统的数据处理系统的实施方式的框图。
参考图1,数据处理系统10可以包括主机100和存储器系统200。图1中示出的存储器系统200可以用在包括数据处理功能的各种系统中。所述各种系统可以是各种设备,包括例如移动设备,诸如智能手机或平板计算机。然而,所述各种设备不限于此。
存储器系统200可以包括各种类型的存储器设备。这里,本发明构思的示例性实施例将被描述为包括作为非易失性存储器的存储器设备。然而,示例性实施例不限于此。例如,存储器系统200可以包括作为易失性存储器的存储器设备。
根据示例性实施例,存储器系统200可以包括非易失性存储器设备,诸如,例如只读存储器(read-only memory,ROM)、磁盘、光盘、闪速存储器等。闪速存储器可以是根据金属氧化物半导体场效应晶体管(metal-oxide-semiconductor field-effect transistor,MOSFET)的阈值电压的改变来存储数据的存储器,并且可以包括例如NAND和NOR闪速存储器。存储器系统200可以使用包括非易失性存储器设备的存储卡(诸如,例如嵌入式多媒体卡(embedded multimedia card,eMMC)、安全数字(secure digital,SD)卡、微型SD卡或通用闪存(universal flash storage,UFS))来实施,或者存储器系统200可以使用例如包括非易失性存储器设备的固态驱动器(SSD)来实施。这里,将假设存储器系统200是非易失性存储器系统来描述存储器系统200的配置和操作,因此存储器系统200也可以在下文被直接称为非易失性存储器系统200。然而,存储器系统200不限于此。主机100可以例如包括安装在例如移动设备上的片上系统(system-on-chip,SoC)应用处理器(applicationprocessor,AP)或者被包括在计算机系统中的中央处理单元(central processing unit,CPU)。
如上所述,主机100可以包括AP 110。AP 110可以包括各种知识产权(intellectual property,IP)块。例如,AP 110可以包括控制非易失性存储器系统200的存储器设备驱动器111。主机100可以与非易失性存储器系统200通信,以发送与存储器操作相关的命令并接收响应于所发送的命令的确认命令。
非易失性存储器系统200可以包括例如存储器控制器210和非易失性存储器设备220。存储器控制器210可以从主机100接收与存储器操作相关的命令,使用接收到的命令生成内部命令和内部时钟信号,并将内部命令和内部时钟信号提供给非易失性存储器设备220。非易失性存储器设备220可以响应于内部命令将写入数据存储在存储器单元阵列中,或者可以响应于内部命令向存储器控制器210提供读取数据。
非易失性存储器设备220包括存储器单元阵列,即使当非易失性存储器设备220没有通电时,存储器单元阵列也保持存储在其中的数据。存储器单元阵列可以包括例如NAND或NOR闪速存储器、磁阻随机存取存储器(magnetoresistive random-access memory,MRAM)、电阻随机存取存储器(resistive random-access memory,RRAM)、铁电存取存储器(ferroelectric access-memory,FRAM)或相变存储器(phase change memory,PCM)作为存储器单元。例如,当存储器单元阵列包括NAND闪速存储器时,存储器单元阵列可以包括多个块和多个页(page)。数据可以以页为单位进行编程和读取,并且数据可以以块为单位进行擦除。图4中示出了存储器单元阵列中包括的存储器块的示例。
图2是根据本发明构思的示例性实施例的图1的非易失性存储器设备220的详细框图。
参考图2,非易失性存储器设备220可以包括例如存储器单元阵列221、控制逻辑222、电压生成单元223、行解码器224和页缓冲器225。
存储器单元阵列221可以连接到一条或更多条串选择线(string select line)SSL、多条字线WL、一条或更多条接地选择线(ground select line)GSL和多条位线BL。存储器单元阵列221可以包括设置在多条字线WL和多条位线BL之间的交叉点处的多个存储器单元。
控制逻辑222可以从存储器控制器210接收命令CMD(例如,内部命令)和地址ADD,并且从存储器控制器210接收用于控制非易失性存储器设备220内的各种功能块的控制信号CTRL。控制逻辑222可以基于命令CMD、地址ADD和控制信号CTRL,输出用于向存储器单元阵列221写入数据或从存储器单元阵列221读取数据的各种控制信号。以这种方式,控制逻辑222可以控制非易失性存储器设备220的整体操作。
由控制逻辑222输出的各种控制信号可以提供给电压生成单元223、行解码器224和页缓冲器225。例如,控制逻辑222可以向电压生成单元223提供电压控制信号CTRL_vol,向行解码器224提供行地址X-ADD,并且向页缓冲器225提供列地址Y-ADD。
电压生成单元223可以基于电压控制信号CTRL_vol生成用于对存储器单元阵列221执行编程、读取和擦除操作的各种电压。例如,电压生成单元223可以生成用于驱动多条字线WL的第一驱动电压VWL、用于驱动一条或更多串选择线SSL的第二驱动电压VSSL和用于驱动一条或更多接地选择线GSL的第三驱动电压VGSL。在这种情况下,第一驱动电压VWL可以是编程电压(例如,写入电压)、读取电压、擦除电压、通过电压(pass voltage)、或编程验证电压。此外,第二驱动电压VSSL可以是串选择电压(例如,导通电压或截止电压)。另外,第三驱动电压VGSL可以是接地选择电压(例如,导通电压或截止电压)。
行解码器224可以通过多条字线WL连接到存储器单元阵列221,并且可以响应于从控制逻辑222接收的行地址X-ADD激活多条字线WL的一部分。例如,在读取操作中,行解码器224可以将读取电压施加到所选择的字线,并且将通过电压施加到未选择的字线。
在编程操作中,行解码器224可以将编程电压施加到所选择的字线,并且将通过电压施加到未选择的字线。在示例性实施例中,在多个编程循环中的至少一个中,行解码器224可以将编程电压施加到所选择的字线和额外选择的字线。
页缓冲器225可以通过多条位线BL连接到存储器单元阵列221。例如,在读取操作中,页缓冲器225可以作为输出存储在存储器单元阵列221中的数据的感测放大器来操作。可替代地,在编程操作中,页缓冲器225可以作为向存储器单元阵列221写入期望的数据的写入驱动器来操作。
图3是示出根据本发明构思的示例性实施例的图1的存储器系统200的框图。
参考图3,存储器系统200包括存储器设备220和存储器控制器210。这里存储器控制器210也可以称为控制器电路。存储器设备220可以在存储器控制器210的控制下执行写入操作、读取操作或擦除操作。
存储器控制器210可以取决于从主机100接收的请求或内部指定的调度来控制存储器设备220。存储器控制器210可以包括控制器核心121、内部存储器124、主机接口块125和存储器接口块126。
控制器核心121可以包括存储器控制核心122和机器学习核心123,并且这些核心中的每一个都可以由一个或更多个处理器实施。存储器控制核心122可以取决于从主机100接收的请求或内部指定的调度来控制和访问存储器设备220。存储器控制核心122可以管理和运行用于管理或操作存储器系统200的各种元数据和代码。
机器学习核心123可以用于执行神经网络的训练和推断,该神经网络被设计成对存储器设备220执行噪声消除,如下文进一步详细描述的。
内部存储器124可以例如用作由控制器核心121使用的系统存储器、存储存储器设备220的数据的高速缓冲存储器、或者临时存储主机100与存储器设备220之间的数据的缓冲器存储器。内部存储器124可以存储映射表MT,该映射表MT指示被分配给存储器系统200的逻辑地址和存储器设备220的物理地址之间的关系。内部存储器124可以包括例如DRAM或SRAM。
在示例性实施例中,神经网络(诸如参考图8描述的神经网络)可以被包括在存储于存储器控制器210的内部存储器124或存储器设备220中的计算机程序中。包括神经网络的计算机程序可以由机器学习核心123运行,以对存储在存储器设备220中的数据去噪。因此,根据示例性实施例,存储器系统200可以在存储器设备220的常规读取操作期间对存储在存储器设备220中的数据去噪。也就是说,在存储器系统200的制造完成之后,在存储器系统200的常规操作期间,并且特别地,在存储器系统200的其中从存储器设备220读取数据的常规读取操作期间,正被读取的存储在存储器设备220中的数据可以使用本地存储在存储器系统200中并且由存储器系统200运行的神经网络去噪,并且去噪后的数据可以从存储器设备220读出。
主机接口块125可以包括用于与主机100通信的组件,诸如例如物理块。存储器接口块126可以包括用于与存储器设备220通信的组件,诸如例如物理块。
下面,将描述存储器系统200随时间的操作。当向存储器系统200供电时,存储器系统200可以利用主机100执行初始化。
主机接口块125可以向存储器控制核心122提供从主机100接收的第一请求REQ1。第一请求REQ1可以包括命令(例如,读取命令或写入命令)和逻辑地址。存储器控制核心122可以将第一请求REQ1转换成适用于存储器设备220的第二请求REQ2。
例如,存储器控制核心122可以转换命令的格式。存储器控制核心122可以参考存储在内部存储器124中的映射表MT来获得地址信息A1。存储器控制核心122可以通过使用地址信息A1将逻辑地址转换成存储器设备220的物理地址。存储器控制核心122可以向存储器接口块126提供适合于存储器设备220的第二请求REQ2。
存储器接口块126可以在队列中注册来自存储器控制核心122的第二请求REQ2。存储器接口块126可以将首先在队列中注册的请求作为第三请求REQ3发送到存储器设备220。
当第一请求REQ1是写入请求时,主机接口块125可以将从主机100接收的数据写入内部存储器124。当第三请求REQ3是写入请求时,存储器接口块126可以将存储在内部存储器124中的数据发送到存储器设备220。
当数据被完全写入时,存储器设备220可以向存储器接口块126发送第三响应RESP3。响应于第三响应RESP3,存储器接口块126可以向存储器控制核心122提供指示数据被完全写入的第二响应RESP2。
在数据被存储在内部存储器124中之后或者在接收到第二响应RESP2之后,存储器控制核心122可以通过主机接口块125向主机100发送指示请求已完成的第一响应RESP1。
当第一请求REQ1是读取请求时,可以通过第二请求REQ2和第三请求REQ3将读取请求发送到存储器设备220。存储器接口块126可以将从存储器设备220接收的数据存储在内部存储器124中。当数据被完全发送时,存储器设备220可以将第三响应RESP3发送到存储器接口块126。
当接收到第三响应RESP3时,存储器接口块126可以向存储器控制核心122提供指示数据被完全存储的第二响应RESP2。当接收到第二响应RESP2时,存储器控制核心122可以通过主机接口块125向主机100发送第一响应RESP1。
主机接口块125可以将存储在内部存储器124中的数据发送到主机100。在示例性实施例中,在与第一请求REQ1相对应的数据被存储在内部存储器124中的情况下,可以省略第二请求REQ2和第三请求REQ3的发送。
图4和图5示出使用三维闪速存储器实施存储器系统200的示例。三维闪速存储器可以包括三维(例如,垂直)NAND(例如,VNAND)存储器单元。下面描述包括三维存储器单元的存储器单元阵列221的实施方式。下面描述的存储器单元中的每一个可以是NAND存储器单元。
图4是根据本发明构思的示例性实施例的图2的存储器单元阵列221的框图。
参考图4,根据示例性实施例的存储器单元阵列221包括多个存储器块BLK1至BLKz。存储器块BLK1至BLKz中的每一个具有三维结构(例如,垂直结构)。例如,存储器块BLK1至BLKz中的每一个可以包括在第一至第三方向上延伸的结构。例如,存储器块BLK1至BLKz中的每一个可以包括在第二方向上延伸的多个NAND串。例如,可以在第一至第三方向上提供多个NAND串。
NAND串中的每一个连接到位线BL、串选择线SSL、接地选择线GSL、字线WL和公共源极线CSL。也就是说,存储器块BLK1至BLKz中的每一个可以连接到多条位线BL、多条串选择线SSL、多条接地选择线GSL、多条字线WL和公共源极线CSL。下面将参照图5更详细地描述存储器块BLK1至BLKz。
图5是根据本发明构思的示例性实施例的存储器块BLKi的电路图。图5示出图4的存储器单元阵列221中的存储器块BLK1至BLKz中的一个的示例。
存储器块BLKi可以包括多个单元串(cell string)CS11至CS41和CS12至CS42。多个单元串CS11至CS41和CS12至CS42可以在列方向和行方向上排列以形成列和行。单元串CS11至CS41和CS12至CS42中的每一个可以包括接地选择晶体管GST、存储器单元MC1至MC6和串选择晶体管SST。被包括在单元串CS11至CS41和CS12至CS42中的每一个中的接地选择晶体管GST、存储器单元MC1至MC6和串选择晶体管SST可以在基本垂直于基底的高度方向上堆叠。
多个单元串CS11至CS41和CS12至CS42的列可以分别连接到不同的串选择线SSL1至SSL4。例如,单元串CS11和CS12的串选择晶体管SST可以共同连接到串选择线SSL1。单元串CS21和CS22的串选择晶体管SST可以共同连接到串选择线SSL2。单元串CS31和CS32的串选择晶体管SST可以共同连接到串选择线SSL3。单元串CS41和CS42的串选择晶体管SST可以共同连接到串选择线SSL4。
多个单元串CS11至CS41和CS12至CS42的行可以分别连接到不同的位线BL1和BL2。例如,单元串CS11至CS41的串选择晶体管SST可以共同连接到位线BL1。单元串CS12至CS42的串选择晶体管SST可以共同连接到位线BL2。
多个单元串CS11至CS41和CS12至CS42的列可以分别连接到不同的接地选择线GSL1至GSL4。例如,单元串CS11和CS12的接地选择晶体管GST可以共同连接到接地选择线GSL1。单元串CS21和CS22的接地选择晶体管GST可以共同连接到接地选择线GSL2。单元串CS31和CS32的接地选择晶体管GST可以共同连接到接地选择线GSL3。单元串CS41和CS42的接地选择晶体管GST可以共同连接到接地选择线GSL4。
设置在从基底(或接地选择晶体管GST)起的相同高度处的存储器单元可以共同连接到单条字线,并且设置在从基底起的不同高度处的存储器单元可以分别连接到不同的字线WL1至WL6。例如,存储器单元MC1可以共同连接到字线WL1。存储器单元MC2可以共同连接到字线WL2。存储器单元MC3可以共同连接到字线WL3。存储器单元MC4可以共同连接到字线WL4。存储器单元MC5可以共同连接到字线WL5。存储器单元MC6可以共同连接到字线WL6。单元串CS11至CS41和CS12至CS42的接地选择晶体管GST可以共同连接到公共源极线CSL。
图6是示出当对存储器块的字线编程时可能发生的干扰的框图。
当在单个存储器单元中存储许多个位时,编程噪声可能导致存储的数据有误差。例如,在VNAND存储器设备中,当一条字线正被编程(写入)时,这种编程可能导致在相邻字线上发生噪声,这可能在稍后读取那些字线时导致误差。几何上一个位于另一个之上的存储器单元(例如,位于相同的柱(pillar)或列中的存储器单元)可能生成特别强的噪声。
这里将参考图6至图11描述示例,其中整个存储器块上写入每单元6个位(6bitsper cell,6BPC)。然而,应当理解,示例性实施例不限于此。例如,示例性实施例可以应用于每单元5个位(5BPC)或每单元4个位(4BPC)方案。
在6BPC方案中,当一个存储器单元的状态(例如,存储器单元包含的电压)属于26=64种状态(6个位的0和1的每种组合的状态)中的一种时,该存储器单元保存6个位的信息。也就是说,在6BPC方案中,对于每个存储器单元有64种可能的状态,其中每种状态对应于64个预先定义的电压电平中的一个。结果,存储器单元自然地分群为64个不同的群组,其中每个群组以此群组中的所有存储器单元共享的电压电平为特性。包含相同电压的存储器单元的群组可以称为逻辑实体,该逻辑实体叫做级(以下也称为存储器单元级)。被包括在相同群组(相同存储器单元级)中的存储器单元可以具有彼此基本相同的电压电平。例如,在6BPC方案中,由于对于维持6BPC方案所需的64个电平中的每一个都有相对小的电压窗口(例如,每电平大约120毫伏),所以被归入到相同的群组中的电压电平之间的差通常可以小于大约120毫伏。
由于每条字线WL物理地连接到多个不同的存储器单元,每个存储器单元具有64个电压电平中的一个,所以每条字线WL可以被描述为具有64个电压电平。因此,在6BPC方案中,字线WL可以具有64个不同的电压电平(26=64),在5BPC方案中,字线WL可以具有32个不同的电压电平(25=32),或者在4BPC方案中,字线WL可以具有16个不同的电压电平(24=16)。随着电压电平变得越来越密集,从一个电平泄漏(leakage)到另一电平的概率以及因此发生误差的概率增加。因此,在6BPC方案中发生误差的概率比在5BPC或4BPC方案中更高。
由于存储器单元按照它们的电压而分群,并且由于该电压可能由于各种干扰而改变,所以一些存储器单元可能改变它们的电压足够大的量以导致误归类(即,一些存储器单元可能被分组到错误的群组中,因为它们现在更接近该群组的电压电平而不是它们自己的正确电压)。由于级(即,群组)对应于存储器单元的假定状态(并且由此对应于其位的内容),所以被误归类的存储器单元的内容将被误读取,从而导致误差。因此,示例性实施例尝试在存储器单元正被读取时校正这个存储器单元的电压,以减少发生的误归类的量。示例性实施例通过利用神经网络来实现这一点,该神经网络尝试通过在存储器读取操作期间修正它们电压中的误差来将出错的存储器单元归类回其预期的群组。
存储相同位信息的存储器单元被编程为具有大致相同的电压电平,并且被一起分组/分群在存储器块601的相同级中。因此,每条字线WL包含按其电压被一起分组到64个不同的组(电压电平)中的存储器单元。再次参考图5,每条串选择线连接到多个单元串。例如,串选择线SSL1连接到单元串CS11和CS12,串选择线SSL2连接到单元串CS21和CS22,等等。因此,一条串选择线连接到不同级的多个不同的存储器单元。作为示例,串选择线SSL1可以连接到与字线WL1相连的存储器单元MC1,其可以包含将其分组为级6的电压,然后可以连接到与字线WL2相连的存储器单元MC2,其可以包含将其分组为级2的不同电压,等等。
在整个存储器块上写入每单元6个位涉及许多写入操作。在编程过程中,随后的编程脉冲可能导致噪声,该噪声显著干扰先前由更早的编程脉冲编程的存储器单元。这种噪声可能严重限制块编程的有效性。这种噪声本质上通常不是线性的。相反,这种噪声通常是(通过每个新的编程脉冲)反复施加的,因此难以进行概率性地建模。
本发明构思的示例性实施例旨在使用机器学习和深度学习工具隐式建模并随后消除此噪声。例如,示例性实施例可以使用神经网络来建模和消除此噪声,神经网络使用监督学习来离线训练。神经网络可以基于由存储器设备利用的BPC方案训练。例如,由于数据分布在6BPC方案、5BPC方案和4BPC方案中的每一个中是不同的,所以神经网络可以被不同地训练以处理根据6BPC方案、5BPC方案或4BPC方案存储的数据。示例性实施例可以在读取操作期间实施,以获得存储器单元的电压电平的更准确的读取。在读取了存储器单元的不准确的(例如,带噪声的)电压测量值之后,在存储器单元被分群到它们各自的电压电平之前,导致不准确的噪声中的至少一些被消除。然后,当从存储器设备读出与分群的单元相对应的数据时,该单元可以被转换成数字数据并由存储器设备输出。示例性实施例可以利用深度残差网络以及额外的预处理和后处理算法来消除此噪声,如下文进一步详细描述的。
尽管图6的示例示出了100条字线WL,但是示例性实施例不限于此。例如,示例性实施例可以用在具有128或256条字线或可被4整除的另一数量的字线的存储器设备中。
参考图6,在示例性实施例中,其中将写入每单元6个位的单个存储器块601被分成四个四分之一(quarter),每个四分之一包括25条垂直堆叠的字线WL(参见字线WL1至WL100)。每个四分之一的字线连接到一条串选择线SSL。例如,字线WL1、WL5…WL97连接到第一串选择线SSL1,字线WL2、WL6…WL98连接到第二串选择线SSL2,字线WL3、WL7…WL99连接到第三串选择线SSL3,字线WL4、WL8…WL100连接到第四串选择线SSL4。在图6中,为了方便说明,一些字线和串选择线没有被明确标记。然而,这些字线和串选择线的位置相对于被标记的字线和串选择线是清楚的。
为了写入存储器块601,通过向与字线相连的存储器单元施加编程脉冲来连续写入字线WL1至WL100,直到所有存储器单元都具有它们的正确电压电平为止。在此写入过程期间,每当目标存储器单元正被编程时,可能发生电压泄漏,并且与目标存储器单元连接到相同的串选择线SSL的所有其他存储器单元都可能被噪声干扰。如上所述,此噪声可能导致在该串选择线SSL上的其它先前编程的存储器单元的电压电平改变,这可能在稍后读取这些存储器单元时导致额外的误差。
例如,如图6所示,字线WL3、WL7…WL99连接到相同的串选择线SSL3。当字线WL7正被编程(写入)时(图6中的“被编程的字线”),连接到字线WL7的存储器单元被编程(图6中的“被编程的单元”)。在图6的示例中,被编程的存储器单元是目标存储器单元。当连接到字线WL7和串选择线SSL3的目标存储器单元被编程时,连接到相同串选择线SSL3的所有其他存储器单元可能被噪声干扰(图6中的“受扰单元”)。例如,当目标存储器单元正被编程到高电压电平而连接到相同串选择线SSL3的相邻存储器单元(例如,受扰单元)具有低电压电平时,对目标存储器单元的编程可能对其相邻单元造成特别大的干扰。
例如,当作为对存储器块601的许多字线WL进行编程的结果,干扰重复发生时,这些干扰可能导致高达几百毫伏的电压偏移。在某些异常情况下,可能发生更大的电压偏移。由于对于维持6BPC方案所需的64个电平中的每一个都有相对小的电压窗口(例如,每电平大约120毫伏),所以这种干扰可能致使存储器单元阵列221的全部电平是不可读的,这可能导致当从存储器单元阵列221读取数据时的大量错误。本发明构思的示例性实施例在存储器读取操作期间通过尝试将每条字线WL恢复到其在该字线WL被编程之后且相邻字线WL的编程导致干扰之前所处的相应状态来解决这个问题。例如,每条字线WL可以在存储器读取操作期间通过将存储器单元解码回它们保存的信息位来恢复。因此,在示例性实施例中,存储器单元可以在存储器读取操作期间被去噪,以校正先前在存储器写入操作期间发生的误差。
图7是示出根据本发明构思的示例性实施例的对存储器块执行的连续噪声消除过程的概述的流程图。
图7所示的连续噪声消除过程在存储器块读取阶段期间执行,并且可以校正在存储器块写入阶段期间导致的误差。连续噪声消除过程接受带噪声的存储器块作为其输入,然后返回净化(cleaned)的存储器块(去噪的存储器块)作为其输出。净化的存储块将按每SSL返回,如下所述。在6BPC方案中,输出的去噪的存储器块然后可以被读取为6*n_wls个页的位,其中n_wls是存储器块中的字线的数量。
如下所示的算法1对应于图7的流程图,并且描述了根据示例性实施例如何实施图7的操作701至707中的每一个。算法1中使用的值对应于6BPC方案。例如,算法1中的X对应于在操作701中作为输入接收的带噪声的SSL,算法1中的1对应于操作702,算法1中的2对应于操作703,算法1中的3对应于操作704,算法1中的4对应于操作705,算法1中的5对应于操作706,并且算法1中的对应于操作707中的去噪的SSL输出。
算法1:25条字线
·X-带噪声的数据-25个字线X 147456单元矩阵
·Mi-电平i的恒定均值 0≤i<64
1.数据归一化
(a)X=(X+2500)/(6500+2500)*2-1
2.电平均值校正
(a)Ti=电平i,i+1的阈值 0≤i<64
(b)Li=电平i={x|Ti-1≤x<Ti,x∈X}
(c)μi=mean(Li)
(d)Li=Li-(μi-Mi)={x-(μi-Mi)|x∈Li}
3.ResNet噪声消除
4.字线和电平的跳过
5.数据去归一化
参考图7,操作702和703属于噪声消除方法的预处理阶段,操作704和705属于噪声消除方法的训练/推断阶段,操作706属于噪声消除方法的后处理阶段。
在操作701中,读取将要对其执行连续噪声消除的带噪声的SSL,并将其作为执行噪声消除的神经网络的输入。也就是说,在操作701中,连接到带噪声的SSL的存储器单元的电压电平被接收作为输入。在6BPC方案中,对四条SSL独立运行(对存储器块中的每条SSL运行一次)算法1,如下文进一步描述的。算法1可以对四条SSL并行地或顺序地独立执行。因此,一旦存储器块中的四条SSL(在6BPC方案中)中的每一条作为输入被接收并被去噪,就认为带噪声的存储器块被去噪。下面参考图8更详细地描述神经网络。例如,在操作701中,连接到正在对其执行连续噪声消除的带噪声的SSL的存储器单元的电压电平可以从带噪声的SSL读取和提取,并作为输入提供给神经网络。在示例性实施例中,存储器单元的电压电平中的每一个的值可以在大约-3000毫伏到大约6000毫伏之间。
参考图6和图7,在操作701中,在示例性实施例中,串选择线SSL1、SSL2、SSL3和SSL4中的每一条连接到一组字线,并且串选择线SSL1、SSL2、SSL3和SSL4中的每一条被独立地处理以对与其相连的字线(和存储器单元)去噪。例如,为了对存储器块601执行噪声消除方法,操作702至706(算法1中的操作1至5)可以对串选择线SSL1至SSL4连续执行4次。一旦串选择线SSL1至SSL4中的每一条已被去噪,则最终认为存储器块601被去噪。例如,操作702至706可以首先对连接到Quarter 0的串选择线SSL1执行,然后对连接到Quarter 1的串选择线SSL2执行,然后对连接到Quarter 2的串选择线SSL3执行,然后对连接到Quarter 3的串选择线SSL4执行。因此,神经网络的输入的宽度等于连接到单条串选择线SSL的字线WL的数量(例如,存储器块中的字线WL的数量除以4)(例如,图6中的25)。
在操作702中,在操作701中接收到的数据在作为输入提供给神经网络之前被归一化。例如,在操作702中,连接到输入SSL并在操作701中提取的存储器单元的电压电平中的每一个被归一化,使得神经网络接收的输入具有固定的上限和下限。电压电平的归一化可以允许数据在用于执行噪声消除的神经网络中拟合得更好。在示例性实施例中,在操作701中作为输入(经由输入SSL)接收的存储器单元的所有电压电平被归一化到[-1,1]的范围。然而,示例性实施例不限于此。
在操作703中,执行电压电平均值校正。也就是说,对归一化的电压电平执行均值校正。例如,归一化的电压电平的均值的偏移被补偿,以允许电压电平被提供作为神经网络的输入。作为对归一化的电压电平执行均值校正的结果,当电压电平作为输入被提供给神经网络时,示例性实施例中的神经网络只需学习校正电压电平的偏差。
在示例性实施例中,使用包括净化的(去噪的)存储器块的电压电平的均值的(多个)预定义表来执行电压电平均值校正。该表的尺寸可以是n_wls*n_levels,其中n_wls是字线的数量,n_levels是电平的数量,并且每个存储器单元(i,j)包含字线i中电平j的均值的估计配置(placement)。可以通过对许多不同的存储器块取平均来估计带噪声的存储器块的净化版本的值。在示例性实施例中,可以考虑存储器块随时间的变化。带噪声的存储器块中的每条字线WL可以被分成64个电压电平(在6BPC方案中),并且估计的噪声电平可以被移动,使得它们的均值和净化的预定义均值一致。通过将许多存储器单元的估计的均值带入净化均值的几十毫伏之内,执行电压电平均值校正可以极大地减小它们的整体偏移,从而改进神经网络学习的能力。
例如,在操作703中,带噪声的电压电平分布的均值被校正为尽可能接近原始的(净化的)电压电平分布均值。这允许神经网络能够专注于降低噪声的方差,只需对均值进行微小的校正。例如,由于此间隔校正对于该级中的所有存储器单元是共同的,所以带噪声的电压电平分布被校正为更接近没有噪声的情况下的分布。结果,神经网络可以通过仅学习存储器单元特定的噪声来执行噪声消除。
即使在操作703中执行的电压电平均值校正不精确,均值之间的大部分差仍然可以消除。结果,例如,通过关注深入细节而不是把时间花费在粗略的差上,神经网络可以工作得更少来将每个存储器单元带入其正确(净化)的位置。结果,可以改进噪声消除的准确度和精度。例如,如果净化的电平数据和带噪声的电平数据之间的均值的差是150毫伏,并且被校正到-10,则神经网络的性能和效率将增加,因为神经网络将只需要校正每个存储器单元大约(10+noise_std)毫伏而不是(150+noise_std)毫伏。
在操作704中,使用神经网络来执行噪声消除。神经网络可以是例如残差神经网络(ResNet)。ResNet可以消除输入数据中存在的噪声,并且返回净化的(去噪的)存储器块。
可以基于使用数据库的深度学习来执行噪声消除。深度学习是机器学习的子概念,并且是与人工智能相关的一种机器学习的神经网络模型。各种神经网络架构可以用于深度学习。例如,人工神经网络(artificial neural network,ANN)、深度神经网络(deepneural network,DNN)、卷积神经网络(convolutional neural network,CNN)、递归神经网络(recurrent neural network,RNN)和生成对抗网络(generative adversarialnetwork,GAN)可以用于深度学习。然而,可用于深度学习的网络架构不限于此。
下面参考图8更详细地描述如在操作704中实施的使用神经网络执行噪声消除。
参考操作705,尽管对存储器块执行噪声消除可以提供对一些存储器单元的误码率(bit error rate,BER)的改进,但是可能的是,执行噪声消除可能对其他存储器单元没有影响,或者可能实际上导致其他存储器单元的BER变得更差。在操作705中,在训练期间执行有效性检查,并且在推断期间执行基于有效性检查的结果的电平跳过(level skip)操作。
例如,在训练期间,可以执行有效性检查,以确定噪声消除对于哪些字线WL上的哪些电平改进了BER,以及噪声消除对于哪些字线WL上的哪些电平没有改进BER或使BER更差。有效性检查可以通过检查每条字线WL上的每个电平并且比较在执行噪声消除之前的每个电平的BER与在执行噪声消除之后的BER来实施。因为在训练期间存储器单元的电压电平的真实值是已知的,所以可以进行这种分析。有效性检查的结果可以保存在例如(多个)表中,并且在推断期间用于执行电平跳过操作。
仍然参考操作705,在推断期间,基于有效性检查的结果执行电平跳过操作。在电平跳过操作中,通过操作704期间执行的噪声消除已经变得更差的电压电平恢复到其在从存储器设备读出之前的原始的带噪声的状态。也就是说,属于BER没有改进(或者变得更差)的字线WL上的电平的、存储器单元的电压电平恢复到它们在从存储器设备读出之前的在噪声消除前的电压电平。因此,示例性实施例仅在这种应用有可能提供积极结果时才应用噪声消除,而在这种应用将不会改进结果或将会使结果变得更差时避免应用噪声消除。
在操作706中,执行数据去归一化,以将来自[-1,1]范围的净化的(去噪的)数据转换回原始范围(例如,[-3000,6000])。
在操作707中,神经网络输出在操作701中输入的SSL的去噪的版本。当存储器设备输出(例如,从存储器设备读取)与SSL相对应的数据时,可以使用神经网络输出的SSL的去噪的版本,如下面参考图8进一步详细描述的。一旦存储器块中的每个SSL(例如,图6中的SSL1到SSL4)已被去噪,就认为存储器块601被去噪。
在示例性实施例中,可以省略操作702和706和/或操作703。
图8是示出根据本发明构思的示例性实施例的在图7的操作704中使用的神经网络的结构的图,并且更具体地,示出残差神经网络(ResNet)的结构。
在示例性实施例中,在图7的操作704中执行的噪声消除是使用具有若干相同的连续残差块的ResNet来执行的。这种ResNet的示例如图8所示。该配置允许执行迭代噪声消除过程,其中仅学习噪声(例如,其中仅学习净化的数据和带噪声的数据之间的差)。例如,ResNet可以学习连续地对数据去噪,只学习每次迭代的噪声增量。
ResNet的输入是单条带噪声的SSL(例如,图6所示的SSL1、SSL2、SSL3和SSL4中的一条),并且输出是去噪的SSL。由于示例性实施例在每次执行噪声消除时利用单条SSL,因此在示例性实施例中仅测量电压的损耗(带噪声的单元电压和净化的单元电压之间的间隔)。然而,由于原始BER是相对于电压间隔的非单调测量,所以仅测量电压的损耗就允许降低或最小化原始BER。
在图8中,每个层801-807、809-815和817中的数字指示该层中神经元的数量。输入层801和输出层817中的指示“x1”指示这些层的形状。例如,输入层801和输出层817中的每一个包括25个神经元,其形状为25的矢量。输入层的宽度等于连接到单条串选择线SSL的字线WL的数量(例如,存储器块中的字线WL的数量除以4)(例如,如图6所示的6BPC方案中的25)。输入层801对应于为了去噪而馈送到神经网络中的带噪声的SSL。
神经网络中每一层的类型都是完全连接的层。也就是说,每一层中的每个神经元都连接到下一层中的每个神经元。这些神经元之间的连接具有相应的权重,这些权重是在训练期间学习的。当每个层被来自前一层的某些输入填充时,它将输入乘以某些权重,然后在将结果作为下一层的输入传送之前执行非线性操作(例如,修正线性单元(RectifiedLinear Unit,ReLU)函数)。
层之间的箭头指示用于该层中的神经元的激活功能的类型。在示例性实施例中,作为非线性函数的修正线性单元(ReLU)函数被用作层802和803、803和804、804和805、805和806、806和807、809和810、810和811、811和812、812和813、813和814以及814和815之间的激活函数。ReLU激活函数通过计算神经元的输入的加权和并加上偏差来确定该神经元是否应该被激活,从而将非线性引入神经元的输出。线性函数用作层801和操作808、层807和操作808、操作808和层809、层809和操作816、层815和操作816以及操作816和层817之间的激活函数。也就是说,在这些层和操作之间,不执行非线性激活功能。
操作808将层807的输出与输入层801相加,并将此输出馈送到层809。操作816将层815的输出与层809相加,并将此输出馈送到输出层817。输出层817输出去噪的SSL。
当从存储器设备输出数据(例如,从存储器设备读取)时,可以使用由输出层817输出的去噪的SSL。例如,参考图6,假设存储在连接到串选择线SSL3的存储器单元(例如,与字线WL3、WL7、…WL99相连的存储器单元中的一个)中的数据正被从存储器设备读出。例如,当被用户访问时、当被传递到数据处理的后续阶段时,等等,可以从存储器设备读出数据。当从存储器设备读出数据时,可以执行上面参考图7描述的操作,以在从存储器设备读出数据之前对数据去噪(例如,校正数据)。
例如,当请求从与字线WL3、WL7、…WL99相连的存储器单元中的一个读取数据时,神经网络首先通过将与字线WL3、WL7、…WL99相连的存储器单元中的至少一个的电压电平从第一电压电平改变到第二电压电平来对串选择线SSL3进行去噪,其中第一电压电平被归类为属于(6BPC方案的64个群组中的)第一群组,并且第二电压电平被归类为属于(6BPC方案的64个群组中的)第二群组。
应当注意,此时这样的存储器单元的电压电平在存储器设备内实际上没有改变,由于出于上述相同的原因,对存储器单元的写入会重新引入噪声。相反,由神经网络输出的这种存储器单元的改变的(校正的)电压电平是在从存储器设备读出这样的存储器单元的数据时由存储器设备输出的,而不是此时正被读出的存储器设备内的这样的存储器单元的实际电压电平。也就是说,由神经网络生成的数据的更净化的、去噪的版本由存储器设备输出,而实际存储在存储器设备中的数据的带噪声的版本未被触及,并且在存储器设备中保持不变。因此,每当从存储器设备读出该数据时,可以再次执行该过程。
上文参考图7描述的电平跳过操作705可以在从存储器设备读出数据时执行,使得当从存储器设备读出时,通过噪声消除已变得更差的电压电平不改变(例如,可以为这些存储器单元读出存储器设备中实际的、未改变的电压电平)。数据的更净化的、去噪的版本(以及根据电平跳过操作705有意保持不变的任何数据)可以在从存储器设备读出之前被转换成数字形式。
由于通过将电平映射到位的格雷(Grey)码来确定BER,所以在某些情况下,降低电压误差可能潜在地增加每单元的错误位的数量。因此,示例性实施例可以在仍然单调且另外具有恒定损耗的范围内近似BER损耗。例如,根据示例性实施例,损耗函数可以是归一化的并且相对于图9所示的电压间隔,在两个电平间隔上近似线性损耗,并且然后是恒定的。
例如,图9中的曲线图示出了根据示例性实施例的损耗函数相对于字线中的电平的分布的性态(behavior)。例如,损耗函数可以关注(即,增加损耗)小的间隔(分隔达两个电平),并且从该点开始固定该损耗(即,通过将大于两个电平的间隔的误差视为由两个电平的间隔定上限)。这迫使神经网络改进小的误差,其中任何校正都将转换为BER的改进,而不太关注大的误差,因为校正这样的大的误差不能保证有助于BER,因为它不是单调函数。
图10是示出根据本发明构思的示例性实施例的使用神经网络对存储器设备执行噪声消除的结果的曲线图。图11是示出根据本发明构思的示例性实施例的对存储器块的特定电平执行噪声消除的效果的曲线图。
如图10所示,在测试场景中,根据本发明构思的示例性实施例,使用神经网络对存储器设备执行噪声消除校正了一些额外的噪声,并将带噪声的数据的整体原始BER改善大约14%至约17%。例如,在图10中,线A表示具有约0.1779的均值BER的带噪声的数据,线B表示具有约0.1478的均值BER的预测数据(例如,根据示例性实施例的去噪的数据),线C表示具有约0.0735的均值BER的最佳数据(例如,无噪声的数据)。测试结果是通过测试使用6BPC方案写入的V2 NAND的不同存储器块获得的。在图11中示出了对存储器块的特定电平执行噪声消除的效果的示例。
图11示出了根据示例性实施例的对字线(在6BPC方案中)中的64个电平中的两个连续电平进行去噪的示例。图11示出了由线A表示的原始(最佳)电平分布、由线B表示的带噪声的分布以及由线C表示的预测的(去噪的)分布。图11还示出了字线WL1和WL2的均值和标准差。可以假设其他电平的性态类似于图11所示的两个电平。在图11中,实线和虚线各自代表一个电平(例如,分别是字线8的电平21和22)。这些分布是每电平的存储器单元电压的分布,并且垂直线是均值。如图11所示,在测试场景中,根据示例性实施例执行噪声消除将电平均值校正回它们原始的电压电平,并且即使噪声可能保留在最低电平的存储器单元中,也显著降低了每个电平的存储器单元分布的偏差,该最低电平是受干扰影响最大的电平。
图12是根据本发明构思的示例性实施例的包括非易失性存储器系统的计算系统1200的框图。
图12中的非易失性存储器系统可以是图1中所示的存储器系统200。在可以作为例如移动设备或台式计算机的计算系统1200中,非易失性存储器系统可以安装为非易失性存储器系统1201,然而示例性实施例不限于此。
计算系统1200可以包括,例如,包括CPU的主机1202、RAM 1203、用户接口1204和设备驱动器1205。主机1202可以是图1所示的主机100,并且设备驱动器1205可以是图1所示的存储器设备驱动器111。这些元件电连接到总线1206。非易失性存储器系统1201可以连接到设备驱动器1205。主机1202可以控制整个计算系统1200,并且执行与通过用户接口1204输入的用户命令相对应的操作。RAM 1203可以充当主机1202的数据存储器。主机1202可以通过设备驱动器1205向非易失性存储器系统1201写入用户数据或者从非易失性存储器系统1201读取用户数据。在图12中,控制非易失性存储器系统1201的操作和管理的设备驱动器1205被示出为设置在主机1202外部,然而示例性实施例不限于此。例如,在示例性实施例中,设备驱动器1205可以设置在主机1202内部。
在本发明构思的示例性实施例中,提供了三维(3D)存储器阵列。3D存储器阵列单片地形成存储器单元的阵列的一个或更多个物理层级中,该存储器单元具有设置在硅基底上方的有源区域以及与这些存储器单元的操作相关联的电路,无论这种相关联的电路是在这种基底上方还是在这种基底内。术语“单片”意指该阵列的每个层级的层直接沉积在该阵列的每个下面的层级的层上。
在本发明构思的示例性实施例中,3D存储器阵列包括垂直取向的垂直NAND串,使得至少一个存储器单元位于另一存储器单元之上。该至少一个存储器单元可以包括电荷俘获层。在此引入作为参考的以下专利文件描述了三维存储器阵列的合适配置,其中三维存储器阵列被配置成多个级,在级之间共享字线和/或位线:美国专利第7679133号、第8553466号、第8654587号和第8559235号以及美国专利公开第2011/0233648号。
如本发明构思领域中是常规的,示例性实施例按照功能块、单元和/或模块来描述并在附图中示出。本领域技术人员将理解,这些块、单元和/或模块由可以使用基于半导体的制造技术或其他制造技术形成的电子(或光学)电路(诸如,逻辑电路、分立组件、微处理器、硬连线电路、存储器元件、布线连接等)物理地实施。在块、单元和/或模块由微处理器或类似物实施的情况下,使用软件(微代码)将它们编程以执行这里描述的这种功能,并且可选地由固件和/软件驱动它们。可替代地,每个块、单元和/或模块可以由专用硬件实施,或者作为执行某些功能的专用硬件和执行其他功能的处理器(例如,一个或更多个编程的微处理器和相关电路)的组合来实施。此外,在不脱离本发明构思的范围的情况下,示例性实施例的每个块、单元和/或模块可以在物理上被分成两个或更多个相互作用和离散的块、单元和/或模块。此外,在不脱离本发明构思的范围的情况下,示例性实施例的块、单元和/或模块可以物理地组合成更复杂的块、单元和/或模块。
本发明的示例性实施例可以直接体现在硬件、由处理器运行的软件模块或这两者的组合中。软件模块可以有形地体现在非暂时性程序存储设备上,诸如,在RAM存储器、闪速存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器或本领域已知的任何其他形式的存储介质中。示例性存储介质可以联接到处理器,使得处理器可以从存储介质读取信息以及向存储介质写入信息。替代地,存储介质可以集成到处理器中。此外,在一些方面,处理器和存储介质可以存在于专用集成电路(application specific integrated circuit,ASIC)中。
虽然已经参照本发明构思的示例性实施例具体示出和描述了本发明构思,但是本领域普通技术人员将理解,在不脱离由所附权利要求限定的本发明的精神和范围的情况下,可以在形式和细节上进行各种改变。
Claims (20)
1.一种存储器系统,包括:
存储器设备;和
存储器控制器,其包括处理器和内部存储器,
其中,所述存储器设备在所述存储器控制器的控制下操作,并且包括神经网络的计算机程序被存储在所述存储器控制器的所述内部存储器中或所述存储器设备中;
其中,所述处理器被配置成运行所述计算机程序以执行以下操作:
(a)从连接到一条串选择线(SSL)的多个存储器单元中的每一个提取电压电平,其中,所述存储器单元和所述SSL被包括在所述存储器设备的存储器块中;
(b)将所述存储器单元的所述电压电平作为输入提供给所述神经网络;以及
(c)使用所述神经网络,通过将所述存储器单元的所述电压电平中的至少一个从第一电压电平改变到第二电压电平来对所述SSL执行噪声消除,
其中,所述第一电压电平被归入到第一群组的存储器单元中,并且所述第二电压电平被归入到不同于所述第一群组的第二群组的存储器单元中。
2.根据权利要求1所述的存储器系统,其中,所述处理器还被配置成运行所述计算机程序以:
在所述神经网络的训练模式期间执行有效性检查,其中,执行所述有效性检查包括:
比较在对所述SSL执行噪声消除之前所述存储器单元中的每一个的误码率(BER)与在对所述SSL执行噪声消除之后所述存储器单元中的每一个的BER。
3.根据权利要求2所述的存储器系统,其中,所述处理器还被配置成运行所述计算机程序以:
在所述神经网络的推断模式期间执行电平跳过操作,其中,执行所述电平跳过操作包括:
基于所述有效性检查,识别在对所述SSL执行噪声消除之后所述BER没被改进的至少一个存储器单元;和
将所识别的至少一个存储器单元的对应的电压电平恢复到在对所述SSL执行噪声消除之前所识别的至少一个存储器单元具有的值。
4.根据权利要求1所述的存储器系统,其中,所述处理器还被配置成运行所述计算机程序以:
在对所述SSL执行噪声消除之前,对所述存储器单元的所述电压电平执行数据归一化;和
在对所述SSL执行噪声消除之后,对所述存储器单元的所述电压电平执行数据去归一化。
5.根据权利要求1所述的存储器系统,其中,所述处理器还被配置成运行所述计算机程序以:
在对所述SSL执行噪声消除之前,对所述存储器单元的所述电压电平执行电压电平均值校正。
6.根据权利要求1所述的存储器系统,其中,所提取的电压电平的数量对应于连接到所述SSL的字线的数量。
7.根据权利要求1所述的存储器系统,其中,在所述存储器设备的读取操作期间,当所述存储器块正被读取时,所述处理器运行所述计算机程序以执行操作(a)至(c)。
8.根据权利要求1所述的存储器系统,其中,每个存储器单元存储6位,每个存储器单元具有与64个预先定义的电压电平相对应的64种可能的状态中的一种,并且被包括在所述存储器块中的所述SSL是被包括在所述存储器块中的四条SSL中的一条。
9.根据权利要求8所述的存储器系统,其中,所述处理器运行所述计算机程序,以对被包括在所述存储器块中的所述四条SSL中的每一条独立地执行操作(a)至(c)。
10.根据权利要求8所述的存储器系统,其中,所述第一群组和所述第二群组被包括在与所述64个预先定义的电压电平相对应的64个群组当中。
11.根据权利要求1所述的存储器系统,其中,所述神经网络被存储在所述存储器设备上并且在所述存储器设备上运行。
12.根据权利要求1所述的存储器系统,其中,所述神经网络是残差神经网络(ResNet)。
13.根据权利要求1所述的存储器系统,其中,所述神经网络包括:
输入层,其具有与所提取的电压电平的数量相对应的宽度;和
输出层,其具有与所提取的电压电平的数量相对应的宽度,
其中,所述神经网络中的每个层是完全连接的层。
14.一种使用神经网络对存储器设备执行噪声消除的方法,包括:
(a)从连接到一条串选择线(SSL)的多个存储器单元中的每一个提取电压电平,其中,所述存储器单元和所述SSL被包括在所述存储器设备的存储器块中;
(b)将所述存储器单元的所述电压电平作为输入提供给所述神经网络;和
(c)使用所述神经网络,通过将所述存储器单元的所述电压电平中的至少一个从第一电压电平改变到第二电压电平来对所述SSL执行噪声消除,
其中,所述第一电压电平被归入到第一群组的存储器单元中,所述第二电压电平被归入到不同于所述第一群组的第二群组的存储器单元中。
15.根据权利要求14所述的方法,还包括:
在所述神经网络的训练模式期间执行有效性检查,其中,执行所述有效性检查包括:
比较在对所述SSL执行噪声消除之前所述存储器单元中的每一个的误码率(BER)与在对所述SSL执行噪声消除之后所述存储器单元中的每一个的BER。
16.根据权利要求15所述的方法,还包括:
在所述神经网络的推断模式期间执行电平跳过操作,其中,执行所述电平跳过操作包括:
基于所述有效性检查,识别在对所述SSL执行噪声消除之后所述BER没被改进的至少一个存储器单元;和
将所识别的至少一个存储器单元的对应的电压电平恢复到在对所述SSL执行噪声消除之前所识别的至少一个存储器单元具有的值。
17.根据权利要求14所述的方法,还包括:
在对所述SSL执行噪声消除之前,对所述存储器单元的所述电压电平执行数据归一化;和
在对所述SSL执行噪声消除之后,对所述存储器单元的所述电压电平执行数据去归一化。
18.根据权利要求14所述的方法,还包括:
在对所述SSL执行噪声消除之前,对所述存储器单元的所述电压电平执行电压电平均值校正。
19.根据权利要求14所述的方法,其中,所提取的电压电平的数量对应于连接到所述SSL的字线的数量。
20.一种用于使用神经网络对存储器设备执行噪声消除的计算机程序产品,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有通过其体现的程序指令,所述程序指令可由处理器运行以使所述处理器:
(a)从连接到一条串选择线(SSL)的多个存储器单元中的每一个提取电压电平,其中,所述存储器单元和所述SSL被包括在所述存储器设备的存储器块中;
(b)将所述存储器单元的所述电压电平作为输入提供给所述神经网络;和
(c)使用所述神经网络,通过将所述存储器单元的所述电压电平中的至少一个从第一电压电平改变到第二电压电平来对所述SSL执行噪声消除,
其中,所述第一电压电平被归入到第一群组的存储器单元中,所述第二电压电平被归入到不同于所述第一群组的第二群组的存储器单元中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/585,186 | 2019-09-27 | ||
US16/585,186 US11221769B2 (en) | 2019-09-27 | 2019-09-27 | Performing noise cancellation on a memory device using a neural network |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112582004A true CN112582004A (zh) | 2021-03-30 |
Family
ID=75119385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010277924.1A Pending CN112582004A (zh) | 2019-09-27 | 2020-04-10 | 存储器系统、执行噪声消除的方法和计算机程序产品 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11221769B2 (zh) |
KR (1) | KR20210038290A (zh) |
CN (1) | CN112582004A (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11742879B2 (en) | 2019-03-13 | 2023-08-29 | Samsung Electronics Co., Ltd. | Machine-learning error-correcting code controller |
DE102022101183A1 (de) | 2021-10-06 | 2023-04-06 | Samsung Electronics Co., Ltd. | Fehlerkorrekturcodecontroller für maschinelles Lernen |
KR102571934B1 (ko) * | 2021-11-15 | 2023-08-29 | 삼성전자주식회사 | 스토리지 시스템 및 스토리지 컨트롤러의 동작방법 |
US11791840B1 (en) | 2022-04-14 | 2023-10-17 | Samsung Electronics Co., Ltd. | Hard decision decoding of non-volatile memory using machine learning |
US12001693B2 (en) * | 2022-06-22 | 2024-06-04 | Western Digital Technologies, Inc. | Data storage device with noise injection |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101406279B1 (ko) * | 2007-12-20 | 2014-06-13 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 읽기 페일 분석 방법 |
US8724390B2 (en) * | 2011-01-19 | 2014-05-13 | Macronix International Co., Ltd. | Architecture for a 3D memory array |
US10817650B2 (en) * | 2017-05-19 | 2020-10-27 | Salesforce.Com, Inc. | Natural language processing using context specific word vectors |
US11610116B2 (en) * | 2018-12-31 | 2023-03-21 | SK Hynix Inc. | Storage device performance optimization using deep learning |
JP2020144958A (ja) * | 2019-03-05 | 2020-09-10 | キオクシア株式会社 | メモリシステムおよび方法 |
-
2019
- 2019-09-27 US US16/585,186 patent/US11221769B2/en active Active
-
2020
- 2020-04-10 CN CN202010277924.1A patent/CN112582004A/zh active Pending
- 2020-06-03 KR KR1020200066948A patent/KR20210038290A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
US20210096751A1 (en) | 2021-04-01 |
KR20210038290A (ko) | 2021-04-07 |
US11221769B2 (en) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111190536B (zh) | 基于人工神经网络模型推断读取电平的存储设备 | |
US11221769B2 (en) | Performing noise cancellation on a memory device using a neural network | |
US11953980B2 (en) | Memory sub-system with dynamic calibration using component-based function(s) | |
US20160217867A1 (en) | Inferring threshold voltage distributions associated with memory cells via interpolation | |
US20220013189A1 (en) | Error detection and correction using machine learning | |
US9830219B2 (en) | Encoding scheme for 3D vertical flash memory | |
EP3944152A2 (en) | Mobile electronic device and methods for programming data to and reading data from a memory device | |
US11915766B2 (en) | Automatic program voltage selection network | |
US11527299B2 (en) | Polar neural network decoder for memory devices | |
US11817170B2 (en) | Storage controller determining error count, method of operating the same, and method of operating storage device including the same | |
US11482287B2 (en) | Memory system and method of controlling memory system | |
US20230057711A1 (en) | System and method for dynamic inter-cell interference compensation in non-volatile memory storage devices | |
US11791840B1 (en) | Hard decision decoding of non-volatile memory using machine learning | |
EP4160603A1 (en) | Storage controller determining error count, method of operating the same, and method of operating storage device including the same | |
US8711620B2 (en) | Memory device having collaborative filtering to reduce noise | |
KR20220127168A (ko) | 다중 임계값-전문가 기계 학습 모델을 사용한 노이즈 제거 | |
DE102021129662A1 (de) | Betriebsverfahren eines speichercontrollers unter verwendudng eines zählwerts eines speicherdirektzugriffs, speichervorrichtung mit speichercontroller, und betriebsverfahren einer speichervorrichtung | |
KR20220123597A (ko) | 비휘발성 메모리에서의 최적의 레벨 순열을 사용하는 메모리 셀 레벨 할당 | |
CN115203081A (zh) | 使用历史表的存储控制器的操作方法以及包括该存储控制器的存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |