CN116361064A - 使用多级级联码的分层纠错码解码 - Google Patents

使用多级级联码的分层纠错码解码 Download PDF

Info

Publication number
CN116361064A
CN116361064A CN202211640311.5A CN202211640311A CN116361064A CN 116361064 A CN116361064 A CN 116361064A CN 202211640311 A CN202211640311 A CN 202211640311A CN 116361064 A CN116361064 A CN 116361064A
Authority
CN
China
Prior art keywords
codeword
decoder
scheme
decoding
memory
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
Application number
CN202211640311.5A
Other languages
English (en)
Inventor
A.伯曼
E.海姆
A.杜布查克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN116361064A publication Critical patent/CN116361064A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/1515Reed-Solomon codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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 arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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/2906Coding, 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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/2906Coding, 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/2918Coding, 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 with error correction codes in three or more dimensions, e.g. 3-dimensional product code where the bits are arranged in a cube
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Error Detection And Correction (AREA)

Abstract

描述了基于多级级联码的分层编解码架构和方案。例如,多个编码器和解码器分层可以连同级联码的对应级的使用一起实现。编解码方案通常包括内层编解码方案(例如,极化编解码方案,诸如混合极化码、博斯‑乔杜里‑霍昆亨(BCH)码)、外层编解码方案(例如,里德‑所罗门(RS)编解码方案)、以及一个或多个中间编解码方案。内层编解码方案基于极化变换(例如,具有循环冗余校验(CRC)码的极化码、具有动态冻结码的极化码、极化调整卷积(PAC)码等),其允许将来自外层码的奇偶校验数据连同用户数据一起嵌入码字内部。外层编解码方案具有相似的级联结构(例如,内层RS码与外层RS码的级联结构)。

Description

使用多级级联码的分层纠错码解码
技术领域
以下一般地涉及存储器设备,并且更具体地,涉及使用多级(multistage)级联码的分层(hierarchical)纠错码解码。
背景技术
存储器设备是用于存储数据的通常使用的电子组件。NAND闪速存储器设备允许在每个存储单元中存储若干比特的数据,从而在制造成本和性能方面提供改进。其中存储多个比特的数据的存储单元可以被称为多层(multi-level)存储单元。多层存储单元将存储单元的阈值电压范围划分为若干电压状态,并且使用存储单元电压电平提取写入到存储单元的数据值。
在一些情况下,数据可以在编程到存储器设备之前被编码,以便提供纠正(correct)读取错误的能力。然而,许多解码器假设加性高斯白噪声(AWGN)模型,但是闪速存储单元引入的噪声可能与AWGN模型不一致。此外,纠错解码方案可能是计算上密集的。例如,VNAND设备(例如,垂直NAND设备)增加了层(layer)数,并且增加了NAND上每单元调制的比特(例如,经由NAND设备的垂直堆叠)。这样可能导致NAND信噪比(SNR)下降,并且需要更强的纠错机制。因此,在本领域中需要用于解码在存储器设备中所存储的信息的改进的系统和方法。
发明内容
描述了一种用于使用多级级联码进行分层错误码纠正(ECC)的方法、装置、非暂时性计算机可读介质和系统。该方法、装置、非暂时性计算机可读介质和系统的一个或多个方面包括:接收信息比特用于在存储器设备中的存储;使用外层编解码(outer coding)方案,基于信息比特生成第一奇偶校验比特;使用中间编解码(middle coding)方案,基于信息比特和第一奇偶校验比特生成第二奇偶校验比特;使用内层编解码(inner coding)方案,基于信息比特、第一奇偶校验比特和第二奇偶校验比特生成第三奇偶校验比特;将信息比特、第一奇偶校验比特、第二奇偶校验比特和第三奇偶校验比特组合为码字;以及将码字存储在存储器设备中。
描述了一种用于使用多级级联码进行分层ECC解码的方法、装置、非暂时性计算机可读介质和系统。该方法、装置、非暂时性计算机可读介质和系统的一个或多个方面包括:从存储器设备检索码字;将码字划分为多个码字块;使用中间编解码方案对多个码字块中的码字块解码;确定使用中间编解码方案对码字块解码失败;基于确定使用中间编解码方案对码字块解码失败,根据外层编解码方案从其他码字块获得奇偶校验比特;将码字块划分为多个码字行;使用内层编解码方案对多个码字行中的码字行解码;以及基于对码字行解码,传送来自存储器设备的码字的信息比特。
描述了一种用于使用多级级联码进行分层ECC解码的装置、系统和方法。该装置、系统和方法的一个或多个方面包括:存储器设备;编码器,被配置为使用包括外层编解码方案、中间编解码方案和内层编解码方案的分层编解码方案对信息编码以用于在存储器设备中的存储;以及解码器,被配置为使用分层编解码方案来对信息解码,其中,当在使用中间编解码方案对码字块解码中检测到错误时,使用来自外层编解码方案的奇偶校验比特,并且其中,使用内层编解码方案以对码字块的码字行解码。
附图说明
通过参考附图详细地描述本发明构思的实施例,本发明构思的特征将变得更加明显。
图1是示出根据本发明构思的实施例的包括存储器系统的数据处理系统的实现方式的框图。
图2是示出根据本发明构思的实施例的图1的存储器系统的框图。
图3是根据本发明构思的实施例的图1的非易失性存储器设备的详细框图。
图4是根据本发明构思的实施例的图2的存储单元阵列的框图。
图5是根据本发明构思的实施例的图4的存储单元阵列的存储块的电路图。
图6示出了根据本公开的各方面的用于错误码纠正(ECC)的过程的示例。
图7示出了根据本公开的各方面的分层编码方案的示例。
图8示出了根据本公开的各方面的内层编解码方案的示例。
图9示出了根据本公开的各方面的内层编码过程的示例。
图10示出了根据本公开的各方面的中间编码图的示例。
图11示出了根据本公开的各方面的外层编码图的示例。
图12示出了根据本公开的各方面的外层码编码图的示例。
图13示出了根据本公开的各方面的用于ECC的过程的示例。
图14示出了根据本公开的各方面的外层解码图的示例。
图15示出了根据本公开的各方面的外层解码过程的示例。
图16示出了根据本公开的各方面的内层解码过程的示例。
具体实施方式
本公开描述了用于纠错的系统和方法,并且更具体地,描述了用于使用分层编解码技术在存储器设备中对码字进行编码和解码的系统和方法。
NAND编程是基于向存储单元施加电压的复杂过程。然而,单元电压可能受到诸如当前电压电平、脉冲功率和单元间干扰的变量的影响。单元电压也可能受到阻止的单元中断(inhibited cell disruption)、字线(WL)间耦合和单元保持(retention)的影响。额外地,对NAND设备的写入的结果是随机的。例如,数据也可能有噪声,导致关于观察的问题。
解码器是用于将来自编码的输入的二进制信息转换为唯一输出的逻辑电路。可以使用多个输入和多个输出。信道编解码对数据流执行编码和解码操作,以纠正通信错误,诸如干扰或噪声。在传送设备处采用第一组操作对第一数据流执行信道编解码,并且在接收设备处采用第二组操作对第二数据流执行信道编解码。信道编解码可以是块码(blockcode)或卷积码(convolutional code)。
极化码是信道编解码的子集。极化编解码是块码方法,在该方法中,数据和比特的块具有设定的大小。在传送器和接收器处执行对该块的操纵。执行被称为信道组合和信道分割的操作。首先,信道组合将符号的组合分配和/或映射到信道。然后,信道分割执行变换操作,将符号组合转译成在解码器中使用的时域向量。与编码操作一起,解码操作估计时域比特流。在接收器处,这将比特块和信道转换为极化的比特流。极化码已经被示出为实现了针对加性高斯白噪声(AWGN)信道的容量,并且使用具有循环冗余校验(CRC)的连续消除列表(SCL)解码器、针对有限长度码实现了与低密度奇偶校验码(LDPC)相当的性能。SCL解码器具有高时延,因为每个比特被连续地解码。
在固态驱动(SSD)设备中,闪速存储器控制器与若干NAND信道并行连接,以实现高数据吞吐量(throughput)。存储器控制器包括信号处理和纠错码(ECC)引擎,其对来自NAND的数据解码并且可靠地检索存储的数据。一些硬件架构可以通过应用来自NAND的快速读取和快速解码技术来最大化存储器系统的吞吐量。额外地,硬件架构可以在例如数据保持和数据损坏中执行纠正方法。VNAND增加了层数以及更高的NAND上每单元调制的比特(例如,经由NAND设备的垂直堆叠)。这样可能导致NAND信噪比(SNR)下降,并且需要更强的纠错机制。一些方法,诸如解码算法,可以用于提高可纠正性以增加码字长度。然而,一些方法降低了SSD性能(例如,减少了每秒输入/输出操作(IOPS)),并且可能使用更加复杂的硬件。
本公开的实施例提供了用于基于多级级联码的分层编码和解码的架构和方案。例如,多个编码器和解码器分层可以连同级联码的对应的级的使用一起实现(例如,其中后续分层的较大的码长度可以由来自较低分层的局域(local)码组成)。根据实施例,编解码方案包括内层编解码方案(例如,极化编解码方案,诸如混合极化码、博斯-乔杜里-霍昆亨(BCH)码等),外层编解码方案(例如,里德-所罗门(RS)编解码方案),以及一个或多个中间编解码方案。因此,整个编解码方案可以包括以分层结构布置的三种不同的编解码方案。在一些情况下,分层可以包括至少部分地以分层结构布置的四种或更多种编解码方案。
根据一个实施例,内层编解码方案基于极化变换(例如,具有循环冗余校验(CRC)码的极化码、具有动态冻结码的极化码、极化调整卷积(PAC)码等),其允许将来自外层码的奇偶校验数据连同用户数据一起嵌入码字内部。外层编解码方案具有相似的级联结构(例如,内层RS码与外层RS码的级联结构)。
因此,分层码结构的每个块可以被独立地解码(例如,使用局域奇偶校验),而全局奇偶校验可以被提取以在针对块检测到解码错误的情况下协助解码器。例如,在针对块检测到解码错误的情况下,各个块的解码器提取全局奇偶校验,并且将全局奇偶校验作为边信息(side-information)传递到解码器当中,以便克服解码过程中检测到的错误。这样,分层结构被配置为实现高的吞吐量、时延和可纠正性性能(例如,经由基于局域奇偶校验进行的帧的部分解码,同时保持全局奇偶校验,以便实现有效的误帧率(FER)要求)。
在下文中将参考附图更加全面地描述本发明构思的实施例。贯穿附图,相同的附图标记可以指代相同的元件。
将理解的是,术语“第一”、“第二”、“第三”等在本文中被用于将一个元件与另一元件相区分,并且元件不受这些术语的限制。因此,实施例中的“第一”元件可以被描述为另一实施例中的“第二”元件。
应当理解,每个实施例内的特征或方面的描述通常应当被认为可用于其他实施例中的其他相似特征或方面,除非上下文清楚地另外指出。
如在本文中使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文清楚地另外指出。
在本文中,当一个值被描述为大约等于另一值,或者被描述为基本上与另一值相同或基本上与另一值相等时,要理解的是,值在测量误差内彼此相等;或者如果可测量地不相等,则在值上足够接近以在功能上彼此相等,如本领域普通技术人员将理解的。例如,在本文中使用的术语“大约”包括所陈述的值,并且意味着在由本领域普通技术人员考虑到所讨论的测量和与特定量的测量相关联的误差(即,测量系统的限制)而确定的特定值的可接受的偏差范围内。例如,“大约”可以意味着在本领域普通技术人员所理解的一个或多个标准偏差之内。此外,将理解的是,虽然在本文中参数可以被描述为具有“大约”某个值,但是根据实施例,该参数可以精确地是某个值,或者近似地是在测量误差内的某个值,如本领域普通技术人员将理解的。
示例存储器系统
图1-图5示出了根据本公开的各方面的示例存储器系统。在存储器系统(例如,诸如SSD系统)中,存储器控制器并行地连接到若干NAND信道,以实现高的数据吞吐量。存储器控制器包括信号处理和ECC引擎,其对来自NAND的数据进行解码并且可靠地检索存储的数据。如在本文中所描述的,图1-图5的示例存储器系统可以包括具有可连同多级级联码的使用一起实现的、多个编码器和解码器分层(例如,用于分层ECC编码和解码方案的实现)的存储器控制器。
图1是示出根据本发明构思的实施例的数据处理系统10的实现方式的框图。数据处理系统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)110,或者计算机系统中所包括的中央处理单元(CPU)。
根据实施例,存储器系统200可以包括闪速存储器。闪速存储器是可以电擦除和重新编程的电子(固态)非易失性计算机存储介质。两种主要类型的闪速存储器被命名为NAND或NOR逻辑门。各个闪速存储单元展现出与对应的栅极的特性相似的内部特性。在重写之前必须完全地擦除EPROM的情况下,NAND类型闪速存储器可以以通常比整个设备(device)小得多的块(或页)来写入和读取。NOR类型闪存允许将单个机器字(字节)写入到擦除位置或独立地读取。NAND类型主要地在存储卡、USB闪存驱动、固态驱动(2009年或以后生产的那些)和相似的产品中操作,以用于数据的一般存储和传递。NAND或NOR闪速存储器也经常用于在众多数字产品中存储配置数据,任务以前是由EEPROM或电池供电的静态RAM使其成为可能的。闪速存储器的一个关键缺点是,其只可以承受特定块中的相对少数量的写入周期(cycle)。两种类型的闪速存储器的示例应用包括个人计算机、PDA、数字音频播放器、数码相机、移动电话、合成器、视频游戏、科学仪器、工业机器人和医疗电子设备。
除了是非易失性的之外,闪速存储器还提供快速的读取访问时间,尽管不像静态RAM或ROM那样快。其抗机械冲击性有助于解释其在便携式设备中相较于硬盘更受欢迎的原因,其高耐用性、承受高压、高温和浸入水中的能力等也是如此。尽管闪速存储器在技术上是一类EEPROM,但是术语“EEPROM”通常用于特定地指代非闪存EEPROM,其以小块(通常是字节)可擦除。因为擦除周期慢,闪速存储器擦除中使用的大的块大小使其在写入大量数据时相较于非闪存EEPROM具有显著的速度优势。闪速存储器的成本比字节可编程EEPROM小得多,并且已经成为系统需要显著的量的非易失性固态存储的情况下的主导的存储器类型。闪速存储器将信息存储在由浮置栅极晶体管制成的存储单元阵列中。在单层单元(SLC)设备中,每个单元只存储一个比特的信息。在包括三层单元(TLC)设备的多层单元(MLC)设备中,每个单元可以存储多于一个比特的信息。浮置栅极可以是导电的或不导电的。
处理器是智能硬件设备(例如,通用处理组件、数字信号处理器(DSP)、CPU、图形处理单元(GPU)、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑设备、分立门或晶体管逻辑组件、分立硬件组件或其任意组合)。在一些情况下,处理器被配置为使用存储器控制器来操作存储器阵列。在其他情况下,存储器控制器被集成到处理器中。在一些情况下,处理器被配置为执行在存储器中存储的计算机可读指令,以执行各种功能。在一些实施例中,处理器包括用于调制解调器处理、基带处理、数字信号处理或传输处理的专用组件。
如上所述,主机100可以包括AP 110。AP 110可以包括各种知识产权(IP)块。例如,AP 110可以包括控制存储器系统200的存储器设备驱动器111。主机100可以与存储器系统200通信,以传送与存储器操作相关的命令,并且接收响应于传送的命令的确认命令。主机100还可以关于与存储器操作相关的信息表info_table来与存储器系统200通信。
存储器系统200可以包括例如存储器控制器210和存储器设备220。存储器控制器210可以从主机100接收与存储器操作相关的命令,使用接收到的命令生成内部命令和内部时钟信号,以及将内部命令和内部时钟信号提供给存储器设备220。存储器设备220可以响应于内部命令将写入数据存储在存储单元阵列中,或者可以响应于内部命令向存储器控制器210提供读取数据。
如在本文中所描述的,存储器控制器210可以包括分层编码和解码架构。例如,存储器控制器210可以包括实现内层编解码方案(例如,极化编解码方案,诸如混合极化码)、外层编解码方案(例如,RS编解码方案)以及一个或多个中间编解码方案的分层ECC结构。内层编解码方案基于极化变换(例如,具有CRC码的极化码、具有动态冻结码的极化码、PAC码等),其允许将来自外层码的奇偶校验数据连同用户数据一起嵌入码字内部。外层编解码方案具有相似的级联结构(例如,内层RS码和外层RS码的级联结构)。如在本文中更加详细地描述的,ECC的分层结构允许基于局域奇偶校验进行的整个帧的部分的解码,同时保持进一步的全局奇偶校验,以改进吞吐量、时延和FER能力。
存储器设备220包括存储单元阵列,即使当存储器设备220没有上电时,该存储单元阵列也保持存储在其中的数据。存储单元阵列可以包括下述作为存储单元,例如:NAND或NOR闪速存储器、磁阻随机存取存储器(MRAM)、电阻随机存取存储器(RRAM)、铁电随机存取存储器(FRAM)或相变存储器(PCM)。例如,当存储单元阵列包括NAND闪速存储器时,存储单元阵列可以包括多个块和多个页。数据可以以页为单位被编程和读取,并且数据可以以块为单位被擦除。在图4中示出了存储单元阵列中所包括的存储块的示例。
图2是示出根据本发明构思的实施例的图1的存储器系统200的框图。参考图2,存储器系统200包括存储器设备220和存储器控制器210。存储器控制器210在本文中也可以被称为控制器电路。存储器设备220可以在存储器控制器210的控制下执行写入操作、读取操作或擦除操作。
存储器控制器210可以取决于从主机100接收的请求或内部地指定的时间表(schedule)来控制存储器设备220。存储器控制器210可以包括控制器核心211、内部存储器214、主机接口块215和存储器接口块216。存储器控制器210还可以包括:设备信息存储装置217,被配置为向主机接口块215提供第一设备信息DI1并且向控制器核心211提供第二设备信息DI2。
控制器核心211可以包括编码器212和解码器213。编码器212是参考图7描述的对应的元件的示例,或者包括参考图7描述的对应的元件的方面。解码器213是参考图14-图16描述的对应的元件的示例,或者包括参考图14-图16描述的对应的元件的方面。存储器控制核心可以取决于从主机100接收的请求或内部地指定的时间表来控制和访问存储器设备220。存储器控制核心可以管理和执行用于管理或操作存储器系统200的各种元数据和代码(code)。在一些实施例中,控制器核心211可以包括存储器控制核心和机器学习核心,并且这些核心中的每个可以由一个或多个处理器实现。
在一些示例中,存储器控制器210可以包括机器学习核心。机器学习核心可以用于执行神经网络(例如,被设计为在存储器设备220上执行噪声消除的神经网络)的训练和推理。
内部存储器214可以用作,例如,由控制器核心211使用的系统存储器、对存储器设备220的数据进行存储的高速缓冲存储器、或者临时存储主机100和存储器设备220之间的数据的缓冲器存储器。内部存储器214可以存储映射表MT,该映射表MT指示分配给存储器系统200的逻辑地址与存储器设备220的物理地址之间的关系。内部存储器214可以包括例如DRAM或SRAM。
主机接口块215可以包括用于与主机100通信的组件,诸如像物理块。存储器接口块216可以包括用于与存储器设备220通信的组件,诸如像物理块。
下面,将描述存储器系统200随时间的操作。当向存储器系统200供给电力时,存储器系统200可以使用主机100来执行初始化。
主机接口块215可以向存储器控制核心提供从主机100接收的第一请求REQ1。第一请求REQ1可以包括命令(例如,读取命令或写入命令)和逻辑地址。存储器控制核心可以将第一请求REQ1转译(translate)成适合用于存储器设备220的第二请求REQ2。
例如,存储器控制核心可以转译命令的格式。存储器控制核心可以参考在内部存储器214中所存储的映射表MT来获得地址信息AI。存储器控制核心可以通过使用地址信息AI来将逻辑地址转译成存储器设备220的物理地址。存储器控制核心可以向存储器接口块216提供适合用于存储器设备220的第二请求REQ2。
存储器接口块216可以在队列处注册来自存储器控制核心的第二请求REQ2。存储器接口块216可以将在队列处首先注册的请求作为第三请求REQ3传送到存储器设备220。
当第一请求REQ1是写入请求时,主机接口块215可以将从主机100接收的数据写入到内部存储器214。当第三请求REQ3是写入请求时,存储器接口块216可以将在内部存储器214中所存储的数据传送到存储器设备220。
当数据被完全地写入时,存储器设备220可以向存储器接口块216传送第三响应RESP3。响应于第三响应RESP3,存储器接口块216可以向存储器控制核心提供第二响应RESP2,指示数据被完全地写入。
在数据被存储在内部存储器214中之后或者在接收到第二响应RESP2之后,存储器控制核心可以通过主机接口块215向主机100传送指示请求完成的第一响应RESP1。
当第一请求REQ1是读取请求时,读取请求可以通过第二请求REQ2和第三请求REQ3被传送到存储器设备220。存储器接口块216可以将从存储器设备220接收的数据存储在内部存储器214中。当数据被完全地传送时,存储器设备220可以将第三响应RESP3传送到存储器接口块216。
在接收到第三响应RESP3时,存储器接口块216可以向存储器控制核心提供指示数据被完全地存储的第二响应RESP2。在接收到第二响应RESP2时,存储器控制核心可以通过主机接口块215向主机100传送第一响应RESP1。
主机接口块215可以将在内部存储器214中所存储的数据传送到主机100。在实施例中,在与第一请求REQ1相对应的数据被存储在内部存储器214中的情况下,可以省略第二请求REQ2和第三请求REQ3的传输。
存储器设备220还可以将第一串行外围接口信息SPI1传送到存储器接口块216。存储器接口块216可以向控制器核心211传送第二串行外围接口信息SPI2。
存储器系统200可以包括被配置为执行本文中所描述的技术的存储器设备220和存储器控制器210(例如,包括编码器212和解码器213的存储器控制器210)。根据一些方面,编码器212被配置为使用包括外层编解码方案、中间编解码方案和内层编解码方案的分层编解码方案来对信息编码,以用在存储器设备220中的存储。根据一些方面,解码器213被配置为使用分层编解码方案来解码信息,其中,当在使用中间编解码方案对码字块的解码中检测到错误时,使用来自外层编解码方案的奇偶校验比特,并且其中,使用内层编解码方案来解码码字块的码字行。
在一些方面中,解码器213被配置为针对外层编解码方案执行软RS算法。在一些方面中,解码器213被配置为执行针对中间编解码方案所配置的RS算法,其中,中间编解码方案的RS算法被配置为与内层编解码方案一起使用。在一些方面中,解码器213被配置为针对内层编解码方案使用极化编解码方案。在一些方面中,解码器213包括用于内层编解码方案的低复杂度极化解码器213和高复杂度极化解码器213。
根据一些方面,存储器控制器210接收用于在存储器设备220中的存储的信息比特。根据一些方面,编码器212使用外层编解码方案,基于信息比特来生成第一奇偶校验比特。在一些示例中,编码器212使用中间编解码方案,基于信息比特和第一奇偶校验比特来生成第二奇偶校验比特。在一些示例中,编码器212使用内层编解码方案,基于信息比特、第一奇偶校验比特和第二奇偶校验比特来生成第三奇偶校验比特。在一些示例中,编码器212将信息比特、第一奇偶校验比特、第二奇偶校验比特和第三奇偶校验比特组合为码字。根据一些方面,存储器设备220存储码字(例如,存储器控制器210将码字存储在存储器设备220中)。
在一些示例中,编码器212向信息比特分配位置信息,其中,位置信息包括行索引和列索引,其中,第一奇偶校验比特是基于位置信息按列生成的,以及其中,第二奇偶校验比特是基于位置信息按行生成的。在一些示例中,编码器212使用中间编解码方案交替地编码信息比特的块的列和行。在一些示例中,编码器212使用内层编解码方案对包括信息比特的一部分的行、第一奇偶校验比特的一部分、第二奇偶校验比特的一部分和来自先前行的第三奇偶校验比特的第一部分进行编码,以获得编码行和针对下一行的第三奇偶校验比特的第二部分。在一些方面中,外层编解码方案包括RS编解码方案。在一些方面中,中间编解码方案包括RS编解码方案。在一些方面中,内层编解码方案包括极化编解码方案。
根据一些方面,存储器控制器210从存储器设备中检索码字。根据一些方面,解码器213将码字划分为一组码字块。在一些示例中,解码器213使用中间编解码方案解码该组码字块中的码字块。在一些示例中,解码器213确定使用中间编解码方案对码字块解码失败。在一些示例中,解码器213基于确定使用中间编解码方案对码字块解码失败,根据外层编解码方案从其他码字块获得奇偶校验比特。在一些示例中,解码器213将码字块划分为一组码字行。在一些示例中,解码器213使用内层编解码方案对该组码字行中的码字行进行解码。在一些示例中,存储器控制器210基于对码字行的解码,传送来自存储器设备220的码字的信息比特。
在一些示例中,解码器213基于确定使用外层编解码方案对码字解码失败,使用外层编解码方案执行对码字的软解码。在一些示例中,解码器213使用内层编解码方案的低复杂度解码器213对码字行解码。在一些示例中,解码器213确定使用低复杂度解码器213对码字行解码失败。在一些示例中,解码器213使用高复杂度解码器213对码字行解码。在一些方面中,低复杂度解码器213包括连续消除解码器213或置信传播(belief propagation)解码器213。在一些方面中,高复杂度算法包括步进列表解码器213或顺序解码器213。在一些方面中,外层编解码方案包括RS编解码方案。在一些方面中,中间编解码方案包括RS编解码方案。在一些方面中,内层编解码方案包括极化编解码方案。
图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可以是编程电压(例如,写入电压)、读取电压、擦除电压、通过电压或编程验证电压。另外,第二驱动电压VSSL可以是串选择电压(例如,导通电压或关断电压)。此外,第三驱动电压VGSL可以是接地选择电压(例如,导通电压或关断电压)。
行解码器224可以通过多个字线WL连接到存储单元阵列221,并且可以响应于从控制逻辑222接收的行地址X-ADD来激活多个字线WL中的一部分。例如,在读取操作中,行解码器224可以向所选择的字线施加读取电压,并且向未选择的字线施加通过电压。
在编程操作中,行解码器224可将编程电压施加到所选择的字线,并且将通过电压施加到未选择的字线。在实施例中,在多个编程循环(loop)中的至少一个中,行解码器224可以将编程电压施加到所选择的字线和另外地选择的字线。
页缓冲器225可以通过多个位线BL连接到存储单元阵列221。例如,在读取操作中,页缓冲器225可以作为输出在存储单元阵列221中所存储的数据的感测放大器来操作。替选地,在编程操作中,页缓冲器225可以作为将期望数据写入存储单元阵列221的写入驱动器来操作。
图4和图5示出了使用三维闪速存储器实现存储器系统200的示例。三维闪速存储器可以包括三维(例如,垂直)NAND(例如,VNAND)存储单元。下面描述包括三维存储单元的存储单元阵列221的实现方式。下面描述的存储单元中的每个可以是NAND存储单元。
图4是根据本发明构思的实施例的图3的存储单元阵列221的框图。参考图4,根据实施例,存储单元阵列221包括多个存储块BLK1至BLKz。存储块BLK1至BLKz中的每个都具有三维结构(例如,垂直结构)。例如,存储块BLK1至BLKz中的每个可以包括在第一方向至第三方向上延伸的结构。例如,存储块BLK1至BLKz中的每个可以包括在第二方向上延伸的多个NAND串。例如,可以在第一方向至第三方向上提供多个NAND串。
NAND串中的每个连接到位线BL、串选择线SSL、接地选择线GSL、字线WL和公共源极线CSL。即,存储块BLK1至BLKz中的每个可以连接到多个位线BL、多个串选择线SSL、多个接地选择线GSL、多个字线WL和公共源极线CSL。下面将参考图5进一步详细地描述存储块BLK1至BLKz。
图5是根据本发明构思的实施例的存储块BLKi的电路图。图5示出了图4的存储单元阵列221中的存储块BLK1至BLKz中的一个的示例。尽管图5示出了具有6个字线和存储单元的示例,但是这仅是图示并且可以使用任何数量的字线和存储单元。
存储块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的示例。在一些示例中,这些操作由包括处理器的系统执行,该处理器执行一组代码来控制装置的功能元件。额外地或替代地,使用专用硬件来执行某些过程。通常,这些操作根据依照本公开的方面描述的方法和过程来执行。在一些情况下,本文中描述的操作由各种子步骤组成,或者结合其他操作来执行。
描述了一种用于使用多级级联码的分层ECC编码的方法。该方法的一个或多个方面包括接收信息比特以用于在存储器设备中的存储,使用外层编解码方案基于信息比特生成第一奇偶校验比特,使用中间编解码方案基于信息比特和第一奇偶校验比特生成第二奇偶校验比特,以及使用内层编解码方案基于信息比特、第一奇偶校验比特和第二奇偶校验比特生成第三奇偶校验比特。该方法的一个或多个方面还包括将信息比特、第一奇偶校验比特、第二奇偶校验比特和第三奇偶校验比特组合为码字,并且将码字存储在存储器设备中。
在操作605,系统接收信息比特以用于在存储器设备中的存储。例如,存储器控制器可以接收要编码(例如,用于到另一设备的传输)的信息比特(例如,用户数据)。在一些情况下,该步骤的操作涉及参考图2描述的存储器控制器或者可以由参考图2描述的存储器控制器来执行。
在操作610,系统使用外层编解码方案基于信息比特生成第一奇偶校验比特。例如,在编码过程中,可以将奇偶校验比特添加到信息比特串,作为一种形式的纠错码(例如,使发送器和接收器之间的信息比特的通信对噪声、信号丢失等更加鲁棒)。操作610的外层编解码方案可以允许将奇偶校验数据(例如,来自外层码)连同信息比特一起嵌入码字内部。在一些情况下,该步骤的操作涉及参考图2和图7描述的编码器或者可以由参考图2和图7描述的编码器来执行。此外,例如,参考图11、图12、图14和图15,在本文中更加详细地描述外层编解码方案的方面。
在操作615,系统使用中间编解码方案基于信息比特和第一奇偶校验比特来生成第二奇偶校验比特。在一些情况下,该步骤的操作涉及参考图2和图7描述的编码器或者可以由参考图2和图7描述的编码器来执行。此外,例如,参考图10,在本文中更加详细地描述中间编解码方案的方面。
在操作620,系统使用内层编解码方案基于信息比特、第一奇偶校验比特和第二奇偶校验比特来生成第三奇偶校验比特。在一些情况下,该步骤的操作涉及参考图2和图7描述的编码器或者可以由参考图2和图7描述的编码器来执行。此外,例如,参考图8、图9和图16,在本文中更加详细地描述外层编解码方案的方面。
因此,在操作625,系统将信息比特、第一奇偶校验比特、第二奇偶校验比特和第三奇偶校验比特组合为码字。例如,内层编解码方案可以基于极化变换,该极化变换允许将来自操作610和615的奇偶校验数据连同信息比特一起嵌入码字内部。在一些情况下,该步骤的操作涉及参考图2和图7描述的编码器或者可以由参考图2和图7描述的编码器来执行。
如在本文中更加详细地描述的,参考操作610至620描述的这种嵌套编解码方案可以在解码器处实现高的吞吐量、时延和可纠正性性能,以得到改进的信息比特的通信(例如,因为解码器可以基于局域奇偶校验执行帧的部分解码,同时保持来自外层编解码方案的全局奇偶校验,以便实现有效的FER需求)。
即,操作610的外层编解码方案使得解码器能够克服可能由操作620的内层编解码方案的方面导致的潜在错误(例如,通过在外层码和内层码的解码器之间共享奇偶校验)。
在操作630,系统将码字存储在存储器设备中。例如,在一些示例中,信息比特可以被编码成码字以用于到另一设备(例如,要由另一设备解码)的传输。在一些情况下,该步骤的操作涉及由参考图2描述的存储器设备或者可以由参考图2描述的存储器设备来执行。
此外,描述了一种用于使用多级级联码进行分层ECC编码的装置、非暂时性计算机可读介质和系统。该装置、非暂时性计算机可读介质和系统的一个或多个方面包括:接收信息比特,以用于在存储器设备中的存储;使用外层编解码方案基于信息比特生成第一奇偶校验比特;使用中间编解码方案基于信息比特和第一奇偶校验比特来生成第二奇偶校验比特;使用内层编解码方案基于信息比特、第一奇偶校验比特和第二奇偶校验比特来生成第三奇偶校验比特;将信息比特、第一奇偶校验比特、第二奇偶校验比特和第三奇偶校验比特组合为码字;以及将码字存储在存储器设备中。
该方法、装置、非暂时性计算机可读介质和系统的一些示例还包括向信息比特分配位置信息,其中,位置信息包括行索引和列索引,其中,第一奇偶校验比特是基于位置信息按列生成的,以及其中,第二奇偶校验比特是基于位置信息按行生成的。
该方法、装置、非暂时性计算机可读介质和系统的一些示例还包括使用中间编解码方案交替地编码信息比特的块的列和行。
该方法、装置、非暂时性计算机可读介质和系统的一些示例还包括使用内层编解码方案对包括信息比特的一部分的行、第一奇偶校验比特的一部分、第二奇偶校验比特的一部分和来自先前行的第三奇偶校验比特的第一部分进行编码,以获得编码行和针对下一行的第三奇偶校验比特的第二部分。
在一些方面中,外层编解码方案包括RS编解码方案。在一些方面中,中间编解码方案包括RS编解码方案。在一些方面中,内层编解码方案包括极化编解码方案。
图7示出了根据本公开的各方面的分层编码方案的示例。编码器700是参考图2描述的对应的元件的示例,或者包括参考图2描述的对应的元件的方面。在一个方面中,编码器700包括内层编码器705、中间编码器710和外层编码器715。在不脱离本公开的范围的情况下,可以通过类比(analogy)来修改在本文中描述的示例分层编码器架构的各方面。可以取决于控制器设置来选择确切的架构。分层的数量、编码器操作模式和复杂度可能取决于控制器目标,并且对于移动控制器、客户端SSD控制器、数据中心控制器等可能不同。可以为低成本或高成本控制器选择架构参数妥协。额外地,可以为当前和未来的控制器选择架构参数。
本公开描述了用于开发具有低门数(gate-count)和低功率的高纠正能力ECC引擎的系统和方法。如图7的示例中所示,编码器700包括实现内层编解码方案(例如,极化编解码方案)的内层编码器705、实现中间编解码方案(例如,RS编解码方案)的中间编码器710以及实现外层编解码方案(例如,RS编解码方案)的外层编码器715。因此,编码器700可以将用户数据编码成码字(例如,HSPolar码字),如在本文中更加详细地描述的。
例如,本公开的实施例包括通用的级联码(GCC),其包括对码字编码的内层码以及采用软解码算法的外层码。在一些情况下,码字被划分以提供低门数和低功耗。在一些示例中,内层码可以是极化码或PAC码。额外地,包含代数里德-所罗门码的编解码方案可以是外层码的一部分,该外层码组合所划分的码字并且增加纠正能力。在一些示例中,解码算法可以是分层码结构,以支持高速解码(例如,如在本文中参考例如图13-图16更加详细地描述的)。
如在本文中所描述的,可以对数据流执行ECC和解码操作,以纠正诸如干扰或噪声的通信错误。极化码是基于将物理信道变换为多个虚拟外层信道的短内核码的多重递归级联的线性块纠错码。虚拟信道倾向于具有高可靠性或低可靠性(即,它们极化)。数据比特被分配给最可靠的信道,并且不可靠的信道被“冻结”或设置为0。
RS码也对数据块进行操作,该数据块被当作一组(被称为符号的)有限域元素来处理。RS编码方案涉及向数据添加校验符号。使用校验符号,RS码可以检测错误的符号。
混合极化码(例如,在本文中其可以被称为SPolar码)基于极化码和RS码的级联。SPolar码的特征包括高性能和易伸缩性,以及开销和码大小。SPolar码可以使用多级编码过程。多个RS码可以逐个符号地、并行地编码。采用混合极化码的分层码可以被称为HSPolar码。
GCC基于一组外层码和一组嵌套的内层码。在这种情况下,编码方案可以包括采用外层码对数据编码以获得码字,其中,然后可以基于使用该组嵌套的内层码对获得的码字编码来生成线性二进制码。对于具有极化码的GCC,反馈数据包括冻结比特或RS多项式评估。
本公开描述了用于基于多级级联码的ECC编码和解码方案的系统和方法。在一些情况下,ECC具有分层结构来提高吞吐量和时延。例如,分层结构可以提供基于局域奇偶校验对整个帧的一部分进行解码,并且包含全局奇偶校验以降低误帧率(FER)。本公开的实施例包括下述编解码方案:该编解码方案包括最内层码和最外层码。例如,参考图7,编码器700可以包括内层编码器705、中间编码器710和外层编码器715(例如,其可以分别地实现内层码、中间码和外层码)。
在一些情况下,最内层码可以被称为SPolar码或混合博斯-乔杜里-霍昆亨(BCH)码。在一些示例中,系统中最内层和基本编解码元素可以基于极化变换。例如,该元素可以基于具有循环冗余校验的极化(即,极化+CRC、极化+动态冻结和/或PAC码)。结果,开发了嵌套编解码方案,其提供了将来自外层码的奇偶校验数据与用户数据一起嵌入到码字内部。
外层码通过在内层码的解码器之间共享奇偶校验来减少内层码的错误。
本公开的一个或多个实施例包括具有和内层里德-所罗门(RS)码与外层RS码相似的级联结构的外层码(被称为S-RS)。在一些示例中,级联结构可以导致包括4个块的分层码结构(即,每个块包括4KB的用户数据)。块可以被独立地解码(即,使用局域奇偶校验)。在对块的解码中检测到错误的情况下,提取全局奇偶校验来辅助该块的解码器。在一些情况下,全局奇偶校验作为边信息(side information)传递,以减少在解码过程中检测到的错误。
本公开的实施例包括有效的多级编码和有效的多级解码结构。在一些示例中,编码和解码可以针对单个的(individual)4KB块执行,或者针对完整的4x4KB码字执行。
确保对单个块的外层码的精确解码以从一个级到下一级继续进行。在一些示例中,外层码基于RS码。例如,可以使用软RS列表解码器来完全地使用外层码。解码器有效地考虑了RS向量的多个假设。本公开的一个或多个实施例包括使用软RS列表解码器来调度块的多级解码的级的块解码器。在一些情况下,列表解码器可以并行地扫描多个假设。替选地,解码器可以一次测试一个假设,并且在失败的情况下调用(recall)调度器来测试另一假设。
本公开的一个或多个实施例包括软RS解码器,其提供对包含擦除的RS符号的假设的测试。使用有效的编码和解码算法,多级编解码方案导致了有竞争力的吞吐量以及低错误率和时延。
最内层码编码
图8示出了根据本公开的各方面的内层编解码方案800的示例。内层编解码方案800(例如,极化编解码方案)可以将用户数据(例如,k比特的用户数据)和来自先前级的奇偶校验比特(例如,k_max–k个比特)编码成行码字(例如,如参考例如图10和图11描述的行编码1005而在本文中更加详细地描述的)。此外,内层编解码方案800可以为后续编码级生成奇偶校验比特。例如,最内层码由嵌套的线性码的序列给出,即
Figure BDA0004007504700000191
嵌套的线性码可以通过根据码的维度将生成的矩阵的行分区为L个部分来描述。
图9示出了根据本公开的各方面的内层编码过程的示例。所示的示例包括用户数据900、最外层码奇偶校验比特905、预变换奇偶校验比特910和变换后奇偶校验比特915。图9示出了内层编码过程的各方面,其中,向量元素根据速率分布排列(rate profilepermutation)来排序。
在一些情况下,码基于极化变换。例如,可以使用用于针对对称二进制输入无记忆信道(诸如阿里坎信道)极化来构建容量实现码的方法。嵌套线性码由三个组件(即速率分布、系统预变换和极化变换)组成。在一些情况下,系统预变换可以被称为进行动态冻结(freezing)或被动态冻结(frozen)。额外地,极化变换可以包括比特反转。例如,预变换可以基于各种码,诸如极化+CRC、极化+动态冻结以及PAC。
考虑具有块长度N的码。速率分布是用于嵌套码的序列的极化虚拟比特信道[i1,…,iN]的固定顺序(即,排列)。对于给定的码维度k,用户数据比特900(例如[d1,…,dk])和来自外层码的奇偶校验数据(例如,外层码奇偶校验比特
Figure BDA0004007504700000201
)被如下映射到向量v=[v1,…,vN]:
Figure BDA0004007504700000202
且/>
Figure BDA0004007504700000203
Figure BDA0004007504700000204
在一些情况下,使用固定的系统预变换,例如,系统速率1码。例如,
Figure BDA0004007504700000205
是动态冻结的,而/>
Figure BDA0004007504700000206
是i1,…,il的线性函数,其中,/>
Figure BDA0004007504700000207
在预变换之后应用系统极化变换。来自外层码的奇偶校验数据(例如,外层码奇偶校验比特905)和来自预变换的奇偶校验比特(例如,预变换奇偶校验比特910)通过系统极化变换而被认为是冻结比特。因此,系统极化变换可以产生用户数据900和变换后奇偶校验比特915。
中间码编码:
图10示出了根据本公开的各方面的中间编码图的示例。所示的示例包括列编码1000、行编码1005和单元1010。单元1010是参考图11和图12描述的对应的元件的示例,或者包括参考图11和图12描述的对应的元件的方面。在一些方面中,行编码1005可以涉及参考图8和图9描述的技术或者包括参考图8和图9描述的技术的方面。
SPolar编码可以逐级地执行。在每个级中,首先对该级的列进行编码(例如,经由列编码1000在列域中)。然后,该码字被变换到行域。然后,使用信息比特和来自该级的列的比特对该级的行进行编码(例如,经由行编码1005)。因此,列编码1000和行编码1005可以被概念化为在单元1010中生成用户数据比特和奇偶校验比特。
例如,在一些情况下,中间(即,SPolar)码可以被描述或表示为2D矩形。该码的行是极化码字,并且该行由第二码约束。在一些情况下,用户数据比特和奇偶校验比特可以被制表(tabulated)并且通过单元1010表示(例如,其中用户数据比特是空白或实心的,并且来自不同码的奇偶校验比特采用不同级别的阴影表示)。
最内层码的嵌套意味着将码C0分区到不同的级。例如,码可以被分区为0、1、2或更多个级,其中,在级i,极化码具有Ci的维度。在一些情况下,通过将码字提升到C0来嵌入来自外层码的奇偶校验。
例如,由于速率为1,所以在级0的列中不执行编码。行1被编码,即1,2,3,4→码字[1,2,3,4,5]。接下来,计算C1中码字的奇偶校验或陪集(coset)。在一些情况下,通过将来自行域的行变换到列域来执行计算。如此获得的数据被用于编码级1的列,即计算[4,9,14,19]。相似地,9的信息可以嵌入到级2的行中,随后计算码字[6,7,8,9,10]。编码然后继续到接下来的级(例如,外层级)。
最外层码编码:
图11示出了根据本公开的各方面的外层编码图的示例。单元1100是参考图10和图12描述的对应的元件的示例,或者包括参考图10和图12描述的对应的元件的方面。图11示出了对来自用户数据的码字编码的内层编解码方案(例如,极化编解码方案)、中间编解码方案(例如,RS编解码方案)和外层编解码方案(例如,RS编解码方案)的方面。在一些方面中,生成的码字可以包括用户数据比特、最内层码奇偶校验比特、中间码奇偶校验比特和最外层码奇偶校验比特(例如,其编码可以经由图11的单元1100被概念化)。
本公开的实施例包括最外层码(例如,最外层的HSPolar码)。该码构建在包括具有局域性的一般性的级联纠错编解码方案的一般结构上。图11示出了最外层的方面(例如,概念化为2D矩形的HSPolar码)。例如,行码可以基于极化(例如,阿里坎极化),而在一些变换后的域中,列可以基于S-RS码。在一些情况下,S-RS码本身可以被视为2D矩形,其行是RS码字以及其列(例如,在列域中)也是RS码字。
图11示出了在本文中描述的编码过程的各方面。如所描述的,用户数据比特和奇偶校验比特可以被制表并且通过单元1100表示(例如,其中用户数据比特是空白或实心的,并且来自不同码的奇偶校验比特采用不同级别的阴影表示)。例如,用户数据比特可以被放置在(或表示为)空白或实心单元中。奇偶校验比特可以由浅色阴影单元(即最内层码或极化的奇偶校验)、中等阴影单元(即中间码)和深色阴影单元(即最外层码的全局奇偶校验)来表示。
因此,嵌套被表示为对于i=0,4,8,12,
Figure BDA0004007504700000221
其中,S指示中间域。
本公开的一个或多个实施例包括将当前级的用户数据作为输入并且输出码字的编码算法。在一些情况下,用户数据可以通过最外层码的全局奇偶校验和中间码,随后是最内层码的奇偶校验传递,以提供码字。由于编码的多级过程,该算法包括反馈机制。陪集信息包括外层码的奇偶校验比特。
在一些示例中,最外层码奇偶校验比特(例如,深色阴影单元)由最外层RS码确定。深色阴影单元可以由先前块中相同位置的空白或实心单元(即信息)来定义。额外地,中间码奇偶校验比特(例如,中等阴影单元)由中间RS码设置,以及最内层码奇偶校验比特(例如,浅色阴影单元)由最内层(极化)码设置。
图12示出了根据本公开的各方面的外层码编码图的示例。单元1200是参考图10和图11描述的对应的元件的示例,或者包括参考图10和图11描述的对应的元件的方面。在一些情况下,如图12中所示,码可以被认为是具有堆叠的2D块的3D结构。例如,最内层域的列被变换为中间列域。在一些示例中,变换后的域被表示为中间(S)域中的矩形。
可以根据最外层域中的最外层RS码来确定最外层码奇偶校验比特(例如,深色阴影单元)。接下来,在按列确定最外层码奇偶校验比特(例如,深色阴影单元)之后,按行确定中间码奇偶校验比特(例如,中等阴影单元)。此外,根据最内层码(即,极化)来确定最内层码奇偶校验比特(例如,浅色阴影单元)。在一些示例中,根据SPolar 2D块来确定单元。
示例解码器
图13示出了根据本公开的各方面的用于错误码纠正的过程1300的示例。在一些示例中,这些操作由包括处理器的系统执行,该处理器执行一组代码来控制装置的功能元件。额外地或替代地,使用专用硬件来执行某些过程。通常,根据依照本公开的各方面描述的方法和过程来执行这些操作。在一些情况下,本文中描述的操作由各种子步骤组成,或者结合其他操作来执行。
描述了一种用于使用多级级联码的分层ECC解码的方法。该方法的一个或多个方面包括:从存储器设备中检索码字;将码字划分为多个码字块;使用中间编解码方案解码多个码字块中的码字块;确定使用中间编解码方案对码字块解码失败;基于确定使用中间编解码方案对码字块解码失败,根据外层编解码方案从其他码字块获得奇偶校验比特;将码字块划分为多个码字行;使用内层编解码方案解码多个码字行中的码字行;以及基于对码字行的解码,传送来自存储器设备的码字的信息比特。
在操作1305,系统从存储器设备中检索码字。在一些情况下,该步骤的操作涉及参考图2描述的存储器控制器或者可以由参考图2描述的存储器控制器来执行。
在操作1310,系统将码字划分为一组码字块。在一些情况下,该步骤的操作涉及参考图2描述的解码器或者可以由参考图2描述的解码器来执行。
在操作1315,系统使用中间编解码方案解码该一组码字块中的码字块。在一些情况下,该步骤的操作涉及参考图2描述的解码器或者可以由参考图2描述的解码器来执行。
在操作1320,系统确定使用中间编解码方案对码字块解码失败。在一些情况下,该步骤的操作涉及参考图2描述的解码器或者可以由参考图2描述的解码器来执行。
在操作1325,系统基于确定使用中间编解码方案对码字块解码失败,根据外层编解码方案从其他码字块获得奇偶校验比特。在一些情况下,该步骤的操作涉及参考图2描述的解码器或者可以由参考图2描述的解码器来执行。
在操作1330,系统将码字块划分为一组码字行。在一些情况下,该步骤的操作涉及参考图2描述的解码器或者可以由参考图2描述的解码器来执行。
在操作1335,系统使用内层编解码方案解码一组码字行中的码字行。在一些情况下,该步骤的操作涉及参考图2描述的解码器或者可以由参考图2描述的解码器来执行。
在操作1340,系统基于对码字行的解码传送来自存储器设备的码字的信息比特。在一些情况下,该步骤的操作涉及参考图2描述的存储器控制器或者可以由参考图2描述的存储器控制器来执行。
此外,描述了一种用于使用多级级联码的分层ECC解码的装置、非暂时性计算机可读介质和系统。该装置、非暂时性计算机可读介质和系统的一个或多个方面包括:从存储器设备中检索码字;将码字划分为多个码字块;使用中间编解码方案对多个码字块中的码字块解码;确定使用中间编解码方案对码字块解码失败;基于确定使用中间编解码方案对码字块解码失败,根据外层编解码方案从其他码字块获得奇偶校验比特;将码字块划分为多个码字行;使用内层编解码方案对多个码字行中的码字行解码;以及基于对码字行的解码,传送来自存储器设备的码字的信息比特。
该方法、装置、非暂时性计算机可读介质和系统的一些示例还包括基于确定使用外层编解码方案对码字解码失败,使用外层编解码方案执行码字的软解码。
该方法、装置、非暂时性计算机可读介质和系统的一些示例还包括使用内层编解码方案的低复杂度解码器对码字行解码。一些示例还包括确定使用低复杂度解码器对码字行解码失败。一些示例还包括使用高复杂度解码器对码字行解码。在一些方面中,低复杂度解码器包括连续消除解码器或置信传播解码器。在一些方面中,高复杂度算法包括步进列表解码器或顺序解码器。
在一些方面中,外层编解码方案包括RS编解码方案。在一些方面中,中间编解码方案包括RS编解码方案。在一些方面中,内层编解码方案包括极化编解码方案。
最外层码解码:
图14示出了根据本公开的各方面的外层解码图的示例。所示的示例包括第一解码器1400、第二解码器1405、第三解码器1410和第四解码器1415。如在本文中描述的,解码器可以被配置为使用包括外层编解码方案、中间编解码方案和内层编解码方案的分层编解码方案来解码信息,其中,当在使用中间编解码方案对码字块的解码中检测到错误时,使用来自外层编解码方案的奇偶校验比特,以及其中,使用内层编解码方案对码字块中的码字行解码。在一些方面中,解码器被配置为针对外层编解码方案执行软RS算法。
本公开的一个或多个实施例包括具有级联纠错编解码方案的解码器。例如,每个块(例如,每个4KB SPolar块)可以独立于HSPolar码中的其他SPolar块进行解码。在检测到错误的情况下,SPolar向其他SPolar块请求全局奇偶校验。在一些情况下,SPolar从HSPolar结构中提取全局奇偶校验。在一些示例中,由于解码过程的多级性质,该结构(例如,4x4KB结构)可能没有被完全地解码。解码的SPolar块使用全局奇偶校验用于解码。其他SPolar块(例如,辅助块)可以从已经提取的解码SPolar本身请求全局奇偶校验(例如,在一些情况下,解码的SPolar块由其他SPolar块提取)。在一些示例中,其他SPolar块可以被视为在HSPolar码的3D结构视图中的不同SPolar码之间的深度轴上传递消息。例如,可以解码SPolar#0。在解码过程中检测到错误的情况下,其他SPolar解码器相互作用以供给全局奇偶校验(例如,其方面在图14中示出)。
图15示出了根据本公开的各方面的外层解码过程的示例。所示的示例包括2D解码器1500和3D解码器1505(例如,其可以是参考图14描述的解码器的示例)。在一些情况下,码字(例如,4KB用户数据与开销(OH))被提供给2D一般性的级联码,以经由2D解码器1500对码字解码。在错误的情况下,码字被传递到3D一般性的级联码(例如,3D解码器1505),其使用来自分层码的剩余部分的附加信息(例如,3D解码器1505可以利用来自分层码的剩余部分(3x(4KB+OH))的边信息)。3D级联码处的失败被呈现为失败标志。替选地,用户信息(例如,4KB的用户信息)被成功解码。
中间码解码:
在一些方面中,解码器被配置为执行针对中间编解码方案配置的RS算法,其中,中间编解码方案的RS算法被配置为与内层编解码方案(例如,其中,解码器被配置为针对内层编解码方案使用极化编解码方案)一起使用。
本公开的一个或多个实施例包括对SPolar码的解码(例如,通过从第一级进行到最后一级)。解码器按级进行,在不失一般性的情况下,考虑第一块。解码过程在级0开始(例如,在C0下解码行)。接下来,使用S-RS码(例如,S域)来解码整个列(例如,C1的列)。一旦列被成功地解码,解码过程对于其他级相似地继续。在通过S-RS码解码失败的情况下,使用HSPolar结构。如果所有级都成功地解码,则解码器宣布成功。
RS
当在某一级的RS中存在失败时,可以执行软RS解码(而不是最小距离内的标准RS解码)。例如,在某些RS符号假设具有弱的可靠性的情况下,单个替选的RS符号假设可以被用于RS的解码。
在一些示例中,快速追踪(Fast Chase)算法是一种有效地扫描选项的算法,并且这种效率是通过扫描的以下属性实现的。扫描的一个属性使得:当从一个向量假设行进到另一向量假设时,使用先前的计算(更具体地,伯利坎普-梅西(Berlekamp-Massey)的输出),并且仅修改针对新向量假设的所需的差异。扫描的另一属性是,其不需要针对被扫描的每个候选进行搜索,例如钱氏(Chien)搜索(例如,用于寻找ELP的根)。在单个RS解码中,可以实现搜索以检查解码是否成功(除了找到错误位置之外)。但是在快速追踪扫描中,即使向量假设的RS解码成功,扫描也可以在没有搜索的情况下继续。概率指示告知是否执行搜索。其可能有假的警报,但是没有错误地纠正(mis-correct)。
因此,期望扫描(例如,通过树扫描)向量假设,其中存在改变的单个RS符号。使用这样的扫描(例如,树扫描),在每个步骤中,可以对是否擦除RS符号而不是用其替代假设符号来替换它进行选择。在扫描成功地解码多个码字的情况下,可以选择最可能的码字。在一些方面中,可以实现用于相邻误差定位算法的柯特(Koetter)迭代。
最内层码解码:
图16示出了根据本公开的各方面的内层解码过程的示例。所示的示例包括低复杂度解码器1600和高复杂度解码器1605。在一些方面中,本文中描述的解码器包括低复杂度极化解码器1600和高复杂度极化解码器1605(例如,对于内层编解码方案)。例如,在接收的码字没有被低复杂度解码器1600成功地决定的情况下(例如,在低复杂度解码器1600解码失败的情况下),接收的码字可以被高复杂度解码器1605解码。如果低复杂度解码器1600和高复杂度解码器1605中的任一个能够成功地解码接收的码字,则码字(例如,用户数据)可以被成功地解码。否则,可能会导致失败标志。
图16可以示出组合低时延解码器和高时延解码器的方面。例如,为了实现良好的吞吐量和时延以及良好的FER两者,低时延解码器(例如,具有相当高的FER)可以与高时延解码器(例如,具有目标FER)结合。在一些情况下,高复杂度解码器可以包括步进列表解码器、顺序解码器等。此外,低复杂度解码器可以包括简化的连续消除、置信传播等。
本文中所描述的说明和附图代表示例配置,并且不代表权利要求的范围内的所有实现方式。例如,操作和步骤可以被重新排列、组合或以其他方式修改。另外,结构和设备可以以框图的形式表示,以代表组件之间的关系并且避免模糊所描述的概念。相似的组件或特征可以具有相同的名称,但是可以具有与不同的附图相对应的不同的附图标记。
对本公开的一些修改对于本领域技术人员可能是清晰的,并且在不脱离本公开的范围的情况下,本文中定义的原理可以应用于其他变型。因此,本公开不限于在本文中描述的示例和设计,而是符合与在本文中公开的原理和新颖特征一致的最宽范围。
所描述的系统和方法可以由包括通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立门或晶体管逻辑、分立硬件组件或其任意组合的设备来实现或执行。通用处理器可以是微处理器、常规处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合(例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器结合有DSP核心、或者任何其他这样的配置)。因此,本文中描述的功能可以在硬件或软件中实现,并且可以由处理器、固件或其任意组合来执行。如果在由处理器执行的软件中实现,功能可以以指令或代码(code)的形式存储在计算机可读介质上。
计算机可读介质包括非暂时性计算机存储介质和通信介质两者,通信介质包括便于代码或数据的传递的任何介质。非暂时性存储介质可以是可以由计算机访问的任何可用介质。例如,非暂时性计算机可读介质可以包括随机存取存储器(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.根据权利要求1所述的方法,还包括:
使用中间编解码方案交替地编码所述信息比特的块的列和行。
4.根据权利要求1所述的方法,还包括:
使用内层编解码方案对包括所述信息比特的一部分的行、所述第一奇偶校验比特的一部分、所述第二奇偶校验比特的一部分和来自先前行的所述第三奇偶校验比特的第一部分进行编码,以获得编码行和针对下一行的所述第三奇偶校验比特的第二部分。
5.根据权利要求1所述的方法,其中:
所述外层编解码方案包括里德-所罗门编解码方案。
6.根据权利要求1所述的方法,其中:
所述中间编解码方案包括里德-所罗门编解码方案。
7.根据权利要求1所述的方法,其中:
所述内层编解码方案包括极化编解码方案。
8.一种解码方法,包括:
从存储器设备检索码字;
将所述码字划分为多个码字块;
使用中间编解码方案对所述多个码字块中的码字块解码;
确定使用中间编解码方案对所述码字块解码失败;
基于确定使用中间编解码方案对所述码字块解码失败,根据外层编解码方案从其他码字块获得奇偶校验比特;
将所述码字块划分为多个码字行;
使用内层编解码方案对所述多个码字行中的码字行解码;以及
基于对所述码字行解码,传送来自所述存储器设备的所述码字的信息比特。
9.根据权利要求8所述的方法,还包括:
基于确定使用外层编解码方案对所述码字解码失败,使用外层编解码方案执行所述码字的软解码。
10.根据权利要求8所述的方法,还包括:
使用内层编解码方案的低复杂度解码器对所述码字行解码;
确定使用所述低复杂度解码器对所述码字行解码失败;以及
使用高复杂度解码器对所述码字行解码。
11.根据权利要求10所述的方法,其中:
所述低复杂度解码器包括连续消除解码器或置信传播解码器。
12.根据权利要求10所述的方法,其中:
所述高复杂度解码器包括步进列表解码器或顺序解码器。
13.根据权利要求8所述的方法,其中:
所述外层编解码方案包括里德-所罗门编解码方案。
14.根据权利要求8所述的方法,其中:
所述中间编解码方案包括里德-所罗门编解码方案。
15.根据权利要求8所述的方法,其中:
所述内层编解码方案包括极化编解码方案。
16.一种编解码装置,包括:
存储器设备;
编码器,被配置为使用包括外层编解码方案、中间编解码方案和内层编解码方案的分层编解码方案对信息编码以用于在存储器设备中的存储;以及
解码器,被配置为使用所述分层编解码方案来对信息解码,其中,当在使用中间编解码方案对码字块解码中检测到错误时,使用来自外层编解码方案的奇偶校验比特,并且其中,使用内层编解码方案以对所述码字块的码字行解码。
17.根据权利要求16所述的装置,其中:
所述解码器被配置为针对外层编解码方案执行软里德-所罗门算法。
18.根据权利要求16所述的装置,其中:
所述解码器被配置为执行针对中间编解码方案所配置的里德-所罗门算法,其中,中间编解码方案的里德-所罗门算法被配置为与内层编解码方案一起使用。
19.根据权利要求16所述的装置,其中:
所述解码器被配置为针对内层编解码方案使用极化编解码方案。
20.根据权利要求16所述的装置,其中:所述解码器包括用于内层编解码方案的低复杂度极化解码器和高复杂度极化解码器。
CN202211640311.5A 2021-12-28 2022-12-20 使用多级级联码的分层纠错码解码 Pending CN116361064A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/646,156 2021-12-28
US17/646,156 US11581906B1 (en) 2021-12-28 2021-12-28 Hierarchical error correction code decoding using multistage concatenated codes

Publications (1)

Publication Number Publication Date
CN116361064A true CN116361064A (zh) 2023-06-30

Family

ID=85198807

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211640311.5A Pending CN116361064A (zh) 2021-12-28 2022-12-20 使用多级级联码的分层纠错码解码

Country Status (3)

Country Link
US (1) US11581906B1 (zh)
KR (1) KR20230100620A (zh)
CN (1) CN116361064A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230361788A1 (en) * 2022-05-04 2023-11-09 Qualcomm Incorporated Polarization adjusted channel coding design for complexity reduction
US20240103741A1 (en) * 2022-09-26 2024-03-28 Micron Technology, Inc. Providing multiple error correction code protection levels in memory

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101570472B1 (ko) * 2009-03-10 2015-11-23 삼성전자주식회사 연접 부호화 및 복호화 구조를 갖는 데이터 처리 시스템
US8671326B1 (en) * 2011-05-16 2014-03-11 Sk Hynix Memory Solutions Inc. Concatenated codes for recovering stored data
US8862960B2 (en) * 2011-10-10 2014-10-14 Lsi Corporation Systems and methods for parity shared data encoding
US9461671B1 (en) * 2011-10-10 2016-10-04 Marvell International Ltd. Method and apparatus for power conservation in LDPC decoding
US20150256204A1 (en) * 2014-03-07 2015-09-10 Kabushiki Kaisha Toshiba Memory controller, storage device and memory control method
US10108489B2 (en) * 2015-10-28 2018-10-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for efficient soft data based flash memory data recovery
US10256843B2 (en) * 2017-06-09 2019-04-09 Western Digital Technologies, Inc. Systems, methods, and devices for encoding and decoding data using multi-layer integrated interleaved codes
KR20210051668A (ko) * 2019-10-31 2021-05-10 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 모듈
KR20210089016A (ko) * 2020-01-07 2021-07-15 삼성전자주식회사 메모리 컨트롤러 및 메모리 시스템

Also Published As

Publication number Publication date
KR20230100620A (ko) 2023-07-05
US11581906B1 (en) 2023-02-14

Similar Documents

Publication Publication Date Title
CN103377694B (zh) 控制非易失性存储设备的操作方法以及映射图案选择方法
CN110444246B (zh) 用于存储器系统的相邻辅助校正错误恢复及其方法
CN106169312B (zh) 用于快闪存储的广义乘积码
KR101990971B1 (ko) 메모리, 메모리 시스템, 및 메모리에 대한 에러 검출/정정 방법
CN109428606B (zh) 具有ldpc解码器的存储器系统及其操作方法
KR102275717B1 (ko) 플래시 메모리 시스템 및 그의 동작 방법
US11387848B1 (en) Hierarchical error correction code
CN116361064A (zh) 使用多级级联码的分层纠错码解码
KR102257050B1 (ko) 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US11050438B2 (en) Memory controller
CN110444240B (zh) 存储器系统的编码器和解码器及其方法
US10846172B2 (en) Encoding method and system for memory device including QLC cells
US9570174B2 (en) Coding method and decoding method in memory system
CN113611350A (zh) 移动数据存储
CN111540393B (zh) 用于基于字线分组的读取操作的存储器系统和方法
KR102314481B1 (ko) Siso 복호 방법, 디코더 및 반도체 메모리 시스템
CN110277124B (zh) 具有混合解码方案的存储器系统及其操作方法
CN116153364A (zh) 估计非参数化最佳读取阈值的系统和方法
US11527299B2 (en) Polar neural network decoder for memory devices
CN113936715A (zh) 使用域变换的读取阈值优化系统和方法
CN110569143B (zh) 用于存储器系统的解码器及其方法
CN112416298B (zh) 闪速存储器的基于原始读取的物理不可克隆功能
CN110047554B (zh) 具有超级芯片删除恢复的存储器系统及其操作方法
KR20210148942A (ko) 저전력 ecc 장치 및 이의 동작 방법
KR20220127168A (ko) 다중 임계값-전문가 기계 학습 모델을 사용한 노이즈 제거

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication