(57)【要約】【課題】　ターボ符号と畳み込み符号デコーダの実装において、メモリサイズを縮小して実装コストを低くする手段を提供する。【解決手段】　本発明は、ターボ符号／畳み込み符号複合型デコーダを提案する。複合型デコーダは、ターボ符号復号化手段の入出力ＲＡＭを、畳み込み符号復号化手段用のアルファまたはベータＲＡＭとして再利用する。さらに、指令ユニット（ＳＭ、ＬＬＲ）がターボ符号、畳み込み符号両方に用いられる。効果的なハードウェア折りたたみスキーマは、２５６状態を逐次８ＡＣＳユニット上で計算することを可能にする。【選択図】　図６
2004104787.tif 000002
【特許請求の範囲】
【請求項１】
　複合型ターボ符号／畳み込み符号デコーダであって、
　ターボ符号復号化を実施するターボ符号復号化手段（ＴＣＤＣＭ）と、畳み込み符号を実施する畳み込み符号復号化手段（ＣＣＤＣＭ）を有し、
　該ターボ符号ならびに畳み込み符号復号化手段は、ＳＩＳＯ復号化手段の共通処理手段（ＣＣＰＲ）を有し、ターボ符号復号化専用の第一の構成と畳み込み符号復号化専用の第二の構成を備えており、
　第一のトレリスの状態に関連づけられ、第一の構成において前記共通処理手段が送付する状態メトリクスを記憶するメトリクス記憶手段（ＴＣα−ＲＡＭ）と、
　前記共通処理手段へ送付され、第二の構成において前記共通処理手段が送付する入力、出力データを記憶する入出力記憶手段（ＣＣ　Ｉ／Ｏ　ＲＡＭｓ）と、
　前記共通処理手段へ送付され、第一の構成において前記共通処理手段が送付する入力、出力データを記憶し、第二のトレリスの状態に関連づけられ、第二の構成において前記共通処理手段が送付する状態メトリクスを記憶する適応可能記憶手段（ＡＤＭＭ）と、
　符号の種類により第一または第二の構成において、前記共通処理手段を構成する制御手段（ＣＴＲＬＭ）と、
　前記共通処理手段の構成によって前記適応可能記憶手段に個別にアドレスを指定するメモリ制御手段（ＣＴＭＭ）と、
を有する複合型ターボ符号／畳み込み符号デコーダ。
【請求項２】
　前記複合型デコーダであって、
　前記ターボ符号復号化手段が、ｂ１ビットのＮ１シンボルの連続シーケンスと、前記共通処理手段へ送付され、受け取ったシーケンスを有する第一の構成において前記共通処理手段が送付する入出力データと、ｂ１ビットのＮ１ワードのｇ種類のブロックと、を受け取るよう適応し、
　前記適応可能記憶手段内に記憶される状態メトリクスが、ｂ１の倍数であるｂ２ビットのＮ２ワードのブロックであり、
　前記適応可能記憶手段（ＡＤＭＭ）が、Ｎ１ワードのｇ個のブロックにそれぞれ専用のｐ個の基本メモリのｇ個のグループを有し、各基本メモリはｂ１ビットのＮ２ワードを記憶するよう適応し、積ｇｐは比ｂ２／ｂ１に等しく、積ｐＮ２はＮ１以上であり、
　前記メモリ制御手段が、ｂ１ビットのＮ１ワードの各ブロックがｐ基本メモリの専用グループに読み書きされるように、前記第一の構成において前記適応可能記憶手段のアドレスを指定し、
　各状態メトリクスが、ｂ１ビットのｇｐ個の基本ワードから構成され、前記メモリ制御手段が、前記第二の構成において前記状態メトリクスのｇｐ個の基本ワードが同じアドレスでｇｐ個の基本メモリにそれぞれ記憶されるように、前記適応可能記憶手段のアドレスを指定する、
ことを特徴とする請求項１記載の複合型デコーダ。
【請求項３】
　前記適応可能記憶手段が、
　第一の構成において、前記共通処理手段へ送付され、前記共通処理手段が送付する入出力データを記憶し、第二の構成において、前記共通処理手段が送付する状態メトリクスの第一の部分を記憶する主記憶手段（Ｘ−ＲＡＭｓ、Ｙ１−ＲＡＭｓ，Ｙ２−ＲＡＭｓ、ＬＬＲ−ＲＡＭｓ）と、
　第二の構成において、前記共通処理手段が送付する状態メトリクスの最後の部分を記憶する追加記憶手段（Ａｄｄ）と、
を有することを特徴とする、請求項１記載の複合型デコーダ。
【請求項４】
　前記複合型デコーダであって、
　前記ターボ符号復号化手段（ＴＣＤＣＭ）が、ｂ１ビットのＮ１シンボルの連続シーケンスと、前記共通処理手段へ送付され、受け取ったシーケンスを有する第一の構成において前記共通処理手段が送付する入出力データと、ｂ１ビットのＮ１ワードのｇ種類のブロックと、を受け取るよう適応し、
　前記適応可能記憶手段内に記憶される前記状態メトリクスが、ｂ１より大きいｂ２ビットのＮ２ワードのブロックであり、
　前記主記憶手段が、Ｎ１ワードのｇ個のブロックにそれぞれ専用のｐ個の基本メモリのｇ個のグループを有し、各基本メモリはｂ１ビットのＮ２ワードを記憶するよう適応し、積ｇｐは比ｂ２／ｂ１より小さな最大整数に等しく、積ｐＮ２はＮ１以上であり、
　前記追加記憶手段が、ｂ２-ｇｐビットのＮ２ワードを記憶するよう適応し、前記メモリ制御手段が、ｂ１ビットのＮ１ワードの各ブロックがｐ基本メモリの専用グループに読み書きされるように、前記第一の構成において前記適応可能記憶手段のアドレスを指定し、
　各状態メトリクスが、ｂ１ビットのｇｐ個の基本ワードとｂ２-ｇｐビットの追加基本ワードから構成され、前記メモリ制御手段が、前記第二の構成において前記状態メトリクスのｇｐ個の基本ワードが同じアドレスで前記主記憶手段のｇｐ個の基本メモリにそれぞれ記憶されるように、前記適応可能記憶手段のアドレスを指定し、状態メトリクスの該追加基本ワードは、同じアドレスで追加記憶手段に記憶される、
ことを特徴とする請求項３記載の複合型デコーダ。
【請求項５】
　ＳＴ１が第一のトレリスの状態数であり、ＳＴ２が第二のトレリスの状態数であり、ｒが整数比ＳＴ２／ＳＴ１であって、前記共通処理手段が構成可能状態メトリクスユニット（ＳＭ）を有しており、
　該構成可能状態メトリクスユニットは、
　第一の構成において、ＳＴ１状態メトリクスを再帰的に並列計算することができ、
　第二の構成において、並列計算されたＳＴ１状態メトリクスのｒ個のグループを再帰的に計算することができる、
ことを特徴とする、請求項１から請求項４記載の複合型デコーダ。
【請求項６】
　前記共通処理手段が、第一、第二の構成において、対応するトレリスの分岐に関連する分岐メトリクスを計算する、分岐メトリクスユニット（ＢＭ）を有し、
　前記構成可能状態メトリクスユニットが、
　各構成において、ＳＴ１状態メトリクスを計算する、ＳＴ１個の並列ないわゆるＡＣＳ（追加、比較、選択）ユニットと、
　再帰的計算のため、計算した状態メトリクスを一時的に記憶する予備記憶手段（ＡＸＭＭ）と、
　前記予備記憶手段において、前記共通処理手段の構成に依存してメトリクスの記憶を制御する予備制御手段と、
を有することを特徴とする請求項５記載の複合型デコーダ。
【請求項７】
　前記複合型デコーダであって、
　前記予備メモリ手段（ＡＸＭＭ）が、
　　ターボ符号復号化の間、ＳＴ１状態メトリクスを一時的に記憶するレジスタ（ＲＧＢ）と、
　　該レジスタに接続された、畳み込み符号復号化の間ＳＴ２状態メトリクスを一時的に記憶する二組の補助メモリ（ＲＡＭ１〜ＲＡＭ４）と、
を有し、
　前記予備制御手段が、
　　レジスタの出力と二組の補助メモリとの間に接続された、該補助メモリにおいてメトリクスの記憶スワッピングを可能にする第一の多重化手段と、
　　前記レジスタの出力と前記補助メモリの出力に直接接続された第二の多重化手段と、
を有することを特徴とする、請求項６記載の複合型デコーダ。
【請求項８】
　前記状態メトリクスユニット（ＳＭ）が、順方向状態メトリクスを計算するのと同等の方法で、逆方向状態メトリクスを再帰的に計算が可能であることを特徴とする、請求項５から請求項７に記載の複合型デコーダ。
【請求項９】
　前記共通処理ユニットが、対数尤度比（ＬＬＲ）ユニットを有し、
　該ＬＬＲユニットは、前記状態メトリクスユニットと、第一の構成における前記メトリクス記憶手段と、第二の構成における前記適応可能記憶手段に接続されており、信頼値にそれぞれ関連するデコードされたデータの値を含む軟出力情報を各構成において計算する、
ことを特徴とする請求項５から請求項８に記載の複合型デコーダ。
【請求項１０】
　前記ＬＬＲユニットが、パイプライン型構造をとり、ターボ符号復号化と畳み込み符号復号化の両方に用いられる部分を有する、
ことを特徴とする請求項９記載の複合型デコーダ。
【請求項１１】
　前記共通処理手段（ＣＣＰＲ）が、事後確率最大（Maximum-A-Posteriori、ＭＡＰ）アルゴリズムを実行することを特徴とする既出の任意の請求項記載の複合型デコーダ。
【請求項１２】
　実行される前記ＭＡＰアルゴリズムが、いわゆる対数ＭＡＰアルゴリズム、あるいはいわゆる最大対数ＭＡＰアルゴリズムであることを特徴とする請求項１１記載の複合型デコーダ。
【請求項１３】
　前記ターボ符号復号化手段が、グローバル制御手段を有し、ターボ符号復号化を前記共通処理手段において反復型方法で実施させる、
ことを特徴とする既出の任意の請求項記載の複合型デコーダ。
【請求項１４】
　集積回路によって実現されることを特徴とする既出の任意の請求項記載の複合型デコーダ。
【請求項１５】
　請求項１から請求項１４のうち任意の請求項記載の複合型デコーダを含む無線通信システムの端末装置。
【請求項１６】
携帯電話を形成することを特徴とする請求項１５記載の端末装置。
【請求項１７】
　基地局を形成することを特徴とする請求項１５記載の端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、概して通信路符号化（channel coding）ならびに複号化（decoding）技術に関連し、特にターボ符号（turbo code）ならびに畳み込み符号（convolutional code）に関する。
【背景技術】
【０００２】
　本発明の適用は、概して無線通信システムの領域に向けられており、さらにより詳細には、ＣＤＭＡ２０００、ＷＣＤＭＡ（広帯域ＣＤＭＡ）、ＩＳ−９５といった各種のCDMAベース移動無線システムのようなCDMAシステムに向けられている。第三世代移動通信システムは、通信路符号化技術として、ターボ符号と同様畳み込み符号を指定している（非特許文献１参照）。
【０００３】
　ターボ符号エンコーダ（encoder、符号器）において、順方向誤り訂正（forward error correction）はパリティビットを導入することで可能である。ターボ符号の場合、系列情報（systematic information）を指す原情報はパリティ情報と一緒に伝送される。３ＧＰＰ用エンコーダは、拘束長Ｋ＝４である二つの再帰的組織畳み込み（recursive systematic convolutional、ＲＳＣ）エンコーダから成り、8状態の有限状態機械（finite state machine）として解釈することもできる。第一のＲＳＣエンコーダはオリジナル内の情報のブロックに従事し、第二のエンコーダはインターリーブされたシーケンス（interleaved sequence）内の情報に従事する。
【０００４】
　受信側では、上記エンコーダそれぞれに対応する要素デコーダ（component decoder、復号器）がある。各要素デコーダは、いわゆる最大事後確率（Maximum-A-Posteriori、ＭＡＰ）アルゴリズム（詳細は非特許文献２参照）を実行し、通常はいわゆるＳＩＳＯ（Soft-in-Soft-out、軟入力軟出力）デコーダである。各ブロックは反復的方法で復号化される。系列情報とパリティ情報は、第一の要素デコーダ（ＭＡＰ１）の入力となる。ＭＡＰ１の軟出力（soft-output）は、「０」か「１」のどちらかで送られる受信ビット上に信頼度（confidence）を反映する。これら信頼度は、エンコーダと同じ方法でインターリーブされ、事前情報（a-priori information）として第二の要素デコーダ（ＭＡＰ２）へ渡される。第二の要素デコーダは、第二のエンコーダのインターリーブされた系列情報とパリティ情報を含む推定にバイアスをかけるために、この情報を用いる。軟出力は再びＭＡＰ１などへ渡される。交換は停止判定基準が満たされるまで続く。停止判定基準は、「規定の繰り返し回数」のような単純な場合から、巡回冗長検査（cyclic redundancy check、ＣＲＣ）を経てかなり複雑な統計分析にまで及ぶ。
【０００５】
　ＭＡＰアルゴリズムを用いたターボデコーダアーキテクチャの実装問題は、すでに複数の論文で議論されており、広く知られている（詳細は非特許文献３を参照）。ＭＡＰアルゴリズムは、演算子の強度を減らすため対数領域に変換される（非特許文献４参照）。乗算は加算になり、加算は修正型比較（modified comparison）により置き換えられる。アルゴリズムは、順方向再帰（forward recursion）、逆方向再帰（backward recursion）、軟出力計算から成る。状態の再帰ステップを計算するために、修正型累積比較選択（modified accumulate-compare-select、ＡＣＳ*）ユニットが必要である。
【０００６】
　ターボ復号化の間、一度にアクティブなＭＡＰは一つだけである。適度なスループット要求により、反復ループの両ＭＡＰの計算は一つのハードウェアユニットに写像することが可能で、必要なＭＡＰユニットは一つだけである。ＭＡＰユニットに加え、メモリが入力、出力値を記憶することも必要とされる。さらに、記憶装置が、事前情報やアルファ状態メトリクスのような中間値のために要求される。インターリーバ（interleaver）およびデインターリーバ（deinterleaver）パターン発生器もまたメモリに帰属される。大きなブロックサイズのために、メモリがターボデコーダアーキテクチャを支配することは明らかである。
【０００７】
　系列情報とパリティ情報用の入力ＲＡＭと、出力ＲＡＭのサイズは、３ＧＰＰ基準で定義されるブロックサイズによって決定される。出力ＲＡＭはまた、事前値の記憶装置としても使われる。計算された軟出力は常に事前情報の前の読取り位置に書き込まれるので、一つの軟出力メモリで充分である。
【０００８】
　アルファメモリ（アルファ状態メトリクスを記憶する）のサイズは、ウィンドウイング（windowing）技術を導入することで減らすことができる。ウィンドウイングにおいては、ウィンドウがビット位置の増加方向になめらかに移動し（非特許文献５参照）、元来のＭＡＰデコーダとほぼ同様の通信性能を有する。ウィンドウサイズはブロックサイズよりもかなり小さく、概して３２から１２８の間である。ウィンドウイングはいわゆる「収集（acquisiton）」の間、追加計算を含む。しかしながら、アルファメモリへの保存はこれら追加計算に支配的である。
【０００９】
　畳み込み符号エンコーダにおいても、順方向誤り訂正はパリティビットを導入することによって可能である。３ＧＰＰにおいて、拘束長Ｋ＝９である二つの異なるエンコーダが指定される。ターボ復号化とは対照的に、畳み込み復号化は非再帰型である。ＭＡＰアルゴリズムは各ブロックで一度だけアクティブになる。インターリーブは不要で、ブロックサイズはターボ符号よりかなり小さいけれども、３ＧＰＰ畳み込み符号デコーダのアーキテクチャもまたメモリに支配されている。Ｉ／Ｏメモリがターボ符号デコーダと比べて、かなり小さい。しかしながら、アルファメモリは、同じウィンドウサイズと仮定する３２の要素によって、ターボ符号デコーダのアルファメモリを超えている。アルファメモリは、畳み込み符号デコーダの大多数の状態を構成している。
【非特許文献１】3GPP, Technical Specification Group Radio Access Network ; multiplexing and channel coding (FDD) ; (3G TS 25.212 version 3.5.0(2000-12)), 1999
【非特許文献２】L. Bahl, J. Cocke, F. Jelinek, and J. Raviv, “Optimal Decoding of Linear Codes for Minimizing Symbol Error Rate”, IEEE Transaction on Information Theory, IT-20, p.p. 284-287, march 1974
【非特許文献３】A. Worm, “Implementation Issues of Turbo-Decoders”, Ph.D Thesis, Institute of Microelectronic Systems, Department of Electrical Engineering and Information Technology, University of Kaiserslautern, Forschungsberichte Mikroelektronik, Dd.3, Germany, 2001
【非特許文献４】S. S. Pietrobond and A. S. Barbulescu, “A Simplification of the Modified Bahl Docoding Algorithm for Systematic Convolutional Codes”, Proceedings of International Symposium on Information Theory and its Application, pages 1073-1077, Sydney, Australia, November 1994
【非特許文献５】H. Dawid and H. Meyr, “Real-Time Algorithms and VLSI Architectures for Soft Output MAP Convolutional Decoding”, Proceedings of 1995 International Symposium on Personal, Indoor, and Mobile Radio Communications (PIMRC’95), pages 193-197, Toronto, Canada, September 1995
【発明の開示】
【発明が解決しようとする課題】
【００１０】
　上述したターボ符号と畳み込み符号デコーダの主な問題は、大きなメモリが必要ということである。ゆえに、個々のデコーダの実装には高いコストがかかる。本発明の一つの目的は、この問題を解決することである。
【課題を解決するための手段】
【００１１】
　本発明は複合型ターボ符号／畳み込み符号デコーダを提案する。複合型ターボ符号／畳み込み符号デコーダは、ターボ符号復号化を実施するターボ符号復号化手段（ＴＣＤＣＭ）と、畳み込み符号を実施する畳み込み符号復号化手段（ＣＣＤＣＭ）を有し、該ターボ符号ならびに畳み込み符号復号化手段は、ＳＩＳＯ復号化手段の共通処理手段（ＣＣＰＲ）（例えばＭＡＰアルゴリズムを実装する）を有し、ターボ符号復号化専用の第一の構成と畳み込み符号復号化専用の第二の構成を備えており、第一のトレリスの状態に関連づけられ、第一の構成において前記共通処理手段が送付する状態メトリクス（例えば順方向状態メトリクス）を記憶するメトリクス記憶手段（ＴＣα−ＲＡＭ）と、　前記共通処理手段へ送付され、第二の構成において前記共通処理手段が送付する入力、出力データを記憶する入出力記憶手段（ＣＣ　Ｉ／Ｏ　ＲＡＭｓ）と、前記共通処理手段へ送付され、第一の構成において前記共通処理手段が送付する入力、出力データを記憶し、第二のトレリスの状態に関連づけられ、第二の構成において前記共通処理手段が送付する状態メトリクス（例えば順方向状態メトリクス）を記憶する適応可能記憶手段（ＡＤＭＭ）と、符号の種類により第一または第二の構成において、前記共通処理手段を構成する制御手段（ＣＴＲＬＭ）と、前記共通処理手段の構成によって前記適応可能記憶手段に別々にアドレスを指定するメモリ制御手段（ＣＴＭＭ）とを有する。
【００１２】
　言い換えれば、本発明に準拠して、ターボ符号復号化手段の入力／出力ＲＡＭを、アルファＲＡＭ（順方向状態メトリクスを記憶）あるいは畳み込み符号復号化手段用のベータＲＡＭ（逆方向状態メトリクスを記憶）として再利用する。
【００１３】
　本発明の実施形態によれば、前記適応可能記憶手段が、第一の構成において、前記共通処理手段へ送付され、前記共通処理手段が送付する入出力データを記憶し、第二の構成において、前記共通処理手段が送付する状態メトリクスの第一の部分を記憶する主記憶手段（Ｘ−ＲＡＭｓ、Ｙ１−ＲＡＭｓ，Ｙ２−ＲＡＭｓ、ＬＬＲ−ＲＡＭｓ）と、第二の構成において、前記共通処理手段が送付する状態メトリクスの最後の部分を記憶する追加記憶手段（Ａｄｄ）とを有する。
【００１４】
　さらに詳細に例示すると、前記ターボ符号復号化手段（ＴＣＤＣＭ）が、ｂ１ビットのＮ１シンボルの連続シーケンスと、前記共通処理手段へ送付され、受け取ったシーケンスを有する第一の構成において前記共通処理手段が送付する入出力データと、ｂ１ビットのＮ１ワードのｇ種類のブロックを受け取るよう適応し（例えば、ｇ＝４、Ｎ１＝５１２０，ｂ１＝６）、前記適応可能記憶手段内に記憶される前記状態メトリクスが、ｂ１より大きいｂ２ビットのＮ２ワードのブロックであり（例えば、ｂ２＝８８，Ｎ２＝１７２８）、前記主記憶手段が、Ｎ１ワードのｇ個のブロックにそれぞれ専用のｐ個の基本メモリ（例えば、ｐ＝３）のｇ個のグループを有し、各基本メモリはｂ１ビットのＮ２ワードを記憶するよう適応し、積ｇｐは比ｂ２／ｂ１より小さな最大整数に等しく、積ｐＮ２はＮ１以上であり、前記追加記憶手段が、ｂ２-ｇｐビットのＮ２ワードを記憶するよう適応し（例えば、１６ビット）、前記メモリ制御手段が、ｂ１ビットのＮ１ワードの各ブロックがｐ基本メモリの専用グループに読み書きされるように、前記第一の構成において前記適応可能記憶手段のアドレスを指定し、各状態メトリクスが、ｂ１ビットのｇｐ個の基本ワードとｂ２-ｇｐｂ１ビットの追加基本ワードから構成され、前記メモリ制御手段が、前記第二の構成において前記状態メトリクスのｇｐ個の基本ワードが同じアドレスで前記主記憶手段のｇｐ個の基本メモリにそれぞれ記憶されるように、前記適応可能記憶手段のアドレスを指定し、状態メトリクスの該追加基本ワードは、同じアドレスで追加記憶手段に記憶される。
【００１５】
　 本発明の別な実施形態によれば、前記追加記憶手段は必要でなくても良い。例えば、ｂ２がｂ１の倍数ならば、積ｇｐは比率ｂ２／ｂ１に等しいという場合がある。このような実施例において、前記メモリ制御手段が、前記第一の構成において、ｂ１ビットのＮ１ワードの各ブロックがｐ個の基本メモリの専用グループから読み書きされるように、前記適応可能記憶手段にアドレスを指定する。そして、各状態メトリクスが、ｂ１ビットのｇｐ基本ワードで構成され、前記メモリ制御手段が、前記第二の構成において、前記状態メトリクスのｇｐ基本ワードが同じアドレスでｇｐ基本メモリにそれぞれ記憶されるように、前記適応可能記憶手段にアドレスを指定する。さらに、ターボ符号デコーダの入力／出力ＲＡＭの、アルファＲＡＭあるいは畳み込み符号デコーダ用のベータＲＡＭとしての再利用のために、本発明はまた、ターボ符号、畳み込み符号両用のオペレーショナルユニットを有することも好都合である。
【００１６】
　本発明の実施形態によりさらに詳細に説明すると、ＳＴ１が第一のトレリスの状態数であり（例えば、ＳＴ１＝８）、ＳＴ２が第二のトレリスの状態数であり（例えば、ＳＴ２＝２５６）、ｒが整数比ＳＴ２／ＳＴ１であって、前記共通処理手段が構成可能状態メトリクスユニット（ＳＭ）を有している。構成可能状態メトリクスユニットは、第一の構成において、ＳＴ１状態メトリクス（例えば、順方向状態メトリクス）を再帰的に並列計算することができ、第二の構成において、並列計算されたＳＴ１状態メトリクス（例えば、順方向状態メトリクス）のｒ個のグループを再帰的に計算することができる。
【００１７】
　本発明の実施形態によれば、前記共通処理手段が、第一、第二の構成において、対応するトレリスの分岐に関連する分岐メトリクスを計算する、分岐メトリクスユニット（ＢＭ）を有し、　前記構成可能状態メトリクスユニットが、　各構成において、ＳＴ１状態メトリクスを計算する、ＳＴ１個の並列ないわゆるＡＣＳ（追加、比較、選択）ユニットと、　再帰的計算のため、計算した状態メトリクスを一時的に記憶する予備記憶手段（ＡＸＭＭ）と、　前記予備記憶手段において、前記共通処理手段の構成に依存してメトリクスの記憶を制御する予備制御手段とを有する。
【００１８】
　前記予備メモリ手段（ＡＸＭＭ）が、ターボ符号復号化の間、ＳＴ１状態メトリクスを一時的に記憶するレジスタ（ＲＧＢ）と、該レジスタに接続された、畳み込み符号復号化の間ＳＴ２状態メトリクスを一時的に記憶する二組の補助メモリ（ＲＡＭ１〜ＲＡＭ４）とを有することが可能である。そして前記予備制御手段が、レジスタの出力と二組の補助メモリとの間に接続された、該補助メモリにおいてメトリクスの記憶スワッピングを可能にする第一の多重化手段と、前記レジスタの出力と前記補助メモリの出力に直接接続された第二の多重化手段とを有する。
【００１９】
　本発明の実施形態によれば、前記状態メトリクスユニット（ＳＭ）が、順方向状態メトリクスを計算するのと同等の方法で、逆方向状態メトリクスを再帰的に計算が可能である。
【００２０】
　本発明の実施形態によれば、前記共通処理ユニットが、対数尤度比（ＬＬＲ）ユニットを有し、該ＬＬＲユニットは、前記状態メトリクスユニットと、第一の構成（ターボ符号復号化）における前記メトリクス記憶手段と、第二の構成（畳み込み符号復号化）における前記適応可能記憶手段に接続されており、信頼値にそれぞれ関連するデコードされたデータの値を含む軟出力情報を各構成において計算する。さらに詳細に説明すると、前記ＬＬＲユニットが、パイプライン型構造をとり、ターボ符号復号化と重畳符号復号化の両方に用いられる部分を有する。
【００２１】
　実行される前記ＭＡＰアルゴリズムが、いわゆる対数ＭＡＰアルゴリズム、あるいはいわゆる最大対数ＭＡＰアルゴリズムである。
【００２２】
　前記ターボ符号復号化手段が、グローバル制御手段を有し、ターボ符号復号化を前記共通処理手段において反復型方法で実施させ、そのため一つのＭＡＰのみが用いられることも好都合である。
【００２３】
　本発明による複合型デコーダが、集積回路によって実現されることは好都合である。本発明はまた、上で定義した複合型デコーダを含む無線通信システムの端末装置に向けられている。そのような端末装置は、携帯移動電話や基地局を形成しても良い。
【００２４】
　本発明の他の利点や特徴は実施形態と添付図面の詳細な説明において明らかになるだろう。しかし、これらは本発明を制限するものではない。
【発明を実施するための最良の形態】
【００２５】
１．符号化
　１．１　一般的考察と畳み込み符号化
　畳み込み符号化は現在又は選択された以前のタイムステップの入力値の排他的論理和演算（modulo-2 sum）の計算によって実施される。ゆえに、実装は単純明快で、主にシフトレジスタと一組の排他的論理和（exclusive-OR）ゲートから成る。これらを切り替える方法によって、以下のような異種の畳み込み符号が実現されることが可能である。
【００２６】
　系列符号（systematic codes）：出力ストリームの一つが入力ストリーム（系列情報）に等しい。
【００２７】
　非系列符号（Non-Systematic Codes、NSC）：各出力がパリティ情報である。パリティ情報は、符号化プロセスのヒストリを示すシフトレジスタエントリの排他的論理和を取ることによって生成される。
【００２８】
　再帰的符号（Recursive Codes）：特別なパリティ信号が生成され、系列入力（systematic input）と一緒にフィードバックされる。
【００２９】
　非再帰的符号（Non-Recursive Codes）：フィードバックループが存在しない。
【００３０】
　畳み込み符号エンコーダの一例は、メモリ長（memory depth）やパリティ情報を生成するのに用いられる論理関数など、プロパティの組み合わせによって定義される。これらのプロパティは生成多項式によって記述される。
【００３１】
　　図1は、畳み込み積分（convolution）と畳み込み符号化用にＵＭＴＳ（Universal Mobile Telecommunications System）内で用いられる二つの異なるＮＳＣの構造を表しており、拘束長はターボ符号化の場合より大きい（Ｋ＝９）。さらに、二つの別個な比率を考慮しなければならない。符号化率１／２の畳み込み符号エンコーダ（ａ）は二つの出力を持ち、符号化率１／３のエンコーダ（ｂ）は三つの出力を持つ。
【００３２】
　利用可能な現在のタイムステップの値で、Ｍ＝Ｋ−１個のフリップフロップがエンコーダのヒストリを記憶するのに必要とされる。これは、エンコーダを有限状態機械（finite-state machine、FSM）として解釈するもととなる。それは、挙動がミーリーオートメーション（Mealy-automation）と同等であることを示す。二つの状態の間の遷移の可能性は畳み込み符号の復号化のキーである。
【００３３】
　１．２　符号トレリス（Code-Trellis）
　符号化トレリスは有限状態機械の展開された（unrolled）状態チャートである。エンコーダがN内でありうる状態の数は、拘束長Kの関数：N=２K―１である。
【００３４】
　符号（RSC、NSCなど）の性質に依存して、ある遷移だけが可能である。トレリスはこれらの遷移を表すために用いられる。図2はトレリスの一部分を示し、１タイムステップで可能な遷移を表す。状態チャートを示すために通常用いられるツリー構造の代わりに、トレリスが等価な状態を組み合わせる。図２の実線は、系列ビット「０」の入力による遷移を表し、点線は「１」による遷移を表す。
【００３５】
　規定上、すべての符号化プロセスは全ゼロ状態（all-zero state）で始まる。
【００３６】
　１．３　トレリス終結（Trellis-termination）
　考えられる符号化向けには、トレリスの初期状態は常に全ゼロ状態であることが知られている。対策を取らなくても、エンコーダは、逆方向再帰をどこで開始するかどんなヒントも残さず、任意の状態で終了する。これはエンコーダを定義した終結状態へ動かすことにより抑制できる。終結状態（例えば、全て０の状態）への到達は、できるだけ速く終結状態へエンコーダを向けるようなシーケンスを追加することによって達成される。このシーケンスは、最後の情報ビットが符号化された後にエンコーダが成る状態にも依存している。このシーケンスの長さはK−１に等しく、伝送ビットはテイルビット（tailbit）と呼ばれる。
【００３７】
　１．４　インターリービング（interleaving）
　復号化に基づいたトレリスは、バースト誤り（burst errors）に大変脆弱である。伝送ビットのシーケンスが壊れたならば、復号化は不正確となる。ゆえに、近傍関係を分解するスキーマである、インターリービングが適用される。
【００３８】
　インターリービングの背後にあるキーアイデアは、生成あるいは使用されるのとは異なる順序でビットを伝送することである。例えば、ビット４は近傍３と５と、連続して符号化されるけれども、伝送中は３１２や１０２１の隣でも良い。通信路内のバースト誤りは、ビット３１２、４、１０２１に影響を与える。受信側では、これらの誤りはデインターリーバー（deinterleaver）を通して再び広がり、初期順序を復元する。このように復号化はほとんど影響をおよぼさない。
【００３９】
　１．５　ターボ符号化
　ターボ符号エンコーダは二つの要素の畳み込み符号エンコーダと、インターリーバーから構成される。畳み込み符号は、符号化率１／２のＲＳＣ符号と、前に紹介した生成多項式となるよう定められる。
【００４０】
　第二のエンコーダの系列情報は伝送されない。（デインターリービングによって）第一のエンコーダの系列出力から再構築される可能性があるからである。これにより、符号化率Ｒ＝１／３は実現される。図３は詳細なＵＭＴＳターボ符号エンコーダを示している。トレリス終結は、各エンコーダをそれぞれの最終状態へ導く。これはテイルビット用の第一、第二のエンコーダの系列情報の間の依存性を分解する。なぜなら、これらは図３に示すようにそれぞれの切り替えを実現することによって、各エンコーダを他のエンコーダから独立させるからである。ゆえに、エンコーダのうち最後の６ビット（系列情報とパリティ情報）は別個に転送されなければならない。これはブロック当たり１２ビットのオーバーヘッド（付加ビット）という結果になる。
【００４１】
２．復号化
　畳み込み符号の復号化は、エンコーダで行われた遷移の経過を追っている。これらから、送られた入力シンボルが差し引かれる。通信路によって起きる劣化により、系列ビットとパリティビットの推定のみ有効であり、ここでは両方が通信路値と呼ばれる。以下のような二つの異なる種類の出力がある：
　ハード値（hard value）：シンボルが「１」か「０」であると思われるかどうかを単に示すだけにすぎない。
【００４２】
　ソフト値（soft value）：判断の信頼度の程度も配信する。（硬判定（hard decision）は判断が正しいという確率によって拡張される。）
　ターボ復号化にとって、軟入力値（soft-in value）だけが、適切である。通信路値に基づいて、系列ビットとパリティビットのある組み合わせが起こる確率が計算可能である。これとエンコーダのヒストリを考慮して、エンコーダが所与のタイムステップで所与の状態にあった確率が計算可能である。
【００４３】
　二つのアプローチがこれらの状態確率を扱うために存在する。ビタビアルゴリズム（Viterbi Algorithm）に基づいた最大尤度は、最も有望な符号化ワードを探すためにこれらを利用する。このために、このアルゴリズムは全て０の状態から最終状態までトレリスを横断し、最も有望なシーケンスを捜す。「生き残りパス（survivor path）」用に選ばれた状態は、送られたシンボルの最も有望なシーケンスを示す。ゆえに、ビタビデコーダはシーケンス推定器である。
【００４４】
　一方、最大事後確率（maximum-a-posteriori、ＭＡＰ）アルゴリズムはエンコーダが所与の状態にあった確率と、現在の状態が通信路値の剰余に与えられた最終状態へ向かっている確率を推定する。これはトレリスを通して順方向、逆方向再帰によって効率的に計算可能である。その後、各ビットにとって、系列「０」に関連する状態の確率は、「１」に関連する確率に追加、比較される。高い確率のシンボルは、送られたものだと仮定される。このアルゴリズムはシーケンスレベルよりむしろビット上で働くので、記号推定と呼ばれる。
【００４５】
　ターボ符号化は畳み込み符号デコーダの軟出力も要求する。最適なアルゴリズムはＭＡＰアルゴリズムとＳＯＶＡ（Soft Output Viterbi Algorithm、軟出力ビタビアルゴリズム）である。
【００４６】
　ＳＯＶＡは通常、ビタビアルゴリズム部と軟出力を計算する担当部を含む２ステップアルゴリズムとして実装される。ビタビを実現する部分の状態メトリクスユニットは、トレースバック（trace-back）あるいはレジスタ交換構造に基づいて実装可能である。軟出力計算部は、主に競合パス計算ユニットから構成される。低いスループットを除けば、このユニットはレジスタ交換アーキテクチャとして実装される。レジスタ交換ユニットの主要な欠点は、ハードウェアのフォールディング（folding、折り畳み）にあまり向いていないことである。ゆえに、幅広いスループット要求に対して効率的なＳＯＶＡアーキテクチャを獲得するのは（不可能ではないにしても）困難である。さらに、最適な軟更新（soft update）を伴うＳＯＶＡの通信性能は、準最適化最大対数ＭＡＰ（sub-optimum MaxLogMAP）アルゴリズムと同様である場合のみ可能である。効率的実装のために、ＭＡＰアルゴリズムが実装され、本発明に準拠したハードウェアのフォールディングと調和する。
【００４７】
　２．１　ターボ復号化
　最も有望なコードワード（codeword）を捜すことによるターボ符号の復号化は、あまりに複雑である。それゆえに、反復型復号化が勧められる。二つの畳み込み符号がそれぞれ復号化される。それを行う間、各デコーダは他方によって集められた情報を組み込む。この「情報の集約」は、軟出力値の交換であって、ユニットのビット推定は次への事前情報に変換される。デコーダは、それゆえＳＩＳＯユニットでなければならない。
【００４８】
　ビット推定における信頼度は、対数尤度比（Log-Likelihood-Ratio、ＬＬＲ）で表される：
【数１】
2004104787.tif 000003
【００４９】
　記号はこのビットが１または０であるかどうかを示す。一方、判断の信頼度は振幅によって表される。
【００５０】
　最後の復号化ステージで集約された情報を抽出するために、この推定に導いた系列情報と事前情報が減算されなければならない。これは以下のようになる。
【数２】
2004104787.tif 000004
【００５１】
　これは外部情報（extrinsic information）と呼ばれる。
【００５２】
　ある値をもつビットにおける一方のデコーダの信頼度は、他方の初期推定にバイアスをかける。図４は、二つのＭＡＰデコーダ、インターリーバ、デインターリーバから構成される、そのようなターボ符号デコーダを示す。次への事前情報入力として一方のデコーダの入力を供給することは、復号化の繰り返しの間の改善を可能にする。それはまたターボ符号に名前を与える（例えば、燃焼ターボエンジンに用いられる「feedback-of-exhaust」のように）。デコーダへの入力は、受け取った通信路値（系列、パリティ１、パリティ２）であり、ごく初期のＭＡＰ１オペレーションの間、事前情報は０にセットされる。
【００５３】
　２．２　最大事後確率（ＭＡＰ）アルゴリズム
　最大事後確率という名前は、ビットの推定が全体の受信側シーケンスに基づくことに由来する。このアルゴリズムはすべての情報が入った後に行われる。（２．４）式はそのようなＭＡＰデコーダの出力を示す。
【００５４】
　バール（Bahl）らは、非特許文献２において、ＭＡＰデコーダにとって効率的なアルゴリズムについて述べており、それは、順方向、逆方向再帰中のトレリス上で操作する再帰式に基づいている。そのアルゴリズムは一般にＭＡＰあるいはＢＣＪＲアルゴリズムと呼ばれる：
【数３】
2004104787.tif 000005
【００５５】
がＭＡＰの入力を示し、シンボルシーケンス（symbol sequence）を
【数４】
2004104787.tif 000006
【００５６】
とする。ここで、Ｎはブロックの長さである。そして、ＢＣＪＲアルゴリズムは、シンボルシーケンス受信後に各データ記号dkに対して事前確率（a-posteriori probabilities、ＡＰＰ）を以下のように計算する。
【数５】
2004104787.tif 000007
【００５７】
　（ＡＰＰは）二つの確率を用いて計算される：一方は、エンコーダが状態Smkに到達した確率である。ｋが記号を受信した後のm∈{1 … 2M}を用いて、以下の式になる。
【数６】
2004104787.tif 000008
【００５８】
　他方は、入力シーケンスの剰余がエンコーダを、時刻ｋ＋１で状態Sm’k+1を与えられる最終状態へ導く確率であって、以下の式となる。
【数７】
2004104787.tif 000009
【００５９】
　このため、状態SmkからSm’k+1への遷移の確率を知らなければならない。この確率は、符号化構造、通信路モデル、前の復号化ステップの外部情報、受信した記号Ｒｋ、に依存しており、以下の式となる。
【数８】
2004104787.tif 000010
【００６０】
　γを用いて、αとβは以下の式のように再帰的に計算される。
【数９】
2004104787.tif 000011
【００６１】
　既知の開始状態と最終状態は、ＢＣＪＲアルゴリズムが最適に実施されるために必要である。トレリスが終了しないならば、全ての状態がｋ＝Ｎと等しい確率を持つと仮定しなかればならない。
【００６２】
　事後確率自体は以下のように表すことができる。
【数１０】
2004104787.tif 000012
【００６３】
　ＡＰＰの計算に係わる乗算回数の多さは、実装にとってはあまり魅力的ではなくなる。それゆえ、ＭＡＰアルゴリズムは対数領域に変換されなければならず、対数ＭＡＰアルゴリズムとなる。これにより、誤り訂正性能を劣化させず、数値安定度と実装の容易さが向上する。
【００６４】
　２．３　対数領域におけるＭＡＰアルゴリズム：LogMAP
　乗算から加算への変換が、ＭＡＰアルゴリズムを対数領域で定義する動機である。加算によって問題が引き起こされる。ヤコビアン対数を用いて、加算は新しい演算子に置き換えられる。
【００６５】
　　　ln(eδ1 + eδ2) = max*(δ1, δ2) = max(δ1, δ2) + ln(1 + e−|δ1−δ2|)
　負の対数の場合も同様で、以下のように導出する。
【００６６】
　　　min*(δ1, δ2) = min(δ1, δ2) − ln(1 + e−|δ1−δ2|)
　二つ以上のオペランドの場合、max*は再帰的に適用される。演算子は結合型（associative）なので、ツリー状（tree-like）の推定を用いることが可能であり、ハードウェア実装において有利である。準最適化最大対数ＭＡＰアルゴリズムは以下の近似を用いて獲得される。
【数１１】
2004104787.tif 000013
【００６７】
　max*演算を用いて、再帰式（recursion）は以下のようになる。
【数１２】
2004104787.tif 000014
【００６８】
　ここから、ln(αk(m’))を、
【数１３】
2004104787.tif 000015
【００６９】
として表し（βとγも同様）、そして再帰式は以下の形を取る。
【数１４】
2004104787.tif 000016
【００７０】
　同様に、以下の式を得る。
【数１５】
2004104787.tif 000017
【００７１】
　ここで
【数１６】
2004104787.tif 000018
【００７２】
の計算は、通信路値の推定と事前情報を含む。従来の方法がかなり複雑なのに対して、最適化ブランチメトリック計算が用いられる。伝送の前に、すべてのビットに変換が必要である。ｘk∈{０,１}と（符号化）ビットとして、伝達された値は、
　　　ｙk=−２・ｘk + １
　　　但し、ｙk∈{−１,１}
となる。
【００７３】
　このように、実際のマッピングは、１→−1と０→１である。
【数１７】
2004104787.tif 000019
【００７４】
が取りうる全てのｋのうち、４種類のみの値であり、これらの値は全ての仮定、
【数１８】
2004104787.tif 000020
【００７５】
向けである。符号化構造が単独で決まり、いずれかの遷移を割り当てられる。不変の要素をスキップし、さらなる代数変換を行った後、以下の式を得る。
【数１９】
2004104787.tif 000021
【００７６】
　これらの式は、通信路と事前データから計算されるのが二項のみであるように、実装を著しく単純化する。１項目は切り捨て可能であり、最後の項は先の二項から計算される。スケーリング要素４Ｅｓ／Ｎ０は、ワーキングポイント（working point、作用点）の使用により外部から掛けられる。
【００７７】
３．ウィンドウイング
　ＭＡＰアルゴリズムは、各ビットの判定を、完全なサンプルのブロックの知識に基づかせ、ビット誤りの確率、すなわち事後確率を最小化する。しかし、ウィンドウをビット位置ｋを増加させる方向へスライドさせるスライディングウィンドウ技術が、オリジナルなMAPデコーダとほとんど同じ通信性能を提供することが示されてきている。そこで判定は、完全なブロック内の最初のビット位置で始まり、スライディングウィンドウ内の最後の位置で終了するサブブロックに基づいている。MAPアルゴリズムはウィンドウに沿って全てのビットを判断し、ウィンドウの最後の部分に含まれるビットをより少なくすることが可能である。最後の部分にあるこれらのビットは、ウィンドウが次の部分へ動いたときに決定される。中間部のビットだけが復号化されるならば、ウィンドウはスライド（ある方向へ安定して動かすこと）しなくてよい。
【００７８】
　ＭＡＰアルゴリズムの式を見れば、容易に四つのサブタスクを識別できる。
【００７９】
　　ブランチメトリクスの計算（ステップ１）
　　順方向再帰中の順方向状態メトリクスの計算（ステップ２）
　　逆方向再帰中の逆方向状態メトリクスの計算（ステップ３）
　　軟出力の計算（ステップ４）
　これらステップの間のデータ依存性は以下のとおりである：両再帰（ステップ２，３）と軟出力計算（ステップ４）はブランチメトリクス（ステップ１）に依存しており、軟出力計算（ステップ４）は順方向、逆方向状態メトリクス（ステップ２，３）にさらに依存している。現在のデータの全てのブランチメトリクスと軟出力は互いに独立して計算可能である。順方向状態メトリクスを計算する順番と、逆方向状態メトリクスを計算する順番だけが、それぞれの再帰の方向によってあらかじめ定義される。再帰のシーケンスは重要ではない。順方向と逆方向状態メトリクスの間にはデータ依存性がないからである。逆方向再帰は、順方向再帰の前に、同時に、または後に処理することができる。それゆえに、第一と第二の再帰の概念を導入することが可能である。あるトレリスのステップの第一の再帰のメトリクスは、第二の再帰がトレリスステップとつながる軟出力値を計算するよう損失相補（missing complementary）メトリクスを生成するまで、メモリに記憶されなければならない。このように、デコーダは全データブロックの第一の再帰メトリクスを記憶する必要がある。データサブブロックを有するウィンドウイングの導入は、依存性を壊す。ウィンドウ毎を基準とする復号化は、必要なメモリサイズを減らすことを可能にする。
【００８０】
　ウィンドウ上で復号化するための前提条件は、「獲得（acquisition）」の概念である。元来、ＭＡＰデコーダの順方向、逆方向再帰は、トレリスの一端で始まり、反対の端で停止する。しかし、適当に長い獲得フェーズでは、再帰はどのようなトレリスのステップでも開始することが可能である。これは順方向、逆方向再帰の両方に適用される。
【００８１】
　順方向獲得開始をトレリスステップｋ−Ｍとする。ここでＭは獲得長（acquisition depth）である。順方向状態メトリクスは次式のように初期化される：
【数２０】
2004104787.tif 000022
【００８２】
　Ｍ回の再帰ステップの後、メトリクス
【数２１】
2004104787.tif 000023
【００８３】
は、トレリスの最初から再帰を開始することにより獲得される値に近づく。ここで、逆方向再帰開始をトレリスステップｋ＋Ｍとする。逆方向状態メトリクスは次式のように初期化される：
【数２２】
2004104787.tif 000024
【００８４】
　順方向再帰に類似して、同じ回数の再帰ステップＭの後、メトリクス
【数２３】
2004104787.tif 000025
【００８５】
は、トレリスの最後から再帰を開始することにより獲得される値に近づく。獲得長Ｍが小さすぎる場合、復号化性能は激しく劣化する。ある値を上回るＭの場合、復号化性能は実質的に最適になる。計算労力と復号化性能との間の適度なバランスへ導くＭの値は、シミュレーションによって決定される。
【００８６】
　ウィンドウサイズは通信性能に影響はないが、アルファ状態メトリクスの記憶のためのＲＡＭのサイズに影響する。さらに、スループットは獲得長とウィンドウサイズの比率に依存する。状態メトリクス計算ユニットが一つだけ使用可能な場合、個々のウィンドウは逐次処理される。順方向再帰に１クロックサイクル、逆方向再帰／データビット当たりのＬＬＲ計算に１クロックサイクルを要する。追加計算オーバーヘッドは獲得ステップの総数で決定される。ウィンドウサイズが獲得長と等しければ、復号化はビット当たり１つの追加クロックサイクルが必要であり、合計３つのクロックサイクルが必要になる。ウィンドウサイズが獲得長より大きければ、計算オーバーヘッドはほぼ０になり、スループットはほぼ２となる。だから、ウィンドウサイズの選定はメモリサイズとスループットとの間のトレードオフである。
【００８７】
４．畳み込み符号デコーダとターボ符号デコーダの複合型実装
　４．１
　図５は、セルラー式移動電話ＴＰの受信チェインに組み込まれた、本発明に準拠した複合型デコーダを示している。
【００８８】
　エンコードされた信号はアンテナＡＮＴによって受信されており、受信機の無線周波数ステージＥＲＦによって処理されている。ＥＲＦステージの出力で、信号はＡ／Ｄコンバータによってデジタル領域に変換される。デジタルベース帯域信号はそれから、ＣＤＭＡシステムの場合に一般に使用される「レイク（rake）」復調器によって処理される。
【００８９】
　それから、通信路復号化ステージは、本発明に従った複合型ターボ符号／畳み込み符号デコーダＣＴＤを含む。
【００９０】
　また、処理チェインは、ソース復号化処置を実行するソース復号化ブロックＤＣＳを有する。
【００９１】
　４．２
　デコーダはＵＭＴＳ準拠畳み込み符号（ＣＣ）と同様に、ＵＭＴＳ準拠ターボ符号（ＴＣ）を復号化することが可能である。復号化はＭＡＰデコーダで行われる。両符号への要求は、全く異なる。ターボ符号は、５１２０ビット以上の大きなブロック長を備えるが、８つの状態しか備えていない。一方、畳み込み符号は、最大５１２ビットという大変小さいブロック長であるが、状態は２５６も備える。この要求は、畳み込み用の小さなＩ／Ｏ ＲＡＭと大きなα状態メトリクスＲＡＭと比較して、ターボ符号用の大きなＩ／Ｏ ＲＡＭｓと小さなα状態メトリクスＲＡＭを導く。それゆえに、本発明は効率的なＲＡＭの再利用を提供する。さらに、２５６個のＣＣ状態メトリクスの再帰的計算は、ＴＣ状態メトリクス計算において、「ハードウェア折りたたみ（hardware-folded）」となる。
【００９２】
　次の表はＣＣとＴＣのための異なる主要なＲＡＭの要件を示している。ここで、両デコーダのウィンドウサイズは６４，入力は6ビット、状態メトリクスは１１ビットとした。
【表１】
2004104787.tif 000026
【００９３】
　４．３　複合型デコーダの一般的アーキテクチャ
　本発明に準拠した複合型デコーダＣＴＤは、図６に示されるように、ターボ符号復号化を実施するためのターボ符号復号化手段ＴＣＤＣＭと、畳み込み符号復号化を実施するための畳み込み符号復号化手段ＣＣＤＣＭを有する。
【００９４】
　ターボ符号、畳み込み符号復号化手段は、ＭＡＰアルゴリズムを実装し、ターボ符号復号化専用の第一の構成と、畳み込み符号復号化専用の第二の構成を備える、共通処理手段ＣＣＰＲを有する。前記共通処理手段ＣＣＰＲあるいはＭＡＰユニットは、ＭＡＰ１、ＭＡＰ２演算がターボ復号化用に、停止条件が満たされるまで逐次行われる、ＳＩＳＯユニットを形成する。
【００９５】
　さらに、これら共通処理手段について付言すると、ターボ符号復号化手段ＴＣＤＣＭが従来型インターリーブ手段ＩＬを有する。
【００９６】
　さらに、複合型デコーダＣＴＤは、第一のトレリス（ここでは8状態）の状態に関連した順方向状態メトリクスを記憶する、メトリクス記憶手段（ＴＣ α-ＲＡＭ）を有する。前記順方向状態メトリクスは、第一の構成（ターボ復号化）において処理手段ＣＣＰＲによって届けられる。
【００９７】
　入力／出力記憶手段（ＣＣ Ｉ／Ｏ ＲＡＭｓ）は、第二の構成（ＣＣ復号化）において、処理手段ＣＣＰＲへ届けられ、ＣＣＰＲによって送られる入力、出力データを記憶するために提供される。
【００９８】
　最後に、適応可能記憶手段ＡＤＭＭは、第一の構成（ターボ符号復号化）において、前記共通処理手段ＣＣＰＲへ届けられ、ＣＣＰＲによって送られる入力、出力データを記憶するために用いられる。また、第二の構成（畳み込み符号復号化）において、第二のトレリス（ここでは２５６状態）に関連し、前記共通処理手段ＣＣＰＲによって送られる順方向状態メトリクスを記憶する。
【００９９】
　制御手段ＣＴＲＬＭは、符号に従った第一または第二の構成において、前記共通処理手段ＣＣＰＲを構成する。メモリ制御手段はＣＴＭＭは、前記共通処理手段ＣＣＰＲの構成に依存して、前記適応可能記憶手段に別々なアドレスを指定する。
【０１００】
　４．４　共通処理手段（ＣＣＰＲ）のアーキテクチャ
　図７は共通処理手段ＣＣＰＲの内部構造をさらに詳細に示している。
【０１０１】
　処理手段ＣＣＰＲは基本的に、３つの主要な計算ユニットを有する。すなわち、
　　・ＢＭユニット：ブランチメトリクス（ＢＭ）を計算し、Ｉ／Ｏ ＲＡＭｓとαＲＡＭを制御する。
【０１０２】
　　・状態メトリクスユニット：８つの追加比較選択（ＡＣＳ）ユニットと並行して、８つの状態メトリクスＳＭを計算する。
【０１０３】
　　・ＬＬＲユニット：パイプライン型手法でＬＬＲを計算する。
【０１０４】
　４．５　畳み込み復号化用入出力記憶手段（ＣＣ Ｉ／Ｏ ＲＡＭｓ）
　入力ＲＡＭは、ＣＣ入力データに従った３個のＲＡＭ（Ｇ０−ＲＡＭ、Ｇ１−ＲＡＭ、Ｇ２−ＲＡＭ）から構成される。出力ＲＡＭはＣＣＬＬＲ＿ＲＡＭである。ＲＡＭのサイズは５１２＊６ビットである。
【０１０５】
　４．６　ターボ復号化用メトリクス記憶手段（ＴＣα−ＲＡＭ）
　ＴＣ復号化用のα状態メトリクスＲＡＭは、専用の６４＊８８ビットＲＡＭ（αＲＡＭ）である。
【０１０６】
　４．７　適応可能記憶手段（ＡＤＭＭ）
　適応可能記憶手段ＡＤＭＭは、ターボ符号復号化用入力、出力データを記憶するためか、又は畳み込み符号復号化において順方向状態メトリクスを記憶するためかのどちらにも用いられる。
【０１０７】
　そして、図8に示すように、これら適応可能記憶手段は、追加記憶手段Ａｄｄと同様に大量の基本メモリを有する。
【０１０８】
　より詳細には、本発明において、ターボ符号復号化手段ＴＣＤＣＭは、ｂ１ビット（ｂ１＝６）、Ｎ１シンボル（Ｎ１＝５１２０）の連続シーケンスを受け取るよう適応される。第一の構成（ターボ復号化）において処理手段ＣＣＰＲへ届けられ、ＣＣＰＲによって送られる入力、出力データは、各受信シーケンスに向けに、ｂ１ビット、Ｎ１ワードのｇ種類のブロックを有する。ここで、ｇ＝４として、ｇ個のブロックは、
　　・系列入力データＸ、
　　・パリティ入力データＹ１、
　　・インターリーブ化パリティ入力データＹ２、
　　・復号化の判定（出力データ）、
となる。
【０１０９】
　畳み込み符号復号化の場合、適応可能記憶手段に記憶される順方向状態メトリクスは、ｂ２ビット、Ｎ２ワード（Ｎ２＝１７２８）のブロックである。ｂ２はｂ１より大きい。一般に、Ｎ２とｂ２の積は、ウィンドウサイズＷとトレリスの状態数と各状態のビット数との積と等しい。この場合、Ｗは畳み込み符号の場合は５４で、ターボ符号の場合６４である。状態数はターボ符号の場合８で、畳み込み符号の場合２５６である。そして、各状態のビット数は１１である。
【０１１０】
　従って、Ｎ２は１７２８であり、ｂ２は８８となる。
【０１１１】
　このように、図８にしめすとおり、適応可能記憶手段ＡＤＭＭの主記憶手段は、それぞれＮ１ワードのｇブロックに専用の4組のｐ（ｐ＝３）基本メモリを有する。そして、各基本メモリはｂ１ビットのＮ２ワードを記憶するよう適応される。
【０１１２】
　追加メモリＡｄｄは16ビットの１７２８ワードを記憶するよう適応される。
【０１１３】
　そして、一般的に言って、メモリ制御手段ＣＴＭＭは、第一の構成（ターボ符号復号化）において適応可能記憶手段ＡＤＭＭに、６ビット、５１２０ワードの各ブロックが3個の基本メモリの専用グループから読み書きされるようにアドレスを指定する。
【０１１４】
　さらに、前記メモリ制御手段ＣＴＭＭは、第二の構成（畳み込み符号復号化）において前記適応可能記憶手段ＡＤＭＭに、前記順方向状態メトリクスの１２の基本ワードが、同じアドレスで主記憶手段の１２の基本メモリにそれぞれ記憶されるように、アドレスを指定する。また、順方向状態メトリクス追加基本ワード（１６ビット）は、同じアドレスで追加記憶手段に記憶される。
【０１１５】
　言い換えれば、ＣＣ復号化の場合、ＴＣの各Ｉ／Ｏ ＲＡＭは３つの別のＲＡＭに分けられる。これらのＲＡＭは、８つの状態メトリクスを別々に記憶するために必要なビット幅を形成するよう連結されている。88ビット（８＊１１ビット）必要であり、Ｉ／Ｏ ＲＡＭは6ビット幅なので、４＊３＊６ビット＝７２ビットである。それゆえに、ＣＣ αＲＡＭを形成するためにさらに16ビットＲＡＭが必要である。このＲＡＭの共有は、ＣＣ復号化に充分なウィンドウサイズを得ることを可能にする。
【０１１６】
　図８に示すとおり、命名規則は以下の通りである：
　　　・系列入力データはＸ＿ＲＡＭ１、Ｘ＿ＲＡＭ２、Ｘ＿ＲＡＭ３に記憶される。
【０１１７】
　　　・パリティ入力データはＹ１＿ＲＡＭ１、Ｙ１＿ＲＡＭ２、Ｙ１＿ＲＡＭ３に記憶される。
【０１１８】
　　　・インターリーブ化パリティ入力データはＹ２＿ＲＡＭ１、Ｙ２＿ＲＡＭ２、Ｙ２＿ＲＡＭ３に記憶される。
【０１１９】
　　　・ＴＣ出力ＲＡＭはＬＬＲ＿ＲＡＭ１、ＬＬＲ＿ＲＡＭ２、ＬＬＲ＿ＲＡＭ３、である。
【０１２０】
　　　・ＭＳＢは硬判定を表し、ＬＳＢは外部情報／ＬＬＲ軟判定（実際の復号化進行に依存）を表す。これらの判定は、ＭＡＰ１ ＣＲＣがチェックした後、デコードを停止することを可能にする。
【０１２１】
　ＲＡＭが３つに分けれられるので、適切なアドレス変換がアドレス空間０〜５１１９を３つの０〜１７２７へ写像するよう行われる。この値は実現可能な最小のＲＡＭに切り上げられる。実際必要なＲＡＭのみが起動され、他のすべては選択されない。
【０１２２】
　４．８　ブランチメトリクスの計算
　共通処理手段は、第一、第二の構成において、対応するトレリスのブランチに関連するブランチメトリクスを計算するためのブランチメトリクスユニット（ＢＭ）を有する（２．１６式参照）。
【０１２３】
　ＴＣ入力データサンプルのＣＴＤデコーダへの転送は、以下のような順で行われる：
【数２４】
2004104787.tif 000027
【０１２４】
Biはi番目の符号ブロックにおけるビット数である。
【０１２５】
　テイルビットの記憶が考慮されなければならず、トレリス終了用の伝達ビットは以下のようになる：
【数２５】
2004104787.tif 000028
【０１２６】
　パリティデータＲＡＭ、Ｙ１とＹ２は逐次満たされていき、再帰的な3つのテイルビットは最後に追加される。系列データＲＡＭ、Ｘもまた逐次満たされ、ゆえに合計６つのテイルビットとなり、第一のエンコーダ用のテイルビットは最初に追加され、第二のエンコーダ用のテイルビットが従う。
【０１２７】
　ＣＣ復号化用の入力シーケンスは、より単純で、テイルシーケンスは一つだけである。テイルビットは再帰的ＲＡＭの最後に追加される。
【０１２８】
　ウィンドウイングスキーマの各ステップは、さらにサブステップに分けることができる。ブランチメトリクスの計算は、状態メトリクスの計算のための前提条件である。メモリ制御手段は、それゆえに、入力ＲＡＭに再帰的ブランチメトリクスを計算するようアドレスを指定する。上で提案された最適化ＭＡＰ計算スキーマが用いられる。用いられた命名規則は、系列情報、パリティ情報のバイナリ表現に基づき、［系列情報／パリティ情報］∈｛０，１｝はそれぞれ［Ｇ０／Ｇ１］、［Ｇ０／Ｇ１／Ｇ２］と表す。Ｘ，Ｙ，ＬＬＲ、Ｇ０，Ｇ１，Ｇ２はこのＲＡＭに記憶される個々のデータを表現している（たとえば、ＬＬＲ-ＲＡＭの内容は外部情報である）。
【０１２９】
ターボ符号（ＴＣ）：
　　　branch０＝０
　　　branch１＝Ｙ
　　　branch２＝Ｘ＋ＬＬＲ
　　　branch３＝Ｘ＋Ｙ＋ＬＬＲ
畳み込み符号（ＣＣ）、符号化率１／２：
　　　branch０＝０
　　　branch１＝Ｇ１
　　　branch２＝Ｇ０
　　　branch３＝Ｇ１＋Ｇ０
畳み込み符号（ＣＣ）、符号化率１／３：
　　　branch０＝０
　　　branch１＝Ｇ２
　　　branch２＝Ｇ１
　　　branch３＝Ｇ１＋Ｇ２
　　　branch４＝Ｇ０
　　　branch５＝Ｇ０＋Ｇ２
　　　branch６＝Ｇ０＋Ｇ１
　　　branch７＝Ｇ０＋Ｇ１＋Ｇ２
　ブランチメトリクス計算は非常に単純で、ＴＣの場合二つの加算、ＣＣの場合四つの加算（branch７の計算は以前の加算を再利用する、例えばＧ０＋Ｇ１）である。ＴＣの場合、ＭＡＰ２演算の間にインターリーブ化データを使わなければならない。ゆえに、ＢＭユニットは最適なアドレスを取り出すように外部インターリーバとやりとりをする。順方向、逆方向ＴＣ再帰の間にデータ衝突を避けるため、専用ＬＬＲキャッシュが専用ＬＬＲレジスタ同様に必要となる。これは簡単な例で説明される：
　図９はウィンドウ長を４と仮定した計算スキーマを示している。第一のウィンドウの順方向再帰は、３つのα状態メトリクスしか計算されないように、通常特別である。だから、初期化状態メトリクスalpha[0]も、新たに計算されたalpha[1]からalpha[3]までと一緒にαＲＡＭの中に記憶される。スキーマは、ブランチメトリクスbm[1]を計算することによって開始される（ステップ１）。これは外部情報ex1をＬＬＲ ＲＡＭから読み出す必要がある。この外部情報はまた、ＬＬＲキャッシュに記憶される（ステップ２）。１番目のα状態メトリクスalpha[1]を計算したら、前状態メトリクスalpha[0]もまたαＲＡＭに記憶される（ステップ３）。これは４つのα状態メトリクスが全て記憶されるまで繰り返される。
【０１３０】
　ここから、beta[5]を計算することにより、ベータ獲得が開始される。このように、ブランチメトリクスbm[6]を計算する必要があるので、ＬＬＲ ＲＡＭからのex6の読み込みを行う（ステップ４）。Beta[4]を再帰的に計算した後、正規逆方向再帰がbeta[3]の計算で開始され、ブランチメトリクスbm[4]用にex4が読み込まれる。Ex4は後の利用のため別のレジスタにも記憶されることに注意されたい（ステップ５）。残りのベータ再帰ステップのために、ブランチメトリクス計算用の外部情報がＬＬＲキャッシュから読み出される。このため新しい外部情報は並行して計算される。これはステップ６で示される。Beta[3]の計算と並行して、ＬＬＲ[4]はalpha[3]をαＲＡＭから読み出すことにより計算される。このＬＬＲ[4]から、新たなex4がステップ７で計算され、ＬＬＲ ＲＡＭに記憶される。前の「古い」ex4は上書きされる。特別なＬＬＲキャッシュの導入は、外部情報の並列の読み出し（ブランチメトリクス計算用）と書き込み（新たに計算された外部情報）を可能にする。
【０１３１】
　ベータ再帰の終了後、次の順方向再帰が第二のウィンドウで開始される。Alpha[4]の計算はブランチメトリクスbm[4]が必要である。ブランチメトリクスbm[4]は、ex4が必要で、ex4はベータ再帰の間ＬＬＲ ＲＡＭに上書きされる。ゆえに、以前に記録されたex4が、ブランチメトリクスの計算に用いられる（ステップ８）。それから、順方向再帰はＬＬＲ ＲＡＭからex5を読み出し、ex5をＬＬＲキャッシュにバッファリングし、alpha[4]をαＲＡＭに記録するなど、ステップ１〜３に従って進行する。
【０１３２】
　逆方向／ＬＬＲ演算の間、ブランチメトリクス計算用の「古い」外部情報は、キャッシュから読み出される。同時に「新しい」外部情報が書き込まれるからである。さらに、第一の計算記憶された「新しい」外部情報は、次の順方向再帰のため、まだ必要な値に上書きされる。前外部情報ex4は、レジスタにバッファリングされなければならない。
【０１３３】
　ゆえに、ＴＣブランチメトリクスを計算するための外部情報は４つの異なるソースを備えることができる：
　　　・ＬＬＲ ＲＡＭからの外部情報
　　　・ＬＬＲキャッシュからの外部情報
　　　・llr_oldレジスタからの外部情報
　　　・ごく初期のMAP1演算の間、ゼロにするための外部情報セット
CC復号化はインタラクティブではないので、つまりフィードバックループがないので、LLRキャッシュは必要ではない。
【０１３４】
　４．９　状態メトリクスの計算
　ここから、状態メトリクスの計算へ目を向けてみよう。共通処理手段ＣＣＰＲは、構成可能状態メトリクスユニットSMを有する。
【０１３５】
　図７、図１０、図１１に示すように、構成可能メトリクスユニットSMは以下の要素を有する：
　　・各構成において、８つの順方向状態メトリクスを計算するための、８つの並列なACS（追加比較選択）ユニットのアーキテクチャ
　　・再帰計算のために、計算された順方向状態メトリクスを一時的に記憶するための、予備記憶手段（AXMM）
　　・前記共有処理手段の構成に依存して、前記予備記憶手段内のメトリクスの記憶を制御するための、予備制御手段
　４．１０　ACSアーキテクチャ
　図１０に示すACSアーキテクチャは、（２．１３）式と（２．１４）式に従い、ブランチメトリクスと前状態メトリクスから並列に８つの状態メトリクスを計算する。これは８つのACSユニットでモドミン（modmin）プロシージャ（MODMINブロックがmin*オペレータを実行する）に基づき行われる。
【０１３６】
　ACSアーキテクチャは、ターボ符号、畳み込み符号両方において、逆方向再帰と同様に順方向にも用いられる。異なるトレリス図のため、ブランチメトリクス（bmux）と状態メトリクス（smux）を受信するように柔軟性はマルチプレクサで達成される。これらマルチプレクサは、以後に説明するように、外部から制御される。
【０１３７】
　８個のACSユニットは、合計１６個のブランチメトリクスと状態メトリクスが必要で、ゆえに16個のbmuxマルチプレクサが提供される。各bmuxマルチプレクサは8個のブランチメトリクスの中で選択することができる（符号化率１／３のCCは、計8個のブランチメトリクスが必要だから）。しかしながら、特定状態メトリクス分配（distribution）のおかげで、１６ではなく１２個のsmux状態メトリクスマルチプレクサが必要とされる。さらに、この状態メトリクス分配は２：１だけのsmuxマルチプレクサを導く。なぜなら、設定はCC順方向再帰／TC逆方向再帰において、またはCC逆方向再帰／TC順方向再帰においても有効である。計算された状態メトリクスの補助マルチプレクシングはない。順方向再帰の場合、新しい状態メトリクスは常に昇順である。
【０１３８】
　図１０はACSアーキテクチャの一般的アーキテクチャを示している。Sm1からSm8は、１タイムステップでの８つの並列入力状態メトリクスであり、bm0からbm7は８より大きい個数の、別個のブランチメトリクスを示す。TC順方向／CC逆方向用のsmux設定は、太字で表される。このユニットの出力は、LLR計算用のllrメトリクス（ベータ状態メトリクスとブランチメトリクス）と同様の新しい状態メトリクスである。
【０１３９】
　状態メトリクスのマルチプレクシングスキーマは、入力状態メトリクスのsm1からsm8への割り当ての単純な例で示されるだろう：
　ターボ符号：
【表２】
2004104787.tif 000029
【０１４０】
　畳み込み符号：
【表３】
2004104787.tif 000030
【０１４１】
この割り当てを用いて、前述した１２個の状態メトリクスマルチプレクサが必要となる。よって、TC順方向再帰用の設定について、１６の状態メトリクス設定は、図１０の上から順番に：
sm1、sm2、sm3、sm4、sm5、sm6、sm7、sm8、sm1、sm2、sm3、sm4、sm5、sm6、sm7、sm8、となる。こうして以下のような結果となる：
　alpha[1][n+1] = min(alpha[1][n] + bm[0][n], alpha[2][n] + bm[3][n])
　alpha[2][n+1] = min(alpha[3][n] + bm[2][n], alpha[4][n] + bm[4][n])
　alpha[3][n+1] = min(alpha[5][n] + bm[1][n], alpha[6][n] + bm[2][n])
　alpha[4][n+1] = min(alpha[7][n] + bm[3][n], alpha[8][n] + bm[0][n])
　alpha[5][n+1] = min(alpha[1][n] + bm[3][n], alpha[2][n] + bm[0][n])
　alpha[6][n+1] = min(alpha[3][n] + bm[1][n], alpha[4][n] + bm[2][n])
　alpha[7][n+1] = min(alpha[5][n] + bm[2][n], alpha[6][n] + bm[1][n])
　alpha[8][n+1] = min(alpha[7][n] + bm[0][n], alpha[8][n] + bm[3][n])
類似して、TC逆方向再帰の設定は：
sm1、sm5、sm1、sm5、sm2、sm6、sm2、sm6、sm3、sm7、sm3、sm7、sm4、sm8、sm4、sm8、となる。こうして以下のような結果となる：
　beta[1][n] = min(beta[1][n+1] + bm[0][n+1], beta[5][n+1] + bm[3][n+1])
　beta[2][n] = min(beta[1][n+1] + bm[3][n+1], beta[5][n+1] + bm[0][n+1])
　beta[3][n] = min(beta[2][n+1] + bm[2][n+1], beta[6][n+1] + bm[1][n+1])
　beta[4][n] = min(beta[2][n+1] + bm[1][n+1], beta[6][n+1] + bm[2][n+1])
　beta[5][n] = min(beta[3][n+1] + bm[1][n+1], beta[7][n+1] + bm[2][n+1])
　beta[6][n] = min(beta[3][n+1] + bm[2][n+1], beta[7][n+1] + bm[1][n+1])
　beta[7][n] = min(beta[4][n+1] + bm[3][n+1], beta[8][n+1] + bm[0][n+1])
　beta[8][n] = min(beta[4][n+1] + bm[0][n+1], beta[8][n+1] + bm[3][n+1])
　予備メモリAXMMは、再帰計算のために、計算した状態メトリクスを一時的に記憶する。TC復号化の場合、このAXMMは、新たに計算した状態メトリクスにとって単純なレジスタバンクである。
【０１４２】
　ＣＣ復号化手段は同様にレジスタバンクを用い、また二組の補助メモリＲＡＭ１〜ＲＡＭ４（図１１）も以下に説明されるように用いられる。８状態は並列に計算される、ゆえに8状態メトリクスを読み書きしなければならない。読み書きスキーマはアドレス生成を単純化するようできるだけ規則的にすべきである。さらに、最適なデータ順序がデータ衝突を避けるために必要である。これは例えば以下に示すように順方向再帰で符号化率１／２であるトレリスダイアグラムの一部を見ることによって説明できる。
【０１４３】
　順方向再帰　ＣＣ　符号化率＝１／２
　　alpha[0][n+1] = min(alpha[0][n] + bm[0][n], alpha[128][n] + bm[3][n])
　　alpha[1][n+1] = min(alpha[0][n] + bm[3][n], alpha[128][n] + bm[0][n])
　　alpha[2][n+1] = min(alpha[1][n] + bm[1][n], alpha[129][n] + bm[2][n])
　　alpha[3][n+1] = min(alpha[1][n] + bm[2][n], alpha[129][n] + bm[1][n])
　　alpha[4][n+1] = min(alpha[2][n] + bm[3][n], alpha[130][n] + bm[0][n])
　　alpha[5][n+1] = min(alpha[2][n] + bm[0][n], alpha[130][n] + bm[3][n])
　　alpha[6][n+1] = min(alpha[3][n] + bm[1][n], alpha[131][n] + bm[1][n])
　　alpha[7][n+1] = min(alpha[3][n] + bm[2][n], alpha[131][n] + bm[2][n])
　　alpha[8][n+1] = min(alpha[4][n] + bm[3][n], alpha[132][n] + bm[0][n])
　　…..
　実際の状態メトリクスalpha(n+1)[0 − 7]を計算して書き込む場合、alpha(n)[0 − 3] とalpha(n)[128 − 131]を読み出さなければならない。ステップn+2でalpha(n+1)[0 − 3, 128 − 131]が再び必要となるので、alpha(n)[0 − 3, 128 − 131]ワードを読み出して、alpha(n+1)[0 − 7]ワードを書き込むことはできない。さらに、ＡＣＳアーキテクチャの単純な２：１のsmux概念に応じないので、異なるワードシーケンスは望ましくない。それゆえに、最適な状態メトリクスワードシーケンスと同様に分割される最適な状態メトリクスワードが用いられる。これは計4個のＲＡＭ（ＲＡＭ１〜ＲＡＭ４）によって行われ、2個のＲＡＭはデータソースとして働き、もう2個はデータシンクとして働く。１タイムステップの２５６状態メトリクス全てを計算した後、ＲＡＭの指示は切り替えられる。これは３４回のクロックサイクルをとる。
【０１４４】
　ＲＡＭアクセスシーケンスは以下のように与えられ、次に説明されるであろう。
【０１４５】
ＣＣ順方向再帰用ＲＡＭアクセスシーケンス：
【表４】
2004104787.tif 000031
【０１４６】
ＣＣ逆方向再帰用ＲＡＭアクセスシーケンス：
【表５】
2004104787.tif 000032
【０１４７】
　数字は状態メトリクス（０〜２５５）を指し、データワードは常に順次記憶される。
【０１４８】
　このアクセススキーマは、衝突のないデータアクセスを保証する。さらに、アドレス指定はとても単純で、各ＲＡＭに対して二つの確率しかなく、アドレスのＭＳＢ用のインクリメンタとマルチプレクサで容易に実現可能である（以下に例を示す）。このマルチプレクサは、インクリメンタのＭＳＢと「０」または「１」にセット可能なRam_high信号で供給される。以下に、ＲＡＭ１とＲＡＭ３のアドレス指定の例を示す：
　　　・逐次型：RAM13_adrがＲＡＭ１とＲＡＭ３のアドレスである
　　　　　　　　　→ＲＡＭ１とＲＡＭ３の初期化中に用いられる
　　　　　　　　　→ＲＡＭ１とＲＡＭ３のアルファ書き込み中に用いられる
　　　　　　　　　→ＲＡＭ１とＲＡＭ３のベータ読み出し中に用いられる
　　　・非逐次型：アドレスは、RAM13_adrとRAM_high信号からつくられる。これはアドレスシーケンス：０ １６ １ １７ ２ １８ ３ １９ ４ ２０ … １４ ３０ １５ ３１を生成するため用いられる。
【０１４９】
　　　　　　　　　→ＲＡＭ１とＲＡＭ３のアルファ読み出し中に用いられる
　　　　　　　　　→ＲＡＭ１とＲＡＭ３のベータ書き込み中に用いられる
　ＡＣＳアーキテクチャ内の単純なマルチプレクシングを維持するために、計算した状態メトリクスはＲＡＭ記憶の間、スワップされなければならない。以前に述べたように、ＡＣＳアーキテクチャの出力されるアルファ状態メトリクスは、常に昇順である。順方向再帰用のアクセススキーマを見るとき、（スワッピング開始でつけられた）順番に変わっていることがわかる。ＲＡＭ１への１２８〜１３１の、ＲＡＭ４への１３２〜１３５への書き込みの代わりに、読み出し順序のために、これらの値がスワップされなければならない。状態メトリクス１２８〜１３１はＲＡＭ３から読み出され、ゆえに次の順方向サイクルのためにＲＡＭ４に記憶されなければならない、ということに注意されたい。それゆえに、状態メトリクスベクターの４４ＬＳＢと４４ＭＳＢの間のスワッピングが行われる。同様に、スワッピングはベータ状態メトリクスにも行われ、常にＲＡＭ内で適切な順序を保証している。
【０１５０】
　状態メトリクスの初期化は、マルチプレクサによって制御される。ターボ符号の第一の順方向再帰ウィンドウで開始されたとき、トレリスの開始状態がわかり、ゆえにレジスタは「all512and0」にセットされる。この定数は、開始状態を０に、その他の７状態を５１２にセットする。値５１２が選択されるのは、ビット幅１１の状態メトリクスのモジュロ表現にとって、最適な値だからである。次のウィンドウのための順方向初期化は、αＲＡＭへ以前に計算して記憶したアルファ値である。トレリスの最終状態もわかり、ゆえに値「all512and0」が最終逆方向再帰ウィンドウの初期化のためにまた選択される。他のウィンドウは、獲得フェーズを経て開始ベータを得る。獲得フェーズ用の初期化は、「all512」である。この定数は、実際の状態が不明で、すべての状態を等しいと仮定するので、すべての状態が５１２にセットされる。
【０１５１】
　畳み込み符号の復号化のためのスキーマは、原則的には同様であるが、２５６状態が初期化されなければならない。並列に書き込みができるのは8状態だけなので、２５６状態は逐次的に初期化される。
【０１５２】
　ＴＣ復号化の場合、ＳＭユニットへの出力はレジスタ１の中身である。これはまた、αＲＡＭのソースでもある。
【０１５３】
　畳み込み符号を復号化する場合も、αＲＡＭへの出力は常にレジスタ１の中身であるが、αＲＡＭ内のアルファ状態メトリクスの順序を維持するために、これらは順方向再帰スキーマの後半の間スワップされなければならない（上述）。ＳＭユニットへの出力は、実際の読み出し順に応じて、ＲＡＭ１／ＲＡＭ３からでもＲＡＭ２／ＲＡＭ４からでも良い。さらに、ＬＬＲを計算するためのベータ状態メトリクスが配布される。ベータ状態メトリクスの順序は、αＲＡＭ内のアルファ状態メトリクスの順序に等しいということに注意されたい。
【０１５４】
　４．１１　マルチプレクサの制御
　状態メトリクスユニットのマルチプレクサは、特別な機械で制御される（簡略化のため明示しない）。
【０１５５】
　状態メトリクスマルチプレクサsmuxの制御は非常に単純である。設定は二通りだけで、ＴＣ順方向再帰／ＣＣ逆方向再帰用と、ＴＣ逆方向再帰／ＣＣ逆方向再帰用である。ブランチメトリクスマルチプレクサbmuxの制御はより複雑になり、ＦＳＭにおいて行われる。各シーケンス（３２ステップ）は、実際のオペレーション（順方向再帰、または逆方向再帰）と同様、選択した符号化率に依存している。
【０１５６】
　　・ＣＣ　符号化率１／２　順方向再帰
　　　　bmuxの設定は4種類で、Ａ、Ｂ、Ｃ、Ｄと表す。
【０１５７】
　　　　順方向シーケンスは：
　　　　ＡＡＢＢＣＣＤＤＡＡＢＢＣＣＤＤＣＣＤＤＡＡＢＢＣＣＤＤＡＡＢＢ
　　・ＣＣ　符号化率１／２　逆方向再帰
　　　　bmuxの設定は4種類で、Ａ、Ｂ、Ｃ、Ｄと表す。
【０１５８】
　　　　逆方向シーケンスは：
　　　　ＡＡＢＢＣＣＤＤＡＡＢＢＣＣＤＤＢＢＡＡＤＤＣＣＢＢＡＡＤＤＣＣ
　　・ＣＣ　符号化率１／３　順方向再帰
　　　　bmuxの設定は８種類で、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈと表す。
【０１５９】
　　　　順方向シーケンスは：
　　　　ＡＢＣＤＥＦＧＨＦＥＨＧＢＡＤＣＨＧＦＥＤＣＢＡＣＤＡＢＧＨＥＦ
　　・ＣＣ　符号化率１／３　逆方向再帰
　　　　bmuxの設定は８種類で、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈと表す。
【０１６０】
　　　　逆方向シーケンスは：
　　　　ＡＢＣＤＥＦＧＨＦＥＨＧＢＡＤＣＤＣＢＡＨＧＦＥＧＨＥＦＣＤＡＢ
　４．１２　ＬＬＲユニット
　ＬＬＲユニットはＬＬＲを計算する（２．１５式参照）。このユニットは、レジスタと３つのモドミン（modmin）ステージから成るＴＣデコーダ用パイプラインにおいて、図１２に示すようにステージ１とステージ２の間で行われる。第一ステージへの入力は、αＲＡＭからのアルファ状態メトリクスと、ＳＭユニットからのllrsum（ブランチメトリクスとベータ状態メトリクスの和）の合計となる。この値はまた記録され、このようにパイプライン長は合計４となる。上部モドミンツリーは、入力「１」によって到達するすべての状態の最小値（ＬＬＲ１）を計算し、下部モドミンツリーは、入力「０」によって到達する状態の最小値（ＬＬＲ０）を計算する。
【０１６１】
　一旦ＬＬＲ計算が開始すると、クロックサイクル毎に入力は新しい値になる。制御は非常に単純で、４ステージフリップフロップパイプラインを通じて、単純なデータ有効フラグのシフトにより行われる。
【０１６２】
　ＴＣ用ＬＬＲ計算の部品は、畳み込み復号化用に再利用される。図１２を参照されたい（入力値用のマルチプレクサと合計計算用の加算器は示されていない）。
【０１６３】
　より詳細には、図１２に示すすべてのアーキテクチャはターボ復号化に用いられるのに対して、上部と下部のしか畳み込み符号復号化に用いられない。
【０１６４】
　畳み込み符号の符号化はＮＳＣを用いて行われるので、入力「０」と「１」は状態数を決定する。
【０１６５】
　それゆえに、ブランチメトリクスは必要ではなく、第一のステージにおいて４つのモドミンユニットだけまで、計算を単純化できる。上部２つのモドミンユニットは入力「１」（１状態（onestate））によって到達した４状態メトリクスの合計の最小値を計算し、下部２つのユニットは入力「０」（０状態（zerostate））による最小値を計算する。それゆえに入力は、αＲＡＭからのアルファ状態メトリクスとＡＸＭＭメモリからのベータメトリクスである。
【０１６６】
　２５６状態すべてを一度に計算できないので、最適な最小値を決定するループバックが必要である。これはターボ符号デコーダ部と比較し、ステージ２の後に位置する、追加ハードウェアである。制御は実に単純で、ＦＳＭで実現される。最も良く表現されるのは、1状態（onestate）のためのフィードバックユニットを見たときである。第一の最小値は下部レジスタへ記憶され、第二の最小値は上部レジスタへ記憶される。全ての次の最小値は下部レジスタへ記憶され、結果の最小値は常に上部レジスタへ記憶される。llr_validフラグもまた、ＦＳＭによって生成される。
【０１６７】
　４．１３　ＣＲＣチェックユニット
　本発明に準拠したデコーダは、パラメータcrclengthとcrcpoly（図１３参照）に依存するＣＲＣレジスタを実現する特定ユニットも有する。ＣＲＣレジスタはＭＡＰ１オペレーションの間にＣＲＣチェックを実行するために用いられる。ＭＡＰ２オペレーション中のＣＲＣチェックは、インターリーブ化のため不可能である。ＣＲＣ加算（sum）は、逆の順序で符号化の間データブロックに付けられる。それゆえに次に示すステップが行われる：
　・復号化したビットのＣＲＣ加算が、ブロック長-crclengthビットをＣＲＣレジスタへシフトすることにより行われる。
【０１６８】
　・ＣＲＣレジスタの内容が、そのときcrclengthの復号化したビットと比較される。等価なら、ＣＲＣチェックはポジティブとなる。
【０１６９】
　これらのステップはＣＲＣ制御状態機械で実施される。さらに、いくつかの考察（consideration）が行われなければならない：ＬＬＲは逆の順序でウィンドウのように計算される、最大ウィンドウサイズはＴＣウィンドウサイズ６４である。それゆえにこれらのＬＬＲビットは、逆方向再帰／ＬＬＲ計算の間６４ビットバッファ（dbuffer）に記憶されなければならない。これらのビットは、アルファ再帰とベータ獲得の間、ＣＲＣレジスタにシフトされる。各終了ウィンドウは、crc_w_finished信号（図１４）で通知される。メモリ制御はベータ再帰を開始する（ビット数が６４より小さい場合、予想される衝突は最終ウィンドウの間にのみ発生しうる。そして、アルファ計算のための時間はバッファからの64ビットすべてをＣＲＣレジスタにシフトするほど充分長くない。）。
【０１７０】
　さらに、このユニットは、アンデコーダブル（undecodable）ブロックの反復キャンセル制御（iteration cancellation control）のためにＬＬＲ-sumsを計算する。停止基準は、連続のＭＡＰ１とＭＡＰ２オペレーションの間のデルタに基づいている。デルタが負ならば、このブロックはアンデコーダブルと記録される（デルタ失敗信号）。
【０１７１】
　入力ＣＲＣデータのバッファリングとＣＲＣレジスタのシフトはＭＡＰ１オペレーションの間とcrc_lengthがゼロ以外の場合のみ行われる。
【０１７２】
　ＣＲＣはＭＡＰ１オペレーションに並列にチェックされる。事前に不明なので、ブロックが正確に復号化されるならば、デコーダはＬＬＲの中から外部情報を計算し（２．２式参照）、ブロックがエラーのない状態ではないならばさらに復号化を可能とするためにＬＬＲ ＲＡＭに記憶する。こうして、ブロックが正確ならば、ＭＡＰ１の後デコーダは決定されるが、ＬＬＲはそのとき上書きされる。それゆえに、追加ビットは同様に硬判定（ＬＬＲのＭＳＢ）を記憶するために導入される。これは、デコーダが、正常なＣＲＣ基準によりＭＡＰ１後に停止し、外部情報とともにＬＬＲの硬判定をフラッシュする（flush）ことを可能にする。
【０１７３】
　４．１４　大域制御ユニット
　最後に、本発明に準拠する複合型デコーダは、ＭＡＰレベルで復号化プロセスを制御する大域制御ユニットを有する。ＴＣ復号化は反復問題で行われるので、反復の回数は実際の復号化状態に依存する。それゆえに、各ＭＡＰオペレーションの後、停止基準がチェックされる。この停止基準は、選択した合計反復数の半分でも、正確に検出したＣＲＣ-sum（ＭＡＰ１後のみ）でも、平均値基準に基づいたアンデコーダブルブロックの初期検知でも良い。ＴＣ用の特別の復号化ステップが、図１５に示されている。ＣＣ復号化の場合、必要なＭＡＰ１オペレーションは１つだけである。
【０１７４】
　さらに、大域制御ユニットは、ハンドシェイクモードを制御する。このハンドシェイクモードは復号化ステップの段階的実行とオンデマンドメモリフラッシュを可能にする。
【０１７５】
５．発明の利点
　本発明に準拠した複合型デコーダは特に以下の利点を提供する：
　　・使用されるＭＡＰユニットは一つだけである。ゆえに、ＭＡＰ１とＭＡＰ２オペレーションは、同じＭＡＰユニットで連続的に行われる。
【０１７６】
　　・スライディングウィンドウアプローチは、アルファ状態メトリクスＲＡＭのサイズを減らすために用いられる。ＴＣ用ウィンドウサイズは６４である。
【０１７７】
　　・ＴＣの8状態すべてが並列に計算される。ゆえに、再帰計算中各タイムステップで、新たな8状態メトリクスが計算される。
【０１７８】
　　・順方向、逆方向獲得と逆方向再帰は、同じ状態メトリクスユニット上で連続的に行われる。
【０１７９】
　　・逆方向再帰の間、ＬＬＲ／外部情報は並列に計算される。ゆえに、（２．１４式と２．１５式のように）ベータ状態メトリクスを記憶する必要がない。
【０１８０】
　　・インタラクティブＴＣ復号化は、外部情報のインターリーブ化とデインターリーブ化が必要である。これはインターリーバとデインターリーバパターン用の二つのＲＡＭと同様に、ＬＬＲ用の二つのＲＡＭ（インターリーブ、デインターリーブ）へ導く。ＵＭＴＳのために、インターリーバ／デインターリーバテーブルは「読取りアドレス」として規定される。ブランチメトリクスの計算には、系列、パリティ、外部（事前）情報が必要である。だからＭＡＰ１オペレーションの間、系列化とパリティ１情報を連続的に読み込み、外部情報はデインターリーブされて読み込まれる。計算した新しい外部情報は、ＲＡＭ２に連続的に記憶される。ＭＡＰ２オペレーションは、系列情報、インターリーブされた外部情報、パリティ２情報を連続して読み込み、新たに計算した外部情報を連続して記憶する。これは外部用（ＬＬＲ）の二つのＲＡＭとインターリーブ／デインターリーブパターン用の二つのＲＡＭに導く。
【０１８１】
　しかしながら、インターリーバテーブルのみが用いられ、ＬＬＲはＬＬＲ-ＲＡＭ内に常に順番通り記憶される。ＬＬＲは事前情報（と系列情報）の前読取りアドレスに書き込み、間接的なデインターリーブを行うことが可能である。それゆえに、一つのＬＬＲ-ＲＡＭと一つのインターリーバパターン用のＲＡＭのみが必要となる。外部情報は元来のデータ順序で連続的に通常記憶されるので、ＭＡＰ１オペレーションは系列情報、パリティ１情報、外部情報を連続的に読みとるだけで、新しく計算した外部情報は連続的に記憶される。インターリーバ／デインターリーバＲＡＭへのアクセスは要求されない。ＭＡＰ２オペレーションの間、系列情報と外部情報はインターリーブされて読取り、パリティ２情報は連続的に読みとられる。新たに計算した外部情報は、読取りアドレスへのライドバック（write back）が可能で、もはや不要な外部情報を上書きする。このスキーマはインタリーバテーブルのみを用いるので、デインタリーバＲＡＭは用いられない。それにもかかわらず、新しいＬＬＲ／外部情報が生成される場合、逆方向再帰／ＬＬＲ計算の間ＬＬＲ ＲＡＭ上に読み出し／書き込みの衝突がおきることがある。それゆえに、ＬＬＲキャッシュが用いられ、順方向再帰の間は満たされ、逆方向再帰の間は読み出される。ウィンドウサイズはＴＣの場合６４なので、ＬＬＲキャッシュのサイズは６４＊６ビットだけである。
【０１８２】
　　・インタリーバパターン発生は復号化手段の外部で行われる。復号化手段にとって、インタリーバＲＡＭは単なる外部ＲＡＭである。
【０１８３】
　　・対数ＭＡＰ、あるいは最大対数ＭＡＰが選択可能である；min*関数が用いられる。
【０１８４】
本発明の変形可能性
　これまで述べた実施形態において、メトリクス記憶手段は、ターボ復号化の間引き渡される順方向状態メトリクスを記憶するために用いられていた。また、適応可能記憶手段は、畳み込み復号化の間引き渡される順方向状態メトリクスを記憶するために用いられていた。しかし、これらのメモリは同様に逆方向状態メトリクスを記憶するよう使用可能である。これは、選択したウィンドウイングの方向にのみ依存する。より詳細には、逆方向再帰を行うことで、ブロックの最後からウィンドウイングを開始し、逆方向状態メトリクスを記憶し、それから順方向／ＬＬＲを一緒に行うことが可能である。
【０１８５】
　さらに、あらゆる種類のＳＩＳＯデコーダを使用しても良い。換言すれば、本発明は基本的なデコーダの起こりうるすべてのＳＩＳＯ実装をカバーし、ＭＡＰアルゴリズムやその部分最適化バージョン（対数ＭＡＰ、最大対数ＭＡＰ）には限定されない。
【０１８６】
　最後に、本発明に準拠した複合型デコーダは、無線通信システムの基地局において組み込むことが可能である。
【図面の簡単な説明】
【０１８７】
【図１】畳み込み符号化のためのＵＭＴＳに用いられる二つの異なるＮＳＣの構造を示す図。
【図２】一回のステップにおいて可能な遷移を表すトレリスの一部を示す図。
【図３】ＵＭＴＳターボ符号エンコーダを示す図。
【図４】一般的なターボ符号デコーダを示す図。
【図５】本発明に準じた複合型デコーダを含む携帯電話の受信チェーンを示す図。
【図６】本発明に準じた複合型デコーダの内部構造を示す図。
【図７】本発明に準じた複合型デコーダの一部をより詳細に示す図。
【図８】本発明に準じた複合型デコーダに属する適応可能メモリをより詳細に示す図。
【図９】ウィンドウイングスキーマの間の読み書きアクセスの一例を示す図。
【図１０】ＡＣＳユニット構造を示す図。
【図１１】ＡＣＳ更新ユニットの構造を示す図。
【図１２】本発明に準じた複合型デコーダに属するＬＬＲユニットを示す図。
【図１３】本発明に準じた複合型デコーダのＣＲＣチェック構造を示す図
【図１４】本発明に準じたＣＲＣ処理スキーマを示す図。
【図１５】本発明に準じたターボ符号復号化の汎用制御ステップを示す図。
【図１】
2004104787.tif 000033
【図２】
2004104787.tif 000034
【図３】
2004104787.tif 000035
【図４】
2004104787.tif 000036
【図５】
2004104787.tif 000037
【図６】
2004104787.tif 000038
【図７】
2004104787.tif 000039
【図８】
2004104787.tif 000040
【図９】
2004104787.tif 000041
【図１０】
2004104787.tif 000042
【図１１】
2004104787.tif 000043
【図１２】
2004104787.tif 000044
【図１３】
2004104787.tif 000045
【図１４】
2004104787.tif 000046
【図１５】
2004104787.tif 000047