移动数据存储

文档序号:1800824 发布日期:2021-11-05 浏览:17次 >En<

阅读说明:本技术 移动数据存储 (Mobile data storage ) 是由 阿密特·伯曼 阿里尔·道布恰克 伊莱·海姆 叶夫根尼·布莱希曼 于 2021-04-30 设计创作,主要内容包括:提供了移动电子装置、数据编程到存储器装置的方法、从存储器装置读取数据的方法。移动电子装置可包括存储器装置和存储器控制器,存储器控制器包括:纠错码(ECC)编码器,编码数据;约束信道编码器,配置为基于一个或多个约束对ECC编码器的输出编码;强化学习脉冲编程(RLPP)组件,配置为识别用于将数据编程到存储器装置的编程算法;期望最大化(EM)信号处理组件,配置为从存储器装置接收噪声多字线电压向量并利用对数似然比(LLR)值对向量的各个比特分类;约束信道解码器,配置为从EM信号处理组件接收约束向量并生成非约束向量;和ECC解码器,配置为对非约束向量进行解码。机器学习干扰消除组件可基于或独立于来自EM信号处理组件的输入操作。(A mobile electronic device, a method of programming data into a memory device, a method of reading data from a memory device are provided. The mobile electronic device may include a memory device and a memory controller, the memory controller including: an Error Correction Code (ECC) encoder to encode data; a constrained channel encoder configured to encode an output of the ECC encoder based on one or more constraints; a Reinforcement Learning Pulse Programming (RLPP) component configured to identify a programming algorithm for programming data to a memory device; an expectation-maximization (EM) signal processing component configured to receive a noisy multiple word line voltage vector from a memory device and classify individual bits of the vector with log-likelihood ratios (LLRs); a constrained channel decoder configured to receive a constrained vector from the EM signal processing component and generate an unconstrained vector; and an ECC decoder configured to decode the unconstrained vector. The machine learning interference cancellation component may operate based on or independent of input from the EM signal processing component.)

移动数据存储

技术领域

以下总体上涉及数据存储,更具体地,涉及用于移动装置的数据存储。

背景技术

存储器装置是用于存储数据的常用电子组件。NAND闪存装置允许在各个存储器单元中存储若干比特数据,从而提供制造成本和性能的改进。存储多比特数据的存储器单元可被称为多级存储器单元。多级存储器单元将存储器单元的阈值电压范围分割为若干电压状态,并且使用存储器单元电压电平来提取写到存储器单元的数据值。

然而,每存储器单元存储多个比特可减小各个电压状态的动态电压范围,从而使得存储器单元更易受噪声影响。补偿此噪声可能需要增加的计算能力,这可能阻碍移动装置中的性能。因此,本领域中需要用在移动电子装置中的可靠、低功率多单元存储器系统。

发明内容

描述了一种用于移动装置的数据存储的移动电子装置。移动电子装置的实施例可包括:存储器装置;存储器控制器,其包括处理器和内部存储器并且被配置为操作存储器装置,该存储器控制器包括:纠错码(ECC)编码器,其被配置为对数据进行编码以便于编程到存储器装置;约束信道编码器,其被配置为基于一个或多个约束对ECC编码器的输出进行编码以便于编程到存储器装置;强化学习脉冲编程(RLPP)组件,其被配置为识别用于将数据编程到存储器装置的编程算法;约束信道解码器,其被配置为接收约束向量并生成非约束向量;以及ECC解码器,其被配置为将非约束向量解码。一些示例包括期望最大化(EM)信号处理组件,其被配置为从存储器装置接收噪声多字线电压向量并且利用对数似然比(LLR)值对向量的各个比特进行分类。

描述了一种将数据编程到存储器装置的方法。该方法的实施例可接收数据块,基于ECC编码方案对数据块进行编码,基于约束编码方案对数据块进行编码,并且使用RLPP将编码的数据块编程到存储器装置。

描述了一种从存储器装置读取数据的方法。该方法的实施例可从存储器装置读取数据块,使用EM信号处理来处理数据块以利用LLR值对数据块的各个比特进行分类,基于约束编码方案对数据块进行解码,并且基于ECC编码方案对数据块进行解码。

附图说明

通过参照附图详细描述本发明构思的示例性实施例,本发明构思的特征将变得更显而易见。

图1是例示了根据本发明构思的示例性实施例的包括存储器系统的数据处理系统的实现方式的框图。

图2是例示了根据本发明构思的示例性实施例的图1的存储器系统的框图。

图3是根据本发明构思的示例性实施例的图1的非易失性存储器装置的详细框图。

图4是根据本发明构思的示例性实施例的图2的存储器单元阵列的框图。

图5是根据本发明构思的示例性实施例的图4的存储器单元阵列的存储器块的电路图。

图6A示出根据本公开的各方面的存储器控制器的示例。

图6B示出根据本公开的各方面的存储器控制器的另一示例。

图7示出根据本公开的各方面的纠错码(ECC)编码方案的示例。

图8例示了根据本公开的实施例的分层强化学习方案。

图9是例示了根据本公开的各方面的用于噪声消除的神经网络的结构的图。

图10示出根据本公开的各方面的神经网络解码器的示例。

图11示出根据本公开的各方面的将数据编程到存储器装置的过程的示例。

图12示出根据本公开的各方面的从存储器装置读取数据的处理的示例。

图13示出根据本公开的各方面的执行干扰消除的处理的示例。

图14示出根据本公开的各方面的执行神经网络解码的处理的示例。

具体实施方式

本公开涉及用于从存储器装置编程和读取数据的系统和方法。本公开的某些实施例具体地涉及能够在每个存储器单元中存储5或6比特数据的NAND闪存装置。

NAND编程是基于将电压施加到存储器单元的复杂处理。然而,单元电压可能受诸如当前电压电平、脉冲功率和单元间干扰的变量影响。单元电压还可能受禁止单元中断、字线(WL)间耦接和单元保持影响。另外,写到NAND装置的结果是随机的。例如,数据也可能有噪声,从而导致观察问题。

因此,本公开描述了用于从5或6比特存储器装置可靠地编程和读取数据的系统和方法。特定实施例涉及设计用于移动架构的存储器装置。

以下将参照附图更充分地描述本发明构思的示例性实施例。在整个附图中,相同的标号可表示相同的元件。

将理解,本文中使用术语“第一”、“第二”、“第三”等来将一个元件与另一元件相区分,元件不由这些术语限制。因此,示例性实施例中的“第一”元件在其它示例性实施例中可被描述为“第二”元件。

应该理解,除非上下文清楚地另外指示,否则各个示例性实施例内的特征或方面的描述通常应该被理解为可用于其它示例性实施例中的其它类似特征或方面。

如本文中所使用,除非上下文清楚地另外指示,否则单数形式“一”、“一个”旨在也包括复数形式。

本文中,当一个值被描述为约等于另一值或与另一值基本上相同或相等时,将理解,这些值在测量误差内彼此相等,或者如果测量上不等,如本领域普通技术人员将理解值足够接近以功能上彼此相等。例如,如本文中所使用的术语“约”包括所述值,并且意指在本领域普通技术人员考虑所讨论的测量以及与特定量的测量关联的误差(即,测量系统的限制)所确定的特定值的可接受偏差范围内。例如,如本领域普通技术人员所理解的,“约”可意指在一个或多个标准偏差内。此外,将理解,尽管本文中可将参数描述为具有“约”特定值,但根据示例性实施例,如本领域普通技术人员将理解的,该参数可精确为特定值或在测量误差内近似为特定值。

示例性存储器系统

图1是例示了根据本发明构思的示例性实施例的包括存储器系统的数据处理系统的实现方式的框图。

参照图1,数据处理系统10可包括主机100和存储器系统200。图1所示的存储器系统200可用在包括数据处理功能的各种系统中。各种系统可以是包括例如移动装置(例如,智能电话或平板计算机)的各种装置。然而,各种装置不限于此。

存储器系统200可包括各种类型的存储器装置。本文中,本发明构思的示例性实施例将被描述为包括作为非易失性存储器的存储器装置。然而,示例性实施例不限于此。例如,存储器系统200可包括作为易失性存储器的存储器装置。

根据示例性实施例,存储器系统200可包括诸如例如只读存储器(ROM)、磁盘、光盘、闪存等的非易失性存储器装置。闪存可以是根据金属氧化物半导体场效应晶体管(MOSFET)的阈值电压的改变而存储数据的存储器,并且可包括例如NAND和NOR闪存。存储器系统200可使用包括非易失性存储器装置的存储器卡(例如,嵌入式多媒体卡(eMMC)、安全数字(SD)卡、微型SD卡或通用闪存(UFS))来实现,或者存储器系统200可使用例如包括非易失性存储器装置的SSD来实现。本文中,将假设存储器系统200是非易失性存储器系统来描述存储器系统200的配置和操作。然而,存储器系统200不限于此。例如,主机100可包括安装在例如移动装置上的片上系统(SoC)应用处理器(AP)或者包括在计算机系统中的中央处理单元(CPU)。

如上所述,主机100可包括AP 110。AP 110可包括各种知识产权(IP)块。例如,AP110可包括控制存储器系统200的存储器装置驱动器111。主机100可与存储器系统200通信以发送与存储器操作有关的命令并且响应于所发送的命令而接收确认命令。主机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。存储器控制器210还可包括被配置为向主机接口块215提供第一装置信息DI1并向控制器核心211提供第二装置信息DI2的装置信息存储部217。

控制器核心211可包括存储器控制核心212和机器学习核心213,并且这些核心中的每一个可由一个或更多个处理器实现。存储器控制核心212可根据从主机100接收的请求或者内部指定的时间表来控制和访问存储器装置220。存储器控制核心212可管理和执行用于管理或操作存储器系统200的各种元数据和代码。

机器学习核心213可用于执行设计为在存储器装置220上执行噪声消除的神经网络的训练和推理,如下面更详细描述的。

内部存储器214可用作例如控制器核心211所使用的系统存储器、存储存储器装置220的数据的高速缓存存储器、或者在主机100和存储器装置220之间暂时存储数据的缓冲存储器。内部存储器214可存储映射表MT,其指示指派给存储器系统200的逻辑地址与存储器装置220的物理地址之间的关系。内部存储器214可包括例如DRAM或SRAM。

在示例性实施例中,神经网络(例如,参照图9描述的神经网络)可包括在存储在存储器控制器210的内部存储器214中或存储器装置220中的计算机程序中。包括神经网络的计算机程序可由机器学习核心213执行以对存储在存储器装置220中的数据去噪。因此,根据示例性实施例,存储器系统200可在存储器装置220的正常读操作期间对存储在存储器装置220中的数据去噪。即,在存储器系统200的制造完成之后,在存储器系统200的正常操作期间,具体地,在从存储器装置220读取数据的存储器系统200的正常读操作期间,存储在所读取的存储器装置220中的数据可使用存储器系统200中本地存储并执行的神经网络被去噪,并且可从存储器装置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向主机100发送第一响应RESP1。

主机接口块215可将存储在内部存储器214中的数据发送到主机100。在示例性实施例中,在与第一请求REQ1对应的数据存储在内部存储器214中的情况下,可省略第二请求REQ2和第三请求REQ3的传输。

存储器装置220还可将第一串行外围接口信息SPI1发送到存储器接口块216。存储器接口块216可将第二串行外围接口信息SPI2发送到控制器核心211。

图3是根据本发明构思的示例性实施例的图1的非易失性存储器装置220的详细框图。参照图3,存储器装置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可以是编程电压(例如,写电压)、读电压、擦除电压、旁路电压(pass voltage)或编程验证电压。另外,第二驱动电压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之一的示例。

存储器块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。

存储器控制器架构

图6A示出根据本公开的各方面的存储器控制器600的示例。所示示例包括存储器控制器600和存储器装置(例如,NAND闪存)660。存储器控制器600可接收数据块,将数据编程到存储器装置,并从存储器装置660读取数据块。

存储器控制器600可以是参照图1至图3描述的存储器控制器210的示例。根据某些实施例,存储器控制器600可包括处理器和内部存储器并且被配置为操作存储器装置660。在一些示例中,存储器控制器600包括适用于移动架构的为降低的功耗配置的简化的存储器控制器600架构。在一些示例中,存储器装置660的各个单元是5比特或6比特NAND闪存单元。

存储器控制器600还可包括纠错码(ECC)编码器605、约束信道编码器610、强化学习脉冲编程(RLPP)组件615、期望最大化(EM)信号处理组件635、约束信道解码器640、ECC解码器645、机器学习干扰连续消除组件650和神经网络解码器655。

ECC编码器605可被配置为对数据进行编码以便于编程到存储器装置660。ECC编码器605可接收块大小的数据矩阵作为输入并输出编码的矩阵。在一些示例中,ECC编码器605被配置为使用结合了里德所罗门(RS)编码方案和极性编码方案的S极性编码方案对数据进行编码。在一些示例中,ECC编码器605包括为移动架构配置的减小的帧大小和降低的冗余级别。ECC编码器605可以是参照图10描述的对应的一个或多个元件的示例或包括其各方面。

约束信道编码器610可被配置为基于一个或多个约束来对ECC编码器605的输出进行编码以便于编程到存储器装置660。在一些示例中,约束信道编码器610被配置为在针对存储器装置660的当前字线对ECC编码器605的输出进行编码之前识别来自存储器装置660的下一字线的数据。约束信道编码器610可接收编码的矩阵和下一WL读取(在编程之前)作为输入并输出约束向量(vector)。

约束信道编码器610可基于约束编码方案对数据块进行编码。约束信道编码器610还可识别来自存储器装置660的下一字线的数据,其中约束编码方案基于来自下一字线的数据。

强化学习脉冲编程(RLPP)组件615可被配置为识别用于将数据编程到存储器装置660的编程算法并使用RLPP将编码的数据块编程到存储器装置660。在一些示例中,RLPP组件615可包括块代理620、字线代理625和电平代理630。

块代理620可接收WL电压向量作为输入并输出块策略(即,用于要编程的目标WL)。字线代理625可接收约束向量和块策略并输出字线策略(即,用于要编程的目标电平)。电平代理630可接收字线策略并输出电平策略(包括诸如禁止向量和脉冲大小的编程参数)。电平代理630还可向字线代理625提供错误统计向量。

存储器装置660可接收电平策略并且可存储电压电平以表示信息比特。在读操作期间(在接收诸如多RD读请求的一个或多个读请求之后),可向EM信号处理组件635提供噪声多字线电压向量。

期望最大化(EM)信号处理组件635可被配置为从存储器装置660接收噪声多字线电压向量并利用对数似然比(LLR)值对向量的各个比特进行分类。在一些示例中,EM信号处理组件635被配置为将LLR值提供给ECC解码器645。在一些示例中,为移动架构基于减小的样本大小配置EM信号处理组件635。EM信号处理组件635可接收噪声多字线电压向量并输出约束向量以及各个比特的LLR信息。

约束信道解码器640可被配置为从EM信号处理组件635接收约束向量并生成非约束向量。在一些实施例中,约束信道解码器640可基于约束编码方案对数据块进行解码。约束信道解码器640可接收约束向量并输出非约束向量。

ECC解码器645可被配置为对包括非约束向量的数据进行解码。例如,ECC解码器645可基于ECC编码方案对数据块进行解码。在一些示例中,ECC编码方案包括结合了RS编码方案和极性编码方案的S极性编码方案。在一些示例中,基于ECC编码方案对数据块的解码基于LLR值来执行。ECC解码器可接收各个比特的LLR信息以及非约束向量,并且输出WL数据和电压向量。在一些情况下,ECC解码器645接收神经网络解码器结果。在一些情况下,ECC解码器645将噪声字线电压向量发送到机器学习干扰连续消除组件650并接收去噪字线电压向量。

机器学习干扰连续消除组件650可被配置为从ECC解码器645接收噪声字线向量并将去噪字线向量提供给ECC解码器645。在一些示例中,机器学习干扰连续消除组件650可基于来自EM信号处理组件635的输入来操作。然而,在其它实施例中,EM信号处理组件635可独立于EM信号处理组件635操作。

在一些情况下,机器学习干扰连续消除组件650可确定基于ECC编码方案的解码是不够的。机器学习干扰连续消除组件650还可基于ECC解码器未正确地解码数据块的确定来执行机器学习干扰连续消除。在一些示例中,对NAND单元的机器学习处理可基于EM内的耦合效应消除。

神经网络解码器655可接收字线数据向量和字线电压向量并生成恢复的数据向量。在一些示例中,神经网络解码器655包括数量减少的节点,其中为移动架构选择数量减少的节点。在一些情况下,神经网络解码器655将结果发送到ECC解码器645。最终,神经网络解码器655输出恢复的数据向量。

在一些情况下,神经网络解码器655可确定基于ECC编码方案的解码是不够的。神经网络解码器655还可使用神经网络解码器655来对数据块进行解码。神经网络解码器655可以是参照图10描述的对应的一个或多个元件的示例或包括其各方面。

图6B示出根据本公开的各方面的存储器控制器的另一示例。所示示例包括存储器控制器601和存储器装置660。存储器控制器601可接收数据块,将数据编程到存储器装置,并从存储器装置660读取数据块。存储器控制器601的子组件可与上面参照图6A描述的存储器控制器600的那些相似,下面描述差异。图6A和图6B均作为示例示出,本公开的实施例不限于此。

具体地,根据图6B,存储器控制器601可包括强化学习反馈组件613,其可对应于强化学习脉冲编程(RLPP)组件615,但是向块信号滤波组件611提供反馈。块信号滤波组件611可向字线信号滤波器612提供块编程次序,字线信号滤波器612可提供用于编程到存储器装置660的字线编程次序。

另外地或可替代地,机器学习干扰连续消除组件650可直接从存储器装置660接收噪声多字线电压向量,并将噪声字线数据向量提供给约束信道解码器640。

纠错编码

图7示出根据本公开的各方面的ECC编码方案的示例。可使用S极性编码方案来对数据进行编码以便于编程到存储器装置。S极性编码方案可结合里德所罗门(RS)编码方案和极性编码方案的各方面。具体地,示出数据块700,其包括信息比特705、冻结比特710(例如,基于极性编码方案)、极性码字715和RS码字720。

可对数据流执行纠错编码(ECC)和解码操作以纠正诸如干扰或噪声的通信错误。极性码是基于短内核码的多递归级联的线性块纠错码,其将物理信道变换为多个虚拟外信道。虚拟信道往往会具有高可靠性或低可靠性(即,它们极化)。数据比特被分配给最可靠的信道,并且不可靠的信道被“冻结”或设定为0。

RS码还对被当作一组有限域元素(称为符号)的数据块操作。RS编码方案涉及向数据添加校验符号。使用校验符号,RS码可检测错误的符号。

S极性码基于极性码和RS码级联。S极性码的特征包括高性能和以及开销和码大小调整的轻松的可伸缩性。S极性码可使用多阶段编码处理。多个RS码可逐符号并行编码。

图7例示了具有维度N×J的数据块可包括维度N–m0的k1个极性码字715、维度N–m0-m1的k2-k1个极性码字715以及维度N–m0–m1–m2的J-k2个极性码字715的实施例。因此,S极性码可包括维度J的N–m0-m1个RS码字720、维度k2的m2个RS码字720以及维度k1的m0个RS码字720。

约束编码

除了ECC编码之外,还可应用约束编码方案。约束编码将编程任务表示为参数和约束的集合。首先,用户输入定义问题的一组变量,其中所有变量具有一组可能值。然后,应用约束。例如,某些值可被确定为可用或不可用。然后,输出解。接下来,执行决策操作和约束传播操作。通过决策操作确定新约束。另外,通过约束传播操作确定矛盾,并且定义新的一组约束并求解,直至计算出期望的输出。

因此,约束编码方案可设定约束,该约束限制在从存储器装置读取数据时更有可能导致干扰的某些比特模式的使用。约束可应用于字线中的比特,并且还可跨字线应用。

根据本公开,约束编码可以是减轻柱间的。柱间干扰是指邻近单元柱之间的干扰。即,高电压电平可对较低电平柱生成干扰。在一个示例中,前8个最低电平是受干扰电平(interfered level),后8个高电平是干扰电平(interfering level)。平均而言,存在4层受干扰电平和4层干扰电平。在一个实施例中,约束编码减少受到干扰的高电平柱和低电平柱的数量,从而提供各个柱具有2个受干扰电平和2个干扰电平的确定性处理。

强化学习脉冲编程

图8例示了根据本公开的实施例的基本分层强化学习方案。

对NAND闪存装置的编程可由以下处理描述。首先,字线WL中的各个单元具有电压vcell,并且是WL中的所有电压的向量。在擦除操作之后,然后,各个单元具有目标电压vtarget,并且是WL中的所有目标电压的向量。向量也可被称为WL状态。

然后,编程代理可将一系列脉冲施加到WL,以改变状态代理的目标是改变以尽可能接近在各个脉冲之后,在一些情况下,取决于代理所选择的脉冲参数:(1)脉冲功率;和(2)禁止向量。具有所选参数的脉冲被称为动作。新WL状态仅取决于旧WL状态以及所采取的最后动作。这种类型的处理称为马尔可夫决策处理(MDP)。

因此,根据某些实施例,NAND闪存具有块、字线和单元的三级层次。块的数量在芯片类型之间变化,但通常为大约每芯片几千个。然后,闪存装置可由一个或多个这样的芯片组成,因此每闪存装置的总块数变化相当大。每块的字线数量也变化。不同芯片类型可具有64、128或256个字线,并且未来这可能改变。单元是字线的物理部分,即,字线基本上是一长串单元。

电平是概念上的实体,因为各个单元被编程为具有特定电压电平。然后,单元根据其电压电平被分组为N组,在这种情况下字线中存在N个电平。单元电压确定单元属于哪一电平,因此确定单元编码了什么信息。同一电平的每一个单元存储相同的信息。每字线的电平数根据写入方案而变化。电平数为2至写入的每单元的比特数的幂。例如,对于每单元3比特,每字线将存在8个电平,但是即使在同一块中,根据在特定字线中每单元写入多少比特,这也可变化。

分层强化学习(HRL)是组合不同规模的学习的框架。根据本公开的实施例,存在对三个不同规模(块、字线和单元规模)起作用的三个不同代理,其全部在HRL框架下组合。较高电平代理的单个动作是较低电平代理的整个情节(episode),即,较高电平代理的动作定义较低电平代理执行一起构成整个情节的一系列较低电平动作的参数。然而,层次中的各个代理具有决策模型以允许代理选择动作。这些模型是策略网络。示例性策略网络是行为者-评价者模型。

禁止向量用零来标记需要编程的所有单元,用一来标记不应编程的那些单元。禁止向量可非常大(约147K个单元),因此策略网络无法作为决策输出单元,即,针对向量中的各个单元单独地决定各个单元应该为一还是零。因此相反,本公开的实施例使用不同的解决方案。根据实施例的方法输出电压阈值,针对电压超过所选阈值的所有单元在禁止向量中放置一。剩余单元保留为零。这样,除了网络功率输出(也是单个数,并且与禁止向量分离)之外,根据实施例的网络仅必须输出一个数,而非147K个数。

本公开的实施例试图训练代理以将不同的电压电平编程到不同的单元。然而,由于对于暴力强化学习,状态-动作空间太大,所以本公开的实施例利用NAND闪存的分层结构并将任务分解为不同级别的若干子任务。这样,一组较小子任务可被整合,并且学习变得可行。

RLPP组件的实施例可包括三个不同的代理。电平等级代理可有效地写入字线的各个电压电平,从而使距目标电平的距离最小化。在已写入电压电平之后,控制传递给字线代理。字线等级代理确定对于给定字线要编程哪些电压电平,并且指示较低等级的代理对那些电平进行编程,同时使同一字线上的不同电平之间的干扰最小化。可能电平的数量为2n,其中n是每单元的比特数。在整个字线已被写入之后,控制传递给块代理。块等级代理确定块中的哪一字线要编程,同时使同一块上的字线之间的干扰最小化。在所有字线已被写入之后,NAND编程终止。

再参照图8,根据实施例的方法可从块代理开始,块代理对整个块进行编程。块代理是“块强化算法”812并得到从芯片输入的“块状态”813,并决定动作,例如当前要编程块中的哪一字线。该动作转换为一组参数,其作为“块命令”814被传递给字线代理,字线代理开始在该命令下操作。字线代理是“字线强化算法”822,其接收块命令814并从芯片得到“字线状态”823并决定动作本身,并将动作作为“字线命令”824向下传递给电平代理。电平代理是“电平强化算法”832并且接收字线命令824并从芯片得到“电平状态”833,并决定动作。该动作转换为对闪存芯片840的电平命令834。然后,电平命令834根据动作对闪存芯片840进行编程直至完成,然后将控制返回给字线代理,指示电平代理的动作完成。在字线代理也完成之后,字线代理将控制返回给块代理,指示字线代理的动作完成。在代理训练期间分别使用最左列中的块算法、字线算法和电平算法参数奖励(reward)811、821和831。然后,除了执行决策之外,各个训练代理还使用奖励来更新自己并改进。

根据实施例,强化学习模型可基于现有算法或人类专业知识。例如,根据实施例的强化学习模型可通过模仿向现有算法或专家学习。然后,强化学习模型可在字线级别改进,并且在找到基本稳定策略之后,强化学习模型然后可适于对块进行编程。

期望最大化

在一些情况下,每单元具有5或6比特(BPC)的单元可具有相对密集的电压电平(例如,用于5bpc的156mv,或者用于6bpc的105mv)。这可在读取单元的电压电平时导致附加错误。即,可能需要附加准确性,并且读取可能对干扰更敏感。因此,EM信号处理组件可被配置为从存储器装置接收噪声多字线电压向量并利用LLR值对向量的各个比特进行分类。

可使用最大似然估计(MLE)算法来估计存储器装置的统计模型中的参数,其中模型取决于未观察的潜变量。给定一组数据样本x,模型pθ(x,z)可在给定一些未观察的数据或缺少的值的情况下估计样本的值。MLE算法可优化一个或多个参数θ=argmaxθpθ(x)。

