解码方法及相关电路

文档序号:1187835 发布日期:2020-09-22 浏览:3次 >En<

阅读说明:本技术 解码方法及相关电路 (Decoding method and related circuit ) 是由 朱唐廷 于 2019-03-13 设计创作,主要内容包括:本发明公开了一电路以及一解码方法。该电路包含有一第一存储器、一解码器以及一控制电路。在该电路的操作中,该第一存储器用以接收一数据串流;该解码器用以接收该数据串流以依序形成多个讯框,并依序对该多个讯框进行解码以分别产生对应的多个码字;以及该控制电路用以根据该解码器对于一目前讯框的至少一先前讯框在完成解码操作时所使用的迭代圈数,以决定该目前讯框进行解码时所允许的最多迭代圈数。(The invention discloses a circuit and a decoding method. The circuit includes a first memory, a decoder and a control circuit. In operation of the circuit, the first memory is configured to receive a data stream; the decoder is used for receiving the data series flow to form a plurality of frames in sequence and decoding the frames in sequence to generate a plurality of corresponding code words respectively; and the control circuit is used for determining the maximum number of iterations allowed when the decoder completes the decoding operation for at least one previous frame of a current frame.)

解码方法及相关电路

技术领域

本发明涉及解码器,特别涉及一种包含低密度奇偶检查(Low-density parity-check,LDPC)解码器的电路。

背景技术

在数据传输系统中通常会设置有错误更正功能的解码器(error correctiondecoder)来消除传输过程中在通道因噪声/干扰(noise/interference)而导致的错误。对于LDPC解码器来说,其特征是具有迭代性(iterative)以及相信传递(beliefpropagation),以将含有机率信息的本质讯息(intrinsic message)按照特定交互连接的规则交换邻近节点机率信息后,推算出新的节点机率信息(亦可称为外部讯息(extrinsicmessage));之后再综合本质讯息与外部讯息以判断解码是否正确,若解码正确则终止解码操作并产生出正确的码字(codeword),而若是解码错误则继续进行迭代操作直至零错误(error free)。

理论上,对于没有陷入陷阱集合(trapping set)的本质讯息,且受传输干扰错误较多的讯框(frame),LDPC解码器只需要较多次的迭代操作便能完全除错。然而,实务上,受限于不同规格中对于传输递延时间的限制,LDPC解码器对于每一个讯框在解码过程中所允许的最多迭代圈数(iteration count)是有限制的,例如7~8次,以作为每一个讯框的最长解码时间。然而,经过实验统计结果来看,大多数的未受严重干扰的讯框只需要2~3次迭代操作即可解码成功(亦即,零错误),而受到严重干扰的讯框需要迭代的次数又可能会超过所允许的最多迭代圈数,因此,使用固定的迭代圈数来进行解码会使得少数受到严重干扰的讯框无法正确解码,致使解码后码字中的位元错误(bit error)增加,因而降低了解码效率。

发明内容

因此,本发明的目的之一在于提出一种解码方法及相关的电路,其可以动态地调整LDPC解码器对于每一个讯框进行解码时所允许的最多迭代圈数,以增加受到严重干扰的讯框解码成功的机率,来提高LDPC解码器的解码能力,以解决现有技术中所述的问题。

在本发明的一个实施例中,公开了一电路,其包含有一第一存储器、一解码器以及一控制电路。在该电路的操作中,该第一存储器用以接收一数据串流;该解码器用以接收该数据串流以依序形成多个讯框,并依序对该多个讯框进行解码以分别产生对应的多个码字;以及该控制电路用以根据该解码器对于一目前讯框的至少一先前讯框在完成解码操作时所使用的迭代圈数,以决定该目前讯框进行解码时所允许的最多迭代圈数。

在本发明的另一个实施例中,公开了一种解码方法,其包含有以下步骤:使用一第一存储器以接收一数据串流;自该第一存储器接收该数据串流以依序形成多个讯框,并依序对该多个讯框进行解码以分别产生对应的多个码字;以及根据对于一目前讯框的至少一先前讯框在完成解码操作时所使用的迭代圈数,以决定该目前讯框进行解码时所允许的最多迭代圈数。

附图说明

图1为根据本发明一实施例的电路的示意图。

图2为根据本发明一实施例的解码方法的流程图。

图3为根据本发明一实施例的电路接收数据串流的多个讯框并进行处理的时序图。

图4为根据本发明另一实施例的电路接收数据串流的多个讯框并进行处理的时序图。

符号说明

100 电路

110 解码器

112 输入缓冲器

114 解码电路

116 输出缓冲器

120 第一存储器

130 第二存储器

140 控制电路

Din 数据串流

S200~S218 步骤

F0~F3 讯框

CW0~CW2 码字

具体实施方式

图1为根据本发明一实施例的电路100的示意图。如图1所示,电路100包含了一解码器110、一第一存储器120、一第二存储器130以及一控制电路140,其中解码器110包含了一输入缓冲器112、一解码电路114以及一输出缓冲器116。在本实施例中,解码器110是一LDPC解码器、解码电路114为一LDPC解码电路、且电路100可应用在任何需要接收数据串流并进行解码的电子装置中,例如可应用于一网络卡。

在本实施例中,电路100用来接收一数据串流Din以依序产生多个码字(codeword)至后端电路,且通过对于第一存储器120以及一第二存储器130的特殊存取方法,控制电路140可以动态地决定解码电路114对于每一个讯框在进行解码时所允许的最多迭代圈数,以提高LDPC解码器的解码能力。详细来说,同时参考图1的电路架构以及图2所示的解码方法的流程图,在步骤S200,流程开始。在步骤S202,电路100开始接收一数据串流Din并存储在第一存储器120中,且控制电路140持续监控第一存储器120内所存储的数据量大小。在步骤S204,当第一存储器120内的数据量高于一临界值时,控制电路140传送讯息给解码器110,以使得解码器110使用较高的读取速率来读取第一存储器120内的数据并存储在输入缓冲器112中。举例来说明步骤S202、S204,假设数据串流120写入至第一存储器120的速率是fs,且解码电路114的一个解码单元(一个讯框)的大小为n个本质讯息(举例来说,在10G BASE-T以太网络LDPC解码器相关领域中,一个讯框大小为2048个带有机率信息的对数似然比(Log-likelihood Ratio,LLR)),则当第一存储器120所存储的数据量到讯框的一半时(亦即,临界值为n/2个本质讯息)时,解码器110便可使用2*fs的读取速率以读取第一存储器120内的本质讯息,其中n为正整数。需注意的是,上述fs、2*fs以及临界值为n/2个本质讯息只是作为范例说明,而并非是本发明的限制,只要解码器110在第一存储器120内的数据量高于临界值时才开始读取数据,且输入缓冲器112自第一存储器120接收数据串流Din的速率高于第一存储器120自外部接收数据串流Din的速率,其相关速率以及临界值可以根据实际状况而有不同的设定。

在步骤S206,当输入缓冲器112已经存储到一个讯框(例如,2048个本质讯息)时,且输出缓冲器116内有空间存储解码该讯框所产生的码字时,则解码电路114便可对该讯框进行迭代解码操作,在一个迭代操作中,解码电路114将含有机率信息的本质讯息按照特定交互连接的规则交换邻近节点机率信息后,推算出新的节点机率信息,以产生修改后的多个本质讯息。在步骤208,解码电路114根据修改后的多个本质讯息以判断本次的迭代操作是否解码成功(亦即,零错误),若解码成功则流程进入步骤S212;若解码失败则进入步骤S210。在步骤S210,解码电路114判断该讯框已经进行的迭代操作次数是否已到达所允许的最多迭代圈数,若是,则流程进入步骤S212;若否,则流程回到步骤S206以对该讯框进行下一次的迭代操作来进行解码。

在步骤S212,解码电路114根据解码结果以产生该讯框所对应的多个码字。在步骤S214,该讯框所对应的多个码字被暂时存储在输出缓冲器116中。在步骤S216,解码器110将存储在输出缓冲器116中的多个码字传送至第二存储器130,且存储在第二存储器130中的多个码字等到适合的时机依序被传送至一后端电路中。在本实施例中,解码器110将该多个码字写入至第二存储器130的速率高于第二存储器130将该多个码字传送至该后端电路的速率。

在步骤S218,控制电路140根据解码电路114在该讯框完成解码操作时所使用的迭代圈数,以决定出解码电路114在解码下一个讯框时所允许的最多迭代圈数。在一实施例中,控制电路140可以根据第N~(N+K)个讯框在完成解码操作时所使用的迭代圈数来决定出第(N+K+1)个讯框在进行解码时所允许的最多迭代圈数,其中K可以为任意适合的正整数,例如K可以等于1、2或3。具体来说,假设第N~(N+K)个讯框在完成解码操作时所使用的迭代圈数的总合小于一临界值,则控制电路140可以增加第N~(N+K)个讯框在进行解码时所允许的最多迭代圈数,例如设定第(N+K+1)个讯框进行解码时所允许的最多迭代圈数的执行时间大于第一存储器120接收数据串流Din的一个讯框的时间。另外,假设第N~(N+K)个讯框在完成解码操作时所使用的迭代圈数总和大于该临界值时,控制电路140可以设定第(N+K+1)个讯框进行解码时所允许的最多迭代圈数的执行时间等于或小于第一存储器120接收数据串流Din的一个讯框的时间。

图3为根据本发明一实施例的电路100接收数据串流Din的多个讯框并进行处理的时序图,其中本实施例假设每一个讯框在完成解码所需的时间小于第一存储器120接收一个讯框的时间,且第一存储器120接收每一个讯框的时间实质上相同。如图3所示,在时间t0,第一存储器120以速率fs来接收第一个讯框F0,且在第一存储器120所存储的数据量高于临界值时解码器110使用速率2*fs以自第一存储器120读取第一个讯框F0。在本实施例中,第一存储器120在时间点t1接收到完整的第一个讯框F0,而解码器110内的输入缓冲器112也在时间点t1后接收到完整的第一个讯框F0。接着,在时间点t1,解码电路114对第一个讯框F0进行解码,并产生对应的多个码字CW0,并在时间点t2以速率2*fs将多个码字CW0写入到第二存储器130中。接着,在时间点t3~t4中,第二存储器130内的多个码字CW0以速率fs被传送到后端电路。

同样地,在时间t1,第一存储器120以速率fs来接收第二个讯框F1,且在第一存储器120所存储的数据量高于临界值时解码器110使用速率2*fs以自第一存储器120读取第二个讯框F1。在本实施例中,第一存储器120在时间点t2接收到完整的第二个讯框F1,而解码器110内的输入缓冲器112也在时间点t2后接收到完整的第二个讯框F1。接着,在时间点t2,解码电路114对第二个讯框F1进行解码,并产生对应的多个码字CW1,并在时间点t3以速率2*fs将多个码字CW1写入到第二存储器130中。接着,在时间点t4~t5中,第二存储器130内的多个码字CW1以速率fs被传送到后端电路。

第三个讯框F2以及后续讯框的操作类似上述的第一个讯框F0以及第二个讯框F1,故细节不再赘述。

在图3的实施例中,由于每一个图框完成解码所需的时间小于第一存储器120接收一个讯框的时间,亦即解码电路114在成功解码每一个讯框所使用的迭代圈数小于一预设值(在本实施例中,该预设值是在第一存储器120接收一个讯框的时间内解码电路114可以执行迭代操作的次数),因此,控制电路140可以增加后续讯框在进行解码时所允许的最多迭代圈数。举例来说,假设迭代圈数的该预设值为“8”,则控制电路140可以控制解码电路114,以使得第四个讯框F3在解码时允许使用的迭代圈数为“16”,亦即最多进行16次的迭代操作。

图4为根据本发明另一实施例的电路100接收数据串流Din的多个讯框并进行处理的时序图,其中本实施例假设第一个讯框F0遭遇到严重干扰而无法在第一存储器120接收一个讯框的时间内成功解码,第一个讯框F0在解码时允许使用的迭代圈数为接近第一存储器120接收两个讯框的时间,且假设第一存储器120接收每一个讯框的时间实质上相同。如图4所示,在时间t0,第一存储器120以速率fs来接收第一个讯框F0,且在第一存储器120所存储的数据量高于临界值时解码器110使用速率2*fs以自第一存储器120读取第一个讯框F0。在本实施例中,第一存储器120在时间点t1接收到完整的第一个讯框F0,而解码器110内的输入缓冲器112也在时间点t1后接收到完整的第一个讯框F0。接着,在时间点t1,解码电路114对第一个讯框F0进行解码,并产生对应的多个码字CW0,由于第一个讯框F0受到严重干扰而直到时间点t3才完成解码,因此,解码器110在时间点t3才以速率2*fs将多个码字CW0写入到第二存储器130中。同时地,为了持续顺利地传送码字,在时间点t3,第二存储器130也将刚刚自解码器110所接收到的多个码字CW0以速率fs传送到后端电路。

