(57)【要約】【課題】メモリ使用量の異なる２種類の方式で畳み込みインタリーブ／デインタリーブを行う。【解決手段】パス番号を生成するパス番号生成部、インタリーブ処理用メモリの上界アドレス及び下界アドレスを生成する境界アドレス生成部、パス番号をアドレスとしてインタリーブアドレスをデータとして、又はインタリーブアドレスをアドレスとしてインタリーブ前データをデータとして、第１のメモリへ出力するメモリ入力選択部、パス番号をアドレスとして記憶するレジスタファイルへデータとしてインタリーブアドレスを供給し、インタリーブアドレスをアドレスとしてインタリーブ前データを記憶する第２のメモリへアドレスとしてインタリーブアドレスを供給するインタリーブアドレス生成部、レジスタファイル又は第１のメモリからのデータを選択しインタリーブアドレス生成部に供給するアドレス出力選択部、第１のメモリ又は第２のメモリからのデータを選択するデータ出力選択部を備える。【選択図】      図１
2013207381.tif 000002
【特許請求の範囲】
【請求項１】
第１の設定に従って、外部から入力されたインタリーブ前データに対する畳み込みインタリーブ処理又は畳み込みデインタリーブ処理における複数のパスのそれぞれに対応付けたパス番号を生成するパス番号生成部と、
第２の設定に従って、前記パス番号から前記複数のパスのそれぞれに割り当てられたインタリーブ処理用メモリの上界アドレス及び下界アドレスを生成する境界アドレス生成部と、
インタリーブアドレスを供給するインタリーブアドレス生成部と、
前記複数のパスのそれぞれに対応付けてインタリーブアドレスを記憶するレジスタファイルと、
第３の設定に従って、前記パス番号をアドレスとして、前記インタリーブアドレスをデータとして出力、又は前記インタリーブアドレスをアドレスとして、前記インタリーブ前データをデータとして出力するメモリ入力選択部と、
前記複数のパスのそれぞれに対応付けて前記インタリーブアドレスを記憶、又は前記インタリーブアドレスに対応付けて前記インタリーブ前データを記憶する第１のメモリと、
前記インタリーブアドレスに対応付けて前記インタリーブ前データを記憶する第２のメモリと、
前記第３の設定に従って、レジスタファイル又は第１のメモリから出力されたデータのいずれかを選択し、インタリーブアドレス生成部に供給するアドレス出力選択部と、
前記第３の設定に従って、前記第１のメモリ又は前記第２のメモリから出力されたデータのいずれかを選択し、出力するデータ出力選択部と、
を備えることを特徴とするインタリーブ処理装置。
【請求項２】
前記インタリーブアドレス生成部は、前記アドレス出力選択部からの入力に１を加算する加算器、前記上界アドレスと前記加算器の出力とを比較する比較器、及び前記比較結果に基づいて加算器出力又は前記下界アドレスとのいずれかを選択し出力するマルチプレクサを含み、
前記境界アドレス生成部は、前記パス番号、及び前記第２の設定によって与えられた第１乃至第５の初期設定値を用いて予め与えられた演算規則に従って演算する
ことを特徴とする請求項１に記載のインタリーブ処理装置。
【請求項３】
前記第１乃至第４の初期設定値を各々ｉ１〜ｉ４とし、前記パス番号をｎ（ｎは自然数）、前記上界アドレスをｆ１（ｎ）、とするとき、前記境界アドレス生成部は、前記上界アドレスを、    ｆ１（ｎ）＝ｆ１（ｎ−１）±［｛（ｎ％ｉ１）×ｉ２｝％ｉ３］×ｉ４
の式で示される演算によって生成し、
前記下界アドレスｆ２（ｎ）を、
ｆ２（ｎ）＝ｆ１（ｎ−１）
として出力する
ことを特徴とする、請求項２に記載のインタリーブ処理装置。
【請求項４】
前記インタリーブアドレスを仮想インタリーブアドレスとして入力し、第４の設定に従い、前記仮想インタリーブアドレスをベース・スキップアドレスに基づいて物理インタリーブアドレスに変換し、レジスタ番号として出力するバンクアドレス生成部と、
第５の設定に従い、前記パス番号又は前記レジスタ番号のいずれかを選択しアドレスとして出力するレジスタ入力選択部と、
第６の設定に従い、前記レジスタ入力選択部から前記パス番号が入力された場合、前記パス番号に対応付けられて保存された値を出力し、前記レジスタ入力選択部から前記レジスタ番号が入力された場合、前記レジスタ番号に対応付けられて保存されたベースアドレス及びスキップアドレスを結合して前記ベース・スキップアドレスとして出力する拡張レジスタファイルと、
を備えることを特徴とする、請求項３に記載のインタリーブ処理装置。
【請求項５】
前記境界アドレス生成部は、前記パス番号、及び第７の設定によって与えられた第６乃至第８の初期設定値とを用いて、予め与えられた演算規則に従って演算する
ことを特徴とする請求項１に記載のインタリーブ処理装置。
【請求項６】
前記第６の初期設定値をｉ６とし、出力系列のインデックスを前記パス番号ｍ（ｍは自然数）、前記上界アドレスをｆ（ｍ）、前記下界アドレスをｄとするとき、前記境界アドレス生成部は
ｆ（ｍ）＝ｆ（ｍ−１）±ｍ×ｉ６
の式で示される演算によって、前記上界アドレスを生成することを特徴とする、請求項５に記載のインタリーブ処理装置。
【請求項７】
第１の設定に従って、外部から入力されたインタリーブ前データに対する畳み込みインタリーブ処理又は畳み込みデインタリーブ処理における複数のパスのそれぞれに対応付けたパス番号を生成するパス番号生成部と、
第２の設定に従って、前記パス番号から前記複数のパスのそれぞれに割り当てられたインタリーブ処理用メモリの上界アドレス及び下界アドレスを生成する境界アドレス生成部と、
第３の設定に従って、第１のメモリへ、前記パス番号をアドレスとして、前記インタリーブアドレスをデータとして出力、又は前記インタリーブアドレスをアドレスとして、前記インタリーブ前データをデータとして出力するメモリ入力選択部と、
前記パス番号をアドレスとして入力データを記憶するレジスタファイルへ、前記入力データとして前記インタリーブアドレスを供給し、前記インタリーブアドレスをアドレスとして前記インタリーブ前データを記憶する第２のメモリへ、前記アドレスとして前記インタリーブアドレスを供給するインタリーブアドレス生成部と、
前記第３の設定に従って、前記レジスタファイル又は前記第１のメモリから出力されたデータのいずれかを選択し、前記インタリーブアドレス生成部に供給するアドレス出力選択部と、
前記第３の設定に従って、前記第１のメモリ又は前記第２のメモリから出力されたデータのいずれかを選択し、出力するデータ出力選択部と、
を備えることを特徴とするインタリーブ制御装置。
【請求項８】
第１の設定に従って、外部から入力されたインタリーブ前データに対する畳み込みインタリーブ処理又は畳み込みデインタリーブ処理における複数のパスのそれぞれに対応付けたパス番号を生成し、
第２の設定に従って、前記パス番号から前記複数のパスのそれぞれに割り当てられたインタリーブ処理用メモリの上界アドレス及び下界アドレスを生成し、
前記複数のパスのそれぞれに対応付けてインタリーブアドレスを記憶し、
第３の設定に従って、前記パス番号をアドレスとして、前記インタリーブアドレスをデータとして出力、又は前記インタリーブアドレスをアドレスとして、前記インタリーブ前データをデータとして出力し、
前記複数のパスのそれぞれに対応付けて前記インタリーブアドレスを記憶、又は前記インタリーブアドレスに対応付けて前記インタリーブ前データを記憶し、
前記インタリーブアドレスに対応付けて前記インタリーブ前データを記憶し、
前記第３の設定に従って、レジスタファイル又は第１のメモリから出力されたデータのいずれかを選択し、インタリーブアドレス生成部に供給し、
前記第３の設定に従って、前記第１のメモリ又は前記第２のメモリから出力されたデータのいずれかを選択し、出力する
ことを特徴とするインタリーブ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ使用量の異なる２種類の方式で畳み込みインタリーブ処理又は畳み込みインタリーブ処理を行うことができるインタリーブ処理装置及びインタリーブ処理方法に関する。
【背景技術】
【０００２】
デジタル通信において、信号の伝送中のインパルス状の雑音の付加や信号強度の変動により、伝送するデータがバースト状に連続して誤ってしまうことがある。また、電波の伝搬路にマルチパスがある場合も、周波数スペクトルがフラットではなくなり、受信レベルが低いキャリアが連続してしまい、伝送されるデータが連続的に誤ってしまうことがある。
【０００３】
このような誤りを回避するために使われるのが「インタリーブ」と呼ばれる処理である。インタリーブは、複数の符号語を並べて、そのデータの並びを変えることにより、連続したデータを分散させる処理である。インタリーブを行うことにより、バースト誤りをランダム誤りに変換でき、バースト誤りに対する訂正能力を高めることができる。並び替えられたデータは、受信側で再び並び替えられ、元の連続したデータに復元される。この受信側の処理は「デインタリーブ」と呼ばれる。
【０００４】
インタリーブ処理では、一般的に、インタリーブ対象のデータと同規模のメモリに、ある特定のアドレス列を用いて、対象データを書き込み、又は、読み出すことで、データが並び替えられる。
【０００５】
インタリーブは、その並び替えの方法により、「ブロックインタリーブ」、「畳み込みインタリーブ」に分類できる。ここでは畳み込みインタリーブに着目する。畳み込みインタリーブ方式のインタリーブは、同じ効果を得ようとした際にブロックインタリーブ方式より少ないメモリで構成可能なことから、地上デジタルテレビジョン放送の伝送方式に採用されている。地上デジタルテレビジョン放送の伝送方式の詳細については、例えば、非特許文献１に記載されている。
【０００６】
非特許文献１等で採用されている畳み込みインタリーブ方式について、図２１を用いて説明する。畳み込みインタリーブ回路４００は、任意の自然数Ｎと、Ｎを割り切る自然数Ｄとによって規定される。図２１において、畳み込みインタリーブ回路４００は、Ｄ本のパスを有し、パス１、２、…、（Ｄ−１）にはそれぞれ、Ｍ段、２・Ｍ段、…、（Ｄ−１）・Ｍ段のシフトレジスタ４２０−１、４２０−２、…、４２０−（Ｄ−１）が設けられている。ここで、Ｍは自然数であり、Ｍ＝Ｎ／Ｄである。
【０００７】
畳み込みインタリーブ回路４００において、入力データが１シンボルずつ入力端子４１０から入力され、入力端子４１０は、０番目のシンボルをパス０へ、１番目のシンボルをパス１へ、（Ｄ−１）番目のシンボルをパス（Ｄ−１）へ送る。さらに入力端子４１０は、Ｄ番目のシンボルを再びパス１へ、（Ｄ＋１）番目のシンボルを再びパス（Ｄ−１）へ送る。
【０００８】
出力端子４３０は、入力端子４１０によるデータの分配に同期して、パス０、パス１、…、パス（Ｄ−１）を順次切り替えてデータを入力し、出力データとして出力する。このとき、出力端子４３０は、パス０については入力端子４１０から入力されたデータをそのまま入力し、その他のパスについては、各パスに設けられたシフトレジスタからシフトアウトされたデータを入力する。
【０００９】
シフトレジスタ４２０−１〜４２０−（Ｄ−１）は、対応するパスに入力端子４１０と出力端子４３０が接続されたときに１シンボルシフトする。つまり、シフトレジスタ４２０−１〜４２０−（Ｄ−１）は、データ入力Ｄ回毎に１度シフトする。従って、段数の異なるシフトレジスタ４２０−１〜４２０−（Ｄ−１）を通過して出てきた出力データの遅延量は、それぞれ、パス１でＭ・Ｄシンボル、パス２で２・Ｍ・Ｄシンボル、…、（Ｄ−１）・Ｍ・Ｄシンボルとなる。ここで「シンボル」とは、ある単位データのまとまりであり、非特許文献１の３．７節バイトインタリーブでは１シンボルの大きさは１バイトである。
【００１０】
また、畳み込みデインタリーブ処理は、図２１のインタリーブ回路において、データが１シンボル入力されるごとに、切り替えられるパスの順序を逆方向にすることにより実現される。すなわち、インタリーブでは、データが入力されるパスは、パス０、１、・・・（Ｄ−１）の順に切り換えられ、デインタリーブでは、データが取り込まれるパスは、パス（Ｄ−１）、（Ｄ−２）、・・・、０の順に切り換えられる。
【００１１】
畳み込みインタリーブに関する技術は、非特許文献２、特許文献１、２等に記載されている。
【００１２】
例えば非特許文献２には、入力データに遅延を与えるときにシフトレジスタの代わりにメモリを使用する畳み込みインタリーブ回路が種々提案されている。
【００１３】
図２２に非特許文献２のメモリ領域の内容を示す。図２２に示すように、メモリ領域はパス１からパス（Ｄ−１）のシフトレジスタと同量の領域が確保される。それぞれのパスに割り当てられた領域のメモリアドレスは、それぞれ、パス１で０〜（Ｍ−１）、パス２でＭ〜（３・Ｍ−１）、…、パス（Ｄ−１）で（Ｄ−２）（Ｄ−１）・Ｍ／２〜（Ｄ−１）Ｄ・Ｍ／２−１である。
【００１４】
このように、メモリにシフトレジスタと同量の領域を用意し、読み出しアクセス・書き込みアクセスの順に、同じアドレスへアクセスする。そして、アクセスするごとに、アドレスを順次巡回させ各パスに対応する領域をリングバッファのように使用することによって入力データに対してシフトレジスタと同様の遅延を与えている。
【００１５】
また、特許文献１、２に、畳み込みインタリーブを行うインタリーブ処理装置が開示されている。特許文献１のインタリーブ処理装置は、インタリーブに要するメモリ量の多い畳み込みインタリーブ処理を対象とする。特許文献１のインタリーブ処理装置は、メモリを効率よく使うためのアドレスを、ＤＳＰ（Digital Signal Processor）を用いて生成する。
【００１６】
特許文献２のインタリーブ処理装置も、インタリーブに要するメモリ量の多い畳み込みインタリーブ処理を対象とする。特許文献１のインタリーブ処理装置は、大容量のメモリ（特許文献２中では「外部メモリ」と呼称。）へのアクセス回数を削減させるために、小容量のメモリ（特許文献２中では「内部メモリ」と呼称）を用いてキャッシングする。
【００１７】
ところで、近年の無線装置開発において、単一のハードウェアで複数の無線規格に対応する、いわゆる「マルチモード化」が注目されている。そのため、インタリーブにおいても、単一の処理回路で複数のインタリーブ方式へ対応することが求められている。
【００１８】
メモリを用いて上記のような畳み込みインタリーブ処理を行う場合、その処理の方式により、メモリ使用量に大きな差が生じる。そのため、地上デジタルテレビジョン放送等の送受信装置において、メモリを用いた畳み込みインタリーブ処理を行う場合、メモリ使用量の少ない畳み込みインタリーブ方式とメモリ使用量の多い畳み込みインタリーブの方式の両方に対応していることが望まれる。
【００１９】
なお、本明細書において、「メモリ使用量が多い」、「メモリ使用量が少ない」という表現は、あくまでメモリ使用量の相対的な大小を意味するものであり、絶対的な使用量を意味するものではない。
【先行技術文献】
【特許文献】
【００２０】
【特許文献１】特開２００３−０６０６１０号公報  （第４−６頁、図１、３、４）
【特許文献２】特表２００７−５２５９０５号公報  （第７−８頁、図４、７）
【非特許文献】
【００２１】
【非特許文献１】規格番号「ＡＲＩＢ−ＳＴＤ−Ｂ３１」、標準規格名「地上デジタルテレビジョン放送の伝送方式」、社団法人電波産業会（ＡＲＩＢ）、第１．９版（改定日：平成２２年７月１５日）、策定年月日：平成１３年５月３１日、３．７節、及び３．１１節１項
【非特許文献２】Yun-Nan Chang, "A Low-Cost Dual-Mode Deinterleaver Design," IEEE Transactions on Consumer Electronics, Vol.54, No.2, May 2008.
【発明の概要】
【発明が解決しようとする課題】
【００２２】
非特許文献２のインタリーブ処理装置は、メモリにシフトレジスタと同量の領域を用意する方式であり、メモリ使用量が比較的少ない畳み込みインタリーブ方式を対象とする。非特許文献２の方式を、そのままメモリ使用量の多い畳み込みインタリーブ方式に拡張して適用すると、回路規模が大きくなるという課題がある。なぜなら、非特許文献２の方式では、パスの本数分だけシフトレジスタが必要であり、インタリーブアドレスを保存するレジスタの本数が多くなってしまうためである。
【００２３】
特許文献１のインタリーブ処理装置は、インタリーブに要するメモリ量の多少に関わらず処理が可能である。しかし、インタリーブアドレスの生成のためにＤＳＰを使用しているため、やはり回路規模が大きいという課題がある。
【００２４】
特許文献２のインタリーブ処理装置は、メモリ使用量の多いインタリーブ処理のみでなく、メモリ使用量の少ないインタリーブ処理にも対応が可能である。しかし、メモリ使用量の少ないインタリーブ処理の場合でも大容量のメモリを使用するため、メモリ使用効率が悪いという課題がある。そこで、一般的に、大容量のメモリを用いた場合には、誤り訂正処理などインタリーブ以外の処理モジュールとのメモリの共有化が図られることが多い。その場合、独立した異なる処理とメモリを共有することになるため、無線通信処理全体の演算性能にも影響を与える可能性がある。
（発明の目的）
本発明は上記のような技術的課題に鑑みて行われたもので、回路規模を抑制しつつ、メモリ使用量の異なる２種類の方式で畳み込みインタリーブ処理又は畳み込みデインタリーブ処理を行うことが可能なインタリーブ処理装置及びインタリーブ処理方法を提供することを目的とする。
【課題を解決するための手段】
【００２５】
本発明のインタリーブ制御装置は、第１の設定に従って、外部から入力されたインタリーブ前データに対する畳み込みインタリーブ処理又は畳み込みデインタリーブ処理における複数のパスのそれぞれに対応付けたパス番号を生成するパス番号生成部と、第２の設定に従って、パス番号から複数のパスのそれぞれに割り当てられたインタリーブ処理用メモリの上界アドレス及び下界アドレスを生成する境界アドレス生成部と、第３の設定に従って、第１のメモリへ、パス番号をアドレスとして、インタリーブアドレスをデータとして出力、又はインタリーブアドレスをアドレスとして、インタリーブ前データをデータとして出力するメモリ入力選択部と、パス番号をアドレスとして入力データを記憶するレジスタファイルへ、入力データとしてインタリーブアドレスを供給し、インタリーブアドレスをアドレスとしてインタリーブ前データを記憶する第２のメモリへ、アドレスとしてインタリーブアドレスを供給するインタリーブアドレス生成部と、第３の設定に従って、レジスタファイル又は第１のメモリから出力されたデータのいずれかを選択し、インタリーブアドレス生成部に供給するアドレス出力選択部と、第３の設定に従って、第１のメモリ又は第２のメモリから出力されたデータのいずれかを選択し、出力するデータ出力選択部と、を備えることを特徴とする。
【００２６】
本発明のインタリーブ処理装置は、第１の設定に従って、外部から入力されたインタリーブ前データに対する畳み込みインタリーブ処理又は畳み込みデインタリーブ処理における複数のパスのそれぞれに対応付けたパス番号を生成するパス番号生成部と、第２の設定に従って、パス番号から複数のパスのそれぞれに割り当てられたインタリーブ処理用メモリの上界アドレス及び下界アドレスを生成する境界アドレス生成部と、インタリーブアドレスを供給するインタリーブアドレス生成部と、複数のパスのそれぞれに対応付けてインタリーブアドレスを記憶するレジスタファイルと、第３の設定に従って、パス番号をアドレスとして、インタリーブアドレスをデータとして出力、又はインタリーブアドレスをアドレスとして、インタリーブ前データをデータとして出力するメモリ入力選択部と、複数のパスのそれぞれに対応付けてインタリーブアドレスを記憶、又はインタリーブアドレスに対応付けてインタリーブ前データを記憶する第１のメモリと、インタリーブアドレスに対応付けてインタリーブ前データを記憶する第２のメモリと、第３の設定に従って、レジスタファイル又は第１のメモリから出力されたデータのいずれかを選択し、インタリーブアドレス生成部に供給するアドレス出力選択部と、第３の設定に従って、第１のメモリ又は第２のメモリから出力されたデータのいずれかを選択し、出力するデータ出力選択部と、を備えることを特徴とする。
【００２７】
本発明のインタリーブ処理方法は、第１の設定に従って、外部から入力されたインタリーブ前データに対する畳み込みインタリーブ処理又は畳み込みデインタリーブ処理における複数のパスのそれぞれに対応付けたパス番号を生成し、第２の設定に従って、パス番号から複数のパスのそれぞれに割り当てられたインタリーブ処理用メモリの上界アドレス及び下界アドレスを生成し、複数のパスのそれぞれに対応付けてインタリーブアドレスを記憶し、第３の設定に従って、パス番号をアドレスとして、インタリーブアドレスをデータとして出力、又はインタリーブアドレスをアドレスとして、インタリーブ前データをデータとして出力し、複数のパスのそれぞれに対応付けてインタリーブアドレスを記憶、又はインタリーブアドレスに対応付けてインタリーブ前データを記憶し、インタリーブアドレスに対応付けてインタリーブ前データを記憶し、第３の設定に従って、レジスタファイル又は第１のメモリから出力されたデータのいずれかを選択し、インタリーブアドレス生成部に供給し、第３の設定に従って、第１のメモリ又は第２のメモリから出力されたデータのいずれかを選択し、出力することを特徴とする。
【発明の効果】
【００２８】
本発明のインタリーブ処理装置、及びインタリーブ処理方法は、２種類の用途でメモリを使い分け、異なる処理方法で畳み込みインタリーブ又は畳み込みデインタリーブを行うことができる。
【００２９】
第１の用途では、メモリを、インタリーブ処理自体、すなわち、データの並べ替えのための一時的な記憶手段に利用する。この方法は、メモリ使用量が比較的少ないインタリーブ方式に適する。
【００３０】
第２の用途では、別途用意されたデータの並べ替えのための一時的な記憶手段としてのメモリの、アドレスを指定するポインタの記憶に利用する。この方法は、メモリ使用量が比較的多いインタリーブ方式に適する。
【００３１】
このように、本発明のインタリーブ処理装置、及びインタリーブ処理方法は、メモリ使用量の異なる２種類のインタリーブ方式に対応することができる。従って、それぞれのインタリーブ方式に対して、別々のインタリーブ処理装置を用意する場合と比較して、回路規模を削減することができる。
【図面の簡単な説明】
【００３２】
【図１】本発明の第１の実施形態のインタリーブ処理装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態のインタリーブ処理装置の構成を示すブロック図である。
【図３】本発明の第１の実施形態の境界アドレス生成部の構成を示すブロック図である。
【図４】本発明の第１の実施形態の境界アドレス生成部の変形例の構成を示すブロック図である。
【図５】本発明の第１の実施形態の境界アドレス生成部の第２の変形例の構成を示すブロック図である。
【図６】本発明の第１の実施形態のインタリーブアドレス生成部の構成を示すブロック図である。
【図７】本発明の第１の実施形態のインタリーブ処理装置の動作を示すフローチャートである。
【図８】本発明の第１の実施形態のインタリーブ処理装置の動作を示すフローチャートである。
【図９】本発明の第２の実施形態のインタリーブ処理装置の構成を示すブロック図である。
【図１０】本発明の第２の実施形態のバンクアドレス生成部の構成を示すブロック図である。
【図１１】本発明の第２の実施形態のインタリーブ処理装置の動作を示すフローチャートである。
【図１２】本発明の第２の実施形態のインタリーブ処理装置の動作を示すフローチャートである。
【図１３】本発明の第２の実施形態を実際の通信への適用したときの、第２のメモリのアドレスマップの例である。
【図１４】本発明の第２の実施形態の拡張レジスタファイルの構成を示すである。
【図１５】本発明の第３の実施形態のインタリーブ処理装置の構成を示すブロック図である。
【図１６】本発明の第３の実施形態の軽量型境界アドレス生成部の構成を示すブロック図である。
【図１７】本発明の第３の実施形態の境界アドレス生成部の変形例の構成を示すブロック図である。
【図１８】本発明の第３の実施形態の境界アドレス生成部の第２の変形例の構成を示すブロック図である。
【図１９】本発明の第３の実施形態のインタリーブ処理装置の動作を示すフローチャートである。
【図２０】本発明の第３の実施形態のインタリーブ処理装置の動作を示すフローチャートである。
【図２１】非特許文献１に記載の畳み込みインタリーブ方式を示す図である。
【図２２】非特許文献２に記載の畳み込みインタリーブ回路におけるアドレスマップを示す図である。
【発明を実施するための形態】
【００３３】
（第１の実施形態）
本実施形態に係るインタリーブ処理装置の構成例のブロック図を図２に示す。本実施形態に係るインタリーブ処理装置１００は、パス番号生成部１１０と、境界アドレス生成部１２０と、インタリーブアドレス生成部１３０と、レジスタファイル１４０と、第１のメモリ１５０と、第２のメモリ１６０と、メモリ入力選択部１７０と、アドレス出力選択部１８０と、データ出力選択部１９０とを備える。
【００３４】
パス番号生成部１１０は、第１の設定に従いパス番号を生成し出力する。「第１の設定」については後述する。
【００３５】
境界アドレス生成部１２０は、パス番号を入力とし、第２の設定に従い入力されたパス番号に対して演算を行い、各パスに割り当てられたメモリ領域の上界アドレス及び下界アドレスを生成し出力する。「上界アドレス」、「下界アドレス」とは、それぞれ、メモリを各パス番号に割り当てられた領域に区分するときの、境界となる２つのアドレスの大きい方、小さい方を意味する。「第２の設定」については後述する。
【００３６】
境界アドレス生成部１２０の構成例のブロック図を図３に示す。境界アドレス生成部１２０は、剰余算器１２１と、乗算器１２２と、剰余算器１２３と、乗算器１２４と、加減算器１２５と、遅延器１２６と、マルチプレクサ１２７、１２８とを備える。境界アドレス生成部１２０は、第２の設定によって与えられた第１〜第５の初期設定値ｉ１〜ｉ５に基づいて、入力されたパス番号に対して演算を行い、その演算結果を上界アドレス又は下界アドレスとして出力する。第１〜第５の設定値ｉ１〜ｉ５は、第２の設定によって与えられる。
【００３７】
境界アドレス生成部１２０において、剰余算器１２１は、パス番号を第１の初期設定値ｉ１で割って、その余りを出力する。
【００３８】
乗算器１２２は、剰余算器１２１の出力と第２の初期設定値ｉ２を乗算し、その乗算結果を出力する。
【００３９】
剰余算器１２３は、乗算器１２２の出力を第３の初期設定値ｉ３で割って、その余りを出力する。
【００４０】
乗算器１２４は、剰余算器１２３の出力と第４の初期設定値ｉ４を乗算し、その乗算結果を出力する。
【００４１】
加減算器１２５は、乗算器１２４の出力と遅延器１２６の出力との加算、又は乗算器１２４の出力から遅延器１２６の出力の減算を行い、演算結果を出力する。加減算器１２５の演算機能は、インタリーブ処理装置１００の機能をインタリーブ又はデインタリーブに設定する設定信号deintによって、インタリーブ処理時には加算機能に設定され、デインタリーブ処理時には減算機能に設定される。  遅延器１２６は、加減算器１２５の出力、すなわち上界アドレス値を１遅延量分だけ遅延させて出力する。ここでの遅延量は、境界アドレス生成部１２０へパス番号が入力されるときの入力時間間隔である。この時間間隔は、個々のインタリーブ前データが入力されるときの時間間隔に等しい。なお、遅延器１２６の出力の初期値としては、第２の設定によって与えられた第５の初期設定値ｉ５が設定される。
【００４２】
マルチプレクサ１２７、１２８は、設定信号deintに従って、入力信号を選択し、それぞれ、上界アドレス、下界アドレスとして出力する。マルチプレクサ１２７は、インタリーブ処理時には加減算器１２５の出力を、デインタリーブ処理時には遅延器１２６の出力を、上界アドレスとして出力する。マルチプレクサ１２８は、インタリーブ処理時には遅延器１２６の出力を、デインタリーブ処理時には加減算器１２５の出力を、下界アドレスとして出力する。
【００４３】
なお、インタリーブ処理装置１００の機能をインタリーブ又はデインタリーブのいずれかに固定するときは、加減算器１２５を加算器又は減算器に置き換え、マルチプレクサ１２７、１２８を削除することができる。すなわち、インタリーブ処理装置１００の機能をインタリーブに固定するときは、加減算器１２５を加算器１２５−１に置き換え、マルチプレクサ１２７、１２８を削除すればよい。インタリーブ処理装置１００の機能をデインタリーブに固定するときは、加減算器１２５を減算器１２５−２に置き換え、マルチプレクサ１２７、１２８を削除すればよい。
【００４４】
図４は、インタリーブ機能のみを備えるインタリーブ処理装置１００の境界アドレス生成部１２０−１のブロック図である。図５は、デインタリーブ機能のみを備えるインタリーブ処理装置１００の、境界アドレス生成部１２０−２のブロック図である。
【００４５】
境界アドレス生成部１２０による上記の演算は、入力されたパス番号をｎ（ｎは自然数）、下界アドレスをｆ（ｎ−１）、上界アドレスをｆ（ｎ）とすると、次式によって表すことができる。
【００４６】
ｆ（ｎ）＝ｆ（ｎ−１）±［｛（ｎ％ｉ１）×ｉ２｝％ｉ３］×ｉ４
ただし、ｆ（０）＝ｉ５＝０とする。また、ｘ％ｙは、ｘをｙで割った余り（剰余）を意味する。
【００４７】
インタリーブアドレス生成部１３０は、アドレス出力選択部１８０の出力と境界アドレス生成部１２０の出力した上界アドレス及び下界アドレスを入力とし、処理結果をインタリーブアドレスとして出力する。
【００４８】
本実施形態に係るインタリーブアドレス生成部１３０の構成例のブロック図を図６に示す。インタリーブアドレス生成部１３０は、加算器１３１と、比較器１３２と、マルチプレクサ１３３とを備える。
【００４９】
加算器１３１は、アドレス出力選択部１８０から入力されたアドレスに対して１を加算する。比較器１３２は、入力された上界アドレスと加算器出力とを比較する。マルチプレクサ１３３は、比較器１３２における比較結果に従い、入力された下界アドレスか加算器出力かのいずれか一方を選択し、インタリーブアドレスとして出力する。
【００５０】
レジスタファイル１４０は、パス番号生成部１１０からのパス番号をアドレスとして、インタリーブアドレス生成部１３０からのインタリーブアドレスをデータとして入力する。そして、レジスタファイル１４０は、パス番号に対応するアドレスのレジスタに保存されている過去のインタリーブアドレス値を出力する。そして、インタリーブアドレス値を出力した後、入力された現在のインタリーブアドレス値を、パス番号に対応するアドレスのレジスタに保存する。
【００５１】
メモリ入力選択部１７０は、パス番号生成部１１０からパス番号、インタリーブアドレス生成部１３０からインタリーブアドレス、及び外部からインタリーブ前データを入力する。そして、第３の設定に従い、入力された３つの情報のうち、パス番号及びインタリーブアドレスか、もしくは、インタリーブアドレス及びインタリーブ前データかを選択し、それぞれアドレスとデータの組み合わせとして出力する。「第３の設定」については後述する。
【００５２】
第１のメモリ１５０は、メモリ入力選択部１７０から入力されたアドレスに保存されているデータを出力する。そして、入力されたアドレスに、メモリ入力選択部１７０から入力されたデータを保存する。
【００５３】
第２のメモリ１６０は、インタリーブアドレス生成部１３０からのインタリーブアドレスに保存されているデータを出力する。そして、入力されたアドレスに、入力されたデータを保存する。
【００５４】
アドレス出力選択部１８０は、レジスタファイル１４０の出力と第１のメモリ１５０の出力とを入力し、第３の設定に従いレジスタファイル１４０の出力か第１のメモリ１５０の出力かのいずれかを選択し、出力する。
【００５５】
データ出力選択部１９０は、第１のメモリ１５０の出力と第２のメモリ１６０の出力とを入力し、第３の設定に従い第１のメモリ１５０出力か第２のメモリ１６０出力かのいずれかを選択し、出力する。
【００５６】
以上の構成により、インタリーブに要するメモリ量に応じて、第１のメモリもしくは第２のメモリを使い分けて、畳み込みインタリーブ方式のインタリーブ処理を実行することができる。
（第１の実施形態の動作）
図７、８は、本実施形態のインタリーブ処理装置の動作を示すフローチャートである。以上で説明したインタリーブ処理装置１００によるインタリーブ処理の動作について、図２、７、８を参照しながら説明する。なお、予め設定信号deintによって、インタリーブ処理装置１００の機能はインタリーブ処理に設定されているものとする。
【００５７】
インタリーブ処理装置１００では、メモリの使用形態が異なる２種類のモードＡ、Ｂでの動作が可能である。モードＡはインタリーブに要するメモリ量が少ない場合に適したモードで、モードＢはインタリーブに要するメモリ量が少ない場合に適したモードである。まず、モードＡにおける動作について説明する。
【００５８】
最初に、上位のコントローラ等によりインタリーブ処理装置１００への初期設定が行われる（ステップＳ１０１）。すなわち、パス番号生成部１１０に第１の設定が、境界アドレス生成部１２０に第２の設定が、メモリ入力選択部１７０、アドレス出力選択部１８０及びデータ出力選択部１９０に第３の設定が行われる。
【００５９】
パス番号生成部１１０への第１の設定により、パス番号の最大値が設定される。境界アドレス生成部１２０への第２の設定により、第１〜第５の初期値が設定される。メモリ入力選択部１７０、及びアドレス出力選択部１８０及びデータ出力選択部１９０への第３の設定により、それぞれへの複数の入力情報の中から、出力情報が選択される。
【００６０】
モードＡでは、具体的には、第２、第３の設定により、境界アドレス生成部１２０、メモリ入力選択部１７０、アドレス出力選択部１８０、データ出力選択部１９０は、それぞれ以下のように機能が設定される。
１）境界アドレス生成部１２０では、設定信号deintにより、加減算器１２５は、乗算器１２４の出力と遅延器１２６の出力との加算を行うように設定される。マルチプレクサ１２７は、加減算器１２５の出力を上界アドレスとして出力する。マルチプレクサ１２８は、遅延器１２６の出力を下界アドレスとして出力する。また、第１〜第５の初期値が設定される。
２）メモリ入力選択部１７０では、第３の設定により、インタリーブアドレスとインタリーブ前データとが選択され、それぞれアドレスとデータとして第１のメモリ１５０へ出力される。
３）アドレス出力選択部１８０では、第３の設定により、レジスタファイル１４０の出力が選択され、インタリーブアドレス生成部１３０へ出力される。
４）データ出力選択部１９０では、第３の設定により、第１のメモリの出力が選択され、インタリーブ後データとして出力される。
【００６１】
なお、レジスタファイル１４０のパス番号１、２、３、…、（Ｄ−１）に対応する各レジスタの初期値は、それぞれ各パスに割り当てられたメモリ領域の上界アドレス−１の値が設定される。第１のメモリ１５０、第２のメモリ１６０の全領域は０に初期化される。
【００６２】
インタリーブ処理装置１００に対する第１〜第３の設定が終了したら、外部からインタリーブ前データの入力を受け付け始め、インタリーブ処理を開始する。
【００６３】
まず、パス番号生成部１１０はパス番号を生成する（ステップＳ１０２）。
【００６４】
そして、レジスタファイル１４０は、入力されたパス番号に対応するレジスタに保存されているデータを出力する（ステップＳ１０３）。
【００６５】
続いて、アドレス出力選択部１８０はレジスタファイル１４０の出力を選択し、出力する（ステップＳ１０４）。
【００６６】
そして、境界アドレス生成部１２０は、第１〜第５の初期値に基づき入力されたパス番号に対して演算を行い、上界アドレス及び下界アドレスを出力する（ステップＳ１０５）。
【００６７】
さらに、インタリーブアドレス生成部１３０は、アドレス出力選択部１８０の出力に１を加算し（ステップＳ１０６）、入力された上界アドレスと前記加算結果とを比較する（ステップＳ１０７）。
【００６８】
そして、加算結果の方が小さい場合（ステップＳ１０７：Yes）、インタリーブアドレス生成部１３０は、加算結果をインタリーブアドレスとして出力する（ステップＳ１０８）。上界アドレスと加算結果とが等しい場合（ステップＳ１０７：No）、インタリーブアドレス生成部１３０は、入力された下界アドレスをインタリーブアドレスとして出力する（ステップＳ１０９）。
【００６９】
そして、メモリ入力選択部１７０は、入力されたインタリーブアドレスと、外部から入力されたインタリーブ前データとをそれぞれアドレスとデータとして出力する（ステップＳ１１０）。
【００７０】
第１のメモリ１５０は、インタリーブアドレスからデータを取り出し出力した後、当該のアドレスにインタリーブ前データを保存する（ステップＳ１１１）。
【００７１】
続いて、データ出力選択部１９０は、第１のメモリ１５０から出力されたデータを、インタリーブ後データとして外部へ出力する（ステップＳ１１２）。
【００７２】
また、インタリーブアドレス生成部１３０の生成したインタリーブアドレスは、レジスタファイル１４０において、入力されたパス番号に対応するレジスタに保管される（ステップＳ１１３）。
【００７３】
以上の一連の作業が終了したら、入力された１インタリーブ前データに対する作業は終了する。
【００７４】
パス番号生成部１１０は、第１の設定により設定された最大値に達するまで、入力された１個のインタリーブ前データに対する上記の作業が終了するたびに、パス番号をカウントアップする（ステップＳ１１４）。そして、パス番号が最大値に達したか否かを確認する（ステップＳ１１５）。
【００７５】
パス番号が最大値に達した場合（ステップＳ１１５：Yes）、パス番号生成部１１０はパス番号を初期化、すなわち”０”に戻し（ステップＳ１１６）、ステップＳ１０３へ戻る。
【００７６】
パス番号が最大値に達していない場合（ステップＳ１１５：No）は、ステップＳ１０２へ戻り、次のパス番号についての処理を行う。
【００７７】
以上のようにして、インタリーブ処理装置１００は、入力された１個のインタリーブ前データ毎に上記の処理を行い、インタリーブ対象のデータがなくなるまで同様の動作を繰り返す。
【００７８】
なお、上記説明ではメモリ使用量が少ない方式に適したモードＡの場合を例として説明を行った。メモリ使用量の多い方式に適したモードＢの場合については、第２、第３の設定によって、境界アドレス生成部１２０、メモリ入力選択部１７０、アドレス出力選択部１８０、及びデータ出力選択部１９０を上記の場合とは逆側に設定し、同様の処理を行うことで、同様に実行可能である。具体的には、境界アドレス生成部１２０、メモリ入力選択部１７０、アドレス出力選択部１８０、データ出力選択部１９０は、それぞれ以下のように機能が設定される。
１’）境界アドレス生成部１２０では、設定信号deintにより、加減算器１２５が、乗算器１２４の出力と遅延器１２６の出力との加算を行うように設定される。マルチプレクサ１２７は、インタリーブ処理時には加減算器１２５の出力を上界アドレスとして出力する。マルチプレクサ１２８は、インタリーブ処理時には遅延器１２６の出力を下界アドレスとして出力する。また、第１〜第５の初期値が設定される。本設定は、モードＡの場合と同様の設定である。
２’）メモリ入力選択部１７０では、第３の設定により、パス番号とインタリーブアドレスとが選択され、それぞれアドレスとデータとして第１のメモリ１５０へ出力される。
３’）アドレス出力選択部１８０では、第３の設定により、第１のメモリ１５０の出力が選択され、インタリーブアドレス生成部１３０へ出力される。
４’）データ出力選択部１９０では、第３の設定により、第２のメモリ１６０の出力が選択され、インタリーブ後データとして出力される。
（実際の通信に対する第１の実施形態の適用例）
以下では、実際の通信に対するインタリーブ処理装置１００の適用例を、モードＡ、モードＢについて１種類ずつ挙げて、図２を参照しながら説明を行う。以下の説明では、文章中に数値を記載する場合、”１１”のように記載し、符号とは区別する。
（１）モードＡの適用例
１つ目の例として、インタリーブ処理装置１００をＩＳＤＢ−Ｔ（Integrated Services Digital Broadcasting。統合デジタル放送サービス）の「バイトインタリーブ処理」に適用する場合について説明する。ＩＳＤＢ−Ｔのバイトインタリーブでは、メモリ使用量が少ないので、インタリーブアドレスの保存にレジスタファイル１４０を用い、インタリーブ対象のデータの保存に第１のメモリ１５０を用いる。
【００７９】
最初に、上位のコントローラ等によりインタリーブ処理装置１００への初期設定が行われる。すなわち、パス番号生成部１１０に第１の設定が、境界アドレス生成部１２０に第２の設定が、メモリ入力選択部１７０及びアドレス出力選択部１８０及びデータ出力選択部１９０に第３の設定が行われる。
【００８０】
以上の設定により、パス番号生成部１１０においてパス番号の最大値が”１１”に設定される。境界アドレス生成部１２０においては、初期値が（第１、第２、第３、第４、第５）＝（＊、１、＊、１７、０）に設定され、加減算器１２５において加算を行うように設定される。メモリ入力選択部１７０では、インタリーブアドレスとインタリーブ前データとが選択され、それぞれアドレスとデータとして第１のメモリ１５０へ出力される。アドレス出力選択部１８０では、レジスタファイル１４０の出力が選択され、データ出力選択部１９０では、第１のメモリ１５０の出力が選択される。なお、第１の初期値、第３の初期値は、”１１”より大きい任意の整数である。
【００８１】
また、レジスタファイル１４０のパス番号１、２、３、…、１１に対応する各レジスタの初期値はそれぞれ”１６”、”５０”、”１０１”、…、”１１２１”に設定される（第ｎ番目のパスに対応するレジスタの初期値はｎ（ｎ＋１）×１７／２−１）。
【００８２】
インタリーブ処理装置１００に対する第１〜第３の設定は以上である。以降の動作は、上記と同様である。以上のようにして、ＩＳＤＢ−Ｔのバイトインタリーブ処理を行うことができる。
【００８３】
なお、パス０に関しては、入力されたインタリーブ前データに対しては遅延を加える必要がない。そのため、第１のメモリ１５０に入力され遅延を加えられることなく、そのままインタリーブ後データとしてインタリーブ処理装置１００の外へ出力される。
（２）モードＢの適用例
２つめの例として、インタリーブ処理装置１００をＩＳＤＢ−Ｔの「時間インタリーブ処理」に適用する場合について説明する。ＩＳＤＢ−Ｔの時間インタリーブでは、メモリ使用量が多いので、インタリーブアドレスの保存に第１のメモリ１５０を用い、インタリーブ対象のデータの保存に第２のメモリ１６０を用いる。なお、今回はＩＳＤＢ−Ｔのパラメータはモード１、インタリーブの深さは”４”である場合を例に説明を行う。
【００８４】
最初に、上位のコントローラ等によりインタリーブ処理装置１００への初期設定が行われる。すなわち、パス番号生成部１１０に第１の設定が、境界アドレス生成部１２０に第２の設定が、メモリ入力選択部１７０及びアドレス出力選択部１８０及びデータ出力選択部１９０に第３の設定が行われる。以上の設定により、パス番号生成部１１０においてパス番号の最大値が”１１５１”に設定される。境界アドレス生成部１２０においては、初期値が（第１、第２、第３、第４、第５）＝（９６、５、９６、４、０）に設定される。メモリ入力選択部１７０では、パス番号とインタリーブアドレスとが選択され、それぞれアドレスとデータとして第１のメモリ１５０へ出力される。アドレス出力選択部１８０では、第１のメモリ１５０の出力が選択され、データ出力選択部１９０では、第２のメモリ１６０の出力が選択される。レジスタファイル１４０のパス番号１、２、３、…、１９２に対応する各レジスタの初期値は、各パスの上界アドレス−１に設定される。
【００８５】
インタリーブ処理装置１００に対する第１〜第３の設定が終了したら、外部からインタリーブ前データの入力を受け付け始め、インタリーブ処理を開始する。
【００８６】
まず、パス番号生成部１１０がパス番号を生成する。第１のメモリ１５０は、入力されたパス番号のアドレスに保存されているデータを出力する。アドレス出力選択部１８０は、第１のメモリ１５０の出力を選択し、出力する。境界アドレス生成部１２０は、第１〜第５の初期値に基づき入力されたパス番号に対して演算を行い、上界アドレスと下界アドレスを出力する。
【００８７】
インタリーブアドレス生成部１３０は、入力されたアドレス出力選択部１８０の出力に１を加算し、入力された上界アドレスと加算結果を比較する。
【００８８】
加算結果の方が小さい場合は、インタリーブアドレス生成部１３０は、加算結果をインタリーブアドレスとして出力する。上界アドレスと前記加算結果とが等しい場合には、インタリーブアドレス生成部１３０は、入力された下界アドレスをインタリーブアドレスとして出力する。
【００８９】
メモリ入力選択部１７０は、入力されたパス番号とインタリーブアドレス生成部１３０により生成されたインタリーブアドレスとをそれぞれアドレスとデータとして出力する。第２のメモリ１６０は、入力されたインタリーブアドレスからデータを取り出し出力した後、当該のアドレスに入力されたインタリーブ前データ保存する。データ出力選択部１９０は、第２のメモリ１６０から出力されたデータを、インタリーブ後データとして外部へ出力する。第１のメモリ１５０において、インタリーブアドレス生成部１３０出力のインタリーブアドレスは入力されたパス番号のアドレスにデータとして保管される。以上の一連の作業が終了したら、入力された１インタリーブ前データに対する作業は終了する。
【００９０】
パス番号生成部１１０は、第１の設定により設定された最大値”１１５１”に達するまで入力された１個のインタリーブ前データに対する作業が終了するたびに、出力するパス番号をカウントアップする。そして、パス番号が最大値に達した場合はパス番号を”０”に戻す。以上のようにして、インタリーブ処理装置１００は、入力された１個のインタリーブ前データ毎に上記の処理を行い、インタリーブ対象のデータがなくなるまで繰り返す。
【００９１】
なお、パス０、９６、１９２、…、１０５６に関しては、インタリーブ前データは遅延を加える必要がないので、第２のメモリ１５０に入力されない。そのため、遅延を加えられることなく、そのままインタリーブ後データとしてインタリーブ処理装置１００の外へ出力される。
【００９２】
以上、説明したように、本実施形態のインタリーブ処理装置１００には、第１〜第３の設定を行われる。
【００９３】
一般に、レジスタファイルよりもメモリの方が記憶容量が大きく、回路規模も大きいものと想定される。従って、図２のインタリーブ処理装置１００について、多くのインタリーブアドレスの記憶を必要としない方式の場合は、レジスタファイル１４０を用いるモードＡが適する。多くのインタリーブアドレスの記憶が必要な場合は、第１のメモリ１５０を用いるモードＢが適する。なお、前述のように、メモリ使用量の大小はあくまで相対的なものであり、実際のアプリケーションによって、いずれかのモードを選択すればよい。
【００９４】
本実施形態のインタリーブ処理装置１００では、設定に従って、各パスに対応するインタリーブアドレスの保存には、レジスタファイル１４０もしくは第１のメモリ１５０が用いることができる。
【００９５】
インタリーブ対象のデータの保存には、第１のメモリ１５０もしくは第２のメモリ１６０が用いられる。従って、インタリーブ処理装置１００は、２種類の用途で第１のメモリ１５０を使い分け、異なる処理方法でインタリーブを行うことができる。従って、例えば、メモリ使用量の異なる複数の畳み込みインタリーブ処理方式に対応することができる。
【００９６】
なお、本実施形態では、インタリーブ処理装置１００を用いて畳み込みインタリーブ処理を行う動作例について説明したが、第１〜第３の設定を変更すれば、インタリーブ処理装置１００はデインタリーブ処理にも適用することができる。デインタリーブ処理を行うときは、インタリーブ処理装置１００へは、インタリーブ前データに代わり、デインタリーブされる対象のデータ、すなわちインタリーブ後データが入力され、デインタリーブされたデータが出力される。
【００９７】
例えば、インタリーブに要するメモリ量が少ない場合に適した設定（モードＡ）は、具体的には以下のようになる。なお、インタリーブアドレス生成部１３０が生成するアドレスは、正確には、「デインタリーブアドレス」であるが、本実施形態における処理上、本質的な違いはないので、「インタリーブアドレス」と表記する。また、予め設定信号deintによって、インタリーブ処理装置１００の機能はデインタリーブ処理に設定されているものとする。
１）境界アドレス生成部１２０では、設定信号deintにより、加減算器１２５は、乗算器１２４の出力から遅延器１２６の出力の減算を行う。マルチプレクサ１２７は、遅延器１２６の出力を上界アドレスとして出力する。マルチプレクサ１２８は、加減算器１２５の出力を、下界アドレスとして出力する。
２）メモリ入力選択部１７０では、第３の設定により、インタリーブアドレスとインタリーブ後データとが選択され、それぞれアドレスとデータとして第１のメモリ１５０へ出力される。
３）アドレス出力選択部１８０では、第３の設定により、レジスタファイル１４０の出力が選択され、インタリーブアドレス生成部１３０へ出力される。
４）データ出力選択部１９０では、第３の設定により、第１のメモリの出力が選択され、デインタリーブされたデータ、すなわちインタリーブ前データとして出力される。
【００９８】
メモリ入力選択部１７０、アドレス出力選択部１８０、データ出力選択部１９０は、データの転送経路を制御する。この制御は、モードＡとモードＢとでは異なるが、インタリーブ時とデインタリーブ時とでは共通である。
５）パス番号生成部１１０は、パス番号の最大値から最小値まで順に出力する。
【００９９】
パス番号生成部１１０の動作は、インタリーブ時とデインタリーブ時とでは、出力するパス番号の増減が逆である。
【０１００】
以上が、インタリーブ処理装置１００をデインタリーブ処理に適用するときの設定である。以上の設定によって、インタリーブ処理装置１００をデインタリーブ処理に適用することができる。
【０１０１】
ところで、本実施形態を適用してインタリーブを行うときに、インタリーブ処理装置１００は、レジスタファイル１４０、第１のメモリ１５０、及び第２のメモリ１６０を備えなくてもよい。つまり、レジスタファイル１４０、第１のメモリ１５０、及び第２のメモリ１６０の一部又は全部について、装置外部の記憶手段を用いてもよい。従って、本発明における必須の構成を備えるインタリーブ制御装置１０１は、図１の構成を備える。
【０１０２】
インタリーブ制御装置１０１は、レジスタファイル１４０、第１のメモリ１５０、及び第２のメモリ１６０を除き、インタリーブ処理装置１００と同じ構成を備える。
（第２の実施形態）
本実施形態に係るインタリーブ処理装置の構成例のブロック図を図９に示す。第２の実施形態に係るインタリーブ処理装置２００は、第１の実施形態のインタリーブ処理装置１００の構成に加えて、バンクアドレス生成部２２０と、レジスタ入力選択部２３０を備える。また、インタリーブ処理装置２００は、レジスタファイル１４０に代えて、拡張レジスタファイル２１０を備える。
【０１０３】
バンクアドレス生成部２２０は、第４の設定に基づき、仮想アドレスを物理アドレスに変換し、さらに、レジスタ番号を生成する。レジスタ入力選択部２３０は、第５の設定に基づき、レジスタ番号かパス番号かのいずれかを選択し出力する。
【０１０４】
拡張レジスタファイル２１０は、第６の設定に基づき、レジスタ保存内容を過去のインタリーブアドレスか、もしくは、ベース・スキップアドレスとして出力する。
【０１０５】
なお、図９において、上記以外の構成に関しては、インタリーブ処理装置１００と同一である。インタリーブ処理装置１００のものと同一の要素については、同一の呼称と符号で示している。
【０１０６】
この構成によって、第２のメモリを他の装置と共有する場合においても、第１の実施形態によって得られる効果を、同様に得ることができる。以下、これについてより詳細に説明する。
【０１０７】
バンクアドレス生成部２２０は、（拡張レジスタファイル２１０より）ベース・スキップアドレスを、インタリーブアドレス生成部１３０よりインタリーブアドレスを入力する。そして、第４の設定とベース・スキップアドレスに基づいて、入力されたインタリーブアドレスを仮想アドレスとして、物理アドレスのインタリーブアドレスに変換し出力する。以降、仮想アドレスとして取り扱われるインタリーブアドレスを「仮想インタリーブアドレス」といい、物理アドレスに変換されたインタリーブアドレスを「物理インタリーブアドレス」という。
【０１０８】
バンクアドレス生成部２２０の構成例のブロック図を図１０に示す。バンクアドレス生成部２２０は、加算器２２１と、比較器２２２と、マルチプレクサ２２３と、マルチプレクサ２２５と、カウンタ２２４とを備える。
【０１０９】
加算器２２１は、入力された仮想インタリーブアドレスとスキップアドレスを加算する。比較器２２２は、仮想インタリーブアドレスとベースアドレスとを比較する。マルチプレクサ２２３は、比較結果に従い仮想インタリーブアドレスか加算器出力かのいずれか一方を選択する。マルチプレクサ２２５は、マルチプレクサ２２３の出力か、入力された仮想インタリーブアドレスかのいずれか一方を、第４の設定に基づき選択して、物理インタリーブアドレスとして出力する。カウンタ２２４は、比較器２２２における比較結果によりカウントアップし、レジスタ番号として出力する。
【０１１０】
レジスタ入力選択部２３０は、バンクアドレス生成部２２０からレジスタ番号を、パス番号生成部１１０からパス番号を入力する。そして、レジスタ入力選択部２３０は、第５の設定に従い、パス番号又はレジスタ番号のいずれかを選択し、アドレスとして、拡張レジスタファイル２１０へ出力する。
【０１１１】
拡張レジスタファイル２１０は、レジスタ入力選択部２３０の出力をアドレスとして入力とし、第６の設定に従って、保存されているデータを出力する。まず、アドレス入力がパス番号の場合、拡張レジスタファイル２１０は、そのパス番号に対応するレジスタに保存された値を出力する。アドレス入力がバンクアドレス生成部２２０の出力であるレジスタ番号の場合、拡張レジスタファイル２１０は、レジスタ番号に対応するレジスタに設定されたベースアドレスとスキップアドレスを、１本の信号にまとめてベース・スキップアドレスとして出力する。
【０１１２】
なお、「ベースアドレス」とは、第２のメモリ１６０のうち、インタリーブ処理装置２００が使用する領域を、あるサイズの複数の領域をバンクとして区分けしたときの、そのバンクの上界アドレスを指す。「スキップアドレス」とは、あるバンクとその隣のバンクの間の、インタリーブ処理装置２００が使用しないメモリ領域のメモリ量を累積した値を指す。
【０１１３】
以上で説明した拡張レジスタファイル２１０、バンクアドレス生成部２２０、レジスタ入力選択部２３０以外については、図２〜図６に示した第１の実施形態と同一である。
【０１１４】
以上の構成により、インタリーブに要するメモリ量に応じて、第１のメモリもしくは第２のメモリを使い分けて、畳み込みインタリーブ処理を実行することができる。さらに、本実施形態では、第２のメモリを使用して畳み込みインタリーブ処理を実行する場合において、バンクアドレス生成部２２０により拡張レジスタファイル２１０に保存した情報を用いて仮想アドレスを物理アドレスに変換する。従って、本インタリーブ処理装置以外の装置と第２のメモリを共有する場合でもインタリーブ処理を実行可能となる。
（第２の実施形態の動作）
図１１、１２は、本実施形態のインタリーブ処理装置の動作を示すフローチャートである。以上で説明したインタリーブ処理装置２００によるインタリーブ処理の動作について図９、１１、１２を参照しながら説明する。なお、予め設定信号deintによって、インタリーブ処理装置１００の機能はインタリーブ処理に設定されているものとする。
【０１１５】
最初に、上位のコントローラ等によりインタリーブ処理装置２００への初期設定が行われる（ステップＳ２０１）。すなわち、パス番号生成部１１０に第１の設定が、境界アドレス生成部１２０に第２の設定が、メモリ入力選択部１７０、アドレス出力選択部１８０及びデータ出力選択部１９０に第３の設定が行われる。さらに、バンクアドレス生成部２２０に第４の設定が、レジスタ入力選択部２３０に第５の設定が、拡張レジスタファイル２１０に第６の設定が行われる。
【０１１６】
パス番号生成部１１０への第１の設定により、パス番号の最大値が設定される。境界アドレス生成部１２０への第２の設定により、第１〜第５の初期設定値が設定される。メモリ入力選択部１７０、アドレス出力選択部１８０、データ出力選択部１９０への第３の設定、バンクアドレス生成部２２０への第４の設定、及びレジスタ入力選択部への第５の設定により、それぞれへの複数の入力情報の中から、出力情報が選択される。拡張レジスタファイル２１０への第６の設定により、どのような値を出力するかが決定される。
【０１１７】
なお、動作の説明を容易にするために、ここでは、インタリーブに要するメモリ量が多い場合に適した設定、すなわちモードＢを例として用いる。具体的には、第２、第３の設定により、境界アドレス生成部１２０、メモリ入力選択部１７０、アドレス出力選択部１８０、データ出力選択部１９０、バンクアドレス生成部２２０、レジスタ入力選択部２３０は、それぞれ以下のように機能が設定される。
１）境界アドレス生成部１２０では、設定信号deintにより、加減算器１２５は、乗算器１２４の出力と遅延器１２６の出力との加算を行う。マルチプレクサ１２７は、加減算器１２５の出力を上界アドレスとして出力する。マルチプレクサ１２８は、遅延器１２６の出力を下界アドレスとして出力する。また、第１〜第５の初期値が設定される。
２）メモリ入力選択部１７０では、第３の設定により、パス番号とインタリーブアドレスとが選択され、それぞれアドレスとデータとして第１のメモリ１５０へ出力される。
３）アドレス出力選択部１８０では、第３の設定により、第１のメモリ１５０の出力が選択され、インタリーブアドレス生成部１３０へ出力される。
４）データ出力選択部１９０では、第３の設定により、第２のメモリの出力が選択され、インタリーブ後データとして出力される。
５）バンクアドレス生成部２２０では、第４の設定により、マルチプレクサ２２５はマルチプレクサ２２３の出力を選択し、物理インタリーブアドレスとして出力する。
６）レジスタ入力選択部２３０では、第５の設定により、バンクアドレス生成部の出力（アドレス番号）が選択される。
【０１１８】
なお、第１のメモリ１５０のパス番号１、２、３、…、（Ｄ−１）に対応するメモリアドレスの初期値は、それぞれ各パスに割り当てられたメモリ領域の上界アドレス−１の値が設定される。レジスタファイル１４０の各レジスタの初期値は、順に各メモリバンクのベースアドレスとスキップアドレスが設定される。第２のメモリ１６０の全領域は０に初期化される。
【０１１９】
インタリーブ処理装置２００に対する第１〜第６の設定が終了したら、外部からインタリーブ前データの入力を受け付け始め、インタリーブ処理を開始する。
【０１２０】
まず、パス番号生成部１１０はパス番号を生成する（ステップＳ２０２）。
【０１２１】
そして、レジスタアドレス生成部２３０は、入力されたパス番号を選択し、出力する（ステップＳ２０３）。
【０１２２】
そして、第１のメモリ１５０は、入力されたパス番号のアドレスに保存されているデータを出力する（ステップＳ２０４）。
【０１２３】
続いて、アドレス出力選択部１８０はレジスタファイル１４０の出力を選択し、出力する（ステップＳ２０５）。
【０１２４】
そして、境界アドレス生成部１２０は、第１〜第５の初期設定値に基づき入力されたパス番号に対して演算を行い、上界アドレスと下界アドレスを出力する（ステップＳ２０６）。
【０１２５】
さらに、インタリーブアドレス生成部１３０は、アドレス出力選択部１８０の出力に１を加算し（ステップＳ２０７）、入力された上界アドレスと前記加算結果とを比較する（ステップＳ２０８）。
【０１２６】
そして、加算結果の方が小さい場合（ステップＳ２０８：Yes）、加算結果を仮想インタリーブアドレスとして出力する（ステップＳ２０９）。上界アドレスと前記加算結果とが等しい場合（ステップＳ２０８：No）、入力された下界アドレスを仮想インタリーブアドレスとして出力する（ステップＳ２１０）。
【０１２７】
そして、メモリ入力選択部１７０は、入力されたパス番号と入力されたインタリーブアドレスとをそれぞれアドレスとデータとして出力する（ステップＳ２１１）。
【０１２８】
拡張レジスタファイル２１０は、レジスタ入力選択部２３０の出力である、バンクアドレス生成部２２０の出力（アドレス番号）に対応するレジスタから、ベースアドレスとスキップアドレスを１本の信号にまとめてベース・スキップアドレスとして出力する（ステップＳ２１２）。
【０１２９】
バンクアドレス生成部２２０は、入力された仮想インタリーブアドレスとして入力されたベースアドレスとを比較する（ステップＳ２１３）。
【０１３０】
インタリーブアドレスの方が小さい場合、バンクアドレス生成部２２０は、仮想インタリーブアドレスをそのまま物理インタリーブアドレスとして出力する（ステップＳ２１４）。この時、カウンタ２２４はカウントアップしないので、カウンタ値は更新されず、そのままレジスタ番号として出力される。
【０１３１】
入力された仮想インタリーブアドレスと入力されたベースアドレスとが等しい、もしくは、前記ベースアドレスの方が大きい場合、バンクアドレス生成部２２０は、仮想インタリーブアドレスと入力されたスキップアドレスとを加算した結果を物理インタリーブアドレスとして出力する（ステップＳ２１５）。この時、カウンタ２２４はカウントアップし、カウント値をレジスタ番号として出力する。
【０１３２】
続いて、第２のメモリ１６０は、入力された物理インタリーブアドレスからデータを取り出し出力した後、当該のアドレスに入力されたインタリーブ前データ保存する（ステップＳ２１６）。
【０１３３】
さらに、データ出力選択部１９０は、第２のメモリ１６０から出力されたデータを、インタリーブ後データとして外部へ出力する（ステップＳ２１７）。
【０１３４】
また、インタリーブアドレス生成部１３０の出力した仮想インタリーブアドレスは、第１のメモリ１５０において入力されたパス番号のアドレスにデータとして保管される（ステップＳ２１８）。以上の一連の作業が終了したら、入力された１インタリーブ前データに対する作業は終了する。
【０１３５】
パス番号生成部１１０は、第１の設定により設定された最大値に達するまで入力された１個のインタリーブ前データに対する上記の作業が終了するたびに、出力するパス番号をカウントアップする（ステップＳ２１９）。そして、パス番号が最大値に達したか否かを確認する（ステップＳ２２０）。
【０１３６】
パス番号が最大値に達した場合（ステップＳ２２０：Yes）、パス番号生成部１１０はパス番号を初期化、すなわち”０”に戻し（ステップＳ２２１）、ステップＳ２０３へ戻る。
【０１３７】
パス番号が最大値に達していない場合（ステップＳ２２０：No）は、ステップＳ２０２へ戻り、次のパス番号についての処理を行う。
【０１３８】
以上のようにして、インタリーブ処理装置２００は、入力された１個のインタリーブ前データ毎に上記の処理を行い、インタリーブ対象のデータがなくなるまで繰り返す。
【０１３９】
なお、上記説明ではモードＢを例として説明を行った。モードＡについては、第２、第３の設定によって、第１の実施形態と同様に、メモリ入力選択部１７０、アドレス出力選択部１８０、データ出力選択部１９０、及びレジスタ入力選択部２３０を上記の場合とは逆側に設定し、同様の処理を行うことで、同様に実行可能である。具体的には、境界アドレス生成部１２０、メモリ入力選択部１７０、アドレス出力選択部１８０、データ出力選択部１９０は、それぞれ以下のように機能が設定される。
１’）境界アドレス生成部１２０では、設定信号deintにより、加減算器１２５は、乗算器１２４の出力と遅延器１２６の出力との加算を行う。マルチプレクサ１２７は、加減算器１２５の出力を上界アドレスとして出力する。マルチプレクサ１２８は、遅延器１２６の出力を下界アドレスとして出力する。また、第１〜第５の初期値が設定される。本設定は、モードＢと同様の設定である。
２）メモリ入力選択部１７０では、第３の設定により、インタリーブアドレスとインタリーブ前データとが選択され、それぞれアドレスとデータとして第１のメモリ１５０へ出力される。
３）アドレス出力選択部１８０では、第３の設定により、第３の設定により、レジスタファイル１４０の出力が選択され、インタリーブアドレス生成部１３０へ出力される。
４）データ出力選択部１９０では、第３の設定により、第１のメモリの出力が選択され、インタリーブ後データとして出力される。
５）バンクアドレス生成部２２０では、第４の設定により、マルチプレクサ２２５はマルチプレクサ２２３の出力を選択し、物理インタリーブアドレスとして出力する。
６）レジスタ入力選択部２３０では、第５の設定により、バンクアドレス生成部の出力（アドレス番号）が選択される。
（実際の通信に対する第２の実施形態の適用例）
以下では、実際の通信に対するインタリーブ処理装置２００の適用例を、モードＡ、モードＢについてそれぞれ１種類挙げて、図９を参照しながら説明を行う。
（１）モードＡの適用例
１つ目の例として、インタリーブ処理装置２００をＩＳＤＢ−Ｔの「バイトインタリーブ処理」に適用する場合について説明する。ＩＳＤＢ−Ｔのバイトインタリーブでは、メモリ使用量が少ないので、インタリーブアドレスの保存に拡張レジスタファイル２１０を用い、インタリーブ対象のデータの保存に第１のメモリ１５０を用いる。
【０１４０】
最初に、上位のコントローラ等によりインタリーブ処理装置２００への初期設定が行われる。すなわち、パス番号生成部１１０に第１の設定が、境界アドレス生成部１２０に第２の設定が、メモリ入力選択部１７０及びアドレス出力選択部１８０及びデータ出力選択部１９０に第３の設定が、レジスタ入力選択部２３０に第５の設定が行われる。
【０１４１】
以上の設定により、パス番号生成部１１０においてパス番号の最大値が”１１”に設定され、境界アドレス生成部１２０において初期値が（第１、第２、第３、第４、第５）＝（＊、１、＊、１７、０）に設定され、加減算器１２５において加算を行うように設定される。メモリ入力選択部１７０では、インタリーブアドレスとインタリーブ前データとが選択され、それぞれアドレスとデータとして第１のメモリ１５０へ出力される。アドレス出力選択部１８０では、拡張レジスタファイル２１０の出力が選択され、データ出力選択部１９０では、第１のメモリ１５０の出力が選択され、レジスタ入力選択部２３０ではパス番号の入力が選択される。なお、第１の初期値、第３の初期値は”１１”より大きい任意の整数である。
【０１４２】
また、拡張レジスタファイル２１０のパス番号１、２、３、…、１１に対応する各レジスタの初期値はそれぞれ”１６”、”５０”、”１０１”、…、”１１２１”に設定される（第ｎ番目のパスに対応するレジスタの初期値はｎ（ｎ＋１）×１７／２−１）。
【０１４３】
なお、モードＡの場合、第２のメモリは使用しないので、バンクアドレス生成部２２０に対する第４の設定は不要である。
【０１４４】
インタリーブ処理装置２００に対する第１〜第３、及び第５の設定は以上である。以降の動作は、第１の実施形態の動作と同様である。以上のようにして、ＩＳＤＢ−Ｔのバイトインタリーブ処理を行うことができる。
（２）モードＢの適用例
２つ目の例として、インタリーブ処理装置２００をＩＳＤＢ−Ｔの「時間インタリーブ処理」に適用する場合について説明する。ＩＳＤＢ−Ｔの時間インタリーブでは、メモリ使用量が多いので、インタリーブアドレスの保存に第１のメモリ１５０を用い、インタリーブ対象のデータの保存に第２のメモリ１６０を用いる。
【０１４５】
さらに、ここでは、本インタリーブ処理装置以外の装置と第２のメモリ１６０を共有する場合について図１３と図１４を用いて説明する。なお、実際の通信に対する第１の実施形態の適用例と同様に、今回はＩＳＤＢ−Ｔのパラメータはモード１、インタリーブの深さは”４”である場合を例に説明を行う。
【０１４６】
図１３は、実際の通信に対する第２の実施形態の適用例に係る、第２のメモリ１６０のメモリ領域の使用例を示す。
【０１４７】
インタリーブ処理装置２００は、第２のメモリ１６０を用いて時間インタリーブ処理を行うとき、図１３（ｂ）に示すように全領域に対して斜線の領域（自領域）をインタリーブ途中のデータの保存に利用する。ただし、インタリーブ処理装置２００は、第２のメモリを他装置と共有しており、グレーアウトした領域（他領域）は他装置によって使用されている。
【０１４８】
自領域は３領域に分割され、バンク＃０のサイズはＡ、バンク＃１のサイズはＢ、バンク＃２のサイズはＣであるものとする。また、自領域の間に確保されている他領域のサイズは、バンク＃０とバンク＃１の間はｄ１、バンク＃１とバンク＃２の間は＃２であるものとする。なお、図１３の白い領域は未使用の領域である。
【０１４９】
図１３（ａ）の仮想アドレスマップは、インタリーブ処理装置２００のインタリーブアドレス生成部１３０で生成された仮想インタリーブアドレスのアドレスマップである。図１３（ｂ）の物理アドレスマップは、インタリーブ処理装置２００のバンクアドレス生成部２２０により変換された物理インタリーブアドレスのアドレスマップである。例えば、図１３（ａ）におけるアドレスＡは、図１３（ｂ）におけるアドレス（Ａ＋ｄ１）にマッピングされる。図１３（ａ）におけるアドレス（Ａ＋１）は、図１３（ｂ）におけるアドレス（Ａ＋ｄ１＋１）にマッピングされる。
【０１５０】
図１４は、実際の通信に対する第２の実施形態の適用例に係る、拡張レジスタファイル２１０のレジスタ使用例を示す。図１４は、拡張レジスタファイル２１０において、偶数本目のレジスタに各バンクの上界アドレス（Ａ、Ｂ）が設定され、基数本目のレジスタに各バンク間の他領域のサイズの累積（ｄ１、ｄ１＋ｄ２）が設定されている様子を示す。
【０１５１】
最初に、上位のコントローラ等によりインタリーブ処理装置２００への初期設定が行われる。すなわち、パス番号生成部１１０に第１の設定が、境界アドレス生成部１２０に第２の設定が、メモリ入力選択部１７０及びアドレス出力選択部１８０及びデータ出力選択部１９０に第３の設定が行われる。
【０１５２】
以上の設定により、パス番号生成部１１０においてパス番号の最大値が”１１５１”に設定される。境界アドレス生成部１２０においては、初期値が（第１、第２、第３、第４、第５）＝（９６、５、９６、４、０）に設定され、加減算器１２５において加算を行うように設定される。メモリ入力選択部１７０では、パス番号とインタリーブアドレスとが選択され、それぞれアドレスとデータとして第１のメモリ１５０へ出力される。アドレス出力選択部１８０では第１のメモリ１５０の出力が選択され、データ出力選択部１９０では、第２のメモリ１６０の出力が選択される。また、拡張レジスタファイル２１０のパス番号１、２、３、…、１９２に対応する各レジスタの初期値は、各パスの上界アドレス−１に設定される。
【０１５３】
インタリーブ処理装置２００に対する、以上の第１〜第６の設定が終了すると、外部からのインタリーブ前データの入力を開始し、インタリーブ処理を開始する。
【０１５４】
まず、パス番号生成部１１０がパス番号を生成する。レジスタアドレス生成部２３０は、パス番号の入力を選択し、出力する。第１のメモリ１５０は、入力されたパス番号のアドレスに保存されているデータを出力する。アドレス出力選択部１８０は、レジスタファイル１４０の出力を選択し、出力する。境界アドレス生成部１２０は、第１〜第５の初期値に基づき入力されたパス番号に対して演算を行い、上界アドレスと下界アドレスを出力する。
【０１５５】
インタリーブアドレス生成部１３０は、アドレス出力選択部１８０の出力に”１”を加算し、入力された上界アドレスと前記加算結果を比較する。そして、前記加算結果の方が小さい場合は前記加算結果インタリーブアドレスとして出力し、上界アドレスと前記加算結果とが等しい場合には入力された下界アドレスを仮想インタリーブアドレスとして出力する。
【０１５６】
メモリ入力選択部１７０は、入力されたパス番号とインタリーブアドレス生成部１３０により生成されたインタリーブアドレスとを、それぞれアドレスとデータとして出力する。拡張レジスタファイル２１０は、レジスタ入力選択部２３０の出力に対応するレジスタから、ベースアドレスとスキップアドレスを１本の信号にまとめてベース・スキップアドレスとして出力する。
【０１５７】
バンクアドレス生成部２２０は、入力された仮想インタリーブアドレスと入力されたベースアドレスとを比較する。
【０１５８】
そして、バンクアドレス生成部２２０は、インタリーブアドレスの方が小さい場合は仮想インタリーブアドレスをそのまま出力する。この時、カウンタ値は更新せず、レジスタ番号として出力する。
【０１５９】
入力された仮想インタリーブアドレスと入力されたベースアドレスとが等しい、もしくは、前記ベースアドレスの方が大きい場合、バンクアドレス生成部２２０は、仮想インタリーブアドレスと入力されたスキップアドレスとを加算した結果を物理インタリーブアドレスとして出力する。この時、カウンタ２２４をカウントアップし、カウント値をレジスタ番号として出力する。
【０１６０】
第２のメモリ１６０は、入力された物理インタリーブアドレスからデータを取り出し出力した後、当該のアドレスにインタリーブ前データを保存する。データ出力選択部１９０は、第２のメモリ１６０から出力されたデータを、インタリーブ後データとして外部へ出力する。また、第１のメモリ１５０において、入力された仮想インタリーブアドレスは入力されたパス番号のアドレスにデータとして保管される。以上の一連の作業が終了したら、入力１データに対する作業は終了する。
【０１６１】
パス番号生成部１１０は、第１の設定により設定された最大値”１１５１”に達するまで、入力された１個のインタリーブ前データに対する上記の作業が終了するたびに、出力するパス番号をカウントアップする。そして、パス番号が最大値に達したか否かを確認する。パス番号が最大値に達していない場合は、次のパス番号についての処理が行われる。
【０１６２】
パス番号が最大値に達した場合、パス番号生成部１１０は、パス番号を”０”に初期化する。
【０１６３】
以上のようにして、インタリーブ処理装置２００は、入力された１個のインタリーブ前データ毎に上記の処理を行い、インタリーブ対象のデータがなくなるまで繰り返す。
【０１６４】
なお、パス０、９６、１９２、…、１０５６に関しては、インタリーブ前データは遅延を加える必要がないので、第２のメモリ１５０に入力されない。そのため、インタリーブ前データは、遅延を加えられることなく、そのままインタリーブ後データとしてインタリーブ処理装置２００の外へ出力される。
【０１６５】
以上、説明したように、本実施形態のインタリーブ処理装置２００には、第１〜第６の設定が行われる。そして、その設定に従って、各パスに対応するインタリーブアドレスの保存は、拡張レジスタファイル２１０もしくは第１のメモリ１５０が用いられる。インタリーブ対象のデータの保存には、第１のメモリ１５０もしくは第２のメモリ１６０が用いられる。従って、インタリーブ処理装置２００は、メモリ使用量の異なる畳み込みインタリーブ処理方式に対応することができる。
【０１６６】
さらに、本実施形態では、第２のメモリを他の装置と共有する場合においても、以上に示した第１の実施形態と同一の効果を得ることができる。
【０１６７】
なお、本実施形態では、インタリーブ処理装置２００を用いて畳み込みインタリーブ処理を行う動作例について説明したが、第１〜第６の設定を変更すれば、インタリーブ処理装置２００はデインタリーブ処理にも適用することができる。
（第３の実施形態）
本実施形態に係るインタリーブ処理装置の構成例のブロック図を図１５に示す。第３の実施形態に係るインタリーブ処理装置３００は、第１の実施形態のインタリーブ処理装置１００の構成のうち、境界アドレス生成部１２０に代えて、軽量型境界アドレス生成部１３０を備える。軽量型境界アドレス生成部１３０は、第７の設定に基づき演算を行い、各パスに割り当てられたメモリ領域の上界アドレスと下界アドレスを生成する。
【０１６８】
なお、図１５において、軽量型境界アドレス生成部１３０以外の構成に関しては、第１の実施形態に係るインタリーブ処理装置１００と同一である。インタリーブ処理装置１００のものと同一の要素については、同一の呼称と符号で示している。
【０１６９】
この構成によって、インタリーブ処理方式を単純な畳み込みインタリーブ方式に限定する場合、境界アドレス生成部の回路規模を削減できる。従って、第１の実施形態によって得られる効果に加えて、さらに回路規模を削減することができる。以下、これについてより詳細に説明する。
【０１７０】
軽量型境界アドレス生成部３１０の構成例のブロック図を図１６に示す。軽量型境界アドレス生成部３１０は、加減算器３１１と、遅延器３２２と、加減算器３２３と、遅延器３２４と、マルチプレクサ３２５、３２６とを備える。軽量型境界アドレス生成部３１０は、第７の設定によって与えられた第６〜第８の初期設定値に基づき２段の累算を行い、その演算結果を上界アドレス又は下界アドレスとして出力する。
【０１７１】
加減算器３１１は、第６の初期設定値と遅延器３２２出力との加算、又は遅延器３２２出力から第６の初期設定値の減算を行い、演算結果を出力する。加減算器３１１の演算機能は、インタリーブ処理装置３００の機能をインタリーブ又はデインタリーブに設定する設定信号deintによって、インタリーブ処理時には加算機能に設定され、デインタリーブ処理時には減算機能に設定される。
【０１７２】
遅延器３２２は、第７の初期設定値によって初期化され、１タイミング前の入力を出力、すなわち入力値を１タイミング遅延させて出力する。
【０１７３】
加減算器３２３は、遅延器３２２出力と遅延器３２４出力との加算、又は遅延器３２４出力から遅延器３２２出力の減算を行い、演算結果を出力する。加減算器３２３の演算機能も、インタリーブ処理装置３００の機能をインタリーブ又はデインタリーブに設定する設定信号deintによって、インタリーブ処理時には加算機能に設定され、デインタリーブ処理時には減算機能に設定される。
【０１７４】
遅延器３２４は第８の初期設定値によって初期化され、１タイミング前の入力を出力、すなわち入力値を１タイミング遅延させて出力する。
【０１７５】
マルチプレクサ３２５、３２６は、設定信号deintに従って、入力信号を選択し、それぞれ、上界アドレス、下界アドレスとして出力する。マルチプレクサ３２５は、インタリーブ処理時には加減算器３２３の出力を、デインタリーブ処理時には遅延器３２４の出力を、上界アドレスとして出力する。マルチプレクサ３２６は、インタリーブ処理時には遅延器３２４の出力を、デインタリーブ処理時には加減算器３２３の出力を、下界アドレスとして出力する。
【０１７６】
なお、インタリーブ処理装置３００の機能をインタリーブ又はデインタリーブのいずれかに固定するときは、加減算器３１１及び加減算器３２３を、加算器又は減算器に置き換え、マルチプレクサ３２５、３２６を削除することができる。すなわち、インタリーブ処理装置３００の機能をインタリーブに固定するときは、加減算器３１１、加減算器３２３を、それぞれ加算器３１１−１、加算器３２３−１に置き換え、マルチプレクサ３２５、３２６を削除すればよい。インタリーブ処理装置３００の機能をデインタリーブに固定するときは、加減算器３１１、加減算器３２３を、それぞれ減算器３１１−２、減算器３２３−２に置き換え、マルチプレクサ３２５、３２６を削除すればよい。
【０１７７】
図１６は、インタリーブ機能のみを備えるインタリーブ処理装置３００の境界アドレス生成部３１０−１のブロック図である。図１７は、デインタリーブ機能のみを備えるインタリーブ処理装置３００の、境界アドレス生成部３１０−２のブロック図である。
【０１７８】
軽量型境界アドレス生成部３１０の行う演算は、第７の設定によって与えられる第６〜第８の初期設定値をｉ６〜ｉ８とし、系列のインデックスとして前記パス番号を用いてｍ（ｍは自然数）、下階アドレスをｆ（ｍ−１）、上界アドレスをｆ（ｍ）とすると、次式によって表すことができる。ただし、ｉ７＝０、ｆ（０）＝ｉ８＝０とする。
【０１７９】
ｆ（ｍ）＝ｆ（ｍ−１）±ｍ×ｉ６
以上で説明した軽量型境界アドレス生成部３１０以外については、図２及び図６に示した第１の実施形態と同一である。
【０１８０】
以上の構成により、本インタリーブ処理装置で処理するインタリーブ処理方式を単純な畳み込みインタリーブ方式に限定する場合、第１の実施形態によって得られる効果に加えて、さらに回路規模を削減する効果を得ることができる。
【０１８１】
（第３の実施形態の動作）
図１９、２０は、本実施形態のインタリーブ処理装置の動作を示すフローチャートである。以上で説明したインタリーブ処理装置３００によるインタリーブ処理の動作について図１５、１９、２０を参照しながら説明する。
【０１８２】
最初に、上位のコントローラ等によりインタリーブ処理装置３００への初期設定が行われる（ステップＳ３０１）。すなわち、パス番号生成部１１０に第１の設定が、境界アドレス生成部１２０に第７の設定が、メモリ入力選択部１７０、アドレス出力選択部１８０及びデータ出力選択部１９０に第３の設定が行われる。
【０１８３】
パス番号生成部１１０への第１の設定により、パス番号の最大値が設定される。境界アドレス生成部１２０への第７の設定により、第６〜第８の初期設定値が設定される。メモリ入力選択部１７０、アドレス出力選択部１８０及びデータ出力選択部１９０への第３の設定により、それぞれへの複数の入力情報の中から、出力情報が選択される。
【０１８４】
なお、動作の説明を容易にするために、ここでは、インタリーブに要するメモリ量が少ない場合に適した設定（モードＢ）を例として用いる。具体的には、第２、第３の設定により、軽量型境界アドレス生成部３１０、メモリ入力選択部１７０、アドレス出力選択部１８０、データ出力選択部１９０は、それぞれ以下のように機能が設定される。
１）軽量型境界アドレス生成部３１０では、第７の設定により、加減算器３１１及び加減算器３２３が、２つの入力情報を加算するように設定される。
２）メモリ入力選択部１７０では、第３の設定により、インタリーブアドレスとインタリーブ前データとが選択され、それぞれアドレスとデータとして第１のメモリ１５０へ出力される。
３）アドレス出力選択部１８０では、第３の設定により、レジスタファイル１４０の出力が選択され、インタリーブアドレス生成部１３０へ出力される。
４）データ出力選択部１９０では、第３の設定により、第１のメモリの出力が選択され、インタリーブ後データとして出力される。
【０１８５】
なお、レジスタファイル１４０のパス番号１、２、３、…、（Ｄ−１）に対応する各レジスタの初期値は、それぞれ各パスに割り当てられたメモリ領域の上界アドレス−１の値が設定される。第１のメモリ１５０、第２のメモリ１６０の全領域は０に初期化される。
【０１８６】
インタリーブ処理装置３００に対する第１及び第３及び第７の設定が終了したら、外部からインタリーブ前データの入力を受け付け始め、インタリーブ処理を開始する。
【０１８７】
まず、パス番号生成部１１０はパス番号を生成する（ステップＳ３０２）。
【０１８８】
そして、レジスタファイル１４０は、パス番号生成部１１０の生成したパス番号に対応するレジスタに保存されているデータを出力する（ステップＳ３０３）。
【０１８９】
続いて、アドレス出力選択部１８０はレジスタファイル１４０の出力を選択し、出力する（ステップＳ３０４）。
【０１９０】
そして、軽量型境界アドレス生成部３１０は、第６〜第８の初期値に基づき累算を行い、上界アドレスと下界アドレスを出力する（ステップＳ３０５）。
【０１９１】
さらに、インタリーブアドレス生成部１３０は、アドレス出力選択部１８０の出力に１を加算し（ステップＳ３０６）、入力された上界アドレスと加算結果とを比較する（ステップＳ３０７）。
【０１９２】
そして、加算結果の方が小さい場合（ステップＳ３０７：Yes）、インタリーブアドレス生成部１３０は、前記加算結果インタリーブアドレスとして出力する（ステップＳ３０８）。上界アドレスと前記加算結果とが等しい場合（ステップＳ３０７：No）、インタリーブアドレス生成部１３０は、入力された下界アドレスをインタリーブアドレスとして出力する（ステップＳ３０９）。
【０１９３】
そして、メモリ入力選択部１７０は、インタリーブアドレス生成部１３０で生成されたインタリーブアドレスと、外部から入力されたインタリーブ前データをそれぞれアドレスとデータとして出力する（ステップＳ３１０）。
【０１９４】
また、第１のメモリ１５０は、インタリーブアドレス生成部１３０の生成したインタリーブアドレスからデータを取り出し出力した後、当該のアドレスにインタリーブ前データを保存する（ステップＳ３１１）。
【０１９５】
続いて、データ出力選択部１９０は、第１のメモリ１５０から出力されたデータを、インタリーブ後データとして外部へ出力する（ステップＳ３１２）。
【０１９６】
また、インタリーブアドレス生成部１３０の生成したインタリーブアドレスは、レジスタファイル１４０において、パス番号生成部１１０の生成したパス番号に対応するレジスタに保管される（ステップＳ３１３）。
【０１９７】
以上の一連の作業が終了したら、入力１データに対する作業は終了する。
【０１９８】
パス番号生成部１１０は、第１の設定により設定された最大値に達するまで入力された１個のインタリーブ前データに対する上記の作業が終了するたびに、出力するパス番号をカウントアップする（ステップＳ３１４）。そして、パス番号が最大値に達したか否かを確認する（ステップＳ３１５）。
【０１９９】
パス番号が最大値に達した場合（ステップＳ３１５：Yes）、パス番号生成部１１０はパス番号を初期化、すなわち”０”に戻し（ステップＳ３１６）、ステップＳ３０３へ戻る。
【０２００】
パス番号が最大値に達していない場合（ステップＳ３１５：No）は、ステップＳ３０２へ戻り、次のパス番号についての処理を行う。
【０２０１】
以上のようにして、インタリーブ処理装置３００は、入力された１個のインタリーブ前データ毎に上記の処理を行い、インタリーブ対象のデータがなくなるまで繰り返す。
【０２０２】
なお、上記説明ではモードＡを例として説明を行った。モードＢについては、第２、第３の設定によって、軽量型境界アドレス生成部３１０、メモリ入力選択部１７０、アドレス出力選択部１８０、及びデータ出力選択部１９０を上記の場合とは逆側に設定し、同様の処理を行うことで、同様に実行可能である。
（実際の通信に対する第３の実施形態の適用例）
以下では、実際の通信に対するインタリーブ処理装置３００の適用例を、メモリ使用量が小さい場合（ＩＳＤＢ−Ｔのバイトインタリーブ処理）に適用するモードＡについて、図１５を参照しながら説明する。
【０２０３】
ＩＳＤＢ−Ｔのバイトインタリーブでは、インタリーブに要するメモリ量が少ないので、インタリーブアドレスの保存にレジスタファイル１４０を用い、インタリーブ対象のデータの保存に第１のメモリ１５０を用いる。
【０２０４】
最初に、上位のコントローラ等によりインタリーブ処理装置３００への初期設定が行われる。すなわち、パス番号生成部１１０に第１の設定が、境界アドレス生成部３１０に第７の設定が、メモリ入力選択部１７０及びアドレス出力選択部１８０及びデータ出力選択部１９０に第３の設定が行われる。
【０２０５】
以上の設定により、パス番号生成部１１０においてパス番号の最大値が”１１”に設定される。軽量型境界アドレス生成部３１０においては、初期値が（第６、第７、第８）＝（１７、０、０）に設定され、加減算器３１１及び加減算器３２３において加算を行うように設定される。メモリ入力選択部１７０では、インタリーブアドレスとインタリーブ前データとが選択され、それぞれアドレスとデータとして第１のメモリ１５０へ出力される。アドレス出力選択部１８０では、レジスタファイル１４０の出力が選択され、データ出力選択部１９０では、第１のメモリ１５０の出力が選択される。
【０２０６】
また、レジスタファイル１４０のパス番号１、２、３、…、１１に対応する各レジスタの初期値はそれぞれ”１６”、”５０”、”１０１”、…、”１１２１”に設定される（第ｎ番目のパスに対応するレジスタの初期値はｎ（ｎ＋１）×１７／２−１）。
【０２０７】
インタリーブ処理装置３００に対する第１、第３、及び第７の設定は以上である。以降の動作は上記と同様である。以上のようにして、ＩＳＤＢ−Ｔのバイトインタリーブ処理を行うことができる。
【０２０８】
なお、パス０に関しては、第１の実施形態と同様に、インタリーブ前データに対しては遅延を加える必要がない。そのため、第１のメモリ１５０に入力され遅延を加えられることなく、そのままインタリーブ後データとしてインタリーブ処理装置の外へ出力される。
【０２０９】
ここでは、インタリーブ処理装置３００を用いて畳み込みインタリーブ処理を行う動作例について説明したが、設定信号deint、並びに第１、第３及び第７の設定を変更すればデインタリーブ処理も実行できる。
【０２１０】
本実施形態では、本インタリーブ処理装置で処理するインタリーブ処理方式を単純な畳み込みインタリーブ方式に限定する場合、以上に示した第１の実施形態と同一の効果に加えて、さらに回路規模を削減する効果を得ることができる。
【０２１１】
なお、以上の実施形態は各々他の実施形態と組み合わせることができる。例えば、第２の実施形態に第３の実施形態を組み合わせ、第２の実施形態に軽量型境界アドレス生成部を適用してもよい。
【符号の説明】
【０２１２】
１３１、２２１    加算器
１２７、１２８、１３３、２２３、３２５、３２６    マルチプレクサ
４１０    入力端子
４２０−１    シフトレジスタ
４３０    出力端子
【図１】
2013207381.tif 000003
【図２】
2013207381.tif 000004
【図３】
2013207381.tif 000005
【図４】
2013207381.tif 000006
【図５】
2013207381.tif 000007
【図６】
2013207381.tif 000008
【図７】
2013207381.tif 000009
【図８】
2013207381.tif 000010
【図９】
2013207381.tif 000011
【図１０】
2013207381.tif 000012
【図１１】
2013207381.tif 000013
【図１２】
2013207381.tif 000014
【図１３】
2013207381.tif 000015
【図１４】
2013207381.tif 000016
【図１５】
2013207381.tif 000017
【図１６】
2013207381.tif 000018
【図１７】
2013207381.tif 000019
【図１８】
2013207381.tif 000020
【図１９】
2013207381.tif 000021
【図２０】
2013207381.tif 000022
【図２１】
2013207381.tif 000023
【図２２】
2013207381.tif 000024