在一些示例中,EM算法试图通过迭代地应用两个步骤直至收敛来寻找边缘似然的MLE。首先,期望步骤可由Q(θ|θ(t))=Ez|x,θ(t)[Log(pθ(x,z)=∑zp(z|x,θ(t))Log(pθ(x,z)表示。其次,最大化步骤可寻找使由θ(t)=argmaxθQ(θ|θ(t))给出的量最大的参数θ。在一些示例中,不能确保提供全局最大。

在一些情况下,EM算法可通过从一组正态分布取样本来利用高斯混合。每电平的单元数可预先已知。在一些情况下,支持整形。单元计数可对初始化中使用的电平均值给出过程估计。良好初始化的会话可导致较少的迭代。

在一些情况下,噪声擦除电平可不被视为高斯的,这导致次优高斯估计。因此,可使用Johnson-SU分布来估计噪声擦除电平。可从直方图去除估计,以继续EM。

在一些情况下,来自EM处理的输出可用于改进后续干扰消除处理(例如,如下面参照图9描述的)。例如,用于NAND存储器单元的干扰消除的机器学习处理可与EM具有耦合效应以进一步改进读取可靠性。

噪声消除

图9是例示了根据本公开的各方面的用于噪声消除的神经网络的结构的图。当在单个存储器单元中存储多个比特时,编程噪声可导致所存储的数据的错误。例如,在VNAND存储器装置中,当正对一条字线编程(写入)时,该编程可导致邻近字线上出现噪声,这可在稍后读取那些字线时导致错误。几何上一个在另一个上方的存储器单元(例如,位于同一柱或列中的存储器单元)可能生成特别强的噪声。

根据某些实施例,噪声消除组件可从连接到串选择线(SSL)的各个存储器单元提取电压电平,提供存储器单元的电压电平作为对神经网络的输入,并通过将存储器单元的电压电平从第一电压电平改变为第二电压电平来对SSL执行噪声消除。

可使用数据库基于深度学习来执行噪声消除。深度学习是机器学习的子概念,是一种与人工智能有关的机器学习的神经网络模型。各种神经网络架构可用于深度学习。例如,人工神经网络(ANN)、深度神经网络(DNN)、卷积神经网络(CNN)、递归神经网络(RNN)和生成式对抗网络(GAN)可用于深度学习。然而,可用于深度学习的网络架构不限于此。

在示例性实施例中,所执行的噪声消除使用具有若干相同的连续残差块的ResNet来执行。这种ResNet的示例示出于图9中。该配置允许执行迭代的噪声消除处理,其中仅学习噪声(例如,其中仅学习干净数据与噪声数据之间的差异)。例如,ResNet可学习对数据连续去噪,从而仅学习每次迭代的噪声增量。

ResNet的输入可以是单个含噪声的SSL(例如,SSL1、SSL2、SSL3和SSL4之一),并且输出可以是去噪的串选择线SSL。由于示例性实施例每次执行噪声消除时利用单个SSL,所以在示例性实施例中仅测量电压损失(噪声单元电压与干净单元电压之间的距离)。然而,由于原始误比特率(BER)相对于电压距离是非单调度量,所以仅测量电压损失允许原始BER减小或最小化。

在图9中,各个输入层901-907、909-915和917中的数字指示该层中的神经元的数量。输入层901和输出层917中的指示“x1”指示这些层的形状。例如,输入层901和输出层917中的每一个包括成形为向量25的25个神经元。输入层的宽度等于连接到单个串选择线SSL的字线WL的数量(例如,存储器块中的字线WL的数量除以4)(例如,如图6所示的6BPC方案中的25)。输入层901对应于馈送到神经网络中的含噪声的SSL,以用于去噪。

神经网络中的各个层的类型是全连接层。即,各个层中的各个神经元连接到下一层中的各个神经元。这些神经元之间的连接具有对应权重,这些权重在训练期间学习。当各个层由来自前一层的某一输入填充时,该层将该输入乘以某一权重,然后执行非线性操作(例如,修正线性单元(ReLU)函数),然后发送结果作为下一层的输入。

层之间的箭头指示用于该层中的神经元的激活函数的类型。在示例性实施例中,作为非线性函数的修正线性单元(ReLU)函数用作层902和903、903和904、904和905、905和906、906和907、909和910、910和911、911和912、912和913、913和914以及914和915之间的激活函数。ReLU激活函数通过计算神经元输入的加权和并加上偏差来确定神经元是否应该激活,因此在神经元的输出中引入非线性。线性函数用作输入层901和操作908、层907和操作908、操作908和层909、层909和操作916、层915和操作916以及操作916和输出层917之间的激活函数。即,在这些层和操作之间,执行非线性激活函数。

操作908对层907的输出与输入层901求和,并将该输出馈送到层909。操作916对层915的输出与层909求和,并将该输出馈送到输出层917。输出层917输出去噪的SSL。

当从存储器装置输出(例如,从存储器装置读取)数据时可使用由输出层917输出的去噪的SSL。例如,参照图6,假设正从存储器装置读出存储在连接到SSL3的存储器单元(例如,字线WL3、WL7、…WL99的存储器单元之一)中的数据。例如,当用户访问时、当传递到数据处理的后续阶段时等,可从存储器装置读出数据。当从存储器装置读出数据时,可在从存储器装置读出数据之前执行上面参照图9描述的操作以对数据去噪(例如,以校正数据)。

例如,当请求从字线WL3、WL7、…WL99的存储器单元之一读取数据时,神经网络首先通过将字线WL3、WL7、…WL99的存储器单元中的至少一个的电压电平从第一电压电平改变为第二电压电平来对SSL3去噪,其中第一电压电平被分类为属于(6BPC方案中的64个集群中的)第一集群,第二电压电平被分类为属于(6BPC方案中的64个集群中的)第二集群。

要注意的是,由于出于上述的相同原因,写到存储器单元将再次引入噪声,所以此时在存储器装置内这种存储器单元的电压电平实际上未改变。相反,在从存储器装置读出来自这些存储器单元的数据时存储器装置输出由神经网络输出的这些存储器单元的改变(校正)的电压电平,而非此时读出存储器装置内的这些存储器单元的实际电压电平。即,存储器装置输出由神经网络生成的数据的更干净的去噪版本,而实际存储在存储器装置中的数据的噪声版本原封不动并在存储器装置内保持不变。因此,每次从存储器装置读出该数据时可再次执行此处理。

当从存储器装置读出数据时可执行电平跳过操作,使得在从存储器装置读出时由于噪声消除而变得更糟的电压电平不改变(例如,可针对这些存储器单元读出存储器装置中的实际未变的电压电平)。数据的更干净的去噪版本(以及根据电平跳过操作有意保留未变的任何数据)可在从存储器装置读出之前被转换为数字形式。

由于可通过电平至比特的Grey码映射确定BER,所以在一些情况下,减小电压误差可潜在地增加每单元的错误比特数。因此,示例性实施例可在BER损失仍单调的范围上近似BER损失,否则具有恒定损失。

神经网络解码器

图10示出根据本公开的各方面的神经网络解码器1025的示例。所示的示例包括信息比特1000、ECC编码器1005、调制1010、噪声源1015、信号处理1020、神经网络解码器1025、输出处理1045和输出信息比特1050。

信息比特1000可由ECC编码器1005(例如,使用极性编码方案或S极性编码方案)编码。在一些情况下,在发送或编程数据之前,可通过调制1010应用诸如二进制相移键控(BPSK)的调制方案。在接收(或读取)数据时,数据可包括来自噪声源1015的噪声。神经网络解码器1025可用于在存在来自噪声源1015的噪声的情况下对数据进行解码。

ECC编码器1005和神经网络解码器1025可以是参照图6描述的对应元件的示例或包括其各方面。神经网络解码器1025可包括输入层1030、隐藏层1035和输出层1040。

神经网络解码器1025可基于消息传递算法使用加权置信传播(WBP)来操作。置信传播可以是基于观察的变量为未观察的变量计算的边缘分布。神经网络学习各个消息的最优权重。可基于损失函数(例如,基于解码的码字与原始码字的交叉熵的损失函数)来更新神经网络解码器1025的参数。

根据一个实施例,前馈人工神经网络(ANN)用作神经网络解码器1025。ANN是包括大量连接的节点(也称为人工神经元)的硬件或软件组件,其可松散地对应于人脑中的神经元。各个连接或边缘可从一个节点向另一节点发送信号(类似大脑中的物理突触)。当节点接收到信号时,该节点可处理该信号,然后将处理的信号发送到其它连接的节点。在一些情况下,节点之间的信号包括实数,并且可通过各个节点输入之和的函数来计算各个节点的输出。各个节点和边缘可与一个或多个节点权重关联,这些节点权重确定如何处理和发送信号。

在训练处理期间,可调节这些权重以改进结果的准确性(即,通过使以某种方式与当前结果与目标结构之间的差对应的损失函数最小)。边缘的权重可增加或减小节点之间发送的信号的强度。在一些情况下,节点可具有阈值,低于该阈值根本不发送信号。节点也可聚集为层。不同的层可对其输入执行不同的变换。初始层可被称为输入层,最后层可被称为输出层。在一些情况下,信号可横穿某些层多次。

根据一个示例,神经网络的损失函数可以是解码的码字u与原始码字o的交叉熵。可使用结构化码(例如,极性码)增加泛化属性(generalization property)。

示例性方法

图11示出根据本公开的各方面的将数据编程到存储器装置的处理的示例。在一些示例中,这些操作可由包括处理器的系统执行,该处理器执行一组代码以控制设备的功能元件。另外地或可替代地,可使用专用硬件执行这些处理。通常,这些操作可根据依据本公开的各方面描述的方法和处理来执行。例如,操作可由各种子步骤组成,或者可结合本文中描述的其它操作执行。

在操作1100,系统接收数据块。在一些情况下,此步骤的操作可参考如参照图6描述的存储器控制器或由其执行。

在操作1105,系统基于ECC编码方案对数据块进行编码。在一些情况下,此步骤的操作可参考如参照图6和图10描述的ECC编码器或由其执行。

在操作1110,系统基于约束编码方案对数据块进行编码。在一些情况下,此步骤的操作可参考如参照图6描述的约束信道编码器或由其执行。

在操作1115,系统使用RLPP将编码的数据块编程到存储器装置。在一些情况下,此步骤的操作可参考如参照图6描述的RLPP组件或由其执行。

图12示出根据本公开的各方面的从存储器装置读取数据的处理的示例。在一些示例中,这些操作可由包括处理器的系统执行,该处理器执行一组代码以控制设备的功能元件。另外地或可替代地,可使用专用硬件来执行这些处理。通常,这些操作可根据依据本公开的各方面描述的方法和处理来执行。例如,操作可由各种子步骤组成,或者可结合本文中描述的其它操作执行。

在操作1200,系统从存储器装置读取数据块。在一些情况下,此步骤的操作可参考如参照图6描述的存储器控制器或由其执行。

在操作1205,系统使用EM信号处理来处理数据块以利用LLR值对数据块的各个比特进行分类。在一些情况下,此步骤的操作可参考如参照图6描述的EM信号处理组件或由其执行。

在操作1210,系统基于约束编码方案对数据块进行解码。在一些情况下,此步骤的操作可参考如参照图6描述的约束信道解码器或由其执行。

在操作1215,系统基于ECC编码方案来对数据块进行解码。在一些情况下,此步骤的操作可参考如参照图6描述的ECC解码器或由其执行。

图13示出根据本公开的各方面的执行干扰消除的处理的示例。在一些示例中,这些操作可由包括处理器的系统执行,该处理器执行一组代码以控制设备的功能元件。另外地或可替代地,可使用专用硬件来执行这些处理。通常,这些操作可根据依据本公开的各方面描述的方法和处理来执行。例如,操作可由各种子步骤组成,或者可结合本文中描述的其它操作执行。

在操作1300,系统从存储器装置读取数据块。在一些情况下,此步骤的操作可参考如参照图6描述的存储器控制器或由其执行。

在操作1305,系统使用EM信号处理来处理数据块以利用LLR值对数据块的各个比特进行分类。在一些情况下,此步骤的操作可参考如参照图6描述的EM信号处理组件或由其执行。

在操作1310,系统基于约束编码方案对数据块进行解码。在一些情况下,此步骤的操作可参考如参照图6描述的约束信道解码器或由其执行。

在操作1315,系统基于ECC编码方案对数据块进行解码。在一些情况下,此步骤的操作可参考如参照图6描述的ECC解码器或由其执行。

在操作1320,系统确定基于ECC编码方案的解码是不够的。在一些情况下,此步骤的操作可参考如参照图6描述的机器学习干扰连续消除组件或由其执行。

在操作1325,系统基于该确定来执行机器学习干扰连续消除。在一些情况下,此步骤的操作可参考如参照图6描述的机器学习干扰连续消除组件或由其执行。

图14示出根据本公开的各方面的执行神经网络解码的处理的示例。在一些示例中,这些操作可由包括处理器的系统执行,该处理器执行一组代码以控制设备的功能元件。另外地或可替代地,可使用专用硬件来执行这些处理。通常,这些操作可根据依据本公开的各方面描述的方法和处理来执行。例如,操作可由各种子步骤组成,或者可结合本文中描述的其它操作执行。

在操作1400,系统从存储器装置读取数据块。在一些情况下,此步骤的操作可参考如参照图6描述的存储器控制器或由其执行。

在操作1405,系统使用EM信号处理来处理数据块以利用LLR值对数据块的各个比特进行分类。在一些情况下,此步骤的操作可参考如参照图6描述的EM信号处理组件或由其执行。

在操作1410,系统基于约束编码方案对数据块进行解码。在一些情况下,此步骤的操作可参考如参照图6描述的约束信道解码器或由其执行。

在操作1415,系统基于ECC编码方案对数据块进行解码。在一些情况下,此步骤的操作可参考如参照图6描述的ECC解码器或由其执行。

在操作1420,系统确定基于ECC编码方案的解码是不够的。在一些情况下,此步骤的操作可参考如参照图6和图10描述的神经网络解码器或由其执行。

在操作1425,系统使用神经网络解码器对数据块进行解码。在一些情况下,此步骤的操作可参考如参照图6和图10描述的神经网络解码器或由其执行。

因此,本公开包括以下实施例。

描述了一种用于移动装置的数据存储的移动电子装置。移动电子装置的实施例可包括:存储器装置;存储器控制器,其包括处理器和内部存储器并且被配置为操作存储器装置;纠错码(ECC)编码器,其被配置为对数据进行编码以便于编程到存储器装置;约束信道编码器,其被配置为基于一个或多个约束对ECC编码器的输出进行编码以便于编程到存储器装置;强化学习脉冲编程(RLPP)组件,其被配置为识别用于将数据编程到存储器装置的编程算法;期望最大化(EM)信号处理组件,其被配置为从存储器装置接收噪声多字线电压向量并利用对数似然比(LLR)值对向量的各个比特进行分类;约束信道解码器,其被配置为从EM信号处理组件接收约束向量并生成非约束向量;以及ECC解码器,其被配置为对非约束向量进行解码。

在一些示例中,ECC编码器被配置为使用结合了里德所罗门(RS)编码方案和极性编码方案的S极性编码方案对数据进行编码。在一些示例中,ECC编码器包括为移动架构配置的减小的帧大小和降低的冗余级别。在一些示例中,约束信道编码器被配置为在针对存储器装置的当前字线对ECC编码器的输出进行编码之前识别来自存储器装置的下一字线的数据。

在一些示例中,RLPP组件包括字线代理、电平代理和块代理。在一些示例中,EM信号处理组件被配置为将LLR值提供给ECC解码器。在一些示例中,为移动架构基于减小的样本大小来配置EM信号处理组件。

上述移动电子装置和方法的一些示例还可包括机器学习干扰连续消除组件,其被配置为从ECC解码器接收噪声字线向量并将去噪字线向量提供给ECC解码器。

上述移动电子装置和方法的一些示例还可包括神经网络解码器,其被配置为接收字线数据向量和字线电压向量并生成恢复的数据向量。在一些示例中,神经网络解码器包括数量减少的节点,其中,为移动架构选择数量减少的节点。

在一些示例中,存储器装置的各个单元包括5比特或6比特NAND闪存单元。在一些示例中,存储器控制器包括为降低的功耗配置的简化的存储器控制器架构。

描述了一种用于移动装置的数据存储的方法。该方法的实施例可包括:接收数据块;基于ECC编码方案对数据块进行编码;基于约束编码方案对数据块进行编码;以及使用RLPP将编码的数据块编程到存储器装置

在一些示例中,ECC编码方案包括结合了RS编码方案和极性编码方案的S极性编码方案。上述方法的一些示例还可包括识别来自存储器装置的下一字线的数据,其中,约束编码方案基于来自下一字线的数据。

描述了一种用于移动装置的数据存储的方法。该方法的实施例可包括:从存储器装置读取数据块;使用EM信号处理来处理数据块以利用LLR值对数据块的各个比特进行分类;基于约束编码方案对数据块进行解码;以及基于ECC编码方案对数据块进行解码

在一些示例中,ECC编码方案包括结合了RS编码方案和极性编码方案的S极性编码方案。在一些示例中,基于ECC编码方案对数据块的解码至少部分地基于LLR值执行。

上述方法的一些示例还可包括确定基于ECC编码方案的解码是不够的。一些示例还可包括基于该确定来执行机器学习干扰连续消除。上述方法的一些示例还可包括确定基于ECC编码方案的解码是不够的。一些示例还可包括使用神经网络解码器对数据块进行解码。

本文中所述的描述和附图表示示例配置,而非表示权利要求的范围内的所有实现方式。例如,操作和步骤可被重排、组合或以其它方式修改。另外,结构和装置可按框图的形式表示,以表示组件之间的关系并避免模糊所描述的概念。类似组件或特征可具有相同的名称,但可具有与不同附图对应的不同标号。

对于本领域技术人员而言,对本公开的一些修改可容易地显而易见,在不脱离本公开的范围的情况下,本文中定义的原理可应用于其它变体。因此,本公开不限于本文中描述的示例和设计,而是应给予与本文中公开的原理和新颖特征一致的最宽范围。

所描述的方法可由包括通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、分立的门或晶体管逻辑、分立的硬件组件或其任何组合的装置实现或执行。通用处理器可以是微处理器、传统处理器、控制器、微控制器或状态机器。处理器也可被实现为计算装置的组合(例如,DSP和微处理器的组合、多个微处理器、与DSP核心结合的一个或更多个微处理器或任何其它这种配置)。因此,本文中所描述的功能可在硬件或软件中实现,并且可由处理器、固件或其任何组合执行。如果在由处理器执行的软件中实现,则功能可按指令或代码的形式存储在计算机可读介质上。

计算机可读介质包括非暂时性计算机存储介质和通信介质二者,通信介质包括方便代码或数据的传送的任何介质。非暂时性存储介质可以是可由计算机访问的任何可用介质。例如,非暂时性计算机可读介质可包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、紧凑盘(CD)或其它光盘存储、磁盘存储或者用于承载或存储数据或代码的任何其它非暂时性介质。

另外,连接组件可适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字订户线(DSL)或无线技术(例如,红外、无线电或微波信号)从网站、服务器或其它远程源发送代码或数据,则同轴线缆、光纤线缆、双绞线、DSL或无线技术包括在介质的定义中。介质的组合也包括在计算机可读介质的范围内。

在本公开和所附权利要求中,词语“或”指示包含性列表,使得例如X、Y或Z的列表意指X或Y或Z或XY或XZ或YZ或XYZ。另外,短语“基于”并非用于表示条件的封闭集。例如,被描述为“基于条件A”的步骤可基于条件A和条件B二者。换言之,短语“基于”应被解释为意指“至少部分地基于”。另外,词语“一”或“一个”指示“至少一个”。

35页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:双通道DDR动态随机存取存储器的减少的纠错码

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!