由于第一个讯框F0的解码时间超过了第一存储器120接收一个讯框的时间,亦即第一个讯框F0在解码过程中所使用的迭代圈数高于该预设值,因此控制电路140会控制解码电路114,以使得第二个讯框F1在解码时所允许使用的迭代圈数小于或等于该预设值(在本实施例中,该预设值是在第一存储器120接收一个讯框的时间内,解码电路114可以执行迭代操作的次数)。

关于第二个讯框F1,在时间t1,第一存储器120以速率fs来接收第二个讯框F1,且在第一存储器120所存储的数据量高于临界值时解码器110使用速率2*fs以自第一存储器120读取第二个讯框F1。在本实施例中,第一存储器120在时间点t2接收到完整的第二个讯框F1,而解码器110内的输入缓冲器112也在时间点t2后接收到完整的第二个讯框F1。由于第一个讯框F0的解码时间为t1~t3,因此解码电路114在时间点t3才开始对第二个讯框F1进行解码,并产生对应的多个码字CW1,并在时间点t4以速率2*fs将多个码字CW1写入到第二存储器130中。同时地,为了持续顺利地传送码字,在时间点t4,第二存储器130也将刚刚自解码器110所接收到的多个码字CW1以速率fs传送到后端电路。

需注意的是,由于第二个讯框F1在解码时所允许使用的迭代圈数小于或等于该预设值(亦即,不允许超过第一存储器120接收一个讯框的时间),因此,即使在时间t4的时候第二个讯框F1尚未成功解码,解码电路114也必须将多个码字CW1传送至第二存储器130。

此外,由于第一个讯框F0的解码时间为t1~t3,因此,在时间点t2~t3,即使第一存储器120已经接收到完整的第三个讯框F2,但考虑到输入缓冲器112的空间问题,解码器110于时间点t3才开始以速率2*fs自第一存储器120依序取得第三个讯框F2以及第四个讯框F3,且解码电路114在时间点t4开始对第三个讯框F2进行解码,并产生对应的多个码字CW2,并在时间点t5以速率2*fs将多个码字CW2写入到第二存储器130中。同时地,为了持续顺利地传送码字,在时间点t5,第二存储器130也将刚刚自解码器110所接收到的多个码字CW2以速率fs传送到后端电路。

需注意的是,在图3的实施例中,解码器110将多个码字CW0、CW1、CW2传送至第二存储器130的时间可以分别根据第一个讯框F0、第二个讯框F1以及第三个讯框F2的解码完成时间来动态的调整。具体来说,若是第一个讯框F0在时间点t2之前便已成功解码,则解码器110可以在时间点t2之前便将多个码字CW0传送至第二存储器130。

如图4所示,由于第一个讯框F0在解码时所允许使用的最多迭代圈数增加了,因此可以增加第一个讯框F0解码成功的机率。此外,图4所示的实施例在输出码字CW0~CW2的时间点与图3所示的实施例在输出码字CW0~CW2的时间点相同,这也表示了图4所示的动态调整迭代圈数的实施例不会影响到码字的输出时序。

需注意的是,在图4的实施例中,解码器110将多个码字CW0、CW1、CW2传送至第二存储器130的时间可以分别根据第一个讯框F0、第二个讯框F1以及第三个讯框F2的解码完成时间来动态的调整。具体来说,若是第二个讯框F1在时间点t5之前便已成功解码,则解码器110可以在时间点t5之前便将多个码字CW1传送至第二存储器130。

简要归纳本发明,在本发明的解码方法及相关的电路中,是根据先前讯框的解码状况来动态地调整解码器对于每一个讯框进行解码时所允许的最多迭代圈数,以增加受到严重干扰的讯框解码成功的机率来提高解码器的解码能力。

以上所述仅为本发明的优选实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:面向无线数能同传的一元编码调制符号概率的分析方法

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类