(57)【特許請求の範囲】
【請求項１】
機能の変更が可能な第１リコンフィギュラブル回路を備えた第１リコンフィギュラブルユニットと、
機能の変更が可能な第２リコンフィギュラブル回路を備えた第２リコンフィギュラブルユニットと、
前記第１のリコンフィギュラブル回路の出力を、前記第２のリコンフィギュラブル回路の入力に供給する接続部と、
を備え、
前記第２リコンフィギュラブルユニットは、前記接続部から供給される入力データを格納するメモリ部を備え、
前記メモリ部に格納された入力データは所定のタイミングで前記第２リコンフィギュラブル回路に供給され、
前記接続部は、前記第１のリコンフィギュラブル回路の出力を記憶する記憶部を有することを特徴とする処理装置。
【請求項２】
機能の変更が可能なリコンフィギュラブル回路を備えた複数のリコンフィギュラブルユニットと、
あるリコンフィギュラブル回路の出力を、他のリコンフィギュラブル回路の入力に供給する接続部と、を備え、
前記複数のリコンフィギュラブルユニットのうち、少なくとも１つのリコンフィギュラブルユニットは、前記接続部から供給される入力データを格納するメモリ部を備え、
前記メモリ部に格納された入力データは所定のタイミングで前記リコンフィギュラブルユニットが備えるリコンフィギュラブル回路に供給され、
前記接続部は、リコンフィギュラブル回路の出力を記憶する記憶部を有することを特徴とする処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、集積回路技術に関し、特にリコンフィギュラブル回路を備えた処理装置に関する。
【背景技術】
【０００２】
近年、アプリケーションに応じてハードウェアの動作を変更可能なリコンフィギュラブルプロセッサの開発が進められている。リコンフィギュラブルプロセッサを実現するためのアーキテクチャとしては、ＤＳＰ(Digital Signal Processor)や、ＦＰＧＡ(Field Programmable Gate Array)を用いる方法が存在する。
【０００３】
ＦＰＧＡ（Field Programmable Gate Array）はＬＳＩ製造後に回路データを書き込んで比較的自由に回路構成を設計することが可能であり、専用ハードウエアの設計に利用されている。ＦＰＧＡは、論理回路の真理値表を格納するためのルックアップテーブル（ＬＵＴ）と出力用のフリップフロップからなる基本セルと、その基本セル間を結ぶプログラマブルな配線リソースとを含む。ＦＰＧＡでは、ＬＵＴに格納するデータと配線データを書き込むことで目的とする論理演算を実現できる。しかし、ＦＰＧＡでＬＳＩを設計した場合、ＡＳＩＣ（Application Specific IC）による設計と比べると、実装面積が非常に大きくなり、コスト高になる。そこで、ＦＰＧＡを動的に再構成することで、回路構成の再利用を図る方法が提案されている（例えば、特許文献１参照。）。
【特許文献１】特開平１０−２５６３８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
例えば衛星放送では、季節などにより、放送モードを切り替えて画質の調整などを行うこともある。受信機では、放送モードごとに複数の回路を予めハードウェア上に作り込んでおき、放送モードに合わせて選択器で回路を切り替えて受信している。したがって、受信機の他の放送モード用の回路はその間、遊んでいることになる。モード切り替えのように、複数の専用回路を切り替えて使用し、その切り替え間隔が比較的長い場合、複数の専用回路を作り込む代わりに、切り替え時にＬＳＩを瞬時に再構成することにすれば、回路構造をシンプルにして汎用性を高め、同時に実装コストを抑えることができる。このようなニーズに応えるべく、動的に再構成可能なＬＳＩに製造業界の関心が集まっている。特に、携帯電話やＰＤＡ（Personal Data Assistance）などのモバイル端末に搭載されるＬＳＩは小型化が必須であり、ＬＳＩを動的に再構成し、用途に合わせて適宜機能を切り替えることができれば、ＬＳＩの実装面積を抑えることができる。
【０００５】
ＦＰＧＡは回路構成の設計自由度が高く、汎用的である反面、全ての基本セル間の接続を可能とするため、多数のスイッチとスイッチのＯＮ／ＯＦＦを制御するための制御回路を含む必要があり、必然的に制御回路の実装面積が大きくなる。また、基本セル間の接続に複雑な配線パターンをとるため、配線が長くなる傾向があり、さらに１本の配線に多くのスイッチが接続される構造のため、遅延が大きくなる。そのため、ＦＰＧＡによるＬＳＩは、試作や実験のために利用されるにとどまることが多く、実装効率、性能、コストなどを考えると、量産には適していない。さらに、ＦＰＧＡでは、多数のＬＵＴ方式の基本セルに構成情報を送る必要があるため、回路のコンフィグレーションにはかなりの時間がかかる。そのため、瞬時に回路構成の切り替えが必要な用途にはＦＰＧＡは適していない。
【０００６】
それらの課題を解決するため、近年、ＡＬＵ(Arithmetic Logic Unit)と呼ばれる基本演算機能を持つ多機能素子を多段に並べたＡＬＵアレイの検討が行われるようになった。ＡＬＵアレイでは、処理が上から下の一方向に流れるので、水平方向のＡＬＵを結ぶ配線は不要である。そのため、ＦＰＧＡと比較して回路規模を小さくすることが可能となる。リアルタイムで演算処理を行う場合、動作クロックの周波数が無限に速ければ、１つのＡＬＵアレイにより複雑な演算処理をリアルタイムで実行することができるが、現実には、無限に速いクロックは存在しない。そのため、リアルタイムでの処理が必要な場合、ＡＬＵアレイの処理能力の限界ために、１つのＡＬＵアレイではリアルタイム処理の要求を満たせないこともある。
【０００７】
本発明はこうした状況に鑑みてなされたもので、その目的は、複数のリコンフィギュラブル回路を利用することで、高速の演算処理を実行することのできる技術を提供することにある。
【課題を解決するための手段】
【０００８】
本発明のある態様の処理装置は、機能の変更が可能な第１リコンフィギュラブル回路を備えた第１リコンフィギュラブルユニットと、機能の変更が可能な第２リコンフィギュラブル回路を備えた第２リコンフィギュラブルユニットと、前記第１のリコンフィギュラブル回路の出力を、前記第２のリコンフィギュラブル回路の入力に供給する接続部と、を備え、前記第２リコンフィギュラブルユニットは、前記接続部から供給される入力データを格納するメモリ部を備え、前記メモリ部に格納された入力データは所定のタイミングで前記第２リコンフィギュラブル回路に供給され、前記接続部は、前記第１のリコンフィギュラブル回路の出力を記憶する記憶部を有することを特徴とする。
【０００９】
この態様の処理装置によると、第１のリコンフィギュラブル回路の出力を第２のリコンフィギュラブル回路の入力に供給することができるため、複数のリコンフィギュラブルユニット間でのデータの受け渡しが可能となる。
【００１０】
本発明の他の態様の処理装置は、機能の変更が可能なリコンフィギュラブル回路を備えた複数のリコンフィギュラブルユニットと、あるリコンフィギュラブル回路の出力を、他のリコンフィギュラブル回路の入力に供給する接続部と、を備え、前記複数のリコンフィギュラブルユニットのうち、少なくとも１つのリコンフィギュラブルユニットは、前記接続部から供給される入力データを格納するメモリ部を備え、前記メモリ部に格納された入力データは所定のタイミングで前記リコンフィギュラブルユニットが備えるリコンフィギュラブル回路に供給され、前記接続部は、リコンフィギュラブル回路の出力を記憶する記憶部を有することを特徴とする。
【００１１】
この態様の処理装置によると、あるリコンフィギュラブル回路の出力を、他のリコンフィギュラブル回路の入力に供給することができるため、複数のリコンフィギュラブルユニット間でのデータの受け渡しが可能となる。
【００１２】
前記リコンフィギュラブル回路は、複数種類の多ビット演算を選択的に実行可能な算術論理回路を有してもよい。
【００１３】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラムとして表現したものもまた、本発明の態様として有効である。
【発明の効果】
【００１４】
本発明によれば、複数のリコンフィギュラブル回路を備えた処理装置を提供することができる。
【発明を実施するための最良の形態】
【００１５】
（実施の形態１）
図１は、実施の形態１に係る処理装置１０の構成図である。処理装置１０は、集積回路装置２６を備える。集積回路装置２６は、回路構成を再構成可能とする機能を有する。集積回路装置２６は１チップとして構成され、リコンフィギュラブル回路１２、設定部１４、制御部１８、内部状態保持回路２０、出力回路２２および経路部２４を備える。リコンフィギュラブル回路１２は、設定を変更することにより、機能の変更を可能とする。
【００１６】
設定部１４は、第１設定部１４ａ、第２設定部１４ｂ、第３設定部１４ｃ、第４設定部１４ｄおよび選択器１６を有し、リコンフィギュラブル回路１２に所期の回路を構成するための設定データ４０を供給する。経路部２４は、フィードバックパスとして機能し、リコンフィギュラブル回路１２の出力を、リコンフィギュラブル回路１２の入力に接続する。内部状態保持回路２０および出力回路２２は、例えばデータフリップフロップ（Ｄ−ＦＦ）などの順序回路として構成され、リコンフィギュラブル回路１２の出力を受ける。内部状態保持回路２０は経路部２４に接続されている。リコンフィギュラブル回路１２は組合せ回路または順序回路等の論理回路として構成される。
【００１７】
リコンフィギュラブル回路１２は、機能の変更が可能な論理回路を有して構成される。具体的にリコンフィギュラブル回路１２は、複数の演算機能を選択的に実行可能な論理回路を複数段に配列させた構成を有し、前段の論理回路列の出力と後段の論理回路列の入力との接続関係を設定可能な接続部を含む。複数の論理回路は、マトリックス状に配置される。各論理回路の機能と、論理回路間の接続関係は、設定部１４により供給される設定データ４０に基づいて設定される。設定データ４０は、以下の手順で生成される。
【００１８】
集積回路装置２６により実現されるべきプログラム３６が、記憶部３４に保持されている。プログラム３６は、信号処理回路または信号処理アルゴリズムなどをＣ言語などの高級言語で記述したものである。コンパイル部３０は、記憶部３４に格納されたプログラム３６をコンパイルし、データフローグラフ３８に変換して記憶部３４に格納する。データフローグラフ３８は、入力変数および定数の演算の流れをグラフ構造で表現したものである。
【００１９】
設定データ生成部３２は、データフローグラフ３８から設定データ４０を生成する。設定データ４０は、データフローグラフ３８をリコンフィギュラブル回路１２にマッピングするためのデータであり、リコンフィギュラブル回路１２における論理回路の機能や論理回路間の接続関係を定める。実施の形態１では、設定データ生成部３２が、１つの回路を分割してできる複数の回路の設定データ４０を生成する。
【００２０】
図２は、１つの生成すべきターゲット回路４２を分割してできる複数の回路の設定データ４０について説明するための図である。１つのターゲット回路４２を分割して生成される回路を、「分割回路」と呼ぶ。この例では、１つのターゲット回路４２が、４つの分割回路、すなわち分割回路Ａ、分割回路Ｂ、分割回路Ｃ、分割回路Ｄに分割されている。ターゲット回路４２は、データフローグラフ３８における演算の流れにしたがって分割される。データフローグラフ３８において、上から下に向かう方向に演算の流れが表現される場合には、そのデータフローグラフ３８を上から所定の間隔で切り取り、その切り取った部分を分割回路として設定する。流れにしたがって切り取る間隔は、リコンフィギュラブル回路１２における論理回路の段数以下に定められる。ターゲット回路４２は、データフローグラフ３８の横方向で分割されてもよい。横方向に分割する幅は、リコンフィギュラブル回路１２における論理回路の１段当たりの個数以下に定められる。
【００２１】
特に、生成すべきターゲット回路４２がリコンフィギュラブル回路１２よりも大きい場合に、設定データ生成部３２は、リコンフィギュラブル回路１２にマッピングできる大きさになるように、ターゲット回路４２を分割することが好ましい。設定データ生成部３２は、リコンフィギュラブル回路１２における論理回路の配列構造とデータフローグラフ３８によって、ターゲット回路４２の分割方法を定める。リコンフィギュラブル回路１２の配列構造は、制御部１８から設定データ生成部３２に伝えられてもよく、また予め記憶部３４に記録されていてもよい。また、制御部１８が、ターゲット回路４２の分割方法を設定データ生成部３２に指示してもよい。
【００２２】
以上の手順を実行することにより、記憶部３４は、リコンフィギュラブル回路１２を所期の回路として構成するための複数の設定データ４０を記憶する。複数の設定データ４０は、分割回路Ａを構成するための設定データ４０ａ、分割回路Ｂを構成するための設定データ４０ｂ、分割回路Ｃを構成するための設定データ４０ｃ、および分割回路Ｄを構成するための設定データ４０ｄである。既述のごとく、複数の設定データ４０は、１つのターゲット回路４２を分割した複数の分割回路をそれぞれ表現したものである。このように、リコンフィギュラブル回路１２の回路規模に応じて、生成すべきターゲット回路４２の設定データ４０を生成することにより、汎用性の高い処理装置１０を実現することが可能となる。別の視点からみると、実施の形態１の処理装置１０によれば、回路規模の小さいリコンフィギュラブル回路１２を用いて、所望の回路を再構成することが可能となる。
【００２３】
図３は、リコンフィギュラブル回路１２の構成の一例を示す。リコンフィギュラブル回路１２は、複数の論理回路５０の列が複数段にわたって配列されたもので、各段に設けられた接続部５２によって、前段の論理回路列の出力と後段の論理回路列の入力が設定により任意に接続可能な構造となっている。ここでは、論理回路５０の例としてＡＬＵを示す。各ＡＬＵは、論理和、論理積、ビットシフトなどの複数種類の多ビット演算を設定により選択的に実行できる。各ＡＬＵは、複数の演算機能を選択するためのセレクタを有している。
【００２４】
図示のように、リコンフィギュラブル回路１２は、横方向にＹ個、縦方向にＸ個のＡＬＵが配置されたＡＬＵアレイとして構成される。第１段のＡＬＵ１１、ＡＬＵ１２、・・・、ＡＬＵ１Ｙには、入力変数や定数が入力され、設定された所定の演算がなされる。演算結果の出力は、第１段の接続部５２に設定された接続にしたがって、第２段のＡＬＵ２１、ＡＬＵ２２、・・・、ＡＬＵ２Ｙに入力される。第１段の接続部５２においては、第１段のＡＬＵ列の出力と第２段のＡＬＵ列の入力の間で任意の接続関係、あるいは予め定められた接続関係の組合せの中から選択された接続関係を実現できるように結線が構成されており、設定により所期の結線が有効となる。以下、第（Ｘ−１）段の接続部５２まで、同様の構成であり、最終段である第Ｘ段のＡＬＵ列は演算の最終結果を出力する。
【００２５】
図４は、リコンフィギュラブル回路１２の構成の別の例を示す。図４に示すリコンフィギュラブル回路１２は、図３に示すリコンフィギュラブル回路１２の機能をさらに拡張している。図４に示すリコンフィギュラブル回路１２において、接続部５２は、前後段のＡＬＵ列の接続関係を定めるだけでなく、外部から入力される変数や定数を、所期のＡＬＵに供給する機能を有している。また、接続部５２は、前段のＡＬＵの演算結果を外部に直接出力することもできる。この構成により、図３に示されるリコンフィギュラブル回路１２の構成よりも多様な組合せ回路を構成することが可能となり、設計の自由度が向上する。
【００２６】
図５は、データフローグラフ３８の例を示す図である。データフローグラフ３８においては、入力される変数や定数の演算の流れが段階的にグラフ構造で表現されている。図中、演算子は丸印で示されている。設定データ生成部３２は、このデータフローグラフ３８をリコンフィギュラブル回路１２にマッピングするための設定データ４０を生成する。実施の形態１では、特にデータフローグラフ３８をリコンフィギュラブル回路１２にマッピングしきれない場合に、データフローグラフ３８を複数の領域に分割して、分割回路の設定データ４０を生成する。データフローグラフ３８による演算の流れを回路上で実現するべく、設定データ４０は、演算機能を割り当てる論理回路を特定し、また論理回路間の接続関係を定め、さらに入力変数や入力定数などを定義したデータとなる。したがって、設定データ４０は、各論理回路５０の機能を選択するセレクタに供給する選択情報、接続部５２の結線を設定する接続情報、必要な変数データや定数データなどを含んで構成される。
【００２７】
図１に戻って、回路の構成時、制御部１８は、１つの回路を構成するための複数の設定データ４０を選択する。ここでは、制御部１８が、図２に示すターゲット回路４２を構成するための設定データ４０、すなわち分割回路Ａの設定データ４０ａ、分割回路Ｂの設定データ４０ｂ、分割回路Ｃの設定データ４０ｃおよび分割回路Ｄの設定データ４０ｄを選択するものとする。制御部１８は、選択した設定データ４０を設定部１４に供給する。設定部１４はキャッシュメモリや他の種類のメモリを有し、供給される設定データ４０をそれぞれ保持する。具体的に制御部１８は、設定データ４０ａを第１設定部１４ａに、設定データ４０ｂを第２設定部１４ｂに、設定データ４０ｃを第３設定部１４ｃに、設定データ４０ｄを第４設定部１４ｄに供給する。なお、本例においては、制御部１８が記憶部３４から設定データ４０を受けて、その設定データを設定部１４に供給する構成について説明するが、制御部１８を設けることなく、予め設定部１４に設定データを格納しておいてもよい。
【００２８】
設定部１４は、選択された設定データ４０をリコンフィギュラブル回路１２に設定し、リコンフィギュラブル回路１２の回路を再構成する。これにより、リコンフィギュラブル回路１２は、所期の演算を実行できる。リコンフィギュラブル回路１２は、基本セルとして高性能の演算能力のあるＡＬＵを用いており、またリコンフィギュラブル回路１２および設定部１４を１チップ上に構成することから、コンフィグレーションを高速に、例えば１クロックで実現することができる。制御部１８はクロック機能を有し、クロック信号は、内部状態保持回路２０および出力回路２２に供給される。また制御部１８はカウンタ回路を含み、カウント信号を選択器１６に供給してもよい。この場合、カウンタ回路は４進カウンタである。
【００２９】
図６は、実施の形態１における信号処理のフローチャートを示す。制御部１８は、カウンタ回路からのカウント信号に合わせて、リコンフィギュラブル回路１２に複数の設定データ４０、すなわち設定データ４０ａ、設定データ４０ｂ、設定データ４０ｃおよび設定データ４０ｄを順次供給するように設定部１４を制御する。設定部１４が、複数の設定データ４０をリコンフィギュラブル回路１２に順次供給することにより、全体として１つの回路が構成されることになる。出力回路２２は、設定部１４によりリコンフィギュラブル回路１２が複数回、ここでは４回構成されると、リコンフィギュラブル回路１２の出力を出力する。この回数は、使用する設定データ４０の個数となる。以下、具体的な手順を示す。
【００３０】
まず、制御部１８が、選択器１６を制御して第１設定部１４ａを選択する。選択器１６は、カウンタ回路により制御されてもよい。第１設定部１４ａは、分割回路Ａの設定データ４０ａをリコンフィギュラブル回路１２に供給し、リコンフィギュラブル回路１２上に分割回路Ａを構成する（Ｓ１０）。分割回路Ａが構成されると同時に、入力データが分割回路Ａに供給される。組合せ回路である分割回路Ａは、次のクロック信号までの間に、演算処理を実行する。
【００３１】
制御部１８がクロック信号を内部状態保持回路２０に供給すると、内部状態保持回路２０は、分割回路Ａによる処理結果を保持する（Ｓ１２）。Ｓ１０およびＳ１２のステップを第１サイクルと呼ぶ。同時に、制御部１８が、選択器１６を制御して第２設定部１４ｂを選択する。第２設定部１４ｂは、分割回路Ｂの設定データ４０ｂをリコンフィギュラブル回路１２に供給し、リコンフィギュラブル回路１２上に分割回路Ｂを構成する。このとき、内部状態保持回路２０に保持された分割回路Ａの処理結果が、経路部２４を通って分割回路Ｂの入力に供給される（Ｓ１４）。分割回路Ｂは、次のクロック信号までの間に、演算処理を実行する。
【００３２】
制御部１８が次のクロック信号を内部状態保持回路２０に供給すると、内部状態保持回路２０は、分割回路Ｂの処理結果を保持する（Ｓ１６）。Ｓ１４およびＳ１６のステップを第２サイクルと呼ぶ。同時に、制御部１８が、選択器１６を制御して第３設定部１４ｃを選択する。第３設定部１４ｃは、分割回路Ｃの設定データ４０ｃをリコンフィギュラブル回路１２に供給し、リコンフィギュラブル回路１２上に分割回路Ｃを構成する。このとき、内部状態保持回路２０に保持された分割回路Ｂの処理結果が、経路部２４を通って分割回路Ｃの入力に供給される（Ｓ１８）。分割回路Ｃは、次のクロック信号までの間に、演算処理を実行する。
【００３３】
制御部１８が次のクロック信号を内部状態保持回路２０に供給すると、内部状態保持回路２０は、分割回路Ｃの処理結果を保持する（Ｓ２０）。Ｓ１８およびＳ２０のステップを第３サイクルと呼ぶ。同時に、制御部１８が、選択器１６を制御して第４設定部１４ｄを選択する。第４設定部１４ｄは、分割回路Ｄの設定データ４０ｄをリコンフィギュラブル回路１２に供給し、リコンフィギュラブル回路１２上に分割回路Ｄを構成する。このとき、内部状態保持回路２０に保持された分割回路Ｃの処理結果が、経路部２４を通って分割回路Ｄの入力に供給される（Ｓ２２）。分割回路Ｄは、次のクロック信号までの間に、演算処理を実行する。
【００３４】
制御部１８が次のクロック信号を出力回路２２に供給すると、出力回路２２は、分割回路Ｄの処理結果を出力する（Ｓ２４）。Ｓ２２およびＳ２４のステップを第４サイクルと呼ぶ。第１サイクルから第４サイクルまでの処理を繰り返し行う場合には、再度、制御部１８が選択器１６を制御して第１設定部１４ａを選択し、リコンフィギュラブル回路１２上に分割回路Ａを構成して、入力データが供給される。
【００３５】
以上のように、１つのターゲット回路４２を分割した複数の分割回路Ａ〜Ｄをリコンフィギュラブル回路１２上に順次構成し、各分割回路の出力を次の分割回路の入力にフィードバックして各分割回路における演算処理を実行し、最後に構成された分割回路Ｄから、ターゲット回路４２の出力を取り出す。Ｓ１０からＳ２４までにかかる時間は４クロック分であり、実施の形態１の処理装置１０によると、限られたリコンフィギュラブル回路１２の回路規模のなかで、効率よい演算処理を実行することができる。また、リコンフィギュラブル回路１２の回路規模が小さいため、消費電力も小さくできる。
【００３６】
制御部１８は、内部状態保持回路２０および出力回路２２に同一のクロック信号を供給してもよいが、出力回路２２に供給するクロック信号の周期を、内部状態保持回路２０に供給するクロック信号の周期の４倍に設定してもよい。内部状態保持回路２０および出力回路２２に同一のクロック信号を供給する場合は、内部状態保持回路２０に出力回路２２の役目をもたせ、１つの回路にまとめることもできる。この場合は、出力先の回路以降で必要な信号を取り出すための回路が必要となる。図５に示した例では１つのターゲット回路４２を４サイクルの分割回路で表現したため、出力回路２２の動作周期が内部状態保持回路２０の動作周期の４倍となっているが、周期の比は、ターゲット回路４２の分割数に応じて変化する。また、この例では第１設定部１４ａ〜第４設定部１４ｄの４つの設定部を利用したが、この数もターゲット回路４２の分割数に応じて変動することは当業者に容易に理解されるところである。なお、特に説明はしていないが、論理回路５０および接続部５２についてＤ−ＦＦを付加して、いわゆるパイプライン処理を行うことも可能である。
【００３７】
図７は、前後７点を利用する７タップからなるＦＩＲフィルタ回路を示す。以下、このＦＩＲ（Finite Impulse Response）フィルタ回路を、実施の形態１における処理装置１０で実現する具体例を示す。このＦＩＲフィルタ回路の係数は、図示のごとく、対称に設定されている。
【００３８】
図８は、図７で示すＦＩＲフィルタ回路を置き換えた回路を示す。回路の置き換えは、フィルタ係数の対称性を利用している。
【００３９】
図９は、図８で示すＦＩＲフィルタ回路をさらに置き換えた回路を示す。ここでは、フィルタ係数に着目した置き換えを行っている。具体的には、係数1/16を1/2×1/2×1/2×1/2に、2/16を1/2×1/2×1/2に、8/16を1/2に置き換えている。係数1/2の演算はデータを右に１ビットシフトすることで実現できる。１ビットシフタは、複数ビットシフタと比べて、ＡＬＵ内において非常に小さいスペースで形成することができる。
【００４０】
図１０は、図９に示すＦＩＲフィルタ回路をコンパイルして作成したデータフローグラフ３８ａを示す。図中、“＋”は加算を示し、“＞＞１”は１ビットのシフトを示し、“ＭＯＶ”はスルー用のパスを示す。図示のごとく、データフローグラフ３８ａは、７段の演算子で構成される。
【００４１】
図１１は、実施例で使用するリコンフィギュラブル回路１２を示す。実施例では、リコンフィギュラブル回路１２が、４列２段のＡＬＵを含んで構成される。
【００４２】
図１２は、図１０に示すデータフローグラフ３８ａを、図１１のリコンフィギュラブル回路１２を用いて実現する例を示す。データフローグラフ３８ａが７段で構成され、リコンフィギュラブル回路１２が２段で構成されていることから、データフローグラフ３８ａは、４つに分割される。
【００４３】
第１サイクルでは、第１設定部１４ａが、データフローグラフ３８ａの第１段および第２段の内容を、設定データ４０ａによりリコンフィギュラブル回路１２上に構成する。第２サイクルでは、第２設定部１４ｂが、データフローグラフ３８ａの第３段および第４段の内容を、設定データ４０ｂによりリコンフィギュラブル回路１２上に構成する。第３サイクルでは、第３設定部１４ｃが、データフローグラフ３８ａの第５段および第６段の内容を、設定データ４０ｃによりリコンフィギュラブル回路１２上に構成する。第４サイクルでは、第４設定部１４ｄが、データフローグラフ３８ａの第７段の内容を、設定データ４０ｄによりリコンフィギュラブル回路１２上に構成する。各サイクルにおける出力結果は、次のサイクルの入力としてフィードバックされる。
【００４４】
この例において、ＡＬＵは、“＋”、“＞＞１”、“ＭＯＶ”の３種類のみで実現することができる。複数ビットのシフトを、１ビットシフタを複数回利用することにより表現することとしたため、必要とされるＡＬＵの機能を非常に少なくすることができる。これにより、リコンフィギュラブル回路１２の回路規模を小さくできる。なお、４種類の設定データ４０を供給するため、制御部１８におけるカウンタ回路は、４進カウンタとなる。
【００４５】
図１３は、図８に示すＦＩＲフィルタ回路をコンパイルして作成したデータフローグラフ３８ｂを示す。図中、“＋”は加算を、“ＭＯＶ”はスルー用のパスを、“＞＞４”は４ビットのシフトを、“＞＞３”は３ビットのシフトを、“＞＞１”は１ビットのシフトを示す。図９の例では、複数ビットのシフトを１ビットシフトにおとしてデータフローグラフ３８ａを作成したが、図１２の例では、複数ビットのシフトをそのままにデータフローグラフ３８ｂを作成している。図示のごとく、データフローグラフ３８ｂは、４段の演算子で構成される。
【００４６】
図１４は、図１３に示すデータフローグラフ３８ｂを、図１１のリコンフィギュラブル回路１２を用いて実現する例を示す。データフローグラフ３８ｂが４段で構成され、リコンフィギュラブル回路１２が２段で構成されていることから、データフローグラフ３８ｂは、２つに分割される。
【００４７】
第１サイクルでは、第１設定部１４ａが、データフローグラフ３８ｂの第１段および第２段の内容を、設定データ４０ａによりリコンフィギュラブル回路１２上に構成する。第２サイクルでは、第２設定部１４ｂが、データフローグラフ３８ｂの第３段および第４段の内容を、設定データ４０ｂによりリコンフィギュラブル回路１２上に構成する。第１サイクルにおける出力結果は、次の第２サイクルの入力としてフィードバックされる。
【００４８】
この例において、ＡＬＵは、“＋”、“＞＞４”、“＞＞３”、“＞＞１”、“ＭＯＶ”の５種類で実現することができる。実施例１と比較すると、必要なＡＬＵの機能は増加するが、使用する設定部の数は２つと減少している。なお、２種類の設定データ４０を供給するため、制御部１８におけるカウンタ回路は、２進カウンタとなる。また、出力回路２２の動作周期は、内部状態保持回路２０の動作周期の２倍となる。
【００４９】
（実施の形態２）
上記した実施の形態１の構成においては、リコンフィギュラブル回路１２の出力を経路部２４からリコンフィギュラブル回路１２の入力に直接供給する例について説明した。実施の形態２においては、リコンフィギュラブル回路１２の出力を一旦記憶し、所定のタイミングでリコンフィギュラブル回路１２の入力に供給することのできる方式について説明する。
【００５０】
図１５は、実施の形態２に係る処理装置１０の構成図である。実施の形態２に係る処理装置１０は、図１に示した実施の形態１に係る処理装置１０と比較して、集積回路装置２６がメモリ部２７および経路部２９をさらに備える点で異なっている。なお、集積回路装置２６は、さらに切替回路２８を有しており、切替回路２８がリコンフィギュラブル回路１２への入力切替およびデータ供給タイミングを調整することで、内部状態保持回路２０を省略することも可能となる。
【００５１】
メモリ部２７は、制御部１８からの指示に基づき、リコンフィギュラブル回路１２から出力されるデータ信号および／または外部から入力されるデータ信号を格納するための記憶領域を有する。制御部１８からの指示に基づき格納されたデータ信号は、経路部２９を通じてリコンフィギュラブル回路１２の入力として伝達される。このように、実施の形態２においては、リコンフィギュラブル回路１２の出力を再度リコンフィギュラブル回路１２の入力にフィードバックする接続経路が、経路部２４、２９の２系統存在する。経路部２４は、メモリ部２７を介さないために高速にフィードバック処理することが可能である。上記のように、内部状態保持回路２０を設けないことで、リコンフィギュラブル回路１２の出力は、経路部２４から直接切替回路２８に供給されることになる。特に、メモリ部２７が低速で動作処理する場合には、経路部２４は、経路部２９よりも高速に切替回路２８にデータを伝達することができる。一方で、経路部２９は、制御部１８からの指示により所定のタイミングでデータ信号を切替回路２８に供給することができる。
【００５２】
このように、経路部２４または経路部２９は、リコンフィギュラブル回路１２上に再構成する回路に応じて適宜使い分けられる。リコンフィギュラブル回路１２の再構成時に、ただちにリコンフィギュラブル回路１２の出力が必要な場合には経路部２４を介してデータを伝送すればよい。一方、リコンフィギュラブル回路１２の再構成後に構成する回路にリコンフィギュラブル回路１２の出力が必要な場合には、一旦、その出力データをメモリ部２７に格納しておき、必要なタイミングで経路部２９を介してデータを伝送すればよい。
【００５３】
切替回路２８は、経路部２４、２９を介してフィードバックされる入力データを、選択器１６から出力される切替指示に基づいて選択的にリコンフュギラブル回路１２に入力する。具体的には、第１設定部１４ａ〜第４設定部１４ｄの制御部１８の選択に伴い、設定される設定データに基づいた所定のタイミングで選択器１６から切替指示が供給される。その他の点は図１で示される集積回路装置２６の構成と同様である。
【００５４】
なお、図１５の例では、メモリ部２７に外部からのデータ入力が行われる例について示しているが、別の例では、外部からのデータを切替回路２８に直接入力してもよい。なお、図示の例のように、メモリ部２７において外部入力を記憶させることで、外部入力をメモリ部２７から所定のタイミングで切替回路２８に供給することが可能となり、集積回路装置２６内におけるタイミング同期の実現が容易となる。
【００５５】
図１６は、メモリ部２７の構成を示す図である。メモリ部２７は、ＲＡＭスイッチ７０およびＲＡＭ７１とを有する。この例では、メモリ部２７に、外部からデータ信号が入力される。なお、図１５に関連して説明したように、外部入力は切替回路２８に供給されてもよい。
【００５６】
ＲＡＭスイッチ７０には、外部入力と、リコンフィギュラブル回路１２の出力とが入力される。制御部１８は、ＲＡＭスイッチ７０に対して入力を選択するための選択信号を供給する。このようにして選択されたデータは、ＲＡＭ７１に記憶される。具体的に、制御部１８は、ＲＡＭ７１に対してＲ／ＷアドレスおよびＷイネーブル信号を供給する機能をもち、ＲＡＭ７１は、制御部１８から供給されるＷアドレスおよびＷイネーブル信号に基づいて、選択されたデータを記憶する。制御部１８の処理手順は設定データに基づいて定められるものであって、制御部１８は、コマンドメモリに記憶されたデータをシーケンシャルに読み出すことで、処理装置１０における各構成にデータを供給するものであってよい。
【００５７】
（実施の形態３）
リアルタイムで演算処理を行う場合、動作クロックの周波数が無限に速ければ、１つのリコンフィギュラブル回路１２により全ての演算処理を実行することができる。しかしながら現実には、無限に速いクロックは存在しないため、１つのリコンフィギュラブル回路１２による処理では、複雑な演算をリアルタイムで実行することが困難な場合も生じる。そのため、実施の形態３では、高速な演算処理を得意とする処理装置を示す。
【００５８】
図１７は、実施の形態３に係る処理装置１０の構成を示す。図１７では、処理装置１０の構成のうち、実施の形態２におけるメモリ部２７を備えた集積回路装置２６（図１５参照）に対応する構成を示しており、設定データ４０を生成する構成などは省略している。
【００５９】
実施の形態３において、処理装置１０は、複数のリコンフィギュラブルユニット１００ａおよび１００ｂを備える。リコンフィギュラブルユニット１００ａおよび１００ｂのそれぞれは、図１５において集積回路装置２６の内部構成として示した構成に対応しており、実施の形態３では、２つのリコンフィギュラブルユニット１００が１つの集積回路装置として１チップ上に形成されることが好ましい。
【００６０】
図１７に示す処理装置１０において、リコンフィギュラブルユニット１００ａは、リコンフィギュラブル回路１２ａ、経路部２４ａ、メモリ部２７ａ、切替回路２８ａ、経路部２９ａ、コマンドメモリ７２ａを備える。コマンドメモリ７２ａは、設定部１４の構成として設けられ、制御部１８におけるプログラムカウンタなどのカウント値をもとに、記憶した設定データを順次読み出す機能をもつ。なお、図１および図１５に示した設定部１４は、コマンドメモリ７２ａ自体であってもよい。メモリ部２７ａは、ＲＡＭスイッチ７０ａおよびＲＡＭ７１ａを有する。ＲＡＭスイッチ７０ａには、外部からの入力が供給される。さらにリコンフィギュラブルユニット１００ａは、リコンフィギュラブル回路１２ａの出力を外部に読み出すための出力部１０４を有する。なお、出力部１０４における出力回路２２については図示を省略している。また、経路部２４ａにおいて内部状態保持回路２０が設けられていてもよい。
【００６１】
リコンフィギュラブルユニット１００ｂは、リコンフィギュラブル回路１２ｂ、経路部２４ｂ、メモリ部２７ｂ、切替回路２８ｂ、経路部２９ｂ、コマンドメモリ７２ｂを備える。メモリ部２７ｂは、ＲＡＭスイッチ７０ｂおよびＲＡＭ７１ｂを有する。さらにリコンフィギュラブルユニット１００ｂは、外部からデータを入力するための入力部１０６を有する。ＲＡＭスイッチ７０ｂは、入力部１０６から外部入力を供給される。なお、出力部１０８における出力回路２２については図示を省略している。
【００６２】
リコンフィギュラブルユニット１００ａの出力部１０４と、リコンフィギュラブルユニット１００ｂの入力部１０６とは、リコンフィギュラブル回路１２ａの出力をリコンフィギュラブル回路１２ｂの入力に供給する接続部として機能する。出力部１０４と入力部１０６の間には記憶部が設けられ、この記憶部も含めて、リコンフィギュラブル回路１２ａの出力をリコンフィギュラブル回路１２ｂの入力に供給する接続部と呼んでもよい。この記憶部はＦＩＦＯ１０２として構成される。ＦＩＦＯ１０２は、出力部１０４から供給されるリコンフィギュラブル回路１２ａの出力を記憶する。なお、ＲＡＭ７１ａがＦＩＦＯ１０２にリコンフィギュラブル回路１２ａの出力を供給してもよく、この場合には、ＲＡＭ７１ａからの出力ラインが、接続部を構成することになる。
【００６３】
コマンドメモリ７２ａは、リコンフィギュラブルユニット１００ａにおける各構成の動作を定める設定データを保持している。これは、実施の形態１および実施の形態２において、設定部１４の機能として説明したとおりである。コマンドメモリ７２ｂについても同様である。実施の形態３において、コマンドメモリ７２ａおよびコマンドメモリ７２ｂは、ＦＩＦＯ１０２に対して所定のコマンドを供給する機能ももつ。
【００６４】
コマンドメモリ７２ａは、ＦＩＦＯ１０２に対してライトイネーブル（ＷＥ）信号を供給し、リコンフィギュラブル回路１２ａの出力をＦＩＦＯ１０２に書き込ませる。コマンドメモリ７２ｂは、ＦＩＦＯ１０２に対してリードイネーブル（ＲＥ）信号を供給し、ＦＩＦＯ１０２に記憶されたデータをＲＡＭスイッチ７０ｂに読み出させる。図１６を参照して、ＲＡＭスイッチ７０ｂには、リコンフィギュラブル回路１２ｂの出力と、外部入力としてＦＩＦＯ１０２の出力が供給されることになる。このように、コマンドメモリ７２ａは、ＦＩＦＯの書込みを制御する書込制御部として機能し、コマンドメモリ７２ｂは、ＦＩＦＯ１０２の読出しを制御する読出制御部として機能する。なお、各コマンドメモリ７２は、制御部１８におけるプログラムカウンタによりデータの読出しを制御される。この意味において、ＦＩＦＯ１０２の書込みおよび／または読出しは、制御部１８によって制御されているといってもよい。
【００６５】
リコンフィギュラブル回路１２ａの出力を記憶する記憶部を、ＦＩＦＯ１０２で構成することにより、リコンフィギュラブルユニット１００ｂは、所望のタイミングでＦＩＦＯ１０２からデータを取得することが可能となる。これにより、リコンフィギュラブル回路１２ａおよびリコンフィギュラブル回路１２ｂの入出力のタイミングを必ずしも同期させる必要がなく、各リコンフィギュラブル回路１２が、互いに独立して演算処理を実行することができる。互いの入出力を同期させる必要がないため、処理装置１０全体の動作制御が容易となる利点がある。また、入力部１０６から供給されるデータをメモリ部２７ｂに一旦記憶させることで、リコンフィギュラブル回路１２ｂにデータ出力するタイミングを揃えることが可能となる。
【００６６】
リコンフィギュラブル回路１２ａおよびリコンフィギュラブル回路１２ｂに構成するターゲット回路は、並列に処理可能なものであることが好ましい。また、図１７では、説明の便宜上、リコンフィギュラブル回路１２ａの出力をリコンフィギュラブル回路１２ｂの入力に供給する例を示したが、リコンフィギュラブル回路１２ｂの出力をリコンフィギュラブル回路１２ａの入力に供給する構成をさらに備えることが好ましい。これにより、互いの接続設定に柔軟性を持たせることができるため、汎用性の高い処理装置１０を構成することが可能となる。実施の形態の処理装置１０によると、各リコンフィギュラブル回路１２の出力をシリアルなデータ単位で取り扱うため、リコンフィギュラブル回路間の結線に必要な回路が少なくなり、回路の小型化、低消費電力化、および低遅延を実現することが可能となる。
【００６７】
また、図１７には２つのリコンフィギュラブル回路１２のみを示したが、３つ以上のリコンフィギュラブル回路１２が存在していてもよい。３つ以上のリコンフィギュラブル回路１２が存在する場合、あるリコンフィギュラブル回路１２の出力は、他の残りのリコンフィギュラブル回路１２の入力に供給されることが好ましい。すなわち、接続部は、リコンフィギュラブル回路同士の接続を任意に設定可能としてもよい。これにより、リコンフィギュラブル回路１２間でのデータの受け渡しが容易となるため、汎用性および処理能力の高い処理装置１０を実現できる。なお、接続部の回路規模を小さくするために、例えば接続部は、リコンフィギュラブル回路同士の接続を、所定の制約の下で設定可能としてもよい。この場合、例えばリコンフィギュラブル回路同士の接続を隣接するもの同士とする制約を課すことで、回路規模の減縮を実現できる。
【００６８】
図１８は、ＢＰＳＫ信号を復調するための復調回路を示す。変調されたアナログ入力は、アナログ処理部１１０によりＩ成分とＱ成分を抽出され、デジタル処理部１２０にて復調される。以下では、デジタル処理部１２０をリコンフィギュラブル回路１２上に構成する方法について説明する。
【００６９】
デジタル処理部１２０は、ＦＩＲフィルタ回路１２２、ＦＩＲフィルタ回路１２４、復調処理回路１３０およびＦＩＲフィルタ回路１４０を含む。ＦＩＲフィルタ回路１２２は、入力信号Ｉの入力を受けて中間出力信号ＭＩを出力する。ＦＩＲフィルタ回路１２４は、入力信号Ｑを受けて中間出力信号ＭＱを出力する。復調処理回路１３０は、中間出力信号ＭＩ、ＭＱの入力を受けて復調処理し、フィードバック制御出力信号Ｙ１と、中間出力信号ＰＹ２を出力する。ＦＩＲフィルタ回路１４０は、中間出力信号ＰＹ２を受けて、復調出力信号Ｙ２を出力する。ＦＩＲフィルタ回路１２２、１２４、１４０は、図７〜図１０に関連して説明したＦＩＲフィルタ回路の構成を有する。
【００７０】
復調処理回路１３０は、ループフィルタ１３６、乗算器１３４および正負判定回路１３２（ＳＧＮ）とで構成されている。正負判定回路１３２は、中間出力信号ＭＩの入力を受けて、判定結果に基づいて中間出力信号ＰＹ２を出力する。乗算器１３４は、中間出力信号ＭＩ、ＭＱの入力を受けて、乗算結果をループフィルタ１３６に出力する。ループフィルタ１３６は、乗算器１３４からの出力信号を受けて、フィードバック制御出力信号Ｙ１を出力する。なお、フィードバック制御出力信号Ｙ１は、アナログ処理部１１０にフィードバック入力される制御信号である。
【００７１】
図１９は、ループフィルタ１３６の構成を示す。ループフィルタ１３６は、加算器１４２の出力を遅延部１４４にて遅延して加算器１４２にフィードバックする積分器と、適当な係数を乗算する乗算器１４６とを有する。ここでは、乗算器１４６が、係数1/2を積分器の出力に掛けている。
【００７２】
図２０は、図１８に示す復調処理回路１３０をコンパイルして作成したデータフローグラフ３８ｃを示す。図中、“×”は乗算を示し、“ＳＧＮ”は正負判定を示す。他の演算子については既述したのと同様である。図示のごとく、データフローグラフ３８ｃは、３段の演算子で構成される。ＭＩは、ＦＩＲフィルタ回路１２２の中間出力信号、ＭＱは、ＦＩＲフィルタ回路１２４の中間出力信号を示す。またＭＹは、ループフィルタ１３６の積分器の出力であり、ＭＹ’は、遅延した積分器の出力、すなわち加算器１４２へのフィードバック入力を示す。
【００７３】
図２１は、ＦＩＲフィルタ回路のリコンフィギュラブル回路１２への実装の形態を示す。ここでは、リコンフィギュラブル回路１２が２段のＡＬＵアレイにより構成されている場合を例にとる。したがって、１回の処理は、２段のＡＬＵアレイにより実行される。ここでＦＩＲフィルタ回路は、図９に示されたものを使用する。
【００７４】
まず、処理１（ＦＩＲ−１）において、ビットシフトを行う。ここでは、図９に示すように、直列に設けられた６つの遅延回路Ｄによる遅延処理を実行している。図中、ＲＡＭ０は、図１７に示すＲＡＭ７１におけるアドレス０の格納領域を示す。ここでは、ＲＡＭｎが、ＲＡＭ７１におけるアドレスｎの格納領域を示し、ビット位置を１つのアドレス分だけずらすことで、データが遅延される状態を表現する。なお、当然のことながら、アドレスは０から開始する必要はなく、また連続したアドレスを用いる必要もない。処理１（ＦＩＲ−１）では、新しい入力データをＲＡＭ０に、ＲＡＭ０に格納されていたデータをＲＡＭ１に、ＲＡＭ１に格納されていたデータをＲＡＭ２に、ＲＡＭ２に格納されていたデータをＲＡＭ３に、ＲＡＭ３に格納されていたデータをＲＡＭ４に、ＲＡＭ４に格納されていたデータをＲＡＭ５に、ＲＡＭ５に格納されていたデータをＲＡＭ６に移動することで、それぞれのデータ遅延を表現する。
【００７５】
処理２（ＦＩＲ−２）では、ＲＡＭ０のデータとＲＡＭ６のデータを加算して１ビットシフトし、ＲＡＭ１のデータとＲＡＭ５のデータを加算して１ビットシフトし、ＲＡＭ２のデータとＲＡＭ４のデータを加算して１ビットシフトし、ＲＡＭ３のデータを１ビットシフトする。なお、図中、スルー用のパスであるＭＯＶは省略している。処理２（ＦＩＲ−２）から処理５（ＦＩＲ−５）までの流れは、図１０においてデータフローグラフ３８ａとして示した流れと同一である。
【００７６】
以上のように、ＦＩＲフィルタ回路は、リコンフィギュラブル回路１２上に図２１のデータフローグラフを５分割してマッピングすることで構成される。ＦＩＲフィルタ回路１２２を構成する場合、処理１（ＦＩＲ−１）における入力は入力信号Ｉであり、処理５（ＦＩＲ−５）における出力は中間出力信号ＭＩとなる。ＦＩＲフィルタ回路１２４を構成する場合、処理１（ＦＩＲ−１）における入力は入力信号Ｑであり、処理５（ＦＩＲ−５）における出力は中間出力信号ＭＱとなる。ＦＩＲフィルタ回路１４０を構成する場合、処理１における入力は中間出力信号ＰＹ２であり、処理５（ＦＩＲ−５）における出力は復調出力信号Ｙ２となる。処理１（ＦＩＲ−１）において、構成するＦＩＲフィルタ回路ごとに所定のアドレス領域が割り当てられて、それぞれのアドレス領域の範囲内でビットシフトが行われる。
【００７７】
図１７に示す処理装置１０を用いて、図１８に示すデジタル処理部１２０をリコンフィギュラブル回路１２上にマッピングする場合を考える。デジタル処理部１２０は、ＦＩＲフィルタ回路１２２、ＦＩＲフィルタ回路１２４、復調処理回路１３０およびＦＩＲフィルタ回路１４０を有しているが、ＦＩＲフィルタ回路１２２およびＦＩＲフィルタ回路１２４をリコンフィギュラブルユニット１００ａで、復調処理回路１３０およびＦＩＲフィルタ回路１４０をリコンフィギュラブルユニット１００ｂで構成することとする。この場合、リコンフィギュラブル回路１２ａで構成されるＦＩＲフィルタ回路１２２の中間出力信号ＭＩと、ＦＩＲフィルタ回路１２４の中間出力信号ＭＱは、出力部１０４を通ってＦＩＦＯ１０２に格納される。リコンフィギュラブル回路１２ｂでは、ＦＩＦＯ１０２に格納された中間出力信号ＭＩおよびＭＱを入力信号として読み出して、復調処理回路１３０ないしはＦＩＲフィルタ回路１４０に供給する。
【００７８】
図２２は、復調処理回路１３０のリコンフィギュラブル回路１２への実装の形態を示す。図２１においてＦＩＲフィルタ回路の実装形態において示したように、リコンフィギュラブル回路１２が２段のＡＬＵアレイにより構成されている場合を例にとる。復調処理回路１３０は、リコンフィギュラブル回路１２ｂにて構成される。
【００７９】
まず、処理１（復調−１）では、ＦＩＦＯ１０２からデータＭＩをメモリ部２７に読み出す。続いて、処理２（復調−２）では、ＦＩＦＯ１０２からデータＭＱをメモリ部２７に読み出す。処理３（復調−３）および処理４（復調−４）は、図２０に示したデータフローグラフ３８ｃに対応する。なお、図中、スルー用のパスであるＭＯＶは省略している。以上のように、復調処理回路１３０は、リコンフィギュラブル回路１２上に図２２のデータフローグラフを４分割してマッピングすることで構成される。上述したように、復調処理回路１３０はリコンフィギュラブル回路１２ｂ上に構成されるため、処理１（復調−１）においてデータＭＩはメモリ部２７ｂに読み出され、また処理２（復調−２）においてデータＭＱはメモリ部２７ｂに読み出される。
【００８０】
図２３は、リコンフィギュラブルユニット１００ａでＦＩＲフィルタ回路１２２および１２４を、リコンフィギュラブルユニット１００ｂで復調処理回路１３０およびＦＩＲフィルタ回路１４０を構成するときのタイミングチャートである。図２３では、リコンフィギュラブル回路１２ａにおける処理、ＲＡＭ７１ａの書込／読出処理、ＦＩＦＯ１０２の書込／読出処理、ＲＡＭ７１ｂの書込／読出処理、およびリコンフィギュラブル回路１２ｂにおける処理を示す。横軸は時間軸であり、左端から右端まで処理が実行されると、再度左端の処理に戻る。このように、このデジタル処理部１２０における信号処理は、図２３に示す左端から右端までの処理をサイクリックに実行することに相当する。以下、ＦＩＲフィルタ回路１２２をＦＩＲ１、ＦＩＲフィルタ回路１２４をＦＩＲ２、ＦＩＲフィルタ回路１４０をＦＩＲ３と呼ぶ。また、ＦＩＲフィルタ回路の処理を示す際、（ＦＩＲｍ−ｎ）は、ＦＩＲｍのｎ番目の処理を示すものとし、例えば、（ＦＩＲ１−５）は、ＦＩＲ１の５番目の処理を示し、（ＦＩＲ３−２）は、ＦＩＲ３の２番目の処理を示す。
【００８１】
リコンフィギュラブル回路１２ａでは、ＦＩＲ１およびＦＩＲ２のそれぞれの５つの処理を実行する。図示されるように、（ＦＩＲ１−１）から（ＦＩＲ１−５）までの処理によりＦＩＲ１の処理が完了し、また（ＦＩＲ２−１）から（ＦＩＲ２−５）までの処理によりＦＩＲ２の処理が完了する。
【００８２】
リコンフィギュラブル回路１２ａにおいて、（ＦＩＲ１−１）で、アナログ処理部１１０から入力信号Ｉを受けて、ＲＡＭ７１ａにおけるデータをビットシフトする。ここではハードウェア上、すなわち、ＲＡＭ７１ａ上でビットシフトさせることにより、データの遅延を処理している。（ＦＩＲ１−２）では、ＲＡＭ７１ａよりデータを供給され、以後、（ＦＩＲ１−５）まで所定の演算処理を実行する。（ＦＩＲ１−５）で、中間出力信号ＭＩをＦＩＦＯ１０２に出力する。続くタイミングで、データＭＩがＦＩＦＯ１０２からＲＡＭ７１ｂに読み出され、リコンフィギュラブル回路１２ｂでは、（復調−１）が実行される。
【００８３】
このとき、リコンフィギュラブル回路１２ａでは、（ＦＩＲ２−１）が実行される。（ＦＩＲ２−１）では、アナログ処理部１１０から入力Ｑを受けて、ＲＡＭ７１ａにおけるデータをビットシフトする。（ＦＩＲ２−２）では、ＲＡＭ７１ａよりデータを供給され、以後、（ＦＩＲ２−５）まで所定の演算処理を実行する。（ＦＩＲ２−５）で、中間出力信号ＭＱをＦＩＦＯ１０２に出力する。続くタイミングで、データＭＱがＦＩＦＯ１０２からＲＡＭ７１ｂに読み出され、リコンフィギュラブル回路１２ｂでは、（復調−２）が実行される。（ＦＩＲ２−５）が終了すると、また（ＦＩＲ１−１）から処理が実行される。
【００８４】
復調処理回路１３０は、データＭＩとデータＭＱの入力を必要とするため、復調処理の際には、ＦＩＲ１およびＦＩＲ２の双方の演算処理が完了していなければならない。したがって、リコンフィギュラブル回路１２ａにおける（ＦＩＲ２−５）の終了を待って、リコンフィギュラブル回路１２ｂにおいて、（復調−２）を実行し、続いて（復調−３）および（復調−４）を実行する。また、復調処理を行わない間は、ＦＩＲ３の演算処理を行う。なお、この例では、（復調−１）と（復調−２）の間に（ＦＩＲ３−３）〜（ＦＩＲ３−５）を実行し、（復調−４）と（復調−１）の間に（ＦＩＲ３−１）、（ＦＩＲ３−２）を実行している。
【００８５】
図２２を参照して、（復調−３）においては、ＲＡＭ７１ｂに格納されたデータＭＩ、ＭＱ、ＭＹ’を読み出し、所定の処理を実行する。（復調−４）では、中間出力信号ＰＹ２をＦＩＲ３における処理に使用するためにＲＡＭ７１ｂに書き込み、また積分器出力ＭＹを、次の（復調−３）におけるフィードバック入力として使用するためにＲＡＭ７１ｂに書き込む。さらに、フィードバック制御出力信号Ｙ１を、アナログ処理部１１０に出力する。
【００８６】
（ＦＩＲ３−１）において、入力ＰＹ２が供給されるとともに、ＲＡＭ７１ｂにおけるデータのビットシフトが行われる。（ＦＩＲ３−２）でＲＡＭ７１ｂよりデータが供給され、以後、（ＦＩＲ３−５）まで所定の演算処理を実行する。（ＦＩＲ３−５）で復調出力信号Ｙ２が出力される。
【００８７】
なお、ＦＩＲの処理順序、すなわち処理１（ＦＩＲ−１）から処理５（ＦＩＲ−５）の順序は変更することはできないが、ＦＩＲ３に関して示したように、必ずしも連続的に実行する必要はない。同様に、復調の処理順序、すなわち処理１（復調−１）から処理４（復調−４）の順序は変更することはできないが、必ずしも連続的に実行する必要はない。なお、連続的に実行する場合は、リコンフィギュラブル回路１２の出力を経路部２４を介して直接切替回路２８に供給する。連続的に実行しない場合は、リコンフィギュラブル回路１２の出力をＲＡＭ７１に一旦格納し、コマンドメモリ７２からの指示に基づいて所期のタイミングで切替回路２８に供給する。
【００８８】
以上のように、ＦＩＲ１およびＦＩＲ２をリコンフィギュラブルユニット１００ａで実行し、ＦＩＲ３および復調処理回路１３０をリコンフィギュラブルユニット１００ｂで実行することで、図１８に示すデジタル処理部１２０における演算処理を実行することが可能となる。これにより、１つのリコンフィギュラブルユニット１００ではリアルタイム処理が困難なターゲット回路であっても、複数のリコンフィギュラブルユニット１００を協調させて使用することで、複雑な演算処理をリアルタイムで実行することが可能となる。さらに、ＦＩＦＯ１０２をリコンフィギュラブルユニット間のバッファとして機能させることで、複数のリコンフィギュラブルユニット間の入出力の同期をとる必要がなく、それぞれが独立して動作してもよいという利点もある。なお、ＦＩＦＯ１０２からのデータ読出しは、読出制御部であるコマンドメモリ７２ｂによって制御可能であるため、ＦＩＦＯ１０２の出力をメモリ部２７ｂに供給するのではなく、ＦＩＦＯ１０２から直接、切替回路２８ｂにデータを供給することも可能である。
【００８９】
なお、図２３の例では同一のクロック周波数で２つのリコンフィギュラブル回路１２が動作することとしているが、各リコンフィギュラブル回路１２における処理量によっては、異なるクロックを利用してよい場合もある。例えば、リコンフィギュラブル回路１２ａにおける処理量がリコンフィギュラブル回路１２ｂにおける処理量の倍であるときは、リコンフィギュラブル回路１２ｂのクロック周波数を半分にすることが可能な場合もある。
【００９０】
また図１８のデジタル処理部１２０では、ＦＩＲフィルタ回路（ＦＩＲ３）１４０および復調処理回路１３０の出力を、ＦＩＲフィルタ回路（ＦＩＲ１）１２２およびＦＩＲフィルタ回路（ＦＩＲ２）１２４に直接返す必要がないため、リコンフィギュラブル回路１２ｂからリコンフィギュラブル回路１２ａへの接続部は設けていないが、処理装置１０の汎用性を高めるためには、リコンフィギュラブル回路１２ｂからリコンフィギュラブル回路１２ａへの接続部を設けてもよい。
【００９１】
図２４は、実施の形態３に係る処理装置１０の構成の別の例を示す。図１７に示した処理装置１０の構成と比較すると、図２４に示す処理装置１０では、ＦＩＦＯ１０２を省略している。リコンフィギュラブル回路１２ａとリコンフィギュラブル回路１２ｂの間の接続部は、リコンフィギュラブル回路１２ａの出力部１０４とリコンフィギュラブル回路１２ｂの入力部１０６により構成される。
【００９２】
リコンフィギュラブルユニット１００ａにおけるリコンフィギュラブル回路１２ａの出力は、出力部１０４および入力部１０６を通って、直接リコンフィギュラブルユニット１００ｂにおけるメモリ部２７ｂのＲＡＭ７１ｂに供給される。図２４に示す処理装置１０では、メモリ部２７ｂをＦＩＦＯ１０２の代わりに利用して、メモリ部２７ｂを、互いの動作タイミングのずれを吸収するバッファとして機能させることで、２つのリコンフィギュラブル回路１２を同期させずに動作させることが可能となる。この処理装置１０によると、ＦＩＦＯを使用しないため、さらなる回路の小型化、低消費電力化を実現することが可能となる。
【００９３】
図２５は、図２４に示す処理装置１０において、リコンフィギュラブルユニット１００ａでＦＩＲフィルタ回路１２２および１２４を、リコンフィギュラブルユニット１００ｂで復調処理回路１３０およびＦＩＲフィルタ回路１４０を構成するときのタイミングチャートである。図２５では、リコンフィギュラブル回路１２ａにおける処理、ＲＡＭ７１ａの書込／読出処理、ＲＡＭ７１ｂの書込／読出処理、およびリコンフィギュラブル回路１２ｂにおける処理を示す。横軸は時間軸であり、左端から右端まで処理が実行されると、再度左端の処理に戻る。以下、ＦＩＲフィルタ回路１２２をＦＩＲ１、ＦＩＲフィルタ回路１２４をＦＩＲ２、ＦＩＲフィルタ回路１４０をＦＩＲ３と呼ぶ。また、ＦＩＲフィルタ回路の処理を示す際、ＦＩＲｍ−ｎは、ＦＩＲｍのｎ番目の処理を示す。
【００９４】
リコンフィギュラブル回路１２ａにおける処理は、図２３に示した処理と同様である。異なる点として、（ＦＩＲ１−５）における中間出力信号ＭＩと、（ＦＩＲ２−５）における中間出力信号ＭＱとが、直接リコンフィギュラブルユニット１００ｂにおけるＲＡＭ７１ｂに供給される。リコンフィギュラブル回路１２ｂにおける処理は、ＦＩＦＯ１０２からＲＡＭ７１ｂに読み出す時間を必要としないだけで、図２３に示した処理と同様である。ＦＩＦＯ１０２を設けないことで、処理装置１０における回路規模を減縮できる。
【００９５】
図２６は、実施の形態３に係る処理装置１０の構成の別の例を示す。図２６に示す処理装置１０は、複数のリコンフィギュラブルユニット１００ａ、１００ｂ、・・・、１００ｎと、複数のＦＩＦＯ１０２ａ、１０２ｂ、・・・、１０２ｎを備える。複数のリコンフィギュラブルユニット１００の出力は、スイッチ１５２により接続先となるＦＩＦＯ１０２を定められ、また複数のＦＩＦＯ１０２の出力は、スイッチ１５０により接続先となるリコンフィギュラブルユニット１００を定められる。
【００９６】
設定部１４が、スイッチ１５０およびスイッチ１５２における接続関係を定める。この設定部１４は、１つのリコンフィギュラブルユニット１００に含まれる設定部１４であってもよく、またスイッチ１５０およびスイッチ１５２における接続関係を定めるための専用の設定部であってもよい。スイッチ１５０は、外部からの入力と複数のＦＩＦＯ１０２の出力を選択的に所定のリコンフィギュラブルユニット１００に供給する機能をもつ。具体的には、外部からの入力と、複数の経路部１５８ａ、１５８ｂ、・・・、１５８ｎを、複数の経路部１６０ａ、１６０ｂ、・・・、１６０ｎに対して接続する機能をもつ。同様に、スイッチ１５２は、複数のリコンフィギュラブルユニット１００の出力を選択的に所定のＦＩＦＯ１０２に供給する機能をもつ。具体的には、複数の経路部１５４ａ、１５４ｂ、・・・、１５４ｎを、複数の経路部１５６ａ、１５６ｂ、・・・、１５６ｎに対して接続する機能をもつ。
【００９７】
このように、経路部１５４、スイッチ１５２、経路部１５６、ＦＩＦＯ１０２、経路部１５８、スイッチ１５０および経路部１６０は、あるリコンフィギュラブル回路１２の出力を、他のリコンフィギュラブル回路１２の入力に供給する接続部としての機能をもつ。この接続部は、複数のリコンフィギュラブルユニット１００におけるリコンフィギュラブル回路１２同士の接続を任意に設定可能としてもよい。これにより、汎用性の高い処理装置１０を実現することが可能となる。複数のリコンフィギュラブルユニット１００を有することで、並列処理可能な演算の速度アップを実現できるため、複雑な演算をリアルタイム処理することも可能となる。
【００９８】
また、接続部は、複数のリコンフィギュラブルユニット１００におけるリコンフィギュラブル回路１２同士の接続を、所定の制約の下で設定可能としてもよい。すなわち、例えば隣接するリコンフィギュラブルユニット１００同士の接続は可能とし、それ以外のリコンフィギュラブルユニット１００との接続は不可としてもよい。リコンフィギュラブルユニット１００の接続範囲を制限することで、接続部の構成に必要な回路規模を減縮することが可能となり、処理装置１０の小型化に貢献することができる。
【００９９】
また、接続部にリコンフィギュラブル回路１２の出力を記憶するＦＩＦＯ１０２を設けることで、データを一旦ＦＩＦＯ１０２に格納することができ、所期のタイミングでデータを読み出すことが可能となる。そのため、複数のリコンフィギュラブルユニット１００が同期して動作する必要がなく、それぞれが独立して動作することも可能となる。
【０１００】
図２７は、実施の形態３に係る処理装置１０の構成の別の例を示す。図２６に示す処理装置１０と異なる点は、リコンフィギュラブルユニット１００同士を連絡する接続部から、スイッチ１５２とＦＩＦＯ１０２が除かれたところである。この例では、接続部が、経路部１６２、スイッチ１５０および経路部１６０で構成される。図２７に示す処理装置１０では、リコンフィギュラブルユニット１００の出力が、スイッチ１５０により選択された所定のリコンフィギュラブルユニット１００の入力に供給される。この場合、リコンフィギュラブルユニット１００におけるリコンフィギュラブル回路１２のそれぞれは、ＦＩＦＯ１０２の代わりとして機能しうるＲＡＭ７１を有して構成されることが好ましい。図２６に示す処理装置１０と比較すると、ＦＩＦＯ１０２およびスイッチ１５２を省略することで、回路規模を減縮することができる。
【０１０１】
以上、本発明を実施の形態１から３をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【０１０２】
例えば、リコンフィギュラブル回路１２におけるＡＬＵの配列は、縦方向にのみ接続を許した多段配列に限らず、横方向の接続も許した、メッシュ状の配列であってもよい。また、上記の説明では、段を飛ばして論理回路を接続する結線は設けられていないが、このような段を飛ばす接続結線を設ける構成としてもよい。
【０１０３】
また、実施の形態３では、複数のコマンドメモリ７２が存在する例を示したが、コマンドメモリ７２は必ずしも複数存在する必要はなく、複数のリコンフィギュラブル回路１２で共用されてもよい。
【０１０４】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１０５】
【図１】実施の形態１に係る処理装置の構成図である。
【図２】生成すべきターゲット回路を分割してできる複数の回路の設定データについて説明するための図である。
【図３】リコンフィギュラブル回路の構成の一例を示す図である。
【図４】リコンフィギュラブル回路の構成の別の例を示す図である。
【図５】データフローグラフの例を示す図である。
【図６】実施の形態１における信号処理のフローチャートを示す図である。
【図７】前後７点を利用する７タップからなるＦＩＲフィルタ回路を示す図である。
【図８】図７で示すＦＩＲフィルタ回路を置き換えた回路を示す図である。
【図９】図８で示すＦＩＲフィルタ回路をさらに置き換えた回路を示す図である。
【図１０】図９に示すＦＩＲフィルタ回路をコンパイルして作成したデータフローグラフを示す図である。
【図１１】実施例で使用するリコンフィギュラブル回路を示す図である。
【図１２】図１０に示すデータフローグラフを、図１１のリコンフィギュラブル回路を用いて実現する例を示す図である。
【図１３】図８に示すＦＩＲフィルタ回路をコンパイルして作成したデータフローグラフを示す図である。
【図１４】図１３に示すデータフローグラフを、図１１のリコンフィギュラブル回路を用いて実現する例を示す図である。
【図１５】実施の形態２に係る処理装置の構成図である。
【図１６】メモリ部の構成を示す図である。
【図１７】実施の形態３に係る処理装置の構成図である。
【図１８】ＢＰＳＫ信号を復調するための復調回路を示す図である。
【図１９】ループフィルタの構成を示す図である。
【図２０】図１８に示す復調処理回路をコンパイルして作成したデータフローグラフを示す図である。
【図２１】ＦＩＲフィルタ回路のリコンフィギュラブル回路への実装の形態を示す図である。
【図２２】復調処理回路のリコンフィギュラブル回路への実装の形態を示す図である。
【図２３】複数のリコンフィギュラブルユニットでデジタル処理部を構成するときのタイミングチャートを示す図である。
【図２４】実施の形態３に係る処理装置の構成の別の例を示す図である。
【図２５】図２４に示す処理装置においてデジタル処理部を構成するときのタイミングチャートを示す図である。
【図２６】実施の形態３に係る処理装置の構成の別の例を示す図である。
【図２７】実施の形態３に係る処理装置の構成の別の例を示す図である。
【符号の説明】
【０１０６】
１０・・・処理装置、１２・・・リコンフィギュラブル回路、１４・・・設定部、１６・・・選択器、１８・・・制御部、２０・・・内部状態保持回路、２２・・・出力回路、２４・・・経路部、２６・・・集積回路装置、２７・・・メモリ部、２８・・・切替回路、２９・・・経路部、３２・・・設定データ生成部、３４・・・記憶部、４０・・・設定データ、５０・・・論理回路、５２・・・接続部、７１・・・ＲＡＭ、７２・・・コマンドメモリ、１００・・・リコンフィギュラブルユニット、１０２・・・ＦＩＦＯ、１２０・・・デジタル処理部。
【図１】
0004748944.tif 000002
【図２】
0004748944.tif 000003
【図３】
0004748944.tif 000004
【図４】
0004748944.tif 000005
【図５】
0004748944.tif 000006
【図６】
0004748944.tif 000007
【図７】
0004748944.tif 000008
【図８】
0004748944.tif 000009
【図９】
0004748944.tif 000010
【図１０】
0004748944.tif 000011
【図１１】
0004748944.tif 000012
【図１２】
0004748944.tif 000013
【図１３】
0004748944.tif 000014
【図１４】
0004748944.tif 000015
【図１５】
0004748944.tif 000016
【図１６】
0004748944.tif 000017
【図１７】
0004748944.tif 000018
【図１８】
0004748944.tif 000019
【図１９】
0004748944.tif 000020
【図２０】
0004748944.tif 000021
【図２１】
0004748944.tif 000022
【図２２】
0004748944.tif 000023
【図２３】
0004748944.tif 000024
【図２４】
0004748944.tif 000025
【図２５】
0004748944.tif 000026
【図２６】
0004748944.tif 000027
【図２７】
0004748944.tif 000028