(57)【特許請求の範囲】
【請求項１】
ターボ復号方法において、
複数のスクラッチ・メモリ（１４０３）を設けるステップであって、該スクラッチ・メモリの各々が信頼性部分（１２００）及びプロログ部分（１２０１）を有し、該複数のスクラッチ・メモリは、所定の循環順序により用いられるステップを備え、
（Ａ）  最初に、
（１）  初期スライディング・ウィンドウのデータに対してベータ・ステート・メトリックを計算するステップと、
（２）  現在の物理アドレス指定順序を第１のアドレス指定順序に設定するステップと、
（３）  ベータ・ステート・メトリックをベータ・ステート・メトリック・メモリ（１４０７）に記憶するステップと、
（４）  該初期スライディング・ウィンドウのデータに対するアルファ・ステート・メトリック計算に対するデータをスクラッチ・メモリに記憶するステップであって、該初期スライディング・ウィンドウに対するデータを現在のスクラッチ・メモリの信頼性部分に現在のアドレス指定順序により、かつ、次に続くスクラッチ・メモリのプロログ部分に逆のアドレス指定順序により同時に記憶することを含むステップと、
（Ｂ）  次いで、各スライディング・ウィンドウのデータに対して反復的に、
（１）  現在の反復に対する該現在のアドレス指定順序を該第１の物理アドレス指定順序と第２の物理アドレス指定順序との間でトグルするステップであって、前記第２の物理アドレス指定順序は前記第１の物理アドレス指定順序に対して逆であり、物理アドレスへの仮想アドレスのマッピングの順序を制御するアドレス・フリップ・ビットのデジタル・ステートをトグルすることを含むステップと、
（２）  現在のスライディング・ウィンドウのデータに対するアルファ・ステート・メトリックを計算するステップであって、アルファ・ステート・メトリック計算に対するデータを該現在のスクラッチ・メモリから該現在のアドレス指定順序により読み出すことを含むステップと、
（３）  ベータ・ステート・メトリックを該スクラッチ・メモリから該現在の反復に対する該現在の物理アドレス指定順序により読み出すステップであって、該現在のスクラッチ・メモリの該プロログ部分からデータを該逆のアドレス指定順序により読み出し、該現在のスクラッチ・メモリの該信頼性部分からデータを該現在のアドレス指定順序により読み出すことを含み、仮想アドレスを発生し、該仮想アドレスを物理アドレスにマッピングすることを含み、前記ベータ・ステート・メトリックの読出しは常に第２の仮想アドレス指定順序により発生し、該アドレス・フリップ・ビットが該第１のデジタル・ステートを有する場合は該第２の物理アドレス順序にマッピングされ、該アドレス・フリップ・ビットが該第２のデジタル・ステートを有する場合は該第１の物理アドレス順序にマッピングされる、ステップと、
（４）  該計算されたアルファ・ステート・メトリックおよび該ベータ・ステート・メトリック・メモリから再呼び出しされたベータ・ステート・メトリックを外部ブロック（１４０９）において組み合わせることにより外部出力を発生するステップと、
（５）  次のスライディング・ウィンドウのデータに対するベータ・ステート・メトリックを計算して該ベータ・ステート・メトリックを該ベータ・ステート・メトリック・メモリに記憶するステップと、
（６）  次のスライディング・ウィンドウのデータに対するベータ・ステート・メトリック計算に対するデータを次のスクラッチ・メモリに逆のアドレス指定順序により記憶するステップであって、仮想アドレスを発生し、該仮想アドレスを物理アドレスにマッピングし、該次のスライディングウィンドウのデータに対する前記データを、次に続くスクラッチ・メモリの該信頼性部分に該逆のアドレス指定順序により、かつ、第２の続くスクラッチ・メモリの該プロログ部分に該現在のアドレス指定順序により同時に記憶することを含み、前記ベータ・ステート・メトリックの記憶は常に第１の仮想アドレス指定順序により発生し、該アドレス・フリップ・ビットが第１のデジタル・ステートを有する場合は該第１の物理アドレス順序にマッピングされ、該アドレス・フリップ・ビットが該第１のデジタル・ステートと逆の第２のデジタル・ステートを有する場合は該第２の物理アドレス順序にマッピングされるステップと
を複数のスライディング・ウィンドウを含む１フレームのデータまで復号するターボ復号方法。
【請求項２】
ターボ復号装置において、
ターボ復号されるべきデータを記憶するメイン・メモリ（１４０２）と、
前記メイン・メモリに接続されて前記メイン・メモリから再呼び出しされるデータからベータ・メトリックを形成するベータ・メトリック・ブロック（１４０５）と、
前記ベータ・メトリック・ブロックに接続されて前記ベータ・メトリックを記憶する一組の複数のスクラッチ・メモリ（２４０３）であって、各々がプロログ・セクション及び信頼性セクションを有するスクラッチ・メモリと
前記一組のスクラッチ・メモリに接続されて前記スクラッチ・メモリから再呼び出しされたデータからアルファ・メトリックを形成するアルファ・メトリック・ブロック（１４０４）と、
前記ベータ・メトリック・ブロックに接続されて前記ベータ・メトリック・ブロックにより形成されたベータ・メトリックを記憶するベータ・メトリック・メモリと、
前記ベータ・メトリック・メモリの対応する１つに各々接続された複数の入力端、及び前記ベータ・メトリック・メモリの前記複数のセクションのうちの選択された１つから再呼び出しされたデータを出力する出力端を有するマルチプレクサ（１４０８）と、
前記アルファ・メトリック・ブロック及び前記マルチプレクサに接続されて外部出力を形成する外部ブロック（１４０９）と、
前記メイン・メモリ、前記一組の複数のスクラッチ・メモリ及び前記ベータ・メトリック・メモリに接続された同時メモリ・インターフェース・コントローラ（１４０１）であって、前記同時メモリ・インターフェース・コントローラが
（１）  現在の反復に対する該現在のアドレス指定順序を該第１の物理アドレス指定順序と第２の物理アドレス指定順序との間でトグルするよう動作可能であって、前記第２の物理アドレス指定順序は前記第１の物理アドレス指定順序と逆であり、物理アドレスへの仮想アドレスのマッピングの順序を制御するアドレス・フリップ・ビットのデジタル・ステートをトグルすることを含む、
（２）  該現在の反復に対する該現在の物理アドレス指定順序により該スクラッチ・メモリからベータ・ステート・メトリックを読み出すためにアドレスを発生するよう動作可能であって、該現在のスクラッチ・メモリの該プロログ部分からデータを該逆のアドレス指定順序により読み出し、及び該現在のスクラッチ・メモリの該信頼性部分からデータを該現在のアドレス指定順序により読み出すことを含み、仮想アドレスを発生し、該仮想アドレスを物理アドレスにマッピングすることを含み、前記ベータ・ステート・メトリックの読出しは常に第２の仮想アドレス指定順序により発生し、該アドレス・フリップ・ビットが該第１のデジタル・ステートを有する場合は該第２の物理アドレス順序にマッピングされ、該アドレス・フリップ・ビットが該第２のデジタル・ステートを有する場合は該第１の物理アドレス順序にマッピングされる、
（３）  次のスライディング・ウィンドウのデータに対するベータ・ステート・メトリック計算に対するデータを次のスクラッチ・メモリに逆のアドレス指定順序により記憶するためにアドレスを発生するよう動作可能であって、仮想アドレスを発生し、該仮想アドレスを物理アドレスにマッピングし、該次のスライディングウィンドウのデータに対する前記データを次に続くスクラッチ・メモリの信頼性部分に該逆のアドレス指定順序により、かつ、第２の続くスクラッチ・メモリのプロログ部分に該現在のアドレス指定順序により同時に記憶することを含み、前記ベータ・ステート・メトリックの記憶は常に第１の仮想アドレス指定順序により発生し、該アドレス・フリップ・ビットが第１のデジタル・ステートを有する場合は該第１の物理アドレス順序にマッピングされ、該アドレス・フリップ・ビットが該第１のデジタル・ステートと逆の第２のデジタル・ステートを有する場合は該第２の物理アドレス順序にマッピングされる、
ターボ復号装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明の技術分野は、前方誤り訂正に使用するターボ・デコーダに関する。
【０００２】
【従来の技術】
ターボ符号は、強力な能力を有する前方誤り訂正符号（ｆｏｒｗａｒｄ  ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ  ｃｏｄｅ）の１形式である。これらの符号は、無線送受話器、無線基地局、ハードディスク・ドライブ、ワイヤレスＬＡＮ、衛星及びデジタル・テレビジョンのように多くのアプリケーションにおいて広く使用されるようになってきている。ターボ符号は、繰り返し復号アルゴリズムによりインターリーバにより接続された畳み込み符号の連接からなる。図１に従来技術の一例としてレート１／３の並列連接エンコーダを示す。入力データ・ストリーム１００（Ｘｍ）は、変更されることなく入力１０６を介してマルチプレクサ１０４に供給される。２つの繰り返しシステマティック畳み込み（Ｒｅｃｕｒｓｉｖｅ  Ｓｙｓｔｅｍａｔｉｃ  Ｃｏｎｖｏｌｕｔｉｏｎ：ＲＳＣ）エンコーダ１０２及び１０３は、並列に機能してそれぞれの入力ビット・ストリームを変換する。ＲＳＣエンコーダ１０２及び１０３による変換後、その結果のビット・ストリームは、入力１０７及び１０８を介してマルチプレクサ１０４にそれぞれ供給される。ブロック１０１は、デコーダに雑音を相関させないように情報ビットをランダムに再配列するインターリーバ（Ｉ）である。ＲＳＣエンコーダ１０２及び１０３は、ｐ０m及びｐ１mビット・ストリームをそれぞれ発生する。マルチプレクサ１０４は、これらのｘm、ｐ０m及びｐ１mビット・ストリームを結果出力のビット・ストリーム１０５（ｘ0、ｐ０0及びｐ１0…）に再組立てする。
【０００３】
図２は、従来技術のターボ・デコーダ２００の機能ブロック図を示す。繰り返しターボ・デコーダ２００は、一対のＭＡＰ（ｍａｘｉｍｕｍ−ａ−ｐｏｓｔｅｒｉｏｒｉ）デコード・ブロック２０２及び２０３によりソフト判定を発生する。各繰り返しは、２組の外部情報を発生するために２つのＭＡＰデコードの実行が必要である。第１のＭＡＰデコーダ２０２は、その入力としてインターリーブされていないデータを使用し、また第２のＭＡＰデコーダ２０３は、その入力としてインターリーバ・ブロック２０１からのインターリーブされたデータを使用する。ＭＡＰデコーダ２０２及び２０３は、外部情報を以下のように計算する。
【０００４】
【数１】
0004054221.tif 000002
ただし、Ｒ1n＝（Ｒ0、Ｒ1、…Ｒn）であり、これらは受信シンボルである。ＭＡＰデコーダ２０２及び２０３は、更に、次式のア・ポステリオリ確率（ａ  ｐｏｓｔｅｒｉｏｒｉ  ｐｒｏｂａｂｉｌｉｔｉｅｓ）を計算する。
【０００５】
【数２】
0004054221.tif 000003
ただし、Ｓnは構成する畳み込み符号のトレリスにおいて回数ｎにおける状態である。
【０００６】
総和における各項を次式により表すことができる。
【０００７】
【数３】
0004054221.tif 000004
ただし、次式の量をブランチ・メトリックと呼び、
【０００８】
【数４】
0004054221.tif 000005
次式の量を前方（又はアルファ）ステート・メトリックと呼び、
【０００９】
【数５】
0004054221.tif 000006
次式の量を後方（又はベータ）ステート・メトリックと呼ぶ。
【００１０】
【数６】
0004054221.tif 000007
【００１１】
ブランチ・メトリックは、システマティック・パリティ及び外部シンボルに依存している。各ＭＡＰデコーダに対する外部シンボルは、入力２０９及び２１０を介して他のＭＡＰデコーダに供給される。アルファ・ステート・メトリック及びベータ・ステート・メトリックは、次式により与えられる前方繰り返し及び後方繰り返しによって計算される。
【００１２】
【数７】
0004054221.tif 000008
【００１３】
スライサ２０７は、出力ビット・ストリーム（ｘ0、ｘ1…ｘn-1）の再組立てを完了させる。
【００１４】
図３は、従来技術によるＭＡＰデコーダのブロック図を示す。サフィックスｒ及びｆは、ベータ及びアルファ繰り返しブロックに対する、データ入力シーケンスの逆方向及び前方向をそれぞれ表す。入力データ・ストリーム３１０〜３１２は、パラメータＸn,ｒ、Ｐn,r及びＡn,ｒとそれぞれラベル付けられている。入力データ・ストリーム３１３〜３１５は、パラメータＸn,f、Ｐn,f及びＡn,fとそれぞれラベル付けられている。アルファ・ステート・メトリック・ブロック３０２からのフィードバック・ストリームは、αn,fのラベルが付けられている。アルファ・ステート・メトリック・ブロック３０３からのフィードバック・ストリームは、βn,ｒのラベルが付けられている。アルファ・ステート・メトリック・ブロック３０２及びベータ・ステート・メトリック・ブロック３０３の両者は、ステート・メトリックを計算する。両者は、トレリスにおいて既知位置、ゼロ・ステートから開始する。エンコーダは、ゼロ・ステートにおけるｎ情報ビットのブロック（例えば、フレーム・サイズ、ｎ＝５１１４）から開始し、複数のトレリスを介しｎサイクル後にある未知のステートで終結する。
【００１５】
複数のスライディング・ウィンドウ（ｓｌｉｄｉｎｇ  ｗｉｎｄｏｗｓ）なしのときは、このフレーム・サイズのブロックは、ｎ×ｓ×ｄ＝３２７，２９６ビットを含む。複数のスライディング・ウィンドウにより、処理はｒ×ｓ×ｄ＝８１９２ビットを含む。ただし、ｒは１２８である。明らかに、メモリ・サイズの必要条件は、スライディング・ウィンドウの使用により大きく軽減される。
【００１６】
多数のテール・ビットｔは、エンコーダをゼロ・ステートに強制復帰させるためにエンコーダのデータ・ストリームに付加される。制約長ｋの符号ｔ＝ｋ−１のときは、各ＲＳＣエンコーダに対してシステマティック・テール・ビットが存在する。８ステート符号のときは、ｋ＝４、ｔ＝３であり、これは、以下の説明において仮定される。アルファ・ステート・メトリック・ブロック３０２は、０からｎ＋２までの受信データを処理し、またベータ・ステート・メトリック３０３は、ｎ＋２から０までのデータを処理する。
【００１７】
まず、ベータ・ステート・メトリック・ブロック３０３によりベータ・ステート・メトリックを発生する。これらのベータ・マトリックスは、逆方向に発生されてベータ・ステート・メトリックＲＡＭ３０４に記憶される。次に、ベータ・ステート・メトリック・ブロック３０３によりアルファ・ステート・メトリックを発生する。外部ブロック３０５は、このデータが発生するとこれを直ちに使用するので、アルファ・ステート・メトリックは、記憶されない。
【００１８】
ベータ・ステート・メトリックは、アルファ・ステート・メトリックを発生すると同時に順順序に読み出される。外部ブロック３０５は、順順序でアルファ・ステート・メトリック及びベータ・ステート・メトリックの両者を使用して外部出力３０６Ｗn,iを発生する。この実施には、ア・プリオリ（ａ−ｐｒｉｏｒｉ）入力３１０〜３１５を供給する大きなメイン・メモリが必要である。メイン・メモリのサイズは、表１に挙げたように計算される。
【００１９】
【表１】
0004054221.tif 000009
【００２０】
ベータ・ステート・メトリックのメモリ・サイズは、スライディング・ブロックを実施することにより、更に小さくすることができる。このブロックのサイズｎは、図４に示すサイズｒの小断片に分割される。サイズｒの各小ブロックは、信頼性サイズ（ｒｅｌｉａｂｉｌｉｔｙ  ｓｉｚｅ）と呼ばれ、サイズｒの各ブロックにサイズｐのプロログ・セクション（ｐｒｏｌｏｇ  ｓｅｃｔｉｏｎ）を付加することによって互いに独立して処理可能にされる。
【００２１】
スライディング・ウィンドウ・ブロックを図５に示す。信頼性サイズ５０１はｒである。プロログ・サイズ５０２はｐであり、通常、制約長の４倍〜６倍に等しい。全てのステート・メトリックをゼロに設定し、次いでプロログを実行することにより、その結果のステート・メトリックは、訂正ステートに高い確率で存在する。このブロックは、ｒ＋ｐのサイズを有する。ブランチ・メトリック・メモリのサイズは、ｒ×８×ｄに低下する。ベータ・プロログ・セクション用のステート・メトリックは、記憶されないことに注意すべきである。
【００２２】
ターボ・デコーダ・コントローラは、全フレームのデータを処理するように要求される。従って、フレームが大きければ、図６に示すように、これは、ｋのより小さな断片即ちサブブロックに処理される必要がある。この例において、例えば６００又は６０１のような各サブブロックは、４つのスライディング・ウィンドウからなる。勿論、他のグループ分けのスライディング・ウィンドウを使用してもよい。
【００２３】
ベータ・サブブロックは、アルファ・サブブロック及び外部（図６ではＥＸＴＲをラベル付けしている）サブブロックが開始可能となる前に、処理されて記憶される必要がある。従って、ｋサブブロックを処理するのにある量の時間単位が掛かる。各サブブロックは、図７及び図８に示す４スライディング・ウィンドウからなる。矢印は処理順序を表す。ＲＢｘは、ベータ用の信頼性セクションに対する略語であり、ＰＢｘは、ベータ用のプロログ・セクションに対する略語である。図８は、アルファ・メトリックに対応するラベルを示す。
【００２４】
ベータ・サブブロック及びアルファ・サブブロックの両者を同時に処理しているときは、データ・メモリを２回アクセスする必要がある。残念ながら、アドレスは異なるので、デュアル・ポート・メモリが必要となる。他の解決法は、複数のスクラッチ・メモリ・ブロックと組み合わせたシングル・ポート・メイン・メモリを使用することにより可能である。このような実施は、必要なアドレス順序に適合させる際に関わる複雑さにより困難となる。スクラッチ・メモリは、各スライディング・ウィンドウに対して１つの個別的な４ブロック・メモリを含むことになる。各スクラッチ・メモリ・ブロックは、１７６のアドレス指定可能位置、即ち信頼性及びプロログに対して最大サイズの和を有することになる。４つのアルファ・スライディング・ウィンドウのうちの１つに対するデータを４スクラッチ・メモリ・ブロックの各々が記憶することになる。
【００２５】
【発明が解決しようとする課題】
この解決法による困難は、スクラッチ・メモリにベータ・データを逆順序に書き込み、またアルファ・データを順順序に読み出すことである。これは、データを正しく処理することを保証するために各スライディング・ウィンドウに対して２つのメモリが必要となる。第１のサブブロックの処理中に、複数メモリのうちの１つが書き込みを実行する。第２のサブブロックの処理中に、アルファ処理からフル・メモリを読み出し、その他のメモリは将来のアルファ処理のために書き込む。次のサブブロックの処理中に、メモリの動作を予約する。この技術は、メモリのピンポンと呼ばれる。これらのメモリは、各サブブロックを処理してしまうまで、ピンポンされる。
【００２６】
図９にデュアル・ポートのメイン・メモリ・アプローチを使用した従来のターボ・デコーダを示す。復号されるべき複数のブロックのデータ９００は、デジタル信号プロセッサ（ＤＳＰ）からメイン・メモリ９０２へ行く。メイン・メモリ９０２は、デュアル・ポートＲＡＭである。メモリ制御ブロック９０１は、メイン・メモリ９０２に対するアドレス、及びベータＲＡＭ９０７に対するアドレスの両者を発生する。データは、メイン・メモリ９０２の個別的な２ポートからアルファ・メトリック・ブロック９０４及びベータ・メトリック・ブロック９０５へ渡される。ベータ・メトリック・ブロック９０５は、その出力をベータＲＡＭ９０７に書き込み、かつアルファ・メトリック・ブロック９０４は、その出力を直接、外部ブロック９０９へ渡す。ベータ・メトリック・ブロック９０５の出力は、図６及び図７において説明した順序で使用され、８ブロック・サイズのピンポン・ベータＲＡＭをフルに使用する必要がある。マルチプレクサ９０８は、ベータ・メモリ９０７の個別的な８つの部分と外部ブロック９０９との間でインターフェースをする。外部ブロック９０９は、メトリック出力パラメータ９１０Ｗnjの計算を完了する。
【００２７】
プロセッサ・サイクルの損失を避けるために、図９の従来のターボ・デコーダ・システムは、アレー・サイズがシングル・ポート・メモリのほぼ２倍サイズを有するデュアル・ポートのメイン・メモリを必要とする。更に、これは、外部データ９１０Ｗnjを算出する際に、アルファ・メトリックベータ・メトリック出力を使用する順序に比較して、ベータ・メトリック出力を使用する順序のために、８ブロックのベータ・メモリ９０７を必要とする。
【００２８】
【課題を解決するための手段】
この発明は、ターボ・デコーダ用並列メモリ制御の解決方法である。好ましい実施の形態の４スライディング・ウィンドウは、シングル・ポート・メイン・メモリ、スクラッチ・メモリ及び４ブロック・データ・メモリのみを必要とするだけである。これは、デュアル・ポートのメイン・メモリ及び８ブロック・サイズのピンポン・べータ・メモリを採用する従来のターボ・デコーダと対照をなす。各サイクル期間において、スクラッチ・メモリに対し、１読み出し及び１書き込み動作を発生する必要がある。メモリ内の特定位置を読み出したときは、その位置が空きになる。次の書き込みサイクルは、そのデータを記憶するためにその位置を使用することができる。
【００２９】
第１のベータ・サブブロックの処理中に、システマティック、パリティ及びア・プリオリに対するデータ・メモリを読み込む。このデータの信頼性部分は、スクラッチ・メモリに逆順序へ書き込まれる。ベータ・サブブロック処理が終了した後、アルファ・プロログ・データを除き、アルファ信頼性データがスクラッチＲＡＭにロードされる。ターボ・デコーダ・コントローラは、新しいステートを開始し、このステートにおいてデータ・メモリからアルファ・プロログ・データを読み出して、このデータをスクラッチＲＡＭに記憶する。各スクラッチ・メモリの最大サイズは、信頼性サイズ及びプロログ・サイズの最大和に等しい。順方向及び逆方向のアドレス指定順序をインターリーブするためのアドレス指定必要条件に関する解決法を更に説明する。
【００３０】
図に、この発明のこれらの特徴及びその他の特徴を示す。
【００３１】
【発明の実施の形態】
図１０は、仮定した４スライディング・ウィンドウによる、好ましい実施の形態のスクラッチＲＡＭの物理アドレス順序を示す。ベータ処理ステートは、次式の最大値を取る。
【００３２】
【数８】
0004054221.tif 000010
また、アルファ・プロログ処理ステートは、次式を取る。
【数９】
0004054221.tif 000011
【００３３】
式９における１２の項及び式１０における８の項は、それぞれのステートを設定するために必要とされる付加的なサイクルにより発生する。この実施において、式９における係数４は、スライディング・ウィンドウの数を表している。ベータ処理ステート期間において、メイン・データ・メモリ・メモリは、（（１２８＋４８）×４）＝７０４回読み出され、またスクラッチ・メモリは、（１２８×４）＝５１２回書き込まれる。ベータ・プロログ・データは、ベータ処理ステート期間中は、スクラッチ・メモリに記憶されない。
【００３４】
書き込み及び読み出し順序の問題は、仮想アドレスの付加により解決される。ベータに対する仮想アドレスは、逆順序で常にインデックスされ、アルファに対する仮想アドレスは、順順序で常にインデックスされる。しかし、物理アドレスは、信号addr_flipに従ってマッピングされる。図１０を参照すると、２進信号addr_flip １０００、addr_flip １００１、addr_flip １００２は、各サブブロックについてトグルし、これが書き込み及び読み出し順序を変更させることになる。addr_flipが０のときは、ベータ書き込み及びアルファ読み出しの両者に対する物理アドレスは、メモリを逆方向１００４にアクセスする。addr_flip ステートが論理１のときは、物理アドレスは、メモリを順順序１００５にアクセスする。このようなアドレス指定機構は、スクラッチ・メモリを１メモリのみによって実施可能にする。４スライディング・ブロックの各々に対して１スクラッチ・メモリが存在する。このような技術は、更に、ベータ・ステート・メトリック・メモリにも使用される。
【００３５】
以上のアドレス指定機構の欠点は、複数サイクルかかることである。ＭＡＰデコーダは、アルファ・プロログ・データを記憶するためにかかる２００サイクル期間中は使用されていない。これは、サイクルの２１．８％を無駄にしていることになる。
【００３６】
図１１を参照すると、スライディング・ウィンドウ１（ＰＡ１）１１００用のアルファ・プロログ・データは、スライディング・ウィンドウ（ＲＢ０）１１０１用のベータ信頼性データの一部である。ベータ処理ステート期間中にデータをスクラッチ・メモリに記憶すると、アルファ・プロログ・ステートにおいてこの機能が削除される。これは、アルファ・プロログ・ステートから７１６＋２００＝９１６サイクルが削除される。第１のアルファ・プロログ・スライディング・ウィンドウ（ＰＡ０）１１０２に対するデータは、ベータ処理ステート期間では得られないので、この技術は、４のうちの３アルファ・プロログ・セクションのみの必要性をなくす。
【００３７】
更に、図１０における物理アドレスは、この解決法では適切には機能しない。早期にベータ処理ステートにおいてプロログ・アルファ・セクションの書き込みは、最後のサブブロックから前に記憶した信頼性データを上書きする。この上書きは、ＭＡＰデコーダを不適切に機能させるので許容できない。
【００３８】
図１２は、この困難を避ける解決法を示す。スクラッチ・メモリを２つの領域に分割する。一方の領域１２００は信頼性データ用であり、他方の領域１２０１はプロログ・データ用である。信頼性アドレス領域１２００は、以上で述べた同じような形式で制御される。唯一の相違は、信頼性アドレス・ポインタがプロログ・アドレス領域１２０１へ行くのを許容しないことである。信頼性アドレスは、図１２に示すように、addr_flip信号１２０２、１２０３及び１２０４により依然として制御されている。
【００３９】
プロログ・アドレス領域１２０１用の第２のアドレス・ポインタを付加する。プロログ・アドレス領域１２０１に対するデータの読み出し及び書き込みは、信頼性アドレス領域１２００に対するものより簡単である。時間に関するプロログ・データの読み出し及び書き込みは、図１３に示すように、互いに重なり合ってはならない。アルファ・プロログ・データ及びベータ・プロログ・データの両者は、ステート１３００の先頭で読み出されて処理される。ベータ・プロログ・データは、アルファ・スクラッチＲＡＭに記憶されない。アルファ・プロログ・セクションで、実行が終了すると、スクラッチ・メモリにおけるプロログ・セクションがフリーとなる。時間フレーム１３０１期間において、ベータがベータ信頼性セクションを開始させると、このデータは、２回記憶される。即ち、１回目は現在のスライディング・ウィンドウにおける信頼性アドレス領域１２００に記憶され、それから次のスライディング・ウィンドウにおけるプロログ・アドレス領域１２０１に記憶される。ベータ信頼性データの第１の部分は、図１１に示すように、次のサブブロック用のアルファ・プロログ・アドレス領域１２０１である。
【００４０】
これは、信頼性セクションの重要な部分の期間のあらゆるサイクルで２回の書き込み動作及び１回の読み出し動作による新しいメモリ・アドレス指定技術を必要とする。アルファ・スライディング・ウィンドウの各々に対して１つとする４つのスクラッチ・メモリが存在する。単一メモリに対する３アクセスを１サイクルだけオフセットすると、このシステムを適切に動作させることができる。従って、４つのスクラッチ・メモリのうちの３つは、全てのサイクル期間でアクセスされる。各々は、１回のみアクセスされ、従って、メモリの物理的な実施を簡単にする。
【００４１】
この新しい技術は、７１６＋５６＝７７２サイクルを必要とする。これは、この発明の第１の実施の形態で必要とされるサイクル数に対し、１４４サイクルの節約となる。これらの１４４サイクルは、ターボ復号を完結するためにかかるサイクル数を総和するとかなりなものとなる。例えば、フレーム長が５１１４であり、１０回繰り返されるときは、各ターボ・デコーダは、表２に示す下記サイクル数を必要とする。
【００４２】
この発明の第２の実施の形態は、必要とするサイクルが第１の実施の形態に比較して少ない。これは、１３．３％サイクルの改善となる。
【００４３】
【表２】
0004054221.tif 000012
【００４４】
図１４は、この発明の好ましい実施の形態の同時メモリ制御を使用したＭＡＰデコーダ・アーキテクチャのブロック図を示す。この好ましい実施の形態は、４スクラッチ・メモリ及び４ベータ・メモリを必要とするスライディング・ウィンドウ・アーキテクチャである。４スライディング・ウィンドウのデータは、４サイクル・ベータ・メトリック・ブロックのアーキテクチャにより効率的に処理される。図１４は、図３の詳細図であり、デジタル信号プロセッサ（ＤＰＳ）からメイン・メモリ１４０２へ行く、復号すべきデータ・ブロック１４００を示す。同時のメモリ・コントローラ１４０１は、メイン・メモリ１４０２用のアドレス４１１、スクラッチ・メモリ１４０３用のアドレス１４１２、及びベータＲＡＭ１４０７用のアドレス１４０６を供給する。アルファ・メトリック・ブロック１４０４及びベータ・メトリック・ブロック１４０５は、共にスクラッチ・メモリ１４０３によりインターフェースされる。ベータ・メトリック・ブロック１４０５は、スクラッチ・メモリ１４０３に書き込み、またアルファ・メトリック・ブロック１４０４は、スクラッチ・メモリ１４０３から読み出す。同時メモリ／インターフェース・コントローラ１４０１は、メイン・メモリ１４０２、スクラッチ・メモリ１４０３及び制御ベータＲＡＭ１４０７にある全てのメモリ動作を制御する。スクラッチ・メモリ１４０３は、システマティック・ビット（８）、パリティ・ビット（８Ｘ２＝１６）、ア・プリオリ・ビット（８）及びインターリーバ・データ（１３）からなる４５ビットのスクラッチ・メモリ・ワードを用いる。インターリーバ・データは、外部情報を記憶するときに使用される外部データ・アドレスである。同時メモリ・コントローラ１４０１は、図１０〜図１２の指示に従ってデータの流れを制御する。これは、３メモリ・ブロックの全てに対して制御及びアドレスの発生を実行する。マルチプレクサ１４０８は、ベータ・メモリ１４０７の４つの個別部分と外部ブロック１４０９との間でインターフェースをする。外部ブロック１４０９は、メトリック出力パラメータ１４１０Ｗnjの計算を完了する。
【００４５】
ターボ・コーダは、多くの通信分野で広く使用されることになってきている。ターボ・デコーダは、１繰り返し当たり２回ＭＡＰ復号を実行する繰り返しデコーダである。典型的な繰り返し数は、６から１２までの範囲にある。これは、復号当たりのサイクル・カウントを減少させるために重要であり、これがシステム・パフォーマンスを改善する。ここで、必要とするメモリ数を制限する新しいアプローチ、及び効率的にメモリを制御する方法を説明している。大抵のアルファ・プロログ・データ及び全てのアルファ信頼性データは、必要とされるサイクルに取り込まれてベータ・ステート・メトリックを発生する。これは、復号のサイクル・カウントを減少させる。
以上の説明に関して更に以下の項を開示する。
【００４６】
（１）ターボ復号方法において、
最初に、
スライディング・ウィンドウのデータに対するベータ・ステート・メトリックを計算するステップと、
第１のアドレス指定順序によりスクラッチ・メモリにスライディング・ウィンドウのデータに対する前記ベータ・ステート・メトリックを記憶するステップとを備え、
次いで、各スライディング・ウィンドウに対して反復的に、
現在の繰り返しにおける現在のアドレス指定順序を前記第１のアドレス指定順序と第２のアドレス指定順序との間でトグルするステップであって、前記第２のアドレス指定順序は前記第１のアドレス指定順序と逆であるステップと、
前記スライディング・ウィンドウのデータに対するアルファ・ステート・メトリックを計算するステップと、
前記現在の繰り返しにおける前記アドレス指定順序により前記スクラッチ・メモリからベータ・ステート・メトリックを読み出すステップと、
前記計算したアルファ・ステート・メトリックと外部ブロックにおける前記再呼び出ししたベータ・ステート・メトリックとを組み合わせて外部出力を発生するステップと、
次のスライディング・ウィンドウのデータに対するベータ・ステート・メトリックを計算するステップと、
次のスライディング・ウィンドウのデータに対する前記ベータ・ステート・メトリックをスクラッチ・メモリに前記現在の繰り返しのアドレス指定順序により記憶するステップと
を複数のスライディング・ウィンドウを含む１フレームのデータまで復号するターボ復号方法。
【００４７】
（２）前記現在の繰り返しにおけるアドレス指定順序をトグルする前記ステップは、仮想アドレスを物理アドレスにマッピングの順序を制御するアドレス・フリップ・ビットのデジタル・ステートをトグルさせることを含み、前記ベータ・ステート・メトリックの記憶は、仮想メモリ・アドレス指定を第３のアドレス指定順序により発生し、かつ前記ベータ・ステート・メトリックの読み出しは、常に仮想メモリ・アドレス指定を第４のアドレス指定順序により常に発生し、前記第４のアドレス指定順序は、前記第３のアドレス指定順序と逆である第１項記載のターボ復号方法。
【００４８】
（３）  ターボ復号方法において、
複数のスクラッチ・メモリを設けるステップであって、前記スクラッチ・メモリのそれぞれが信頼性部分及びプロログ部分を有し、前記複数のスクラッチ・メモリは、所定の循環順序により用いられるステップを備え、
最初に、
初期スライディング・ウィンドウのデータに対してベータ・ステート・メトリックを計算するステップと、
前記スライディング・ウィンドウのデータに対して前記ベータ・ステート・メトリックを、現在のスクラッチ・メモリの前記信頼性部分に第１のアドレス指定順序により、かつ次に続くスクラッチ・メモリのプロログ部分に第２のアドレス指定順序により同時に記憶するステップを備え、
次いで、各スライディング・ウィンドウに対して反復的に、
現在の繰り返しにおける現在のアドレス指定順を前記第１のアドレス指定順序と第３のアドレス指定順序との間でトグルするステップであって、前記第３のアドレス指定順序は前記第１のアドレス指定順序に対して逆であるステップと、
前記現在のスライディング・ウィンドウのデータに対するアルファ・ステート・メトリックを計算するステップと、
前記現在のスクラッチ・メモリのプロログ部分から第４のアドレス指定順序によりベータ・ステート・メトリックを読み出すステップであって、前記第４のアドレス指定順序は、前記第２のアドレス指定順序と逆であるステップと、
前記現在のスクラッチ・メモリの前記信頼性部分から前記現在のアドレス指定順序によりベータ・ステート・メトリックを読み出すステップと、
外部ブロックにおいて前記計算したアルファ・ステート・メトリックと前記再呼び出ししたベータ・ステート・メトリックとを組み合わせて外部出力を発生するステップと、
次のスライディング・ウィンドウのデータに対するベータ・ステート・メトリックを計算するステップと、
前記次のスライディング・ウィンドウのデータに対する前記ベータ・ステート・メトリックを、次に続くスクラッチ・メモリの信頼性部分に前記現在のアドレス指定順序と逆のアドレス指定順序により、及び第２の連続するスクラッチ・メモリの前記プロログ部分に前記第２のアドレス指定順序により、同時に記憶するステップと
を複数のスライディング・ウィンドウを含む１フレームのデータまで復号するターボ復号方法。
【００４９】
（４）現在の反復についてのアドレス指定順序をトグルする前記ステップは、仮想アドレスを物理アドレスにマッピングの順序を制御するアドレス・フリップ・ビットのデジタル・ステートをトグルすることを含み、スクラッチ・メモリの信頼性部分における前記ベータ・ステート・メトリックの記憶は、仮想メモリ・アドレス指定において第５のアドレス指定順序により常に発生し、かつスクラッチ・メモリの前記信頼性部分から前記ベータ・ステート・メトリックの読み出しは、仮想メモリ・アドレス指定において第６のアドレス指定順序により常に発生し、前記第６のアドレス指定順序は前記第５のアドレス指定順序と逆である第１項記載のターボ復号方法。
【００５０】
（５）ターボ復号装置において、
ターボ復号されるべきデータを記憶するメイン・メモリと、
前記メイン・メモリに接続されて前記メイン・メモリから再呼び出しされるデータからベータ・メトリックを形成するベータ・メトリック・ブロックと、
前記ベータ・メトリック・ブロックに接続されて前記ベータ・メトリックを記憶する一組の複数のスクラッチ・メモリであって、各々がプロログ・セクション及び信頼性セクションを有するスクラッチ・メモリと
前記一組のスクラッチ・メモリに接続されて前記スクラッチ・メモリから再呼び出しされたデータからアルファ・メトリックを形成するアルファ・メトリック・ブロックと、
前記ベータ・メトリック・ブロックに接続されて前記ベータ・メトリック・ブロックにより形成されたベータ・メトリックを記憶するベータ・メトリック・メモリであって、複数のセクションを有するベータ・メトリック・メモリと、
前記ベータ・メトリック・メモリの対応する１つに各々接続された複数の入力、及び前記ベータ・メトリック・メモリの前記複数のセクションのうちの選択された１つから再呼び出しされたデータを供給する出力を有するマルチプレクサと、
前記アルファ・メトリック・ブロック及び前記マルチプレクサに接続されて外部出力を形成する外部ブロックと、
前記メイン・メモリ、前記一組の複数のスクラッチ・メモリ及び前記ベータ・メトリック・メモリに接続された同時メモリ・インターフェース・コントローラであって、複数のアドレスを発生することにより、前記ベータ・メトリック・ブロックが第１のスクラッチ・メモリの前記プロログ・セクションに第１のアドレス指定順序により書き込みをし、前記ベータ・メトリック・ブロックが次に続くスクラッチ・メモリの前記信頼性セクションに第２の交番するアドレス指定順序により書き込みをし、前記アルファ・メトリックが第２の従属するスクラッチ・メモリから前記第１のアドレス指定順序と逆の第３のアドレス指定順序により読み出しをし、かつ前記アルファ・メトリックが第３の従属するスクラッチ・メモリから前記第２の交番する順序と逆の第４の交番するアドレス指定順序により読み出しをする前記同時メモリ・インターフェース・コントローラと
を備えたターボ復号装置。
【００５１】
（６）この発明の同時メモリ制御ターボ復号解決方法は、シングル・ポート・メモリ及び簡単化されたスクラッチ・メモリによるインターリーブされた順逆方向のアドレス指定をする。この発明は、スライディング・ウィンドウに対して複数のベータ・ステート・メトリックを計算して、これらを第１のアドレス指定順序（１０００）によりスクラッチ・メモリに記憶する。各スライディング・ウィンドウについて、この発明は、前記スライディング・ウィンドウに対するアルファ・ステート・メトリックを計算し、前記スクラッチ・メモリから現在の反復処理（１００５）のアドレス指定順序によりベータ・ステート・メトリックを読み出して、外部ブロックにおいてアルファ・ステート・メトリックとベータ・ステート・メトリックとを組み合わせる。次いで、この発明は、次のスライディング・ウィンドウに対するベータ・ステート・メトリックを計算して、現在の反復のアドレス指定順序により前記ベータ・ステート・メトリックを記憶する。前記アドレス指定順序は、フレームのデータが復号されるまで、次の反復（１００４）に対してトグルされる（１００１）。
【図面の簡単な説明】
【図１】従来技術のターボ・デコーダの上位レベル機能ブロック図である。
【図２】従来技術のターボ・デコーダの下位レベル機能ブロック図である。
【図３】従来技術のＭＡＰデコーダの機能ブロック図である。
【図４】サイズｎのブロックを従来技術によるサイズｒのスライディング・ウィンドウに分割した図である。
【図５】従来技術のベータ・スライディング・ブロックの作成を示す図である。
【図６】従来技術のベータ・サブブロック及びアルファ・サブブロックの処理対時間を示すタイミング図である。
【図７】従来技術の４ベータ・スライディング・ウィンドウを並列に処理するタイミング図である。
【図８】従来技術の４アルファ・スライディング・ウィンドウを並列に処理するタイミング図である。
【図９】従来技術を使用する４スライディング・ウィンドウの従来のターボ・デコーダにおけるピンポン・スクラッチ・メモリのブロック図である。
【図１０】この発明の第１の実施の形態によるスクラッチ・メモリの物理アドレスの順序の図である。
【図１１】この発明の第２の実施の形態用に並列に４ベータ・スライディング・ウィンドウを処理する図である。
【図１２】この発明の第２の実施の形態用のスクラッチＲＡＭの物理アドレス順序を示す図である。
【図１３】ベータ・スライディング・ウィンドウ及びスライディング・ウィンドウの処理対時間のタイミング図である。
【図１４】４スライディング・ウィンドウ・ターボ・デコーダ内のメイン・メモリ、スクラッチ・メモリ及びベータ・メトリックをインターフェースするこの発明の同時メモリ制御のブロック図である。
【符号の説明】
１４０１  同時メモリ／インターフェース・コントローラ
１４０２  メイン・メモリ
１４０３  スクラッチ・メモリ
１４０４  アルファ・メトリック・ブロック
１４０５  ベータ・メトリック・ブロック
１４０７  ベータＲＡＭ
１４０８  マルチプレクサ
１４０９  外部ブロック
【図１】
0004054221.tif 000013
【図２】
0004054221.tif 000014
【図３】
0004054221.tif 000015
【図４】
0004054221.tif 000016
【図５】
0004054221.tif 000017
【図６】
0004054221.tif 000018
【図７】
0004054221.tif 000019
【図８】
0004054221.tif 000020
【図９】
0004054221.tif 000021
【図１０】
0004054221.tif 000022
【図１１】
0004054221.tif 000023
【図１２】
0004054221.tif 000024
【図１３】
0004054221.tif 000025
【図１４】
0004054221.tif 000026