CN113762457A - 解码的方法、训练神经网络的方法和存储器装置 - Google Patents
解码的方法、训练神经网络的方法和存储器装置 Download PDFInfo
- Publication number
- CN113762457A CN113762457A CN202011407771.4A CN202011407771A CN113762457A CN 113762457 A CN113762457 A CN 113762457A CN 202011407771 A CN202011407771 A CN 202011407771A CN 113762457 A CN113762457 A CN 113762457A
- Authority
- CN
- China
- Prior art keywords
- information bits
- memory device
- memory
- neural network
- voltage
- 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
- 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
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
-
- 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
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- 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
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- 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
- 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/08—Address circuits; Decoders; Word-line control 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
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K7/00—Modulating pulses with a continuously-variable modulating signal
- H03K7/02—Amplitude modulation, i.e. PAM
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Probability & Statistics with Applications (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Operations Research (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Neurology (AREA)
- Read Only Memory (AREA)
Abstract
公开了解码的方法、训练神经网络的方法和存储器装置。描述在存储器装置中利用神经网络来使用纠错码的方法、设备、非暂时性计算机可读介质和系统。所述方法、设备、非暂时性计算机可读介质和系统的实施例可从物理信道接收信号,其中,所述信号基于表示使用纠错编码方案编码的信息比特的调制的符号;使用特征提取器从所述信号提取特征,特征提取器使用从物理信道收集的概率数据来训练;以及利用神经网络解码器将提取的特征作为输入来对所述信息比特进行解码。
Description
技术领域
以下总体上涉及利用神经网络对纠错码进行解码,更具体地,涉及在存储器装置中利用神经网络对纠错码进行解码。
背景技术
存储器装置是通常使用的用于存储数据的电子组件。NAND闪存装置允许在每个存储器单元中存储若干比特数据,从而提供制造成本及性能方面的改进。存储有多比特数据的存储器单元可被称为多层存储器单元。多层存储器单元将存储器单元的阈值电压范围划分为若干电压状态,并且使用存储器单元电压电平提取写入到存储器单元的数据值。
在一些情况下,可在数据被编程到存储器装置之前对数据进行编码,以便提供校正读取错误的能力。极化编码方案(polar coding scheme)是高效纠错码(ECC)方案的示例。然而,许多解码器假定加性高斯白噪声(AWGN)模型,但由闪存存储器单元引入的噪声可能与AWGN模型不一致。此外,对极化解码方案进行解码可能是计算密集型的。因此,在本领域中需要用于对存储在存储器装置中的信息进行解码的改进的系统和方法。
发明内容
描述了利用神经网络对纠错码进行解码的方法、设备、非暂时性计算机可读介质和系统。所述方法、设备、非暂时性计算机可读介质和系统的实施例可从物理信道接收信号,其中,所述信号基于表示使用纠错编码方案编码的信息比特的调制的符号;使用特征提取器从所述信号提取特征,特征提取器使用从物理信道收集的概率数据来训练;以及利用神经网络解码器将提取的特征作为输入来对所述信息比特进行解码。
描述了用于利用神经网络对纠错码进行解码的方法、设备、非暂时性计算机可读介质和系统。所述方法、设备、非暂时性计算机可读介质和系统的实施例可准备包括地面真实信息比特和从存储器装置读取的电压电平的标记的训练集,其中,所述电压电平基于使用调制符号的集合对地面真实信息比特进行编码并且将编码的地面真实信息比特编程到存储器装置;基于标记的训练集识别多个条件概率质量函数,其中,所述多个条件概率质量函数中的每个描述调制符号的集合中的一个的电压电平概率;从存储器装置读取电压电平;至少部分地基于条件概率质量函数从所述电压电平提取特征;将神经网络解码器应用于所述特征以生成预测的信息比特;将预测的信息比特与地面真实信息比特进行比较;以及基于比较来更新神经网络解码器。
描述了利用神经网络对纠错码进行解码的存储器装置和方法。存储器装置和方法的实施例可包括:多个存储器单元,被配置为存储编码的信息比特;特征提取器,被配置为基于针对所述存储器装置收集的概率数据从读取的电压电平提取特征;以及神经网络解码器,被配置为使用提取的特征作为输入来对编码的信息进行解码。
附图说明
通过参照附图详细描述本发明构思的示例性实施例,本发明构思的特征将变得更加清楚。
图1是示出根据发明构思的示例性实施例的包括存储器系统的数据处理系统的实现的框图。
图2是示出根据发明构思的示例性实施例的图1的存储器系统的框图。
图3是根据发明构思的示例性实施例的图1的非易失性存储器装置的详细框图。
图4是根据发明构思的示例性实施例的图2的存储器单元阵列的框图。
图5是根据发明构思的示例性实施例的图4的存储器单元阵列的存储器块的电路图。
图6示出根据本公开的方面的包括神经网络解码器的存储器装置的示例。
图7示出根据本公开的方面的利用神经网络对纠错码进行解码的处理的示例。
图8示出根据本公开的方面的训练用于对纠错码进行解码的神经网络的处理的示例。
具体实施方式
本公开描述了用于纠错的系统和方法,更具体地,描述了利用神经网络对纠错码进行解码的系统和方法。
本公开描述了利用神经网络(更具体地,在存储器装置中)对纠错码进行解码的系统和方法。
NAND(与非)编程是基于向存储器单元施加电压的复杂处理。然而,单元电压可能受到诸如电流电压电平、脉冲功率和单元间干扰的变量的影响。单元电压还可受抑制的单元中断(inhibited cell disruption)、字线(WL)间耦合和单元保持(cell retention)的影响。另外,写入NAND装置的结果是随机的。例如,数据也可能有噪声,从而导致观察的问题。
解码器是用于将二进制信息从编码的输入转换为唯一输出的逻辑电路。可使用多个输入和多个输出。信道编码对数据流执行编码操作和解码操作,以校正通信错误(诸如,干扰或噪声)。在发送装置处利用第一组操作对第一数据流执行信道编码,在接收装置处利用第二组操作对第二数据流执行信道编码。信道编码可以是块码或卷积码。
极化码是信道编码的子集。极化编码是一种块编码方法,其中,数据块和比特具有设定的大小。在发送器和接收器处执行对块的操纵。执行被称为信道合并(ChannelCombining)和信道分割(Channel Splitting)的操作。首先,信道合并将符号(symbol)的组合分配和/或映射到信道。然后,信道分割执行变换操作,将符号组合转换成解码器中使用的时域向量。解码操作与编码操作一起估计时域比特流。这在接收机处将比特的块和信道转换成极化比特流。
已经表明,极化码实现了加性高斯白噪声(AWGN)信道的容量,并且实现了与使用具有循环冗余校验(CRC)的连续消除列表(SCL)解码器的有限长度码的低密度奇偶校验码(LDPC)相当的性能。因为每个比特被连续解码,所以SCL解码器具有高时延。在极化码中可使用神经网络(NN)解码器。对于相对短的编码,神经网络解码器与SCL解码器类似地执行。因为所有比特被并行解码,所以神经网络解码器的解码以非常低的时延执行。
本公开的神经网络解码器可用于具有二进制相移键控(BPSK)调制的AWGN信道。然而,许多闪存信道不利用AWGN信道,并且公开的实施例不一定假定AWGN信道。每个单元可存储多个比特,因此调制可以是脉冲幅度调制(PAM)。例如,4个PAM可用于每单元2比特,并且8个PAM用于每单元3比特。
在下文中,将参照附图更充分地描述本发明构思的示例性实施例。贯穿附图,相同的参考标号可表示相同的元件。
还将理解,术语“第一”、“第二”、“第三”等在此用于将一个元件与另一个元件区分开,并且元件不受这些术语限制。因此,示例性实施例中的“第一”元件可被描述为另一示例性实施例中的“第二”元件。
应当理解,除非上下文另外清楚地指示,否则每个示例性实施例内的特征或方面的描述通常应当被认为可用于其他示例性实施例中的其他类似特征或方面。
如在此使用的,除非上下文另外清楚地指示,否则单数形式也意图包括复数形式。
在这里,当一个值被描述为约等于另一个值或与另一个值基本上相同或基本上等于另一个值时,将理解,这些值在测量误差内彼此相等,或者如果可测量地不相等,则如本领域普通技术人员将理解的,这些值在值上足够接近以在功能上彼此相等。例如,如在此使用的术语“约”包括陈述的值,并且表示在由本领域普通技术人员考虑到所讨论的测量和与特定量的测量相关联的误差(即,测量系统的局限性)的情况下所确定的特定值的可接受的偏差范围内。例如,“约”可表示在如本领域普通技术人员所理解的一个或多个标准偏差内。此外,将理解,虽然根据示例性实施例,参数可在此被描述为具有“约”某一值,但是如本领域普通技术人员将理解的,所述参数可以是精确的所述某一值或测量误差内的近似的某一值。
示例性存储器系统
图1是示出根据发明构思的示例性实施例的包括存储器系统的数据处理系统的实现的框图。
参照图1,数据处理系统10可包括主机100和存储器系统200。图1中所示的存储器系统200可用于包括数据处理功能的各种系统中。各种系统可以是各种装置,包括例如移动装置(诸如,智能电话或平板计算机)。然而,各种装置不限于此。
存储器系统200可包括各种类型的存储器装置。这里,发明构思的示例性实施例将被描述为包括作为非易失性存储器的存储器装置。然而,示例性实施例不限于此。例如,存储器系统200可包括作为易失性存储器的存储器装置。
根据示例性实施例,存储器系统200可包括非易失性存储器装置(例如,只读存储器(ROM)、磁盘、光盘、闪存等)。闪存可以是根据金属氧化物半导体场效应晶体管(MOSFET)的阈值电压的变化来存储数据的存储器,并且可包括例如NAND和NOR闪存。可使用包括非易失性存储器装置的存储卡(例如,嵌入式多媒体卡(eMMC)、安全数字(SD)卡、微型SD卡或通用闪存(UFS))来实现存储器系统200,或者可使用例如包括非易失性存储器装置的SSD来实现存储器系统200。这里,将假设存储器系统200是非易失性存储器系统来描述存储器系统200的配置和操作。然而,存储器系统200不限于此。主机100可包括例如安装在例如移动装置上的片上系统(SoC)应用处理器(AP)、或包括在计算机系统中的中央处理器(CPU)。
如上所述,主机100可包括AP 110。AP 110可包括各种知识产权(IP)块。例如,AP110可包括控制存储器系统200的存储器装置驱动器111。主机100可与存储器系统200通信,以传输与存储器操作相关的命令,并接收响应于传输的命令的确认命令。
存储器系统200可包括例如存储器控制器210和存储器装置220。存储器控制器210可从主机100接收与存储器操作相关的命令,使用接收到的命令生成内部命令和内部时钟信号,并将内部命令和内部时钟信号提供给存储器装置220。存储器装置220可响应于内部命令,将写入数据存储在存储器单元阵列中,或者可响应于内部命令,将读取数据提供给存储器控制器210。
存储器装置220包括即使当存储器装置220未通电时也保持存储在其中的数据的存储器单元阵列。存储器单元阵列可包括例如NAND或NOR闪存、磁阻随机存取存储器(MRAM)、电阻式随机存取存储器(RRAM)、铁电存取存储器(FRAM)或相变存储器(PCM)作为存储器单元。例如,当存储器单元阵列包括NAND闪存时,存储器单元阵列可包括多个块和多个页。可以以页为单位编程和读取数据,并且可以以块为单位擦除数据。图4中示出包括在存储器单元阵列中的存储器块的示例。
图2是示出根据发明构思的示例性实施例的图1的存储器系统200的框图。
参照图2,存储器系统200包括存储器装置220和存储器控制器210。存储器控制器210在此也可被称为控制器电路。存储器装置220可在存储器控制器210的控制下执行写入操作、读取操作或擦除操作。
存储器控制器210可根据从主机100接收的请求或内部指定的调度来控制存储器装置220。存储器控制器210可包括控制器核211、内部存储器214、主机接口块215和存储器接口块216。
控制器核211可包括存储器控制核212和机器学习核213,并且这些核中的每个可由一个或多个处理器实现。存储器控制核212可根据从主机100接收的请求或内部指定的调度来控制和访问存储器装置220。存储器控制核212可管理和执行用于管理或操作存储器系统200的各种元数据和代码。
机器学习核213可用于执行神经网络的训练和推断,如下面进一步详细描述的,神经网络被设计为对存储器装置220执行噪声消除。
内部存储器214可用作例如由控制器核211使用的系统存储器、存储存储器装置220的数据的高速缓冲存储器、或临时存储主机100与存储器装置220之间的数据的缓冲存储器。内部存储器214可存储指示分配给存储器系统200的逻辑地址与存储器装置220的物理地址之间的关系的映射表MT。内部存储器214可包括例如DRAM或SRAM。
在一个示例性实施例中,神经网络(诸如,参照图6描述的神经网络)可被包括在存储在存储器控制器210的内部存储器214中或存储器装置220中的计算机程序中。包括神经网络的计算机程序可由机器学习核213执行,以对存储在存储器装置220中的数据进行降噪。因此,根据示例性实施例,存储器系统200可在存储器装置220的正常读取操作期间对存储在存储器装置220中的数据进行降噪。也就是说,在存储器系统200的制造完成之后,在存储器系统200的正常操作期间,具体地,在从存储器装置220读取数据的存储器系统200的正常读取操作期间,可使用在存储器系统200中本地存储和执行的神经网络来对存储在存储器装置220中的正被读取的数据进行降噪,并且可从存储器装置220读出降噪的数据。
主机接口块215可包括用于与主机100通信的组件(例如,物理块)。存储器接口块216可包括用于与存储器装置220通信的组件(例如,物理块)。
下面,将描述存储器系统200随时间的操作。当向存储器系统200供电时,存储器系统200可与主机100执行初始化。
主机接口块215可向存储器控制核212提供从主机100接收的第一请求REQ1。第一请求REQ1可包括命令(例如,读取命令或写入命令)和逻辑地址。存储器控制核212可将第一请求REQ1转换为适合于存储器装置220的第二请求REQ2。
例如,存储器控制核212可转换命令的格式。存储器控制核212可参考存储在内部存储器214中的映射表MT来获得地址信息AI。存储器控制核212可通过使用地址信息AI将逻辑地址转换为存储器装置220的物理地址。存储器控制核212可将适合于存储器装置220的第二请求REQ2提供给存储器接口块216。
存储器接口块216可在队列对来自存储器控制核212的第二请求REQ2进行注册。存储器接口块216可将首先在队列注册的请求作为第三请求REQ3发送到存储器装置220。
当第一请求REQ1是写入请求时,主机接口块215可将从主机100接收的数据写入到内部存储器214。当第三请求REQ3是写入请求时,存储器接口块216可将存储在内部存储器214中的数据发送到存储器装置220。
当数据被完全写入时,存储器装置220可将第三响应RESP3发送到存储器接口块216。响应于第三响应RESP3,存储器接口块216可向存储器控制核212提供指示数据被完全写入的第二响应RESP2。
在数据被存储在内部存储器214中之后或者在第二响应RESP2被接收之后,存储器控制核212可通过主机接口块215向主机100发送指示请求完成的第一响应RESP1。
当第一请求REQ1是读取请求时,读取请求可通过第二请求REQ2和第三请求REQ3被发送到存储器装置220。存储器接口块216可将从存储器装置220接收的数据存储在内部存储器214中。当数据被完全发送时,存储器装置220可将第三响应RESP3发送到存储器接口块216。
当接收到第三响应RESP3时,存储器接口块216可向存储器控制核212提供指示数据被完全发送的第二响应RESP2。当接收到第二响应RESP2时,存储器控制核212可通过主机接口块215将第一响应RESP1发送到主机100。
主机接口块215可将存储在内部存储器214中的数据发送到主机100。在一个示例性实施例中,在与第一请求REQ1对应的数据被存储在内部存储器214中的情况下,可省略第二请求REQ2和第三请求REQ3的发送。
图3是根据发明构思的示例性实施例的图1的非易失性存储器装置220的详细框图。参照图2,存储器装置220可包括例如存储器单元阵列221、控制逻辑222、电压生成单元223、行解码器224和页缓冲器225。
存储器单元阵列221可连接到一条或多条串选择线SSL、多条字线WL、一条或多条地选择线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可以是编程电压(例如,写入电压)、读取电压、擦除电压、通过电压或编程验证电压。此外,第二驱动电压VSSL可以是串选择电压(例如,导通电压或截止电压)。此外,第三驱动电压VGSL可以是地选择电压(例如,导通电压或截止电压)。
行解码器224可通过多条字线WL连接到存储器单元阵列221,并且可响应于从控制逻辑222接收的行地址X-ADD而激活多条字线WL的一部分。例如,在读取操作中,行解码器224可将读取电压施加到选择的字线并且将通过电压施加到未选择的字线。
在编程操作中,行解码器224可将编程电压施加到选择的字线并且将通过电压施加到未选择的字线。在一个示例性实施例中,在多个编程循环中的至少一个中,行解码器224可将编程电压施加到选择的字线和另外选择的字线。
页缓冲器225可通过多条位线BL连接到存储器单元阵列221。例如,在读取操作中,页缓冲器225可作为输出存储在存储器单元阵列221中的数据的感测放大器进行操作。可选择地,在编程操作中,页缓冲器225可作为将期望的数据写入存储器单元阵列221的写入驱动器进行操作。
图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之一的示例。虽然图5示出具有6条字线和6个存储器单元的示例,但是这仅仅是一个示例,并且可使用任何数量的字线和存储器单元。
存储器块BLKi可包括多个单元串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示出根据本公开的方面的包括神经网络解码器625的存储器装置600的示例。本公开的实施例使用闪存极化神经网络解码器。
存储器装置600可存储用于计算装置上的各种程序和应用的信息。例如,所述信息可包括用于运行操作系统的数据。存储器可包括易失性存储器和非易失性存储器两者。易失性存储器可包括随机存取存储器(RAM),非易失性存储器可包括只读存储器(ROM)、闪存、电可擦除可编程只读存储器(EEPROM)、数字磁带、硬盘驱动器(HDD)和固态驱动器(SSD)。存储器可包括可读和/或可写易失性存储器和/或非易失性存储器以及其他可能的存储装置的任何组合。
根据一个实施例,神经网络解码器(例如,闪存NAND极化神经网络解码器,在下文中,又被称为解码器)625包括多层感知器(MLP)。MLP是通常由多层感知器组成的前馈神经网络。每个组成的感知器层可包括输入层、一个或多个隐藏层和输出层。每个节点可包括非线性激活函数。可使用反向传播(即,计算损失函数相对于参数的梯度)来训练MLP。
根据各种实施例,存储器装置600可从物理信道接收信号,其中,所述信号基于表示使用纠错编码方案编码的信息比特的调制的符号。在一些示例中,物理信道包括NAND存储器装置600。存储器装置600还可检测来自NAND存储器装置600的电压电平,其中,检测到的电压电平包括调制的符号的有噪声的实现。
在一些示例中,调制的符号包括至NAND存储器装置600的信道输入,并且信号包括来自NAND存储器装置600的信道输出。存储器装置600还可将测试符号编程到NAND存储器,并且检测NAND存储器的电压电平,其中,概率数据基于在给定每个测试符号的情况下检测电压电平的条件概率。
因此,存储器装置600可从存储器装置600读取电压电平。在一些示例中,从存储器装置600读取的电压电平对应于来自调制的符号的集合的符号的有噪声的版本。存储器装置600可包括编码器605、调制组件610、缩放组件615、存储器单元620和解码器625。
编码器605可使用纠错编码方案对信息比特进行编码。在训练期间,编码器605可使用纠错编码方案对地面真实(ground truth)信息比特进行编码。在一些示例中,纠错编码方案包括极化编码方案。编码器605可包括被配置为对信息比特进行编码以生成编码的信息比特的编码组件。例如,如图6中所示,(n,k)可表示编码器605可利用k比特的块大小来对n比特的数据进行编码。
可对数据流执行纠错编码(ECC)和解码操作,以校正通信错误(诸如,干扰或噪声)。极化码是基于将物理信道变换为多个虚拟外部信道的短内核码(short kernel code)的多重递归级联的线性块纠错码。虚拟信道倾向于具有高可靠性或低可靠性(即,它们极化)。数据比特被分配给最可靠的信道,并且不可靠的信道被“冻结”或被设置为0。
调制组件610可将调制方案应用于编码的信息比特以生成调制的符号。例如,单元的编程电压选择可通过脉冲幅度调制(PAM)调制算法来执行,其中,编码的比特被划分为每单元多个比特的多个组。例如,在三层单元(TLC)中,每单元的比特的数量为3。每组单元被称为符号。例如,具有比特010的符号等于2。对于每单元N比特,阈值电压Vth动态范围被划分为2N个目标电压。对于每单元3比特,Vth动态范围被划分为8个目标电压。使用格雷码(Grey code)将每个目标电压映射到符号,其中,在相邻目标电压之间仅单个比特改变。例如,如果动态范围在-3V与4V之间,则可使用-3V为111、-2V为110、-1V为100、0V为101、1V为001、2V为000、3V为010且4V为011的调制。
缩放组件615可被配置为基于存储器单元620的动态电压范围对调制组件610的输出进行缩放。存储器单元620可被配置为如以上参照图1至图5所述来存储编码的信息比特。
解码器625可利用神经网络将提取的特征作为输入来对信息比特进行解码。在一些示例中,纠错编码方案包括极化编码方案。在一些示例中,调制的符号基于相位幅度调制(PAM)方案或二进制相移键控(BPSK)调制方案。
解码器625可包括概率信息630、特征提取器635和ANN 640。特征提取器635可从信号提取特征,特征提取器635使用从物理信道收集的概率数据来训练。在一些示例中,从物理信道收集的概率数据包括一个或多个概率质量函数。在一些示例中,概率数据不假设加性高斯白噪声(AWGN)模型。
特征提取器635可基于标记的训练集来识别条件概率质量函数的集合,其中,条件概率质量函数中的每个描述调制的符号的集合中的一个调制的符号的电压电平概率。特征提取器635还可基于条件概率质量函数从电压电平提取特征。因此,特征提取器635可被配置为基于针对存储器装置600收集的概率数据从读取电压电平提取特征。
神经网络解码器625的实施例包括人工神经网络(ANN)。ANN是包括多个连接节点(又名人工神经元)的硬件组件或软件组件,连接节点可松散地对应于人脑中的神经元。每个连接或边(edge)可将信号从一个节点发送到另一个节点(就像大脑中的物理突触)。当节点接收到信号时,它可处理该信号,然后将处理后的信号发送到其他连接的节点。在一些情况下,节点之间的信号包括实数,并且每个节点的输出可通过其输入的加权和的函数来计算。每个节点和边可与确定信号如何被处理和发送的一个或多个节点权重相关联。
在训练处理期间,可调整这些权重以提高结果的准确性(即,通过使以某种方式对应于当前结果与目标结果之间的差异的损失函数最小化)。边的权重可增大或减小在节点之间传输的信号的强度。在一些情况下,节点可具有阈值,低于该阈值根本不发送信号。节点还可被聚合成层。不同的层可对它们的输入执行不同的变换。初始层可被称为输入层,并且最后一层可被称为输出层。在一些情况下,信号可多次穿过特定层。
解码处理
图7示出根据本公开的方面的利用神经网络对纠错码进行解码的处理的示例。在一些示例中,这些操作可由包括处理器的系统来执行,该处理器执行一组代码以控制设备的功能元件。附加地或可选地,可使用专用硬件来执行该处理。通常,可根据基于本公开的方面描述的方法和处理来执行这些操作。例如,操作可由各个子步骤组成,或者可结合在此描述的其他操作来执行。
在操作700,系统从物理信道接收信号,其中,信号基于表示使用纠错编码方案编码的信息比特的调制的符号。在一些情况下,该步骤的操作可表示如参照图6所描述的存储器装置或者由如参照图6所描述的存储器装置执行。
对于每单元n比特(n_bpc)存储器装置和码长n,码字被存储在个存储器单元中。每个单元j具有读取Vj的电压。对于每个单元,2n_bpc个直方图P(Vj|Li)被离线创建,并且被在线评估,其中,Li是第i电平,i∈{0,1,...2^n_bpc-1},j∈{1,2,...n-cells}。在此和贯穿本公开,术语“电平”可在一般意义上用作符号的示例。例如,电平可表示在一个或多个单元上的电压电平的组合。
特征提取器计算n_cells*2n_bpc个概率{P(Vj|Li)},j=1:n_cells;i=0∶2^n_bpc-1。此外,特征提取器计算字线索引、P/E循环索引、保留时间和柱索引(pillar index)。可使用直方图来评估概率,其中,直方图被离线计算。
在操作705,系统使用特征提取器从信号提取特征,特征提取器使用从物理信道收集的概率数据来训练。在一些情况下,该步骤的操作可表示如参照图6描述的特征提取器或由如参照图6描述的特征提取器执行。
特征提取可以是在线处理(即,当要从存储器读取数据时执行),其中,给定新的测量值Vj,Vj根据电压值被量化到电压仓(voltage bin)Bm,其中,m∈{1,2,...M}。每个仓表示在一些下限和上限之间的所有电压测量值:Bm-1≤Vj<Bm。仓的数量M是可配置的,并且定义了电压分辨率。电压Vj用2n_bpc个概率质量函数来评估,得到由2n_bpc个元素组成的向量每个元素是标量数。特征向量是预测模型(神经网络)的输入。
直方图值可在被使用之前被归一化,使得每个仓不表示简单的计数(即,在给定特定符号的情况下,训练集中有多少样本落在该仓中)。相反,仓表示该计数与总计数(即,在给定特定符号的情况下的样本的数量)之间的比。这种归一化将创建M个元素的概率向量,其和将为1。
训练集的收集和概率质量函数的创建处理是离线一次执行的,特征提取是在线重复执行的。原始电压测量值Vj和概率质量函数向量可用于创建新的2n_bpc+1个元素的特征向量。
在操作710,系统利用神经网络解码器将提取的特征作为输入来对信息比特进行解码。在一些情况下,此步骤的操作可表示如参照图6描述的解码器或由如参照图6描述的解码器执行。
解码器训练
图8示出根据本公开的方面的训练用于对纠错码进行解码的神经网络的处理的示例。在一些示例中,这些操作可由包括处理器的系统来执行,该处理器执行一组代码以控制设备的功能元件。附加地或可选地,可使用专用硬件来执行该处理。通常,这些操作可根据基于本公开的方面描述的方法和处理来执行。例如,操作可由各个子步骤组成,或者可结合在此描述的其他操作来执行。
可根据以下算法来描述解码器的训练:
令FPDθ表示神经网络
令info表示每个网络使用的信息比特小批量
令f表示使用特征提取器计算的特征向量
令λθ表示学习率
初始化参数向量θ
对于每个迭代,执行
结束
因此,在操作800,系统准备包括地面真实信息比特和从存储器装置读取的电压电平的标记的训练集,其中,电压电平基于使用调制符号的集合对地面真实信息比特进行编码并且将编码的地面真实信息比特编程到存储器装置。在一些情况下,该步骤的操作可表示训练组件或由训练组件执行。
在操作805,系统基于标记的训练集识别条件概率质量函数的集合,其中,条件概率质量函数中的每个描述调制符号的集合中的一个的电压电平概率。在一些情况下,该步骤的操作可表示如参照图6描述的特征提取器或由如参照图6描述的特征提取器执行。
在操作810,系统从存储器装置读取电压电平。在一些情况下,该步骤的操作可表示如参照图6描述的存储器装置或者由如参照图6描述的存储器装置执行。
在操作815,系统基于条件概率质量函数从电压电平提取特征。在一些情况下,该步骤的操作可表示如参照图6描述的特征提取器或由如参照图6描述的特征提取器执行。
在操作820,系统将神经网络解码器应用于特征以生成预测的信息比特。在一些情况下,该步骤的操作可表示如参照图6描述的解码器或由如参照图6描述的解码器执行。
在操作825,系统将预测的信息比特与地面真实信息比特进行比较。在一些情况下,该步骤的操作可表示训练组件或由训练组件执行。在一个示例中,系统计算预测的信息比特和地面真实信息比特的交叉熵的梯度,其中,所述比较基于所述交叉熵的梯度。
在操作830,系统基于比较来更新神经网络解码器。在一些情况下,该步骤的操作可表示训练组件或由训练组件执行。
对于可以是离线处理的集合收集训练,生成信息比特{bj}。然后将信息比特编码为码字{cj}。然后将码字分组并调制为符号{Sj}。接着将符号编程到NAND单元,然后读取所述单元的电压{Vj}。对于每个单元,记录一对(Vj,Sj),其中,Vj是读取的电压,Sj是编程到该电压的符号。
为了创建概率质量函数(其也可以是离线处理),将训练集对(Vj,Sj)的电压动态范围分仓。每个仓表示在一些下限和上限之间的所有电压测量值:Bm-1≤Vj<Bm,其中,j是样本索引,m是仓索引。1≤m≤M。仓的数量M是可配置的,并且仓的数量M设置了电压分辨率。对于针对S0的概率质量函数,具有Si=0的训练集对被收集以生成条件概率质量函数(直方图)P(V|S0)。这表示在给定单元被编程至S0的情况下,对于每个仓,在特定仓Bm中的电压测量值的数量。概率质量函数向量的长度由电压仓的数量M来表示。
对于概率质量函数S1,收集具有Si=1的训练集对,以生成条件概率质量函数(直方图)P(V|S1)。这表示在给定单元被编程至S1的情况下,对于每个仓,在特定仓Bj中的电压测量值的数量。
因此,不是使用提供给解码器的原始电压,而是通过提供给出每个可能的逻辑电平的电压测量的似然概率,可实现更快和更准确的收敛。
例如,使用具有3比特/单元的(7,8)码。通过使用香草(vanilla)电压解码器(VV解码器),每个码字被存储在3个单元中,因此,香草解码器由3个电压提供。作为替代方案,似然电压解码器(LV解码器)由24个值提供,从而使用每个电平中的电压分布。直方图将被离线创建,并且在训练/测试时间期间电压测量值被精确评估。
直方图考虑附加数据(诸如,字线索引、P/E循环索引、保留时间和柱索引)。一些附加数据在实践中可能不可用。因此,可在训练和测试时间之前创建直方图作为离线预处理阶段的一部分。该信息可已经由对数似然比(LLR)解码器创建,以便计算每比特的LLR,因此两个解码器可共享相同的统计信息。该特征向量的另一变体(被称为对数似然电压解码器(LLV解码器))可考虑对数似然概率。
因此,本公开提出一种可用于闪存场景的神经网络解码器。与有噪声的信号的原始输入相比,特征提取器模块减少了收敛时间。神经网络解码器的示例架构使用PAM调制,或者可被设计用于BPSK调制。直方图概率增加了NAND信道或AWGN信道的解码器覆盖范围。
本公开包括以下实施例。
描述了一种利用神经网络对纠错码进行解码的方法。所述方法的实施例可从物理信道接收信号,其中,所述信号基于表示使用纠错编码方案编码的信息比特的调制的符号;使用特征提取器从所述信号提取特征,特征提取器使用从物理信道收集的概率数据来训练;以及使用神经网络解码器将提取的特征作为输入来对所述信息比特进行解码。
描述了一种利用神经网络对纠错码进行解码的设备。所述设备可包括:处理器、与处理器进行电子通信的存储器以及存储在存储器中的指令。所述指令可被操作以使处理器:从物理信道接收信号,其中,所述信号基于表示使用纠错编码方案编码的信息比特的调制的符号;使用特征提取器从所述信号提取特征,特征提取器使用从物理信道收集的概率数据来训练;以及使用神经网络解码器将提取的特征作为输入来对所述信息比特进行解码。
描述了一种存储用于利用神经网络对纠错码进行解码的代码的非暂时性计算机可读介质。在一些示例中,所述代码包括可由处理器执行以执行以下操作的指令:从物理信道接收信号,其中,所述信号基于表示使用纠错编码方案编码的信息比特的调制的符号;使用特征提取器从所述信号提取特征,特征提取器使用从物理信道收集的概率数据来训练;以及使用神经网络解码器将提取的特征作为输入来对所述信息比特进行解码。
在一些示例中,物理信道包括NAND存储器装置。
上述方法、设备、非暂时性计算机可读介质和系统的一些示例还可包括:检测来自NAND存储器装置的电压电平,其中,检测到的电压电平包括调制的符号的有噪声的实现。
在一些示例中,调制的符号包括至NAND存储器装置的信道输入,并且所述信号包括来自NAND存储器装置的信道输出。
在一些示例中,从物理信道收集的概率数据包括一个或多个概率质量函数。
在一些示例中,概率数据不假设加性高斯白噪声(AWGN)模型。
上述方法、设备、非暂时性计算机可读介质和系统的一些示例还可包括:将测试符号编程到NAND存储器装置。一些示例还可包括:检测NAND存储器装置的电压电平,其中,概率数据基于在给定每个测试符号的情况下检测电压电平的条件概率。
上述方法、设备、非暂时性计算机可读介质和系统的一些示例还可包括:使用纠错编码方案对所述信息比特进行编码。一些示例还可包括:将调制方案应用于编码的信息比特以生成调制的符号。
在一些示例中,纠错编码方案包括极化编码方案。
在一些示例中,调制的符号基于脉冲幅度调制(PAM)方案。
在一些示例中,调制的符号基于二进制相移键控(BPSK)调制方案。
描述了一种利用神经网络对纠错码进行解码的方法。所述方法的实施例可准备包括地面真实信息比特和从存储器装置读取的电压电平的标记的训练集,其中,所述电压电平基于使用调制符号的集合对地面真实信息比特进行编码并且将编码的地面真实信息比特编程到存储器装置;基于标记的训练集识别多个条件概率质量函数,其中,所述多个条件概率质量函数中的每个描述调制符号的集合中的一个的电压电平概率;从存储器装置读取电压电平;至少部分地基于所述多个条件概率质量函数从所述电压电平提取特征;将神经网络解码器应用于所述特征以生成预测的信息比特;将预测的信息比特与地面真实信息比特进行比较;以及基于比较来更新神经网络解码器。
描述了一种利用神经网络对纠错码进行解码的设备。所述设备可包括处理器、与处理器电子通信的存储器以及存储在存储器中的指令。所述指令可被操作以使所述处理器:准备包括地面真实信息比特和从存储器装置读取的电压电平的标记的训练集,其中,所述电压电平基于使用调制符号的集合对地面真实信息比特进行编码并且将编码的地面真实信息比特编程到存储器装置;基于标记的训练集识别多个条件概率质量函数,其中,所述多个条件概率质量函数中的每个描述调制符号的集合中的一个的电压电平概率;从存储器装置读取电压电平;至少部分地基于所述多个条件概率质量函数从所述电压电平提取特征;将神经网络解码器应用于所述特征以生成预测的信息比特;将预测的信息比特与地面真实信息比特进行比较;以及基于比较来更新神经网络解码器。
描述了一种存储用于利用神经网络对纠错码进行解码的代码的非暂时性计算机可读介质。在一些示例中,所述代码包括可由处理器执行以进行以下操作的指令:准备包括地面真实信息比特和从存储器装置读取的电压电平的标记的训练集,其中,所述电压电平基于使用调制符号的集合对地面真实信息比特进行编码并且将编码的地面真实信息比特编程到存储器装置;基于标记的训练集识别多个条件概率质量函数,其中,所述多个条件概率质量函数中的每个描述调制符号的集合中的一个的电压电平概率;从存储器装置读取电压电平;至少部分地基于所述多个条件概率质量函数从所述电压电平提取特征;将神经网络解码器应用于所述特征以生成预测的信息比特;将预测的信息比特与地面真实信息比特进行比较;以及基于比较来更新神经网络解码器。
上述方法、设备、非暂时性计算机可读介质和系统的一些示例还可包括:计算预测的信息比特与地面真实信息比特的交叉熵的梯度,其中,所述比较基于交叉熵的梯度。
在一些示例中,从存储器装置读取的电压电平对应于来自调制的符号的集合的符号的有噪声的版本。
上文描述的方法、设备、非暂时性计算机可读介质和系统的一些示例还可包括:使用纠错编码方案对地面真实信息比特进行编码。一些示例还可包括:将调制方案应用于编码的地面真实信息比特以生成调制的符号,其中,所述电压电平基于调制的符号。
在一些示例中,纠错编码方案包括极化编码方案。
上述存储器装置和方法的一些示例还可包括:编码组件,被配置为对信息比特进行编码以生成编码的信息比特。一些示例还可包括:调制组件,被配置为对编码的信息比特进行调制。
上述存储器装置和方法的一些示例还可包括:缩放组件,被配置为基于存储器单元的动态电压范围对调制组件的输出进行缩放。
在一些示例中,神经网络解码器包括一个或多个全连接的多层感知器(MLP)层。
在此描述的描述和附图表示示例配置,并且不表示权利要求的范围内的所有实施方式。例如,操作和步骤可被重新排列、组合或以其他方式修改。此外,结构和装置可以以框图的形式表示,以表示组件之间的关系并且避免模糊所描述的构思。类似的部件或特征可具有相同的名称,但是可具有与不同的附图对应的不同的参考标号。
对于本领域技术人员而言,对本公开的一些修改可以是容易而清楚的,并且在不脱离本公开的范围的情况下,在此定义的原理可应用于其他变型。因此,本公开不限于在此描述的示例和设计,而是符合与在此公开的原理和新颖特征相一致的最宽范围。
描述的方法可由包括通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或它们的任何组合的装置实施或执行。通用处理器可以是微处理器、常规处理器、控制器、微控制器或状态机。处理器也可实现为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、与DSP核结合的一个或多个微处理器或任何其他这样的配置)。因此,在此描述的功能可用硬件或软件来实现,并且可由处理器、固件或它们的任何组合来执行。如果在由处理器执行的软件中实现,则功能可以以指令或代码的形式存储在计算机可读介质上。
计算机可读介质包括非暂时性计算机存储介质和通信介质两者,通信介质包括促进代码或数据的传送的任何介质。非暂时性存储介质可以是可由计算机访问的任何可用的介质。例如,非暂时性计算机可读介质可包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、压缩盘(CD)或其他光盘存储装置、磁盘存储装置或用于携带或存储数据或代码的任何其他非暂时性介质。
此外,连接组件可被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(DSL)或无线技术(诸如,红外、无线电或微波信号)从网站、服务器或其他远程源发送代码或数据,则同轴电缆、光纤电缆、双绞线、DSL或无线技术包括在介质的定义中。介质的组合也包括在计算机可读介质的范围内。
在本公开和权利要求中,词语“或”指示包括性列表,使得例如X、Y或Z的列表表示X、或Y、或Z、或XY、或XZ、或YZ、或XYZ。此外,短语“基于”不用于表示条件的封闭集合。例如,被描述为“基于条件A”的步骤可基于条件A和条件B两者。换句话说,短语“基于”应当被解释为表示“至少部分地基于”。此外,词语“一”或“一个”指示“至少一个”。
Claims (20)
1.一种对纠错码进行解码的方法,包括:
从物理信道接收信号,其中,所述信号基于表示使用纠错编码方案编码的信息比特的调制的符号;
使用特征提取器从所述信号提取特征,特征提取器使用从物理信道收集的概率数据来训练;以及
利用神经网络解码器将提取的特征作为输入来对所述信息比特进行解码。
2.根据权利要求1所述的方法,其中,
物理信道包括NAND存储器装置。
3.根据权利要求2所述的方法,还包括:
检测来自NAND存储器装置的电压电平,其中,检测到的电压电平包括调制的符号的有噪声的实现。
4.根据权利要求2所述的方法,其中,
调制的符号包括至NAND存储器装置的信道输入,并且所述信号包括来自NAND存储器装置的信道输出。
5.根据权利要求2所述的方法,其中,
从物理信道收集的概率数据包括一个或多个概率质量函数。
6.根据权利要求2所述的方法,其中,
概率数据不假设加性高斯白噪声模型。
7.根据权利要求1至权利要求6中任意一项所述的方法,还包括:
将测试符号编程到NAND存储器装置;以及
检测所述NAND存储器装置的电压电平,其中,概率数据基于在给定每个测试符号的情况下检测电压电平的条件概率。
8.根据权利要求1至权利要求6中任意一项所述的方法,还包括:
使用纠错编码方案对信息比特进行编码;以及
将调制方案应用于编码的信息比特以生成调制的符号。
9.根据权利要求1至权利要求6中任意一项所述的方法,其中,
纠错编码方案包括极化编码方案。
10.根据权利要求1至权利要求6中任意一项所述的方法,其中,
调制的符号基于脉冲幅度调制方案。
11.根据权利要求1至权利要求6中任意一项所述的方法,其中,
调制的符号基于二进制相移键控调制方案。
12.一种训练用于对纠错码进行解码的神经网络的方法,包括:
准备包括地面真实信息比特和从存储器装置读取的电压电平的标记的训练集,其中,所述电压电平基于使用调制符号的集合对地面真实信息比特进行编码并且将编码的地面真实信息比特编程到存储器装置;
基于标记的训练集识别多个条件概率质量函数,其中,所述多个条件概率质量函数中的每个描述调制符号的集合中的一个的电压电平概率;
从存储器装置读取电压电平;
至少部分地基于所述多个条件概率质量函数从所述电压电平提取特征;
将神经网络解码器应用于所述特征以生成预测的信息比特;
将预测的信息比特与地面真实信息比特进行比较;以及
基于比较来更新神经网络解码器。
13.根据权利要求12所述的方法,还包括:
计算预测的信息比特与地面真实信息比特的交叉熵的梯度,其中,所述比较基于交叉熵的梯度。
14.根据权利要求12所述的方法,其中,
从存储器装置读取的电压电平对应于来自调制的符号的集合的符号的有噪声的版本。
15.根据权利要求12至权利要求14中任意一项所述的方法,还包括:
使用纠错编码方案对地面真实信息比特进行编码;以及
将调制方案应用于编码的地面真实信息比特以生成调制的符号,其中,所述电压电平基于调制的符号。
16.根据权利要求12至权利要求14中任意一项所述的方法,其中,
纠错编码方案包括极化编码方案。
17.一种存储器装置,所述存储器装置包括:
多个存储器单元,被配置为存储编码的信息比特;
特征提取器,被配置为:基于针对所述存储器装置收集的概率数据从读取的电压电平提取特征;以及
神经网络解码器,被配置为:使用提取的特征作为输入来对编码的信息比特进行解码。
18.根据权利要求17所述的存储器装置,还包括:
编码组件,被配置为:对信息比特进行编码以生成编码的信息比特;以及
调制组件,被配置为对编码的信息比特进行调制。
19.根据权利要求18所述的存储器装置,还包括:
缩放组件,被配置为基于存储器单元的动态电压范围对调制组件的输出进行缩放。
20.根据权利要求17至权利要求19中任意一项所述的方法,其中,
神经网络解码器包括一个或多个全连接的多层感知器层。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/891,565 US11527299B2 (en) | 2020-06-03 | 2020-06-03 | Polar neural network decoder for memory devices |
US16/891,565 | 2020-06-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113762457A true CN113762457A (zh) | 2021-12-07 |
Family
ID=78604911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011407771.4A Pending CN113762457A (zh) | 2020-06-03 | 2020-12-03 | 解码的方法、训练神经网络的方法和存储器装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11527299B2 (zh) |
KR (1) | KR20210150966A (zh) |
CN (1) | CN113762457A (zh) |
DE (1) | DE102020120211A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115866253A (zh) * | 2023-02-27 | 2023-03-28 | 鹏城实验室 | 一种基于自调制的通道间变换方法、装置、终端及介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4329202A1 (en) * | 2021-05-25 | 2024-02-28 | Samsung Electronics Co., Ltd. | Neural network-based self-correcting min-sum decoder and electronic device comprising same |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9749089B2 (en) * | 2015-11-04 | 2017-08-29 | Mitsubishi Electric Research Laboratories, Inc. | Fast log-likelihood ratio (LLR) computation for decoding high-order and high-dimensional modulation schemes |
US10713113B2 (en) * | 2018-09-06 | 2020-07-14 | Sabrina Barbato | Solid state drive implementing polar encoding and successive cancellation list decoding |
WO2020122220A1 (ja) * | 2018-12-13 | 2020-06-18 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 送信装置、制御システム、および送信方法 |
US11182288B2 (en) * | 2019-02-20 | 2021-11-23 | Marvell Asia Pte, Ltd. | Decoding of high-density memory cells in a solid-state drive |
-
2020
- 2020-06-03 US US16/891,565 patent/US11527299B2/en active Active
- 2020-07-31 DE DE102020120211.3A patent/DE102020120211A1/de active Pending
- 2020-12-03 CN CN202011407771.4A patent/CN113762457A/zh active Pending
-
2021
- 2021-04-06 KR KR1020210044866A patent/KR20210150966A/ko active Search and Examination
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115866253A (zh) * | 2023-02-27 | 2023-03-28 | 鹏城实验室 | 一种基于自调制的通道间变换方法、装置、终端及介质 |
Also Published As
Publication number | Publication date |
---|---|
KR20210150966A (ko) | 2021-12-13 |
DE102020120211A1 (de) | 2021-12-09 |
US11527299B2 (en) | 2022-12-13 |
US20210383887A1 (en) | 2021-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200364103A1 (en) | Estimating a bit error rate of data stored by a memory subsystem using machine learning | |
US11749354B2 (en) | Systems and methods for non-parametric PV-level modeling and read threshold voltage estimation | |
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 | |
CN110444242B (zh) | 有基于深度学习的干扰校正能力的存储器系统及操作方法 | |
US11720268B2 (en) | Managing a mode to access a memory component or a logic component for machine learning computation in a memory sub-system | |
CN115223648A (zh) | 参数化pv电平建模和读取阈值电压估计的系统和方法 | |
CN113918379A (zh) | 存储器系统和用于控制存储器系统的方法 | |
US20230035983A1 (en) | Systems and methods for modeless read threshold voltage estimation | |
CN113762457A (zh) | 解码的方法、训练神经网络的方法和存储器装置 | |
CN116361064A (zh) | 使用多级级联码的分层纠错码解码 | |
CN116153364A (zh) | 估计非参数化最佳读取阈值的系统和方法 | |
CN114520014A (zh) | 用于确定读取阈值电压的变化的系统和方法 | |
US11635916B2 (en) | Workload-aware memory controller based on compact workload representation and method thereof | |
CN115295047A (zh) | 存储器子系统中的间歇式动态开始电压和编程验证采样 | |
CN109558265B (zh) | 具有特征增强的存储器系统及其操作方法 | |
US11626168B2 (en) | De-noising using multiple threshold-expert machine learning models | |
US20220253681A1 (en) | Compact workload representation of memory system | |
KR20230147525A (ko) | 머신 러닝을 이용한 비휘발성 메모리의 경판정 디코딩 | |
CN113742128A (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 |