CN113742128A - 处理数据的方法和设备 - Google Patents
处理数据的方法和设备 Download PDFInfo
- Publication number
- CN113742128A CN113742128A CN202110209394.1A CN202110209394A CN113742128A CN 113742128 A CN113742128 A CN 113742128A CN 202110209394 A CN202110209394 A CN 202110209394A CN 113742128 A CN113742128 A CN 113742128A
- Authority
- CN
- China
- Prior art keywords
- elements
- memory
- sub
- tables
- look
- 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
-
- 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
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/158—Finite field arithmetic processing
-
- 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
- H03M13/132—Algebraic geometric codes, e.g. Goppa codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0775—Content or structure details of the error report, e.g. specific table structure, specific error fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/041—Abduction
-
- 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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
-
- 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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1191—Codes on graphs other than LDPC 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2942—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes wherein a block of parity bits is computed only from combined information bits or only from parity bits, e.g. a second block of parity bits is computed from a first block of parity bits obtained by systematic encoding of a block of information bits, or a block of parity bits is obtained by an XOR combination of sub-blocks of information bits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Computational Linguistics (AREA)
- Discrete Mathematics (AREA)
- Molecular Biology (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Read Only Memory (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
Abstract
描述了处理数据的方法和设备。所述系统和方法可包括:识别有限域的第一元素;生成用于对第一元素进行乘法运算的多个查找表;将第一元素与有限域的多个额外元素相乘,其中,针对额外元素中的每个的乘法运算使用来自查找表中的每个中的元素来执行;和基于所述乘法运算根据ECC方案对信息进行编码。
Description
本申请要求于2020年5月28日在美国专利和商标局提交的第16/885,772号美国专利申请的优先权,所述美国专利申请的公开通过引用全部包含于此。
技术领域
下面总体涉及纠错编码(ECC),更具体地,涉及用于嵌入式通用闪存(eUFS或EUFS)的低功率ECC。
背景技术
ECC技术通常用在包括存储器装置的各种通信系统中,以在存在由通信信道引入的噪声和其他错误的情况下恢复数据。例如,当从存储器读取数据时,取回的位中的一些可能与原始编程到存储器的位不对应。ECC编码可用来恢复原始的位。
然而,在许多情况下,ECC技术可以是计算密集型的,并且可消耗大量功率。对于低功率装置来说,这可能尤其成问题。因此,本领域存在对有效的ECC方法的需要。
发明内容
描述了用于嵌入式通用闪存(eUFS)的低功率纠错编码(ECC)的方法、设备、非暂时性计算机可读介质和系统。所述方法、设备、非暂时性计算机可读介质和系统的实施例可包括:识别代数域的第一元素;生成用于对第一元素进行乘法运算的多个查找表;将第一元素与代数域的多个额外元素相乘,其中,针对额外元素中的每个的乘法运算使用来自查找表中的每个的元素来执行;和基于所述乘法运算根据ECC方案对信息进行编码。
描述了用于EUFS的低功率ECC的方法、设备、非暂时性计算机可读介质和系统。所述方法、设备、非暂时性计算机可读介质和系统的实施例可:识别代数域的第一元素;生成用于对第一元素进行乘法运算的多个查找表;将代数域的第二元素划分为多个子元素,其中,所述多个子元素的数量等于所述多个查找表的数量;基于所述多个子元素中的每个从所述多个查找表中的每个识别求和项;通过对每个求和项进行求和来计算第一元素与第二元素的乘积;和基于第一元素与第二元素的乘积对信息进行解码。
描述了用于EUFS的低功率ECC的设备、系统和方法。所述设备、系统和方法的实施例可包括:处理器;存储器;表生成组件,被配置为生成用于对第一元素进行乘法运算的多个查找表;查找组件,被配置为将代数域的第二元素划分为多个子元素,并且基于所述多个子元素中的每个从所述多个查找表中的每个识别求和项;乘法运算组件,被配置为通过对每个求和项进行求和来计算第一元素与第二元素的乘积;和编码器,被配置为基于第一元素与第二元素的乘积对信息进行编码。
附图说明
通过参照附图详细地描述本发明构思的示例性实施例,本发明构思的特征将变得更清楚。
图1是示出根据发明构思的示例性实施例的包括存储器系统的数据处理系统的实现的框图。
图2是示出根据发明构思的示例性实施例的图1的存储器系统的框图。
图3是根据发明构思的示例性实施例的图1的非易失性存储器装置的详细的框图。
图4是根据发明构思的示例性实施例的图3的存储器单元阵列的框图。
图5是根据发明构思的示例性实施例的图4的存储器单元阵列的存储器块的电路图。
图6示出根据本公开的方面的存储器装置的示例。
图7示出根据本公开的方面的编码处理的示例。
图8示出根据本公开的方面的解码处理的示例。
具体实施方式
本公开描述了用于纠错的系统和方法,更具体地,描述了用于低功率纠错编码(ECC)的系统和方法。ECC可被用于控制通过不可靠或者有噪声的通信信道的数据中的错误。例如,冗余信息可被包括在识别和恢复不准确信息的信号中。
ECC操作可包括大量的数学计算,大量的数学计算可对硬件施加显著要求。例如,计算有限域的乘积可以是计算密集型的。在代数ECC(诸如,Reed Solomon(RS)、Bose-Chaudhuri-Hocquenghem(BCH)、极化码和RS列表解码器)中,大比例的乘积是循环乘积。在一些情况下,代数ECC可涉及与一些其他标量相乘的标量并且以增加成本的直接的方式执行。本公开能够降低计算循环乘积的成本。
本公开的实施例可包括通过以下步骤来执行ECC:识别有限域的预期将被相乘多次的第一元素,基于识别的第一元素生成多个查找表(在下文中,可替换地被称为表),识别有限域的将与第一元素相乘的第二元素,基于第二元素从查找表中的每个查找项,并且通过对来自查找表的项进行求和来计算第一元素与第二元素的乘积。在将作为随后乘法运算的基础的另外的元素被识别之前,查找表可被重复使用多次。
编码器是用于将来自输入的二进制信息转换为唯一的输出的逻辑电路。解码器是用于将来自编码的输入的二进制信息转换为唯一的输出的逻辑电路。多个输入和多个输出可被使用。信道编码对数据流执行编码操作和解码操作,以纠正通信错误(诸如,干扰或噪声)。信道编码对第一数据流和第二数据流执行,第一数据流具有在发送装置处的第一组操作,第二数据流具有在接收装置处的第二组操作。在一些情况下,信道编码可基于块码或卷积码。
在一些情况下,在此描述的低功率编码技术可在NAND存储器装置内实施。NAND编程是基于将电压施加到存储器单元的复杂处理。然而,单元电压可受变量(诸如,电流电压电平、脉冲功率和单元间干扰)影响。单元电压还可受抑制的单元损坏(inhibited celldisruption)、字线(WL)间耦合(coupling)和单元保持(cell retention)的影响。此外,写入NAND装置的结果可以是随机的。例如,数据也可能有噪音,导致观测问题。
在下文中,将参照附图更全面地描述本发明构思的示例性实施例。贯穿附图,相同的参考标号可表示相同的元件。
将理解,在此使用术语“第一”、“第二”、“第三”等来将一个元素与另外的元素进行区分,并且元素不受这些术语限制。因此,示例性实施例中的“第一”元素可被描述为另外的示例性实施例中的“第二”元素。
应当理解,除非上下文另外清楚地指示,否则每个示例性实施例内的特征或方面的描述通常应当被视为可用于其他示例性实施例中的其他类似的特征或方面。
如在此使用的,除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。
在此,如本领域普通技术人员将理解的那样,当一个值被描述为约等于另外的值或与另外的值基本相同或相等时,将被理解,所述值在测量误差内彼此相等,或者如果显著不相等,则所述值在值上足够接近从而彼此功能上相等。例如,考虑到有问题的测量以及与特定量的测量相关联的误差(即,测量系统的局限性),如在此使用的术语“大约”包括阐述的值并且表示在如由本领域普通技术人员所确定的针对特定值的可接受的偏差范围以内。例如,“大约”可表示在如本领域普通技术人员所理解的一个或多个标准偏差以内。此外,将理解,虽然参数可在此根据示例性实施例被描述为具有“大约”为某个值,但是该参数可以正好是该某个值或者近似是如本领域普通技术人员将理解的测量误差内的某个值。
示例性存储器系统
图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还可针对与存储器操作相关的信息表(Info_table)与存储器系统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还可包括装置信息存储装置217,装置信息存储装置217被配置为将第一装置信息DI1提供给主机接口块215并且将第二装置信息DI2提供给控制器核211。
控制器核211可包括存储器控制核212和机器学习核213,并且这些核中的每个可由一个或多个处理器来实现。存储器控制核212可根据从主机100接收的请求或者内部指定的调度来控制和访问存储器装置220。存储器控制核212可管理和执行用于管理或操作存储器系统200的各种元数据和代码。
如以下进一步详细描述的那样,机器学习核213可用于执行被设计为对存储器装置220执行噪声消除的神经网络的训练和推断。
内部存储器214可被用作例如由控制器核211使用的系统存储器、存储存储器装置220的数据的缓冲存储器、或者临时存储主机100与存储器装置220之间的数据的高速缓冲存储器。内部存储器214可存储映射表MT,映射表MT指示分配给存储器系统200的逻辑地址与存储器装置220的物理地址之间的关系。内部存储器214可包括例如DRAM或者SRAM。
在一个示例性实施例中,神经网络可被包括在计算机程序中,计算机程序被存储在存储器控制器210的内部存储器214中或者被存储在存储器装置220中。包括神经网络的计算机程序可由机器学习核213来执行,以对存储在存储器装置220中的数据进行去噪。因此,根据示例性实施例,存储器系统200可在存储器装置220的正常读取操作期间对存储在存储器装置220中的数据进行去噪。也就是说,在存储器系统200的制造完成之后,在存储器系统200的正常操作期间,更具体地,在存储器系统200的数据从存储器装置220被读取的正常读取操作期间,存储在存储器装置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将指示请求被完成的第一响应RESP1发送给主机100。
当第一请求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的发送可被省略。
存储器装置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是根据发明构思的示例性实施例的图3的存储器单元阵列221的框图。
参照图4,根据示例性实施例的存储器单元阵列221包括多个存储器块BLK1至BLKz,其中,z是大于1的整数。存储器块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的电路图,其中,i=1、……、z。图5示出图4的存储器单元阵列221中的存储器块BLK1至BLKz中的一个的示例。图5中示出的字线和存储器单元的数量仅是示例,并且任何合适数量的字线和存储器单元可被使用。
存储器块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示出根据本公开的方面的存储器装置的示例。存储器装置600可包括处理器组件605、存储器组件610、表生成组件615、查找组件620、乘法运算组件625、编码器630和解码器635。根据一些实施例,存储器装置可包括如参照图1至图5所描述的NAND闪存装置。
处理器组件(在下文中,还被称为处理器)605可包括智能硬件装置(例如,通用处理组件、数字信号处理器(DSP)、中央处理器(CPU)、图形处理器(GPU)、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑装置、分立门或晶体管逻辑组件、分立硬件组件或它们的任何组合)。在一些情况下,处理器可被配置为使用存储器控制器操作存储器阵列。在其他情况下,存储器控制器可被集成在处理器中。处理器可被配置为执行存储在存储器中的计算机可读指令以执行各种功能。在一些示例中,处理器可包括用于调制解调器处理、基带处理、数字信号处理或传输处理的专用组件。在一些示例中,处理器可包括片上系统。
存储器组件610可在计算装置上存储用于各种程序和应用的信息。例如,存储装置可包括用于运行操作系统的数据。存储器可包括易失性存储器和非易失性存储器两者。易失性存储器可包括随机存取存储器(RAM),非易失性存储器可包括只读存储器(ROM)、闪存、电可擦可编程只读存储器(EEPROM)、数字磁带、硬盘驱动器(HDD)以及固态驱动器(SSD)。存储器可包括可读和/或可写易失性存储器和/或非易失性存储器以及其他可行的存储装置的任意组合。存储器组件610可将编码的信息编程到存储器。
表生成组件615可识别域的第一元素,并且生成用于对第一元素进行乘法运算的一组查找表。在一些示例中,使用格雷码(Gray code)来生成一组查找表。在一些示例中,一组查找表的数量基于第一元素的位数。可基于ECC的编码算法、基于将被编码的信息或者基于两者来识别第一元素。
查找组件620可基于根据第二元素识别的一组子元素中的每个,从一组查找表中的每个识别求和项。在一些示例中,使用一组子元素中的相应子元素作为索引从一组表中的每个识别求和项。
查找组件620可基于一组子元素中的每个从一组查找表中的每个识别求和项。在一些情况下,查找组件620可被配置为将域的第二元素划分为多个子元素,并且基于多个子元素中的每个从多个查找表中的每个识别求和项。
乘法运算组件625可识别将要相乘的第一元素和第二元素,并且将第二元素分为一组子元素,其中,一组子元素的数量等于查找表的数量。乘法运算组件625可通过对从一组查找表识别的求和项进行求和来计算第一元素与第二元素的乘积。在一些示例中,第一元素的位数等于第二元素的位数。
乘法运算组件625还可识别将要与第一元素相乘的随后的元素,并且使用参照第二元素描述的处理来计算第一元素与随后的元素中的每个的乘积。
编码器630可基于第一元素与第二元素的乘积对信息进行编码。在一些示例中,编码基于代数ECC方案。编码器630可被配置为基于第一元素与第二元素的乘积(例如,乘法运算组件625的输出)对信息进行编码。
解码器635可基于第一元素与第二元素的乘积对信息进行解码。解码器635可被配置为基于乘法运算组件625的输出对信息进行解码。
低功率纠错
图7示出根据本公开的方面的编码处理的示例。在一些示例中,这些操作可由包括处理器的系统来执行,处理器执行用于控制设备的功能元件的一组代码。另外地或可选地,这些操作可使用专用硬件来执行。通常,这些操作可根据基于本公开的方面描述的方法和处理来执行。例如,操作可由各种子步骤组成,或者可结合在此描述的其他操作来执行。
本公开考虑了域(例如,有限域)中的第一元素β,其中,预期β将被用于与同一域的许多其他元素相乘。在下面的方案中,处理器形成来自域F的元素的两个或更多个小型查找表(LUT)(或者,可选地,表)。这些表取决于β。域的第一元素与第二元素的每个乘积β·γ(γ∈F)通过从每个表读取标量然后将读取的标量相加来执行。因此,该乘积可被简化为LUT访问和加法。这能够降低硬件(HW)的整体成本和设计复杂性。在代数纠错码(ECC)中,一个元素与许多其他元素相乘的处理很常见。
代数ECC功能(诸如,Bose-Chaudhuri-Hocquenghem(BCH)码或Reed Solomon(RS)码)包括列表解码器和使用同一标量与其他标量变量相乘的各种GNU编译器套件(GNUComplier Collection,GCC)码。例如,设F=GF(2r)且β∈F*。GF(2r)对应于具有2r个元素的伽罗华域(Galois Field),r是大于s的整数,s对应于子空间的数量。然后,将变量β与域F的元素相乘。最初,处理器产生由来自F的元素组成的小型查找表(LUT)。LUT基于β。
每个β·γ(γ∈F)的计算可通过从每个表读取标量,然后将读取的标量相加来执行。例如,当存在两个表时,β·γ的计算使用2次小型表读取和r次XOR。在传统方法中,这样的乘积使用r2次XOR。表的数量的增加在增加算术复杂性的同时可降低表搜索的整体成本。
下面描述包括两个表的实施例。然而,这可推广到任意数量的表。设F=GF(2r)且β∈F\{0},其中,β与域F的许多不同元素相乘。固定r次本原多项式:p(x)=∑0≤i≤rai·xi(ai∈GF(2)),使得多项式汉明权重(polynomial hamming weight)ham(p(x))最小,并且设r’等于ham(p(x))-1,其中r’=2在许多常见应用中均可获得(例如r=10)。此外,a0=ar=1。
设α∈F(p(x)的根),并且观察到:
αr=∑0≤i≤r-1ai·αi且α-1=∑0≤i≤r-1αi+1·αi (1)
在两个等式的右侧都存在r’个非零系数ai。可使用任意元素(诸如,β∈F*)来考虑相对于GF(2)上的F的基{1,α,...,αr-1}的二进制表示:
β=∑0≤i≤r-1βi·αi (2)
其中,βi∈GF(2),并且hamα(β)=ham(β0,...,βr-1)。
此外,注意:
β·α=∑0≤i≤r-1βi·αi+1β·α=∑0≤i≤r-2βi·αi+1+βr-1·∑0≤i≤r-1ai·αi (3)
因此,当βr-1=1时,循环移位和r’次GF(2)加法用于β·α的计算。当βr-1=0(针对一半的域的元素)时,没有加法。同样,
β·α-1=∑0≤i≤r-1βi·αi-1=∑1≤i<r-1βi·αi-1+β0·∑0≤i≤r-1ai+1·αi (4)
因此,当β0=1时,循环移位和r’次GF(2)加法用于β·α-1的计算。当β0=0(即,针对一半的域的元素)时,没有加法。
因此,在操作700,系统识别域的第一元素(即,β)。在一些情况下,该步骤的操作可参考如参照图6所描述的表生成组件,或者可由如参照图6所描述的表生成组件执行。可基于用于ECC的编码算法、基于接收的将被编码的信息或者基于两者来识别第一元素。在一些情况下,系统可基于正被使用的ECC编码方案、用于ECC的算法或者将被编码(或解码)的信息,识别作为可能被相乘多次的元素的第一元素。
在操作705,系统生成用于对第一元素进行乘法运算的一组查找表。在一些情况下,该步骤的操作可参考如参照图6所描述的表生成组件,或者可由如参照图6所描述的表生成组件执行。
LUT可使用F标量来构造,LUT由Ti=Ti(β)表示,i=0,1,2。变量T0是融合了表T1和T2的临时表。一旦处理器计算了这些表,就通过从T1读取一个元素和从T2读取一个元素并将它们加在一起来完成每次与β的乘积。因此,当表被给定时,每次与β的乘积的成本是两次LUT访问和r次XOR,而传统技术中是r2次XOR。第一步是使用下面的等式的表的计算;
T0≡{β·αi:1≤i≤r-1} (5)
根据上面的等式4,平均成本为r·r’/2次XOR。
格雷码是二进制数字系统的排序,使得两个连续的值有一个位不同,并且第一元素是零向量。在T1和T2的构造中,格雷码可被使用。当T0被给定时,和用格雷码进行排序,其中,表示下取整,表示上取整。根据排序,下面的两个表被计算,它们是GF(2)上的线性子空间;
此外,T0、T1、T2满足关系对于偶数r,|T1|=|T2|=2r/2,对于奇数r,|T1|=2(r+1)/2且|T2|=2(r-1)/2。计算T1和T2的算术复杂度为C=(|T1|+|T2|·r次XOR。变量C也可以是T1和T2的位的总大小。例如,对于r=10,C=640。
在操作710,系统将域的第二元素(即,γ)划分为一组子元素(即,γi),其中,子元素的数量等于查找表的数量。在一些情况下,该步骤的操作可参考如参照图6所描述的乘法运算组件,或者可由如参照图6所描述的乘法运算组件执行。可基于用于ECC的编码算法、基于接收的将被编码的信息或者基于两者来识别第二元素。在一些情况下,子元素可以以与查找表的排序对应的排序来排序。
在操作715,系统基于一组子元素中的每个从一组查找表中的每个来识别求和项(即,项)中的一个)。在一些情况下,该步骤的操作可参考如参照图6所描述的查找组件,或者可由如参照图6所描述的查找组件执行。例如,子元素(即,第二元素的部分)中的每个可用作特定查找表的查找索引。例如,第二元素的第一部分可用作第一表的索引,第二元素的第二部分可用于在第二查找表中查找项,依此类推。
在操作720,系统通过对求和项进行求和来计算第一元素与第二元素的乘积。在一些情况下,该步骤的操作可参考如参照图6所描述的乘法运算组件,或者可由如参照图6所描述的乘法运算组件执行。
当N≥1并且使用递归函数时,使用最大N·r′次GF(2)加法的最大值和N·r’/2次加法(全部β∈F)的均值来计算标量{β·αi}1≤i≤N。同样,可使用N·r’次GF(2)加法的最大值和N·r’/2次加法(全部β∈F)的均值来计算标量{β·α-i}1≤i≤N。
当T1和T2被计算时,它们可使用F中的任意元素:
γ=∑0≤i≤r-1γi·α1其中,(γi∈GF(2)) (8)
其中,β·γ可如下被分解:
因此,乘积β·γ可通过多次LUT访问和一次或多次F加法来计算。
在操作725,系统基于第一元素与第二元素的乘积对信息进行编码。在一些情况下,该步骤的操作可参考如参照图6所描述的编码器,或者可由如参照图6所描述的编码器执行。在一个实施例中,在操作700之前,编码处理还可包括:接收信息(例如,读取的数据或写入的数据);和将接收到信息转换到有限域。在一个实施例中,在操作705之后,编码处理还可包括:将第一元素与有限域的多个额外元素相乘,其中,针对所述多个额外元素中的每个的乘法运算使用来自所述多个查找表中的每个中的元素来执行;和基于所述乘法运算根据纠错码对信息进行编码。
因此,对于整数r和s,其中,s≤r,在GF(2)上存在F=GF(2r)的子空间V1,V2,...,Vs,其直和(direct sum)为F,并且其维数相差不超过1,其中,对于给定的目标β∈F,处理器计算并存储表T1=β·V1,T2=β·V2,...,Ts=β·Vs,从而对于每个v∈F,处理器迅速找到v1,v2,...,vs,使得:
v=v1+v2+…+vs,且vi∈Vi(i∈[s]) (10)
因此,处理器在由vi提供的地址处找到:β·vi∈Ti(i∈[s])。因此,使用F中的s-1次加法,期望的输出被计算为:
β·v=β·v1+β·v2+…+β·vs (11)
图8示出根据本公开的方面的解码处理的示例。在一些示例中,这些操作可由包括处理器的系统执行,处理器执行用于控制设备的功能元件的一组代码。另外地或可选地,可使用专用硬件来执行处理。通常,可根据基于本公开的方面描述的方法和处理来执行这些操作。例如,操作可由各种子步骤组成,或者可结合在此描述的其他操作来执行。
在操作800,系统识别域的第一元素。在一些情况下,该步骤的操作可参考如参照图6所描述的表生成组件,或者可由如参照图6所描述的表生成组件执行。
在操作805,系统生成用于对第一元素进行乘法运算的一组查找表。在一些情况下,该步骤的操作可参考如参照图6所描述的表生成组件,或者可由如参照图6所描述的表生成组件执行。
在操作810,系统将域的第二元素划分为一组子元素,其中,子元素的数量等于查找表的数量。在一些情况下,该步骤的操作可参考如参照图6所描述的乘法运算组件,或者可由如参照图6所描述的乘法运算组件执行。
在操作815,系统基于一组子元素中的每个从一组查找表中的每个识别求和项。在一些情况下,该步骤的操作可参考如参照图6所描述的查找组件,或者可由如参照图6所描述的查找组件执行。
在操作820,系统通过对求和项进行求和来计算第一元素与第二元素的乘积。在一些情况下,该步骤的操作可参考如参照图6所描述的乘法运算组件,或者可由如参照图6所描述的乘法运算组件执行。
在操作825,系统基于第一元素与第二元素的乘积对信息进行解码。在一些情况下,该步骤的操作可参考如参照图6所描述的解码器,或者可由如参照图6所描述的解码器执行。在一个实施例中,在操作800之前,编码处理还可包括:接收信息(例如,读取的数据或写入的数据);和将接收到信息转换到有限域。
因此,本公开包括下面的实施例。
描述了一种用于嵌入式通用闪存(EUFS)的低功率纠错编编码(ECC)的方法。方法的实施例可包括:识别域的第一元素;生成用于对第一元素进行乘法运算的多个查找表;将域的第二元素划分为多个子元素,其中,子元素的数量等于查找表的数量;基于多个子元素中的每个从多个查找表中的每个识别求和项;通过对求和项进行求和来计算第一元素与第二元素的乘积;以及基于第一元素与第二元素的乘积对信息进行编码。
描述了一种用于EUFS的低功率ECC的设备。设备可包括处理器、与处理器电子通信的存储器以及存储在存储器中的指令。指令可能够操作,以使处理器:识别域的第一元素;生成用于对第一元素进行乘法运算的多个查找表;将域的第二元素划分为多个子元素,其中,子元素的数量等于查找表的数量;基于多个子元素中的每个从多个查找表中的每个识别求和项;通过对求和项进行求和来计算第一元素与第二元素的乘积;以及基于第一元素与第二元素的乘积对信息进行编码。
描述了一种存储用于EUFS的低功率ECC的代码的非暂时性计算机可读介质。在一些示例中,代码包括可由处理器执行的指令,以:识别域的第一元素;生成用于对第一元素进行乘法运算的多个查找表;将域的第二元素划分为多个子元素,其中,子元素的数量等于查找表的数量;基于多个子元素中的每个从多个查找表中的每个识别求和项;通过对求和项进行求和来计算第一元素与第二元素的乘积;以及基于第一元素与第二元素的乘积对信息进行编码。
上述方法、设备、非暂时性计算机可读介质和系统的一些示例还可包括将域的第三元素划分为另外的多个随后子元素,其中,额外子元素的数量等于查找表的数量。一些示例还可包括基于多个随后子元素中的每个从多个查找表中的每个识别随后求和项。一些示例还可包括通过对求和项进行求和来计算第一元素与第三元素的乘积,其中,信息基于第一元素与第三元素的乘积被编码。
在一些示例中,求和项中的每个包括第一元素与来自一组系数中的系数的乘积之和。在一些示例中,使用格雷码生成多个查找表。在一些示例中,第一元素的位数等于第二元素的位数。在一些示例中,多个查找表的数量至少部分基于第一元素的位数。
在一些示例中,使用多个子元素中的相应子元素作为索引从多个表中的每个识别求和项。在一些示例中,编码基于代数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两者。换句话说,短语“基于”将被解释为表示“至少部分基于”。此外,单数单词指示“至少一个”。
Claims (20)
1.一种处理数据的方法,包括:
接收信息;
将接收的信息转换到有限域;
识别有限域的第一元素;
生成用于对第一元素进行乘法运算的多个查找表;
将第一元素与有限域的多个额外元素相乘,其中,针对所述多个额外元素中的每个的乘法运算使用来自所述多个查找表中的每个中的元素来执行;和
基于所述乘法运算根据纠错码对信息进行编码。
2.根据权利要求1所述的方法,其中,所述乘法运算还包括:
将有限域的第二元素划分为多个子元素,其中,所述多个子元素的数量等于所述多个查找表的数量;
基于所述多个子元素中的相应子元素从所述多个查找表中的每个识别求和项;和
通过对求和项进行求和来计算第一元素与第二元素的乘积。
3.根据权利要求2所述的方法,还包括:
将有限域的第三元素划分为另外的多个随后子元素,其中,所述多个随后子元素的数量等于所述多个查找表的数量;
基于所述多个随后子元素中的每个从所述多个查找表中的每个识别随后求和项;和
通过对随后求和项进行求和来计算第一元素与第三元素的乘积,其中,所述信息基于第一元素与第三元素的乘积被编码。
4.根据权利要求2所述的方法,其中,
每个求和项包括第一元素与来自一组系数中的系数的乘积。
5.根据权利要求2所述的方法,其中,
第一元素的位数等于第二元素的位数。
6.根据权利要求1至5中的任意一项所述的方法,其中,
所述多个查找表的数量至少部分基于第一元素的位数。
7.根据权利要求2所述的方法,其中,
求和项使用所述多个子元素中的相应子元素作为索引从所述多个查找表中的每个被识别。
8.根据权利要求1至5中的任意一项所述的方法,其中,
编码的步骤基于代数纠错码方案。
9.根据权利要求1至5中的任意一项所述的方法,还包括:
将编码的信息编程到存储器。
10.一种处理数据的方法,包括:
接收信息;
将接收的信息转换到有限域;
识别有限域的第一元素;
生成用于对第一元素进行乘法运算的多个查找表;
将有限域的第二元素划分为多个子元素,其中,所述多个子元素的数量等于所述多个查找表的数量;
基于所述多个子元素中的每个从所述多个查找表中的每个识别求和项;
通过对求和项进行求和来计算第一元素与第二元素的乘积;和
基于第一元素与第二元素的乘积对信息进行解码。
11.根据权利要求10所述的方法,还包括:
将有限域的第三元素划分为另外的多个随后子元素,其中,所述多个随后子元素的数量等于所述多个查找表的数量;
基于所述多个随后子元素中的每个从所述多个查找表中的每个识别随后求和项;和
通过对随后求和项进行求和来计算第一元素与第三元素的乘积,其中,所述信息基于第一元素与第三元素的乘积被解码。
12.根据权利要求10或11所述的方法,其中,
所述多个查找表使用格雷码被生成。
13.根据权利要求10或11所述的方法,还包括:
在解码的步骤之前从存储器读取所述信息。
14.根据权利要求10或11所述的方法,其中,
解码的步骤基于代数纠错码方案。
15.一种处理数据的设备,包括:
处理器;
存储器;
表生成组件,被配置为生成用于对第一元素进行乘法运算的多个查找表;
查找组件,被配置为将有限域的第二元素划分为多个子元素,并且基于所述多个子元素中的每个从所述多个查找表中的每个识别求和项;
乘法运算组件,被配置为通过对求和项进行求和来计算第一元素与第二元素的乘积;和
编码器,被配置为基于第一元素与第二元素的乘积对信息进行编码。
16.根据权利要求15所述的设备,还包括:
解码器,被配置为基于乘法运算组件的输出对信息进行解码。
17.根据权利要求15或16所述的设备,其中,
乘法运算组件被配置为:基于所述多个查找表计算第一元素的多个乘积。
18.根据权利要求15或16所述的设备,还包括:
编程组件,被配置为将编码的信息编程到存储器。
19.根据权利要求15或16所述的设备,其中,
所述多个查找表使用格雷码被生成。
20.根据权利要求15或16所述的设备,其中,
查找组件被配置为:使用所述多个子元素中的相应子元素作为索引从所述多个查找表中的每个识别求和项。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/885,772 | 2020-05-28 | ||
US16/885,772 US11184029B1 (en) | 2020-05-28 | 2020-05-28 | Low power ECC for eUFS |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113742128A true CN113742128A (zh) | 2021-12-03 |
Family
ID=78509101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110209394.1A Pending CN113742128A (zh) | 2020-05-28 | 2021-02-24 | 处理数据的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11184029B1 (zh) |
KR (1) | KR20210148942A (zh) |
CN (1) | CN113742128A (zh) |
DE (1) | DE102020118993A1 (zh) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7162679B2 (en) * | 2003-12-12 | 2007-01-09 | Analog Devices, Inc. | Methods and apparatus for coding and decoding data using Reed-Solomon codes |
-
2020
- 2020-05-28 US US16/885,772 patent/US11184029B1/en active Active
- 2020-07-17 DE DE102020118993.1A patent/DE102020118993A1/de active Pending
-
2021
- 2021-02-24 CN CN202110209394.1A patent/CN113742128A/zh active Pending
- 2021-05-28 KR KR1020210069532A patent/KR20210148942A/ko active Search and Examination
Also Published As
Publication number | Publication date |
---|---|
US20210376859A1 (en) | 2021-12-02 |
DE102020118993A1 (de) | 2021-12-02 |
US11184029B1 (en) | 2021-11-23 |
KR20210148942A (ko) | 2021-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11681554B2 (en) | Logical address distribution in multicore memory system | |
US20130283128A1 (en) | Operating Method of Controller Controlling Nonvolatile Memory Device and Mapping Pattern Selecting Method of Selecting Mapping Pattern Mapping Polar Coded Code Word with Multi Bit Data of Nonvolatile Memory Device | |
CN109428606B (zh) | 具有ldpc解码器的存储器系统及其操作方法 | |
CN109801669A (zh) | 具有软读取挂起方案的存储器系统及其操作方法 | |
CN110444242B (zh) | 有基于深度学习的干扰校正能力的存储器系统及操作方法 | |
CN109671465A (zh) | 具有自适应读取阈值方案的存储器系统及其操作方法 | |
US10846172B2 (en) | Encoding method and system for memory device including QLC cells | |
US11387848B1 (en) | Hierarchical error correction code | |
KR20230100620A (ko) | 다단 연결 코드를 사용하는 계층적 오류 정정 코드 디코딩 | |
EP3944152B1 (en) | Mobile electronic device and methods for programming data to and reading data from a memory device | |
CN111540393A (zh) | 用于基于字线分组的读取操作的存储器系统和方法 | |
CN113762457A (zh) | 解码的方法、训练神经网络的方法和存储器装置 | |
US10938419B2 (en) | Encoding method and system for memory device including QLC cells | |
US11036579B2 (en) | Decoder for memory system and method thereof | |
CN110277124B (zh) | 具有混合解码方案的存储器系统及其操作方法 | |
CN112216328B (zh) | 具有低复杂度解码的存储器系统及其操作方法 | |
US11907571B2 (en) | Read threshold optimization systems and methods using domain transformation | |
CN112416298B (zh) | 闪速存储器的基于原始读取的物理不可克隆功能 | |
CN110444245B (zh) | 具有混合迭代解码能力的存储器系统及其操作方法 | |
CN109739681B (zh) | 具有共享缓冲器架构的存储器系统及其操作方法 | |
CN112687323A (zh) | 具有用于解码的错误减少方案的存储器系统及其操作方法 | |
CN113742128A (zh) | 处理数据的方法和设备 | |
CN110941567B (zh) | 存储器控制器及其操作方法 | |
US11087846B1 (en) | Memory system with single decoder, multiple memory sets and method for decoding multiple codewords from memory sets using the single decoder | |
US12093562B2 (en) | Controller with smart scheduling and method of operating the controller |
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 |