CN109861693B - 一种译码处理的方法及译码处理装置 - Google Patents

一种译码处理的方法及译码处理装置 Download PDF

Info

Publication number
CN109861693B
CN109861693B CN201711242846.6A CN201711242846A CN109861693B CN 109861693 B CN109861693 B CN 109861693B CN 201711242846 A CN201711242846 A CN 201711242846A CN 109861693 B CN109861693 B CN 109861693B
Authority
CN
China
Prior art keywords
llr
sequence
mutual information
decoding
information amount
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
Application number
CN201711242846.6A
Other languages
English (en)
Other versions
CN109861693A (zh
Inventor
孔维镇
张杨
黄勤
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201711242846.6A priority Critical patent/CN109861693B/zh
Publication of CN109861693A publication Critical patent/CN109861693A/zh
Application granted granted Critical
Publication of CN109861693B publication Critical patent/CN109861693B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)

Abstract

本申请公开一种译码处理的方法,该方法应用于译码处理装置,译码处理装置包含N个变量节点及M个校验节点,包括:获取第一LLR序列,第一LLR序列中包含多个第一LLR值,每个第一LLR值与每个变量节点一一对应;根据第一LLR序列确定第二LLR序列,第二LLR序列包含多个第二LLR值,每个第二LLR值与每个校验节点一一对应,每个校验节点与至少一个变量节点具有关联关系;根据第二LLR序列确定M个校验节点所对应的第一互信息量;若第一互信息量大于或等于预设门限,则对第一LLR序列进行译码,以获得译码结果。本申请还公开译码处理装置。本申请在译码时提升LLR序列的准确度,降低译码功耗,提升译码效率。

Description

一种译码处理的方法及译码处理装置
技术领域
本申请涉及通信领域,尤其涉及一种译码处理的方法及译码处理装置。
背景技术
对于固态硬盘(solid state drives,SSD)控制器而言,错误检查并纠正技术(error correcting code,ECC)是一个重要的保证数据可靠性的模块。业界常用的低密度奇偶校验码(low density parity check code,LDPC)具有软译码能力,且纠错能力强。随着快闪记忆体(Nand flash)工艺的演进,成本慢慢降低,可靠性也随之降低,需要匹配纠错能力强的ECC算法来保证其存储数据的准确性,因此LDPC具有很强的竞争力。对于LDPC码的软译码,其译码能力的强弱取决于输入到译码器的对数似然比(log likelihood ratio,LLR)序列的准确度,LLR序列选择的不佳会造成纠错能力的下降、译码延时的增长和译码功耗的增加。如何得到一组准确度高的LLR序列是一个关键。
目前,一种常见的译码处理方法如图1所示,初始化时配置一张基本LLR表,当从Nand flash中读取数据之后,将其按照指定的规则存放到数据缓存中。多次组合重读的数据可以构成一组多比特的样本(pattern)序列,利用基本LLR表将其映射成LLR序列,传输到译码器进行一次软译码。若译码成功,则上报译码后的数据,若译码失败,则通过调整基本LLR表中的LLR值的大小来重新映射出LLR序列,然后再进行软译码。
然而,每次尝试译码之前都需要等待前一次译码结束,且只有在译码失败的情况下才会进行下一次的译码尝试,导致译码功耗较大,译码效率低下。
发明内容
本申请提供了一种译码处理的方法及译码处理装置,可以在译码时采用互信息量较大的LLR序列,而互信息量越大,译码的成功率也就越高,从而提升LLR序列的准确度。此外,本申请可以译码之前选择出较优的LLR序列,无需等待译码失败后再进行下一次译码尝试,以此降低了译码功耗,提升了译码效率。
本申请实施例的第一方面提供一种译码处理的方法,该方法主要应用于译码处理装置,译码处理装置包含N个变量节点以及M个校验节点,N为大于0的正整数,M为大于0的正整数。
需要了解的是,可以根据译码需求预先在译码处理装置中导入矩阵形式的关系,这个关系具体为变量节点和校验节点之间的对应关系。通常情况下,矩阵的横向为校验节点,矩阵的纵向为变量节点,通过变量节点和校验节点之间的对应关系能够准确地获知,与校验节点关联的变量节点。
译码处理的方法具体包括如下处理步骤:
首先,由译码处理装置从缓存数据中获取样本序列。其中,缓存数据是译码处理装置从快闪记忆体中读取的,译码处理装置将缓存数据进行组合后得到样本序列。这个时候,将多个第一LLR值赋予样本序列,即可得到第一LLR序列,其中,每个第一LLR值与每个变量节点一一对应。
然后,译码处理装置根据第一LLR序列获取每个校验节点所对应的至少一个变量节点,根据至少一个变量节点所对应的第一LLR值计算第二LLR序列,通常情况下,M小于N,也就是校验节点的个数小于变量节点的个数,且每个校验节点与至少一个变量节点具有关联关系。
其中,变量节点用于建立样本序列和LLR序列之间的映射关系,然后由校验节点根据映射关系和相应的公式计算得到另一组LLR序列,即第二LLR序列。
接下来,译码处理装置根据第二LLR序列计算M个校验节点所对应的第一互信息量,如果译码处理装置计算得到的第一互信息量大于或者等于预设门限,即可对第一LLR序列进行译码,并且获取相应的译码结果。
可见,本申请实施例提供了一种译码处理的方法,首先译码处理装置获取第一对数似然比LLR序列,其中,第一LLR序列中包含多个第一LLR值,然后根据第一LLR序列确定第二LLR序列,在根据第二LLR序列确定M个校验节点所对应的第一互信息量,若第一互信息量大于或等于预设门限,则译码处理装置对第一LLR序列进行译码,以获得译码结果。通过上述方式,可以在译码时采用互信息量较大的LLR序列,而互信息量越大,译码的成功率也就越高,从而提升LLR序列的准确度。此外,本申请可以译码之前选择出较优的LLR序列,无需等待译码失败后再进行下一次译码尝试,以此降低了译码功耗,提升了译码效率。
在一种可能的设计中,在本申请实施例的第一方面的第一种实现方式中,译码处理装置获取第一LLR序列的具体过程包括:
首先译码处理装置从缓存数据中获取样本序列。其中,缓存数据是译码处理装置从快闪记忆体中读取的,译码处理装置将缓存数据进行组合后得到样本序列。然后,译码处理装置可以将多个第一LLR值赋予样本序列,即可得到第一LLR序列。
可见,本申请实施例中,译码处理装置首先从缓存数据中获取样本序列,然后将多个第一LLR值赋值于样本序列,以得到所述第一LLR序列。通过上述方式,可以根据实际需求对样本序列进行赋值处理,从而提升方案的可行性和灵活性。
在一种可能的设计中,在本申请实施例的第一方面的第二种实现方式中,译码处理装置根据第一LLR序列确定第二LLR序列的具体过程包括:
首先译码处理装置根据第一LLR序列获取每个校验节点的至少一个变量节点,比如有3个校验节点,第1个校验节点对应第1个、第2个和第3个变量节点,第2个校验节点对应第1个、第5个变量节点,第3个校验节点对应第4个变量节点。
接下来,译码处理装置可以根据至少一个变量节点所对应的第一LLR值计算第二LLR序列。也就是说,如果有3个校验节点,那么译码处理装置根据这3个校验节点所对应的第二LLR值,以及这3个校验节点分别对应的变量节点的第一LLR值计算得到第二LLR序列。
可见,本申请实施例中,介绍了计算第二LLR序列的方式,首先译码处理装置根据第一LLR序列获取每个校验节点的至少一个变量节点,再根据至少一个变量节点所对应的第一LLR值计算第二LLR序列。通过上述方式,为计算第二LLR序列提供了一种可行的方式,从而提升方案的实用性和可行性。
在一种可能的设计中,在本申请实施例的第一方面的第三种实现方式中,译码处理装置可以根据至少一个变量节点所对应的第一LLR值计算第二LLR序列。
具体地,第二LLR序列的计算公式可以满足:
Figure BDA0001490173460000031
lc1,lc2,...,lcM
其中,lc1,lc2,...,lcM表示第二LLR序列,lci表示第i个校验节点的第二LLR值,αij表示第j个变量节点传输至第i个校验节点的第一LLR值,βij表示第j个变量节点传输至第i个校验节点的第一LLR值的绝对值,M表示M个校验节点,Vi表示第i个校验节点关联的至少一个变量节点,i表示第i个校验节点,j表示第j个变量节点。
可见,本申请实施例中,介绍了一种计算第二LLR序列的实现方式,即利用校验节点和变量节点共同计算得到第二LLR序列。通过上述方式,提升了计算第二LLR序列的可靠性和可操作性,并且采用较为简易的公式进行计算,有利于提升计算效率。
在一种可能的设计中,在本申请实施例的第一方面的第四种实现方式中,译码处理装置根据第二LLR序列确定M个校验节点所对应的第一互信息量的具体过程包括:
译码处理装置根据第二LLR序列和M个校验节点中每个校验节点的概率分布值,计算所述第一互信息量,其中,每个校验节点的概率分布值可以是1/M,也就是校验节点个数的倒数。
可见,本申请实施例中,译码处理装置可以根据第二LLR序列和每个校验节点的概率分布值,计算第一互信息量。通过上述方式,译码处理装置能够计算得到互信息量,从而提升方案的可行性和可操作性。
在一种可能的设计中,在本申请实施例的第一方面的第五种实现方式中,译码处理装置可以根据第二LLR序列和每个校验节点的概率分布值,计算第一互信息量。
具体地,第一互信息量的计算公式可以满足:
Figure BDA0001490173460000032
其中,I表示第一互信息量,lci表示第二LLR序列中第i个校验节点所对应的第二LLR值,p(lci)表示lci的概率分布值,i表示第i个校验节点,M表示M个校验节点。
可见,本申请实施例中,介绍了一种计算互信息量的实现方式,即利用校验节点和概率分布值计算得到互信息量,而概率分布值可以是校验节点个数的倒数,对数计算可以通过查表得到。通过上述方式,能够降低硬件的复杂度。
在一种可能的设计中,在本申请实施例的第一方面的第六种实现方式中,译码处理装置根据第二LLR序列确定至少一个校验节点所对应的第一互信息量之后,还可以包括如下步骤:
如果译码处理装置计算得到的第一互信息量小于预设门限,则先不对第一互信息量所对应的第一LLR序列进行译码,而是改变读电压,然后从Nand flash中读取下一组数据,将缓存数据进行组合后得到另一组pattern序列。这个时候,再将多个LLR值赋予这一组pattern序列,即可得到第三LLR序列。类似地,译码处理装置根据第三LLR序列获取每个校验节点的至少一个变量节点,然后根据校验节点所对应的LLR值以及至少一个变量节点所对应的LLR值计算第四LLR序列。
此时,译码处理装置根据第四LLR序列和M个校验节点中每个校验节点的概率分布值,计算第二互信息量。如果计算得到的第二互信息量大于或者等于预设门限,那么译码处理装置就对第三LLR序列进行译码,以获得译码结果。如果第二互信息量还是小于预设门限,则译码处理装置继续改变读电压,再从Nand flash中读取下一组数据,以此进行下一轮的循环,直到找出最大互信息量所对应的LLR序列。
可见,本申请实施例中,首先译码处理装置获取第一对数似然比LLR序列,其中,第一LLR序列中包含多个第一LLR值,然后根据第一LLR序列确定第二LLR序列,在根据第二LLR序列确定M个校验节点所对应的第一互信息量,若第一互信息量小于预设门限,则译码处理装置将获取下一组LLR序列进行第二互信息量的计算,直到选择满足条件的LLR序列。通过上述方式,如果一组LLR序列对应的互信息量小于预设门限,则可以选用下一组LLR序列进行互信息量的计算,直到得到大于或等于预设门限的互信息量,从而选择该互信息量所对应的LLR序列,以此LLR序列的准确度。
在一种可能的设计中,在本申请实施例的第一方面的第七种实现方式中,在译码处理装置计算得到第一互信息量与第二互信息量之后,如果确定两者都小于预设门限,则需要进一步判断第一互信息量是否大于第二互信息量,如果第一互信息量大于第二互信息量,那么译码处理装置就对第一互信息量进行译码,以获得译码结果。反之,如果第一互信息量小于第二互信息量,那么译码处理装置对第二互信息量进行译码,以获得译码结果。
当然,第一互信息量和第二互信息量仅为一个示意,还可以有更多组互信息量,当这些互信息量都小于预设门限时,选择互信息量最大的LLR序列作为最佳LLR序列。
可见,本申请实施例中,如果在LLR序列都不满足预设门限的情况下,则译码处理装置会优先选择互信息量最大的LLR序列,从而提升LLR序列的准确度。
本申请实施例的第二方面提供一种译码处理装置,所述译码处理装置包含N个变量节点以及M个校验节点,所述N为大于0的正整数,所述M为大于0的正整数,所述译码处理装置包括:
获取模块,用于获取第一对数似然比LLR序列,其中,所述第一LLR序列中包含多个第一LLR值,所述多个第一LLR值中的每个第一LLR值与所述N个变量节点中的每个变量节点一一对应;
确定模块,用于根据所述获取模块获取的所述第一LLR序列确定第二LLR序列,其中,所述第二LLR序列包含多个第二LLR值,所述多个第二LLR值中的每个第二LLR值与所述M个校验节点中的每个校验节点一一对应,所述每个校验节点与至少一个变量节点具有关联关系;
所述确定模块,用于根据所述第二LLR序列确定所述M个校验节点所对应的第一互信息量;
译码模块,用于若所述确定模块确定的所述第一互信息量大于或等于预设门限,则对所述第一LLR序列进行译码,以获得译码结果。
在一种可能的设计中,在本申请实施例的第二方面的第一种实现方式中,
所述获取模块,具体用于从缓存数据中获取样本序列;
将所述多个第一LLR值赋值于所述样本序列,以得到所述第一LLR序列。
在一种可能的设计中,在本申请实施例的第二方面的第二种实现方式中,
所述确定模块,具体用于根据所述第一LLR序列获取所述每个校验节点的所述至少一个变量节点;
根据所述至少一个变量节点所对应的第一LLR值计算所述第二LLR序列。
在一种可能的设计中,在本申请实施例的第二方面的第三种实现方式中,
所述确定模块,具体用于按照如下公式计算所述第二LLR序列:
Figure BDA0001490173460000051
lc1,lc2,...,lcM
其中,所述lc1,lc2,...,lcM表示所述第二LLR序列,所述lci表示第i个校验节点的第二LLR值,所述αij表示第j个变量节点传输至所述第i个校验节点的第一LLR值,所述βij表示所述第j个变量节点传输至所述第i个校验节点的第一LLR值的绝对值,所述M表示所述M个校验节点,所述Vi表示所述第i个校验节点关联的至少一个变量节点,所述i表示所述第i个校验节点,所述j表示所述第j个变量节点。
在一种可能的设计中,在本申请实施例的第二方面的第四种实现方式中,
所述确定模块,具体用于根据所述第二LLR序列和每个校验节点的概率分布值,计算所述第一互信息量。
在一种可能的设计中,在本申请实施例的第二方面的第五种实现方式中,
所述确定模块,具体用于按照如下公式计算所述第一互信息量:
Figure BDA0001490173460000052
其中,所述I表示所述第一互信息量,所述lci表示所述第二LLR序列中第i个校验节点所对应的第二LLR值,所述p(lci)表示所述lci的概率分布值,所述i表示所述第i个校验节点,所述M表示所述M个校验节点。
在一种可能的设计中,在本申请实施例的第二方面的第六种实现方式中,
所述获取模块,还用于所述确定模块根据所述第二LLR序列确定所述至少一个校验节点所对应的第一互信息量之后,若所述第一互信息量小于所述预设门限,则获取第三LLR序列,并根据所述第三LLR序列确定第四LLR序列,其中,所述第三LLR序列为不同于所述第一LLR序列的另一组LLR序列;
所述确定模块,还用于根据所述第四LLR序列确定所述M个校验节点所对应的第二互信息量;
所述译码模块,还用于若所述所述确定模块确定的所述第二互信息量大于或等于所述预设门限,则对所述第三LLR序列进行译码,以获得译码结果。
在一种可能的设计中,在本申请实施例的第二方面的第七种实现方式中,所述译码处理装置还包括判断模块;
所述判断模块,用于若所述第一互信息量与所述第二互信息量均小于所述预设门限,则判断所述第一互信息量是否大于所述第二互信息量;
所述译码模块,还用于若所述判断模块判断得到所述第一互信息量大于所述第二互信息量,则使用所述第一互信息量所对应的所述第一LLR序列进行译码,以获得译码结果;
所述译码模块,还用于若所述判断模块判断得到所述第一互信息量小于所述第二互信息量,则使用所述第二互信息量所对应的所述第三LLR序列进行译码,以获得译码结果。
本申请实施例的第三方面提供一种译码处理装置,包括:存储器、收发器以及处理器;
其中,所述存储器用于存储程序和指令;
所述收发器用于在所述处理器的控制下接收或发送信息;
所述处理器用于执行所述存储器中的程序;
所述处理器用于执行如下步骤:
获取第一对数似然比LLR序列,其中,所述第一LLR序列中包含多个第一LLR值,所述多个第一LLR值中的每个第一LLR值与所述N个变量节点中的每个变量节点一一对应;
根据所述第一LLR序列确定第二LLR序列,其中,所述第二LLR序列包含多个第二LLR值,所述多个第二LLR值中的每个第二LLR值与所述M个校验节点中的每个校验节点一一对应,所述每个校验节点与至少一个变量节点具有关联关系;
根据所述第二LLR序列确定所述M个校验节点所对应的第一互信息量;
若所述第一互信息量大于或等于预设门限,则对所述第一LLR序列进行译码,以获得译码结果。
在一种可能的设计中,在本申请实施例的第三方面的第一种实现方式中,所述处理器具体用于执行如下步骤:
从缓存数据中获取样本序列;
将所述多个第一LLR值赋值于所述样本序列,以得到所述第一LLR序列。
在一种可能的设计中,在本申请实施例的第三方面的第二种实现方式中,所述处理器具体用于执行如下步骤:
根据所述第一LLR序列获取所述每个校验节点的所述至少一个变量节点;
根据所述至少一个变量节点所对应的第一LLR值计算所述第二LLR序列。
在一种可能的设计中,在本申请实施例的第三方面的第三种实现方式中,所述处理器具体用于执行如下步骤:
按照如下公式计算所述第二LLR序列:
Figure BDA0001490173460000061
lc1,lc2,...,lcM
其中,所述lc1,lc2,...,lcM表示所述第二LLR序列,所述lci表示第i个校验节点的第二LLR值,所述αij表示第j个变量节点传输至所述第i个校验节点的第一LLR值,所述βij表示所述第j个变量节点传输至所述第i个校验节点的第一LLR值的绝对值,所述M表示所述M个校验节点,所述Vi表示所述第i个校验节点关联的至少一个变量节点,所述i表示所述第i个校验节点,所述j表示所述第j个变量节点。
在一种可能的设计中,在本申请实施例的第三方面的第四种实现方式中,所述处理器具体用于执行如下步骤:
根据所述第二LLR序列和每个校验节点的概率分布值,计算所述第一互信息量。
在一种可能的设计中,在本申请实施例的第三方面的第五种实现方式中,所述处理器具体用于执行如下步骤:
按照如下公式计算所述第一互信息量:
Figure BDA0001490173460000071
其中,所述I表示所述第一互信息量,所述lci表示所述第二LLR序列中第i个校验节点所对应的第二LLR值,所述p(lci)表示所述lci的概率分布值,所述i表示所述第i个校验节点,所述M表示所述M个校验节点。
在一种可能的设计中,在本申请实施例的第三方面的第六种实现方式中,所述处理器还用于执行如下步骤:
若所述第一互信息量小于所述预设门限,则获取第三LLR序列,并根据所述第三LLR序列确定第四LLR序列,其中,所述第三LLR序列为不同于所述第一LLR序列的另一组LLR序列;
根据所述第四LLR序列确定所述M个校验节点所对应的第二互信息量;
若所述第二互信息量大于或等于所述预设门限,则对所述第三LLR序列进行译码,以获得译码结果。
在一种可能的设计中,在本申请实施例的第三方面的第七种实现方式中,所述处理器还用于执行如下步骤:
若所述第一互信息量与所述第二互信息量均小于所述预设门限,则判断所述第一互信息量是否大于所述第二互信息量;
若所述第一互信息量大于所述第二互信息量,则使用所述第一互信息量所对应的所述第一LLR序列进行译码,以获得译码结果;
若所述第一互信息量小于所述第二互信息量,则使用所述第二互信息量所对应的所述第三LLR序列进行译码,以获得译码结果。
第四方面,本申请实施例提供一种计算机设备,包括:处理器、存储器、总线和通信接口;该存储器用于存储计算机执行指令,该处理器与该存储器通过该总线连接,当该服务器运行时,该处理器执行该存储器存储的该计算机执行指令,以使该服务器执行如上述任一方面的方法。
第五方面,本申请实施例提供了一种计算机可读存储介质,用于储存为上述方法所用的计算机软件指令,当其在计算机上运行时,使得计算机可以执行上述中任一方面的方法。
第六方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述任一方面的方法。
另外,第二方面至第六方面任一种设计方式所带来的技术效果可参见第一方面中不同设计方式所带来的技术效果,此处不再赘述。
从以上技术方案可以看出,本申请具有以下优点:
本申请实施例提供了一种译码处理的方法,首先译码处理装置获取第一对数似然比LLR序列,其中,第一LLR序列中包含多个第一LLR值,然后根据第一LLR序列确定第二LLR序列,在根据第二LLR序列确定M个校验节点所对应的第一互信息量,若第一互信息量大于或等于预设门限,则译码处理装置对第一LLR序列进行译码,以获得译码结果。通过上述方式,可以在译码时采用互信息量较大的LLR序列,而互信息量越大,译码的成功率也就越高,从而提升LLR序列的准确度。此外,本申请可以译码之前选择出较优的LLR序列,无需等待译码失败后再进行下一次译码尝试,以此降低了译码功耗,提升了译码效率。
附图说明
图1为现有方案中一种译码处理方法的示意图;
图2为本申请实施例中存储系统的一个拓扑结构示意图;
图3为本申请实施例中存储系统的另一个拓扑结构示意图;
图4为本申请实施例中译码处理的方法一个实施例示意图;
图5为本申请实施例中译码处理的方法另一个实施例示意图;
图6为本申请实施例中译码处理装置一个实施例示意图;
图7为本申请实施例中译码处理装置另一个实施例示意图;
图8为本申请实施例中译码处理装置的一个结构示意图。
具体实施方式
本申请提供了一种译码处理的方法及译码处理装置,可以在译码时采用互信息量较大的LLR序列,而互信息量越大,译码的成功率也就越高,从而提升LLR序列的准确度。此外,本申请可以译码之前选择出较优的LLR序列,无需等待译码失败后再进行下一次译码尝试,以此降低了译码功耗,提升了译码效率。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
随着计算机技术以及网络技术的高速发展,计算机自带的存储器逐渐难以满足存取速度快、存储容量大和成本低等诸多要求,于是发展出相对独立的存储系统。存储系统通常由存储服务器等存储设备组成,具有自己的接口和协议,通过同轴电缆、网线、光纤等方式与计算机主机连接,作为数据的存储中心为计算机主机提供存储服务。
应理解,本申请可以应用于服务器,例如存储服务器,存储系统中的服务器之间通过低延迟以及高吞吐量的网络(例如光纤通道(fiber channel,FC))、10G以太网)相连形成集群,对外数据存储服务。组成存储系统的服务器有两种,一种叫做“接口服务器”,接口服务器上安装有和外部主机连接的网络适配器;另一种服务器叫做“存储服务器”,存储服务器拥有磁盘、固态硬盘(Solid State Drives,SSD)等本地存储设备,用于存储数据。一次典型的输入/输出端口(input/output,I/O)操作是由外部主机发起,然后请求通过存储区域网络(storage area network,SAN)等网络发到接口服务器,接着通过存储系统内部的协议被路由到具体的存储服务器。也就是说,主机、接口服务器以及存储服务器共同组成一个三层的拓扑结构,请参阅图2,图2为本申请实施例中存储系统的一个拓扑结构示意图,如图所示,外部主机和存储服务器之间存在至少2跳(hop)的距离,在外部主机、接口服务器以及存储服务器三者之间的拓扑结构中,如果需要增加或者拆除其中的设备,例如新增一个接口服务器,会对现有结构造成影响,需要管理员重新配置集群软件的组成员,而且配置过程复杂。此外,从主机到存储服务器至少需要经过两跳,每一跳都会产生一定的网络延时。
在新的实施例中,在图2的基础上增加一种新的服务器,暂时命名为“应用服务器”,就层次而言实际上等同于接口服务器,具体参见图3,图3为本申请实施例中存储系统的另一个拓扑结构示意图。显然,应用服务器可以在单跳中访问存储服务器,此外应用服务器可以具有外部主机机(例如运行数据密集软件)、接口服务器(例如通过在单跳中访问存储器)的功能。
在具体实施中,应用服务器在某些方式上可以与接口服务器类似:应用服务器可以连接到存储设备的内部网络,其可以运行集群成员资格软件,并且能够使用存储设备的内部网络与存储服务器通信(例如使用私有协议)。应用服务器可以用来运行应用程序,例如数据库应用程序(例如国际商业机器(international business machinescorporation,IBM)公司的数据库(database,DB)2)、擦洗软件(scrubbing software,SS)、商业分析软件,等等。因此,应用服务器上运行的软件可以直接和存储服务器进行通信,不用再通过接口服务器。
应理解,本申请实施例具体应用于SSD,SSD是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成。SSD在接口的规范和定义、功能及使用方法上与普通硬盘的相同,在产品外形和尺寸上也完全与普通硬盘一致。被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空以及导航设备等领域。SSD的存储介质分为两种,一种是采用闪存(flash)芯片作为存储介质,另外一种是采用动态随机存取存储器(dynamic random access memory,DRAM)作为存储介质。
应理解,本申请实施例主要用于在SSD中采用低密度奇偶校验码(low densityparity check code,LDPC)进行数据可靠性验证。LDPC码的译码算法,是一种基于稀疏矩阵的并行迭代译码算法,并且由于结构并行的特点,在硬件实现上比较容易,因此在大容量通信应用中,LDPC码具有较好的优势。LDPC码的码率可以任意构造,有较大的灵活性。此外,LDPC码具有更低的错误平层,可以应用于有线通信、深空通信以及磁盘存储工业等对误码率要求更加苛刻的场合。
对于LDPC码的软译码而言,其译码能力的强弱取决于输入到译码器的对数似然比(log likelihood ratio,LLR)序列的准确度,本申请实施例可以在更高效地得到一组准确度高的LLR序列。
实施例一,从一组LLR序列中选择满足要求的LLR序列;
请参阅图4,图4为本申请实施例中译码处理的方法一个实施例示意图,该译码处理的方法应用于译码处理装置,译码处理装置包含N个变量节点以及M个校验节点,N为大于0的正整数,M为大于0的正整数,本申请实施例中译码处理的方法一个实施例包括:
101、获取第一对数似然比LLR序列,其中,第一LLR序列中包含多个第一LLR值,多个第一LLR值中的每个第一LLR值与N个变量节点中的每个变量节点一一对应;
本实施例中,首先可以根据译码需求预先在译码处理装置中导入矩阵形式的关系,这个关系具体为变量节点和校验节点之间的对应关系。通常情况下,矩阵的横向为校验节点,矩阵的纵向为变量节点,通过变量节点和校验节点之间的对应关系能够准确地获知,与校验节点关联的变量节点。
下面将介绍一种根据变量节点和校验节点构造校验矩阵H的过程。
要构造校验矩阵H,首先应构造出基矩阵B(记基矩阵B的维数为M×N,其中,M表示校验节点个数,N表示变量节点个数),然后将基矩阵B进行循环移位扩展便可得到校验矩阵H,具体方法步骤如下:
要构造一个码长为n,信息位长度为k的准循环LDPC码,也即要构造一个码长为n,信息位长度为k的校验矩阵H。记校验矩阵H的维数为m×n,易知m=n-k,校验矩阵H是由许多相同维数的小循环方阵组成,方阵中的每一行向右移动一位,就得到下一行,方阵最后一行向右移动一位就得到矩阵的第一行,每一列向下移动一位,就得到下一列,最后一列向下移动一位就得到第一列。
译码处理装置从缓存数据中获取样本(pattern)序列。其中,缓存数据是译码处理装置从快闪记忆体(Nand flash)中读取的,译码处理装置将缓存数据进行组合后得到pattern序列。pattern序列可以是:1111、1110、0101以及0001,这个时候,将多个第一LLR值赋予pattern序列,即可得到第一LLR序列。假设赋值后形成的映射关系如表1所示。
表1
pattern序列 第一LLR序列
1111 -7
1110 -6
0101 +5
0001 +4
可以理解的是,pattern序列中的最高位表示符号,“1”表示负值,“0”表示正值,在实际应用中,第一LLR值还可以根据情况进行调整,这里的“-7”、“-6”、“+5”和“+4”均为一个示意,和pattern序列中的各个值一样,不应理解为对本申请的限定。此外,需要说明的是,在对pattern序列赋值的过程中,可以预先设定赋值规则,比如第一个LLR值为“-1”,第二个LLR值为“+1”,第三个LLR值为“-2”,第四个LLR值为“+2”以此类推,得到一组LLR序列。当然,还可以任意赋值,比如,比如第一个LLR值为“-8”,第二个LLR值为“+6”,第三个LLR值为“-3”,第四个LLR值为“+1”,然后得到一组LLR序列,故不应理解为对本申请的限定。
于是,根据表1所表示的映射关系就能得到第一LLR序列(如:-7、-6、+5和+4),第一LLR序列中的每个第一LLR值与每个变量节点一一对应,换言之,第一LLR值“-7”对应变量节点a,第一LLR值“-6”对应变量节点b,第一LLR值“+5”对应变量节点c,第一LLR值“+4”对应变量节点d。
102、根据第一LLR序列确定第二LLR序列,其中,第二LLR序列包含多个第二LLR值,多个第二LLR值中的每个第二LLR值与M个校验节点中的每个校验节点一一对应,每个校验节点与至少一个变量节点具有关联关系;
本实施例中,译码处理装置根据第一LLR序列获取每个校验节点的至少一个变量节点,然后根据至少一个变量节点所对应的第一LLR值计算第二LLR序列,通常情况下,M小于N,也就是校验节点的个数小于变量节点的个数,且每个校验节点与至少一个变量节点具有关联关系。
可以理解的是,在LDPC码的校验矩阵中,如果行列重量固定为(P,Y),即每个校验节点有P个变量节点参与校验,每个变量节点参与Y个校验节点,在本申请实施例中,校验矩阵主要用于译码,在实际应用中,还需要获取生成矩阵,其中,生成矩阵主要用于编码,而校验矩阵和生成矩阵之间为正交关系,校验矩阵和生成矩阵相乘后即可得到正则LDPC码。从编码二分图的角度来看,这种LDPC码的变量节点度数全部为Y,而校验节点的度数都为P。对于LDPC码的每个变量节点来说,当它参与的校验式越多,即度数Y越大,则它可以从更多的校验节点获取信息,也就可以更加准确的判断出它的正确值。对于H的每个校验节点来说,当它涉及的变量节点越少,即度数P越小,则它可以更准确的估计相关变量节点的状态。
具体地,第二LLR序列的计算公式可以满足:
Figure BDA0001490173460000111
lc1,lc2,...,lcM
其中,lc1,lc2,...,lcM表示第二LLR序列,lci表示第i个校验节点的第二LLR值,αij表示第j个变量节点传输至第i个校验节点的第一LLR值,βij表示第j个变量节点传输至第i个校验节点的第一LLR值的绝对值,M表示M个校验节点,Vi表示第i个校验节点关联的至少一个变量节点,i表示第i个校验节点,j表示第j个变量节点。
103、根据第二LLR序列确定M个校验节点所对应的第一互信息量;
本实施例中,译码处理装置根据第二LLR序列和M个校验节点中每个校验节点的概率分布值,计算第一互信息量。
具体地,第一互信息量的计算公式可以满足:
Figure BDA0001490173460000121
其中,I表示第一互信息量,lci表示第二LLR序列中第i个校验节点所对应的第二LLR值,p(lci)表示lci的概率分布值,通常情况下,概率分布值是1/M,也就是校验节点个数的倒数,i表示第i个校验节点,M表示M个校验节点。
104、若第一互信息量大于或等于预设门限,则对第一LLR序列进行译码,以获得译码结果。
本实施例中,如果译码处理装置计算得到的第一互信息量大于或者等于预设门限,即可对第一LLR序列进行译码,并且获取相应的译码结果。
其中,互信息量越大,译码的成功率也就越高。互信息量越大,译码的成功率也就越高是信息论里一种有用的信息度量,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性。在概率论和信息论中,两个随机变量的互信息(mutual information,MI)或转移信息(transinformation)是变量间相互依赖性的量度。不同于相关系数,互信息量并不局限于实值随机变量,它更加一般且决定着联合分布p(X,Y)和分解的边缘分布的乘积p(X)p(Y)的相似程度。互信息是点间互信息的期望值。互信息最常用的单位是比特(bit)。
本申请实施例提供了一种译码处理的方法,首先译码处理装置获取第一对数似然比LLR序列,其中,第一LLR序列中包含多个第一LLR值,然后根据第一LLR序列确定第二LLR序列,在根据第二LLR序列确定M个校验节点所对应的第一互信息量,若第一互信息量大于或等于预设门限,则译码处理装置对第一LLR序列进行译码,以获得译码结果。通过上述方式,可以在译码时采用互信息量较大的LLR序列,而互信息量越大,译码的成功率也就越高,从而提升LLR序列的准确度。此外,本申请可以译码之前选择出较优的LLR序列,无需等待译码失败后再进行下一次译码尝试,以此降低了译码功耗,提升了译码效率。
为便于理解,下面以一个具体应用场景对本申请中一种译码处理的方法进行详细描述,具体为:
首先,译码处理装置从Nand flash中读取数据1 0 0 1(即变量节点个数为N,N=4),若硬译码失败,则开始进行软译码,并输出读取结果:
1 0 0 1
0 0 0 1
0 0 1 0
1 0 0 0
然后进行纵向组合,得到一组pattern序列,并输出pattern序列:
1 0 0 1
0 0 0 0
0 0 1 0
1 1 0 0
根据上述pattern序列,将多个第一LLR值赋值给pattern序列赋值后形成的映射关系如表2所示。
表2
pattern序列 第一LLR序列
1001 -3
0000 +2
0010 +1
1100 -2
根据表2所示的映射关系,可以将这一组pattern序列映射成第一LLR序列,即-3、+2、+1和-2。
又假设有2个校验节点,即M等于2,假设与第一个校验节点关联的变量节点为{1,2,4},假设与第二个校验节点关联的变量节点为{2,3,4},于是利用第二LLR序列的计算公式:
Figure BDA0001490173460000131
lc1,lc2,...,lcM
可以进行如下计算:
lc1=Пj∈{1,2,4}α1j*minj∈{1,2,4}1j)
=sign(-3)*sign(+2)*sign(-2)*min(|-3|,|+2|,|-2|);
=+2
lc2=Πj∈{2,3,4}α1j*minj∈{2,3,4}1j)
=sign(+2)*sign(+1)*sign(-2)*min(|+2|,|+1|,|-2|);
=-1
于是,得到第二LLR序列为lc1,lc2,即+2,-1。
最后,译码处理装置根据校验节点的第二LLR值计算码字和校验节点的互信息量,于是利用互信息量的计算公式:
Figure BDA0001490173460000141
每个检验节点的概率分布值为1/M,即p(lci)为1/M,根据互信息量公式进行如下计算:
Figure BDA0001490173460000142
若预置门限为0.6,那么上述计算得到的0.6840满足条件,也就表示可以采用-3、+2、+1和-2进行译码。
若预置门限为0.8,那么上述计算得到的0.6840不满足条件,这个时候可以通过调整读电压来重新读取数据,当然读取数据后的操作如上述介绍的内容,此处不做赘述,直到从所有的LLR序列中选择出一组互信息量最大的LLR序列。
可以理解的是,在实际应用中,重读数据后可以对LLR值进行调整,比如每次增加一个单位量,将-3、+2、+1和-2更新为-2、+3、+2和-1,即单位量为1,当然,还可以是其他的单位量,此处仅为一个示意,并不应理解为对本申请的限定。
实施例二,从多组LLR序列中选择满足要求的LLR序列;
请参阅图5,图5为本申请实施例中译码处理的方法一个实施例示意图,该译码处理的方法应用于译码处理装置,译码处理装置包含N个变量节点以及M个校验节点,N为大于0的正整数,M为大于0的正整数,本申请实施例中译码处理的方法一个实施例包括:
201、获取第一对数似然比LLR序列,其中,第一LLR序列中包含多个第一LLR值,多个第一LLR值中的每个第一LLR值与N个变量节点中的每个变量节点一一对应,N为大于0的正整数;
本实施例中,译码处理装置从缓存数据中获取pattern序列。其中,缓存数据是译码处理装置从Nand flash中读取的,译码处理装置将缓存数据进行组合后得到pattern序列。这个时候,将多个第一LLR值赋予pattern序列,即可得到第一LLR序列。
具体地,译码处理装置获取第一对数似然比LLR序列的方式如上述实施例一中步骤101所描述内容,故此处不做赘述。
202、根据第一LLR序列确定第二LLR序列,其中,第二LLR序列包含多个第二LLR值,多个第二LLR值中的每个第二LLR值与M个校验节点中的每个校验节点一一对应,每个校验节点与至少一个变量节点具有关联关系,M为大于0的正整数;
本实施例中,译码处理装置根据第一LLR序列获取每个校验节点的至少一个变量节点,然后根据至少一个变量节点所对应的第一LLR值计算第二LLR序列,通常情况下,M小于N,也就是校验节点的个数小于变量节点的个数。
具体地,译码处理装置根据第一LLR序列确定第二LLR序列的方式如上述实施例一中步骤102所描述内容,故此处不做赘述。
203、根据第二LLR序列确定M个校验节点所对应的第一互信息量;
本实施例中,译码处理装置根据第二LLR序列和M个校验节点中每个校验节点的概率分布值,计算第一互信息量。
具体地,译码处理装置确定第一互信息量的方式如上述实施例一中步骤103所描述内容,故此处不做赘述。
具体地,译码处理装置确定第一互信息量的方式如上述实施例一中步骤103所描述内容,故此处不做赘述。
204、若第一互信息量小于预设门限,则获取第三LLR序列,并根据第三LLR序列确定第四LLR序列,其中,第三LLR序列为不同于第一LLR序列的另一组LLR序列;
本实施例中,如果译码处理装置计算得到的第一互信息量小于预设门限,则先不对第一互信息量所对应的第一LLR序列进行译码,而是改变读电压,然后从Nand flash中读取下一组数据,将缓存数据进行组合后得到另一组pattern序列。这个时候,将多个LLR值赋予这一组pattern序列,即可得到第三LLR序列。类似地,译码处理装置根据第三LLR序列获取每个校验节点的至少一个变量节点,然后根据M个校验节点所对应的LLR值以及至少一个变量节点所对应的LLR值计算第四LLR序列。
205、根据第四LLR序列确定M个校验节点所对应的第二互信息量;
本实施例中,译码处理装置根据第四LLR序列和M个校验节点中每个校验节点的概率分布值,计算第二互信息量。
需要说明的是,第二互信息量的计算公式与第一互信息量的计算公式相似,故此处不作赘述。
206、若第二互信息量大于或等于预设门限,则对第三LLR序列进行译码,以获得译码结果。
本实施例中,如果计算得到的第二互信息量大于或者等于预设门限,那么译码处理装置将对第三LLR序列进行译码,以获取相应的译码结果。
换言之,译码处理装置需要对计算得到的互信息量大小进行判断,以此觉得是否进行译码。当计算得到的互信息大于或等于预设门限,将直接进行译码,否则换一组LLR序列,若所有LLR序列对应的互信息都未超过预设门限,可选择互信息最大的进行译码。在选定LDPC码和LLR序列精度后,通过仿真可得到在噪声变化情况下,互信息与译码成功率之间的关系,由此选择上述预设门限。
提供了一种译码处理的方法,首先译码处理装置获取第一对数似然比LLR序列,其中,第一LLR序列中包含多个第一LLR值,然后根据第一LLR序列确定第二LLR序列,在根据第二LLR序列确定M个校验节点所对应的第一互信息量,若第一互信息量小于预设门限,则译码处理装置将获取下一组LLR序列进行第二互信息量的计算,直到选择满足条件的LLR序列。通过上述方式,如果一组LLR序列对应的互信息量小于预设门限,则可以选用下一组LLR序列进行互信息量的计算,直到得到大于或等于预设门限的互信息量,从而选择该互信息量所对应的LLR序列,以此LLR序列的准确度。
可选地,在上述图5对应的实施例的基础上,本申请实施例提供的译码处理的方法第一个可选实施例中,
若第一互信息量与第二互信息量均小于预设门限,则判断第一互信息量是否大于第二互信息量;
若第一互信息量大于第二互信息量,则使用第一互信息量所对应的第一LLR序列进行译码,以获得译码结果;
若第一互信息量小于第二互信息量,则使用第二互信息量所对应的第三LLR序列进行译码,以获得译码结果。
本实施例中,译码处理装置在计算得到第一互信息量与第二互信息量之后,如果确定两者都小于预设门限,则需要进一步判断第一互信息量是否大于第二互信息量,如果第一互信息量大于第二互信息量,那么译码处理装置就对第一LLR序列进行译码,以获得译码结果。反之,如果第一互信息量小于第二互信息量,那么译码处理装置对第三LLR序列进行译码,以获得译码结果。
具体地,上述第一互信息量和第二互信息量仅为一个示意,在很多情况下,译码处理装置会计算得到更多的互信息量,比如第三互信息量和第四互信息量等,在所有的互信息量均小于预设门限时,译码处理装置就会择最优值,也就是选择最大的互信息量,并对该互信息量所对应的LLR序列进行译码。
其次,本申请实施例中,如果在LLR序列都不满足预设门限的情况下,则译码处理装置会优先选择互信息量最大的LLR序列,从而提升LLR序列的准确度。
下面对本申请中一个实施例对应的译码处理装置进行详细描述,请参阅图6,本申请实施例中的译码处理装置包含N个变量节点以及M个校验节点,所述N为大于0的正整数,所述M为大于0的正整数,所述译码处理装置30包括
获取模块301,用于获取第一对数似然比LLR序列,其中,所述第一LLR序列中包含多个第一LLR值,所述多个第一LLR值中的每个第一LLR值与所述N个变量节点中的每个变量节点一一对应;
确定模块302,用于根据所述获取模块301获取的所述第一LLR序列确定第二LLR序列,其中,所述第二LLR序列包含多个第二LLR值,所述多个第二LLR值中的每个第二LLR值与所述M个校验节点中的每个校验节点一一对应,所述每个校验节点与至少一个变量节点具有关联关系;
所述确定模块302,用于根据所述第二LLR序列确定所述M个校验节点所对应的第一互信息量;
译码模块303,用于若所述确定模块302确定的所述第一互信息量大于或等于预设门限,则对所述第一LLR序列进行译码,以获得译码结果。
本实施例中,获取模块301获取第一对数似然比LLR序列,其中,所述第一LLR序列中包含多个第一LLR值,所述多个第一LLR值中的每个第一LLR值与所述N个变量节点中的每个变量节点一一对应,确定模块302根据所述获取模块301获取的所述第一LLR序列确定第二LLR序列,其中,所述第二LLR序列包含多个第二LLR值,所述多个第二LLR值中的每个第二LLR值与所述M个校验节点中的每个校验节点一一对应,所述每个校验节点与至少一个变量节点具有关联关系,所述确定模块302根据所述第二LLR序列确定所述M个校验节点所对应的第一互信息量,若所述确定模块302确定的所述第一互信息量大于或等于预设门限,则译码模块303对所述第一LLR序列进行译码,以获得译码结果。
提供了一种译码处理装置,首先译码处理装置获取第一对数似然比LLR序列,其中,第一LLR序列中包含多个第一LLR值,然后根据第一LLR序列确定第二LLR序列,在根据第二LLR序列确定M个校验节点所对应的第一互信息量,若第一互信息量大于或等于预设门限,则译码处理装置对第一LLR序列进行译码,以获得译码结果。通过上述方式,可以在译码时采用互信息量较大的LLR序列,而互信息量越大,译码的成功率也就越高,从而提升LLR序列的准确度。此外,本申请可以译码之前选择出较优的LLR序列,无需等待译码失败后再进行下一次译码尝试,以此降低了译码功耗,提升了译码效率。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的译码处理装置30的另一实施例中,
所述获取模块301,具体用于从缓存数据中获取样本序列;
将所述多个第一LLR值赋值于所述样本序列,以得到所述第一LLR序列。
其次,本申请实施例中,译码处理装置首先从缓存数据中获取样本序列,然后将多个第一LLR值赋值于样本序列,以得到所述第一LLR序列。通过上述方式,可以根据实际需求对样本序列进行赋值处理,从而提升方案的可行性和灵活性。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的译码处理装置30的另一实施例中,
所述确定模块302,具体用于根据所述第一LLR序列获取所述每个校验节点的所述至少一个变量节点;
根据所述至少一个变量节点所对应的第一LLR值计算所述第二LLR序列。
其次,本申请实施例中,介绍了计算第二LLR序列的方式,首先译码处理装置根据第一LLR序列获取每个校验节点的至少一个变量节点,再根据至少一个变量节点所对应的第一LLR值计算第二LLR序列。通过上述方式,为计算第二LLR序列提供了一种可行的方式,从而提升方案的实用性和可行性。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的译码处理装置30的另一实施例中,
所述确定模块302,具体用于按照如下公式计算所述第二LLR序列:
Figure BDA0001490173460000171
lc1,lc2,...,lcM
其中,所述lc1,lc2,...,lcM表示所述第二LLR序列,所述lci表示第i个校验节点的第二LLR值,所述αij表示第j个变量节点传输至所述第i个校验节点的第一LLR值,所述表示βij表示所述第j个变量节点传输至所述第i个校验节点的第一LLR值的绝对值,所述M表示所述M个校验节点,所述Vi表示所述第i个校验节点关联的至少一个变量节点,所述i表示所述第i个校验节点,所述j表示所述第j个变量节点。
再次,本申请实施例中,介绍了一种计算第二LLR序列的实现方式,即利用校验节点和变量节点共同计算得到第二LLR序列。通过上述方式,提升了计算第二LLR序列的可靠性和可操作性,并且采用较为简易的公式进行计算,有利于提升计算效率。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的译码处理装置30的另一实施例中,
所述确定模块302,具体用于根据所述第二LLR序列和每个校验节点的概率分布值,计算所述第一互信息量。
其次,本申请实施例中,译码处理装置可以根据第二LLR序列和每个校验节点的概率分布值,计算第一互信息量。通过上述方式,译码处理装置能够计算得到互信息量,从而提升方案的可行性和可操作性。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的译码处理装置30的另一实施例中,
所述确定模块302,具体用于按照如下公式计算所述第一互信息量:
Figure BDA0001490173460000181
其中,所述I表示所述第一互信息量,所述lci表示所述第二LLR序列中第i个校验节点所对应的第二LLR值,所述p(lci)表示所述lci的概率分布值,所述i表示所述第i个校验节点,所述M表示所述M个校验节点。
再次,本申请实施例中,介绍了一种计算互信息量的实现方式,即利用校验节点和概率分布值计算得到互信息量,而概率分布值可以是校验节点个数的倒数,对数计算可以通过查表得到。通过上述方式,能够降低硬件的复杂度。
可选地,在上述图6所对应的实施例的基础上,本申请实施例提供的译码处理装置30的另一实施例中,
所述获取模块301,还用于所述确定模块302根据所述第二LLR序列确定所述至少一个校验节点所对应的第一互信息量之后,若所述第一互信息量小于所述预设门限,则获取第三LLR序列,并根据所述第三LLR序列确定第四LLR序列,其中,所述第三LLR序列为不同于所述第一LLR序列的另一组LLR序列;
所述确定模块302,还用于根据所述第四LLR序列确定所述M个校验节点所对应的第二互信息量;
所述译码模块303,还用于若所述所述确定模块302确定的所述第二互信息量大于或等于所述预设门限,则对所述第三LLR序列进行译码,以获得译码结果。
进一步地,本申请实施例中,首先译码处理装置获取第一对数似然比LLR序列,其中,第一LLR序列中包含多个第一LLR值,然后根据第一LLR序列确定第二LLR序列,在根据第二LLR序列确定M个校验节点所对应的第一互信息量,若第一互信息量小于预设门限,则译码处理装置将获取下一组LLR序列进行第二互信息量的计算,直到选择满足条件的LLR序列。通过上述方式,如果一组LLR序列对应的互信息量小于预设门限,则可以选用下一组LLR序列进行互信息量的计算,直到得到大于或等于预设门限的互信息量,从而选择该互信息量所对应的LLR序列,以此LLR序列的准确度。
可选地,在上述图6所对应的实施例的基础上,请参阅图7,本申请实施例提供的译码处理装置30的另一实施例中,所述译码处理装置30还包括判断模块304;
所述判断模块304,用于若所述第一互信息量与所述第二互信息量均小于所述预设门限,则判断所述第一互信息量是否大于所述第二互信息量;
所述译码模块303,还用于若所述判断模块304判断得到所述第一互信息量大于所述第二互信息量,则使用所述第一互信息量所对应的所述第一LLR序列进行译码,以获得译码结果;
所述译码模块303,还用于若所述判断模块304判断得到所述第一互信息量小于所述第二互信息量,则使用所述第二互信息量所对应的所述第三LLR序列进行译码,以获得译码结果。
更进一步地,本申请实施例中,如果在LLR序列都不满足预设门限的情况下,则译码处理装置会优先选择互信息量最大的LLR序列,从而提升LLR序列的准确度。
本申请实施例意在快速提升LLR序列的准确度,利用LDPC译码器中校验节点互信息最大原则选择最佳LLR序列值,一方面提升LDPC译码成功率,另一方面降低LLR序列的筛选延时。该实施例控制器的译码处理装置主要结构如图8所示,请参阅图8,图8为本申请实施例中译码处理装置的一个结构示意图,系统将pattern序列输入到基本LLR选择模块,该基本LLR选择模块对pattern序列进行初始化LLR赋值,并将数据送至译码模块,通过校验节点LLR计算模块计算每个校验节点的LLR值,之后由校验节点互信息计算模块计算校验节点和码字之间的互信息量,最后判定模块根据互信息大小判断是否进行译码。如果互信息不大于给定阈值,可换一组初始LLR值重新计算;若所有初始LLR值对应的互信息都未超过阈值,可选择互信息最大的进行译码。
本实施例通过对LDPC软译码算法进行改进,通过利用校验节点的互信息来对LLR值进行调整,使用半次迭代筛选最佳的LLR序列,一方面增加LLR序列的精度,提升LDPC软译码的成功率,另一方面缩短了LLR序列的筛选周期。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (18)

1.一种译码处理的方法,其特征在于,所述方法应用于译码处理装置,所述译码处理装置包含N个变量节点以及M个校验节点,所述N为大于0的正整数,所述M为大于0的正整数,所述方法包括:
获取第一对数似然比LLR序列,其中,所述第一LLR序列中包含多个第一LLR值,所述多个第一LLR值中的每个第一LLR值与所述N个变量节点中的每个变量节点一一对应;
根据所述第一LLR序列确定第二LLR序列,其中,所述第二LLR序列包含多个第二LLR值,所述多个第二LLR值中的每个第二LLR值与所述M个校验节点中的每个校验节点一一对应,所述每个校验节点与至少一个变量节点具有关联关系;
根据所述第二LLR序列确定所述M个校验节点所对应的第一互信息量;
若所述第一互信息量大于或等于预设门限,则对所述第一LLR序列进行译码,以获得译码结果。
2.根据权利要求1所述的方法,其特征在于,所述获取第一对数似然比LLR序列,包括:
从缓存数据中获取样本序列;
将所述多个第一LLR值赋值于所述样本序列,以得到所述第一LLR序列。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一LLR序列确定第二LLR序列,包括:
根据所述第一LLR序列获取所述每个校验节点的所述至少一个变量节点;
根据所述至少一个变量节点所对应的第一LLR值计算所述第二LLR序列。
4.根据权利要求3所述的方法,其特征在于,所述根据所述至少一个变量节点所对应的第一LLR值计算所述第二LLR序列,包括:
按照如下公式计算所述第二LLR序列:
Figure FDA0002816830130000011
lc1,lc2,...,lcM
其中,所述lc1,lc2,...,lcM表示所述第二LLR序列,所述lci表示第i个校验节点的第二LLR值,所述αij表示第j个变量节点传输至所述第i个校验节点的第一LLR值,所述βij表示所述第j个变量节点传输至所述第i个校验节点的第一LLR值的绝对值,所述M表示所述M个校验节点,所述Vi表示所述第i个校验节点关联的至少一个变量节点,所述i表示所述第i个校验节点,所述j表示所述第j个变量节点。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第二LLR序列确定所述M个校验节点所对应的第一互信息量,包括:
根据所述第二LLR序列和每个校验节点的概率分布值,计算所述第一互信息量。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第二LLR序列和所述每个校验节点的概率分布值,计算所述第一互信息量:
按照如下公式计算所述第一互信息量:
Figure FDA0002816830130000021
其中,所述I表示所述第一互信息量,所述lci表示所述第二LLR序列中第i个校验节点所对应的第二LLR值,所述p(lci)表示所述lci的概率分布值,所述i表示所述第i个校验节点,所述M表示所述M个校验节点。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述根据所述第二LLR序列确定所述至少一个校验节点所对应的第一互信息量之后,所述方法还包括:
若所述第一互信息量小于所述预设门限,则获取第三LLR序列,并根据所述第三LLR序列确定第四LLR序列,其中,所述第三LLR序列为不同于所述第一LLR序列的另一组LLR序列;
根据所述第四LLR序列确定所述M个校验节点所对应的第二互信息量;
若所述第二互信息量大于或等于所述预设门限,则对所述第三LLR序列进行译码,以获得译码结果。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
若所述第一互信息量与所述第二互信息量均小于所述预设门限,则判断所述第一互信息量是否大于所述第二互信息量;
若所述第一互信息量大于所述第二互信息量,则使用所述第一互信息量所对应的所述第一LLR序列进行译码,以获得译码结果;
若所述第一互信息量小于所述第二互信息量,则使用所述第二互信息量所对应的所述第三LLR序列进行译码,以获得译码结果。
9.一种译码处理装置,其特征在于,所述译码处理装置包含N个变量节点以及M个校验节点,所述N为大于0的正整数,所述M为大于0的正整数,所述译码处理装置包括:
获取模块,用于获取第一对数似然比LLR序列,其中,所述第一LLR序列中包含多个第一LLR值,所述多个第一LLR值中的每个第一LLR值与所述N个变量节点中的每个变量节点一一对应;
确定模块,用于根据所述获取模块获取的所述第一LLR序列确定第二LLR序列,其中,所述第二LLR序列包含多个第二LLR值,所述多个第二LLR值中的每个第二LLR值与所述M个校验节点中的每个校验节点一一对应,所述每个校验节点与至少一个变量节点具有关联关系;
所述确定模块,用于根据所述第二LLR序列确定所述M个校验节点所对应的第一互信息量;
译码模块,用于若所述确定模块确定的所述第一互信息量大于或等于预设门限,则对所述第一LLR序列进行译码,以获得译码结果。
10.根据权利要求9所述的译码处理装置,其特征在于,
所述获取模块,具体用于从缓存数据中获取样本序列;
将所述多个第一LLR值赋值于所述样本序列,以得到所述第一LLR序列。
11.根据权利要求9所述的译码处理装置,其特征在于,
所述确定模块,具体用于根据所述第一LLR序列获取所述每个校验节点的所述至少一个变量节点;
根据所述至少一个变量节点所对应的第一LLR值计算所述第二LLR序列。
12.根据权利要求11所述的译码处理装置,其特征在于,
所述确定模块,具体用于按照如下公式计算所述第二LLR序列:
Figure FDA0002816830130000031
lc1,lc2,...,lcM
其中,所述lc1,lc2,...,lcM表示所述第二LLR序列,所述lci表示第i个校验节点的第二LLR值,所述αij表示第j个变量节点传输至所述第i个校验节点的第一LLR值,所述βij表示所述第j个变量节点传输至所述第i个校验节点的第一LLR值的绝对值,所述M表示所述M个校验节点,所述Vi表示所述第i个校验节点关联的至少一个变量节点,所述i表示所述第i个校验节点,所述j表示所述第j个变量节点。
13.根据权利要求11所述的译码处理装置,其特征在于,
所述确定模块,具体用于根据所述第二LLR序列和每个校验节点的概率分布值,计算所述第一互信息量。
14.根据权利要求13所述的译码处理装置,其特征在于,
所述确定模块,具体用于按照如下公式计算所述第一互信息量:
Figure FDA0002816830130000032
其中,所述I表示所述第一互信息量,所述lci表示所述第二LLR序列中第i个校验节点所对应的第二LLR值,所述p(lci)表示所述lci的概率分布值,所述i表示所述第i个校验节点,所述M表示所述M个校验节点。
15.根据权利要求9至14中任一项所述的译码处理装置,其特征在于,
所述获取模块,还用于所述确定模块根据所述第二LLR序列确定所述至少一个校验节点所对应的第一互信息量之后,若所述第一互信息量小于所述预设门限,则获取第三LLR序列,并根据所述第三LLR序列确定第四LLR序列,其中,所述第三LLR序列为不同于所述第一LLR序列的另一组LLR序列;
所述确定模块,还用于根据所述第四LLR序列确定所述M个校验节点所对应的第二互信息量;
所述译码模块,还用于若所述确定模块确定的所述第二互信息量大于或等于所述预设门限,则对所述第三LLR序列进行译码,以获得译码结果。
16.根据权利要求15所述的译码处理装置,其特征在于,所述译码处理装置还包括判断模块;
所述判断模块,用于若所述第一互信息量与所述第二互信息量均小于所述预设门限,则判断所述第一互信息量是否大于所述第二互信息量;
所述译码模块,还用于若所述判断模块判断得到所述第一互信息量大于所述第二互信息量,则使用所述第一互信息量所对应的所述第一LLR序列进行译码,以获得译码结果;
所述译码模块,还用于若所述判断模块判断得到所述第一互信息量小于所述第二互信息量,则使用所述第二互信息量所对应的所述第三LLR序列进行译码,以获得译码结果。
17.一种译码处理装置,其特征在于,包括:存储器、收发器以及处理器;
其中,所述存储器用于存储程序和指令;
所述收发器用于在所述处理器的控制下接收或发送信息;
所述处理器用于执行所述存储器中的程序;
所述处理器用于调用所述存储器中的程序指令,使得所述译码处理装置执行如权利要求1或8中任一项所述的方法。
18.一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至8中任一项所述的方法。
CN201711242846.6A 2017-11-30 2017-11-30 一种译码处理的方法及译码处理装置 Active CN109861693B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711242846.6A CN109861693B (zh) 2017-11-30 2017-11-30 一种译码处理的方法及译码处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711242846.6A CN109861693B (zh) 2017-11-30 2017-11-30 一种译码处理的方法及译码处理装置

Publications (2)

Publication Number Publication Date
CN109861693A CN109861693A (zh) 2019-06-07
CN109861693B true CN109861693B (zh) 2021-03-30

Family

ID=66888685

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711242846.6A Active CN109861693B (zh) 2017-11-30 2017-11-30 一种译码处理的方法及译码处理装置

Country Status (1)

Country Link
CN (1) CN109861693B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112073153B (zh) * 2020-09-15 2022-09-27 展讯通信(上海)有限公司 虚检判断方法及装置、存储介质、终端
CN112118016B (zh) * 2020-09-22 2022-07-19 展讯通信(上海)有限公司 译码控制方法及装置、终端、存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1341294A (zh) * 1999-12-27 2002-03-20 三菱电机株式会社 通信装置以及通信方法
JP2005073189A (ja) * 2003-08-28 2005-03-17 Sony Corp 符号化装置及び符号化方法、復号装置及び復号方法、並びにコンピュータ・プログラム
CN101946415A (zh) * 2008-02-14 2011-01-12 夏普株式会社 解码装置、解码方法、解码程序、接收装置以及通信系统
CN102387116A (zh) * 2010-09-01 2012-03-21 株式会社Ntt都科摩 无线通信系统中解码接收信号的接收机和方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370711B2 (en) * 2008-06-23 2013-02-05 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1341294A (zh) * 1999-12-27 2002-03-20 三菱电机株式会社 通信装置以及通信方法
JP2005073189A (ja) * 2003-08-28 2005-03-17 Sony Corp 符号化装置及び符号化方法、復号装置及び復号方法、並びにコンピュータ・プログラム
CN101946415A (zh) * 2008-02-14 2011-01-12 夏普株式会社 解码装置、解码方法、解码程序、接收装置以及通信系统
CN102387116A (zh) * 2010-09-01 2012-03-21 株式会社Ntt都科摩 无线通信系统中解码接收信号的接收机和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A Mutual Information Approach for Comparing LLR Metrics for Iterative Decoders;J. Zhang等;《2009 IEEE International Conference on Communications》;20090618;正文第Ⅱ节,图1 *

Also Published As

Publication number Publication date
CN109861693A (zh) 2019-06-07

Similar Documents

Publication Publication Date Title
US10411735B1 (en) Systems and methods for an iterative decoding scheme
JP5992628B2 (ja) 信頼性データの更新
JP5112468B2 (ja) 誤り検出訂正回路、メモリコントローラ、および半導体メモリ装置
KR20210096679A (ko) 인코딩된 데이터를 디코딩하기 위한 신경망 및 시스템
KR20170020305A (ko) 체크 노드 계산유닛을 관리하는 방법, 장치, 및 상기 방법을 실행하기 위한 소프트웨어
US20110191653A1 (en) Quasi-cyclic ldpc encoding and decoding for non-integer multiples of circulant size
CN1767397A (zh) 低密度奇偶校验码的高效解码装置和方法
WO2019015592A1 (zh) 一种Polar码编码方法及装置
CN109861693B (zh) 一种译码处理的方法及译码处理装置
JP5971670B2 (ja) 誤り訂正復号装置
JP7091375B2 (ja) エンコーディング方法および装置、コンピュータ記憶媒体
KR102355082B1 (ko) 채널 편파 코드의 연속 제거 리스트 디코딩을 위한 효율적인 생존 메모리 아키텍처
CN111384972B (zh) 多进制ldpc解码算法的优化方法、装置及解码器
WO2023246473A1 (zh) 一种译码方法、芯片及相关装置
CN111162796B (zh) 基于ldpc编码器的数据处理方法、装置及终端
KR20160116980A (ko) Ldpc 복호기의 vss 알고리즘을 위한 h 행렬의 스케줄링 장치 및 그 방법
CN114978195A (zh) 一种极化码串行抵消列表译码码字相关的错误图样集搜索方法及系统
CN110708077B (zh) Ldpc码大数逻辑译码方法、装置和译码器
CN111224674B (zh) 多进制ldpc码的解码方法、装置及解码器
US11855772B2 (en) High throughput polar ECC decoding via compressed successive cancellation algorithm
WO2020078113A1 (zh) 基于低密度奇偶校验码的译码方法及装置
CN111384976A (zh) 稀疏校验矩阵的存储方法和读取方法
CN116662063B (zh) 一种闪存的纠错配置方法、纠错方法、系统、设备及介质
US11316541B2 (en) Low-density parity-check (LDCP) decoder of reconstruction-computation-quantization (RCQ) approach for a storage device
CN111384973B (zh) 多进制ldpc解码算法的优化方法、装置及解码器

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