CN104220990A - 在纠错期间保存计算资源 - Google Patents

在纠错期间保存计算资源 Download PDF

Info

Publication number
CN104220990A
CN104220990A CN201280071809.2A CN201280071809A CN104220990A CN 104220990 A CN104220990 A CN 104220990A CN 201280071809 A CN201280071809 A CN 201280071809A CN 104220990 A CN104220990 A CN 104220990A
Authority
CN
China
Prior art keywords
probability
tuple
iterative decoder
bit
storage
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.)
Granted
Application number
CN201280071809.2A
Other languages
English (en)
Other versions
CN104220990B (zh
Inventor
Z.S.郭
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN104220990A publication Critical patent/CN104220990A/zh
Application granted granted Critical
Publication of CN104220990B publication Critical patent/CN104220990B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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/2948Iterative decoding
    • 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/2957Turbo codes and decoding
    • 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/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4138Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • 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/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/65253GPP LTE including E-UTRA
    • 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/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard
    • H03M13/6527IEEE 802.11 [WLAN]
    • 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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • 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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6588Compression or short representation of variables

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本公开的实施例描述了用于执行数据解码和纠错的装置、方法、计算机可读介质和系统配置。在各种实施例中,可以例如由迭代解码器接收编码数据的多个比特。在各种实施例中,迭代解码器可以生成m个元组的集合A,集合A中的每个元组包括包含编码数据的比特组的符号和与该符号相关联的概率。在各种实施例中,可以使用m个元组的集合对编码数据进行解码。在各种实施例中,这可以包括:与分配用于与集合A中第二元组相关联的概率的存储相比,分配更少的比特给与集合A中第一元组相关联的概率的存储。可以描述并且/或者要求保护其它实施例。

Description

在纠错期间保存计算资源
技术领域
本发明的实施例一般涉及数据处理领域,并且更具体而言涉及在纠错期间保存计算资源。
背景技术
本文中提供的背景描述出于一般地呈现本公开的上下文的目的。当前指定的发明者的工作,到其在这个背景部分被描述的程度,以及在提交时可以不以其它方式取得现有技术资格的描述的方面,既没有明确地也没有隐含地被承认为针对本公开的现有技术。除非在本文中以其它方式指示,这个部分中描述的方法对于本公开中的权利要求不是现有技术,并且也没有通过包含在这个部分中而被承认是现有技术。
纠错码(“ECC”)解码器可以被用来对信道上的也被称为“码字”的编码数据进行解码。例如,存储器控制器可以使用ECC解码器来处理比特错误,并且恢复与在非易失存储器(“NVM”)的管芯中存储的ECC码字相关联的数据。作为另一示例,ECC解码器可以被用来处理比特错误并且恢复与有线或者无线通信信道上的编码的入局数据相关联的数据。
迭代解码器,例如非二进制低密度奇偶校验(“LDPC”)解码器,可以处理码字多次。每次迭代可以使码字更接近原始数据。在称为“扩展的最小和”的迭代解码的一种形式中,符号和符号正确的相关联概率可以在可变节点和对应于可变节点间关系的校验节点之间传递。在处理期间,符号和相关联概率可以被存储在各种形式的存储器中。
附图说明
实施例通过结合附图的以下详细描述将易于被理解。为了便于这个描述,相似参考标号标明相似结构要素。实施例在附图中以示例的方式而不是以限制的方式进行说明。
图1根据各种实施例示意性地描绘具有包括迭代解码器的存储器控制器的示例固态驱动器。
图2根据各种实施例示意性地描绘比特可以如何被分配给与在迭代解码期间使用的比特组相关联的概率的存储的示例。
图3根据各种实施例示意性地描绘与比特组相关联的概率可以如何在迭代解码期间被存储。
图4根据各种实施例示意性地描绘示例方法。
图5根据各种实施例示意性地描绘示例系统。
具体实施方式
在以下的详细描述中,对形成其一部分的附图进行参考,其中相似标号通篇标明相似部分,并且在附图中以说明的方式示出可以实践的实施例。要理解,可以使用其它实施例并且可以实施结构或逻辑的改变。因此,以下的详细描述不以限制的意义理解。
各种操作可以以最有助于理解所要求保护的主题的方式被依次描述为多个分立的动作或操作。但是,描述的顺序应该不被解释为意味着这些操作必然是顺序相关的。具体来说,可以不以陈述的顺序执行这些操作。描述的操作可以以不同于所述实施例的顺序来执行。可以执行各个附加操作,并且/或者所述操作可以在附加实施例中省略。
出于本公开的目的,短语“A和/或B”意味着(A)、(B)或者(A和B)。出于本公开的目的,短语“A、B和/或C”意味着(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或者(A、B和C)。
本描述可以使用短语“在实施例中”或者“在多个实施例中”,它们可以各自指的是相同或不同实施例中的一个或多个。此外,术语“包括”、“包含”、“具有”等在针对本公开的实施例使用时,是同义的。
在本文中使用时,术语“模块”可以指或者包括专用集成电路(“ASIC”)、电子电路、执行一个或多个软件或固件程序的处理器(共享的、专用的或者组)和/或存储器(共享的、专用的或者组)、组合逻辑电路、和/或提供所述功能性的其它合适组件,或者是其一部分。在本文中使用时,“计算机实现的方法”可以指由一个或多个处理器、具有一个或多个处理器的计算机系统、例如智能电话的移动装置(其可以包括一个或多个处理器)、平板计算机、膝上型计算机、机顶盒、游戏控制台等执行的任何方法。
在执行非二进制低密度奇偶校验(“LDPC”)解码器中涉及的所有操作中,与校验节点和/或基本校验节点的运算相关联的操作可以要求最多资源,例如各种类型的存储器。因此,在本文中描述用于降低与迭代解码相关联的存储器使用从而降低计算资源使用的各种技术。
现在参考图1,存储装置8,这里以作为固态驱动器(“SSD”)的形式示出,可以包括存储器控制器10。存储器控制器10又可以包括配置成对非易失存储器16的信道14上的例如“码字”的编码数据进行解码的迭代解码器12。在各种实施例中,存储器控制器10可以与迭代解码器12分离但是可在操作上耦合。在各种实施例中,NVM 16和存储器控制器10可以形成其它类型的存储装置(例如硬盘驱动器(“HDD”))的整体部分。在各种实施例中,迭代解码器12可以是LDPC解码器,并且信道14上的码字可以已被采用LDPC编码器(未示出)进行编码。还可以使用其它迭代编码/解码方案。
在各种实施例中,存储装置8可以配置成耦合到主计算装置(未示出),例如各种计算和/或消费者电子装置/设备,包括但不限于桌上型、膝上型或者平板计算机。为此,接口18可以包括用于将存储装置10耦合到主计算装置的任何合适接口,例如但不限于,串行高级技术附连(“SATA”)接口、串行附连SCSI(“SAS”)接口、通用串行总线(“USB”)接口、外围控制接口(“PCI”)或者其它合适的装置接口。在各种实施例中,接口18可以在操作上将存储装置10耦合到总线20,总线20又可以在操作上耦合到主计算装置的其它组件(未示出)。在各种实施例中,总线20可以是SATA总线。
除了存储器的信道外,在各种其它实施例中,信道14还可以是能够存储或者传送数据的任何介质,包括但不限于有线或者无线通信信道。例如,LDPC解码可以被用于各种无线通信标准,例如Wi-Fi(IEEE 802.11族)、WiMAX(IEEE 802.16族)、10吉比特以太网(“10GE”或者“10GbE”)等。LDPC也可能被用于其它无线标准,例如长期演进(“LTE”)、3G、4G、5G及以上。在此类情形中,信道14可以保持通过此类无线介质接收的LDPC编码的数据。
不管信道14的性质,迭代解码器12可以配置成在多个可变节点22中划分码字。在二进制LDPC解码器中,每个可变节点22可以是存储逻辑1或者逻辑0的单个比特。在例如图1中迭代解码器12的非二进制LDPC解码器中,每个可变解码器22可以代表一组比特,并且每个组可以形成q进制符号。在任一情形中,可变节点22可以通过多个校验节点24彼此相关或者彼此可相关。
作为迭代解码器12的输入,可以生成软信息,例如每个比特和/或比特组正确的概率。例如,各种参考电压可以被施加到非易失存储器的单元,以确定该单元的数据的初始读取正确的概率。在单级单元(“SLC”)实施例中,单元可以保持单比特的数据(例如0或者1)。在多级单元(“MLC”)实施例中,多于1个比特可以被存储在每个单元中,并且多个比特的值可以通过在多级电荷之间进行选择来确定以应用到该单元的浮动栅。
符号和该符号正确的概率在本文中可以被称为“元组”(<符号,概率>)。在各种实施例中,概率可以以对数形式表示为例如对数密度率(“LDR”)。在各种实施例中,出于各种解码目的,可以例如由迭代解码器12使用具有最高概率的m个元组。在各种实施例中,m可以是大于0的整数(                                                ),例如在1和24或者以上之间的任何整数。
在各种情形中,例如在LDPC编码的数据的迭代解码期间,m个元组(其如上所指出的可以在本文中被称为“元组”)的符号和相关联概率可以被存储在各种类型的存储器(例如处理器上的低级高速缓冲存储器、寄存器等)中。但是,这些元组中的一些可以具有低的概率(例如它们不太可能正确)。
因此,在各种实施例中,为了在解码期间保存计算资源,与被分配给相对高的概率的存储相比,迭代解码器12可以分配更少比特给相对低的概率的存储。例如,与分配用于和集合A的第二元组相关联的概率的存储相比,迭代解码器12可以分配更少比特给与集合A的第一元组相关联的概率的存储。更一般地,在各种实施例中,集合A的m个元组可以按照其相应的概率进行排序,并且在与集合A的元组相关联的概率降低时,迭代解码器12可以分配数量逐渐降低的比特给与集合A的元组相关联的概率的存储。
在图2中看到这种情形的一个示例,图2描绘示出分配给与24个排序元组的集合相关联的概率的比特的数量的列表。具有最高相关联概率的元组首先到来,并且可以具有分配的最多比特。例如,与元组0和1相关联的概率可以被分配6比特。元组2的相关联概率被分配4比特。与元组3和4相关联的概率被分配3比特,以此类推。具有最低概率的符号可以被分配单个比特用于存储。
如果与一个或多个元组相关联的概率要求多于预定数量的比特以便被表示,则在各种实施例中该概率可以被截短。例如,与符号19相关联的概率可以是3,其将意味着单个比特不足以表示它(将要求2比特)。因此,该概率可以被截短到由分配的比特的数量可表示的最高值,在这个情形中为1比特。尽管这可以导致数据丢失,但是因为这些符号具有相对低的概率,因此该丢失对解码过程的影响可以最小。
在各种实施例中,可以存储概率的差,而不存储实际概率。在各种实施例中,对于m个元组的集合的每个元组Ax,其中A0是概率大于或者等于集合A中所有其它元组的概率的元组,并且其中x是整数并且,迭代解码器12可以将Ax的概率存储为Ax的概率和Ax-1的概率之差。由于所有差可以具有负号,因此在各种实施例中,将Ax的概率存储为Ax的概率和Ax-1的概率之差可以包括存储Ax的概率和Ax-1的概率之差的绝对值。
在图3中看到这种情形的一个示例。在顶端,四个元组(<符号0, 60>、<符号1, 10>、<符号3, 3>和<符号2, -25>)按照它们的LDR(概率)被排序左到右示出。6比特被用来存储与这些元组相关联的概率(在图3中在括号内示出)。使用公开的技术,计算资源可以通过以例如在图3底部所示方式的方式存储这些元组和其相应概率而得以保存。在底部,左边的第一元组<符号0, 60>和左边的第二元组<符号1, -50>仍然被分配6比特用于其概率的存储。但是,与第二元组相关联的概率现在被表示为与第一元组的差分,而不是被表示为它的实际值(10)。与左边的第三元组相关联的概率可以被类似地表示为差分,除了5而不是6比特被分配给概率的存储以外。只有4比特被分配给与最右边元组<符号2, -25>相关联的差分概率的存储。因此,与该最右边元组相关联的概率被首先确定为差分(3和-25之差为-28),并且接着被截短到用其所分配比特可表示的最高值。这些差的符号可以被丢弃,因为可以假定每个符号为负。
作为附加或者备选,情况可能是若干元组可以具有相同或者基本类似的概率。在各种情形中,这可以是至少部分由于上文所述的比特分配和截短。无论如何,在各种实施例中,概率的单个实例可以与多个元组相关联,尤其是朝元组的排序集合中具有最低概率的末端,而不为每个元组存储单独的概率(实际的或者之间的差分)。在与上文所述的技术相结合时,这可以保存甚至更多的计算资源。
例如,假定与m=13个元组相关联的以下LDR(或者LDR之差的绝对值):{99, 70, 55, 48, 45, 40, 40, 40, 39, 39, 39, 39, 38}。在各种实施例中,存储单元可以被多个元组共享。在这个示例中,单个存储单元可以被用来存储单个概率(例如39),并且最后八个元组可以把这个相同的存储单元(例如使用指针)称为其相应的概率。在这个示例中,最后八个LDR在值上彼此相对靠近,但是那不意味着进行限制。单个存储单元可以被用来为多个元组存储LDR,即使在这些概率不同的情况下,尤其是在共享存储单元的元组是集合中具有最低概率的那些元组时。
图4根据各种实施例描绘示例方法400,其可以例如由例如图1中迭代解码器120的迭代解码器实施以对信道上的编码数据进行解码。在框402,迭代解码器可以将信道上的编码数据作为输入进行接收。例如并且如上论述的,迭代解码器可以从非易失存储器或者从有线或无线通信信道接收编码数据。在框404,m个元组的集合A可以例如由迭代解码器12生成,其中每个元组包括符号和该符号正确的概率(例如LDR)。
在框406,m个元组的集合A可以例如由解码器12按照其相应的概率进行排序。例如,集合A可以被排序,使得具有最高概率的元组在位置0(例如图3中最左边)或者在位置m-1(例如图3中最右边)。
在框408,可以例如由迭代解码器12在与集合A的元组相关联的概率降低时分配数量逐渐降低的比特给与集合A的元组相关联的概率的存储。在各种实施例中,在框410,与每个元组(在一些情形中,具有最高相关联概率的元组除外)相关联的概率可以例如被迭代解码器12存储为和该元组相关联的概率与紧接的前一个元组的概率之差的绝对值。
在框412,在各种实施例中,存储概率的存储单元可以例如由迭代解码器12与集合A的多于一个元组相关联。例如,存储概率的存储单元可以与集合A中具有相等或者接近相等的相关联概率的两个或多个元组相关联。
在框414,与元组相关联的概率可以例如被迭代解码器12截短,如果与该元组相关联的概率要求多于分配给其存储的比特的数量以便被表示。例如,在图3中,最后一个元组<符号2, -28>被表示为<符号2, -15>,因为15是用分配给该元组的概率的存储的4比特可表示的最大数字。在框416,编码数据可以使用m个元组和其相关联概率进行解码,所述概率可以被存储为差、被截短和/或被以更少比特表示,如上文所述。
图5根据各种实施例示出计算装置500。计算装置500容纳印刷电路板(“PCB”)502。PCB 502可以包括若干组件,包括但不限于处理器504和至少一个通信芯片506。处理器504可以物理并且电耦合到PCB 502。在各种实施例中,至少一个通信芯片506也可以物理并且电耦合到PCB 502。在又一些实现中,通信芯片506可以是处理器504的一部分。在各种实施例中,处理器504可以与其它组件集成在同一管芯上以形成片上系统(“SoC”)。
根据其应用,计算装置500可以包括可以或者可以不物理和电耦合到PCB 502的其它组件。这些其它组件包括但不限于易失存储器(例如DRAM 508)、非易失存储器(例如ROM 510)、闪速存储器512、存储器控制器513、图形处理器514、数字信号处理器(未示出)、加密处理器(未示出)、芯片集516、天线518、显示器(未示出)、触摸屏显示器520、触摸屏控制器522、电池524、音频编解码器(未示出)、视频编解码器(未示出)、功率放大器526、全球定位系统(“GPS”)装置528、罗盘530、加速度计(未示出)、陀螺仪(未示出)、扬声器532、照相机534和大容量存储装置(例如硬盘驱动器、密致盘(“CD”)、数字通用盘(“DVD”))(未示出)等。
通信芯片506可以实现有线和/或无线通信以便向并且从计算装置500传递数据。术语“无线”及其派生词可以被用来描述可以通过使用经由非固态介质的已调电磁辐射传送数据的电路、装置、系统、方法、技术、通信信道等。该术语不暗示相关联装置不包含任何电线,尽管在一些实施例中它们可能不包含。通信芯片506可以实施包括但不限于以下的若干无线标准或者协议中的任何一个:Wi-Fi(IEEE 802.11族)、WiMAX(IEEE 802.16族)、IEEE 802.20、长期演进(“LTE”)、Ev-DO、HSPA+、HSDPA+、HSUPA+、EDGE、GSM、GPRS、CDMA、TDMA、DECT、蓝牙、它们的派生,以及被命名为3G、4G、5G及以上的任何其它无线协议。计算装置500可以包括多个通信芯片506。例如,第一通信芯片506可以专用于较短程的无线通信,例如Wi-Fi和蓝牙,并且第二通信芯片506可以专用于较长程的无线通信,例如GPS、EDGE、GPRS、CDMA、WiMAX、LTE、Ev-DO及其它。
计算装置500的处理器504可以包括封装在处理器504内的集成电路管芯。在各种实施例中,处理器504的集成电路管芯可以包括一个或多个器件,例如晶体管或者金属互连,它们被形成以促进使用本文所述的一个或多个技术对码字的迭代解码。术语“处理器”可以指处理来自寄存器和/或存储器的电子数据以将那个电子数据转换为可以被存储在寄存器和/或存储器中的其它电子数据的任何装置或和装置的部分。
通信芯片506还可以包括封装在通信芯片506内的集成电路管芯。在各种实施例中,通信芯片506的集成电路管芯可以包括一个或多个器件,例如晶体管或者金属互连,它们被形成以促进码字的迭代解码。
在各种实现中,计算装置500可以是膝上型计算机、上网本、笔记本计算机、超级本计算机、智能手机、平板计算机、个人数字助理(“PDA”)、超级移动PC、移动电话、桌上型计算机、服务器、打印机、扫描仪、监视器、机顶盒、娱乐控制单元、数字照相机、便携式音乐播放器或者数字视频记录器。在又一些实现中,计算装置500可以是处理数据的任何其它电子装置。
以下段落描述各种实施例。在各种实施例中,可以例如由迭代解码器接收信道的编码数据的多个比特。在各种实施例中,可以例如由迭代解码器生成m个元组的集合A,集合A中的每个元组包括包含编码数据的比特组的符号和与该符号相关联的概率。在各种实施例中,可以例如由迭代解码器使用m个元组的集合对编码数据进行解码。这可以包括:和分配用于与集合A中第二元组相关联的概率的存储相比,分配更少的比特给与集合A中第一元组相关联的概率的存储。
在各种实施例中,可以例如由迭代解码器将集合A的m个元组按照其相应概率进行排序。在各种实施例中,对于m个元组中的每个元组Ax,迭代解码器可以将Ax的概率存储为Ax的概率和Ax-1的概率之差,其中A0是概率大于或者等于集合A中所有其它元组的概率的元组,并且其中x是整数并且1 ≤ x ≤ m-1。在各种实施例中,将Ax的概率存储为Ax的概率和Ax-1的概率之差可以包括存储Ax的概率和Ax-1的概率之差的绝对值。在各种实施例中,与第一元组相关联的概率可以小于与第二元组相关联的概率。
在各种实施例中,可以例如由迭代解码器将与第一元组相关联的概率截短,如果与第一元组相关联的概率要求多于预定数量的比特以便被表示。在各种实施例中,可以例如由迭代解码器将存储概率的存储单元与集合A的多于一个元组相关联。在各种实施例中,可以例如由迭代解码器分配单个比特用于存储与集合A中至少一个元组相关联的概率。在各种实施例中,可以例如由迭代解码器分配6比特用于存储与集合A中另一个元组相关联的概率,该另一个元组的概率大于与集合A中被分配了单个比特用于存储的至少一个元组相关联的概率。
在各种实施例中,在与集合A中的元组相关联的概率降低时,可以例如由迭代解码器分配数量逐渐降低的比特给与集合A中的元组相关联的概率的存储。在各种实施例中,迭代解码器可以是LDPC解码器。
用于执行上文所述技术的计算机可读介质(包括非暂时性计算机可读介质)、方法、系统和装置是本文公开的实施例的说明性示例。
尽管出于描述的目的在本文中说明和描述了某些实施例,但是计划实现相同目的的各种备选和/或等效实施例或实现可以替换所示和所述的实施例。这个申请意在覆盖本文论述的实施例的任何改编和变型。因此,显然意图是本文中所述的实施例仅受权利要求及其等同物限制。

Claims (40)

1.一种对信道上的编码数据进行解码的计算机实现的方法,包括:
由迭代解码器接收所述编码数据的多个比特;
由所述迭代解码器生成m个元组的集合A,集合A中的每个元组包括包含所述编码数据的比特组的符号和与所述符号相关联的概率;以及
使用m个元组的所述集合对所述编码数据进行解码,包括:与分配用于与所述集合A中第二元组相关联的概率的存储相比,分配更少比特给与所述集合A中第一元组相关联的概率的存储。
2.如权利要求1所述的计算机实现的方法,其中将集合A的所述m个元组按照其相应概率进行排序。
3.如权利要求2所述的计算机实现的方法,还包括:对于所述m个元组中的每个元组Ax,其中A0是概率大于或者等于集合A中所有其它元组的概率的元组,并且其中x是整数并且1 ≤ x ≤ m-1,由所述迭代解码器将Ax的概率存储为Ax的概率和Ax-1的概率之差。
4.如权利要求3所述的计算机实现的方法,其中将Ax的概率存储为Ax的所述概率和Ax-1的概率之差包括存储Ax的所述概率和Ax-1的所述概率之差的绝对值。
5.如权利要求1所述的计算机实现的方法,其中与所述第一元组相关联的所述概率小于与所述第二元组相关联的所述概率。
6.如权利要求5所述的计算机实现的方法,还包括:由所述迭代解码器将与所述第一元组相关联的所述概率截短,如果与所述第一元组相关联的所述概率要求多于预定数量的比特以便被表示的话。
7.如权利要求1所述的计算机实现的方法,还包括:由所述迭代解码器将存储概率的存储单元与所述集合A的多于一个元组相关联。
8.如权利要求1所述的计算机实现的方法,还包括:分配单个比特用于存储与所述集合A中至少一个元组相关联的概率。
9.如权利要求8所述的计算机实现的方法,还包括:分配6个比特用于存储所述集合A中另一个元组相关联的概率,所述另一个元组的概率大于与所述集合A中被分配了单个比特用于存储的所述至少一个元组相关联的所述概率。
10.如权利要求1所述的计算机实现的方法,还包括:在与所述集合A中的元组相关联的概率降低时,由所述迭代解码器分配数量逐渐降低的比特给与所述集合A中元组相关联的概率的存储。
11.如权利要求1-10中任一项所述的计算机实现的方法,其中所述迭代解码器是低密度奇偶校验解码器。
12.至少一种包括多个指令的机器可读介质,所述指令响应于在计算装置上被执行而引起所述计算装置执行如权利要求1-10中任一项所述的方法。
13.一种设备,配置成执行如权利要求1-10中任一项所述的方法。
14.一种系统,包括:
信道;以及
迭代解码器,用于对所述信道上的编码数据进行解码,所述迭代解码器配置成:
生成m个元组的集合A,集合A中的每个元组包括包含所述编码数据的比特组的符号和与所述符号相关联的概率;并且
使用m个元组的所述集合对所述编码数据进行解码,包括:与分配用于与所述集合A中第二元组相关联的概率的存储相比,分配更少比特给与所述集合A中第一元组相关联的概率的存储。
15.如权利要求14所述的系统,其中将集合A的所述m个元组按照其相应概率进行排序。
16.如权利要求15所述的系统,其中所述迭代解码器还配置成:对于所述m个元组中的每个元组Ax,其中A0是概率大于或者等于集合A中所有其它元组的概率的元组,并且其中x是整数并且1 ≤ x ≤ m-1,在所述系统的存储器中将Ax的概率存储为Ax的概率和Ax-1的概率之差。
17.如权利要求16所述的系统,其中所述迭代解码器还配置成:存储Ax的所述概率和Ax-1的概率之差的绝对值。
18.如权利要求14所述的系统,其中与所述第一元组相关联的所述概率小于与所述第二元组相关联的所述概率。
19.如权利要求18所述的系统,其中所述迭代解码器还配置成:将与所述第一元组相关联的所述概率截短,如果与所述第一元组相关联的所述概率要求多于预定数量的比特以便被表示的话。
20.如权利要求14所述的系统,其中所述迭代解码器还配置成:将存储概率的存储单元与所述集合A的多于一个元组相关联。
21.如权利要求14所述的系统,其中所述迭代解码器还配置成:分配单个比特用于存储与所述集合A中至少一个元组相关联的概率。
22.如权利要求21所述的系统,其中所述迭代解码器还配置成:分配6个比特用于存储所述集合A中另一个元组相关联的概率,所述另一个元组的概率大于与所述集合A中被分配了单个比特用于存储的所述至少一个元组相关联的所述概率。
23.如权利要求14所述的系统,其中所述迭代解码器还配置成:在与所述集合A中的元组相关联的概率降低时,分配数量逐渐降低的比特给与所述集合A中元组相关联的概率的存储。
24.如权利要求14-23中任一项所述的系统,还包括天线。
25.如权利要求14-23中任一项所述的系统,还包括触摸屏显示器。
26.如权利要求14-23中任一项所述的系统,其中所述信道包括通过所述系统的通信接口接收的数据。
27.如权利要求14-23中任一项所述的系统,其中所述信道包括所述系统的非易失存储器的一个或多个管芯。
28.如权利要求14-23中任一项所述的系统,其中所述迭代解码器是低密度奇偶校验解码器。
29.一种存储装置,包括:
非易失存储器;以及
存储器控制器,配置成:
生成m个元组的集合A,其中集合A中的每个元组包括包含存储在所述非易失存储器中的编码数据的比特组的符号和与所述符号相关联的概率;
将所述集合A的所述m个元组根据其相应概率进行排序;并且
基于m个元组的所述集合对所述编码数据进行解码,包括:与分配用于与所述集合A中第二元组相关联的概率的存储相比,分配更少比特给与所述集合A中第一元组相关联的概率的存储。
30.如权利要求29所述的存储装置,其中所述存储器控制器还配置成:对于所述m个元组中的每个元组Ax,其中A0是相关联概率大于或者等于集合A中所有其它元组的概率的元组,并且其中x是整数并且1 ≤ x ≤ m-1,将Ax的概率存储为Ax的概率和Ax-1的概率之差。
31.如权利要求30所述的存储装置,其中所述存储器控制器还配置成:存储Ax的概率和Ax-1的概率之差的绝对值。
32.如权利要求29所述的存储装置,其中与所述第一元组相关联的所述概率小于与所述第二元组相关联的所述概率。
33.如权利要求32所述的存储装置,其中所述存储器控制器还配置成:将与所述第一元组相关联的所述概率截短,如果与所述第一元组相关联的所述概率要求多于预定数量的比特以便被表示的话。
34.如权利要求29所述的存储装置,其中所述存储器控制器还配置成:将存储概率的存储单元与所述集合A的多于一个元组相关联。
35.如权利要求29所述的存储装置,其中所述存储器控制器还配置成:分配单个比特用于存储与所述集合A中至少一个元组相关联的概率。
36.如权利要求35所述的存储装置,其中所述存储器控制器还配置成:分配6个比特用于存储与所述集合A中另一个元组相关联的概率,所述另一个元组的概率大于与所述集合A中被分配了单个比特用于存储的所述至少一个元组相关联的所述概率。
37.如权利要求29所述的存储装置,其中所述存储器控制器还配置成:在与所述集合A中的元组相关联的概率降低时,分配数量逐渐降低的比特给与所述集合A中元组相关联的概率的存储。
38.一种对编码数据进行解码的计算机实现的方法,包括:
由迭代解码器接收所述编码数据;
由所述迭代解码器生成m个元组的集合A,集合A中的每个元组包括包含所述编码数据的比特组的符号和与所述符号相关联的概率;以及
由所述迭代解码器使用m个元组的所述集合对所述编码数据进行解码,包括:将存储概率的存储单元与所述集合A的多于一个元组相关联。
39.至少一种包括多个指令的机器可读介质,所述指令响应于在计算装置上被执行而引起所述计算装置执行如权利要求38所述的方法。
40.一种设备,配置成执行如权利要求38所述的方法。
CN201280071809.2A 2012-03-28 2012-03-28 对信道上的编码数据进行解码的方法和系统 Active CN104220990B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/031034 WO2013147776A1 (en) 2012-03-28 2012-03-28 Conserving computing resources during error correction

Publications (2)

Publication Number Publication Date
CN104220990A true CN104220990A (zh) 2014-12-17
CN104220990B CN104220990B (zh) 2017-04-12

Family

ID=49260841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280071809.2A Active CN104220990B (zh) 2012-03-28 2012-03-28 对信道上的编码数据进行解码的方法和系统

Country Status (3)

Country Link
US (1) US9048875B2 (zh)
CN (1) CN104220990B (zh)
WO (1) WO2013147776A1 (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6526531B1 (en) * 2000-03-22 2003-02-25 Agere Systems Inc. Threshold detection for early termination of iterative decoding
US6581182B1 (en) * 2000-05-15 2003-06-17 Agere Systems Inc. Iterative decoding with post-processing of detected encoded data
US20050021555A1 (en) * 2000-09-12 2005-01-27 Broadcom Corporation Parallel concatenated code with soft-in soft-out interactive turbo decoder
CN1578201A (zh) * 2003-07-03 2005-02-09 直视集团公司 通过ldpc解码器对低密度奇偶校验码进行编码
CN1954510A (zh) * 2004-05-12 2007-04-25 三星电子株式会社 用于编码和解码具有可变编码率的块低密度奇偶校验码的装置和方法
CN101505156A (zh) * 1998-11-05 2009-08-12 高通股份有限公司 高效迭代解码
CN101595644A (zh) * 2005-12-27 2009-12-02 Lg电子株式会社 使用信道码解码的设备和方法
US20100275089A1 (en) * 2009-04-27 2010-10-28 The Hong Kong University Of Science And Technology Iterative decoding of punctured low-density parity check codes by selection of decoding matrices
US20110126078A1 (en) * 2009-11-23 2011-05-26 Yeong-Luh Ueng Decoder and decoding method for low-density parity check codes constructed based on reed-solomon codes

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6029264A (en) * 1997-04-28 2000-02-22 The Trustees Of Princeton University System and method for error correcting a received data stream in a concatenated system
WO1999012265A1 (fr) * 1997-09-02 1999-03-11 Sony Corporation Codeur/decodeur turbo et procede de codage/decodage turbo
US6594318B1 (en) * 1999-12-02 2003-07-15 Qualcomm Incorporated Method and apparatus for computing soft decision input metrics to a turbo decoder
KR100374787B1 (ko) * 2000-01-18 2003-03-04 삼성전자주식회사 대역 효율적인 연쇄 티.씨.엠 디코더 및 그 방법들
US6865711B2 (en) * 2000-12-15 2005-03-08 Conexant Systems, Inc. System of and method for decoding trellis codes

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101505156A (zh) * 1998-11-05 2009-08-12 高通股份有限公司 高效迭代解码
US6526531B1 (en) * 2000-03-22 2003-02-25 Agere Systems Inc. Threshold detection for early termination of iterative decoding
US6581182B1 (en) * 2000-05-15 2003-06-17 Agere Systems Inc. Iterative decoding with post-processing of detected encoded data
US20050021555A1 (en) * 2000-09-12 2005-01-27 Broadcom Corporation Parallel concatenated code with soft-in soft-out interactive turbo decoder
CN1578201A (zh) * 2003-07-03 2005-02-09 直视集团公司 通过ldpc解码器对低密度奇偶校验码进行编码
CN1954510A (zh) * 2004-05-12 2007-04-25 三星电子株式会社 用于编码和解码具有可变编码率的块低密度奇偶校验码的装置和方法
CN101595644A (zh) * 2005-12-27 2009-12-02 Lg电子株式会社 使用信道码解码的设备和方法
US20100275089A1 (en) * 2009-04-27 2010-10-28 The Hong Kong University Of Science And Technology Iterative decoding of punctured low-density parity check codes by selection of decoding matrices
US20110126078A1 (en) * 2009-11-23 2011-05-26 Yeong-Luh Ueng Decoder and decoding method for low-density parity check codes constructed based on reed-solomon codes

Also Published As

Publication number Publication date
CN104220990B (zh) 2017-04-12
US9048875B2 (en) 2015-06-02
US20130339816A1 (en) 2013-12-19
WO2013147776A1 (en) 2013-10-03

Similar Documents

Publication Publication Date Title
US9583217B2 (en) Decoding method, memory storage device and memory control circuit unit
KR101668934B1 (ko) 분배된 코드워드 부분들
US9529666B2 (en) Decoding method, memory storage device and memory controlling circuit unit
US20130318395A1 (en) Reconstructing codewords using a side channel
KR101669379B1 (ko) 추정된 확률 밀도 함수에 기초한 중앙 판독 기준 전압 결정
KR102626162B1 (ko) 연산 복잡도를 감소시킬 수 있는 디코더의 동작 방법과 이를 포함하는 데이터 저장 장치의 동작 방법
US10204006B2 (en) Systems and methods for side data based soft data flash memory access
US9502104B2 (en) Multi-level cell (MLC) non-volatile memory data reading method and apparatus
US10193569B2 (en) Decoding method, memory storage device and memory control circuit unit
US20150186212A1 (en) Decoding method, memory storage device, and memory controlling circuit unit
US20170134049A1 (en) Decoding method, memory storage device and memory control circuit unit
US20140245096A1 (en) Single-bit error correction
US20170302299A1 (en) Data processing method, memory storage device and memory control circuit unit
US9621187B2 (en) Processing elementary check nodes of an iterative decoder
US11139044B2 (en) Memory testing method and memory testing system
CN105915234B (zh) 避免对涡轮乘积码误校正的方案
CN104220990A (zh) 在纠错期间保存计算资源
CN105938728B (zh) 用于近似平衡码的编码器和解码器设计
US9172399B2 (en) Updating variable nodes associated with an iterative decoder
JP6430740B2 (ja) ソリッドステートメモリシステムにおけるレイテンシーベースのデータ再利用のシステム及び方法
US20190114226A1 (en) Data encoding method, memory control circuit unit and memory storage device
CN116263749A (zh) 存储系统和控制其的方法以及存储装置和控制其的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant