CN111427717B - 用于在存储器系统中编码和解码数据的方法和装置 - Google Patents
用于在存储器系统中编码和解码数据的方法和装置 Download PDFInfo
- Publication number
- CN111427717B CN111427717B CN202010025433.8A CN202010025433A CN111427717B CN 111427717 B CN111427717 B CN 111427717B CN 202010025433 A CN202010025433 A CN 202010025433A CN 111427717 B CN111427717 B CN 111427717B
- Authority
- CN
- China
- Prior art keywords
- bits
- bch
- stage
- output
- fft
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
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/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/2906—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 using block codes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- 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
- 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/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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/098—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
-
- 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/1515—Reed-Solomon 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/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/1525—Determination and particular use of error location polynomials
- H03M13/153—Determination and particular use of error location polynomials using the Berlekamp-Massey algorithm
-
- 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/1545—Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
-
- 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/2906—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 using block codes
- H03M13/2927—Decoding strategies
-
- 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/2948—Iterative 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient 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/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/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
一种解码电路,包括Bose‑Chaudhuri‑Hocquenghem(BCH)解码器。BCH解码器包括用于基于BCH编码字来生成校正子的校正子级、对校正子执行Berlekamp‑Massey(BM)算法以生成错误位置多项式(ELP)系数的Berlekamp‑Massey级、使用快速傅立叶变换(FFT)对ELP系数执行Chien搜索以生成错误位和迭代信息的Chien级、以及被配置为基于迭代信息将错误位重新排序为按顺序的帧修复器级。BCH解码器使用重新排序的错误位解码BCH编码字。
Description
技术领域
本发明构思的示例性实施例涉及用于在存储器系统中编码和解码数据的方法和装置。
背景技术
NAND快闪存储器是电可擦除可编程只读存储器(Electrically Erasable AndProgrammable Read Only Memory,EEPROM)的一个示例。通过使用其中多个存储器单元彼此串联的NAND单元组(cell unit),NAND快闪存储器可以在小芯片区域中存储大量信息。
当在存储器设备处存储数据并且从存储器设备读取所存储的数据时,可能会出现错误。各种错误校正码可以用来检测和校正这样的错误。错误校正码可以包括Reed-Solomon(RS)码、Bose-Chaudhuri-Hocquenghem(BCH)码、低密度奇偶校验(Low DensityParity Check,LDPC)码等。
发明内容
根据本发明构思的示例性实施例,提供了一种包括Bose-Chaudhuri-Hocquenghem(BCH)解码器的解码电路。BCH解码器包括用于基于BCH编码字来生成校正子(syndrome)的校正子级(stage)、对校正子执行Berlekamp-Massey(BM)算法以生成错误位置多项式(Error Location Polynomial,ELP)系数的Berlekamp-Massey级、使用快速傅立叶变换(Fast Fourier Transform,FFT)对ELP系数执行Chien搜索以生成错误位和迭代信息的Chien级、以及被配置为基于迭代信息将错误位重新排序为按顺序的帧修复器级。BCH解码器使用重新排序的错误位解码BCH编码字。
根据本发明构思的示例性实施例,提供了一种对Bose-Chaudhuri-Hocquenghem(BCH)编码字进行解码的方法。该方法包括:基于BCH编码字来生成校正子;对校正子执行Berlekamp-Massey算法以生成错误位置多项式(ELP)系数;使用快速傅立叶变换(FFT)对ELP系数执行Chien搜索,以生成错误位和迭代信息;基于迭代信息将错误位重新排序为按顺序的;以及使用重新排序的错误位解码BCH编码字。
根据本发明构思的示例性实施例,提供了一种包括Bose-Chaudhuri-Hocquenghem(BCH)解码器的解码电路。BCH解码器包括:校正子级,用于基于BCH编码字来生成校正子;Berlekamp-Massey级,对校正子执行Berlekamp-Massey算法,以生成错误位置多项式(ELP)系数;第一快速傅立叶变换(FFT)级,对ELP系数迭代地执行第一FFT运算,以生成第一结果;第二FFT级,对第一结果迭代地执行第二FFT运算,以生成第二结果;以及逻辑电路,被配置为从第二结果生成错误位。BCH解码器使用错误位解码BCH编码字。
附图说明
通过参考附图详细描述本发明构思的示例性实施例,本发明构思将变得更加显而易见,其中:
图1示出了示出根据本发明构思的示例性实施例的存储器系统的示图;
图2A示出了根据本发明构思的示例性实施例的SBCH编码器的高级框图;
图2B示出了可以由SBCH编码器输出的编码数据;
图3示出了根据本发明构思的示例性实施例的SBCH解码器的高级框图;
图4示出了可以在SBCH解码器中使用的根据本发明构思的示例性实施例的输出缓冲器;
图5示出了可以在SBCH解码器中使用的根据本发明构思的示例性实施例的输出缓冲器;
图6示出了根据本发明构思的示例性实施例的SBCH编码器的BCH解码器;
图7示出了根据本发明构思的示例性实施例的BCH解码器的BM级;
图8示出了根据本发明构思的示例性实施例的BCH解码器的BM级;
图9示出了根据本发明构思的示例性实施例的BM级的一部分;和
图10示出了根据本发明构思的示例性实施例的BCH解码器的CS级。
具体实施方式
现在将参考附图更全面地描述示例实施例。可以体现许多替代形式,并且示例实施例不应该被解释为限于本文阐述的示例实施例。在附图中,相同的附图标记指代相同的元件。
将理解,当一个元件被称为“连接”或“耦合”到另一个元件时,它可以直接连接或者耦合到另一个元件,或者可以存在中介元件。
如本文所使用的,单数形式“一”和“该”旨在也包括复数形式,除非上下文另外清晰指出。
除非另外特别说明,或者从讨论中显而易见,诸如“处理”或“运算”或“计算”或“确定”或“显示”等的术语指代计算机系统或类似电子计算设备的动作和过程,其将表示为计算机系统的寄存器和存储器内的物理、电子量的数据操纵和变换为类似地表示为计算机系统存储器或寄存器或者其他这样的信息存储、传输或显示设备内的物理量的其他数据。
在以下描述中,将参考操作的动作和符号表示(例如,以流程图、流程示图、数据流程示图、结构示图、框图等的形式)来描述说明性实施例,其中该操作可以实施为包括例程、程序、对象、组件、数据结构等的程序模块或功能过程,其执行特定任务或实施特定的抽象数据类型,并且可以使用现有电子系统(例如,非易失性存储器通用快闪存储器、通用快闪存储器控制器、非易失性存储器和存储器控制器、数字自动对焦相机、个人数字助理(Personal Digital Assistant,PDA)、智能手机、平板个人计算机(Personal Computer,PC)、膝上型计算机等)中的现有硬件而实施。这样的现有硬件可以包括一个或多个中央处理器(Central Processing Unit,CPU)、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application-Specific-Integrated-Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)计算机等。
虽然流程图可以将操作描述为顺序过程,但是许多操作可以被并行、并发或同时执行。此外,操作的次序可以被重新排列。过程可以在其操作完成时被终止,但也可以具有附图中未包括的附加步骤。过程可以对应于方法、函数、过程、子例程、子程序等。当过程对应于函数时,它的终止可以对应于函数返回到调用函数或主函数。
如本文所公开的,术语“存储介质”、“计算机可读存储介质”或“非暂时性计算机可读存储介质”可以表示用于存储数据的一个或多个设备,包括只读存储器(Read OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁RAM、核心存储器、磁盘存储介质、光存储介质、快闪存储器设备和/或用于存储信息的其他有形机器可读介质。术语“计算机可读介质”可以包括但不限于便携式或固定存储设备,光学存储设备,以及能够存储、包含或携带(多个)指令和/或数据的各种其他介质。
此外,示例实施例可以通过硬件、软件、固件、中间件、微码、硬件描述语言、或其任何组合而实施。当以软件、固件、中间件或微码实施时,执行必要任务的程序代码或代码段可以被存储在机器或计算机可读介质中,诸如计算机可读存储介质。当以软件实施时,一个或多个处理器可以被编程为执行必要任务,从而被变换为(多个)专用处理器或(多个)计算机。
图1是根据本发明构思的一些实施例的存储器被应用于其的存储器系统的框图。参考图1,存储器系统900包括存储器控制器1000和非易失性存储器设备2000。
非易失性存储器设备2000可以是但不限于快闪存储器设备、NAND快闪存储器设备、相变RAM(PRAM)、铁电RAM(FRAM)、磁RAM(MRAM)等。根据本发明构思的至少一个示例实施例,非易失性存储器设备2000可以包括多个NAND快闪存储器设备。非易失性存储器设备2000可以具有平面结构或有存储器单元堆叠的三维(Three-Dimensional,3D)存储器单元结构。
非易失性存储器设备2000可以包括存储器单元阵列2100、X解码器121、电压发生器125、I/O缓冲器124、页缓冲器123和控制逻辑126,其中的每一个都可以被实施为一个或多个电路。存储器设备还可以包括输入/输出(I/O)引脚(pad)127。
存储器单元阵列2100包括多条字线W/L和多条位线B/L。存储器单元阵列2100的每个存储器单元可以被实施为非易失性存储器单元。例如,存储器单元阵列2100的每个存储器单元可以具有例如浮栅或电荷存储层(诸如,电荷俘获层)。
存储器单元阵列2100可以包括多个块和多个页。一个块包括多个页。页可以是编程和读取操作的单元,并且块可以是擦除操作的单元。例如,存储器单元阵列2100包括第一块2120和第二块2130。如图1所示,第一块2120包括页1-页N,并且第二块2130包括页1-页N,其中N是大于1的正整数。
控制逻辑126控制非易失性存储器设备2000的整体操作。当从存储器控制器1000接收到命令CMD时,控制逻辑126解释命令CMD,并根据解释的命令CMD来控制非易失性存储器设备2000执行操作(例如,编程操作、读取操作、读取重试操作或擦除操作)。
X解码器121由控制逻辑126控制,并根据行地址来驱动存储器单元阵列2100中的字线W/L中的至少一条。
电压发生器125由控制逻辑126控制来生成编程操作、读取操作或擦除操作所需的一个或多个电压,并将所生成的电压提供给由X解码器121选择的一行或多行。
寄存器128是在其中存储从存储器控制器1000输入的信息的空间,并且可以包括多个锁存器。例如,寄存器128可以将读取的电压信息分组并以表格的形式存储该信息。
页缓冲器123由控制逻辑126控制,并根据操作模式(例如,读取操作或编程操作)作为感测放大器或写入驱动器操作。
I/O引脚127和I/O缓冲器124可以用作在外部设备(例如,存储器控制器1000或主机)和非易失性存储器设备2000之间交换的数据的I/O路径。
存储器控制器1000可以包括微处理器111、只读存储器(ROM)113、随机存取存储器(RAM)112、编码器1100、解码器1200、存储器接口116和总线118。存储器控制器1000的元件111至116可以通过总线118而彼此电连接。
微处理器111控制包括存储器控制器1000的存储器系统900的整体操作。微处理器111是通过生成控制信号来控制其他元件的电路。当向存储器系统900供电时,微处理器111在RAM 112上驱动用于操作存储器系统900的(例如,存储在ROM 113中的)固件,从而控制存储器系统900的整体操作。根据本发明构思的至少一个示例实施例,微处理器111还可以发出用于控制存储器控制器1000的其他元件的操作的指令,其中该其他元件包括例如ROM113、RAM 112、编码器1100、解码器1200、存储器接口116和总线118中的一些或全部。根据本发明构思的至少一个示例性实施例,本文描述为由存储器控制器1000执行的任何操作可以由微处理器111执行,或者在微处理器111的控制下执行。根据本发明构思的至少一个示例性实施例,本文描述为由存储器控制器1000执行的任何操作可以由微处理器111执行,或者在微处理器111的控制下执行,其中该微处理器111执行对应于该操作并被包括在(例如,存储在ROM 113中的)程序代码中的指令。
虽然存储器系统900的驱动固件代码被存储在ROM 113中,但是本发明构思的一个或多个示例实施例不限于此。固件代码还可以被存储在除了ROM 113之外的非易失性存储器设备2000的一部分中。因此,微处理器111的控制或干预不仅可以包括微处理器111的直接控制,还可以包括由微处理器111软件驱动的固件的干预。
作为用作缓冲器的存储器的RAM 112可以存储从主机或微处理器111输入的初始命令、数据和各种变量,或者从非易失性存储器设备2000输出的数据。RAM 112可以存储输入到非易失性存储器设备2000和从非易失性存储器设备2000输出的数据以及各种参数和变量。
存储器接口116可以用作存储器控制器1000和非易失性存储器设备2000之间的接口。存储器接口116连接到非易失性存储器设备2000的I/O引脚127,并且可以与I/O引脚127交换数据。此外,存储器接口116可以创建适合于非易失性存储器设备2000的命令,并将创建的命令提供给非易失性存储器设备2000的I/O引脚127。存储器接口116提供要由非易失性存储器设备2000执行的命令和非易失性存储器设备2000的地址ADD。
根据本发明构思的至少一个示例性实施例,解码器1200可以是错误校正码(ErrorCorrecting Code,ECC)解码器,并且编码器1100可以是ECC编码器。根据本发明构思的至少一个示例性实施例,解码器1200和编码器1100执行错误位校正。编码器1100可以通过在数据被提供给非易失性存储器设备2000之前对数据执行错误校正编码来生成添加有一个或多个奇偶位和/或冗余位的数据。一个或多个奇偶位和/或冗余位可以被存储在非易失性存储器设备2000中。
解码器1200可以对输出数据执行错误校正解码,基于错误校正解码的结果来确定错误校正解码是否成功,并且基于确定结果来输出指令信号。读取的数据可以被发送到解码器1200,并且解码器1200可以使用一个或多个奇偶位和/或冗余位来校正数据的错误位。当错误位的数量超过可以被校正的错误位的限制时,解码器1200不能校正错误位,导致错误校正失败。在示例性实施例中,编码器1100和解码器1200使用超级Bose-Chaudhuri-Hocquenghem(Super Bose-Chaudhuri-Hocquenghem,SBCH)执行错误校正。
SBCH是由几个短的二进制Bose-Chaudhuri-Hocquenghem(BCH)码和非二进制Reed-Solomon(RS)码组成的多级代数码。与需要在变量和校验节点之间迭代地互换大量软信息的、低密度奇偶校验(LDPC)码的消息传递解码算法相反,SBCH码的解码算法是完全代数的,对短分量BCH码和RS码使用标准代数解码模式。为此,SBCH解码器的功耗比对应的LDPC解码器的功耗小得多。
图2A示出了可以用来实施图1的编码器1100的SBCH编码器的高级框图。
SBCH编码器包括被配置为接收一定量的数据位以进行编码的输入控制块200(例如,输入控制电路)。例如,图2A中示出的输入控制块被配置为周期性地从输入数据总线接收32位输入数据。输入控制块200将输入数据作为信息部分ini应用于BCH编码器201(例如,系统BCH编码器)和复用器203。
BCH编码器201对每个输入信息部分(例如,ini-1、ini、ini+1等)执行BCH编码。BCH编码器201可以以固定的码长n和不同数量的奇偶位支持多个BCH码率。BCH编码使得生成BCH奇偶部分(例如,PBCH,i-1、PBCH,i、PBCH,i+1等)。
SBCH编码器还包括加法器(例如,加法电路)202,其通过将BCH奇偶部分(例如,PBCH,i)添加到由SBCH编码器的Delta校正子陪集(coset)编码器206输出的Delta校正子陪集奇偶PDSCi来生成SBCH奇偶(例如,PSBCH,i-1、PSBCH,i、PSBCH,i+1等)。Delta校正子陪集编码器206通过对Delta校正子陪集DSi执行编码操作来生成Delta校正子陪集奇偶(例如,PDSCi),其中该Delta校正子陪集DSi是从生成自先前输入信息部分ini-1的先前Delta校正子值dsi-1,r生成的。
复用器203将当前信息部分(例如,ini)与SBCH奇偶(例如,PSBCH,i)组合,以生成当前帧xi(例如,BCH码字),其中该当前帧xi以一定速率(例如,每周期32位)而输出。
对先前输入信息部分ini-1和先前SBCH奇偶PSBCH,i-1操作SBCH编码器的Delta校正子计算器204,以生成先前Delta校正子值dsi-1,r,其可以根据下面的等式1以与当前Delta校正子dsi,r类似的方式而生成。
SBCH编码器的RS编码器205根据定义Delta校正子陪集DSi的先前Delta校正子值dsi-1,r计算RS奇偶符号。
SBCH编码器逐帧继续,直到所有信息部分都被处理。例如,如果信息部分总共4KB,则SBCH编码器添加472字节的附加奇偶数据,以创建包括多个BCH码的结果。
图2B示出了由图2A的SBCH编码器编码的数据的示例。图2B中示出的数据中的每行是帧。
图3示出了可以用来实施图1的解码器1200的SBCH解码器的高级框图。
解码器的输入可以是从存储器(例如,诸如存储器设备2000的NAND)读取的SBCH编码字。SBCH编码字的位可以被称为硬判决位。解码器的输入还可以包括来自存储器的软信息(例如,软判决位),其中该软信息包括关于每一位的可靠性的信息。当SBCH解码器故障时,可以从软判决位进行读取。
解码器的输入控制块(例如,输入控制电路)300将硬判决位应用于解码器的硬判决缓冲器301。如果软判决位可用,则输入控制块300将它们应用于解码器的软判决缓冲器302。解码器的BCH解码器304(例如,多速率BCH解码器)以一定速率(例如,每周期40位)从硬判决缓冲器301读取数据,并以一定校正能力解码帧。作为BCH解码的一部分,BCH解码器304还从解码器的delta校正子存储器305读取delta校正子dsi,p(p=0…r)。通过BCH解码器304的BCH解码的结果以一定速率(例如,每周期40位)而写入输出缓冲器308。
由BCH解码器304成功解码的帧被应用于解码器的delta-校正子计算器306,其计算所有的delta校正子dsi,r,并将它们写入delta校正子存储器305中。
一旦BCH解码器阶段被终止,根据解码流程,读取来自delta校正子存储器305的所需的delta校正子,并将其应用于解码器的RS解码器307。在实施例中,RS解码器307每周期处理(例如,校正)2个delta-校正子,并将校正的delta-校正子结果写回到delta校正子存储器305。
一旦解码被终止,校正的码字(包括奇偶位)出现在输出缓冲器308中。输出控制块309(例如,输出控制电路)可以从输出缓冲器308读取,并以一定速率输出原始数据(例如,4K信息)。
当从存储器读取软判决位时,它们被存储在软判决缓冲器302中。SBCH解码器304从软判决缓冲器302读取软判决位,并且对于具有低可靠性的位,它以由伪随机(或随机)数发生器303控制的某一概率翻转(flip)(从硬判决缓冲器301读取的)字位。
图4示出了根据本发明构思的示例性实施例的图3的SBCH解码器的输出缓冲器308。
图4的输出缓冲器包括偶数存储器401、奇数存储器402、第一复用器403(例如,2至1复用器)、第一先进先出(First-In-First-Out,FIFO)缓冲器404、多个第二复用器406(例如,60至1复用器)、缓冲器409、第三复用器410(例如,2至1复用器)和第二FIFO 411。BCH解码器304向输出缓冲器输出第一数量的数据(例如,40位)。偶数存储器401的每行和奇数存储器402的每行存储第一数量的3倍(例如,120位)。偶数存储器401和奇数存储器402各自包括多行。为了便于讨论,假设第一数量是40位,但是本发明构思不限于此。
因此,BCH解码器304可以向偶数存储器401输出40位块三次,以填充偶数存储器401的行中的一行,并且继续该过程直到偶数存储器401满为止。然后,在填充偶数存储器401之后,BCH解码器304保持输出40位块,直到奇数存储器402满为止。因此,BCH解码器304然后可以在向偶数存储器401和奇数存储器402输出数据之间来回切换。
第一复用器403被配置为将来自偶数存储器401和奇数存储器402中的一个的120位(即,由BCH解码器输出的第一数量的数据的3倍)输出给第一FIFO 404。例如,第一复用器403可以在从偶数存储器401和奇数存储器402输出数据之间交替。例如,可以有120个2至1第一复用器403,其中第一复用器403中的每一个接收偶数存储器401的一位和奇数存储器402的一位。
输出缓冲器可以包括确定第一FIFO 404何时满或几乎满(例如,空单元的数量小于阈值)的电路。输出缓冲器可以包括读取控制电路405,其接收指示第一FIFO 404是否满或几乎满的控制信号。例如,读取控制电路405可以向BCH解码器304传送信号,通知BCH解码器304在第一FIFO 404满时停止传送新数据。
第二复用器406包括多个(例如,256个)复用器,其中每个复用器接收由第一FIFO404输出的可用位(例如,120位)的不同的一半(例如,60位),并且仅输出接收到的位中的一位。例如,当第一FIFO 404的每个单元是120位时,第二复用器406是60至1复用器。第二复用器406可以由有线寄存器408控制,其中该有线寄存器408可以由配置寄存器407控制。
缓冲器409接收由第二复用器406输出的数据。缓冲器409的宽度对应于第二复用器406输出的位数。例如,当有256个第二复用器406时,缓冲器409的宽度是256位。有线寄存器408可以控制第二复用器406将其输出数据的第一半(例如,128位)输出到缓冲器409的第一半(第一部分),并将其输出数据的第二半输出到缓冲器409的第二半(第二部分)。
第三复用器410中的每一个接收输出缓冲器409的两个不同位,并仅将接收到的位中的一位输出到第二FIFO 411,其中该第二FIFO 411最终将接收到的数据输出到输出控制块309。例如,从第三复用器410接收的第一数据被移动到第二FIFO 411的第一单元,第一数据被移动到第二FIFO 411的第二单元,并且从第三复用器410接收的第二数据被移动到第一单元,等等。当第二FIFO 411满时,下一次从第三复用器410接收到数据时,第二FIFO 411的最后一个单元的数据可以被输出到输出控制块309。
图5示出了根据本发明构思的示例性实施例的图3的SBCH解码器的输出缓冲器308。
图5的输出缓冲器具有与图4的输出缓冲器相同的一些元件,诸如,偶数存储器401、奇数存储器402、第一复用器403、第一FIFO 404、第三复用器410和第二FIFO 411。输出缓冲器附加地包括2至1复用器500/501/502/503、缓冲器504、2至1复用器505和缓冲器506。
复用器500包括比第一FIFO 404的位宽多一个复用器,复用器501包括比第一FIFO404的位宽多三个复用器,复用器502包括比第一FIFO 404的位宽多七个复用器,并且复用器503包括比第一FIFO 404的位宽多174个复用器。例如,当位宽为120位时,有121个复用器500、123个复用器501、127个复用器502和374个复用器503。
复用器500中的每一个接收由第一FIFO 404输出的不同的2位,并仅输出接收到的位中的1位以输出121位输出。复用器501中的每一个接收由复用器500输出的不同的2位,并仅输出接收到的位中的1位以输出123位输出。复用器502中的每一个接收由复用器501输出的不同的2位,并仅输出接收到的位中的1位以输出127位输出。复用器503中的每一个接收由复用器502输出的不同的2位,并仅输出接收到的位中的1位以将374位输出到缓冲器504。
缓冲器504包括第一部分(例如,128位)、第二部分(例如,128位)和第三部分(例如,118位)。2至1复用器505中的每一个接收第一部分的一位和第三部分的一位,并仅输出接收到的位中的1位以将118位输出到缓冲器506的第一部分。第一部分的剩余位(例如,10位)被复制到缓冲器506的第一部分的末端。缓冲器504的第二部分被复制到缓冲器506的第二部分。2至1复用器507中的每一个接收缓冲器506的两位,并仅输出接收到的位中的一位以将128位输出到第二FIFO 411。
图6示出了根据本发明构思的示例性实施例的BCH解码器604,其可以用来实施图3的BCH解码器304。参考图6,BCH解码器604包括校正子级605、Berlekamp-Massey(BM)级606、Chien搜索(Chien Search,CS)级607和帧修复器级608。校正子级605从诸如BCH编码字的编码数据生成“t”个校正子,其中“t”是可以被校正的错误数量。BM级606对校正子级605的输出(校正子)执行Berlekamp-Massey算法。BM级606迭代地建立2个多项式,错误位置多项式(ELP)和辅助多项式(Auxiliary Polynomial,AP)。CS级607对由BM级606输出的ELP系数执行被修改以使用快速傅立叶变换(FFT)的Chien搜索。CS级607输出错误位数据以及迭代ID数据或迭代信息。例如,如果解码数据具有40位,则错误位数据将指示解码数据的每一位是否有错误。例如,如果解码数据的第一位有错误并且解码数据的第二位没有错误,则错误位数据的第一位将是1,并且错误位数据的第二位将是0。由传统CS级输出的错误位数据被顺序排序。然而,由CS级607输出的错误位数据不被顺序排序。帧修复器级608被配置为重新排序错误位,以便它们顺序使用迭代ID数据。
图7示出了根据本发明构思的示例性实施例的BM级,其可以用来实施图6的BM级606。图7的BM级包括一对乘法器701和702、四个乘法器721、722、723和724、第一加法器710和第二加法器730。乘法器701接收输入D和delta,并输入ELP(例如,错误位置多项式)和AP(例如,辅助多项式)。D是由BM级606计算的差,并且delta是D的先前值。复用器702接收输入D和delta,并输入ELP和AP。第一加法器710对乘法器701和702的输出求和,并将和作为输入提供给乘法器723和724。乘法器701和702是Galois域乘法器。乘法器721接收输入delta和Si,将接收到的输入相乘,并将结果提供给乘法器723。乘法器722接收输入D和Si,将接收到的输入相乘,并将结果提供给乘法器724。乘法器723将ELP乘以乘法器721的输出。乘法器724将AP乘以乘法器722的输出。
第二加法器730对乘法器723和724的输出求和以生成差值,用于输出到CS级607。
图8示出了根据本发明构思的示例性实施例的BM级,其可以用来实施图6的BM级606。图8的BM级包括与图7的BM级相同的一些组件,诸如第一乘法器701和第二乘法器702以及第一加法器710。图8的BM级包括乘法器821,其接收Si输入(即,第i个校正子)以及来自第一加法器710的ELP和AP输入中的一个。乘法器821将Si乘以ELP和/或将Si乘以AP以生成差值,用于输出到CS级。
图7和图8提供了BM级606的无逆版本。无逆版本需要两个乘法器:一个用于将ELP乘以D(例如,701),并且一个用于将AP乘以delta(例如,702)。在BM级606的无逆版本中,仅需要标量乘以多项式的一个这样的乘法器,并且添加需要更少功率的标量乘以标量乘法器。
在实施例中,在无逆版本中,ELP的第一系数总是1,这有利于功率节省和改进Chien搜索。非无逆实施方式比无逆消耗更少功率,但是由于求逆,其需要更多区域。
图9示出了根据本发明构思的示例性实施例的BM级606的非无逆版本的一部分。例如,图8中虚线左侧的组件由图9替换。参考图9,该部分包括逆变换器(inverter)901,乘法器903,图8的乘法器702,复用器904、905、906、908、909和910,以及D型触发器902、907和911。复用器904接收校正子K和k-1。
图10示出了根据本发明构思的示例性实施例的CS级,其可以用来实施图6的CS级607。CS级从BM级606接收ELP系数作为输入。CS级包括第一FFT级1001,其对复用器1000的输出执行第一迭代FFT运算。第一迭代FFT运算的每次迭代生成作为反馈而提供的结果。复用器1000基于开始计数指示在输出ELP系数中的下一个和反馈之间进行选择。每次执行第一FFT级的迭代时,迭代计数器1003递增。
BM级606可以提供开始计数指示。第一迭代FFT运算的结果被提供给对结果进行采样的第一采样设备1002,并将采样结果提供给第二FFT级1004。第二FFT级1004对由采样设备1002输出的采样结果执行第二迭代FFT运算。第二迭代FFT运算的结果被提供给第二采样设备1005。逻辑1006对由第二采样设备1005输出的采样结果进行运算,以计算错误位。
尽管已经结合本发明构思的示例性实施例描述了本发明构思,但是本领域技术人员将理解,在基本上不脱离本发明构思的原理的情况下,可以对这些实施例进行各种修改。
Claims (18)
1.一种用于在存储器系统中执行错误校正的解码电路,所述解码电路包括:
Bose-Chaudhuri-Hocquenghem BCH解码器,包括:
校正子级,用于基于存储在所述存储器系统中的BCH编码字来生成校正子;
Berlekamp-Massey(BM)级,对所述校正子执行Berlekamp-Massey算法,以生成错误位置多项式ELP系数;
Chien级,使用快速傅立叶变换FFT电路对所述ELP系数执行Chien搜索,以生成错误位和迭代信息,其中所述Chien级包括对所述ELP系数进行运算的第一FFT级以及计数器;以及
帧修复器级,被配置为基于从针对所述第一FFT级的每次迭代而递增的计数器输出的所述迭代信息将所述错误位重新排序为按顺序的,其中,所述BCH解码器使用重新排序的错误位对所述BCH编码字的数据执行错误校正。
2.如权利要求1所述的解码电路,其中,所述Chien级包括:
第二FFT级,对所述第一FFT级的输出迭代地执行FFT运算;以及
逻辑电路,被配置为从所述第二FFT级的输出生成所述错误位。
3.如权利要求1所述的解码电路,还包括:
硬判决缓冲器;
软判决缓冲器;以及
输入控制电路,被配置为将所述BCH编码字作为硬判决位存储在所述硬判决缓冲器中以输出到所述BCH解码器,并且将软判决位存储在所述软判决缓冲器中以指示所述BCH编码字的位的可靠性。
4.如权利要求3所述的解码电路,其中,所述解码电路附加地使用所述软判决位来执行所述BCH编码字的错误校正。
5.如权利要求3所述的解码电路,还包括存储delta校正子的delta校正子存储器,并且所述BCH解码器附加地使用所存储的delta校正子对所述BCH编码字的数据执行错误校正。
6.如权利要求5所述的解码电路,还包括delta校正子计算器,其中由所述BCH解码器成功解码所述BCH编码字的结果被输出到所述delta校正子计算器,用于计算所述delta校正子。
7.如权利要求5所述的解码电路,还包括Reed-Solomon解码器,用以校正存储在所述delta校正子存储器中的所述delta校正子中的至少一个。
8.如权利要求3所述的解码电路,其中,所述BCH解码器从所述软判决缓冲器读取所述软判决位,并且所述BCH解码器基于一定概率来翻转所述硬判决位中与所述软判决位中具有低可靠性的位相对应的一位或多位。
9.如权利要求8所述的解码电路,还包括生成伪随机数的伪随机数发生器,并且所述一定概率从所述伪随机数生成。
10.如权利要求1所述的解码电路,还包括输出缓冲器,被配置为存储由所述BCH解码器以预定速率输出的一定数量的数据。
11.如权利要求10所述的解码电路,其中,所述输出缓冲器包括:
偶数存储器,包括被配置为各自存储所输出的所述一定数量的数据的三倍的多个第一行;以及
奇数存储器,包括被配置为各自存储所输出的所述一定数量的数据的三倍的多个第二行,
其中,所述BCH解码器继续向所述偶数存储器输出附加的第一数据,直到所述偶数存储器满为止,然后开始向所述奇数存储器输出附加的第二数据。
12.如权利要求11所述的解码电路,其中,所述输出缓冲器还包括:
多个2至1第一复用器,其中每个第一复用器接收所述偶数存储器的一位和所述奇数存储器的一位,以输出所输出的所述一定数量的数据的三倍;以及
FIFO,被配置为接收所述多个2至1第一复用器的输出。
13.如权利要求12所述的解码电路,所述输出缓冲器还包括:
多个60至1复用器,从所述FIFO接收输出;
缓冲器,包括存储由所述60至1复用器输出的数据的第一半的第一部分和存储由所述60至1复用器输出的所述数据的第二半的第二部分;以及
多个2至1第二复用器,其中每个第二复用器从所述第一部分接收一位并从所述第二部分接收一位。
14.一种用于在存储器系统中执行错误校正的方法,所述方法包括:
基于存储在所述存储器系统中的Bose-Chaudhuri-Hocquenghem BCH编码字来生成校正子;
对所述校正子执行Berlekamp-Massey算法,以生成错误位置多项式ELP系数;
使用快速傅立叶变换FFT电路对所述ELP系数执行Chien搜索,以生成错误位和迭代信息;
基于所述迭代信息将所述错误位重新排序为按顺序的;以及
使用重新排序的错误位对所述BCH编码字的数据执行错误校正,
其中,所述FFT电路包括对所述ELP系数进行迭代运算的第一FFT级,并且所述迭代信息是从针对所述第一FFT级的每次迭代而递增的计数器的输出生成的。
15.如权利要求14所述的方法,其中,执行所述Chien搜索包括:
使用所述FFT电路的第二FFT级来对所述第一FFT级的输出迭代地执行运算;以及
从所述第二FFT级的输出生成所述错误位。
16.一种用于在存储器系统中执行错误校正的解码电路,所述解码电路包括:
Bose-Chaudhuri-Hocquenghem BCH解码器,包括:
校正子级,用于基于存储在所述存储器系统中的BCH编码字来生成校正子;
Berlekamp-Massey(BM)级,对所述校正子执行Berlekamp-Massey算法,以生成错误位置多项式ELP系数;
第一快速傅立叶变换FFT级,对所述ELP系数迭代地执行第一FFT运算,以生成第一结果;
第二FFT级,对所述第一结果迭代地执行第二FFT运算,以生成第二结果;以及
逻辑电路,被配置为从所述第二结果生成错误位,从针对所述第一FFT级的每次迭代而递增的计数器的输出生成迭代信息,以及基于所述迭代信息对所述错误位重新排序,
其中,所述BCH解码器使用重新排序的错误位对所述BCH编码字的数据执行错误校正。
17.如权利要求16所述的解码电路,还包括:
硬判决缓冲器;
软判决缓冲器;以及
输入控制电路,被配置为将所述BCH编码字作为硬判决位存储在所述硬判决缓冲器中以输出到所述BCH解码器,并且将软判决位存储在所述软判决缓冲器中以指示所述BCH编码字的位的可靠性。
18.如权利要求17所述的解码电路,其中,所述BCH解码器从所述软判决缓冲器读取所述软判决位,并且所述BCH解码器基于一定概率来翻转所述硬判决位中与所述软判决位中具有低可靠性的位相对应的一位或多位。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/244,944 US11115055B2 (en) | 2019-01-10 | 2019-01-10 | Method and apparatus for encoding and decoding data in memory system |
| US16/244,944 | 2019-01-10 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111427717A CN111427717A (zh) | 2020-07-17 |
| CN111427717B true CN111427717B (zh) | 2025-06-27 |
Family
ID=71516144
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010025433.8A Active CN111427717B (zh) | 2019-01-10 | 2020-01-10 | 用于在存储器系统中编码和解码数据的方法和装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11115055B2 (zh) |
| KR (1) | KR102719067B1 (zh) |
| CN (1) | CN111427717B (zh) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114337687B (zh) * | 2021-11-22 | 2025-12-02 | 南京风兴科技有限公司 | 一种应用于rs码与bch码级联码的解码器硬件架构 |
| KR20240095898A (ko) * | 2022-12-19 | 2024-06-26 | 에스케이하이닉스 주식회사 | Ecc 디코더를 포함하는 전자 장치 |
| KR20250016844A (ko) | 2023-07-26 | 2025-02-04 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 동작 방법 |
| TWI878030B (zh) * | 2024-02-23 | 2025-03-21 | 慧榮科技股份有限公司 | 解碼器電路、快閃記憶體控制器以及解碼方法 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102349255A (zh) * | 2009-03-13 | 2012-02-08 | 夏普株式会社 | 通过概率固定的组合码来提供不等差错保护码设计的方法和设备 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1998019410A2 (en) * | 1996-10-31 | 1998-05-07 | Discovision Associates | Single chip vlsi implementation of a digital receiver employing orthogonal frequency division multiplexing |
| US7237183B2 (en) * | 2003-03-04 | 2007-06-26 | Broadcom Corporation | Parallel decoding of a BCH encoded signal |
| US7865809B1 (en) * | 2004-03-11 | 2011-01-04 | Super Talent Electronics, Inc. | Data error detection and correction in non-volatile memory devices |
| US7702713B2 (en) * | 2006-03-24 | 2010-04-20 | Debashis Goswami | High speed FFT hardware architecture for an OFDM processor |
| US8667377B1 (en) * | 2011-09-08 | 2014-03-04 | Xilinx, Inc. | Circuit and method for parallel decoding |
| US8611173B1 (en) * | 2011-12-02 | 2013-12-17 | Altera Corporation | Buffer circuitry with multiport memory cells |
| US9529599B2 (en) * | 2012-02-13 | 2016-12-27 | William Erik Anderson | Dynamic propagation with iterative pipeline processing |
| KR101439815B1 (ko) * | 2013-03-08 | 2014-09-11 | 고려대학교 산학협력단 | 메모리에서의 에러 정정 처리 회로 및 에러 정정 처리 방법 |
| US20150311920A1 (en) * | 2014-04-25 | 2015-10-29 | Agency For Science, Technology And Research | Decoder for a memory device, memory device and method of decoding a memory device |
| US9792176B2 (en) * | 2015-11-13 | 2017-10-17 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding and decoding data in memory system |
-
2019
- 2019-01-10 US US16/244,944 patent/US11115055B2/en active Active
- 2019-08-01 KR KR1020190094039A patent/KR102719067B1/ko active Active
-
2020
- 2020-01-10 CN CN202010025433.8A patent/CN111427717B/zh active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102349255A (zh) * | 2009-03-13 | 2012-02-08 | 夏普株式会社 | 通过概率固定的组合码来提供不等差错保护码设计的方法和设备 |
Also Published As
| Publication number | Publication date |
|---|---|
| US11115055B2 (en) | 2021-09-07 |
| KR102719067B1 (ko) | 2024-10-17 |
| US20200228144A1 (en) | 2020-07-16 |
| KR20200087659A (ko) | 2020-07-21 |
| CN111427717A (zh) | 2020-07-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR102643457B1 (ko) | Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법 | |
| CN111427717B (zh) | 用于在存储器系统中编码和解码数据的方法和装置 | |
| KR101645906B1 (ko) | 계층적 반복 에러 교정을 위한 종료 기준 | |
| US8301986B2 (en) | Memory system and method for providing error correction | |
| US9075739B2 (en) | Storage device | |
| US9673840B2 (en) | Turbo product codes for NAND flash | |
| US9471421B2 (en) | Data accessing method, memory storage device and memory controlling circuit unit | |
| US9608669B2 (en) | Latency reduced error correction scheme with error indication function for burst error correction codes | |
| US8332727B2 (en) | Error correction circuit, flash memory system including the error correction circuit, and operating method of the error correction circuit | |
| US8640002B1 (en) | Resolving trapping sets | |
| US20150363263A1 (en) | ECC Encoder Using Partial-Parity Feedback | |
| US10635528B2 (en) | Memory controller and method of controlling memory controller | |
| US9553608B2 (en) | Data storage device decoder and method of operation | |
| CN101131876A (zh) | 误差校正电路和方法、包含该电路的半导体存储装置 | |
| KR20160090054A (ko) | 플래시 메모리 시스템 및 그의 동작 방법 | |
| WO2018218125A1 (en) | Non-binary error correcting code for correcting single symbol errors and detecting double bit errors | |
| CN105191146A (zh) | 用于解码涡轮乘积码的校验子表 | |
| KR20230132697A (ko) | 일반 연결 코드 코드워드를 디코딩하는 장치, 저장 시스템 및 그 제어 방법 | |
| KR102783025B1 (ko) | 에러 정정 코드 디코더, 이를 포함하는 메모리 컨트롤러, 및 에러 정정 코드 디코팅 방법 | |
| KR20150111273A (ko) | 소스-채널 결합 인코더 회로 또는 소스-채널 결합 디코더 회로를 포함하는 메모리 컨트롤러, 및 이를 포함하는 저장 장치 | |
| TWI536749B (zh) | 解碼方法、記憶體儲存裝置與記憶體控制電路單元 | |
| CN111869111B (zh) | 生成和使用可逆的缩短博斯-查德胡里-霍昆格姆码字 | |
| KR101154923B1 (ko) | 비씨에이치 디코더, 이를 포함하는 메모리 시스템 및 비씨에이치 디코딩 방법 | |
| US20160364293A1 (en) | Apparatuses and methods for encoding using error protection codes | |
| CN110971240B (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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |