(57)【要約】【課題】低密度パリティ検査（LDPC）デコーダに応用する演算方法、及び、その回路を提供する。【解決手段】本発明の低密度パリティ検査（LDPC）デコーダに応用する演算方法、及び、その回路は、元のビットノードをチェックノード中へ併入して同時に演算を実行し、元のチェックノードの入力メッセージを利用するだけで、新しいビットノードメッセージを生成し、チェックノードは本来の演算を再実行する時、同時に、新しいチェックノード出力メッセージと元のチェックノードの入力メッセージにより、ビットノードのメッセージを更新し、チェックノードが得るメッセージにより、本来のチェックノードの演算を実行するだけでなく、本来のビットノードの出力メッセージも同時に生成する。これにより、LDPCデコーダに必要なメモリ数量を効果的に減少させるだけでなく、デコード速度も増加できる。【選択図】図３
2008154298.tif 000002
【特許請求の範囲】
【請求項１】
低密度パリティ検査（LDPC）デコーダに応用する演算方法であって、
各チェックノード運算の入力メッセージを記録する工程と、
前記入力メッセージに基づいて、チェックノードに出力メッセージを生成させる工程と、
前記出力メッセージと前のチェックノードが生成する出力メッセージにより、新しいビットノードメッセージを生成する工程と、
前記チェックノードが新しい出力メッセージを生成する時、この新しい出力メッセージと前記入力メッセージにより、前記ビットノードメッセージの全てを更新する工程と、
からなることを特徴とする低密度パリティ検査（LDPC）デコーダに応用する演算方法。
【請求項２】
前記入力メッセージ、前記出力メッセージ、及び、前記ビットノードメッセージは、共用メモリ中に保存されることを特徴とする請求項１に記載の低密度パリティ検査（LDPC）デコーダに応用する演算方法。
【請求項３】
前記チェックノードの前記入力メッセージは、チャンネル序列の累加値であることを特徴とする請求項１に記載の低密度パリティ検査（LDPC）デコーダに応用する演算方法。
【請求項４】
前記新しい出力メッセージは、新しいチェックノード序列と前のチェックノード序列の差異値であることを特徴とする請求項１に記載の低密度パリティ検査（LDPC）デコーダに応用する演算方法。
【請求項５】
低密度パリティ検査（LDPC）デコーダに応用する演算回路であって、
少なくとも一組のチャンネルのチェックノード序列メッセージと前のチェックノード序列メッセージを減法して差異値を生成する少なくとも一つの第一減法器と、
前記差異値と前のチェックノード演算の累加値を加算して、新しい累加値を得て、ビットノードメッセージを更新する少なくとも一つの加法器と、からなる第一ステージチェックノードプロセッサと、
前記の新しい累加値に基づいて演算すると共に、デコード済みビットを出力する第二ステージチェックノードプロセッサと、
からなることを特徴とする低密度パリティ検査（LDPC）デコーダに応用する演算回路。
【請求項６】
前記第一ステージチェックノードプロセッサ中、更に、二個以上のチャンネルの演算を同時に実行でき、この時、それぞれ、二組以上の第一減法器により、二組のチャンネルのチェックノード序列メッセージと前のチェックノード序列メッセージを減法して二差異値を生成し、更に、差異値加法器により、前記二差異値を加算後、前記加法器中に伝送して演算することを特徴とする請求項５に記載の低密度パリティ検査（LDPC）デコーダに応用する演算回路。
【請求項７】
前記加法器の累加後、前記累加値が元のデータビット数を超過する場合、まず、削減ユニットにより、余分なビット数を削減することを特徴とする請求項５に記載の低密度パリティ検査（LDPC）デコーダに応用する演算回路。
【請求項８】
前記チェックノード序列メッセージは、一つの高速レジスタ中に暫時保存されることを特徴とする請求項５に記載の低密度パリティ検査（LDPC）デコーダに応用する演算回路。
【請求項９】
前記累加値と新しい累加値は、同一のメモリ中に保存されることを特徴とする請求項５に記載の低密度パリティ検査（LDPC）デコーダに応用する演算回路。
【請求項１０】
前記チェックノード序列メッセージと前記前のチェックノード序列メッセージの減法前、まず、二の補数に累加することを特徴とする請求項５に記載の低密度パリティ検査（LDPC）デコーダに応用する演算回路。
【請求項１１】
前記第一ステージチェックノードプロセッサと前記第二ステージチェックノードプロセッサは、少なくとも一つの交換メッセージユニットにより、共有メモリにアクセスすることを特徴とする請求項５に記載の低密度パリティ検査（LDPC）デコーダに応用する演算回路。
【請求項１２】
前記第一ステージチェックノードプロセッサと前記第二ステージチェックノードプロセッサは、それぞれ、交換メッセージユニットにより、共有メモリにアクセスすることを特徴とする請求項５に記載の低密度パリティ検査（LDPC）デコーダに応用する演算回路。
【請求項１３】
前記第一ステージチェックノードプロセッサと前記第二ステージチェックノードプロセッサ、前記交換メッセージユニットは、デコードコントローラーにより制御されることを特徴とする請求項１１に記載の低密度パリティ検査（LDPC）デコーダに応用する演算回路。
【請求項１４】
前記第一ステージチェックノードプロセッサと前記第二ステージチェックノードプロセッサ、前記交換メッセージユニットは、デコードコントローラーにより制御されることを特徴とする請求項１２に記載の低密度パリティ検査（LDPC）デコーダに応用する演算回路。
【請求項１５】
前記第一ステージチェックノードプロセッサは、更に、第二減法器を有し、前記新しい累加値と演算済みの前のチェックノード入力メッセージが減法され、比較入力値を生成し、前記第二ステージチェックノードプロセッサは、前記比較入力値に基づいて演算されて、前記デコード済みビットを出力することを特徴とする請求項５に記載の低密度パリティ検査（LDPC）デコーダに応用する演算回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、チャンネルコーディングに応用するデコーダ技術に関するものであって、特に、低密度パリティ検査（Low density parity check，LDPC）デコーダに応用する方法、及び、その演算回路に関するものである。
【背景技術】
【０００２】
エラー訂正符号の作用は、これらの伝送過程で、伝送媒介の確実性がよくない、或いは、外的要素の干渉により破壊されたデータを還元することである。低密度パリティ検査（Low density parity check，LDPC）符号は、シャノンリミットに近い強力なデコーダにより表現され、且つ、LDPCは、高性能で高速のチャンネルコーディング技術であり、将来、通信データ量がGb/sに達する時、LDPG符号は幅広く応用される。
【０００３】
高速通信システム中、LDPCデコーダのデコード工程は、まず、デコーダに初期化工程を実行し、次に、チェックノード（check node）、ビットノード（bit node）の順に更新する。更新完成後、シリアルデータ中のスタック数目が所定の最大スタック数を超過していないか、或いは、デコード後のビットがチェックマトリクス（check  matrix）制限を満たしているかを判断し、もしそうならば、全工程を終了し、デコード済みのビットを出力し、そうでなければ、終了まで前述の工程をリピートする。
【０００４】
しかし、LDPCデコーダはデコード工程を二個の位相に分け、図１で示されるように、チェックノード１０とビットノード１２は、通常、ビットノード１２の位相が、チェックノード１０の位相と等しくなるのを待って、累加を開始しなければならず、且つ、デコーダは、同時に、二個のノード１０、１２の出力メッセージを保存する必要があるので、充分なCNP累加メッセージメモリ１４、BNP累加メッセージメモリ１６、を必要とし、それぞれ、チェックノード１０とビットノード１２が生成した出力メッセージを保存する。この前提下で、エンコード長さが長いLDPG符号中、ハードウェア面積が増大し、且つ、複雑度が高くなり、また、デコーダのデコード効率も大幅に低下し、消耗電力が増加する。
【０００５】
よって、前述の問題に対し、低密度パリティ検査デコーダに応用する演算方法、及び、その回路を提供する必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、低密度パリティ検査（LDPC）デコーダに応用する演算方法、及び、その回路を提供することであり、ビットノードメッセージの演算を更新してチェックノード中に合併し、チェックノードの入力メッセージにより、新しいビットノードのメッセージを生成し、一部の新しいチェックノード出力メッセージが生成されるだけで、本来のビットノードメッセージ全てを更新し、更に、メモリとメッセージ交換器のハードウェアスケジューラーにより、メモリの使用数目、及び、メモリの読み書きで消耗する電力を減少させると共に、デコーダの処理量を増加させることができる。
【０００７】
本発明のもう一つの目的は、低密度パリティ検査デコーダに応用する演算方法、及び、その回路を提供し、LDPCデコーダのハードウェアの複雑度、及び、消耗電力を大幅に減少させると同時にデコード速度を増加して、高速無線通信システム中に幅広く応用することである。
【課題を解決するための手段】
【０００８】
上述の目的を達成するため、本発明のLDPCデコーダ演算方法は、各チェックノード運算の入力メッセージを記録し、この入力メッセージに基づいて、チェックノードに出力メッセージを生成させる工程と、この出力メッセージと前のチェックノードが生成する出力メッセージにより、新しいビットノードメッセージを生成する工程と、一部のチェックノードが新しい出力メッセージを生成する時、この新しい出力メッセージと元の入力メッセージにより、ビットノードメッセージの全てを更新する工程と、からなる。
【０００９】
上述の演算方法を完成後、本発明は、更に、LDPCデコーダの演算回路を提供し、チェックノード演算器は二レベルユニットを有し、一つは第一ステージチェックノードプロセッサで、もう一つは第二ステージチェックノードプロセッサである。第一ステージチェックノードプロセッサの作用は、公知のビットノードユニットを代替し、第二ステージチェックノードプロセッサと同時に作動することができ、チェックノード演算完成を待たなくても、ビットノードの演算が実行できる。
【発明の効果】
【００１０】
本発明により、メモリの使用数目、及び、メモリの読み書きで消耗する電力を減少させ、デコーダの処理量を増加させ、LDPCデコーダのハードウェアの複雑度、及び、消耗電力を大幅に減少させると同時にデコード速度を増加して、高速無線通信システム中に幅広く応用することができる。
【発明を実施するための最良の形態】
【００１１】
低密度パリティ検査（LDPC）デコーダは主に、ビットノードとチェックノードの二種の演算を有し、ビットノードとチェックノード間で演算終了のメッセージを交換するが、デコーダ過程で、ビットノードとチェックノードを処理する演算は、大量の処理時間を必要とし、メモリとハードウェアの複雑度が増加し、デコーダのスループット（throughput）が低下する。よって、本発明は、新規の二レベルのチェックノード回路を提供し、本来のチェックノード回路の演算を実行するだけでなく、同時に、元のビットノードの出力メッセージを生成することができる。
【００１２】
図２で示される新しいLDPCデコーダの構造は、入力コントローラー２０を有し、入力されるチャンネル値を受信すると共に、入力チャンネル値をチャンネル値メモリ２２中に保存する。チェックノート演算器２４は、第一ステージチェックノードプロセッサ３６、及び、第二ステージチェックノードプロセッサ３８を有し、演算後の累加値は共用メモリ２６中に保存される。このチェックノード演算器２４は同一の、或いは、異なる交換メッセージユニット２８により、チャンネル値メモリ２２と共用メモリ２６にアクセスし、交換メッセージユニット２８は、ROM対照表３０を有し、アクセス対照とする。且つ、チェックノード演算器２４の出力メッセージは、チェックノード出力メッセージメモリ３２中に保存される。上述の各ユニットは、LDPCデコーダコントローラー３４により制御される。チェックノード演算器２４中の第一ステージチェックノードプロセッサ３６は、公知のビットノードプロセッサの作用を代替する。第一ステージチェックノードプロセッサ３６と第二ステージチェックノードプロセッサ３８は、出力メッセージと入力メッセージを共用して演算を実行するので、メッセージを保存する一つの共用メモリ２６だけがあればよい。
【００１３】
まず、本発明が提供する新しいチェックノード演算方法は、四工程からなる。演算を実行する時、まず、各チェックノード演算の入力メッセージを記録し、主に、第二ステージチェックノードユニットの演算である。続いて、第一ステージチェックノードプロセッサ中で、チェックノードの元の入力方法に基づいて、新しいチェックノード出力メッセージを生成すると共に、新しいチェックノード出力メッセージと前の出力メッセージにより、新しいビットノードメッセージを生成する。一部分の新しいチェックノード出力メッセージがある時、すぐに、この新しい出力メッセージと元のチェックノード入力メッセージと共に、全ビットノードメッセージを更新する。
【００１４】
続いて、上述の演算方法を採用したLDPCデコーダの演算回路を説明する。図３は、第一ステージチェックノードプロセッサ３６を示す図で、図４は、第二ステージチェックノードプロセッサ３８を示す図である。まず、図３で示される第一ステージチェックノードプロセッサ３６の回路構造において、この実施例では二組のチャンネルによる演算を例として説明する。暫時、高速のレジスタ（図示しない）中に保存された新しいチェックノード入力メッセージと、前のチェックノード入力メッセージ（図中の前の Ci、及び、前のCi+1）は、ここで、ｉとｉ＋１メッセージを例として本技術を詳細に説明しているが、もちろん、このチェックノード演算の平行度は、随時に調整できる。この二組の入力メッセージNewCi、及び、New Ci+1とPrevious Ci、及び、Previous Ci+1は、それぞれ、二桁補数（SMからTC）４０に累加される。更に、第一減法器４２により、第一組チャンネルのチェックノード序列入力メッセージNewCと前のチェックノード序列入力メッセージPrevious Ciが減法で、差異値Diffiを生成する。同時に、もう一つの第一減法器４４により、第二組チャンネルのチェックノード序列入力メッセージNew Ciと前のチェックノード序列入力メッセージPrevious Ci+1が減法で、もう一つの差異値Diffi+1を生成する。差異値加法器４６により、二差異値Diff1i、及び、Diffi+1を加算後、差異値累加値Diff Sumを生成すると共に、加法器４８中に伝送して演算を実行する。この加法器４８は、差異値累加値と前のチェックノード演算の累加値（previous  sum）を加算して、新しい総累加値を得る。この時、新しい累加値が元のデータビット数（図で示される８ビット）を超過する場合、まず、削減ユニット５０により、余分なビット数を削減して、共用メモリ中に保存された累加値を更新し、これをビットノードメッセージの更新とする。最後に、第二減法器５２により、ビット数削減済みの新しい累加値と演算済みの前のチェックノード入力メッセージ（Previous Cj）が減法され、比較入力値（compare input）を生成する。previous Cjは変数で、本発明の平行度が一つだけの時、つまり、Ci の差異値は、index j > index iである。平行度が二の場合、つまり、Ciと Ci+1 の差異値はindex j > index (i+1)である。ここで、第一ステージチェックノードプロセッサ３６が生成する比較入力値は第二ステージチェックノードプロセッサ３８に伝送され、図４で示されるように、比較入力値に基づいて演算し、演算と共に、デコード済みビットを出力する。第二チェックノードプロセッサは、図４で示される回路構造に限定されず、この他に、現有のその他のチェックノード回路により代替してもよいので、ここに詳述しない。
【００１５】
前述の実施例中、第二減法法５２を使用し、主に、少なくとも二つのチャンネルを有するチェックノードのメッセージが変更される時だけ、この第二減法器５２が必要である。もし、一つのチェックノードだけが変更される時、第二減法器５２を省略でき、第一減法器４２、４４だけを使用すればよい。
【００１６】
上述の実施例は平行度が二で、二個のチャンネルを有するチェックノードは具体例により本発明の特徴を説明する。もちろん、チェックノードメッセージの到達もL個に増加する。図５で示される第一ステージチェックノードプロセッサ３６は、L組の入力メッセージNew Ci、New Ci+1…、及び、New Ci+LとPrevious Ci、Previous Ci+1…、及び、Previous Ci+Lzp を有し、それぞれ、二の補数（SM から TC）に累加され、更に、減法器により各差異値を生成する。大部分の工程は、前述の図３の実施例と相同で、ビットノードメッセージチャンネル数目が異なるだけである。本発明中、削減ユニット５０は選択的に使用できるので、図５の実施例は、削減ユニットを使用しない例である。
【００１７】
本発明は、本来のチェックノードの入力方法を利用するだけで、新しいビットノードのメッセージを生成し、且つ、チェックノードが本来の演算を実行する時、同時に、新しいチェックノードの出力メッセージと元のチェックノード入力メッセージを利用して、ビットノードのメッセージを更新し、チェックノードにより得られたメッセージは、元のチェックノードの演算を実行することができるだけでなく、同時に、元のビットノードの出力メッセージを生成することができる。これにより、LDPCデコーダに必要なメモリ数量を減少させ、同時に、デコーダが一つの符号語（code  word）を解出するのに必要な時間を減少させる。更に、効果的にメモリの使用帯域幅とメッセージ交換器の使用効率をアレンジする場合、消耗電力も大幅に減少すると同時に、約４０〜５０％の処理量を増加し、特に、特に長い符号語のデコード工程中、もし、公知のLDPCデコード方式だけを採用する場合、更に、多くのメモリと時間を消耗し、本発明の設計は、LDPCデコーダのハードウェアの複雑度と消耗電力を大幅に減少させ、同時に、デコード速度を増加する。
【００１８】
本発明では好ましい実施例を前述の通り開示したが、これらは決して本発明に限定するものではなく、当該技術を熟知する者なら誰でも、本発明の精神と領域を脱しない範囲内で各種の変動や潤色を加えることができ、従って本発明の保護範囲は、特許請求の範囲で指定した内容を基準とする。
【図面の簡単な説明】
【００１９】
【図１】本発明のLDPCデコーダの回路図である。
【図２】本発明のLDPCデコーダに応用する回路図である。
【図３】本発明の第一チェックノードプロセッサを使用する回路構造図である。
【図４】本発明の第二チェックノードプロセッサを使用する回路構造図である。
【図５】本発明のL個のチェックノードメッセージチャンネルを有する第一ステージチェックノードのプロセッサの回路構造図である。
【符号の説明】
【００２０】
10  チェックノード
12  ビットノード
14  CNP累加メッセージメモリ
16  BNP累加メッセージメモリ
20  入力コントローラー
22  チャンネル値メモリ
24  チェックノード演算器
26  共用メモリ
28  交換メッセージユニット
30  ROM対照表
32  チェックノード出力メッセージメモリ
34  LDPCデコードコントローラー
36  第一ステージチェックノードプロセッサ
38  第二ステージチェックノードプロセッサ
40  二の補数に累加（SM から TC）
42  第一減法器
44  第一減法器
46  差異値加法器
48  加法器
50  削減ユニット
52  第二減法器
【図１】
2008154298.tif 000003
【図２】
2008154298.tif 000004
【図３】
2008154298.tif 000005
【図４】
2008154298.tif 000006
【図５】
2008154298.tif 000007