(57)【要約】【課題】メモリが効率的なＬＤＰＣ復号化方法及び装置。【解決手段】メッセージ情報は検査ノード処理操作のため圧縮状態（３１０）で格納される。検査ノードの状態（３２１）は完全に更新され、その後検査ノード至可変ノードメッセージを生成するため抽出プロセス（３１６）を受ける。可変ノードから受信されるメッセージの標識は、メッセージ抽出にて使用するため本発明の検査ノードプロセッサモジュール（３１２）によって格納されてよい。検査ノードプロセッサ（３０８）はメッセージを可変ノード順序（３０４）で処理でき、これにより可変ノードプロセッサと検査ノードプロセッサとが同じ順序でメッセージに働きかけることが可能となり、検査ノードと可変ノードとの間で引き渡されるメッセージをバッファする、及び／又は再順序付けする、必要性を抑えるか、又は解消する。【選択図】      図３
2008508835.tif 000002
【特許請求の範囲】
【請求項１】
低密度パリティ検査（ＬＤＰＣ）復号化操作を実行する装置であって、
検査ノードプロセッサモジュールを備え、同検査ノードプロセッサモジュールは、
ｉ）複数の検査ノードのための複数のメッセージ状態メモリ格納素子を含む検査ノード状態メモリを含み、各検査ノード状態格納素子は単一の検査ノードに対応し、且つ前記検査ノード状態メモリに対応する前記検査ノードに宛てられたメッセージに対応する第１及び第２のメッセージマグニチュード値を格納するため第１及び第２の位置を含む、各ノード状態格納素子はさらに、前記検査ノード状態格納素子に対応する検査ノードに対応する累積標識値を格納するため標識メモリ位置を含み、
ｉｉ）受信される可変ノード至検査ノード状態メッセージの内容に基づき前記検査ノード状態メモリに格納された状態を更新する検査ノードプロセッサ素子を含み、及び、
ｉｉｉ）処理されるべき可変至検査ノードメッセージと同じ検査ノードに対応する検査ノード状態を出力するため前記検査ノード状態メモリを制御する前記検査ノード状態メモリに結合された制御モジュールを含み、前記検査ノード状態は、処理されるべき前記可変至検査ノードメッセージと同じノードに対応する前記検査ノード状態格納素子の内一方から出力される、装置。
【請求項２】
検査ノード至可変ノードメッセージを生成するのに使用するため、ある検査ノードに対応する各受信メッセージに含まれる標識ビットを格納するメッセージ標識メモリをさらに備える、請求項１に記載の装置。
【請求項３】
少なくとも１つの検査ノードに対応する完全に更新された検査ノード状態情報を格納する検査ノード状態バッファメモリをさらに備える、請求項２に記載の装置。
【請求項４】
前記少なくとも１つの検査ノードに対応する完全に更新された検査ノード状態情報は、Ｍ個の可変ノード至検査ノードメッセージの各々から生成された状態情報であって、Ｍは前記少なくとも１つの検査ノードに対応するエッジの数である、請求項３に記載の装置。
【請求項５】
前記少なくとも１つの検査ノードに対応する前記完全に更新された検査ノード状態情報から、そして前記少なくとも１つの検査ノードに対応する格納された標識メッセージ情報から、検査ノード至可変ノードメッセージを生成するため、前記検査ノード状態バッファメモリへ、そして前記メッセージ標識メモリへ結合される、検査ノード至可変ノードメッセージ抽出器をさらに備え、前記少なくとも１つの検査ノードに対応する受信された各受信検査ノード至可変ノードメッセージにつき、１つの検査ノード至可変ノードメッセージが生成される、請求項３に記載の装置。
【請求項６】
前記制御モジュールは、前記検査ノードに対応する状態情報の読み取り元にあたる同じメッセージ状態メモリ格納素子にて、ある検査ノードに対応する更新された状態を格納するため前記検査ノード状態メモリを制御する、請求項５に記載の装置。
【請求項７】
前記検査ノード状態メモリは、復号化を制御するために用いるＬＤＰＣグラフ構造に含まれる各検査ノードにつき１つの検査ノード状態メモリ格納素子を含む、請求項１に記載の装置。
【請求項８】
前記検査ノード状態メモリは、復号化を制御するために用いるＬＤＰＣグラフ構造に含まれる各検査ノードにつき１つの検査ノード状態メモリ格納素子を含む、請求項１に記載の装置。
【請求項９】
前記メッセージ標識メモリは、復号化を制御するために用いるＬＤＰＣグラフ構造に含まれる各メッセージエッジにつき１つの標識ビット格納位置を含む、請求項２に記載の装置。
【請求項１０】
前記検査ノード処理モジュールへ結合される可変ノードプロセッサをさらに備え、前記可変ノードプロセッサモジュールは前記検査ノード処理モジュールから検査ノード至可変ノードメッセージを受信し、且つ前記検査ノード処理モジュールへ供給される可変ノード至検査ノードメッセージを生成する、請求項９に記載の装置。
【請求項１１】
前記検査ノード処理モジュールへ、そして前記可変ノードプロセッサモジュールへ、結合される復号器制御モジュールをさらに備え、前記復号器制御モジュールはメッセージを可変ノード順序で処理するため、前記検査ノード処理モジュールと前記可変ノードプロセッサモジュールの両方を制御する、請求項１０に記載の装置。
【請求項１２】
前記可変ノードプロセッサは、並列に配置された複数の可変ノード処理素子を含む、請求項１１に記載の装置。
【請求項１３】
前記検査ノードプロセッサモジュールは、並列に配置された複数の検査ノード処理素子を含む、請求項１２に記載の装置。
【請求項１４】
前記可変ノードプロセッサと前記検査ノードプロセッサとの間で並行に引き渡されるメッセージを再順序付けするため、前記可変ノードプロセッサモジュールと前記検査ノードプロセッサモジュールとの間に配置される少なくとも１つのメッセージ再順序付け素子がある、請求項１３に記載の装置。
【請求項１５】
前記復号器制御モジュールは、格納されたメッセージの再順序付け情報の関数としてメッセージ再順序付け素子を制御する制御論理を含む、請求項１４に記載の装置。
【請求項１６】
低密度パリティ検査復号化操作を実行する方法であって、
複数の検査ノードによって受信されるメッセージに対応するメッセージ状態情報をメモリに格納することと、
前記複数の検査ノードの内１つへ宛てられた検査ノード入力メッセージを受信することと、
前記複数の組の状態情報の内、状態更新操作で使用すべき１組を前記受信メッセージの宛先にあたる前記検査ノードに基づき選択することと、
選択された組のメッセージ状態情報を前記メモリから回収することと、
選択された組のメッセージ状態情報を前記受信メッセージの関数として更新することと、
の各ステップを備える、方法。
【請求項１７】
前記更新された組のメッセージ状態情報を、前記メッセージ状態情報の回収元にあたるメモリ位置へ書き込むことをさらに備える、請求項１６に記載の方法。
【請求項１８】
前記受信する、選択する、回収する、及び更新するステップを、受信する複数のメッセージの各々につき、前記受信メッセージに対応するエッジがＬＤＰＣ符号を表すグラフの中で可変処理ノードへ取り付けられる順序に一致する第１の順番で、順次に繰り返すことをさらに備える、請求項１７に記載の方法。
【請求項１９】
前記受信メッセージに対応するエッジが前記ＬＤＰＣ符号を表すグラフの中で可変処理ノードへ取り付けられる順序に一致する前記順番は、前記受信メッセージに対応するエッジが前記ＬＤＰＣ符号を表すグラフの中で制約処理ノードへ取り付けられる第２の順番と異なる、請求項１８に記載の方法。
【請求項２０】
１組の可変至検査ノードメッセージ一式が受信済みである検査ノードに対応する少なくとも１組の状態情報に対し、検査ノード至可変ノード抽出操作を実行することをさらに備える、請求項１８に記載の方法。
【請求項２１】
複数の検査ノード至可変ノードメッセージを生成するため前記抽出操作を実行することをさらに備え、前記複数の可変ノードの内の１個へ宛てられる検査ノード至可変ノードメッセージは、前記複数の可変ノードの内の前記１個へ宛てられる一連の検査ノード至可変ノードメッセージを作るため連続的に生成される、請求項２０に記載の方法。
【請求項２２】
少なくとも１つの他の検査ノードの状態更新を完了する前に、前記第１の検査ノードに対応する完全に更新された状態を生成するため、第１の検査ノードの状態更新を完全に完了することをさらに備え、ある１つの検査ノードのための状態更新は、その検査ノードの状態が前記検査ノードに対応する複数のメッセージエッジの各々につき一度更新されたときに完全に完了する、請求項１６に記載の方法。
【請求項２３】
前記第１の検査ノードに対応する別の組の状態を、前記少なくとも１つの他の検査ノードの前記状態更新を完全に完了する前に、可変至検査ノードメッセージ処理の第２の反復の一部として更新することをさらに備える、請求項１６に記載の方法。
【請求項２４】
前記第１の検査ノードに対応する前記完全に更新された状態をバッファすることと、
前記バッファされた完全に更新された状態から検査ノード至可変ノードメッセージを抽出することと、
の各ステップをさらに備える、請求項２３に記載の方法。
【請求項２５】
前記バッファされた完全に更新された状態から検査ノード至可変ノードメッセージを抽出する前記ステップは、
前記完全に更新された状態と、前記完全に更新された状態を生成するため使用される複数の可変ノード至検査ノードメッセージに対応する格納された標識情報とから、複数の発信メッセージを生成することを含む、請求項２４に記載の方法。
【請求項２６】
第１の複数の検査ノードのための状態更新を、第２の複数の検査ノードに対応する状態更新を完了する前に完全に完了することをさらに備え、ある１つの検査ノードのための状態更新は、その検査ノードの状態が前記検査ノードに対応する複数のメッセージエッジの各々につき一度更新されたときに完全に完了する、請求項１６に記載の方法。
【請求項２７】
第１及び第２の複数の検査ノードは、復号化を制御するために用いる実施ＬＤＰＣ符号構造を表すＬＤＰＣグラフの中で総検査ノード数の少なくとも２０％を各々含む、請求項２６に記載の方法。
【請求項２８】
前記更新する操作は、第１の組の検査ノードに対応する状態情報の部分更新として実行される、請求項１６に記載の方法。
【請求項２９】
第１の組の検査ノードの前記更新は、第１の組の可変至検査ノードメッセージを使用し第１の期間中に実行され、この方法はさらに、
第２の組の検査ノードに対応する状態情報を第２の期間中に更新することを備え、前記第２の組の検査ノードは前記第１の組の検査ノードに含まれない検査ノードだけを含み、前記第２の期間は前記第１の期間の後に続く、請求項２８に記載の方法。
【請求項３０】
前記第２の期間中に前記第１の組の検査ノードに対応する更新された状態情報から検査ノード至可変ノードメッセージを抽出することをさらに備える、請求項２９に記載の方法。
【請求項３１】
前記第１及び第２の期間は長さが等しい、請求項３０に記載の方法。
【請求項３２】
前記第１及び第２の期間は、第３の組の検査ノードに対応する状態が更新される第３の期間中に隔てられる、請求項３０に記載の方法。
【請求項３３】
前記第１及び第２の組の検査ノードは、復号化を制御するために用いるＬＤＰＣ符号に対応するグラフの中で検査ノードの少なくとも１０％を各々含む、請求項３０に記載の方法。
【請求項３４】
前記第１及び第２の組の検査ノードは、復号化を制御するために用いるＬＤＰＣ符号に対応するグラフの中で検査ノードの少なくとも２０％を各々含む、請求項３０に記載の方法。
【請求項３５】
前記第１の期間は、Ｎ個の可変至検査ノードメッセージを処理するのに要する時間の４０％に満たなく、Ｎは、復号化を制御するために用いるＬＤＰＣ符号に対応するグラフにおける総メッセージエッジ数に等しい、請求項３０に記載の方法。
【請求項３６】
前記第１の期間は、Ｎ個の可変至検査ノードメッセージを処理するのに要する時間の２０％に満たなく、Ｎは、復号化を制御するために用いるＬＤＰＣ符号に対応するグラフにおける総メッセージエッジ数に等しい、請求項３０に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
［発明の背景］
ほぼ全ての形態の電子通信／格納システムは誤り訂正符号を使用する。誤り訂正符号は、データストリームの中に冗長性を導入することによって、これらのシステムにおける情報転送の本質的な不信頼性を補償する。誤り訂正の数学的基礎はＳｈａｎｎｏｎによって確立された。Ｓｈａｎｎｏｎが開発したチャネルの数学的概念では、通信システムにおける信号の歪がランダムプロセスによってモデル化される。Ｓｈａｎｎｏｎの最も基礎的な成果は雑音のあるチャネルの定理であり、これはチャネルのキャパシティ、すなわちチャネルを通じて情報を確実に送達できる最大速度を指定する量を規定する。キャパシティに近い速度での高信頼度伝送は誤り訂正符号の使用を要する。よって誤り訂正符号は、キャパシティに可能な限り接近しつつ、十分な信頼性を達成するべく設計される。誤り訂正符号の実用にあたっては、誤り訂正符号実施の複雑さがさらなる要因として関与する。ターボ符号の発明とその後の低密度パリティ検査（ＬＤＰＣ;low-density parity-check）符号の再発見／開発がもたらした最近の誤り訂正符号化システムの進歩は、Ｓｈａｎｎｏｎのキャパシティに非常に近づくことができる、実現可能な複雑度の符号化システムを提供する。
【０００２】
ＬＤＰＣ符号は、図１に示すグラフ１００のように、しばしばタナーグラフと呼ばれる、二部グラフ（bipartite graph）によってうまく表現される。タナーのグラフでは、１組のノードの中で、可変ノード１０２は符号語のビットに相当し、他の組のノード、検査ノードと呼ばれる場合もある制約ノード１０６は、符号を規定する１組のパリティ検査制約に相当する。エッジ（edge）１０４はグラフの中で可変ノードを制約ノード(constraint node)へ接続する。可変ノードと制約ノードとは、それらがグラフの中でエッジによって結ばれる場合にネイバー(neighbor)であると呼ばれる。通常は、１対のノードが最高でも１本のエッジによって結ばれると仮定する。ＬＤＰＣ符号は、パリティ検査マトリックス２０２を使って同等に表現できる。図２はパリティマトリックス表現の一例を示すものであり、ここに示されたベクトルｘ２０８は、Ｈｘ＝０の場合に限り、符号語（codeword）である。
【０００３】
各々の可変ノードには１ビットの符号語が関連する。場合によっては、これらのビットのいくつかがパンクチャー(puncture)される。パンクチャードビットはある特定の符号構造において望ましく、それらは伝送される符号語から除外される。
【０００４】
可変ノードシーケンスに１対１で関連するビットシーケンスは、各制約ノードにつき、（可変ノードとの関連を介し）制約に隣接するビットの２を法とする和が０になる、すなわちそれらが１の偶数を構成する場合に限り、符号の符号語である。
【０００５】
ＬＤＰＣ符号語を復号するために用いる復号器と復号アルゴリズムは、グラフの中でエッジ沿いにメッセージを交換することによって、そして着信メッセージに基づきノードにて計算を実行することによりこれらのメッセージを更新することによって、作動する。かかるアルゴリズムは一般的にメッセージ引き渡しアルゴリズム(message passing algorithm)と呼ばれるであろう。グラフの中の各可変ノードには、例えば通信チャネルからの観察によって決定される関連ビットの値の推定を示す、受信値と呼ばれる、ソフトビットが最初に提供される。理想的に、別々のビットの推定値は統計的に独立する。実際には、この理想は侵害されることがあり、且つしばしば侵害される。受信値の集まりは受信語(received word)をなす。本願の目的で、例えば通信システムの受信器によって観察される信号を、受信語により識別してよい。
【０００６】
ノードへ、すなわち可変ノードか制約ノードへ、取り付けられるエッジの数は、ノードの度数(degree of the node)と呼ばれる。正規のグラフ又は符号とは、全ての可変ノードが同じ度数を、例えばｊを持ち、且つ全ての制約ノードが同じ度数、例えばｋを持つ、グラフ又は符号である。本発明者らはこの場合に、符号は（ｊ、ｋ）正規符号 (regular code)であると言う。これらは当初Ｇａｌｌａｇｅｒ（１９６１年）によって考究された符号である。「正規」符号とは対照的に、不正規符号(irregular code)は、度数の異なる制約ノード及び／又は可変ノードを有する。例えば、いくつかの可変ノードは度数４、他の可変ノードは度数３、さらに他の可変ノードは度数２であってよい。
【０００７】
不正規符号はその表現及び／又は実施がより煩雑になることがあるが、不正規ＬＤＰＣ符号が正規ＬＤＰＣ符号に比べてより優れた誤り訂正／検知性能を提供できることが判明している。
【０００８】
当初の符号語の再現版を生成するため、ＬＤＰＣ符号化を用いて生成された受信語を、これにＬＤＰＣ復号化操作を、例えば誤り訂正及び検知操作を実行することによって、処理できることは理解されよう。符号化された当初のデータを取り戻すため、復元された符号語はその後データ復号化にかけることができる。データ復号化プロセスは、例えば復元された符号語から特定のビット部分集合を選択するだけでよい。
【０００９】
上で述べたとおり、ＬＤＰＣ復号化操作は一般的にメッセージ引き渡しアルゴリズムを備える。役に立つ可能性のあるメッセージ引き渡しアルゴリズムは数多くあり、かかるアルゴリズムの使用はＬＤＰＣ復号化に限定されない。
【００１０】
以降の節で論述する本発明の理解を促すため、以下に信念伝播(belief propagation)の簡単な数学的説明を与える。
【００１１】
（バイナリ）ＬＤＰＣ符号の信念伝播は以下のとおりに表現できる。グラフのエッジに沿って伝送されるメッセージは、可変ノードに関連するビットの対数尤度（log-likelihood）ｌｏｇ（ｐ０／ｐ１）と解釈される。ここで（ｐ０、ｐ１）は関連ビットにおける条件付き確率分布を表し、ここでｐｘはビットが値ｘを取る確率を示す。受信器によって復号器へ提供されるソフトビットもまた対数尤度の形で与えられる。よって、受信値は、すなわち受信語の要素は、通信チャネルによって提供されるビットの観察を条件とし、関連ビットの対数尤度である。一般的に、メッセージｍは対数尤度ｍを表し、受信値ｙは対数尤度ｙを表す。パンクチャードビットの場合、対数尤度受信値ｙは０に設定され、ｐ０＝ｐ１＝１／２を示す。
【００１２】
信念伝播のメッセージ引き渡し規則を検討する。メッセージは、検査ノードから可変ノードへ至るメッセージの場合にｍＣ２Ｖと表し、可変ノードから検査ノードへ至るメッセージの場合にｍＶ２Ｃと表す。ｄ本のエッジを持つ可変ノードを検討する。各エッジｊ＝１，．．．，ｄにつき、ｍＣ２Ｖ（ｉ）はエッジｉ沿いに着信するメッセージを表すとする。復号化プロセスの初期化のときに、全てのエッジについてｍＣ２Ｖ＝０を設定する。一般的に、可変ノードから発信するメッセージは以下によって与えられる。
【数１】
2008508835.tif 000003
【００１３】
この操作に対応するノードからの発信復号化ソフト値（エッジメッセージではない）は
【数２】
2008508835.tif 000004
【００１４】
によって与えられる。この出力に関連する発信硬判定（outgoing hard decision）はＸｏｕｔの標識から得られる。
【００１５】
検査ノードでは、メッセージをその「標識」とマグニチュードを用いて表すと、しばしばより好都合である。よって、メッセージｍについて、ｍｐ∈ＧＦ［２］はメッセージの「パリティ」を表すとする、つまり、もしもｍ≧０ならｍｐ＝０であり、もしもｍ＜０ならｍｐ＝１である。加えて、ｍｒ∈［０，∞］はｍのマグニチュードを表すとする。こうしてｍ＝−１ｍｐｍｒを得る。検査ノードにおいて、ｍｐとｍｒとの更新は別々である。本発明者らは、度数ｄの検査ノードの場合に、
【数３】
2008508835.tif 000005
【００１６】
を得、ここで全ての加算はＧＦ［２］上であり、且つ、
【数４】
2008508835.tif 000006
【００１７】
を得、ここで加算は実数であり、Ｆ（ｘ）：＝ｌｎ  ｃｏｔｈ（ｘ／２）を定義する。本発明者らはＦがこれ自体の逆であること、すなわちＦ１（ｘ）＝Ｆ（ｘ）であることに着目する。
【００１８】
ＬＤＰＣの文献でしばしば言及されるアルゴリズムは、いわゆるＭＩＮ−ＳＵＭアルゴリズムである。このアルゴリズムで、検査ノードにおける更新操作は以下のとおりに数学的に表現できる。
【数５】
2008508835.tif 000007
【００１９】
よって、Ｃ２Ｖメッセージの信頼度は、他のエッジ沿いに着信するＶ２Ｃメッセージの最低信頼度に等しい。このアルゴリズムを実施するには、検査ノードにて、最も小さい信頼度と２番目に小さい信頼度（それらの値は、もしも少なくとも２つの着信メッセージで発生するなら、同じ可能性がある）とを、そして信頼度が最も低い着信メッセージを提供するエッジの識別性（ｉｄｅｎｔｉｔｙ）を、保存すれば十分である。信頼度が最も低い着信メッセージを発生させているエッジ沿いの発信Ｃ２Ｖメッセージの信頼度は２番目に小さい着信信頼度に等しく、他の全てのエッジの発信Ｃ２Ｖメッセージの信頼度は最も小さい信頼度に等しい。
【００２０】
米国特許第６，６３３，８５６号ではＬＤＰＣ復号器アーキテクチャが説明された。そのアーキテクチャでは、検査ノードから可変ノードへ送信されるメッセージがメモリに格納された。メッセージが、例えば５ビットから構成される場合、そして検査ノードが度数Ｋを持つ場合、それらのメッセージのために用いる記憶域は５Ｋビットである。
【発明の開示】
【００２１】
実施と費用の観点から、ＬＤＰＣ復号器は、構築することが比較的容易く、要求されるハードウェアが比較的少量となる方式で実施するのが、一般的には望ましい。メモリは、多くの復号器設計において主要な構成品にあたる。もしも復号器の実施に要するメモリ量を低い、又は最低限の量に抑えることができ、これによりハードウェア費用が減るなら、望ましいであろう。
【００２２】
使用メモリ量を減らすにあたってメモリ削減は関心事ではあるが、実世界の１つ又は複数の復号化時間制約への不適合を招きかねない、容認し難い処理遅延を課す設計を避けることはしばしば必要である。
【００２３】
上の論述を踏まえ、ただ単にＬＤＰＣ復号器の実施のために、及び／又は比較的少量のメモリで復号化操作を実行できるＬＤＰＣ復号器を製造するために使用できる、メモリが効率的な方法と装置とが望ましいことは明らかであろう。加えて、メモリが効率的な復号器実施を使用しＬＤＰＣ復号化プロセスに多大な遅延を招くことを避けるための方法は望ましく、且つ有益であろう。
【００２４】
［発明の概要］
本発明は、メモリが効率的な方式でＬＤＰＣ復号化操作を実行するための方法と装置とを指向する。本発明の種々の特徴は、例えば１つ又は複数のメッセージ情報圧縮及び／又は展開技法を使用し、メモリが効率的な方式で実施される、検査ノード処理方法及び装置を指向する。本発明のさらなる特徴は、復号化プロセスに甚大な遅延を招くことを避ける符号構造を有するＬＤＰＣ符号の使用により、メモリが効率的なＬＤＰＣ復号器にて、例えば本願にて説明されるタイプの復号器にて、遅延を回避すること及び／又は抑えることを指向する。
【００２５】
本発明の発明者は、ＬＤＰＣ復号器における検査ノード計算に、発信信頼度（outgoing reliability）がわずか２つの値を取り、それらの値の内一方はただ１つのエッジに沿って発信するという性質があること、さらに検査ノードのメッセージ情報を効率的に格納するため、そして検査ノードプロセッサモジュールを効率的に実施するため、この性質を利用できることに気付いた。この性質を利用し、検査ノードの処理中には各エッジにつきメッセージ全体を格納する必要はなく、記憶域は、処理のため、そしてある１つのノードに対応する検査ノード処理が完了したときに出力メッセージを構築するために、必要とされる量にまで抑えられる。メッセージ圧縮を使用することにより、検査ノードプロセッサモジュールに要求される記憶域は、多くの場合、メッセージ圧縮が本発明に従って使用されない実施に比べて、大幅に抑えることができる。
【００２６】
本発明の種々の特徴は、検査ノード処理モジュールを指向する。処理モジュールは、各検査ノードに関連するメッセージに対応するメッセージ情報を圧縮形式で格納する。これを果たすため、例えば１検査ノードにつき１項目を含む、検査ノード状態メモリ(check node state memory)が使用される。検査ノードの状態情報(state information)は、その検査ノードの１組のメッセージ一式ではなく、その検査ノードに対する入力メッセージから生成される情報を含む。よって、状態情報は１組の圧縮されたメッセージ情報に相当する。各々の検査ノードに対応する圧縮された情報は、各々の入力メッセージが、例えば可変ノード至検査ノードメッセージが、受信されるときに更新される。入力メッセージはどんな順序でも受信でき、例えば、個々の検査ノードの入力メッセージは連続的に受信され処理される必要はない。よって本発明によると、ある１つの検査ノードに対応する入力メッセージは、最初に他の検査ノードの全入力メッセージを受信することなく処理でき、その後に、他の検査ノードに対応する入力メッセージが続く。これは、可変至検査ノードメッセージを、ＬＤＰＣグラフの検査ノード側にエッジが現れる順序とは対照的に、可変ノードエッジ順序で受信し処理することを可能にする。よって、可変ノード処理素子にて可変ノード順序でメッセージを処理するなら、本発明の検査ノード処理モジュールにおける処理に先駆け、生成されるメッセージを再順序付けする必要はない。
【００２７】
１個の検査ノードに対応する１組の可変ノード至検査ノードメッセージ一式が処理された後には、検査ノードに関連する１組のメッセージ一式に対応する圧縮されたメッセージ情報にアクセスし、処理する、例えば、本明細書において抽出プロセス（extraction process）とも呼ばれる展開プロセス(decompression process)を行う。抽出プロセスは、例えば実施される特定の符号構造と同符号構造の中での個々の検査ノードの位置とに応じ、個々の検査ノードによって産出されるべき１組の検査ノード至可変ノードメッセージ一式を生成する。
【００２８】
いくつかの実施形態において、各検査ノードにつき格納される状態は２つの値、例えば第１及び第２の値を含む。これらの値はメッセージマグニチュード値(message magnitude value)であってよい。状態はまた、値の内一方に関連するエッジ位置情報を含む。この情報は、特定の検査ノードによって産出される発信メッセージのマグニチュード部分を生成するために使用される状態を表す。信頼度情報を表すメッセージマグニチュード情報に加え、各検査ノードにつき累積標識ビット値(accumulated sign bit value)が格納される。累積標識ビットは検査ノードに至る各入力メッセージの標識ビットをＸＯＲすることによって生成され、これを最後に生成された累積標識ビット値とともに処理することにより、各出力メッセージの標識ビット(sign bit)を生成する。
【００２９】
ある特定の実施形態においては、検査ノードに対応する、受信される各入力メッセージにつき、追加の標識ビット情報が格納される。かかる実施形態において、入力標識ビットは検査ノードエッジで受信される各メッセージから格納される。よってかかる実施形態においては、検査ノードごとの累積標識ビットに加え、検査ノードエッジごとに入力標識ビットが格納され、各エッジは異なる入力メッセージに対応する。
【００３０】
検査ノードが復号化プロセスのかなり後に処理される入力メッセージを可変ノードから受け取らない符号構造を使用することにより、１個の検査ノードに対応する１組の入力メッセージ一式を、その個々の検査ノードからの出力メッセージが生成される前に、処理する必要があるが、少なくともいくつかの検査ノードの出力メッセージは、実施されるグラフ構造の中に存在する１組の可変ノード一式からのメッセージを処理せずとも、生成できる。グラフの一部分に発生する検査ノードの処理を、かなり後に処理される可変ノードからのメッセージに検査ノードが依存しない形に行う利点を考慮に入れる符号を使用することにより、検査ノード出力メッセージ生成にともなうタイミング遅延を減らす、及び／又は最小限に抑えることができる。
【００３１】
ある１つの検査ノードのための検査ノード出力メッセージは、１組の入力メッセージ一式が、例えば各検査ノードエッジにつき１つの入力メッセージが処理された時点で、生成できる。可変ノードへの入力メッセージとなる検査ノード出力メッセージを生成するため、本発明の検査ノード処理モジュールは、検査ノードに関連する検査ノード状態を読み取る。検査ノード処理モジュールは、１エッジのための完全な出力メッセージを、例えば検査ノード至可変ノードメッセージを抽出するため、例えば生成するため、格納されたマグニチュード状態情報から、例えば第１及び第２のマグニチュード値とエッジ識別子から、状態を処理する。このプロセスは、１組の出力メッセージ一式が生成されるまで、検査ノードのエッジごとに繰り返される。検査ノード状態情報の処理は、実質的には展開操作(decompression operation)である。
【００３２】
いくつかの実施形態においては、検査ノードメッセージマグニチュード（信頼度）情報を圧縮状態で格納するためｍｉｎ  ｓｕｍアルゴリズムを使用する。かかる実施形態においては、最小メッセージマグニチュード値と、第２の最小メッセージマグニチュード値と、最小メッセージマグニチュード値に対応するエッジを指示する情報とが、各検査ノードにつき格納される。累積標識ビット情報に加えてこの情報がある。この情報は、情報に対応する特定の検査ノードに対応する入力メッセージが受信されるたびに、特定の検査ノードの入力メッセージの各々が処理されるまで、更新される。
【００３３】
ある１つのエッジに対応する発信メッセージのマグニチュード部分を生成するため、エッジは、最小メッセージ値が受信されたところのエッジを指示する格納されたエッジ識別子に比較される。発信メッセージを生成しようとしているエッジが格納されたエッジ識別子に合致しない場合には、最小メッセージ値が発信メッセージのマグニチュードとして使用される。格納されたエッジ識別子が、発信メッセージを生成しようとするエッジに合致する場合には、第２の最小値が発信メッセージ値として使用される。よって、検査ノードによって生成される発信メッセージのマグニチュードは、最小値か又は第２の最小値のいずれか一方を持つこととなり、第２の最小値は、検査ノードによって受信された最小マグニチュード値を供給した単一のエッジ上で出力される。
【００３４】
計算的に、これは２つの考えられる信頼度、Ａ及びＢ間で多重化（選択）操作を実行すること意味し、ここでＡ及びＢは、２つの考えられる発信マグニチュード値であり、例えば特定の検査ノードによって受信される最小又は第２の最小受信メッセージマグニチュード値である。マグニチュード値Ａ（最小値）が受信されたところのエッジを指示する格納されたエッジ索引にエッジ（可変至検査ノード接続）が合致する場合、第２の発信マグニチュード値Ｂが発信メッセージのマグニチュード部分として選択される。さもなくば、最小マグニチュード値Ａが出力される。
【００３５】
発信メッセージのための標識ビットは様々な方法で生成できる。ある１つの特定の例示的実施形態において、ある１つの検査ノードに対応する累積標識ビット値は、発信メッセージを生成しようとしているエッジに対応する格納された受信標識ビット値に組み合わされ、例えばＸＯＲされ、そのエッジのための発信メッセージの標識ビット値が生成される。このプロセスは、発信メッセージ生成プロセスのマグニチュード生成部分のように、発信メッセージを生成しようとしているエッジごとに繰り返される。
【００３６】
実施の観点から、本発明の検査ノード処理方法には、メッセージ圧縮の使用により検査ノード処理の実施に要するメモリ量を減らすという利点がある。実施の観点から、これは、今日使用され且つ将来の使用が見込まれる、数多くの堅牢な(robust)ＬＤＰＣ符号の場合のように、検査ノードが多数のエッジを有する場合に特に有意義である。
【００３７】
例えば、１つの標識ビットと４つのマグニチュードビットを含む５ビットのメッセージの場合を検討する。上の仮定のもと、検査ノードからの出力情報は凡そＫ＋８＋ｌｏｇ２Ｋビットまで圧縮でき、ここでＫは着信及び発信メッセージの数である。５ビットメッセージの例で、Ｋ個の入力メッセージの各々に対応する標識ビットを格納するためＫ個の格納ビットが使用され、出力メッセージが取る可能性がある２つの考えられるマグニチュード値の、例えば最小入力メッセージマグニチュードと次に最も小さい入力メッセージマグニチュード値の、各々を格納するため８ビットが使用され、第２の信頼度値を受け取ることとなるエッジ（メッセージ）を示すためｌｏｇ２Ｋビットが使用され、他方、他のエッジは最小入力メッセージマグニチュード値を受け取る。高速度ＬＤＰＣ符号の場合のように、もしもＫが大きいなら、このメッセージ情報格納技法の使用は、出力メッセージを生成するプロセスの一部として各受信メッセージに対応するビット一式を格納する実施に比べ、大幅な節約をもたらす。
【００３８】
格納された状態から、例えば最小メッセージマグニチュード、第２の最小メッセージマグニチュード、最小メッセージマグニチュードに対応するエッジ位置、及びエッジの各々に対応する格納された標識ビットから、発信メッセージを生成するため、メッセージ一式が格納される実施形態に比べ、ある程度の余分な処理が要求されるが、代償として、かなりのメモリ節約がありうる。
【００３９】
本発明の検査ノード処理モジュールには、検査ノード処理モジュールへの入力となる可変至検査ノードメッセージを、特定のメッセージ処理順序を顧慮せず受信でき、処理できるという、さらなる利点がある。出力メッセージは、検査ノードへの入力メッセージの各々が処理された後に生成される。
【００４０】
本発明の多数のさらなる特徴と利益とは、以降の詳細な説明から明白となるであろう。
【発明を実施するための最良の形態】
【００４１】
以下の３つの関連出願は参照してここに明示的に組み込まれ、本出願の一部をなすと考えられる、２００１年１０月１０日に出願され、「ＬＤＰＣ符号を復号化するための方法と装置（ＭＥＴＨＯＤＳ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＤＥＣＯＤＩＮＧ  ＬＤＰＣ  ＣＯＤＥＳ）」と題された、米国特許出願第０９／９７５，３３１号、２００２年４月４日に出願され、「パリティ検査復号器で使用するノードプロセッサ（ＮＯＤＥ  ＰＲＯＣＥＳＳＯＲＳ  ＦＯＲ  ＵＳＥ  ＩＮ  ＰＡＲＩＴＹ  ＣＨＥＣＫ  ＤＥＣＯＤＥＲＳ）」と題された、米国特許第出願第１０／１１７，２６４号、２００３年７月１１日に出願され、「ＬＤＰＣ符号を符号化するための方法と装置（ＭＥＴＨＯＤＳ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＥＮＣＯＤＩＮＧ  ＬＤＰＣ  ＣＯＤＥＳ）」と題された、米国特許出願第１０／６１８，３２５号。
【００４２】
本発明の種々の実施形態は、簡素な、例えばハードウェアの複雑度が低い、ＬＤＰＣ復号器アーキテクチャ実施を提供する方法と装置とを指向する。本発明の方法と装置とは、ある特定のアルゴリズムの場合に、検査ノードから送出される信頼度が２つの考えられる値の内一方を取り、それらの値の内一方はただ１つのメッセージエッジに沿って送信されるという知見を有利に活かす。これは、例えばｍｉｎ−ｓｕｍアルゴリズムに、当てはまる。ＬＤＰＣメッセージ情報を圧縮形式で格納するために使用できる他のアルゴリズムの場合にも、例えば、検査ノードから送出される信頼度がわずか２つの考えられる値を取り、それらの値の内一方は、検査ノードに取り付けられたただ１つのメッセージエッジに沿って送信されるという性質を、ｍｉｎ−ｓｕｍアルゴリズムと共有するアルゴリズムの場合にも、同じ条件が存在し得る。
【００４３】
本発明によると、復号化を制御するために使用されるＬＤＰＣ符号構造の中では、各々の検査ノードに状態Ｓが関連する。状態は、現在の復号化反復にて着信メッセージの信頼度（メッセージマグニチュード）情報を含み、これは発信メッセージを生成するために使われる。メッセージｍ１，．．．，ｍｋが導入されたと仮定し、Ｓｋは状態を表すとする。次に、状態更新関数Ｇを仮定し、ある１つの検査ノードに対応する受信可変至検査ノードメッセージを処理した後に帰結する所与の検査ノードの更新済み状態は、以下のとおりに表すことができる。
【００４４】
Ｓk+1＝Ｇ（ｍk+1，Ｓk）
本発明の種々の実施形態によると、状態更新操作は、圧縮形式をとる、検査ノードに対応する複数のメッセージのマグニチュード部分に相当する状態に対して実行される。よって、状態更新操作は着信メッセージを圧縮する。
【００４５】
メッセージ情報を圧縮形式で格納するためのＭＩＮＳＵＭアルゴリズムを使用する実施の場合、格納されるメッセージ状態は、例えば（ｍＡ，ｍＢ，Ａ，ｓ）の形をとってよい。ここで、ｍＡはこれまでのところ状態に対応する検査ノードによって認められる最小着信信頼度（メッセージマグニチュード）であり、ｍＢはこれまでのところ認められる第２の最も小さい信頼度であり、Ａは信頼度ｍＡの着信メッセージを運んだエッジに索引を付すことにより最小値ｍＡを供給したメッセージエッジがどれなのかを指示し、ｓは状態情報が対応する検査ノードに対応する着信メッセージの標識のＸＯＲである。
【００４６】
検査ノードに対応する状態情報の更新を関数Ｇを用いて実行することにより、そして個々の検査ノードに対応する状態を、メッセージの宛先にあたる検査ノードがどれかに応じ着信メッセージにより更新するため、格納でき回収できる復号器実施を提供することにより、ある１つの検査ノードプロセッサに着信するメッセージの順序は本質的に恣意的なものにできる。よって本発明によると、可変至検査ノードメッセージは可変ノード順序で検査ノードプロセッサモジュールに到着でき、メッセージはそれらが受信される順序で処理される。これは、両側（それぞれ可変ノードプロセッサと検査ノードプロセッサとして実施される可変ノードと検査ノード）が、可変ノード順序で更新される、本発明に従い実施される、図４及び５に図示された復号器４００及び５００等のＬＤＰＣ復号器を可能にする。さらに、いくつかの実施形態においては、可変ノードと検査ノードの両方の処理素子が並行に、例えば同時に作動でき、事実作動する。
【００４７】
本発明のかかる復号器実施は、可変ノード処理が可変ノードメッセージ順序で実行され、検査ノード処理が検査ノードメッセージ順序で実行され、格納のためメモリが使用される、復号器実施に比べて、メモリ要求の大幅節約を可能にし、さらに検査ノードプロセッサと可変ノードプロセッサとの間で引き渡されるメッセージの再順序付けを可能にする。
【００４８】
本発明のＬＤＰＣ復号器設計の基礎的な原理と利益のいくつかを説明してきたが、次に本発明の１つ又は複数の特徴を実施する種々の例示的なモジュールとＬＤＰＣ復号器とを説明する。
【００４９】
図３は、本発明に従い実施された、制約ノード処理モジュールとも呼ばれる、検査ノード処理モジュール３００を図解する。モジュール３００は、可変至検査ノード（Ｖ２Ｃ）メッセージを入力３０２を介し、制御情報を制御信号入力３２４を介し、受信し、検査ノード至可変ノード（Ｃ２Ｖ）メッセージを生成し、同メッセージは出力３２２を介して出力される。検査ノード処理モジュール３００は、検査ノード至可変ノードメッセージを生成するために使用できるメッセージ情報を圧縮形式で格納する。
【００５０】
検査ノード処理モジュール３００は、検査ノード状態メモリモジュール３１０と、制御モジュール３０９と、検査ノードプロセッサ素子３０８と、メッセージ標識メモリ３１２と、検査ノード状態バッファメモリ３１４と、検査ノード抽出器３１６とを含み、これらは図３に示すようにともに結合される。図解された実施形態において、各々の受信Ｖ２Ｃメッセージの標識値はマグニチュード値から分離される。マグニチュードメッセージ値は入力３０４を介して検査ノードプロセッサ３０８へ供給され、他方各々の受信メッセージに対応する標識値は検査ノードプロセッサ素子３０８へ供給され、且つメッセージ標識メモリ３１２に格納され、同メッセージ標識メモリは、後ほど格納された状態３２１、３２３から発信Ｃ２Ｖメッセージを生成する際に使用される標識ビットを格納する。
【００５１】
検査ノード状態メモリ３１０は、復号化を制御するために使用される符号構造の各検査ノードにつき、単一の状態メモリ素子３２１、３２３を含み、同状態メモリ素子は、これに対応する特定の検査ノードの状態を格納するために使用される。各々の検査ノード状態メモリ３２１、３２３は、復号化を制御するために使用されるＬＤＰＣグラフ構造に対応する１つの検査ノードに対応する状態情報を格納する。
【００５２】
図３の例で、状態は、上で論述したｍｉｎ  ｓｕｍアルゴリズムに対応する圧縮表現で格納される。項目は、復号化を制御するために使われる１つの完全なＬＤＰＣグラフ表現に含まれるエッジメッセージに対応する処理反復のたびに、項目に対応する検査ノード処理の始めにリセットされる。グラフの反復から反復にいたる検査ノードの処理は、最初の反復が完了する前に、例えばグラフの中にある１つの検査ノードに対応する１組の可変ノード一式が完了した後に、行われてよい。かかる場合に、全組の検査ノード状態情報３２１、３２３のリセットは同時に起こらない。むしろ、ある１つの検査ノードに対応する検査ノード状態は、これが完全に更新され、Ｃ２Ｖメッセージの生成に使用するため検査ノード状態バッファメモリへ供給された後にリセットされる。
【００５３】
各々の状態項目３２１、３２３は、復号化を制御するために用いるグラフ構造の中の１検査ノードに対応する。各々の状態項目３２１、３２３は、Ｓ、すなわち項目に対応する検査ノードに宛てられた各受信Ｖ２Ｃメッセージに対応する標識ビットのＸＯＲにあたる１ビットの値と、同検査ノードに対応する最小受信メッセージマグニチュードを示す最小値ｍＡと、同検査ノードに対応する第２の最小メッセージマグニチュード値ｍＢと、最も低い最小値ｍＡが受信されたところのメッセージエッジを示す索引ＩＡとを含む。
【００５４】
制御信号入力３２４は制御信号を受信し、同制御信号は、復号化を制御するために用いる符号構造の関数として、例えば、グラフのエッジ数の、よって可変及び検査ノード処理素子間で引き渡されるメッセージ数の、関数として、検査ノード処理モジュールの動作を制御するために使用される。制御信号３２４は、ある特定の時間に入力３０２にて受信されるエッジしたがってＶ２Ｃメッセージがどれなのかを、指示する情報を含む。同信号は、Ｖ２Ｃ入力メッセージタイミングと所望のＣ２Ｖ出力メッセージタイミングとの間の関係が固定されているか又は既知であるケースで（通常のケース）、Ｃ２Ｖメッセージ生成を駆動するために役立てることができる。制御信号３２４は、制御モジュール３０９、メッセージ標識メモリ３１２、そして検査ノード読み取りプロセッサ（抽出器）３１６へ供給される。制御モジュール３０９は受信した制御信号をもとに、受信したＶ２Ｃメッセージに対応する検査ノードがどれなのかを判断する。制御モジュールは、更新のため検査ノード状態メモリ３１０から読み取るべき検査ノード状態情報３２１、３２３の組がどれなのかを、受信した制御情報に基づき、判断する。よって制御モジュールは、受信メッセージに対応する検査ノードを、エッジ情報に基づき、判断する。下で論述するとおり、検査ノードプロセッサが受信したメッセージ情報を用いて回収された状態情報を更新した後、更新された状態は、更新される状態の回収元にあたる検査ノード状態項目３２１、３２３へ書き込まれる。このプロセスは、特定の処理反復のときに検査ノードに宛てられた最後のＶ２Ｃメッセージを使ってある特定の検査ノードの検査ノード状態が完全に更新されたことを、制御モジュール３０９が検査ノードプロセッサ素子３０８に合図するまで続く。検査ノードの状態が完全に更新されたところで、検査ノードプロセッサは、検査ノード状態へデフォルト値を書き込むことによって検査ノード状態の値をリセットし、完全に更新された検査ノード状態を、メッセージ抽出で使用するため、検査ノード状態バッファ３１４へ出力する。検査ノード状態バッファメモリ３１４は、項目３２１、３２３と同じ内容を持ち、ただし検査ノードの１組の完全に更新された状態に対応する値を持つ、１つ又は複数の検査ノードのための状態項目を含む。検査ノード状態バッファメモリ３１４は、入力３２４から得る制御信号のベースにて完全に更新された検査ノード情報を格納すべき項目が何かを知る。
【００５５】
検査ノード状態メモリ３１０は、格納されるべき状態情報を受信する更新済み検査ノード状態メッセージ入力３２７と、アクセスするべき検査ノード状態情報３２１、３２３の組がどれなのかを指示し、且つ指示された組の検査ノード状態情報から更新済み状態情報を格納するべきか否か、又は読み取るべきか否かを指示する、制御信号を受信する制御入力３２７とを含む。検査ノード状態メモリから読み取られた検査ノード状態情報３２１又は３２３は、出力３２９を介して出力され、検査ノードプロセッサ素子３０８の状態入力へ供給され、ここで状態更新操作のために使用される。
【００５６】
メモリから回収された１組の状態情報に対し、受信Ｖ２Ｃメッセージに含まれる情報の関数として、検査ノードプロセッサ３０８によって行われる状態更新操作は以下のとおりである。受信Ｃ２Ｖメッセージのマグニチュードｍｒは、受信メッセージの宛先にあたる検査ノードに対応する回収済み状態情報の中の最小マグニチュードｍＡに比較される。
【００５７】
もしもｍｒがｍＡに満たないなら、ｍＢをｍＡに等しく設定することにより更新済みｍＢを作り、ｍＡはｍｒに等しく設定され、これによりｍｒは更新済み最小値となり、以前の最小値は検査ノードにとって現在の第２の最小値となる。加えて、最小ｍＡに対応するメッセージエッジを指摘する索引Ｉは、処理されているメッセージが、例えば更新済みの最小マグニチュード値を提供するメッセージが、受信されたところのメッセージエッジを指摘する。
【００５８】
もしもｍｒがｍＢに満たなく、ただしｍＡより大きいなら、ｍＢはｍｒに等しく設定され、ｍＡ又はＩは変更しない。
【００５９】
もしもｍｒがｍｂに等しいか又はこれより大きいなら、メモリから読み取られたｍＡ、ｍＢ、及びＩの値は変更されず、更新済みの状態は、メモリから読み取られたこれらの要素の値を含む。
【００６０】
受信メッセージ値と格納最小値との相対的マグニチュードにかかわりなく、格納検査ノード状態項目から読み取られる標識ビットにより受信メッセージの標識ビットのＸＯＲを実行することにより、検査ノードの累積標識ビットＳは受信メッセージごとに更新される。ＸＯＲ操作の結果は検査ノードにとって更新済み項目の標識Ｓビットとなり、これは、完全には更新されていない検査ノードの場合にメモリへ書き込まれ、完全に更新された検査ノード項目の場合には検査ノード状態メモリバッファ３１４へ供給される。上で述べたとおり、完全に更新された検査ノード項目の場合には、検査ノード状態の読み取り元にあたる検査ノードの項目３２１、３２３へデフォルト値が書き込まれ、これにより、別のグラフ処理反復のため情報をリセットする。最小ｍＡと第２の最小ｍＢとのデフォルト値は普通、これらの要素が取り得る最大値となる。
【００６１】
上で説明した検査ノード処理及び状態更新技法を踏まえ、検査ノードプロセッサ素子３０８が可変至検査ノードメッセージを恣意的な順序で、例えば検査ノードエッジ順序とは対照的に可変ノードエッジ順序で、処理できることは明白であろう。これは、可変ノードプロセッサが可変ノードエッジ順序で平素作動するとの前提のもと、検査ノードプロセッサ素子３０８がＶ２Ｃメッセージを、可変ノードプロセッサ操作の結果としてそれらが必然的に発生する順序で、処理することを可能にする。
【００６２】
検査ノードの完全に更新された状態情報は、Ｃ２Ｖ出力メッセージを生成するため必要とされる情報の圧縮形式表現をとるので、出力３２２を介し出力される実際のＣ２Ｖメッセージを構築するため、さらなる処理を使用する。検査ノード読み取りプロセッサ、例えば抽出器、３１６は、検査ノード状態メモリ３１４に格納された完全に更新された状態と、メモリ３１２に格納された格納標識値とから（各受信Ｖ２Ｃメッセージにつき１つの標識値３１３、３１５が格納される）、完全なＣ２Ｖメッセージを生成する。
【００６３】
よって、Ｃ２Ｖメッセージを読み取るには、もしも圧縮格納形式を使用しなかったなら必要とされない展開を実行するため、メッセージが圧縮形式で格納されない実施に比べて余分な処理を要する。格納された着信メッセージ標識値３１３、３１５は標識メモリから直に読み取られる。発信Ｃ２Ｖメッセージに関連するメッセージエッジに対応する発信標識を得るため、メモリ３１３から読み取られる各標識値は、ある１つの検査ノードに対応する完全に更新された和ＳによりＸＯＲされる。よって、ある１つのメッセージエッジの発信標識は、そのメッセージエッジで受信されるメッセージ標識と、ＬＤＰＣグラフの中でそのメッセージエッジが取り付けられている検査ノードに対応する１組のメッセージ一式のＸＯＲに対応する累積標識値Ｓとから、生成される。信頼度は、例えばメッセージマグニチュード部分は、検査ノードのため格納された状態に含まれる最小、第２の最小、及びメッセージ索引値から抽出される。もしも読み取られるエッジの索引がＡに一致するなら信頼度ｍＡが出力され、さもなくば信頼度ｍＢが出力される。メッセージエッジ識別子として働く索引Ａを表現するには数多くの可能性がある。簡素なエッジ番号は索引Ａを表現する１つの方法であるが、他の番号付け方式及び／又はエッジ索引付け方法もまた使用してよい。
【００６４】
メッセージ抽出器３１６によって生成されるメッセージマグニチュードはマグニチュード出力３１８にて出力され、他方発信メッセージ標識は出力３２０にて出力され、これらが組み合わされることにより、出力３２２を介し出力される完全なメッセージを形成する。
【００６５】
図３に関し本発明の発明的検査ノード処理モジュール３００を説明してきたが、今度は、本発明による例示的ＬＤＰＣ復号器手段におけるモジュールの使用を、図４を参照しながら、説明する。
【００６６】
図４は、図３に示す検査ノード処理モジュール３００を使用し実施された例示的ＬＤＰＣ復号器４００を示す。復号器４００は、可変ノード処理と検査ノード処理の両方を可変ノードエッジ順序で実行する。復号器４００は、検査ノード処理モジュール３００に加え、復号器制御モジュール４０２と、可変ノード処理素子４０４と、ソフト入力バッファ４０６と、ソフト／ハード出力バッファ４１２と、制約検査モジュール４０８と、反復制御論理回路４１０とを含む。
【００６７】
復号化されるべき入力値は、可変ノード処理素子４０４へロードされる前に、ソフト入力バッファ４０６へ供給される。復号器制御モジュール４０２は、復号化操作の制御に使用されるＬＤＰＣグラフ構造に対応する格納された復号化制御情報に従い、復号器制御信号を生成することを担当する。復号器制御モジュールは、可変ノード処理素子操作はもとより、図３に関し上で論述した検査ノード処理モジュール操作を制御するために用いる制御信号を生成する。復号器制御モジュールの制御のもと、可変ノード処理素子には、入力データの処理すべき部分が、例えばマグニチュード情報と標識ビットとを含む受信メッセージ値が、順次ロードされる。最初の反復のときには、可変ノードＰＥ４０４によって処理されるべき既存制約メッセージはなく、Ｖ２Ｃメッセージは入力データを処理することによって生成される。Ｖ２Ｃメッセージは、可変ノードメッセージエッジ順序で、入力データから生成され、出力される。マグニチュードと標識値とを含む生成されたＶ２Ｃメッセージは、検査ノード処理モジュール３００のＶ２Ｃ入力３０２へ供給される。メッセージは制約検査モジュール４０８にも供給され、他方ソフト／ハード出力ピンポンバッファは、生成される各Ｖ２Ｃメッセージに関連する標識ビットを受け取る。制約検査モジュール４０８は、復号器グラフの１回の反復に対応する受信メッセージ標識値が、所定の復号化制約を、例えばパリティ検査を、満たすか否かを判断するため、検査を行う。もしもメッセージ引き渡し反復の終わりに１組の全Ｖ２Ｃ及びＣ２Ｖメッセージが生成されていたなら、制約検査モジュール４０８はパリティ検査が満たされるか否かを判断する。モジュール４０８は、現在のメッセージ引き渡し復号化反復が首尾よい復号化に帰結したことを検知する場合に復号化完了信号を、あるいは復号化が成功と判断されない場合には反復完了信号を、生成する。制約検査モジュール４０８によって生成された信号は反復制御論理４１０へ供給される。毎回の反復の終わりには、グラフのエッジに対応する格納された標識値を、制約検査が満たされなかったと仮定し軟判定として、又は制約検査が満たされた場合には硬判定として、出力バッファ４１２から出力できる。
【００６８】
反復制御論理４１０は、パリティ検査信号の満足に帰結しなかったメッセージ引き渡し反復の回数が予め選択された回数を過ぎた後に、タイムアウト信号として不首尾の復号化を合図し、あるいはタイムアウトに先駆けパリティ検査が満たされる場合には首尾よい復号化を合図する。よって制御論理４１０は、予め選択された復号化反復回数以内に復号化が首尾よく完了しない場合に復号化Ｉを終結させるタイムアウト関数を含む。
【００６９】
ＬＤＰＣ復号器４００は、可変ノード処理操作と検査ノード処理操作の両方を可変ノードエッジ順序で実行し、これにより、検査ノード処理が検査ノードエッジ順序で実行され、可変ノード処理が可変ノードエッジ順序で実行される他のシステムに比べて、可変ノード及び検査ノード処理素子３０８、４０４間でのメッセージ格納の必要性を抑えるか、又は解消する。さらに、下で論述するとおり、ＬＤＰＣグラフ構造の慎重な選択により、二重の制約ノード状態メモリ項目３２１、３２３一式を提供する必要なく、ＬＤＰＣグラフ構造の各反復の処理に重複を設けることができる。
【００７０】
復号器４００を使用する復号化反復は以下のとおりに進行してよい。可変ノードは一度に１つずつ更新される。検査ノード出力状態メモリと標識メモリとからメッセージが読み取られ、発信検査ノードメッセージが生成される。これらのメッセージは可変ノードにて合計され、その後、標準可変ノード処理を経て合計から差し引かれる。発信メッセージが生成されるにつれ、それらは検査ノードプロセッサへ直に送信され、同検査ノードプロセッサはまた、対応する部分状態をメモリから回収する。状態は更新され、部分状態メモリへ戻される。Ｖ２Ｃメッセージが現在の反復でその制約にとって最後のＶ２Ｃメッセージなら、状態は出力状態メモリへ書き込まれてよく、部分状態メモリはリセットされる。
【００７１】
本発明の検査ノード処理モジュール３００と図４に示す一般的ＬＤＰＣ復号器システムとは、並行な配置で働く複数の制約ノード及び可変ノード処理素子の使用を支援するべく、本発明に従い容易く適合できる。図５の復号器５００は、Ｎ個の制約ノード、制約状態抽出回路、及び可変ノード処理素子を並行に使用しながら作動する。図５の制約検査モジュール３０８’と、反復制御論理３１０’と、バッファ３１２’及び３０６’とは、図４に関し説明した同様に番号が付された素子と同じか又は類似する方式で作動する。検査ノード処理モジュール３００’の他の素子もまた、図４の「’」を含まない同様の番号が付された素子について説明したのと同じか又は類似する方式で働く。ただし図５の実施形態において、素子３０８は、並行に配置されたＮ個の制約プロセッサ３０８を含み、他方制約ノード状態メモリ３２４もまたＮ倍の組の検査ノード状態とともに働くよう設計され、他方制約状態抽出モジュール３１６’はＮ個のメッセージ抽出回路を含む。状態項目の数は、並行に実施されるノードがいくつあるかではなく、グラフの中の検査ノード数によって決まるため、メモリ３１０’が、一度にＮ組の状態情報アクセスを支援する一方で、図４の実施形態に比べて、追加の状態項目を含む必要がないことに留意されたい。
【００７２】
図５の実施形態は、小さいグラフ記述の使用と、復号化を制御することを意図してより大きいグラフを生成するため小さいグラフをいかに修正すべきかについての制御情報とに基づき、Ｎ個のワイド復号化操作を支援するべく設計された復号器制御モジュール５０２を含む。小さいグラフへの修正は、Ｎ個のメッセージの組が並行に引き渡される、可変及び検査ノード処理素子間で引き渡されるメッセージの再順序付けとして、例えばローテーションとして、実施してよい。特に図５の実施形態においては、メッセージが復号器５００の様々な素子間で引き渡されるときにメッセージの再順序付けを制御するためスイッチ５３０、５２６、５２８が使用される。再順序付けは、制御論理５１８に格納されるグラフ記述情報と、制御論理５１８によって駆動される列カウンタ５２０の関数として順列マップ５２２によって生成されるローテーション信号との関数である。検査ノード処理モジュール３００’へ供給されるメッセージの再順序付けを制御するために用いるローテーション制御信号は、可変プレッシング素子５０４の入力へ供給されるメッセージの再順序付けを制御するために用いるローテーション信号のいくつかを、遅延ライン５２４の使用により、遅延させることによって生成される。
【００７３】
検査ノードプロセッサモジュール３００と本発明に従い実施された種々のＬＤＰＣ復号器４００及び５００について説明してきたが、今度は、グラフ設計、ＬＤＰＣ符号構造、そして本発明を実施する復号器において特定のグラフ構造を使用する復号化実施に関し、様々な特徴を説明する。
【００７４】
図５に描かれたような復号器を高速度応用のために実施する場合、ときに投影グラフと呼ばれる、格納されたグラフ記述情報によって記述される小さいグラフは通常、非常に小さくなる、すなわちこれは少数の可変ノードを有することになる。図示されたとおり、アーキテクチャは１クロック周期当たり１回の投影エッジ更新を実行し、これは各クロック周期中にＮ個のメッセージを処理することに相当する。完全なグラフ反復の復号化を、次が始まる前に、終了しなければならない場合には、復号化システムに遅延が導入される。これは、長いパイプライン遅延の場合に、例えば大きいグラフの場合に、非能率を引き起こすことがある。パイプライン遅延は、各エッジが処理を開始した後、エッジの各々に対し復号化操作を完了するため必要とされる、追加のクロック周期である。パイプライン遅延が投影グラフのサイズに対して大きい場合、この追加の遅延は復号器の速度を著しく落とすことがある。
【００７５】
ただし遅延問題は、これが復号器４００で発生しようが、あるいは並列復号器５００で発生しようが、賢明なグラフ設計によって改善できる。
【００７６】
１組の投影可変ノードＶを複数の組に、例えば少なくともＳＶ１とＳＶ２とに、分割でき、ここでＳＶ１はＳＶ２に先行し、さらに１組の投影検査ノードＣを少なくとも２つの組ＳＣ１及びＳＣ２に分割でき、ＳＣ１の中の検査ノードはグラフのエッジによってＳＶ１の中の可変ノードにのみ接続すると仮定する。そこで、もしも処理が可変ノード順序で実行されるなら、可変ノードＶ１に対応するメッセージが最初に処理され、その後に可変ノードＶ２に対応するメッセージが続き、その後に可変ノードＶ３からのメッセージが続く。このような場合、第１の組の検査ノードＳＣ１に対応するメッセージの処理は、ＳＶ１の最後の可変ノードに対応する最後のメッセージが処理されるまでに、あるいはもしもＳＣ１の最後の検査ノードがＳＶ２の最後の可変ノードの最後のエッジへ接続しないならそれ以前に、完了することになる。ＳＣ１の組の検査ノードに対応する完全に完了した状態は、Ｖ２Ｃメッセージの生成に使用するため検査ノード状態メモリに格納でき、その一方で、次のグラフ反復として可変ノードＶ１からのＶ２Ｃメッセージに対する処理を開始できる。よって、制約ノード処理モジュール３００が未完了のグラフ処理反復に対応するＶ２Ｃメッセージをまだ処理している間に、次のグラフ処理反復を開始できる。
【００７７】
この理由は、反復ｎ＋１にて可変ノードＳＶ１の組からのメッセージの処理が始まるときに、Ｃ１の制約はすでに反復ｎにて完全に更新されているからである。この種の分割を設けるようグラフを制約すると、後続の反復の時間を部分的に重複させることが可能となり、パイプライン遅延による不利を効果的に抑える及び／又は解消する、ことができる。
【００７８】
図６には、かかる性質を備えるＬＤＰＣ符号と対応するグラフ構造６００とが示されている。図６において、グラフはＣ１〜Ｃ８と識別される８個の検査ノード６０２と、Ｖ１〜Ｖ１６と識別される１６個の可変ノード６０４とを含む。可変ノード組ＳＶ１に含まれる可変ノードＶ１〜Ｖ１２からのメッセージが制約ノードプロセッサモジュール３００によって処理されるときまでに、最初の４個の制約ノードＣ１〜Ｃ４に対応する状態が完全に更新済みとなることに留意されたい。この完全に更新された状態は制約ノードバッファメモリ３１４へ転送でき、制約ノードＣ１〜Ｃ４に対応する制約ノード項目は次回のグラフ処理反復で使用するため解放される。よって、ＳＣ２の組の制約ノード、すなわち制約ノードＣ５、Ｃ６、Ｃ７、及びＣ８に関し１回の反復で処理が続行するとき、ＳＣ１の組のノードに対応するその反復のＣ２Ｖメッセージは生成され、それと同時に、次回の反復の制約ノード処理を、現在の反復に関連する進行中の処理と重複しながら、開始できる。
【００７９】
本発明のＬＤＰＣ復号器方法及び装置は、検査ノード数がしばしばグラフの中のエッジ数よりかなり少なくなる高速度符号にとって、特に相応しい。かかる場合に、本発明に従って使用される状態メモリは、制約ノード処理の目的でメッセージ一式が格納される場合に要求されるエッジメモリより、かなり小さくなる傾向にある。
【００８０】
図７は、復号器処理を、例えば最初のグラフ処理反復中に可変ノードへロードされるメッセージ値０、−１、５、及び４を有する１組の例示的入力データを復号するため、図４の復号器４００が使われるときに発生する処理を、説明するために用いる比較的簡素なグラフを示す。
【００８１】
図７のグラフ７００は、可変ノード順序に０から８の番号が付された９本のエッジによってともに結合された、全部で３個の検査ノード７０２と４個の可変ノード７０６とを含む。エッジは可変ノードにおける順序とは異なる順序で検査ノードにて出現するため、もしも検査ノード側からエッジに番号を付したなら、エッジが異なる番号順番を持つことになることに留意されたい。メッセージは、図示されたエッジに沿って可変ノード７０６と検査ノード７０２との間を行き来する。検査ノード７０２は第１〜第３の検査ノード７１０、７１２、７１４を含み、他方可変ノード７０６は第１〜第４の可変ノード７２０、７２２、７２４、７２６を含む。
【００８２】
図８００には、復号器４００と図７に示す符号構造とを使用した結果得られる様々な値が示されている。図８００は、受信メッセージ（０、−１、５、及び４）を復号器４００へロードするため、そして最初にメッセージを処理するため使用される初回の反復の後に続く、２回の完全復号器処理反復の結果を示す。第２の入力値の手前には、メッセージに関連する、負の標識ビットを、すなわち１のビットを示すため、負符号が使用され、他方負符号なしは正の標識ビット、すなわち０のビットを示す。よって、第２のメッセージ−１は負の標識ビットを有し、他方第１、第３、及び第４の入力メッセージは正の標識ビットを有する。最初の処理反復の終わりに、検査ノードＣ１、Ｃ２、及びＣ３に対応する状態メモリ項目は、図８の上部、１組の状態メモリ項目値８０２のところに示された値を含む。
【００８３】
反復はＶ２Ｃメッセージの抽出から始まる。最初の反復で、抽出されたＣ２Ｖメッセージは０に設定される。これらのメッセージは現在の反復の一部として可変ノードにて合計され、Ｖ２Ｃが生成される。これらのメッセージは検査ノードプロセッサによって受信され、同検査ノードプロセッサは現在の反復に関連する検査ノード状態を更新する。全ての検査ノード状態が更新されたとき、反復は完了する。
【００８４】
チャートの中、１組の状態メモリ項目値８０２の下の各行は、個別のメッセージエッジに、例えばＣ２Ｖメッセージの抽出に、関連する処理と、指定エッジに沿って伝送されるべきＶ２Ｃメッセージの生成と、所与のエッジへ関連する検査ノード状態の更新とに対応する。毎回のグラフ反復は、図７のグラフの１エッジ当たり１つのＣ２Ｖメッセージの生成及び処理と、各エッジにつき１つのＶ２Ｃメッセージの生成及び処理とをともなう。
【００８５】
一般的に、列８１０、８１２、８１６、８１８、及び８２０は、前回の復号器反復中に発生した処理の結果を使用するＣ２Ｖメッセージ抽出を示す。列８２２は、可変ノードへ至る全着信メッセージの和にあたる可変ノード和と、可変ノードへ関連する受信値とを示す。
【００８６】
列８２４は、この反復にて対応するエッジに沿って生成されるＶ２Ｃメッセージを示す。これは、可変ノード和から着信Ｃ２Ｖメッセージを引いたものに等しい。これらのＣ２Ｖメッセージは制約ノードプロセッサによって受信され、列８２６、８２８、８３０に示すとおりに状態情報を更新するために使われる。列８２６、８２８、８３０は、列８２４に示す各Ｖ２Ｃメッセージの受信に応じ、検査ノードプロセッサ状態が現在の処理反復中にいかに更新されるかを示す。
【００８７】
情報８１０は、Ｃ２Ｖメッセージを生成するため制約ノードバッファ状態メモリ３１４から読み取られる前回のグラフ処理反復中に生成された検査ノード状態を示す。前回の処理反復で生成された各検査ノードに対応するこの完全に更新された状態は、Ｖ２Ｃメッセージを生成するため現在のグラフ反復で可変ノードプロセッサ３０４によって処理されるＣ２Ｖメッセージを生成するために使用される。列８１２は、前回の反復からのエッジ沿いＶ２Ｃメッセージに対応する標識ビットを示し、これは現在の処理反復にてＣ２Ｖメッセージを構築するため標識ビットメモリ３１２から回収され、同Ｃ２Ｖメッセージは可変ノードプロセッサへ入力され、同可変ノードプロセッサは現在の処理反復のためＶ２Ｃメッセージを生成する。列８１４は、受信済みＶ２Ｃメッセージから格納された標識ビット８１２を、前回の反復で生成され、Ｃ２Ｖメッセージに関連するメッセージエッジに対応する検査ノード（Ｃ１、Ｃ２、又はＣ３）に対応する状態から得られる格納された累積標識ビットＳとともにＸＯＲすることによって抽出される制約状態によって生成される、更新された標識ビットを示す。列８１６は、前回の処理反復中に第１の最小値ｍＡか又は第２の最小値ｍＢが出力されるかを判断するため、制約状態抽出器によって実行される検査の結果を示す。この検査では、生成されようとするＣ２Ｖメッセージのエッジ索引を、格納された第１の最小値に対応するエッジ索引Ｉに比較する。ここで、「Ｙ」は、エッジ索引が前回の反復にて最小マグニチュードを伝送したエッジに一致することを意味する「はい」を表し、「Ｎ」は、エッジ索引が前回の反復にて最小マグニチュードを伝送したエッジに一致しないことを意味する「いいえ」を表す。列８１２は、発信Ｃ２Ｖメッセージのマグニチュードとして使用されるべきｍＡ又はｍＢの選択の結果を示す。列８２０は、現在の反復中に可変ノードプロセッサ３０４によって使用される、指定エッジ上で伝送される実際のＣ２Ｖメッセージを示す。可変ノードプロセッサ３０４は、処理反復中に受信したＣ２Ｖメッセージの和を生成する。列８２２に示す結果的に得られるＶＮｏｄｅ和は、例えば現在の反復中に制約ノード処理のため、メッセージエッジに沿って制約プロセッサモジュール３００へ供給されるＶ２Ｃメッセージを生成するために使用される。
【００８８】
制約ノード処理モジュールの観点から、列８１０、８１２、８１４、８１６、８１８、８２０、及び８２２に示す情報は、前回のグラフ処理反復における計算結果に由来する操作に相当する。上で論述したとおり、慎重なグラフ設計を前提とし、１回のグラフ処理反復でこれらの操作が発生するときと、次の制約ノード処理反復でメッセージ状態の更新が発生するときには、ある程度の重複があってよい。
【００８９】
列８２４は、図７に示すグラフ構造を使用し例示的入力を処理することに対応する第２及び第３の制約ノード処理モジュール反復中に受信され処理される、Ｖ２Ｃメッセージを示す。毎回のグラフ反復では、エッジＥ０〜Ｅ８上で引き渡されるメッセージに対応する９個のＶ２Ｃメッセージを処理する。制約処理モジュール３００によるメッセージの処理は可変ノードエッジ順序で発生する。処理が始まるとき、検査ノードに対応する制約メモリはあらかじめ再初期化される。処理反復に重複がないと仮定するなら、検査ノードＣ１、Ｃ２、及びＣ３の各々の状態は、エッジＥ０に対応する第１のＶ２Ｃメッセージの受信に先駆けあらかじめ再初期化される。列８２６、８２８、８３０の各々は、それぞれ検査ノードＣ１、Ｃ２、Ｃ３の内１つに対応する、受信Ｖ２Ｃメッセージによって更新された後の、格納された状態を示し、各行は個別のＶ２Ｃメッセージの処理に対応する。ある特定のメッセージに、例えば行に対応するエッジ上で伝達されるメッセージに応じて、更新される状態内容は、太字で示されている。列８２６、８２８、８３０では、初期値に設定された値を示すためＸが使われている。これらの値は生成されるＣ２Ｖ出力メッセージで使用されないため、「無関係」値である。
【００９０】
第２の反復の終わりに、完全に更新されたメッセージ状態Ｃ１、Ｃ２、Ｃ３がＣ１（ｍＡ＝０，ｍＢ＝４，Ｉ＝２，Ｓ＝０）、Ｃ２（ｍＡ＝１，ｍＢ＝３，Ｉ＝１，Ｓ＝１）、そしてＣ３（ｍＡ＝１，ｍＢ＝３，Ｉ＝３，Ｓ＝１）の値へ更新済みであることに留意されたい。第３の反復の終わりに、完全に更新されたメッセージ状態Ｃ１、Ｃ２、Ｃ３は、Ｃ１（ｍＡ＝１，ｍＢ＝３，Ｉ＝２，Ｓ＝０）、Ｃ２（ｍＡ＝０，ｍＢ＝３，Ｉ＝１，Ｓ＝０）、そしてＣ３（ｍＡ＝３，ｍＢ＝３，Ｉ＝３，Ｓ＝０）の値へ更新済みである。
【００９１】
状態は、ある１つの検査ノードに対応するメッセージの処理が完了した後に消去されるものとして示されていないが、グラフ処理反復間に重複がある実施形態においては、完全に更新された制約ノードに対応する状態のリセットが制約ノード状態バッファメモリ３２４に格納され、状態情報リセットは制約状態メモリに格納されるであろう。制約状態更新順序について、そして１回の完全グラフ反復に関連する処理中に１組の更新状態一式がいかに生成されるかについて、専ら理解を促すため、図８に示す例にはかかるリセットが示されていない。
【００９２】
本発明の復号器と復号方法とともに使用できる種々の符号構造を前提とし、処理反復間に発生しうる重複の量に関しては多大な柔軟性が可能である。異なる復号器反復に対応する検査ノード処理の実行に関し復号化遅延重複を減らすため、グラフ処理反復にて１０％、２０％、３０％、４０％、又はそれ以上の重複を可能にする符号構造を選択できる。
【００９３】
次に、種々の例示的復号化方法実施と例示的変形とを説明する。
【００９４】
低密度パリティ検査復号化操作を実行するある特定の例示的方法は、複数の検査ノードによって受信されるメッセージに対応するメッセージ状態情報をメモリに格納することと、前記複数の検査ノードの内１つへ宛てられた検査ノード入力メッセージを受信することと、前記複数の組の状態情報の内、状態更新操作に使用すべき１組を、前記受信メッセージの宛先にあたる検査ノードに基づき選択することと、選択された組のメッセージ状態情報を前記メモリから回収することと、選択された組のメッセージ状態情報を前記受信メッセージの関数として更新することと、の各ステップとを含む。方法はさらに、前記更新された組のメッセージ状態情報を前記メッセージ状態情報の回収元にあたるメモリ位置へ書き込むことと、前記受信する、選択する、回収する、及び更新するステップを、受信する複数のメッセージの各々につき、前記受信メッセージに対応するエッジがＬＤＰＣ符号を表すグラフの中で可変処理ノードへ取り付けられる順序に一致する第１の順番で、順次に繰り返すことと、の各ステップを含む。いくつかの実施において、前記受信メッセージに対応するエッジが、前記ＬＤＰＣ符号を表すグラフの中で可変処理ノードへ取り付けられる順序に一致する順番は、前記受信メッセージに対応するエッジが前記ＬＤＰＣ符号を表すグラフの中で制約処理ノードへ取り付けられる第２の順番と異なる。例示的方法はさらに、１組の可変至検査ノードメッセージ一式が受信済みである検査ノードに対応する少なくとも１組の状態情報に対し検査ノード至可変ノードメッセージ抽出操作を実行することを含み、ここで抽出操作は複数の検査ノード至可変ノードメッセージを生成するため複数回実行され、前記複数の可変ノードの内の１個へ宛てられる検査ノード至可変ノードメッセージは、前記複数の可変ノードの内の前記１個へ宛てられる一連の検査ノード至可変ノードメッセージを作るため連続的に生成される。
【００９５】
例示的方法において、完全に更新された状態は、Ｃ２Ｖメッセージ抽出プロセスにて使用するため完全に更新された状態がバッファメモリに格納される前に、検査ノードごとに生成される。完全に更新された状態とは、その状態に対応する検査ノードに対応する１組のＶ２Ｃメッセージ一式によって更新済みの状態である。１つの完全なグラフに対応する処理のときには複数の組の状態が更新される。１つのグラフに対応する複数の復号化反復は通常、復号化を制御するために用いるＬＤＰＣ符号を表すために用いるグラフにおいて１組のメッセージの処理に対応する反復のたびに実行される。異なるグラフ処理反復に対応する検査ノード状態は、以降の反復のため検査ノード状態が前の反復のときにすでに完全に更新されたと仮定し、同じ期間中に更新できる。
【００９６】
よっていくつかの実施において、方法は、前記第１の検査ノードに対応する別の組の状態を、前記第１の復号器処理反復中に、前記少なくとも１つの他の検査ノードの、例えばグラフの中の最後の検査ノードの、前記状態更新を完全に完了する前に、可変至検査ノードメッセージ処理の第２の反復の一部として更新することを含む。
【００９７】
復号化方法の一部として、グラフ処理反復の重複を促進するため、いくつかの実施形態において方法はさらに、前記第１の検査ノードに対応する前記完全に更新された状態をバッファすることと、前記バッファされた完全に更新された状態から検査ノード至可変ノードメッセージを抽出することとを含む。前記バッファされた完全に更新された状態から検査ノード至可変ノードメッセージを抽出するステップは、いくつかの実施において、前記完全に更新された状態と、前記完全に更新された状態を生成するため使用される複数の可変ノード至検査ノードメッセージに対応する格納された標識情報とから、複数の発信メッセージを生成することを含む。
【００９８】
いくつかの例示的復号化方法は、第１の複数の検査ノードのための状態更新を、第２の複数の検査ノードに対応する状態更新を完了する前に完全に完了することを含み、ある１つの検査ノードのための状態更新は、その検査ノードの状態が前記検査ノードに対応する複数のメッセージエッジの各々につき一度更新されたときに完全に完了する。いくつかの実施形態において、第１及び第２の複数の検査ノードは、復号化を制御するために用いる実施ＬＤＰＣ符号構造を表すＬＤＰＣグラフの中で総検査ノード数の少なくとも２０％を各々含む。
【００９９】
状態更新操作は、第１の組の検査ノードに対応する状態の更新の一部として行われてよい。いくつかの実施において、第１の組の検査ノードの更新は、第１の組の可変至検査ノードメッセージを使用し第１の期間中に実行され、方法はさらに、第２の組の検査ノードに対応する状態情報を第２の期間中に更新することを含み、前記第２の組の検査ノードは前記第１の組の検査ノードに含まれない検査ノードだけを含み、前記第２の期間は前記第１の期間の後に続く。かかる実施において、検査ノード情報は異なるときに抽出されてよい。一実施において、方法は、前記第２の期間中に前記第１の組の検査ノードに対応する更新された状態情報から、検査ノード至可変ノードメッセージを抽出することを含む。このタイミング特徴を実施するいくつかの実施において、前記第１及び第２の期間は長さが等しい。前記第１及び第２の期間は、第３の組の検査ノードに対応する状態が更新される第３の期間によって隔てられてよく、且つしばしば隔てられる。これは、多数のノードを含む大きいグラフの場合にしばしば当てはまる。いくつかの実施において、第１及び第２の組の検査ノードは、復号化を制御するために用いるＬＤＰＣ符号に対応するグラフの中で検査ノードの少なくとも１０％を各々含む。他の実施において、第１及び第２の組の検査ノードは、復号化を制御するために用いるＬＤＰＣ符号に対応するグラフの中で検査ノードの少なくとも２０％を各々含む。いくつかの実施において、第１の期間は、Ｎ個の可変至検査ノードメッセージを処理するのに要する時間の４０％に満たなく、ここでＮは、復号化を制御するために用いるＬＤＰＣ符号に対応するグラフにおける総メッセージエッジ数に等しく、一方他の実施形態において、第１の期間は、Ｎ個の可変至検査ノードメッセージを処理するのに要する時間の２０％に満たなく、ここでＮは、復号化を制御するために用いるＬＤＰＣ符号に対応するグラフにおける総メッセージエッジ数に等しい。
【０１００】
上述の方法及び装置については、本発明の範囲内にとどまりつつ数多くの変化が可能である。例えばメッセージについて圧縮された状態を使用するが、Ｃ２Ｖメッセージの標識情報は、本発明の範囲内になおとどまりつつ、上述したのとは若干異なる方式で生成できる。一代替実施では、１つのメモリが状態メモリとして使用され、他のメモリは前回の反復からの状態一式を収容し、反復の終わりにはバッファの役割が逆転する、ピンポン構造を使用する。かかる実施形態においては、標識ビットが以下のとおりに扱われるであろう。Ｖ２Ｃメッセージの標識が格納される。信頼度情報に加え、着信標識ビットのＸＯＲもまた状態の一部として保持される。Ｃ２Ｖメッセージが抽出されるときには、格納されたＶ２Ｃ標識が状態の中の累積Ｘ−ＯＲとともにＸＯＲされることによりＣ２Ｖメッセージ標識ビットを得る。ひとたび読み取られたＶ２Ｃ標識ビットはもはや不要であるため、その後、可変ノードプロセッサによって直ちに生成されるＶ２Ｃ標識ビットによってこれを上書きしてよいことに留意されたい。
【０１０１】
上述の方法は、メモリと、ＣＰＵと、ともに結合された１つ又は複数の入力及び／又は出力装置とを含むコンピュータシステムで実施されてよい。かかる実施形態において、メモリは本発明に従い実施されるルーチンを含む。実行されたルーチンにより、ＣＰＵは、本発明に従いデータを受信し、処理し、例えば復号化し、出力する。代わりに、本発明のステップは、専用のハードウェア、例えば回路、及び／又はハードウェア及びソフトウェアの組み合わせを用いて実施されてよい。
【図面の簡単な説明】
【０１０２】
【図１】１０個の可変ノードと５個の検査ノードとを含む、例示的ＬＤＰＣ符号を示すグラフである。
【図２】図１に示すグラフ表現の代案としてマトリックス表現の使用により符号を示す図１のＬＤＰＣ符号の代替表現である。
【図３】本発明に従い実施された制約ノード処理モジュールを示す。
【図４】本発明に従い実施されたＬＤＰＣ復号器を示す。
【図５】本発明に従いＮ個の並列制約ノード及び可変ノード処理素子を用いて実施された別のＬＤＰＣ復号器を示す。
【図６】例えば図４の復号器にて、復号化を制御するために使用できる例示的ＬＤＰＣ符号構造を示す。
【図７】本発明に従い、例えば図４の例示的復号器にて、復号化を制御するために使用できる別の例示的ＬＤＰＣ符号構造を示す。
【図８】図４の復号器と図７に示すＬＤＰＣ符号構造とを使用し、１組の入力値に復号化操作を実行した結果を示す。
【図１】
2008508835.tif 000008
【図２】
2008508835.tif 000009
【図３】
2008508835.tif 000010
【図４】
2008508835.tif 000011
【図５】
2008508835.tif 000012
【図６】
2008508835.tif 000013
【図７】
2008508835.tif 000014
【図８】
2008508835.tif 000015
【国際調査報告】
2008508835.tif 000016