(57)【特許請求の範囲】
【請求項１】
マルチステージインタリーブのアドレス生成回路において，
最終ステージ，中間ステージ及び第１ステージを含む複数の各ステージがそれぞれ最小単位のインタリーブパターンを保持する保持回路を備え，段階的に順次インタリーブパターンを求めて最終的にアドレッシングしたいデータに対応したインタリーブパターンのアドレスデータを求める複数ステージの演算回路を備え，
前記各ステージの演算回路の最小単位のインタリーブパターンを発生する回路を駆動する各カウンタのクロックを同期させ，１クロックの周期を最終ステージから第１ステージまでの演算回路の処理遅延より大きくし，
前記各ステージのインタリーブパターンを保持する保持回路のアクセス回路とそれぞれの演算回路のクロックを同期させることにより，各段階での演算結果を記憶手段に保持することなく発生することを特徴とするマルチステージインタリーブのアドレスデータ生成回路。
【請求項２】
請求項１において，
前記最終ステージ及び中間ステージでの演算結果が予め規定された値より大きい場合は，その直後にクロックを再送することにより次の値を演算することを特徴とするマルチステージインタリーブのアドレスデータ生成回路。
【請求項３】
マルチステージインタリーブのアドレス生成回路において，
最終ステージ，中間ステージ及び第１ステージを含む複数の各ステージがそれぞれ最小単位のインタリーブパターンを保持する保持回路を備え，段階的に順次インタリーブパターンを求めて最終的にアドレッシングしたいデータに対応したインタリーブパターンのアドレスデータを求める複数ステージの演算回路を備え，
前記中間ステージは，所定数のブランチ部を備え，前記各ブランチ部は設定されたアドレスを表す数値をクロックに応じて発生するカウンタとカウンタの値を保持する保持回路の組み合わせの２組で構成され，各ブランチ部はブランチを指定するカウンタにより順に駆動され，
前記各ステージのインタリーブパターンを保持する保持回路のアクセス回路とそれぞれの演算回路のクロックを同期させることにより，各段階での演算結果を記憶手段に保持することなく発生することを特徴とするマルチステージインタリーブのアドレスデータ生成回路。
【請求項４】
最終ステージ，複数のブランチを備えた中間ステージ及び第１ステージのそれぞれで最小単位のインタリーブパターンを生成して保持する保持回路と複数のアドレスレジスタを備えたディジタルシグナルプロセッサによるマルチステージインタリーブのアドレスデータ生成方法において，
前記各保持回路に前記中間ステージの各ブランチ毎に順にそれぞれ最小単位のインタリーブパターンを先頭アドレスから順次インタリーブして保持し，前記各保持回路に対しそれぞれにアドレスするために前記複数のアドレスレジスタを個別に割り当て，
前記各アドレスレジスタで前記複数の各ステージのそれぞれの前記保持回路にアクセスすることにより各ステージでの演算結果をメモリに保持する必要を無くしたことを特徴とするマルチステージインタリーブのアドレスデータ生成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はマルチステージインタリーブ（ＭＩＬ）のアドレスデータ生成回路とアドレスデータ生成方法に関する。
【０００２】
無線通信装置の技術において，マルチステージインタリーブ（ＭＩＬ：Multi-stage Interleaving) やターボ用ＭＩＬを用いるＷ−ＣＤＭＡ（Wideband-Code Division Multiple Access) システムが注目されており, そのシステムでは最小単位のインタリーブパターン（Pre-defined interleaving pattern: ＰＩＰと略称する場合がある）からＩＰ（interleaving pattern：ＩＰと略称される）を段階的に求める方式が提案されている。
【０００３】
このようなＷ−ＣＤＭＡのＭＩＬやターボ用ＭＩＬを用いてアドレスデータの生成の改善が望まれている。
【０００４】
【従来の技術】
図１８はマルチステージインタリーブ（ＭＩＬ）の説明図である。ＭＩＬは無線通信装置の規格の一つであるＷ−ＣＤＭＡ（ＡＲＩＢ（社団法人電波産業会の電波有効利用促進センター）により提案された規格）で採用されている。この例では，Ａ．に示すように０，１，２，…，１５の各ビット位置からなる１６ビット長のデータの場合であり，このデータを先頭から順に４ビット毎に上の行から下の行に配列する。これにより図１８のＢ．に示すように１６＝４（行）×４（列）のインタリーブが構成される。このＡ．に示す各行を構成する４つの列は２×２のブロックインタリーブにより，列の入れ換えが行われる。すなわち，最上位行の「０，１，２，３」の各ビット位置の列は「０，１」の行と「２，３」の行の２つの行に配列され，これを列方向で先頭列，次の列の順に読み出すと「０，２，１，３」と入れ換えられる。同様の変換をＢ．の各行に対して行うことでＤ．に示す配列が得られる。このＤ．の配列に対し，更に行方向の入れ換えを行い，第２行と第３行を入れ換えるとＥ．に示すような配列が得られる。このＥ．の配列について第１の列の各ビットを上から下へ読み出し，続いて第２列〜第４列の順に同様に読み出すことでＦ．に示すようなインタリーブされたデータが出力される。こうして多段階（マルチステージ）のインタリーブが実行される。これにより，単なるブロックインタリーブに比べて離散距離を大きくすることができる。
【０００５】
図１９はデータ長Ｌビットに対するインタリーブパターンツリーを示す。これは，最終ステージ（Final Stage)であるＺステージで，１つのデータサイズＮZ ビットのＰＩＰ（最小単位のインタリーブパターン）ともう１つのデータサイズのＭZ ビットのＰＩＰより，Ｎ(Z-1) ビットＩＰを生成し，次のステージ（Ｚ−１ステージ）で，データサイズＮ(Z-1) ビットのＩＰと別のデータサイズＭ(Z-1) ビットのＰＩＰとでＩＰを生成する。このようにＮ1 ビットまでＩＰを生成してゆき，第１ステージ（First stage)でＮビットＩＰとＭ1 ビットＩＰを使用してデータ長ＬビットのＩＰを生成する。
【０００６】
以上の演算は，次の式に基づく。
【０００７】
Ｎ(Z-1) ＝ＮZ ×ＭZ に対して，
Ａ(i):ＮZ のＰＩＰリストにおけるｉ番目の要素
Ｂ(i):ＭZ のＰＩＰリストにおけるｉ番目の要素
Ｃ(i):作成されたＮ(Z-1) のＩＰリストにおけるｉ番目の要素と定義し，次の式によりＣ(i) を求める。この中のｉ% ＮZ はｉをＮZ で除算した時の剰余，ｉ/ ＮZ はｉをＮZ で除算した時の商を表す。なお，この演算結果がＮZ-1 以上の場合はキャンセルする。
【０００８】
Ｃ(i) ＝ＭZ ×Ａ（i%ＮZ ) ＋Ｂ(i/ ＮZ )  (i ＝0 〜ＮZ ×ＭZ −１）
図２０はＷ−ＣＤＭＡ方式の一案として提案されているＭＩＬのＰＩＰリストを示す。各インデックス（最小単位のＰＩＰ）に対してインタリーブパターンが図のように決められている。
【０００９】
図２１はデータ長ＬビットのＭＩＬアドレス生成パターンを示す。これは移動通信に使用するインタリーブパターンを発生するためのアドレスデータ生成パターンであり，移動通信の使用条件に応じて異なる。すなわち，物理チャネルの種類（基地局からの報知用に使用するとまり木チャネル，通信エリアであるセル内の制御チャネルである共通物理チャネルの種類，音声やデータを伝送する個別物理チャネル），伝送方向であるリンク（Link) によって異なり，更にエア送受信時のシンボルレート（ksps :キロシンボルパーセコンド，下り１シンボルは２ビットに相当) によって１フレームあたりのデータビット数；Ｌ（bits) のＭＩＬアドレスデータ生成パターン（ＰＩＰの組み合わせ）が一意に決められる。
【００１０】
通常のＭＩＬの場合，符号器（エンコーダ）はたたみ込み符号器を使用し，復号器（デコーダ）はビタビ復号器を使用する。しかし，所用品質を良好に保ちたいデータについてはデータ長を長めに保持してターボ符号，復号器を使用する。その中でターボ用ＭＩＬを使用する。ターボ用ＭＩＬの場合，ターボ符号器とターボ復号器を使用して，データ長が長い場合にも誤り検出・訂正が可能となる。
【００１１】
図２２はデータビット長Ｌに対するターボ用ＭＩＬのパターンツリーであり，７つのブランチとＴ７と呼ばれる基本のＰＩＰとを合わせたアドレスデータ生成パターンによりＬビットのＩＰが得られ，このパターンはチャネルの種類によって異なる。すなわち，ターボ用ＭＩＬのパターンツリーに基づいてブランチ１の最終ステージ（Final stage:Ｚ＝最終ステージの数）において，１つのデータサイズＮ1 Z ビットのＰＩＰともう１つのデータサイズＭ1 Z のＰＩＰとでＩＰを生成し，次のステージ（Ｚ−１ステージ）でデータサイズＮ1 Z-1 ビットのＩＰと別のデータサイズＭ1 Z-1 ビットのＰＩＰとでＩＰを生成する。なお，ＰＩＰのパターンはＲＯＭに予め記憶しておき，これを読み出すことにより得られ，図２３にターボ用ＭＩＬに使用されるＰＩＰを示す。
【００１２】
このように，第１ステージまでＩＰを生成し，同様にブランチ２〜７の処理において，第１ステージ処理前までに合計７種類のＩＰを生成する（Ｍ1 1 ，Ｍ7 1 ）。
【００１３】
ターボＭＩＬＩＰの算出式は，最終(Final) ステージから第２(Second)ステージまでは以下の式に基づく。
【００１４】
Ｃ(i) ＝Ｍ・Ａ(i% Ｎ) ＋Ｂ(i/ Ｎ)            (式１）
但し，Ｍは列ＰＩＰの要素数，Ｎは行ＩＰ（ＰＩＰ）の要素数，Ａ(i) は行ＩＰ（ＰＩＰ）のｉ番目の要素，Ｂ(i) は列ＩＰ（ＰＩＰ）のｉ番目の要素，Ｃ(i) は算出した上位ステージの行ＩＰにおけるｉ番目の要素を表す。
【００１５】
同様に第１（First)ステージでは以下の式に従って最終的なＩＰを算出する。
【００１６】
Ｃ(i) ＝Ｍ・Ａ(i% Ｎ) ＋Ｂi%N (i/ Ｎ)           （式２）
但し，Ｍは列ＩＰの要素数，Ｎは行ＰＩＰ(T7)の要素数（＝７），Ａ(i) は行ＰＩＰ(T7)のｉ番目の要素，Ｂi%N(i)はi%N 番目のブランチの列ＩＰにおけるｉ番目の要素，Ｃ(i) は算出した最終的なＩＰのｉ番目の要素を表す。なお，ブランチ番号は０からカウントする。
【００１７】
図２４は３４８ビットターボ用ＭＩＬのパターンツリーと，アドレスデータ生成パターンを示す。Ａ．に示すようにパターンツリーにより，最終ステージ，第２ステージ，第１ステージの３つのステージを介して３４８ビットのＩＰパターンが得られる。図２４のＢ．はターボ用ＭＩＬの３８４ビットのアドレスデータ生成パターンの例であり，ＤＣＨ(Dedicated Channel) チャネル用に使用されるる。３４８ビットの場合，最終ステージと第２ステージにおいてブランチ１ではＴ７と〔４*3〕で「１０」ビットのＰＩＰのアドレスを発生し，これに「５」を乗算して，「５０」個のＰＩＰのアドレスパターンを生成する。また，第２ブランチでは「８＊７」の組み合わせで「５０」のアドレスパターンを生成し，同様に第３ブランチでは「５＊１１」の組み合わせで「５０」のアドレスパターンを生成し，図２４のＢ．に示すようなパターンが使用される。
【００１８】
このような３４８ビットのターボＭＩＬＩＰ算出の具体例（第２ステージまで）を以下に説明する。この例は図２４のＡ．に示す３４８ビットのターボＭＩＬにおけるブランチ１の最終ステージの例で，各パラメータの値は次のようになる。
【００１９】
Ｍ＝３，Ｎ＝４，Ａ＝｛1,3,0,2 ｝, Ｂ＝｛1,2,0 ｝
ＩＰを算出すると，その一部は以下のようになる。
【００２０】
Ｃ(0) ＝3*A(0%4)＋B(0/4)＝3*1 ＋1 ＝4
Ｃ(1) ＝3*A(1%4)＋B(1/4)＝3*3 ＋1 ＝10
Ｃ(2) ＝3*A(2%4)＋B(2/4)＝3*0 ＋1 ＝ 1
Ｃ(3) ＝3*A(3%4)＋B(3/4)＝3*2 ＋1 ＝ 7
Ｃ(4) ＝3*A(4%4)＋B(4/4)＝3*1 ＋2 ＝ 5
Ｃ(5) ＝3*A(5%4)＋B(5/4)＝3*3 ＋2 ＝11
Ｃ(6) ＝3*A(6%4)＋B(6/4)＝3*0 ＋2 ＝ 2
Ｃ(7) ＝3*A(7%4)＋B(7/4)＝3*2 ＋2 ＝ 8
Ｃ(8) ＝3*A(8%4)＋B(8/4)＝3*1 ＋0 ＝ 3
Ｃ(9) ＝3*A(9%4)＋B(9/4)＝3*3 ＋0 ＝ 9
Ｃ(10)＝3*A(10%4) ＋B(10/4) ＝3*0 ＋0 ＝ 0
Ｃ(11)＝3*A(11%4) ＋B(11/4) ＝3*2 ＋0 ＝ 6
上記の中でＩＰは１０ビット分なので，Ｃ(1) ，Ｃ(5) は削除する。従って，算出されるＩＰは次のようになる。
【００２１】
Ｃ＝｛4,1,7,5,2,8,3,9,0,6 ｝
次に３４８ビットのターボ用ＭＩＬにおける第１ステージのＩＰ算出の具体例を説明する。但し，各パラメータＭ，Ｎ，Ｂ０，Ｂ１，Ｂ２・・Ｂ６は次の通りである。
【００２２】
【数１】
0003905263.tif 000002
【００２３】
ＩＰを算出すると，Ｃ(0),Ｃ(1),Ｃ(2) ・・Ｃ(16)・・は次のようになり,
【００２４】
【数２】
0003905263.tif 000003
【００２５】
以上より算出された最終的なＩＰは次のようになる。
【００２６】
Ｃ＝｛220,50,250,113,317,187,43,205,78,283,139,334,150,0, …｝
上記した３４８ビットのターボＭＩＬＩＰ算出の具体例（第２ステージまで）を実行するための従来のメモリ構成とアドレス更新方法（その１）を図２５により説明する。
【００２７】
上記の第２ステージまでの算出の具体例によれば，行ＰＩＰの要素Ａ(i) が一巡すると，列ＰＩＰの要素Ｂ(i) が更新されており，図２５の▲１▼の初期状態に示すように行，列の各ＰＩＰの要素は演算開始時に各アドレスレジスタを各ＰＩＰアドレスの先頭に配置しておく。この例では行ＰＩＰはＸ０レジスタ，列ＰＩＰはＸ１レジスタでアドレスされる。行ＰＩＰ要素からＸ０レジスタが示す要素を取り出し，列ＰＩＰ要素よりＸ１レジスタが示す要素を取り出し，ＩＰ１ビット分を算出する。ＩＰ１ビットを算出するたびに行ＰＩＰのアドレス（Ｘ０）を一つ更新する。ＩＰを順次算出して，図２５の▲２▼は３ビット算出後の状態を表し，同様にＩＰを算出していき，行ＰＩＰの最後の要素までＩＰ算出に使用すると，４ビット算出後に図２５の▲３▼に示すように行ＰＩＰのアドレスが先頭に戻った時に列ＰＩＰのアドレスを一つ更新する。こうして，各ステージで得られるＩＰは全て算出される。
【００２８】
上記の第１ステージまでの算出の具体例を見ると，行ＰＩＰの要素Ａ(i) を先頭から順に取り出し，列ＩＰを各ブランチの要素を先頭から順に移しながら使用しており，図２６に従来のメモリ構成とアドレス更新方法（その２）を示す。
【００２９】
第１ステージの演算開始時には，図２６の▲１▼に示すようにアドレスレジスタを行ＰＩＰとブランチ♯１の列ＩＰの先頭に配置し，行ＰＩＰはＸ０レジスタ，列ＩＰはＸ１レジスタでアドレッシングする。行ＰＩＰ要素からＸ０レジスタが示す要素を取り出し，列ＩＰ要素からＸ１レジスタが示す要素を取り出し，ＩＰ１ビット分を算出する。ＩＰ１ビットを算出する毎に行ＩＰのアドレス（Ｘ０）を一つ更新し，列ＩＰのアドレスを次のブランチに移す。行ＰＩＰはサイクリックにアドレスを更新し，行ＰＩＰのアドレスが先頭に戻ったら行ＩＰのアドレスをブランチ♯１の未使用の要素で先頭のものに移す。このような操作を繰り返し，算出したＩＰが最終結果になる。
【００３０】
上記のターボ用ＭＩＬのアドレスデータ生成のための構成として従来はハードウェアで実現する場合とＤＳＰ（Digital Signal Processer) を用いたプログラムにより実現する場合があり，それぞれを以下に説明する。
【００３１】
図２７，図２８は従来のターボＭＩＬアドレスデータ生成のハードウェア構成（その１），（その２）を示し，この例は３４８ビットのターボＭＩＬの実現する例であり，８０は７つのブランチを示す７進リングカウンタ，８１は最終(Final) ステージ処理ブロック，８２は第２ステージ処理ブロック，８３は第１ステージ処理ブロックである。
【００３２】
先ず，最終ステージ処理としてクロック（MCLK10) を１２クロック分入力することにより，４ビットＰＩＰＲＯＭと３ビットＰＩＰＲＯＭとで１２ビット分のＩＰが生成され，計算値１０以上はキャンセルされるので，その結果１０ビットＩＰＲＡＭに１０ビット分のアドレスデータが保持される。最終ステージ処理で１０ビットデータ分のアドレスデータがＲＡＭ（第２ステージ処理ブロックに設けられている）。次に第２ステージブランチ１処理として，クロック（MCLK1)を５０クロック入力することにより，１０ビットＰＩＰＲＡＭと５ビットＰＩＰＲＯＭとで５０ビット分のＩＰが生成され，５０ビットＰＩＰＲＡＭ１に保持される。第２ステージブランチ２処理として，クロック（MCLK2)を５６クロック入力することにより，８ビットＰＩＰＲＡＭと７ビットＰＩＰＲＯＭとで５６ビット分のＩＰが生成され，計算値５０以上はキャンセルされるので，その結果５０ビットＩＰＲＡＭ２に５０ビット分のアドレスデータが保持される。以下，同様に第２ステージのブランチ３〜７までそれぞれのクロック（MCLK3 〜7)を入力することにより５０ビットＲＡＭ３〜７にそれぞれ，５０ビット分のアドレスデータが保持される。
【００３３】
その後，第１ステージの処理として，クロック(MCLK20)を７進リングカウンタに入力することにより，Ｑ１〜Ｑ７からＲＡＭ１〜ＲＡＭ７に対して順々に且つサイクリックにクロック(MCLK)が入力されることにより, ＲＡＭ１〜ＲＡＭ７からクロック(MCLK20)に同期して出力される７ビットＰＩＰとでそれぞれ５０ビットＩＰが出力され，その値とクロック(MCLK20)に同期して出力される７ビットＰＩＰとで演算処理を行い，クロック(MCLK20)を３５０個出力するまでに３４８ビット分のアドレスデータが出力される。
【００３４】
図２９は従来のＤＳＰによるターボＭＩＬアドレスデータ生成の処理フローを示し，図３０にＤＳＰのブロック構成を示す。
【００３５】
図３０において，９０はＤＳＰコア部，９１は全体の制御を行うコントロール部，９２はアドレスレジスタＸ０〜Ｘｎから成るアドレス生成部，９３はデータ演算部，９４はバスインタフェース（Ｉ／Ｆ），９５は各基本単位のインタリーブパターン（ＰＩＰ）が格納されたＲＯＭ，９６は途中の演算により得られた演算結果データ（ＰＩＰを示すアドレスやインタリーブパターン（ＩＰ））を格納するＲＡＭ，９７はコントロール部９１の制御のためのプログラムが格納されたＲＯＭ，９８はデータを一時保持するデータレジスタである。
【００３６】
この例も上記の図２７，図２８と同様に３４８ビットのターボＭＩＬを実現する例である。最初に，ブランチ１（Ｙ＝１）の最終ステージ（Ｚ＝最大値）の１ステージ分のＩＰ算出式(1) の処理を行う（図２９のＳ１〜Ｓ３）。このＩＰ算出式(1) の処理（Ｓ３）の詳細は，図３１に示され，行ＰＩＰと列ＰＩＰの各アドレスレジスタ（Ｘ０，Ｘ１とする）を初期設定し（図３１のＳ３０），Ａ，Ｂのパラメータの更新とＣのＩＰ算出式の演算（同Ｓ３１），アドレスレジスタの判別，更新や，算出されたＣの長さのチェック等を行って，条件が合ったＣをメモリ（ＲＡＭ）に保持し（同Ｓ３２〜Ｓ３５），順番に各アドレスについての演算が行われ，所定の個数のＩＰ演算が行われる。１ステージの処理が終了すると，次のステージ（Ｚ＝Ｚ−１）について同様の処理を行って，第１ステージになってブランチ１〜ブランチ６について同様の処理（図２９のＳ２〜Ｓ７）が行われ，ブランチ７になると，第１ステージＩＰ算出式(2) の処理が行われる。
【００３７】
この第１ステージＩＰ算出式(2) の処理の詳細は図３２に示され，行ＰＩＰアドレスレジスタへの初期設定（図２６の▲１▼初期設定におけるＸ０）と列ＩＰアドレスレジスタへの初期設定を行い（図３２のＳ８０），Ａ，Ｂのパラメータの設定と演算式(2) によるＣで表すＩＰの算出を行って（同Ｓ８１），Ｃが設定された値以下の場合は出力して，所定の個数のＩＰが算出される。
【００３８】
このように，ブランチ１〜７の第２ステージまでの演算処理をアドレスレジスタＸ０，Ｘ１の２つを使って行い，各ブランチの第２ステージまでの５０ビットＩＰを計算し，その値はＲＡＭに保持される。次に第１ステージの処理としてアドレスレジスタＸ０〜Ｘ８を使用して，７ビットＰＩＰと各ブランチの５０ビットＩＰより順々にＩＰ演算を行い，演算値が３４８以上の場合はキャンセルして，次のブランチのＩＰとの演算処理を行う，という処理を３５０回繰り返すことにより，３４８ビットＩＰを生成する。これが，インタリーブ後のアドレスデータとなる。このようにして各データに対応して得られた各アドレスデータは，順番にメモリ（ＲＡＭ）のライトアドレスとして送られ，そのアドレスにデータが書き込まれる。そのメモリを先頭から読み出すことでインタリーブパターンに従ったデータが発生する。
【００３９】
【発明が解決しようとする課題】
上記したように無線装置内のマルチステージインタリーブ（ＭＩＬ）回路及びターボ符号器／復号器内で使用するターボ用ＭＩＬ回路のアドレスデータ生成のためのハードウェア構成及びＤＳＰによるプログラムの処理では，何れも各ステージ毎に演算結果を保持していたので，大きな容量のＲＡＭが必要であった。具体的には，３４８ビットターボＭＩＬの例では，最終ステージ，第２ステージ処理でのデータ保持用ＲＡＭを共用化することを考えても３５０ビット分のデータ保持用ＲＡＭが必要となる。
【００４０】
このようなＲＡＭ容量の増大による回路規模の拡大は避けられず，装置の容積が大きくなってしまい，最近の携帯型移動端末装置に対して求められる装置の小型化という要求に答えることができないという問題があった。
【００４１】
本発明は無線通信装置内のＭＩＬアドレスデータ生成回路及びターボ符号器／復号器で使用するターボ用ＭＩＬ回路のアドレスデータ生成の構成において，メモリ容量を削減することにより回路規模を縮小し，装置を小型化することを目的とする。
【００４２】
【課題を解決するための手段】
図１は本発明の原理構成であり，特に本発明をハードウェアにより実現する場合の原理構成である。
【００４３】
図１は最下位（最終）ステージ，中間（第２）ステージ，第１ステージの３つのステージから成る例のマルチステージインタリーブの所定個数のビット分（例えば，３４８ビット分）のアドレスデータを生成する例である。
【００４４】
図１において，１は最終（最下位）ステージ，２は第１ブランチ部２−１，第２ブランチ部２−２，…，第７ブランチ部２−７の７つの各ブランチに対応する構成を備えた中間（第２）ステージ，３は第１ステージ，４は所定のブランチ数（インタリーブビットが３４８ビットの場合は７ブランチ）を指定するブランチカウンタ，５は論理和回路である。最下位ステージ１の１０ａ，１０ｂはそれぞれ異なる設定された行・列のアドレスを表す数値をクロックに応じて発生するカウンタ，１１ａ，１１ｂはそれぞれ前記カウンタ１０ａ，１０ｂのカウント値をアドレスとして対応するＰＩＰ（最小単位のインタリーブパターン）のアドレスを保持する保持回路（ＰＩＰＲＯＭで表示），中間ステージ２の２０ａ，２０ｂはそれぞれ設定された行・列のアドレスを表す数値をクロックに応じて発生するカウンタ，２１ａ，２１ｂは各ブランチの対応する前記カウンタ２０ａ，２０ｂの値をアドレスとして対応するＰＩＰのアドレスを保持する保持回路（ＰＩＰＲＯＭで表示）である。また，第１ステージ３の３０は第１ステージ３に割り当てられた所定の個数のアドレスデータをクロック入力を内臓するカウンタのカウント値に応じてサイクリックに発生する保持回路（ＰＩＰＲＯＭで表示），３１は中間ステージ２の複数の各ブランチ（２−１〜２−７）からの演算結果と第１ステージ３内の保持回路からの出力とを算術的に加算する加算器である。
【００４５】
なお，各ステージのカウンタ１０ａ，１０ｂ，２０ａ，２０ｂはそれぞれ，カウンタ１０ａ，２０ａが設定された所定の個数のクロック（図示省略）をサイクリックにカウントし，各周期毎に発生する出力で対応するカウンタ１０ｂ，２０ｂがカウントを行う。またカウンタ１０ａ，１０ｂ，２０ａ，２０ｂはアドレスがクロックにより更新されるアドレスレジスタにより置き換えることができる。
【００４６】
本発明では，全ての最小単位のインタリーブパターン（ＰＩＰ）の保持回路にカウンタ（アドレスレジスタ）を割り当て演算が出力するまでアドレスを保持し，全てのＰＩＰＲＯＭはサイクリックにアドレスされ，最終（最下位）ステージ１において列ＰＩＰＲＯＭのアドレスは，行ＰＩＰＲＯＭのアドレスが先頭に戻った時に一つ更新し，中間ステージ（第２ステージ２）ではカウンタが０になった時に列ＰＩＰＲＯＭのアドレスを更新する。また，どのステージでもＩＰをひとつだけ算出し，データレジスタで値を保持する。更に，処理中のブランチ／ステージ番号を全て把握し，次のブランチ／ステージへの移行を管理する。これらにより，最終ステージ１から第１ステージ３まで一つのルーチンで処理することができ，途中経過はＩＰ１ビット分だけですむので，従来大量に必要であったメモリ領域をメモリ１ワードだけか，ＤＳＰデータレジスタだけに削減することができる。
【００４７】
最終ステージ１は演算開始前に行，列のＰＩＰの先頭要素を表すようにカウンタ１０ａ，１０ｂを配置（設定）し，アドレスの更新は行ＰＩＰのアドレッシングをサイクリックに行い，先頭に戻った時にＰＩＰのアドレスを更新し，列ＰＩＰもサイクリックにアドレッシングを行う。算出するＩＰは一回につき１データのみで，その結果はレジスタに保持し，そのＩＰを用いて上位ステージのＩＰを計算し，更新したアドレスレジスタはその状態を保持しておく。
【００４８】
その動作を説明すると，ブランチカウンタ４により最初にブランチ１が指定されると，最終ステージ１が駆動され，その時のカウンタ１０ａ，１０ｂの値に対応してＰＩＰＲＯＭ１１ａ，１１ｂからの出力が発生して両出力に対し所定の演算が施されて第１ブランチ部２−１の出力を発生する。この出力は図示省略されたデータレジスタに保持される。この時，中間ステージ２の第１ブランチ部２−１も駆動され，その出力と最終ステージ１からの出力（データレジスタの出力）を加算した結果が論理和回路５を通って図示省略されたデータレジスタに保持され，その出力が第１ステージ３へ入力される。この第１ステージ３では第１ブランチ部２−１からの演算結果（データレジスタの出力）と第１ステージ３内のＰＩＰＲＯＭ３０からの出力とを加算器３１で算術的に加算してマルチステージインタリーブの１ビット分のアドレスデータを発生する。続いて第１ブランチ部２−１の予め決められた複数ビット分のアドレスデータがクロックに同期して順次発生する。
【００４９】
ブランチカウンタ４は第１ブランチ部２−１に対応する予め決められた複数ビット分のクロックをカウントすると，第２ブランチ部２−２を駆動する出力が発生し，中間ステージ２の第２ブランチ部２−２が駆動される。この第２ブランチ部２−２では，内部のカウンタ２０ａ，２０ｂが上記カウンタ１０ａ，１０ｂと同様にクロックをサイクリックに順次カウントし，対応するＰＩＰＲＯＭ２１ａ，２１ｂから各カウント値に対応してアドレスを発生し，両出力について所定の演算が行われて第２ブランチの出力を発生して図示省略されたデータレジスタに保持される。この中間ステージ２の第２ブランチ部２−２の出力は論理和回路５を通って第１ステージ３へ入力され，第１ステージ３内のＰＩＰＲＯＭ３０からの出力と第２ブランチ部２−２からの演算結果とが加算器３１で算術的に加算されて中間ステージ２に設定された一定個数のビットに対応したアドレスデータを発生する。
【００５０】
第２ブランチ部２−２の後，第３ブランチ部２−３乃至第７ブランチ部２−７まで順次，それぞれに設定された個数のインタリーブビットに対応するアドレスデータが生成される。
【００５１】
このように，本発明では各ステージでの処理をクロックの周期内に同期して実行し，ステージ間でのデータ保持をデータレジスタへの１データ分にすることで保持エリアを激減すことができ，メモリ（ＲＡＭ）の容量を削減することが可能となる。また，ディジタル・シグナル・プロセッサによるソフトウェア処理を行う場合も，同様の原理によりメモリ（ＲＡＭ）の容量を削減することが可能となる。
【００５２】
【発明の実施の形態】
図２，図３はハードウェアによる実施例の構成（その１），（その２）を示す。この実施例では，第１ステージから最終ステージまでクロックの同期を行って，各ブランチや中間ステージにおけるデータを保存する必要を低減した。
【００５３】
図２，図３の各符号，１，２，３，４，５は上記図１の同一の符号の各部に対応し（名称が一部異なる），１は最終（最下位）ステージ処理部，２は第１ブランチ部２−１，第２ブランチ部２−２，…，第７ブランチ部２−７の７つの各ブランチに対応する構成を備えた第２（中間）ステージ処理部，３は第１ステージ処理部，４は１〜７のブランチ番号を指定する出力を発生する７進リングカウンタ（図１のブランチカウンタに対応），５は論理和回路，６は全体の制御を行う制御装置である。
【００５４】
最終ステージ処理部１の１０ａ，１０ｂはそれぞれ０〜３の４個のカウントと０〜２の３個のカウントを行う行・列のアドレスを表す数値をクロックに応じて発生するカウンタ，１１ａ，１１ｂはそれぞれカウンタ１０ａ，１０ｂのカウント値をアドレスとして対応するＰＩＰのアドレスを出力する４ビットＰＩＰＲＯＭと３ビットＰＩＰＲＯＭ，１２は固定の数値「３」を乗算する乗算器，１３は加算器，１４は計算値が１０以上である場合にその値をキャンセル（出力しない）して７進リングカウンタ４にクロック再送要求を行い，計算値が０〜９であればその値を出力させる規制回路である。また，第２ステージ処理部２の第１ブランチ部２−１において，２０ｂは０〜４の５個のカウントを行うカウンタ，２１ｂは５ビットＰＩＰＲＯＭ，２２は「５」を乗算する乗算器，２３は加算器である。また，第２ステージ処理部２の第２ブランチ部２−２において，２０ａ，２０ｂはそれぞれ０〜７の８個のカウントと，０〜６の７個のカウントを行う行・列のカウンタ，２１ａ，２１ｂはそれぞれ８ビット，７ビットのＰＩＰＲＯＭ，２２は「１１」を乗算する乗算器，２３は加算器，２４は計算値が５０以上であるとキャンセルして７進リングカウンタ４にクロック再送要求を行い，０〜４９の場合に通過させる規制回路である。同様に，第２ステージ処理部２の第３ブランチ部２−３乃至第７ブランチ部２−７には図２に示すような２０ａ，２０ｂ，２１ａ，２１ｂ，２２〜２４の各回路が設けられている。
【００５５】
第１ステージ処理部３において，３０はクロック（MCLKで表示) により駆動される７ビットＰＩＰＲＯＭ，３１は加算器，３２は７ビットＰＩＰＲＯＭ３０の出力に対し「５０」を乗算する乗算器，３３は加算器３１の出力が３４８以上であるとキャンセルし，０〜３４７の場合は通過させる規制回路である。更に，７進リングカウンタ４において，４０はクロック再送要求信号により駆動されてクロックを最終ステージ処理部１，第２ステージ処理部２及び第１ステージ処理部３の各部へ再送するクロック再送部である。なお，カウンタ１０ａ，１０ｂ，２０ａ，２０ｂはアドレスがクロックにより更新されるアドレスレジスタにより置き換えることができる。
【００５６】
図２，図３に示す実施例の動作を説明する。
【００５７】
７進リングカウンタ４にクロック（MCLK) を入力することにより，その出力Ｑ〜Ｑ７から各カウンタへ順々に且つサイクリックにクロックが出力される。クロック（MCLK) に１クロック目を入力することにより，出力端子Ｑ１から１クロックが最終ステージ処理部１のカウンタ１０ａに出力され，まず４ビットＰＩＰＲＯＭ１１ａと３ビットＰＩＰＲＯＭ１１ｂとで最終ステージで求める１０ビットＩＰの第１要素が求まり，その値と第２ステージ処理部２の５ビットＰＩＰＲＯＭ２１ｂとでブランチ１の第２ステージ処理部２で求める５０ビットＩＰの第１要素が求まる。更に，この値と７ビットＰＩＰＲＯＭ３０との演算で第１ステージ処理部３で求める３４８ビットＩＰの第１要素が求まる。その際，４ビットＰＩＰＲＯＭと３ビットＰＩＰＲＯＭの演算結果で出力される値が１０以上の場合は，その値をキャンセルし，更に７進リングカウンタ４のクロック再送部４０に再送要求信号を出力する。再送要求信号を受けた７進リングカウンタ４は，出力端子Ｑ１からブランチ１に対してクロックを再送する。
【００５８】
同様に４ビットＰＩＰＲＯＭ１１ａと３ビットＰＩＰＲＯＭ１１ｂの演算結果と５ビットＰＩＰＲＯＭ２１ｂとの演算結果が５０ビット以上の場合は，その値をキャンセルし，更に７進リングカウンタ４のクロック再送部４０に要求信号を出力する。
【００５９】
また，第１ステージ処理部３で求めた値が３４８以上の場合は，その値をキャンセルする。
【００６０】
次にクロック（MCLK) に２クロック目を入力することにより，Ｑ２から第２ブランチ部２−２の０〜７のカウンタ２０ａに対して出力され，まず８ビットＰＩＰＲＯＭ２１ａと７ビットＰＩＰＲＯＭ２１ｂとでブランチ２き第２ステージで求める５０ビットＩＰの第１要素が求まり，さらにその値と第１ステージ処理部３の７ビットＰＩＰＲＯＭ３０との演算で３４８ビットＩＰの第２要素が求まる。なお，第２ステージ処理部２の８ビットＰＩＰＲＯＭ２１ａと７ビットＰＩＰＲＯＭ２１ｂの演算結果で出力される値が５０以上の場合は，その値をキャンセルし，更に７進リングカウンタ４のクロック再送部４０に要求信号を出力する。要求信号を受けた７進リングカウンタ４は，Ｑ２からブランチ２に対して，クロックを再送する。また，第１ステージ処理部３で求めた値が３４８以上の場合は，その値をキャンセルする。
【００６１】
同様に，クロック（MCLK) の３クロック目から７クロック目を入力することにより，第１ステージ処理部３で求める３４８ビットＩＰの３〜７番目の要素が求まる。
【００６２】
以上の動作を繰り返すことにより，クロック(MCLK)を４３４クロック入力することにより，３４８ビット分のアドレスデータが出力される。
【００６３】
次にソフトウェアにより実施例について説明する。このソフトウェアの実施例は，プログラムにより信号処理を行うＤＳＰ（Digital Signal Proccesser:信号処理装置) において実行される。
【００６４】
図４はＤＳＰのターボＭＩＬ用の制御ブロックである。図４において，６０は各ビット長対応のツリー構造データ６０ａと各ビット長対応のＰＩＰデータ６０ｂを保持するＲＯＭで構成されたデータ保持部，６１はインタリーブデータ長入力部，６２は取得データ選択部，６３は演算制御部，６４は６４ａ〜６４ｄの各部を含むＩＰ演算部，６４ａはＰＩＰアドレスレジスタ更新部，６４ｂはＩＰ演算数カウンタ更新部，６４ｃは処理ステージ・ブランチ更新部，６４ｄは算出ＩＰ削除判定部である。また，６５は６５ａ〜６５ｄを含む記憶部，６５ａはＰＩＰデータアドレスの記憶部，６５ｂはＩＰ演算数カウンタの記憶部，６５ｃは処理中ステージ・ブランチ番号の記憶部，６５ｄはツリー構造データ，６６はＩＰ算出結果出力部である。なお，ＤＳＰは上記図３０に示されている構成と基本的には同じである。
【００６５】
図５はインタリーブ演算制御動作の相互の関係を示し，上記図４に示す構成における制御動作の各部の相互の関係を示し，ａは入力動作，ｂは演算制御部の制御動作，ｃはメモリ（ＲＯＭ），ｄはＤＳＰコアのＩＰ演算動作，ｅはＤＳＰデータレジスタの動作，ｆはメモリ（ＲＡＭ）の動作を表し，演算制御を図５中の番号1)〜6)の順に説明する。なお，図５中の矢印を付した実線はデータの流れを示し，点線は制御の関係を示す。
【００６６】
1)最初に初期化のため図４のインタリーブデータ長入力部６１からインタリーブデータ長を入力する。この入力は図４の取得データ選択部６２を介して演算制御部６３へ入力されると，演算制御部６３はインタリーブ長より制御パラメータを決定する（図５のｂ）。すなわち，ツリー構造を決定し，必要なＰＩＰへのアドレスレジスタや第２ステージのＩＰカウンタ，ブランチ番号のカウンタの初期設定を行う。各パラメータは図４の記憶部６５内の６５ａ〜６５ｄの各部に格納される。
【００６７】
2)更に図４の演算制御部６３はブランチ／ステージ番号より現在の処理に必要なＰＩＰを判断し，ＰＩＰアドレスレジスタからＩＰ演算に必要なメモリ（図４の６０）のデータアドレスを指定すると，対応するメモリ（ＲＯＭ）から各ＰＩＰデータの要素リストが読み出され（図５のｃ），ＤＳＰデータレジスタへロードされる。
【００６８】
3)ＩＰ演算と同時にＰＩＰアドレスレジスタやＰＩＰカウンタ等のパラメータの更新を行う。また, ＩＰ演算のＯＫ／ＮＧ判定結果を考慮して，次に処理するステージを指定する。
【００６９】
4)演算制御部６３からステージ／ステージ番号を指定してもらい，ＤＳＰコアのＩＰ演算部６４で演算式やデータの入力元／出力先を判断する（図５のｄ）。
【００７０】
5)第２ステージまでのＩＰ演算結果（ＩＰ算出途中経過）をＤＳＰデータレジスタで保持する（図５のｅ）。このＩＰ演算結果は次のステージの演算に使用する。
【００７１】
6)第１ステージのＩＰ演算結果のみメモリ（ＲＡＭ）に書込む（図５のｆ）。
【００７２】
図６はターボＭＩＬアドレスデータ生成の実施例の処理フローであり，ＤＳＰのプログラムにより実行され，上記図５のブロックにより示した制御動作がこの処理フローにより実現される。
【００７３】
初めに，各パラメータを定義すると，次の通りである。
【００７４】
Ｙ：ブランチ番号
ＸZ Y(N)：ブランチＹにおけるＺステージ目のＮのＰＩＰ要素を指すアドレス
ＸZ Y(M)：ブランチＹにおけるＺステージ目のＭのＰＩＰ要素を指すアドレス
Ｓtage(Y) ：ブランチＹのステージ数
ＭZ Y ，ＮZ Y ：ブランチＹのＺステージの行・列のサイズ
ＣntY(z)：ブランチＹのＺステージのデータ出力回数カウント
Ｌ：インタリーブデータ長
図６において，最初に初期値設定（図６のＳ１）を行い，各ＰＩＰの先頭ＤＳＰへのアドレス，各ブランチ（Ｙ）のステージ数（Ｚ＝Stage(Y)）を設定し（図６のＳ２），次に処理中のステージ（Ｚ）がブランチの最終（最下位）ステージStage(Y)であるかを判別する（同Ｓ３）。最終ステージの場合は，Ｓ４において行ＰＩＰのロード（ＲＯＭからデータレジスタ）の処理を行い，Ａ＝＊（ＸZ Y(N)）を求め，行ＰＩＰアドレスレジスタＸZ Y(N)を更新する。更に列ＰＩＰロードの処理を行い，Ｂ＝＊（ＸZ Y(M)）を求め，ＩＰ算出を行う。このＩＰ算出の式１は上記した通りで一般化すると，Ｃ＝ＭZ Y ×Ａ＋Ｂである。続いて，上記ＰＩＰアドレスのＸZ Y(N)が行ＰＩＰの先頭であるか判別し（図６のＳ５），先頭でない場合はＳ１０に移行し，先頭の場合は列ＰＩＰアドレスのＸZ Y(M)を更新し（同Ｓ６），Ｓ１０に移行する。Ｓ１０ではステージ番号Ｚを−１し，ＡとしてＣを設定する。
【００７５】
上記Ｓ３において，最終ステージでない場合には，列ＰＩＰロード処理を行い，Ｂ＝＊（ＸZ Y(M)）を求め，出力カウンタＣntY(Z)を更新し，上記Ｓ４と同様の式１によるＩＰ算出を行う（図６のＳ７）。次に，出力カウンタＣntY(Z)＝０であるか判別し（図６のＳ８），０で無い場合はＳ１０に移行し，０の場合は，列ＰＩＰアドレスレジスタのＸZ Y(M)を更新して（同Ｓ９），Ｓ１０の処理を行う。Ｓ１０の処理に続いて，演算結果であるＣの値が，そのブランチ番号Ｙのそのステージ番号Ｚに対して規定された値（ＬY Z ) より小さいか判別し（図６のＳ１１），小さくない場合はその結果は使用せず上記Ｓ２に戻り，小さい場合は次にステージ番号Ｚ＝１（第１ステージ）か判別する（図６のＳ１２）。この時，Ｚ＝１でない場合にはＳ７に戻り，Ｚ＝１の場合はＰＩＰＴ７（第１ステージのＰＩＰ）をロードし，Ｂ＝＊（ＸT7）を設定して，Ｔ７アドレスレジスタのＸT7を更新し，上記図１９について説明した式２によりＩＰを算出する（図６のＳ１３）。続いて，Ｃが第１ステージに対し規定された値（Ｌ1 ）より小さいか判別し（図６のＳ１４），小さくない場合はその値を使用せず次のブランチ（Ｙ）へ更新して（同Ｓ１５）上記Ｓ２へ戻り，小さい場合はＣの値を出力する（同Ｓ１６）。続いて，Ｃの出力した個数がＬ1 個に達したか判別し，達しない場合は，上記Ｓ１５を経てＳ２に戻るが，達した場合は処理を終了する。
【００７６】
図７乃至図１４は３４８ビットのターボ用ＭＩＬのアドレス生成の具体例を示し，上記図６に示す処理フローを３４８ビットのターボ用ＭＩＬの場合に適用した具体例である。
【００７７】
図７乃至図１４の構成には，ブランチ１（Branch♯1)の最終ステージの４ビットと３ビットのＰＩＰＲＯＭ（図では単にＰＩＰと表示，他のＰＩＰについても同じ）が設けられ，それぞれアドレスレジスタＸ０，Ｘ１が各要素の先頭に配置（設定）され，ブランチ１の第２ステージ用の５ビットＰＩＰＲＯＭがアドレスレジスタＸ２が配置され，第２ステージ用の列ＰＩＰのアドレス更新用の１０進カウンタと最終ステージの結果を保持するデータレジスタが設けられている。更に第１ステージ用にＴ７のＰＩＰＲＯＭがアドレスレジスタＸ１５が配置されている。また，ブランチ２用に８ビットＰＩＰＲＯＭ，７ビットＰＩＰＲＯＭが設けられ，それぞれアドレスレジスタＸ３，Ｘ４が配置されている。ブランチ３〜ブランチ６のＰＩＰＲＯＭ及びアドレスレジスタ（Ｘ５〜Ｘ１２）は図示省略され，ブランチ７は図に示すように２ビットＰＩＰＲＯＭと４ビットＰＩＰＲＯＭが設けられ，それぞれアドレスレジスタＸ１３，Ｘ１４が配置されている。
【００７８】
図７は３４８ビットのターボ用ＭＩＬのアドレス生成の具体例の初期状態を示し，各ＰＩＰＲＯＭのアドレスレジスタはＸ０〜Ｘ１５はそれぞれの要素の先頭を指すように設定され，１０進カウンタは０に初期化される。図８は具体例のブランチ１の最終ステージのＩＰ演算の状態であり，図７の初期設定の状態からブランチ１の下位ステージ（最終ステージ）から演算を開始して，最初のＩＰは４ビットＰＩＰＲＯＭの“１”と３ビットＰＩＰＲＯＭの“１”から３×１＋１＝４が出力され，データレジスタに保持され，行ＰＩＰＲＯＭのアドレスレジスタＸ０のアドレスが一つ更新された状態を表す。
【００７９】
図９は具体例のブランチ１の第２ステージのＩＰ演算の状態を示し，図８で得た演算結果がデータレジスタに保持されており，その値“４”とブランチ１の第２ステージの列ＰＩＰＲＯＭの要素“０”より，５×４＋０＝２０の演算により，その値をデータレジスタに保持する。ＩＰ演算を行った後に１０進カウンタの値を一つ更新する。
【００８０】
続いて，図１０は具体例のブランチ１の第１ステージのＩＰ演算の状態を示し，図９の状態を含めた第２ステージの処理が終わったら，７ビットＰＩＰ（Ｔ７）とデータレジスタの値“２０”を用いてＩＰを算出する。Ｔ７より値“４”が取り出し，ＩＰを算出するとＣ(0) ＝５０×４＋２０＝２２０となる。この値がインタリーブを行うための１番目のＩＰとなるので，この値をメモリ（ＲＡＭ）に保持する。また，Ｔ７のアドレスを一つ更新する。
【００８１】
ブランチ１からＩＰを算出したので，次のブランチ２（Branch♯2)の最終（最下位）ステージから演算を続け，ブランチ２のＩＰ演算が終了したら，隣のブランチ３に移る。以下順番に各ブランチについてＩＰ演算を実行する。
【００８２】
図１１は具体例のブランチ７のＩＰ演算終了時の状態を示す。３４８ビットＩＰの７ビット目（ブランチ７）のＩＰ演算が終了したら，アドレスレジスタ，１０進カウンタは図１１のような状態になっている。最後のブランチなので，先頭ブランチ（ブランチ１）に戻り，同様の演算を繰り返す。
【００８３】
図１２は具体例のブランチ１の最終ステージの演算結果が破棄（ＮＧ）の場合を示す。
【００８４】
上記の図１１の状態の後，先頭のブランチ１に戻り，同様にＩＰ演算を行うと，４ビットＰＩＰＲＯＭの値“３”と３ビットＰＩＰＲＯＭの値“１”より，３×３＋１＝１０となるが，最終（最下位）ステージの出力ＩＰは１０ビット分で値の範囲は０〜９なので，このデータは破棄して，このステージＩＰを改めて算出する。なお，ＩＰ演算が終了したら，算出ＩＰのＯＫ／ＮＧに関わらずアドレスレジスタの更新（中間ステージであれば，カウンタと列ＰＩＰアドレスの更新）を行う。
【００８５】
図１３は具体例のブランチ１の最終ステージの演算結果が良好（ＯＫ）の場合を示す。上記のＩＰの破棄に続いてＩＰを算出し直すと，４ビットＰＩＰの値は“０”，３ビットＰＩＰの値は“１”なので，３×０＋１＝１となり，この値をデータレジスタに保持する。
【００８６】
図１４は具体例のブランチ１の第２ステージと第１ステージのＩＰ算出状態を示す。この場合，８ビット目のＩＰとして２０５が求められる。
【００８７】
本発明によるターボ用アドレスデータ生成回路を用いてＷ−ＣＤＭＡのターボ符号器やターボ復号器を構成することができ，図１５，図１６にその構成例を示す。
【００８８】
図１５はＷ−ＣＤＭＡに使用するターボ符号器の構成，図１６はＷ−ＣＤＭＡに使用するターボ復号器の構成である。
【００８９】
図１５において，７０はターボ用インタリーバ，７１は第１符号器（ENCODER1) ，７２はターボ用ＭＩＬアドレスデータ生成回路，７３は第２符号器 (ENCODER2) である。また，図１６において，７４は第１復号器（DECODER1) ，７５はターボ用インタリーバ，７６は第２復号器（DECODER2) ，７７はターボ用ＭＩＬアドレスデータ生成回路，７８はターボ用デインタリーバである。
【００９０】
このターボ符号器は，符号化率１／３，符号長３のターボ符号化を行う例であり，符号化すべき入力データｘ（１ビット）に対して，そのまま出力されるｙａビットと，第１符号器（ENCODE1)７１で符号化された出力ｙｂビット及びターボ用ＭＩＬアドレスデータ生成回路７２により発生したアドレスでターボ用インタリーバ７０から発生したインタリーブされたデータに対して第２符号器 (ENCODER2) ７３で符号化された出力ｙｃビットが発生し，１ビットの入力に対し３ビットを発生する。
【００９１】
図１６のターボ復号器は，符号化率１／３，符号長３のターボ符号化されたデータを復号する例であり，上記図１５の符号器により発生した３ビット（ｙａ，ｙｂ，ｙｃ）が分離され，各回路に供給される。すなわち，第１復号器７４にｙａ，ｙｂ及びターボ用デインタリーバ７８の出力が供給されて，その復号出力がターボ用ＭＩＬアドレスデータ生成回路７７のアドレスに従ってターボ用インタリーバ７５でインタリーブされて，第２復号器７６へｙｃビットと共に供給され，その復号出力がターボ用デインタリーバ７８へ入力され，ターボ用デインタリーバ７８はターボ用ＭＩＬアドレスデータ生成回路７７によりアドレスが指定されてデインタリーブ（元の順番に戻される）されてデータｘ（１ビット）が出力される。
【００９２】
図１７は無線通信装置の実施例の構成であり，上記図１５，図１６に示す本発明によるアドレスデータ生成の技術を用いたターボ符号器及びターボ復号器を使用したＷ−ＣＤＭＡの無線通信装置の実施例を示す。
【００９３】
図１７において，４１はアンテナ（ＡＮＴ）からの信号を受信する受信部，４２はＱＰＳＫ（４相位相変調）の逆拡散の処理とＲＡＫＥ（建物等で反射により発生した複数の信号をまとめるフィンガ合成処理）を行う復調器（ＤＥＭ），４３はチャネル符号・復号部（ＣＨ−ＣＯＤＥＣ部で表示），４４はデータ分離・合成部，４５は上位アプリケーション部，４６は４相位相の拡散と変調を行う変調部，４７は送信部である。チャネル符号・復号部４３は，スロット合成器４３ａ，ＭＩＬ復号器４３ｂ，ターボ復号器４３ｃ，ビタビ復号器４３ｄ，ＣＲＣチェック器４３ｅ，ＭＩＬアドレスデータ生成回路４３ｆ，ＣＲＣ付加器４３ｇ，ターボ符号器４３ｈ，畳み込み符号器４３ｉ，ＭＩＬ符号器４３ｊ，スロット分解器４３ｋとで構成される。
【００９４】
受信信号は受信部４１でベースバンド信号に復調され，復調（ＤＥＭ）部で逆拡散，ＲＡＫＥ合成され，チャネル符号・復号部４３に入力される。チャネル符号・復号部４３に入力されたデータはスロット合成器４３ａでチャネル内のタイムスロットの合成を行い，ＭＩＬ復号器４３ｂでデインタリーブされる。この時，ＭＩＬアドレスデータ生成回路４３ｆでＭＩＬのアドレスデータを生成する必要がある。符号ユニットのビット長が３２０ビット／符号ユニット以上の場合，ターボ復号器４３ｃに入力され，その内部でターボ用ＭＩＬデインタリーブの処理が施される。その際，ターボ用ＭＩＬのアドレスデータを生成する必要がある。ターボ復号されたデータはＣＲＣチェックされ，データ分離後に上位アプリケーション部４５に適用される。ターボ復号器は上記図１６の構成を備えている。
【００９５】
また，上位アプリケーション部４５からのデータはチャネル符号・復号部４３に入力され，ＣＲＣ付加後，符号ユニットのデータ長が３２０ビット／符号ユニット以上の場合，ターボ符号器４３ｈに入力され，その内部でターボ用ＭＩＬインタリーブの処理が施される。その際，ターボ用ＭＩＬのアドレスデータを生成する必要がある。また，ターボ符号化されたデータはチャネル用インタリーブされ，スロット分解器４３ｋで分解された後，変調（ＭＯＤ）部４６で４相位相シフト（ＱＰＳＫ）拡散器４６ｂ，４相位相シフト（ＱＰＳＫ）変調器４６ａでそれぞれ処理が施され，送信部４７でＲＦ信号に変調される。その際，ＭＩＬのアドレスデータが生成される。この中のターボ符号器４３ｈは上記図１５の構成を備えている。
【００９６】
【発明の効果】
ＭＩＬや，ターボ用ＭＩＬのアドレスデータ生成回路において，本発明を適用することにより，各ステージでの演算結果をＲＡＭに保持しておく必要がないため，大幅なメモリの削減が可能となる。
【００９７】
すなわち，本発明をハードウェアで実現する場合及びＤＳＰのソフトウェア処理により実現する場合の何れでも，最終ステージから第１ステージまで，一つのルーチンで処理することができ，途中経過はＩＰ１ビット分だけですむので，従来大量に必要であったメモリ領域をメモリ１ワード分またはＤＳＰのデータレジスタだけに削減することができる。
【図面の簡単な説明】
【図１】本発明の原理構成を示す図である。
【図２】ハードウェアによる実施例の構成（その１）を示す図である。
【図３】ハードウェアによる実施例の構成（その２）を示す図である。
【図４】ＤＳＰのターボＭＩＬ用の制御ブロックを示す図である。
【図５】インタリーブ演算制御動作の相互の関係を示す図である。
【図６】ターボＭＩＬアドレスデータ生成の実施例の処理フローを示す図である。
【図７】３４８ビットのターボ用ＭＩＬのアドレス生成の具体例の初期状態を示す図である。
【図８】具体例のブランチ１の最終ステージのＩＰ演算の状態を示す図である。
【図９】具体例のブランチ１の第２ステージのＩＰ演算の状態を示す図である。
【図１０】具体例のブランチ１の第１ステージのＩＰ演算の状態を示す図である。
【図１１】具体例のブランチ７のＩＰ演算終了時の状態を示す図である。
【図１２】具体例のブランチ１の最終ステージの演算結果が破棄（ＮＧ）の場合を示す図である。
【図１３】具体例のブランチ１の最終ステージの演算結果が良好（ＯＫ）の場合を示す図である。
【図１４】具体例のブランチ１の第２ステージと第１ステージのＩＰ算出状態を示す図である。
【図１５】Ｗ−ＣＤＭＡに使用するターボ符号器の構成を示す図である。
【図１６】Ｗ−ＣＤＭＡに使用するターボ復号器の構成を示す図である。
【図１７】無線通信装置の実施例の構成を示す図である。
【図１８】マルチステージインタリーブ（ＭＩＬ）の説明図である。
【図１９】データ長Ｌビットに対するインタリーブパターンツリーを示す図である。
【図２０】Ｗ−ＣＤＭＡ方式の一案として提案されているＭＩＬのＰＩＰリストを示す図である。
【図２１】データ長ＬビットのＭＩＬアドレス生成パターンを示す図である。
【図２２】データビット長Ｌに対するターボ用ＭＩＬのパターンツリーを示す図である。
【図２３】ターボ用ＭＩＬに使用されるＰＩＰを示す図である。
【図２４】３４８ビットターボ用ＭＩＬのパターンツリーと，アドレスデータ生成パターンを示す図である。
【図２５】従来のメモリ構成とアドレス更新方法（その１）を示す図である。
【図２６】従来のメモリ構成とアドレス更新方法（その２）を示す図である。
【図２７】従来のターボＭＩＬアドレスデータ生成のハードウェア構成（その１）を示す図である。
【図２８】従来のターボＭＩＬアドレスデータ生成のハードウェア構成（その２）を示す図である。
【図２９】従来のＤＳＰによるターボＭＩＬアドレスデータ生成の処理フローを示す図である。
【図３０】ＤＳＰのブロック構成を示す図である。
【図３１】ＩＰ算出式(1) の処理の詳細を示す図である。
【図３２】第１ステージＩＰ算出式(2) の処理の詳細を示す図である。
【符号の説明】
１      最終（最下位）ステージ
１０ａ，１０ｂ  カウンタ
１１ａ，１１ｂ  ＰＩＰＲＯＭ
２      中間ステージ
２−１  第１ブランチ部
２−２  第２ブランチ部
２−７  第７ブランチ部
２０ａ，２０ｂ  カウンタ
２１ａ，２１ｂ  ＰＩＰＲＯＭ
３      第１ステージ
３０    ＰＩＰＲＯＭ
３１    加算器
４      ブランチカウンタ
５      論理和回路
【図１】
0003905263.tif 000004
【図２】
0003905263.tif 000005
【図３】
0003905263.tif 000006
【図４】
0003905263.tif 000007
【図５】
0003905263.tif 000008
【図６】
0003905263.tif 000009
【図７】
0003905263.tif 000010
【図８】
0003905263.tif 000011
【図９】
0003905263.tif 000012
【図１０】
0003905263.tif 000013
【図１１】
0003905263.tif 000014
【図１２】
0003905263.tif 000015
【図１３】
0003905263.tif 000016
【図１４】
0003905263.tif 000017
【図１５】
0003905263.tif 000018
【図１６】
0003905263.tif 000019
【図１７】
0003905263.tif 000020
【図１８】
0003905263.tif 000021
【図１９】
0003905263.tif 000022
【図２０】
0003905263.tif 000023
【図２１】
0003905263.tif 000024
【図２２】
0003905263.tif 000025
【図２３】
0003905263.tif 000026
【図２４】
0003905263.tif 000027
【図２５】
0003905263.tif 000028
【図２６】
0003905263.tif 000029
【図２７】
0003905263.tif 000030
【図２８】
0003905263.tif 000031
【図２９】
0003905263.tif 000032
【図３０】
0003905263.tif 000033
【図３１】
0003905263.tif 000034
【図３２】
0003905263.tif 000035