(57)【要約】【課題】より少ない回路規模の増加でターボ復号処理に対して、順方向及び逆方向に対応したインターリーブアドレスを生成可能なターボ復号処理装置を提案すること。【解決手段】本発明のマルチコア型ターボ復号処理装置のインターリーブアドレス生成回路は、順方向に対応したインターリーブアドレスばかりでなく逆方向に対応したインターリーブドアドレスをも生成可能なように演算部分を変更した中間値生成ブロックを具備する。さらにあらかじめメモリバンク用パラメータと物理アドレスとで分解した初期パラメータを用いて、２並列のビット幅の制限した中間値生成ブロックを２並列に配置し、キャリー信号をやり取りするための信号線で２つの中間値生成ブロックを結合する。【選択図】図１
2014506022.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ格納手段と、
前記複数のデータ格納手段からデータを受け取り、データ列のデータ順を変換するデータ列変換手段と、
前記データ列変換手段からデータを受け取り、ターボ復号処理を行う複数のターボ復号処理手段と、
前記複数のデータ格納手段に与えるアドレスと前記データ列変換手段に与えるパラメータとを生成するアドレス生成手段と、
を備えたマルチコア型ターボ復号処理装置において、
前記アドレス生成手段は、第１乃至第４の中間値生成手段を備え、
前記第１の中間値生成手段は、前記複数のデータ格納手段に与えるアドレスを生成するために必要な中間値を生成し、
前記第２の中間値生成手段は、前記第１の中間値生成手段から得られた値から前記複数のデータ格納手段に与えるアドレスを生成し、
前記第３の中間値生成手段は、前記データ列変換手段に与えるパラメータを生成するために必要な中間値を生成し、
前記第４の中間値生成手段は、前記第３の中間値生成手段から得られた値から前記データ列変換手段に与えるパラメータを生成し、
前記第１乃至第４の中間値生成手段は、順方向および逆方向に対応したインターリーブアドレスを生成可能に構成されていることを特徴とするマルチコア型ターボ復号処理装置。
【請求項２】
前記アドレス生成用の初期パラメータを、前記第１および第２の中間値生成手段へそれぞれ供給するための第１および第２のパラメータ入力手段と、
前記パラメータ生成用の初期パラメータを、前記第３および第４の中間値生成手段へそれぞれ供給するための第３および第４のパラメータ入力手段と、
を更に備える、請求項１に記載のマルチコア型ターボ復号処理装置。
【請求項３】
前記第１乃至第４の中間値生成手段の各々は、
加算と減算処理が選択可能な主加算・減算選択回路と、
加算と減算処理が選択可能な副加算・減算選択回路と、
前記主加算・減算選択回路および前記副加算・減算選択回路から出力された２つの値のうち、選択された１つの値が正の場合は、選択されたほうの値を出力し、選択された１つの値が負の場合は選択されていないほうの値を出力する比較・選択回路と、
を備え、
前記第２および前記第４の中間値生成手段の前記主加算・減算選択回路は、それぞれ、前記第１および前記第３の中間値生成手段の前記主加算・減算選択回路からのキャリー信号を受けて加算または減算処理を行い、
前記第１および前記第３の中間値生成手段の前記主加算・減算選択回路は、加算時に得られた結果が所定の値よりも大きかった場合、キャリー信号を出力し、減算時に得られた結果がゼロよりも小さかった場合、キャリー信号を出力することを特徴とする、
請求項２に記載のマルチコア型ターボ復号処理装置。
【請求項４】
前記順方向に対応したインターリーブアドレスを生成する場合、前記主加算・減算選択回路は加算処理を行い、前記副加算・減算選択回路は減算処理を行い、
前記逆方向に対応したインターリーブアドレスを生成する場合、前記主加算・減算選択回路は減算処理を行い、前記副加算・減算選択回路は加算処理を行うことを特徴とする、請求項３に記載のマルチコア型ターボ復号処理装置。
【請求項５】
複数のデータ格納手段と、
前記複数のデータ格納手段からデータを受け取り、データ列のデータ順を変換するデータ列変換手段と、
前記データ列変換手段からデータを受け取り、ターボ復号処理を行う複数のターボ復号処理手段と、
前記複数のデータ格納手段に与えるアドレスと前記データ列変換手段に与えるパラメータとを生成するアドレス生成手段と、
を備えたマルチコア型ターボ復号処理装置において、
前記アドレス生成手段は、第１および第２の中間値生成手段と、アドレス・パラメータ分離手段と、を備え、
前記第１の中間値生成手段は、前記アドレス・パラメータ分離手段の入力データを生成するために必要な中間値を生成し、
前記第２の中間値生成手段は、前記第１の中間値生成手段から得られた値から前記アドレス・パラメータ分離手段の入力データを生成し、
前記第１および第２の中間値生成手段は、順方向および逆方向に対応したインターリーブアドレスを生成可能に構成されており、
前記アドレス・パラメータ分離手段は、前記第２の中間値生成手段から得られた値を基に、前記複数のデータ格納手段に与えるアドレスと前記データ列変換手段に与えるパラメータとを生成する、
ことを特徴とするマルチコア型ターボ復号処理装置。
【請求項６】
前記データ列のコード長が２のべき乗である、請求項５に記載のマルチコア型ターボ復号処理装置。
【請求項７】
前記第１および第２の中間値生成手段の各々は、
加算と減算処理が選択可能な主加算・減算選択回路と、
加算と減算処理が選択可能な副加算・減算選択回路と、
前記主加算・減算選択回路および前記副加算・減算選択回路から出力された２つの値のうち、選択された１つの値が正の場合は、選択されたほうの値を出力し、選択された１つの値が負の場合は選択されていないほうの値を出力する比較・選択回路と、
を備えることを特徴とする、請求項５又は６に記載のマルチコア型ターボ復号処理装置。
【請求項８】
前記順方向に対応したインターリーブアドレスを生成する場合、前記主加算・減算選択回路は加算処理を行い、前記副加算・減算選択回路は減算処理を行い、
前記逆方向に対応したインターリーブアドレスを生成する場合、前記主加算・減算選択回路は減算処理を行い、前記副加算・減算選択回路は加算処理を行うことを特徴とする、請求項７に記載のマルチコア型ターボ復号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線通信におけるマルチコアプロセッサを用いた誤り訂正処理分野に関し、特に、ターボ復号技術に関する。
【０００２】
この出願は、２０１１年２月１８日に出願された日本特許出願第２０１１−０３２７５１号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【背景技術】
【０００３】
近年の無線通信システムでは、高いスループットとエラー耐性とが要求される。それらを満たすために、ターボ符号化、ＬＤＰＣ (Low Density Parity Check)符号化、畳み込み符号化等の誤り訂正処理をはじめとする様々な技術が、ＬＴＥ（Long Term Evolution）、ＷｉＭＡＸ（Worldwide Interoperability for Microwave Access）等の様々な無線通信システムに採用されている。ＬＴＥ、ＷｉＭＡＸの次世代通信規格における誤り訂正処理、特にターボ復号は、要求される高スループットを実現するために、ＷＣＤＭＡ（登録商標）（Wideband Code Division Multiple Access）等の第３世代通信とは異なるインターリーブ処理を持つことが特長として挙げられる。
【０００４】
ＬＴＥおよびＷｉＭＡＸにおけるインターリーブ処理は、それぞれ、ＡＲＰ（Almost Regular Permutation）インターリーバおよびＱＰＰ（Quadratic Permutation Polynomial）インターリーバと呼ばれる。これらインターリーバは、並列に配置されたインターリーブアドレス生成器を用いて、同時に複数のインターリーブアドレスを生成しても、メモリのコンフリクトがおきないアドレッシングが可能であることを特徴とする。
【０００５】
そのため、データ列のコード長を複数のウィンドウに分割して、図７のように並列にターボ復号処理をすることが可能であり、ウィンドウ数分だけの高速化の恩恵を受けることができる。
【０００６】
図７は、本発明に関連するターボ復号処理の並列処理方法を示した図である。データ列のコード長Ｎは、ｍ個のウィンドウ（第１のウィンドウ＃０、第２のウィンドウ＃１、・・・、第ｍのウィンドウ＃ｍ−１）に分割されている。第１乃至第ｍのウィンドウ＃０〜＃ｍ−１の各々は、ｐ個のサブウィンドウ（第１のサブウィンドウ＃０〜第ｐのサブウィンドウ＃ｐ−１）に分割されている。第１乃至第ｍのウィンドウ＃０〜＃ｍ−１の各々では、第１のサブウィンドウ＃０から第ｐのサブウィンドウ＃ｐ−１へ向けて順方向演算（α計算）が行われる。また、第１のサブウィンドウ＃０〜第ｐのサブウィンドウ＃ｐ−１の各々では、逆方向演算（β計算）が行われる。
【０００７】
具体的には、ＱＰＰインターリーブ方式の場合、以下の数１に則り、インターリーブアドレスが演算される。
【数１】
2014506022.tif 000003
f1,f2はコード長Ｎによって決められている係数である。
【０００８】
また、ＡＲＰインターリーブ方式の場合、以下の数２に則り、インターリーブアドレスが演算される。
【数２】
2014506022.tif 000004
Ｐ0，Ｐ1，Ｐ2，Ｐ3はコード長Ｎによって決められている係数である。
【０００９】
このインターリーブ方式を用いることで、ターボ復号処理の並列化が可能となり、図８に示すような、マルチコア型ターボ復号処理装置４０により、高いスループットを実現することができる。
【００１０】
図８は、本発明に関連するマルチコア型ターボ復号処理装置４０を示すブロック図である。図示のマルチコア型ターボ復号処理装置４０は、第１乃至第ｎのメモリバンク部４１−１、４１−２、・・・、４１−ｎ（ｎは２以上の整数）と、インタコネクト部４２と、第１乃至第ｎのターボ復号処理部４３−１、４３−２、・・・、４３−ｎと、アドレス生成部４４とを含む。ここで、バンク数ｎは、上記ウィンドウ数ｍ以下である（ｎ≦ｍ）。
【００１１】
第１乃至第ｎのメモリバンク部４１−１〜４１−ｎは、ターボ復号対象データ（以下、「入力データ」と呼ぶ）や、復号結果を格納するために使用される。インタコネクト部４２は、第１乃至第ｎのメモリバンク部４１−１〜４１−ｎと、第１乃至第ｎのターボ復号処理部４３−１〜４３−ｎとに接続される。インタコネクト部４２内部の接続構成を変更して、第１乃至第ｎのメモリバンク部４１−１〜４１−ｎと第１乃至第ｎのターボ復号処理部４３−１〜４３−ｎとの接続構成を制御する。第１乃至第ｎのターボ復号処理部４３−１〜４３−ｎは、実際のターボ復号処理を行う。アドレス生成部４４は、第１乃至第ｎのメモリバンク部４１−１〜４１−ｎへの物理アドレスと、インタコネクト部４２への接続変更を行うパラメータとを生成する。
【００１２】
さらに、ターボ復号処理装置４０の内部処理においても、図７に示すように、ターボ復号で使用されるＢＣＪＲ（Bahl-Cocke-Jelinek-Raviv）アルゴリズムにおいては、ある一つのウィンドウに対して、順方向の処理、逆方向の処理が存在する。
【００１３】
ここで、ＢＣＪＲアルゴリズムとは、誤り検出訂正（主に畳み込み符号）の事後確率最大化復号のアルゴリズムである。換言すれば、ＢＣＪＲアルゴリズムとは、受信情報と信頼度情報から新たな信頼度情報を算出するアルゴリズムで、軟入力、軟出力アルゴリズムである。
【００１４】
図７に示すように、ＢＣＪＲアルゴリズムでは、ある一つのウィンドウをさらに小さな領域（サブウィンドウ）に分割し、それらの順方向、逆方向処理をパイプライン的、または、並列に処理することで、更なる速度向上を図ることができる。
【００１５】
非特許文献１は、上記のインターリーブアドレス生成処理を統一的なアーキテクチャで行うことを目的とした、インターリーブアドレス生成器を提案している。非特許文献１では、上記の演算式を以下の漸化式に変換することで、ＱＰＰ、ＡＲＰそれぞれのインターリーブ方式を共通処理化している。
【００１６】
ＱＰＰインターリーブ方式の場合、以下の数３で表される漸化式に変換する。
【数３】
2014506022.tif 000005
【００１７】
ＡＲＰインターリーブ方式の場合、以下の数４で表される漸化式に変換する。
【数４】
2014506022.tif 000006
【００１８】
以上の漸化式を基に、非特許文献１は、図９に示すような、本発明に関連するインターリーブアドレス生成器３０を提案している。
【００１９】
図示のインターリーブアドレス生成器３０は、第１および第２の共通演算ユニット３０ａ、３０ｂを備える。第１および第２の共通演算ユニット３０ａ、３０ｂは、それぞれ、第１および第２の加算器３２ａ、３２ｂと、第１及び第２の減算器３３ａ、３３ｂと、第１および第２の比較選択器３４ａ、３４ｂと、第１および第２のレジスタ３５ａ、３５ｂと、を備える。
【００２０】
第１の共通演算ユニット３０ａの入力端には、１つの選択回路３６ａが接続されている。選択回路３６ａは、第１の初期パラメータと第１の共通演算ユニット３０ａの出力信号との一方を選択し、選択した信号を第１の加算器３２ａの第１の入力端子へ供給している。第１の加算器３２ａの第２の入力端子には第２の初期パラメータが供給される。第１の加算器３２ａの出力信号は、第１の減算器３３ａの第１の入力端子と第１の比較選択器３４ａの第１の入力端子とに供給されている。第１の減算器３３ａの第２の入力端子には第３の初期パラメータが供給される。第１の減算器３３ａの出力信号は第１の比較選択器３４ａの第２の入力端子に供給される。第１の減算器３３ａの出力信号の符号ビットは、第１の比較選択器３４ａの選択端子に供給される。第１の比較選択器３４ａの出力信号は第１のレジスタ３５ａで保持される。この第１のレジスタ３５ａで保持された信号は、第１の共通演算ユニット３０ａの出力信号として出力される。
【００２１】
第２の共通演算ユニット３０ｂの入力端には、２つの選択回路３６ｂ１、３６ｂ２が接続されている。選択回路３６ｂ１は、第１の初期パラメータと第２の共通演算ユニット３０ｂの出力信号との一方を選択し、選択した信号を第２の加算器３２ｂの第１の入力端子へ供給している。選択回路３６ｂ２は、第２の初期パラメータと第１の共通演算ユニット３０ａの出力信号との一方を選択し、選択した信号を第２の加算器３２ｂの第２の入力端子に供給している。第２の加算器３２ａの出力信号は、第２の減算器３３ｂの第１の入力端子と第２の比較選択器３４ｂの第１の入力端子とに供給される。第２の減算器３３ｂの第２の入力端子には第３の初期パラメータが供給される。第２の減算器３３ｂの出力信号は第２の比較選択器３４ｂの第２の入力端子に供給される。第２の減算器３３ｂの出力信号の符号ビットは、第２の比較選択器３４ｂの選択端子に供給される。第２の比較選択器３４ｂの出力信号は第２のレジスタ３５ｂで保持される。この第２のレジスタ３５ｂで保持された信号は、第２の共通演算ユニット３０ｂの出力信号として出力される。
【００２２】
図９に図示したインターリーブアドレス生成器３０では、これら共通演算ユニット３０ａ、３０ｂ（以降、「中間値生成部」と呼ぶ）を用いて、ＱＰＰインターリーブ方式、ＡＲＰインターリーブ方式の適切なパラメータを適宜与えることで、順方向に対応したインターリーブアドレスを単一の演算回路で生成している。
【先行技術文献】
【非特許文献】
【００２３】
【非特許文献１】“Configurable and Scalable High Throughput Turbo Decoder Architecture for Multiple 4GWireless Standards”,Yang Sun, ASAP'08, 2008
【発明の概要】
【発明が解決しようとする課題】
【００２４】
本発明が解決しようとする課題は、前述したようなマルチコア型ターボ復号処理装置４０において、ターボ符号器の順方向、逆方向に対応したインターリーブ処理を実現するための回路規模が増大する点である。
【００２５】
その理由は、非特許文献１に開示されたインターリーブアドレス生成器３０を含むマルチコア型ターボ復号処理装置４０を用いて、複数のウィンドウ、順方向・逆方向処理を並列に行う処理ターボ復号処理を実現しようとした場合、逆方向に対応したインターリーブ処理を実現できる機能が必要となる。非特許文献１に記されたインターリーブアドレス生成器３０の構成では、逆方向に対応したインターリーブアドレスを生成することができない。そのため、順方向に対応したインターリーブアドレスを生成した後、その生成したインターリーブアドレスを一旦メモリに格納してから、逆順にアドレスを読み出す必要がある。その結果、インターリーブアドレスを保存するメモリ分だけメモリ規模が増大し、回路規模の増大を招く。
【００２６】
また、複数のターボ復号処理部を用いて、並列にターボ復号処理を行う場合、ターボ復号処理装置は、図８のような構成となる。入力・出力用メモリがバンク構成になっているため、非特許文献１に開示されたインターリーブアドレス生成器３０を用いて生成したインターリーブアドレスを、メモリバンク用パラメータと物理的なメモリアドレスとに分解する必要がある。ターボ復号の対象となるコード長は２のべき乗とは限らないため、分解するには、図９に示すような、除算、モジュロ演算を備えたセパレータ３７が必要となり、さらに回路規模の増大を招く。
【００２７】
本発明の目的は、上記の課題を解決することであり、より少ない回路規模の増加でターボ復号処理に対して、順方向および逆方向に対応したインターリーブアドレスを生成することが可能なターボ復号処理装置を提案することにある。
【課題を解決するための手段】
【００２８】
本発明の第１の態様によるマルチコア型ターボ復号処理装置は、複数のデータ格納手段と、前記複数のデータ格納手段からデータを受け取り、データ列のデータ順を変換するデータ列変換手段と、前記データ列変換手段からデータを受け取り、ターボ復号処理を行う複数のターボ復号処理手段と、前記複数のデータ格納手段に与えるアドレスと前記データ列変換手段に与えるパラメータとを生成するアドレス生成手段と、を備えたマルチコア型ターボ復号処理装置において、前記アドレス生成手段は、第１乃至第４の中間値生成手段を備え、前記第１の中間値生成手段は、前記複数のデータ格納手段に与えるアドレスを生成するために必要な中間値を生成し、前記第２の中間値生成手段は、前記第１の中間値生成手段から得られた値から前記複数のデータ格納手段に与えるアドレスを生成し、前記第３の中間値生成手段は、前記データ列変換手段に与えるパラメータを生成するために必要な中間値を生成し、前記第４の中間値生成手段は、前記第３の中間値生成手段から得られた値から前記データ列変換手段に与えるパラメータを生成し、前記第１乃至第４の中間値生成手段は、順方向および逆方向に対応したインターリーブアドレスを生成可能に構成されていることを特徴とする。
【００２９】
本発明の第２の態様によるマルチコア型ターボ復号処理装置は、複数のデータ格納手段と、前記複数のデータ格納手段からデータを受け取り、データ列のデータ順を変換するデータ列変換手段と、前記データ列変換手段からデータを受け取り、ターボ復号処理を行う複数のターボ復号処理手段と、前記複数のデータ格納手段に与えるアドレスと前記データ列変換手段に与えるパラメータとを生成するアドレス生成手段と、を備えたマルチコア型ターボ復号処理装置において、前記アドレス生成手段は、第１および第２の中間値生成手段と、アドレス・パラメータ分離手段と、を備え、前記第１の中間値生成手段は、前記アドレス・パラメータ分離手段の入力データを生成するために必要な中間値を生成し、前記第２の中間値生成手段は、前記第１の中間値生成手段から得られた値から前記アドレス・パラメータ分離手段の入力データを生成し、前記第１および第２の中間値生成手段は、順方向および逆方向に対応したインターリーブアドレスを生成可能に構成されており、前記アドレス・パラメータ分離手段は、前記第２の中間値生成手段から得られた値を基に、前記複数のデータ格納手段に与えるアドレスと前記データ列変換手段に与えるパラメータとを生成する、ことを特徴とする。
【発明の効果】
【００３０】
以上のような構成をとることで、以下の効果を得ることができる。
【００３１】
本発明の効果は、ターボ復号処理装置に具備する単一のアドレス生成装置により、順方向および逆方向に対応したインターリーブアドレスを生成することができることにある。
【図面の簡単な説明】
【００３２】
【図１】本発明の第１の実施形態に係るマルチコア型ターボ復号処理装置に使用されるインターリーブアドレス生成回路の構成を示すブロック図である。
【図２】本発明の第１の実施形態におけるＱＰＰ方式のインターリーブアドレス生成方法を示すタイムチャートである。
【図３】本発明の第１の実施形態におけるＡＲＰ方式のインターリーブアドレス生成方法を示すタイムチャートである。
【図４】本発明の第２の実施形態に係るマルチコア型ターボ復号処理装置に使用されるインターリーブアドレス生成回路の構成を示すブロック図である。
【図５】本発明の第２の実施形態におけるＱＰＰ方式のインターリーブアドレス生成方法を示すタイムチャートである。
【図６】本発明の第２の実施形態におけるＡＲＰ方式のインターリーブアドレス生成方法を示すタイムチャートである。
【図７】本発明に関連するターボ復号処理の並列処理方法を示した図である。
【図８】本発明に関連するマルチコア型ターボ復号処理装置を示すブロック図である。
【図９】本発明に関連するインターリーブアドレス生成器の構成を示すブロック図である。
【発明を実施するための形態】
【００３３】
次に、本発明をいくつかの実施形態について図面を参照して詳細に説明する。
【００３４】
［第１の実施形態］
まず、前提として、本発明の第１の実施形態に係るインターリーブアドレス生成回路は、図８に示すような、マルチコア型ターボ復号処理装置４０のアドレス生成部４４として実施される。
【００３５】
図８に示したマルチコア型ターボ復号処理装置４０は、第１乃至第ｎのメモリバンク部４１−１、４１−２、…、４１−ｎ（ｎは２以上の整数）と、インタコネクト部４２と、第１乃至第ｎのターボ復号処理部４３−１、４３−２、…、４３−ｎと、アドレス生成部４４とを含む。
【００３６】
第１乃至第ｎのメモリバンク部４１−１〜４１−ｎは、ターボ復号対象データ（以下、「入力データ」と呼ぶ）や、復号結果を格納するために使用される。インタコネクト部４２は、第１乃至第ｎのメモリバンク部４１−１〜４１−ｎと、第１乃至第ｎのターボ復号処理部４３−１〜４３−ｎとに接続される。インタコネクト部４２内部の接続構成を変更して、第１乃至第ｎのメモリバンク部４１−１〜４１−ｎと第１乃至第ｎのターボ復号処理部４３−１〜４３−ｎとの接続構成を制御する。第１乃至第ｎのターボ復号処理部４３−１〜４３−ｎは、実際のターボ復号処理を行う。アドレス生成部４３は、第１乃至第ｎのメモリバンク部４１−１〜４１−ｎへの物理アドレスと、インタコネクト部４２への接続変更を行うパラメータとを生成する。
【００３７】
すなわち、マルチコア型ターボ復号処理装置４０において、第１乃至第ｎのメモリバンク部４１−１〜４１−ｎは、複数のデータ格納手段（４１−１〜４１−ｎ）として働く。インタコネクト部４２は、複数のデータ格納手段（４１−１〜４１−ｎ）からデータを受け取り、データ列のデータ順を変換するデータ列変換手段（４２）として動作する。第１乃至第ｎのターボ復号処理部４３−１〜４３−ｎは、データ列変換手段（４２）からデータを受け取り、ターボ復号処理を行う複数のターボ復号処理手段（４３−１〜４３−ｎ）として働く。そして、アドレス生成部４４は、複数のデータ格納手段（４１−１〜４１−ｎ）に与えるアドレスと、データ列変換手段（４２）に与えるパラメータとを生成するアドレス生成手段（４４）として動作する。
【００３８】
図１を参照して、上記アドレス生成部４４として使用される、本発明の第１の実施形態に係るインターリーブアドレス生成回路１０について説明する。
【００３９】
図１に示すように、インターリーブアドレス生成回路１０は、第１乃至第４の中間値生成部１０ａ、１０ｂ、１０ｃ、１０ｄから構成される。第１乃至第４の中間値生成部１０ａ、１０ｂ、１０ｃ、１０ｄの入力端は、それぞれ、後述する選択回路を介して、第１乃至第４のパラメータ入力部１１ａ、１１ｂ、１１ｃ、１１ｄに接続されている。
【００４０】
第１乃至第４の中間値生成部１０ａ、１０ｂ、１０ｃ、１０ｄは、それぞれ、第１乃至第４の主加算・減算選択回路１２ａ、１２ｂ、１２ｃ、１２ｄと、第１乃至第４の副加算・減算選択回路１３ａ、１３ｂ、１３ｃ、１３ｄと、第１乃至第４の比較・選択回路１４ａ、１４ｂ、１４ｃ、１４ｄと、第１乃至第４のレジスタ１５ａ、１５ｂ、１５ｃ、１５ｄとを含む。
【００４１】
第１のパラメータ入力部１１ａの出力端と第１の中間値生成部１０ａの入力端との間には、１つの選択回路１６ａが設けられている。選択回路１６ａは、第１のパラメータ入力部１１ａから出力される第１の初期パラメータと第１の中間値生成部１０ａの出力信号との一方を選択し、選択した信号を第１の主加算・減算選択回路１２ａの第１の入力端子へ供給している。第１の主加算・減算選択回路１２ａの第２の入力端子には、第１のパラメータ入力部１１ａから第２の初期パラメータが供給される。第１の主加算・減算選択回路１２ａの出力信号は、第１の副加算・減算選択回路１３ａの第１の入力端子と、第１の比較・選択回路１４ａの第１の入力端子とに供給される。第１の主加算・減算選択回路１２ａのキャリー信号は、第２の主加算・減算選択回路１２ｂへ供給される。第１の副加算・減算選択回路１３ａの第２の入力端子には、第１のパラメータ入力部１１ａから第３の初期パラメータが供給される。第１の副加算・減算選択回路１３ａの出力信号は、第１の比較・選択回路１４ａの第２の入力端子に供給される。第１の比較・選択回路１４ａの出力信号は、第１のレジスタ１５ａに保持される。この第１のレジスタ１５ａに保持された信号は、第１の中間値生成部１０ａの出力信号として出力される。
【００４２】
同様に、第２のパラメータ入力部１１ｂの出力端と第２の中間値生成部１０ｂの入力端との間には、１つの選択回路１６ｂが設けられている。選択回路１６ｂは、第２のパラメータ入力部１１ｂから出力される第１の初期パラメータと第２の中間値生成部１０ｂの出力信号との一方を選択し、選択した信号を第２の主加算・減算選択回路１２ｂの第１の入力端子へ供給している。第２の主加算・減算選択回路１２ｂの第２の入力端子には、第２のパラメータ入力部１１ｂから第２の初期パラメータが供給される。第２の主加算・減算選択回路１２ｂの出力信号は、第２の副加算・減算選択回路１３ｂの第１の入力端子と、第２の比較・選択回路１４ｂの第１の入力端子とに供給される。第２の副加算・減算選択回路１３ｂの第２の入力端子には、第２のパラメータ入力部１１ｂから第３の初期パラメータが供給される。第２の副加算・減算選択回路１３ｂの出力信号は、第２の比較・選択回路１４ｂの第２の入力端子に供給される。第２の比較・選択回路１４ｂの出力信号は、第２のレジスタ１５ｂに保持される。この第２のレジスタ１５ｂに保持された信号は、第２の中間値生成部１０ｂの出力信号として出力される。
【００４３】
第３のパラメータ入力部１１ｃの出力端と第３の中間値生成部１０ｃの入力端との間には、２つの選択回路１６ｃ１、１６ｃ２が設けられている。選択回路１６ｃ１は、第３のパラメータ入力部１１ｃから出力される第１の初期パラメータと第３の中間値生成部１０ｃの出力信号との一方を選択し、選択した信号を第３の主加算・減算選択回路１２ｃの第１の入力端子へ供給している。選択回路１６ｃ２は、第３のパラメータ入力部１１ｃから出力される第２の初期パラメータと第１の中間値生成部１０ａの出力信号との一方を選択し、選択した信号を第３の主加算・減算選択回路１２ｃの第２の入力端子へ供給している。第３の主加算・減算選択回路１２ｃの出力信号は、第３の副加算・減算選択回路１３ｃの第１の入力端子と、第３の比較・選択回路１４ｃの第１の入力端子とに供給される。第３の主加算・減算選択回路１２ｃのキャリー信号は、第４の主加算・減算選択回路１２ｄへ供給される。第３の副加算・減算選択回路１３ｃの第２の入力端子には、第１のパラメータ入力部１１ａから第３の初期パラメータが供給される。第３の副加算・減算選択回路１３ｃの出力信号は、第３の比較・選択回路１４ｃの第２の入力端子に供給される。第３の比較・選択回路１４ｃの出力信号は、第３のレジスタ１５ｃに保持される。この第３のレジスタ１５ｃに保持された信号は、第３の中間値生成部１０ｃの出力信号として出力される。
【００４４】
第４のパラメータ入力部１１ｄの出力端と第４の中間値生成部１０ｄの入力端との間には、２つの選択回路１６ｄ１、１６ｄ２が設けられている。選択回路１６ｄ１は、第４のパラメータ入力部１１ｄから出力される第１の初期パラメータと第４の中間値生成部１０ｄの出力信号との一方を選択し、選択した信号を第４の主加算・減算選択回路１２ｄの第１の入力端子へ供給している。選択回路１６ｄ２は、第４のパラメータ入力部１１ｄから出力される第２の初期パラメータと第２の中間値生成部１０ｂの出力信号との一方を選択し、選択した信号を第４の主加算・減算選択回路１２ｄの第２の入力端子に供給している。第４の主加算・減算選択回路１２ｄの出力信号は、第４の副加算・減算選択回路１３ｄの第１の入力端子と、第４の比較・選択回路１４ｄの第１の入力端子とに供給される。第４の副加算・減算選択回路１３ｄの第２の入力端子には、第２のパラメータ入力部１１ｂから第３の初期パラメータが供給される。第４の副加算・減算選択回路１３ｄの出力信号は、第４の比較・選択回路１４ｄの第２の入力端子に供給される。第４の比較・選択回路１４ｄの出力信号は、第４のレジスタ１５ｄに保持される。この第４のレジスタ１５ｄに保持された信号は、第４の中間値生成部１０ｄの出力信号として出力される。
【００４５】
このように、インターリーブアドレス生成回路１０は、順方向に対応したインターリーブドアドレスばかりでなく、逆方向に対応したインターリーブドアドレスをも生成可能なように演算部分を変更した中間値生成ブロック（１０ａ、１０ｂ、１０ｃ、１０ｄ）を具備する。さらに、インターリーブアドレス生成回路１０は、あらかじめメモリバンク用パラメータと物理アドレスとに分解した初期パラメータを用いて、２並列のビット幅の制限した中間値生成ブロック（１０ａ、１０ｂ、１０ｃ、１０ｄ）を２並列に配置し、キャリー信号をやり取りするための信号線で２装置間を結合している。
【００４６】
これらはそれぞれ次のように動作する。
【００４７】
説明の簡単化のため、前提として本発明の第１の実施形態に係るインターリーブアドレス生成回路１０は、前述したマルチコア型ターボ復号処理装置４０に含まれる第１乃至第ｎのメモリバンク部４１−１〜４１−ｎの内のひとつのメモリバンク部と、インタコネクト部４２とに接続されるとする。すなわち、本発明の第１の実施形態に係るインターリーブアドレス生成回路１０は、１つ分のメモリバンク部への物理アドレスと、１つ分のメモリバンク部とターボ復号処理部との接続を表したインタコネクト部４２への接続パラメータとを供給することとする。
【００４８】
初めに、ＱＰＰインターリーブ方式の順方向に対応したインターリーブアドレス生成処理を行う場合の動作について説明する。
【００４９】
インターリーブアドレスを生成する前に、インターリーブ用の初期パラメータが第１乃至第４のパラメータ入力部１１ａ、１１ｂ、１１ｃ、１１ｄに入力される。入力されるインターリーブパラメータは、コード長Ｎと、インターリーブ用初期パラメータ2*f2である。このとき、コード長Ｎとインターリーブ用初期パラメータ2*f2とは、予めサブウィンドウ数ｐに応じて、インターリーブ用のパラメータ（Ｎ_i, 2*f2_i)と、複数のメモリバンク用の物理アドレス（Ｎ_a, 2*f2_a)とに分離しておく。複数のメモリバンク用の物理アドレス（Ｎ_a, 2*f2_a)は、第１および第２のパラメータ入力部１１ａ、１１ｂに供給され、インターリーブ用のパラメータ（Ｎ_i, 2*f2_i)は、第３および第４のパラメータ入力部１１ｃ、１１ｄに入力される。
【００５０】
第１乃至第４の中間値生成部１０ａ、１０ｂ、１０ｃ、１０ｄに含まれる演算ブロックそれぞれは、ＱＰＰインターリーブ方式の順方向に対応したインターリーブアドレス生成時に以下の処理を行う。
【００５１】
第１乃至第４の主加算・減算選択回路１２ａ、１２ｂ、１２ｃ、１２ｄでは、加算処理が行われる。この加算処理の際に、第１の主加算・減算選択回路１２ａと第２の主加算・減算選択回路１２ｂ、第３の主加算・減算選択回路１２ｃと第４の主加算・減算選択回路１２ｄは、図１に示すようにキャリーチェーンで接続されている。第１の主加算・減算選択回路１２ａの演算結果が所定値Ｎ_aより大きくなった場合に、そのキャリー信号が、第２の主加算・減算選択回路１２ｂに伝播される。同様に、第３の主加算・減算選択回路１２ｃの演算結果が所定値Ｎ_aより大きくなった場合に、そのキャリー信号が、第４の主加算・減算選択回路１２ｄに伝播される。
【００５２】
第１乃至第４の副加算・減算選択回路１３ａ、１３ｂ、１３ｃ、１３ｄでは、減算処理が行われる。第１乃至第４の比較・選択回路１４ａ、１４ｂ、１４ｃ、１４ｄでは、第１乃至第４の副加算・減算選択回路１３ａ、１３ｂ、１３ｃ、１３ｄの結果が正であった場合、第１乃至第４の副加算・減算選択回路１３ａ、１３ｂ、１３ｃ、１３ｄの結果を選択し、負であった場合は、第１乃至第４の主加算・減算選択回路１２ａ、１２ｂ、１２ｃ、１２ｄの結果を選択する処理が行われる。
【００５３】
第１乃至第４の中間値生成部１０ａ、１０ｂ、１０ｃ、１０ｄは、２つずつ、Γ値生成用のグループと、インターリーブアドレス出力用のグループとに分けられる。各グループにおいて、上段の第２の中間値生成部１０ｂおよび第４の中間値生成部１０ｄは、インタコネクトパラメータ生成用として動作し、下段の第１の中間値生成部１０ａおよび第３の中間値生成部１０ｃは、メモリバンク用物理アドレス生成を行う。
【００５４】
各グループはパイプライン状に接続され、図２のようなタイミングで動作する。つまり、まず、Γ値を生成する第１および第２の中間値生成部１０ａ、１０ｂが動作し、得られた結果をインターリーブアドレス出力用の第３および第４の中間値生成部１０ｃ、１０ｄが受け取り、インターリーブアドレスを生成する。こうすることで、インタコネクトパラメータとメモリバンク用物理アドレスとを得ることができる。
【００５５】
次に、ＱＰＰインターリーブ方式の逆方向に対応したインターリーブアドレス生成処理を行う場合の動作について説明する。
【００５６】
インターリーブアドレスを生成する前に、インターリーブ用パラメータが第１乃至第４のパラメータ入力部１１ａ、１１ｂ、１１ｃ、１１ｄに入力される。入力されるインターリーブパラメータは、コード長Ｎと、インターリーブ用初期パラメータ2*f2である。このとき、コード長Ｎとインターリーブ用初期パラメータ2*f2とは、予めサブウィンドウ数ｐに応じて、インターリーブ用のパラメータ（Ｎ_i, 2*f2_i)と、複数のメモリバンク用の物理アドレス（Ｎ_a, 2*f2_a)とに分離しておく。複数のメモリバンク用の物理アドレス（Ｎ_a, 2*f2_a)は、第１および第２のパラメータ入力部１１ａ、１１ｂに供給され、インターリーブ用のパラメータ（Ｎ_i, 2*f2_i)は、第３および第４のパラメータ入力部１１ｃ、１１ｄに供給される。
【００５７】
第１乃至第４の中間値生成部１０ａ、１０ｂ、１０ｃ、１１ｄに含まれる演算ブロックそれぞれは、ＱＰＰインターリーブ方式の逆方向に対応したインターリーブアドレス生成時に以下の処理を行う。
【００５８】
第１乃至第４の主加算・減算選択回路１２ａ、１２ｂ、１２ｃ、１２ｄでは、減算処理が行われる。この減算処理の際に、第１および２の主加算・減算選択回路１２ａおよび１２ｂ、第３および第４の主加算・減算選択回路１２ｃおよび１２ｄは、図１に示すようにキャリーチェーンで接続されている。第１の主加算・減算選択回路１２ａの演算結果が０より小さくなった場合に、そのキャリー信号が、第２の主加算・減算選択回路１２ｂへ伝播される。同様に、第３の主加算・減算選択回路１２ｃの演算結果が０より小さくなった場合に、そのキャリー信号が、第４の主加算・減算選択回路１２ｄへ伝播される。
【００５９】
第１乃至第４の副加算・減算選択回路１３ａ、１３ｂ、１３ｃ、１３ｄでは、加算処理が行われる。第１乃至第４の比較・選択回路１４ａ、１４ｂ、１４ｃ、１４ｄは、第１乃至第４の主加算・減算選択回路１２ａ、１２ｂ、１２ｃ、１２ｄの結果が正であった場合は、第１乃至第４の主加算・減算選択回路１２ａ、１２ｂ、１２ｃ、１２ｄの結果を出力し、負であった場合は、第１乃至第４の副加算・減算選択回路１３ａ、１３ｂ、１３ｃ、１３ｄの結果を出力する。
【００６０】
第１乃至第４の中間値生成部１０ａ、１０ｂ、１０ｃ、１０ｄは、順方向時の動作と同様に、２つのグループに分けられる。それぞれのグループは、パイプライン状に接続されており、図２のタイミングで動作を行う。
【００６１】
つまり、まず、Γ値を生成する第１および第２の中間値生成部１０ａ、１０ｂが動作し、得られた結果をインターリーブアドレス出力用のグループに属する第３および第４の中間値生成部１０ｃ、１０ｄが受け取り、インターリーブアドレスを生成する。こうすることで、インタコネクトパラメータとメモリバンク用物理アドレスとを得ることができる。
【００６２】
ＡＲＰインターリーブ方式の順方向に対応するインターリーブアドレス生成処理を行う場合の動作について説明する。
【００６３】
インターリーブアドレスを生成する前と生成中に、インターリーブ用のパラメータが第１乃至第４のパラメータ入力部１１ａ、１１ｂ、１１ｃ、１１ｄに入力される。入力されるインターリーブパラメータは、コード長Ｎと、インターリーブ用初期パラメータＰ0,Ｑ0,Ｑ1,Ｑ2,Ｑ3である。このとき、コード長Ｎとインターリーブ用初期パラメータＰ0,Ｑ0,Ｑ1,Ｑ2,Ｑ3とは、予めサブウィンドウ数ｐに応じて、インターリーブ用のパラメータ（Ｎ_i, Ｐ0_i, Ｑ0_i, Ｑ1_i, Ｑ2_i, Ｑ3_i）と、複数のメモリバンク用の物理アドレス（Ｎ_a, Ｐ0_a, Ｑ0_a, Ｑ1_a, Ｑ2_a, Ｑ3_a）とに分離しておく。複数のメモリバンク用の物理アドレス（Ｎ_a, Ｐ0_a, Ｑ0_a, Ｑ1_a, Ｑ2_a, Ｑ3_a）は、第１および第２のパラメータ入力部１１ａ、１１ｂに供給され、インターリーブ用のパラメータ（Ｎ_i, Ｐ0_i, Ｑ0_i, Ｑ1_i, Ｑ2_i, Ｑ3_i）は、第３および第４のパラメータ入力部１１ｃ、１１ｄに供給される。
【００６４】
第１乃至第４の中間値生成部１０ａ、１０ｂ、１０ｃ、１０ｄに含まれる演算ブロックそれぞれは、ＡＲＰインターリーブ方式の順方向に対応するインターリーブアドレス生成時に以下の処理を行う。
【００６５】
第１乃至第４の主加算・減算選択回路１２ａ、１２ｂ、１２ｃ、１２ｄでは、加算処理が行われる。この加算処理の際に、第１および第２の主加算・減算選択回路１２ａおよび１２ｂ、第３および第４の主加算・減算選択回路１２ｃおよび１２ｄは、図１に示すようにキャリーチェーンで接続されている。第１の主加算・減算選択回路１２ａの演算結果が所定値Ｎ_aより大きくなった場合に、そのキャリー信号が、第２の主加算・減算選択回路１２ｂへ伝播される。同様に、第３の主加算・減算選択回路１２ｃの演算結果が所定値Ｎ_aより大きくなった場合に、そのキャリー信号が、第４の主加算・減算選択回路１２ｄへ伝播される。
【００６６】
第１乃至第４の副加算・減算選択回路１３ａ、１３ｂ、１３ｃ、１３ｄでは、減算処理が行われる。第１乃至第４の比較・選択回路１４ａ、１４ｂ、１４ｃ、１４ｄは、第１乃至第４の副加算・減算選択回路１３ａ、１３ｂ、１３ｃ、１３ｄの結果が正であった場合は、第１乃至第４の副加算・減算選択回路１３ａ、１３ｂ、１３ｃ、１３ｄの結果を出力し、負であった場合は、第１乃至第４の主加算・減算選択回路１２ａ、１２ｂ、１２ｃ、１２ｄの結果を出力する。
【００６７】
第１乃至第４の中間値生成部１０ａ、１０ｂ、１０ｃ、１０ｄは、ＱＰＰインターリーブ方式時と同様に２つのグループに分けられ、パイプライン状に接続され、図３のタイミングで動作を行う。
【００６８】
ＱＰＰインターリーブ方式時と異なるところは、パラメータの入力タイミングである。ＡＲＰインターリーブ方式の場合、入力が必要なパラメータが、Ｎ以外に５つ（Ｐ0,Ｑ0,Ｑ1,Ｑ2,Ｑ3）存在し、その入力タイミングは、図３に示すようにローテーションしながらＱ0,Ｑ1,Ｑ2,Ｑ3を出力する必要がある。このような動作をすることで、インタコネクトパラメータとメモリバンク用物理アドレスとを得ることができる。
【００６９】
ＡＲＰインターリーブ方式の逆方向に対応するインターリーブアドレス生成処理を行う場合の動作について説明する。
【００７０】
インターリーブアドレスを生成する前と生成中に、インターリーブ用のパラメータが第１乃至第４のパラメータ入力部１１ａ、１１ｂ、１１ｃ、１１ｄに入力される。入力されるインターリーブパラメータは、コード長Ｎと、インターリーブ用初期パラメータＰ0,Ｑ0,Ｑ1,Ｑ2,Ｑ3である。このとき、コード長Ｎとインターリーブ用初期パラメータＰ0,Ｑ0,Ｑ1,Ｑ2,Ｑ3とは、予めサブウィンドウ数ｐに応じて、インターリーブ用のパラメータ（Ｎ_i, Ｐ0_i, Ｑ0_i, Ｑ1_i, Ｑ2_i, Ｑ3_i）と、複数のメモリバンク用の物理アドレス（Ｎ_a, Ｐ0_a, Ｑ0_a, Ｑ1_a, Ｑ2_a, Ｑ3_a）とに分離しておく。複数のメモリバンク用の物理アドレス（Ｎ_a, Ｐ0_a, Ｑ0_a, Ｑ1_a, Ｑ2_a, Ｑ3_a）は、第１および第２のパラメータ入力部１１ａ、１１ｂに供給され、インターリーブ用のパラメータ（Ｎ_i, Ｐ0_i, Ｑ0_i, Ｑ1_i, Ｑ2_i, Ｑ3_i）は、第３および第４のパラメータ入力部１１ｃ、１１ｄに供給される。
【００７１】
第１乃至第４の中間値生成部１０ａ、１０ｂ、１０ｃ、１０ｄに含まれる演算ブロックそれぞれは、ＡＲＰインターリーブ方式の逆方向に対応するインターリーブアドレス生成時に以下の処理を行う。
【００７２】
第１乃至第４の主加算・減算選択回路１２ａ、１２ｂ、１２ｃ、１２ｄでは、減算処理が行われる。この減算処理の際に、第１および第２の主加算・減算選択回路１２ａおよび１２ｂ、第３および第４の主加算・減算選択回路１２ｃおよび１２ｄは、図１に示すようにキャリーチェーンで接続される。第１の主加算・減算選択回路１２ａの演算結果が０より小さくなった場合に、そのキャリー信号が、第２の主加算・減算選択回路１２ｂへ伝播される。同様に、第３の主加算・減算選択回路１２ｃの演算結果が０より小さくなった場合に、そのキャリー信号が、第４の主加算・減算選択回路１２ｄへ伝播される。
【００７３】
第１乃至第４の副加算・減算選択回路１３ａ、１３ｂ、１３ｃ、１３ｄでは、加算処理が行われる。第１乃至第４の比較・選択回路１４ａ、１４ｂ、１４ｃ、１４ｄは、第１乃至第４の主加算・減算選択回路１２ａ、１２ｂ、１２ｃ、１２ｄの結果が正であった場合は、第１乃至第４の主加算・減算選択回路１２ａ、１２ｂ、１２ｃ、１２ｄの結果を出力し、負であった場合は、第１乃至第４の副加算・減算選択回路１３ａ、１３ｂ、１３ｃ、１３ｄの結果を出力する。
【００７４】
第１乃至第４の中間値生成部１０ａ、１０ｂ、１０ｃ、１０ｄは、ＱＰＰインターリーブ方式時と同様に２つのグループに分けられ、パイプライン状に接続され、順方向時と同様のタイミングで動作を行う。
【００７５】
ＱＰＰインターリーブ方式時と異なるところは、パラメータの入力タイミングである。ＡＲＰインターリーブ方式の場合、入力が必要なパラメータが、Ｎ以外に５つ（Ｐ0,Ｑ0,Ｑ1,Ｑ2,Ｑ3）存在し、その入力タイミングは、図３に示すようにローテーションしながら順方向とは逆順にＱ3,Ｑ2,Ｑ1,Ｑ0の順で出力する必要がある。このような動作をすることで、インタコネクトパラメータとメモリバンク用物理アドレスとを得ることができる。
【００７６】
上述から明らかなように、インターリーブアドレス生成回路１０において、第１の中間値生成部１０ａは、複数のデータ格納手段（４１−１〜４１−ｎ）に与えるアドレスを生成するために必要な中間値を生成する第１の中間値生成手段（１０ａ）として働く。第２の中間値生成部１０ｂは、第１の中間値生成手段（１０ａ）から得られた値から複数のデータ格納手段（４１−１〜４１−ｎ）に与えるアドレスを生成する第２の中間値生成手段（１０ｂ）として働く。第３の中間値生成部１０ｃは、データ列変換手段（４２）に与えるパラメータを生成するために必要な中間値を生成する第３の中間値生成手段（１０ｃ）として働く。第４の中間値生成部１０ｄは、第３の中間値生成手段（１０ｃ）から得られた値からデータ変換手段（４２）に与えるパラメータを生成する第４の中間値生成手段（１０ｄ）として働く。そして、第１乃至第４の中間値生成手段（１０ａ〜１０ｄ）は、順方向および逆方向に対応したインターリーブアドレスを生成可能に構成されている。
【００７７】
第１および第２のパラメータ入力部１１ａ、１１ｂは、アドレス生成用の初期パラメータを、第１および第２の中間値生成手段（１０ａ，１０ｂ）へそれぞれ供給するための第１および第２のパラメータ入力手段（１１ａ，１１ｂ）として働く。第３および第４のパラメータ入力部１１ｃ、１１ｄは、パラメータ生成用の初期パラメータを、第３および第４の中間値生成手段（１０ｃ，１０ｄ）へそれぞれ供給するための第３及び第４のパラメータ入力手段（１１ｃ，１１ｄ）として働く。
【００７８】
また、第１乃至第４の中間値生成手段（１０ａ，１０ｂ，１０ｃ，１０ｄ）の各々は、加算と減算処理が選択可能な主加算・減算選択回路（１２ａ，１２ｂ，１２ｃ，１２ｄ）と、加算と減算処理が選択可能な副加算・減算選択回路（１３ａ，１３ｂ，１３ｃ，１３ｄ）と、主加算・減算選択回路および副加算・減算選択回路から出力された２つの値のうち、選択された１つの値が正の場合は、選択されたほうの値を出力し、選択された１つの値が負の場合は選択されていないほうの値を出力する比較・選択回路（１４ａ，１４ｂ，１４ｃ，１４ｄ）と、を備える。
【００７９】
第２および第４の中間値生成手段（１０ｂ，１０ｄ）の主加算・減算選択回路（１２ｂ，１２ｄ）は、それぞれ、第１および第３の中間値生成手段(１０ａ，１０ｃ)の主加算・減算選択回路(１２ａ，１２ｃ)からのキャリー信号を受けて加算または減算処理を行う。第１および第３の中間値生成手段(１０ａ，１０ｃ)の主加算・減算選択回路(１２ａ，１２ｃ)は、加算時に得られた結果が所定の値（Ｎ_a）よりも大きかった場合、キャリー信号を出力し、減算時に得られた結果がゼロよりも小さかった場合、キャリー信号を出力する。
【００８０】
順方向に対応したインターリーブアドレスを生成する場合、主加算・減算選択回路（１２ａ，１２ｂ，１２ｃ，１２ｄ）は加算処理を行い、副加算・減算選択回路（１３ａ，１３ｂ，１３ｃ，１３ｄ）は減算処理を行う。
【００８１】
逆方向に対応したインターリーブアドレスを生成する場合、主加算・減算選択回路（１２ａ，１２ｂ，１２ｃ，１２ｄ）は減算処理を行い、副加算・減算選択回路（１３ａ，１３ｂ，１３ｃ，１３ｄ）は加算処理を行う。
【００８２】
次に、第１の実施形態の効果について説明する。
【００８３】
第１の実施形態によるインターリーブアドレス生成回路１０では、マルチコア型ターボ復号処理装置４０に具備する単一のアドレス生成装置により、ＱＰＰ、ＡＲＰの順方向および逆方向に対応するインターリーブアドレスを生成することができる。また、インターリーブアドレス生成回路１０により、インターリーブアドレスを、生成されるメモリバンク用パラメータと物理アドレスとにあらかじめ分離しておく方式をとっているので、関連するインターリーブアドレス生成器３０（図９）で必要であったモジュロ・除算器３７が不要となる。関連するインターリーブアドレス生成器３０（図９）と比較して、インターリーブアドレス生成回路１０では、逆順のインターリーブアドレスを格納する分のメモリと、インタコネクトパラメータとメモリバンクに対する物理アドレスとを生成するためのモジュロ・除算器分の回路量とを削減することができる。
【００８４】
［第２の実施形態］
次に、本発明の第２の実施形態について図面を参照して詳細に説明する。
【００８５】
第２の実施形態は、第１の実施形態の変形である。第１の実施形態との違いは、次の通りである。第１の実施形態においては、インタコネクトパラメータ用インターリーブアドレス生成処理と、複数のメモリバンク用物理アドレス向けインターリーブアドレス生成処理とを分割して処理していた。これに対して、第２の実施形態では、従来方式と同様にまず、２つの中間値生成回路を用いてインターリーブアドレスを生成してから、インタコネクトパラメータとメモリバンク用物理アドレスとを得る構成をしている点である。
【００８６】
復号対象（データ列）のコード長Ｎが限定的に２のべき乗である場合、モジュロや除算を使用せずに、ビットの分割のみでインタコネクトパラメータとメモリバンク用物理アドレスとを分離できるので、回路規模の負担が少ない利点がある。
【００８７】
まず、前提として、本発明の第２の実施形態に係るインターリーブアドレス生成回路は、図８に示すような、マルチコア型ターボ復号処理装置４０のアドレス生成部４４として実施される。
【００８８】
マルチコア型ターボ復号処理装置４０は、第１乃至第ｎのメモリバンク部４１−１〜４１−ｎと、インタコネクト部４２と、第１乃至第ｎのターボ復号処理部４３−１〜４３−ｎと、アドレス生成部４４とを含む。
【００８９】
第１乃至第ｎのメモリバンク部４１−１〜４１−ｎは、ターボ復号対象データ（以下、「入力データ」と呼ぶ）や、復号結果を格納するために使用される。インタコネクト部４２は、第１乃至第ｎのメモリバンク部４１−１〜４１−ｎと、第１乃至第ｎのターボ復号処理部４３−１〜４３−ｎと、に接続される。インタコネクト部４２内部の接続構成を変更し、第１乃至第ｎのメモリバンク部４１−１〜４１−ｎと、第１乃至第ｎのターボ復号処理部４３−１〜４３−ｎとの接続構成を制御する。第１乃至第ｎのターボ復号処理部４３−１〜４３−ｎは、実際のターボ復号処理を行う。アドレス生成部４４は、第１乃至第ｎのメモリバンク部４１−１〜４１−ｎへの物理アドレスと、インタコネクト部４２への接続変更を行うパラメータとを生成する。
【００９０】
すなわち、マルチコア型ターボ復号処理装置４０において、第１乃至第ｎのメモリバンク部４１−１〜４１−ｎは、複数のデータ格納手段（４１−１〜４１−ｎ）として働く。インタコネクト部４２は、複数のデータ格納手段（４１−１〜４１−ｎ）からデータを受け取り、データ列のデータ順を変換するデータ列変換手段（４２）として動作する。第１乃至第ｎのターボ復号処理部４３−１〜４３−ｎは、データ列変換手段（４２）からデータを受け取り、ターボ復号処理を行う複数のターボ復号処理手段（４３−１〜４３−ｎ）として働く。そして、アドレス生成部４４は、複数のデータ格納手段（４１−１〜４１−ｎ）に与えるアドレスと、データ列変換手段（４２）に与えるパラメータとを生成するアドレス生成手段（４４）として動作する。
【００９１】
図４を参照して、上記アドレス生成部４４として使用される、本発明の第２の実施形態に係るインターリーブアドレス生成回路２０について説明する。
【００９２】
図４に示すように、インターリーブアドレス生成回路２０は、第１および第２の中間値生成部２０ａ、２０ｂから構成される。第１および第２の中間値生成部２０ａ、２０ｂは、それぞれ、後述する選択回路を介して、第１および第２のパラメータ入力部２１ａ、２１ｂに接続される。第１および第２の中間値生成部２０ａ、２０ｂは、それぞれ、第１および第２の主加算・減算選択回路２２ａ、２２ｂと、第１および第２の副加算・減算選択回路２３ａ、２３ｂと、第１および第２の比較・選択回路２４ａ、２４ｂと、第１および第２のレジスタ２５ａ、２５ｂとを含む。
【００９３】
第１のパラメータ入力部２１ａの出力端と第１の中間値生成部２０ａの入力端との間には、１つの選択回路２６ａが設けられている。選択回路２６ａは、第１のパラメータ入力部２１ａから出力される第１の初期パラメータと第１の中間値生成部２０ａの出力信号との一方を選択し、選択した信号を第１の主加算・減算選択回路２２ａの第１の入力端子へ供給している。第１の主加算・減算選択回路２２ａの第２の入力端子には、第１のパラメータ入力部２１ａから第２の初期パラメータが供給される。第１の主加算・減算選択回路２２ａの出力信号は、第１の副加算・減算選択回路２３ａの第１の入力端子と、第１の比較・選択回路２４ａの第１の入力端子とに供給される。第１の副加算・減算選択回路２３ａの第２の入力端子には、第１のパラメータ入力部２１ａから第３の初期パラメータが供給される。第１の副加算・減算選択回路２３ａの出力信号は、第１の比較・選択回路２４ａの第２の入力端子に供給される。第１の比較・選択回路２４ａの出力信号は、第１のレジスタ２５ａに保持される。この第１のレジスタ２５ａに保持された信号は、第１の中間値生成部２０ａの出力信号として出力される。
【００９４】
第２のパラメータ入力部２１ｂの出力端と第２の中間値生成部２０ｂの入力端との間には、２つの選択回路１６ｂ１、１６ｂ２が設けられている。選択回路２６ｂ１は、第２のパラメータ入力部２１ｂから出力される第１の初期パラメータと第２の中間値生成部２０ｂの出力信号との一方を選択し、選択した信号を第２の主加算・減算選択回路２２ｂの第１の入力端子へ供給している。選択回路２６ｂ２は、第２のパラメータ入力部２１ｂから出力される第２の初期パラメータと第１の中間値生成部１０ａの出力信号との一方を選択し、選択した信号を第２の主加算・減算選択回路２２ｂの第２の入力端子へ供給している。第２の主加算・減算選択回路２２ｂの出力信号は、第２の副加算・減算選択回路２３ｂの第１の入力端子と、第２の比較・選択回路２４ｂの第１の入力端子とに供給される。第２の副加算・減算選択回路２３ｂの第２の入力端子には、第１のパラメータ入力部２１ａから第３の初期パラメータが供給される。第２の副加算・減算選択回路２３ｂの出力信号は、第２の比較・選択回路２４ｂの第２の入力端子に供給される。第２の比較・選択回路２４ｂの出力信号は、第２のレジスタ２５ｂに保持される。この第２のレジスタ２５ｂに保持された信号は、第２の中間値生成部２０ｂの出力信号として出力される。
【００９５】
このように、インターリーブアドレス生成回路２０は、順方向に対応したインターリーブドアドレスばかりでなく、逆方向に対応したインターリーブドアドレスも生成可能なように演算部分を変更した中間値生成ブロック（２０ａ、２０ｂ）を具備する。
【００９６】
これらはそれぞれ次のように動作する。
【００９７】
説明の簡単化のため、前提として本発明の第２の実施形態に係るインターリーブアドレス生成回路２０は、前述したマルチコア型ターボ復号処理装置４０に含まれる第１乃至第ｎのメモリバンク部４１−１〜４１−ｎの内のひとつのメモリバンク部と、インタコネクト部４２とに接続されるとする。すなわち、本発明の第２の実施形態に係るインターリーブアドレス生成回路２０は、１つ分のメモリバンク部への物理アドレスと、１つ分のメモリバンク部とターボ復号処理部との接続を表したインタコネクト部４２への接続パラメータと、を供給することとする。
【００９８】
初めに、ＱＰＰインターリーブ方式の順方向に対応したインターリーブアドレス生成処理を行う場合の動作について説明する。
【００９９】
インターリーブアドレスを生成する前に、インターリーブ用の初期パラメータが第１および第２のパラメータ入力部２１ａ、２１ｂに入力される。入力されるインターリーブパラメータは、コード長Ｎと、インターリーブ用初期パラメータ 2*f2である。
【０１００】
第１および第２の中間値生成部２０ａ、２０ｂに含まれる演算ブロックそれぞれは、ＱＰＰインターリーブ方式の順方向に対応したインターリーブアドレス生成時に以下の処理を行う。
【０１０１】
第１および第２の主加算・減算選択回路２２ａ、２２ｂでは、加算処理が行われる。第１および第２の副加算・減算選択回路２３ａ、２３ｂでは、減算処理が行われる。第１および第２の比較・選択回路２４ａ、２４ｂでは、第１および第２の副加算・減算選択回路２３ａ、２３ｂの結果が正であった場合、第１および第２の副加算・減算選択回路２３ａ、２３ｂの結果を選択し、負であった場合は、第１および第２の主加算・減算選択回路２２ａ、２２ｂの結果を選択する処理が行われる。
【０１０２】
第１および第２の中間値生成部２０ａ、２０ｂは、それぞれ、Γ値生成用と、インターリーブアドレス出力用とに分けられる。第１および第２の中間値生成部２０ａ、２０ｂはパイプライン状に接続され、図５のようなタイミングで動作する。つまり、まず、Γ値を生成する第１の中間値生成部２０ａが動作し、得られた結果をインターリーブアドレス出力用の第２の中間値生成部２０ｂが受け取り、インターリーブアドレスを生成する。
【０１０３】
その後、セパレータ２７により、インターリーブアドレスは、インタコネクトパラメータと、メモリバンク用物理アドレスとに分離される。こうすることにより、インタコネクトパラメータとメモリバンク用物理アドレスとを得ることができる。
【０１０４】
次に、ＱＰＰインターリーブ方式の逆方向に対応したインターリーブアドレス生成処理を行う場合の動作について説明する。
【０１０５】
インターリーブアドレスを生成する前に、インターリーブ用パラメータが第１および第２のパラメータ入力部２１ａ、２１ｂに入力される。入力されるインターリーブ用パラメータは、コード長Ｎと、インターリーブ用初期パラメータ2*f2である。
【０１０６】
第１および第２の中間値生成部２０ａ、２０ｂに含まれる演算ブロックそれぞれは、ＱＰＰインターリーブ方式の逆方向に対応したインターリーブアドレス生成時に以下の処理を行う。
【０１０７】
第１および第２の主加算・減算選択回路２２ａ、２２ｂでは、減算処理が行われる。第１および第２の副加算・減算選択回路２３ａ、２３ｂでは、加算処理が行われる。第１および第２の比較・選択回路２４ａ、２４ｂは、第１および第２の主加算・減算選択回路２２ａ、２２ｂの結果が正であった場合は、第１および第２の加算・減算選択回路２２ａ、２２ｂの結果を出力し、負であった場合は、第１および第２の副加算・減算選択回路２３ａ、２３ｂの結果を出力する。
【０１０８】
第１および第２の中間値生成部２０ａ、２０ｂは、順方向時の動作と同様に２つの役割が与えられる。それぞれの第１および第２の中間値生成部２０ａ、２０ｂは、パイプライン状に接続されており、図５のタイミングで動作を行う。つまり、まず、Γ値を生成する第１の中間値生成部２０ａが動作し、得られた結果をインターリーブアドレス出力用の第２の中間値生成部２０ｂが受け取り、インターリーブアドレスを生成する。
【０１０９】
得られたインターリーブアドレスは、セパレータ２７に入力され、インタコネクトパラメータと、メモリバンク用物理アドレスとに分離される。こうすることで、インタコネクトパラメータとメモリバンク用物理アドレスとを得ることができる。
【０１１０】
ＡＲＰインターリーブ方式の順方向に対応するインターリーブアドレス生成処理を行う場合の動作について説明する。
【０１１１】
インターリーブアドレスを生成する前と生成中に、インターリーブ用のパラメータが第１および第２のパラメータ入力部２１ａ、２１ｂに入力される。入力されるインターリーブ用パラメータは、コード長Ｎと、インターリーブ用初期パラメータＰ0,Ｑ0,Ｑ1,Ｑ2,Ｑ3である。
【０１１２】
第１および第２の中間値生成部２０ａ、２０ｂに含まれる演算ブロックそれぞれは、ＡＲＰインターリーブ方式の順方向に対応するインターリーブアドレス生成時に以下の処理を行う。
【０１１３】
第１および第２の主加算・減算選択回路２２ａ、２２ｂでは、加算処理が行われる。第１および第２の副加算・減算選択回路２３ａ、２３ｂでは、減算処理が行われる。第１および第２の比較・選択回路２４ａ、２４ｂは、第１および第２の副加算・減算選択回路２３ａ、２３ｂの結果が正であった場合は、第１および第２の副加算・減算選択回路２３ａ、２３ｂの結果を出力し、負であった場合は、第１および第２の主加算・減算選択回路２２ａ、２２ｂの結果を出力する。
【０１１４】
第１および第２の中間値生成部２０ａ、２０ｂは、ＱＰＰインターリーブ方式時と同様にパイプライン状に接続され、図６のタイミングで動作を行う。
【０１１５】
ＱＰＰインターリーブ方式時と異なるところは、パラメータの入力タイミングである。ＡＲＰインターリーブ方式の場合、入力が必要なパラメータが、Ｎ以外に５つ（Ｐ0,Ｑ0,Ｑ1,Ｑ2,Ｑ3）存在し、その入力タイミングは、図６に示すように，ローテーションしながらＱ0,Ｑ1,Ｑ2,Ｑ3を出力する必要がある。
【０１１６】
第２の中間値生成回路２０ｂから得られたインターリーブアドレスは、セパレータ２７に入力され、インタコネクトパラメータと、メモリバンク用物理アドレスとに分離される。このような動作をすることで、インタコネクトパラメータとメモリバンク用物理アドレスとを得ることができる。
【０１１７】
ＡＲＰインターリーブ方式の逆方向に対応するインターリーブアドレス生成処理を行う場合の動作について説明する。
【０１１８】
インターリーブアドレスを生成する前と生成中に、インターリーブ用のパラメータが第１および第２のパラメータ入力部２１ａ、２１ｂに入力される。入力されるインターリーブ用パラメータは、コード長Ｎと、インターリーブ用初期パラメータＰ0,Ｑ0,Ｑ1,Ｑ2,Ｑ3である。
【０１１９】
第１および第２の中間値生成部２０ａ、２０ｂに含まれる演算ブロックそれぞれは、ＡＲＰインターリーブ方式の逆方向に対応するインターリーブアドレス生成時に以下の処理を行う。
【０１２０】
第１および第２の主加算・減算選択回路２２ａ、２２ｂでは、減算処理が行われる。第１および第２の副加算・減算選択回路２３ａ、２３ｂでは、加算処理が行われる。第１および第２の比較・選択回路２４ａ、２４ｂは、第１および第２の主加算・減算選択回路２２ａ、２２ｂの結果が正であった場合は、第１および第２の主加算・減算選択回路２２ａ、２２ｂの結果を出力し、負であった場合は、第１および第２の副加算・減算選択回路２３ａ、２３ｂの結果を出力する。
【０１２１】
第１および第２の中間値生成部２０ａ、２０ｂは、ＱＰＰインターリーブ方式時と同様にパイプライン状に接続され、ＡＲＰインターリーブ方式の順方向時と同様のタイミングで動作を行う。ＱＰＰインターリーブ方式時と異なるところは、パラメータの入力タイミングである。ＡＲＰインターリーブ方式の場合、入力が必要なパラメータが、Ｎ以外に５つ（Ｐ0,Ｑ0,Ｑ1,Ｑ2,Ｑ3）存在し、その入力タイミングは、図６に示すようにローテーションしながら順方向とは逆順にＱ3,Ｑ2,Ｑ1,Ｑ0の順で出力する必要がある。
【０１２２】
第２の中間値生成回路２０ｂから得られたインターリーブアドレスは、セパレータ２７に入力され、インタコネクトパラメータと、メモリバンク用物理アドレスとに分離される。このような動作をすることで、インタコネクトパラメータとメモリバンク用物理アドレスとを得ることができる。
【０１２３】
上述から明らかなように、インターリーブアドレス生成回路２０において、第１および第２の中間値生成回路２０ａ、２０ｂは、それぞれ、第１および第２の中間値生成手段（２０ａ，２０ｂ）として働く。セパレータ２７は、アドレス・パラメータ分離手段（２７）として働く。
【０１２４】
第１の中間値生成手段（２０ａ）は、アドレス・パラメータ分離手段（２７）の入力データを生成するために必要な中間値を生成する。第２の中間値生成手段（２０ｂ）は、第１の中間値生成手段（２０ａ）から得られた値からアドレス・パラメータ分離手段（２７）の入力データを生成する。第１および第２の中間値生成手段（２０ａ，２０ｂ）は、順方向および逆方向に対応したインターリーブアドレスを生成可能に構成されている。アドレス・パラメータ分離手段（２７）は、第２の中間値生成手段（２０ｂ）から得られた値を基に、複数のデータ格納手段（４１−１〜４１−ｎ）に与えるアドレスとデータ列変換手段（４２）に与えるパラメータとを生成する。
【０１２５】
データ列のコード長（Ｎ）は、２のべき乗であることが好ましい。
【０１２６】
また、第１および第２の中間値生成手段（２０ａ，２０ｂ）の各々は、加算と減算処理が選択可能な主加算・減算選択回路（２２ａ，２２ｂ）と、加算と減算処理が選択可能な副加算・減算選択回路（２３ａ，２３ｂ）と、主加算・減算選択回路および副加算・減算選択回路から出力された２つの値のうち、選択された１つの値が正の場合は、選択されたほうの値を出力し、選択された１つの値が負の場合は選択されていないほうの値を出力する比較・選択回路（２４ａ，２４ｂ）と、を備える。
【０１２７】
順方向に対応したインターリーブアドレスを生成する場合、主加算・減算選択回路（２２ａ，２２ｂ）は加算処理を行い、副加算・減算選択回路（２３ａ，２３ｂ）は減算処理を行う。
【０１２８】
逆方向に対応したインターリーブアドレスを生成する場合、主加算・減算選択回路（２２ａ，２２ｂ）は減算処理を行い、副加算・減算選択回路（２３ａ，２３ｂ）は加算処理を行う。
【０１２９】
次に、第２の実施形態の効果について説明する。
【０１３０】
第２の実施形態によるインターリーブアドレス生成回路２０では、マルチコア型ターボ復号処理装置４０に具備する単一のアドレス生成装置により、ＱＰＰ、ＡＲＰの順方向および逆方向に対応したインターリーブアドレスを生成することができる。関連するインターリーブアドレス生成器３０（図９）と比較して、インターリーブアドレス生成回路２０では、逆順のインターリーブアドレスを格納する分のメモリを削減することができる。
【産業上の利用可能性】
【０１３１】
本発明によれば、無線通信システム内部の誤り訂正処理装置、特にターボ復号装置といった用途に適用できる。
【符号の説明】
【０１３２】
１０    インターリーブアドレス生成回路
１０ａ〜１０ｄ    中間値生成部（中間値生成手段）
１１ａ〜１１ｄ    パラメータ入力部（パラメータ入力手段）
１２ａ〜１２ｄ    主加算・減算選択回路
１３ａ〜１３ｄ    副加算・減算選択回路
１４ａ〜１４ｄ    比較・選択回路
２０    インターリーブアドレス生成回路
２０ａ、２０ｂ    中間値生成部（中間値生成手段）
２２ａ、２２ｂ    主加算・減算選択回路
２３ａ、２３ｂ    副加算・減算選択回路
２４ａ、２４ｄ    比較・選択回路
４０    マルチコア型ターボ復号処理装置
４１−１〜４１−ｎ    メモリバンク部（データ格納手段）
４２    インタコネクト部（データ列変換手段）
４３−１〜４３−ｎ    ターボ復号処理部（ターボ復号処理手段）
４４    アドレス生成部（アドレス生成手段）
【図１】
2014506022.tif 000007
【図２】
2014506022.tif 000008
【図３】
2014506022.tif 000009
【図４】
2014506022.tif 000010
【図５】
2014506022.tif 000011
【図６】
2014506022.tif 000012
【図７】
2014506022.tif 000013
【図８】
2014506022.tif 000014
【図９】
2014506022.tif 000015
【国際調査報告】
2014506022.tif 000016
2014506022.tif 000017
2014506022.tif 000018