(57)【要約】【課題】  演算ユニットに割り当てた動作周期に収まれば、演算ユニット内部のＦＦをスルーして、接続先演算ユニットに出力させることでレイテンシを小さくするリコンフィギュラブル回路。【解決手段】  リコンフィギュラブル回路の有する演算ユニットの構成を切替えるコンフィギュレーション情報を作成するプログラムにおいて、演算ユニットは少なくともセレクタとフリップフロップと演算器から構成され、セレクタはコンフィギュレーション情報に基づいて、セレクタを切替えることでフリップフロップの使用の有無を選択し、セレクタに入力されたデータをフリップフロップを介して演算器に転送する接続と、データをフリップフロップを介さないで演算器に転送する接続を選択する、セレクタの切替条件設定を、コンフィギュレーション情報に反映する。【選択図】図１
2006252144.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも複数の演算ユニットを備え、コンフィギュレーション情報に基づき主に前記複数の演算ユニットを再構成することで多種の機能を実現可能なリコンフィギュラブル回路における前記演算ユニットにおいて、
前記演算ユニットへの入力データに対して演算処理を行う演算器と、
前記入力データが前記演算器へ転送される時間を遅延させるためのフリップフロップと、
前記入力データを前記フリップフロップを介して前記演算器へ転送する経路と、
前記入力データを前記フリップフロップを介さずに前記演算器へ転送する経路とを切替えるセレクタとを備え、
前記セレクタはコンフィギュレーション情報に含まれる前記セレクタの切替条件設定情報に基づき前記経路の切替えを行う、
ことを特徴とする演算ユニット。
【請求項２】
前記セレクタの切替えは、クロスバスイッチにより構成されることを特徴とする請求項１に記載のリコンフィギュラブル回路を構成する演算ユニット。
【請求項３】
少なくとも複数の演算ユニットを備え、コンフィギュレーション情報に基づき主に前記複数の演算ユニットを再構成することで多種の機能を実現可能なリコンフィギュラブル回路において、
前記演算ユニットへの入力データに対して演算処理を行う演算器と、
前記入力データが前記演算器へ転送される時間を遅延させるためのフリップフロップとを備え、
前記入力データを前記フリップフロップを介して前記演算器へ転送する経路と、
前記入力データを前記フリップフロップを介さずに前記演算器へ転送する経路とを切替えるセレクタを前記演算ユニットの外部に備え、
前記セレクタはコンフィギュレーション情報に含まれる前記セレクタの切替条件設定情報に基づき前記経路の切替えを行う、
ことを特徴とするリコンフィギュラブル回路。
【請求項４】
請求項１記載の演算ユニットを複数備えて多種の機能を実現可能なリコンフィギュラブル回路における前記複数の演算ユニットの構成を切替えるコンフィギュレーション情報を作成する処理をコンピュータに実行させるためのプログラムであって、
前記演算ユニットの備えるセレクタが、前記演算ユニットへの入力データを、前記演算ユニットの備えるフリップフロップを介して、前記演算ユニットの備える演算器へ転送する経路と、前記フリップフロップを介さずに前記演算器へ転送する経路と、を切替えるための切替条件設定を、コンフィギュレーション情報に反映させる処理を前記コンピュータに実行させることを特徴とするプログラム。
【請求項５】
前記セレクタの前記切替条件設定は、演算処理を行うために、複数の前記演算ユニットの各演算処理内容を設定する演算内容の情報と接続内容の情報に基づいて、前記演算ユニットの前記演算内容に対応した演算処理時間を算出し、前記演算ユニット間の前記接続内容に基づいて、接続される最初の前記演算ユニットを選択し、前記最初の演算ユニットから接続順に、前記演算ユニットの前記演算処理時間から累積処理時間を算出する処理と、
前記累積処理時間を前記算出する毎に、予め設定した動作周期の時間と比較し、動作周期以内であれば前記フリップフロップを使用しない設定をし、動作周期を超えていれば前記フリップフロップを使用する設定にするとともに、累積時間を現在選択されている前記演算ユニットの前記演算処理時間に変更して設定をする処理と、
を特徴とする請求項４に記載のコンピュータに提供するプログラム。
【請求項６】
前記演算処理時間は、前記演算ユニットに接続される配線数に対応した前記演算処理時間であることを特徴とする請求項５に記載のコンピュータに提供するプログラム。
【請求項７】
請求項１記載の演算ユニットを複数備えて多種の機能を実現可能なリコンフィギュラブル回路における前記複数の演算ユニット構成切替方法において、
前記演算ユニットの備えるセレクタが、前記演算ユニットへの入力データを、前記演算ユニットの備えるフリップフロップを介して、前記演算ユニットの備える演算器へ転送する経路と、前記フリップフロップを介さずに前記演算器へ転送する経路と、を切替えるための切替条件設定を、コンフィギュレーション情報に反映させ、
前記コンフィギュレーション情報に反映された前記切替条件設定に基づき、前記セレクタを制御して前記経路の切替えを行わせることを特徴とする演算ユニット構成切替方法
【請求項８】
前記セレクタの前記切替条件設定は、演算処理を行うために、複数の前記演算ユニットの各演算処理内容を設定する演算内容の情報と、接続内容の情報に基づいて、前記演算ユニットの前記演算内容に対応した演算処理時間を算出し、前記演算ユニット間の前記接続内容に基づいて、接続される最初の前記演算ユニットを選択し、前記最初の演算ユニットから接続順に、前記演算ユニットの前記演算処理時間から累積処理時間を算出し、
前記累積処理時間を前記算出する毎に、予め設定した動作周期の時間と比較し、動作周期以内であれば前記フリップフロップを使用しない設定をし、動作周期を超えていれば前記フリップフロップを使用する設定にするとともに、累積時間を現在選択されている前記演算ユニットの前記演算処理時間に設定をする、
ことを特徴とする請求項７に記載の演算ユニット構成切替方法。
【請求項９】
前記演算処理時間は、前記演算ユニットに接続される配線数に対応した前記演算処理時間を算出することを特徴とする請求項８に記載の演算ユニット構成切替方法。
【請求項１０】
少なくとも複数の演算ユニットを備え、コンフィギュレーション情報に基づき主に前記複数の演算ユニットを再構成することで多種の機能を実現可能なリコンフィギュラブル回路における前記演算ユニットにおいて、
前記演算ユニットへの入力データに対して演算処理を行う演算器と、
前記入力データが前記演算器へ転送される時間を遅延させるためのフリップフロップと、
前記入力データを前記フリップフロップを介して前記演算器へ転送する経路と、
前記入力データを前記フリップフロップを介さずに前記演算器へ転送する経路とを切替えるセレクタとを備え、
前記セレクタはコンフィギュレーション情報に含まれる前記セレクタの切替条件設定情報に基づき前記経路の切替えを行う切替手段と、
前記切替手段を有する前記演算ユニット間を前記コンフィギュレーション情報に基づき接続をするとき、前記演算ユニットの演算処理時間の合計が予め設定された動作周期内であればグループとし、
前記グループ間でデータの転送を行うときは前記グループの出力に、通信用フリップフロップを設け、前記通信用フリップフロップを介して転送を行う通信手段を、
具備することを特徴とするリコンフィギュラブル回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルに多様な機能を実現できるリコンフィギュラブル回路に関し、特に演算ユニット内のデータパスに適したプログラマブル相互接続のコンフィギュレーションの技術に関する。
【背景技術】
【０００２】
今日、プログラムによりハードウェア自身を再構成できる「リコンフィギュラブル回路」が提案されている。一般にリコンフィギュラブル回路は、データを処理する演算ユニットと呼ばれるものが複数個アレイ状に並んだ構造をしている。
【０００３】
図８はリコンフィギュラブル回路の構成の一例を示したものであり、リコンフィギュラブル回路は複数のクラスタを有し、例えばクロスバスイッチなどにより接続され、クラスタ間のデータ転送を可能にしている。そして、一つのクラスタはＡＬＵアレイ部（演算器群２）を有し、ＡＬＵアレイ部には複数の演算ユニットが設けられている。演算ユニット１０は通常ＡＬＵや乗算器などで構成されている。
【０００４】
クラスタ１は、演算器群２（ＡＬＵアレイ部）、コンフィギュレーションメモリ３（設定メモリ）、シーケンサ４から構成されている。
演算器群２は、データ入力部５、データバッファ部６、データバッファ制御部７、演算器間ネットワーク８、データメモリ９、演算ユニット１０から構成されている。
【０００５】
データ入力部５は、外部から入力される入力データを、演算器間ネットワーク８を介してデータメモリ９、各演算ユニット１０などに供給する。例えば、データ入力部５の構成例として、データバッファ部６を具備する構成とし、データバッファ部６は外部より入力される入力データをバッファする／しないの有無をデータバッファ制御部７からの制御信号により選択する。データバッファ制御部７は、コンフィギュレーションメモリ３からコンフィギュレーション情報を受け、その情報に従い、上記制御信号としてデータバッファ部６に制御信号を送り、入力データのバッファの有無を選択する。
【０００６】
演算器間ネットワーク８は、種々の要素（データ入力部５、データメモリ９、演算ユニット１０など）と相互接続されている。また、演算器間ネットワーク８は、外部から供給されるコンフィギュレーションデータ（プログラムをコンパイルして生成されるデータ）に基づいて生成されるコンフィギュレーション情報に応じて、演算器間ネットワーク８に接続されている種々の要素間のデータ転送を可能とする。データメモリ９は、演算器間ネットワーク８を介しデータを記録する。演算ユニット１０は、コンフィギュレーション情報により、そのコンフィギュレーション情報に関係付けられた機能を果たすように設定され、その設定された演算を実行する。
【０００７】
コンフィギュレーションメモリ３は、コンフィギュレーションデータを格納する外部記憶装置（図示せず：例えばＰＣなど）からコンフィギュレーションメモリ３にコンフィギュレーションデータをロードする（例えば、ＰＣの通信手段を利用してロードする）。そして、コンフィギュレーションメモリ３には、コンフィギュレーションデータロード部（図示しない）を有し、演算器群２を構成する再構成可能な種々の要素のうち主に演算ユニット１０から送信される条件成立信号（例えばチップセレクトのような信号）に基づいてコンフィギュレーション切替条件信号を生成し出力する。例えば、コンフィギュレーション切替条件信号の生成は、上記条件成立信号とコンフィギュレーションメモリ３からのコンフィギュレーションデータに基づいて生成する。シーケンサ４は、切替条件信号に基づいてコンフィギュレーションメモリ３が次に読み出すべき上記コンフィギュレーション情報のアドレスを生成する。
【０００８】
次に、図９にリコンフィギュラブル回路のコンフィギュレーションメモリ３と演算ユニット１０の構成を示し、演算ユニットのデータ処理について説明する。
各演算ユニット１０の設定を行うために、コンフィギュレーションメモリ３から、各演算ユニット１０にコンフィギュレーション情報を転送し設定をする。このとき、コンフィギュレーション情報は、演算ユニット間の接続の切替えについての制御もしており、各演算ユニット１０の入力データパスの設定もする。
【０００９】
特許文献１によれば、データパスに適したプログラマブル相互接続網を有する再構成可能デバイスにおいて、機能セル（多様な論理機能をプログラマブルに設定する）と長距離水平プログラマブル相互接続チャンネルとの間の信号伝送は、入出力ともに短距離水平プログラマブル相互接続チャンネルとプログラマブルスイッチを介して実行する。このように構成することで長距離水平プログラマブル相互接続チャンネルの負荷は軽くなり高速な伝送を実現している。また、少ないスイッチと配線で十分なルータビリティを有し、特に多ビットデータパスを効率的にインプリメントできる、高速なプログラマブル相互接続網を有する再構成可能デバイスが提案されている。
【特許文献１】特開２００２−７６８８３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、演算ユニットを複数個アレイ状に並べた構造のリコンフィギュラブル回路を用いたシステムにおいて、例えば図１０に示す無線ＬＡＮの受信部の場合、アンテナ１０１より受信した信号を、復調するためにアナログＲＦ（Ｒａｄｉｏ ｆｒｅｑｕｅｎｃｙ ）部１０２でダウンコンバートし、アナログＢＢ（ベースバンド）部１０３でＡ／Ｄ変換し、ディジタルＢＢ部１０４で復調を行う。このときディジタルＢＢ部１０４の、ＩＥＥＥ８０２．１１ａＰＹＨ専用回路をリコンフィギュラブル回路で実現するために、規格上レイテンシ条件が厳しくなり、無線ＬＡＮ処理をリコンフィギュラブル回路で実現することができなくなることがある。
【００１１】
このような問題は、演算ユニット間のデータの転送速度（動作周期）により発生する。例えば、複数の演算ユニット１０をアレイ状に配設した構成では、初段の演算ユニット１０（入力データを受け取る演算ユニット）から最も遠い演算ユニット１０（出力データを出力する演算ユニット）までのデータ転送速度により決まることになる。つまり演算処理を行う演算ユニット１０の数が増加すると、転送速度が遅くなってしまうという問題がある。
【００１２】
また、演算ユニット１０内部には予め決められた処理遅延（ＦＦ１２：フリップフロップ）が存在する。この処理遅延は演算ユニットに与える命令の複雑さ（乗算、加算、ＡＮＤ（論理積）、ＯＲ（論理和）等）によらず常に固定である。そのためどんなに単純な処理の繰り返しであっても、それを演算ユニット１０が処理を行うごとに、レイテンシ（データが入力されてから処理完了までに使うＦＦの段数）が大きくなってしまうという問題がある。
【００１３】
図１１に示すような演算ユニット１０を３個をマッピングしたリコンフィギュラブル回路を例に説明する。演算ユニット１０のインターフェイスにＦＦ１２が固定的に配設されているため、処理遅延が３クロック分かならず発生してしまう。これは演算ユニット１０が行う演算処理の内容に関係なく、演算ユニット１０の数量が増加するごとに処理遅延が増大してしまう。
【００１４】
また、特許文献１では、演算ユニットと長距離水平プログラマブル相互接続チャンネルとの間の信号伝送を、入出力ともに短距離水平プログラマブル相互接続チャンネルとプログラマブルスイッチを介して行っているが、演算ユニット内の処理を高速にするマッピング方法については特に記載されていない。
【００１５】
本発明は上記のような実情に鑑みてなされたものであり、演算ユニットに割り当てた命令が動作周期以内の処理時間に収まれば、演算ユニット内部のＦＦをスルーして、そのまま接続先演算ユニットに出力させることで、必要なときだけＦＦを使うためレイテンシを小さくする。
【００１６】
さらに、接続先のユニットの命令を連続して処理しても動作周期以内に収まるならば、接続先演算ユニットでも内部のＦＦをスルーすることで、さらにレイテンシを最小化できる。また、複数の演算ユニットをグループ化し、グループをまたぐデータのやりとりでは、グループ間通信用ＦＦをたたくようにすることで、演算ユニットグループ内部のデータの転送速度（動作周期）を高速化するリコンフィギュラブル回路を提供することを目的とする。
【課題を解決するための手段】
【００１７】
請求項１に記載の発明によれば、少なくとも複数の演算ユニットを備え、コンフィギュレーション情報に基づき主に上記複数の演算ユニットを再構成することで多種の機能を実現可能なリコンフィギュラブル回路における上記演算ユニットにおいて、上記演算ユニットへの入力データに対して演算処理を行う演算器と、
上記入力データが上記演算器へ転送される時間を遅延させるためのフリップフロップと、上記入力データを上記フリップフロップを介して上記演算器へ転送する経路と、上記入力データを上記フリップフロップを介さずに上記演算器へ転送する経路とを切替えるセレクタとを備え、上記セレクタはコンフィギュレーション情報に含まれる上記セレクタの切替条件設定情報に基づき上記経路の切替えを行う構成とする。
【００１８】
請求項２に記載の発明によれば、上記セレクタの切替えは、クロスバスイッチにより構成される。
請求項３に記載の発明によれば、少なくとも複数の演算ユニットを備え、コンフィギュレーション情報に基づき主に上記複数の演算ユニットを再構成することで多種の機能を実現可能なリコンフィギュラブル回路において、上記演算ユニットへの入力データに対して演算処理を行う演算器と、上記入力データが上記演算器へ転送される時間を遅延させるためのフリップフロップとを備え、上記入力データを上記フリップフロップを介して上記演算器へ転送する経路と、上記入力データを上記フリップフロップを介さずに上記演算器へ転送する経路とを切替えるセレクタを上記演算ユニットの外部に備え、上記セレクタはコンフィギュレーション情報に含まれる上記セレクタの切替条件設定情報に基づき上記経路の切替えを行う構成とする。
【００１９】
上記構成により、セレクタを使うことでＦＦをスルーするパスを選択できる構造を持つことができレイテンシを低減できる。
請求項４に記載の発明によれば、演算ユニットを複数備えて多種の機能を実現可能なリコンフィギュラブル回路における上記複数の演算ユニットの構成を切替えるコンフィギュレーション情報を作成する処理をコンピュータに実行させるためのプログラムであって、上記演算ユニットの備えるセレクタが、上記演算ユニットへの入力データを、上記演算ユニットの備えるフリップフロップを介して、上記演算ユニットの備える演算器へ転送する経路と、上記フリップフロップを介さずに上記演算器へ転送する経路と、を切替えるための切替条件設定を、コンフィギュレーション情報に反映させる処理を上記コンピュータに実行させることを特徴とするプログラムである。
【００２０】
請求項５に記載の発明によれば、上記セレクタの上記切替条件設定は、演算処理を行うために、複数の上記演算ユニットの各演算処理内容を設定する演算内容の情報と接続内容の情報に基づいて、上記演算ユニットの上記演算内容に対応した演算処理時間を算出し、上記演算ユニット間の上記接続内容に基づいて、接続される最初の上記演算ユニットを選択し、上記最初の演算ユニットから接続順に、上記演算ユニットの上記演算処理時間から累積処理時間を算出する処理と、上記累積処理時間を上記算出する毎に、予め設定した動作周期の時間と比較し、動作周期以内であれば上記フリップフロップを使用しない設定をし、動作周期を超えていれば上記フリップフロップを使用する設定にするとともに、累積時間を現在選択されている上記演算ユニットの上記演算処理時間に変更して設定をする処理とをコンピュータに提供するプログラムである。
【００２１】
請求項６に記載の発明によれば、上記演算処理時間は、上記演算ユニットに接続される配線数に対応した上記演算処理時間するコンピュータに提供するプログラムである。
請求項７に記載の発明によれば、演算ユニットを複数備えて多種の機能を実現可能なリコンフィギュラブル回路における上記複数の演算ユニット構成切替方法において、上記演算ユニットの備えるセレクタが、上記演算ユニットへの入力データを、上記演算ユニットの備えるフリップフロップを介して、上記演算ユニットの備える演算器へ転送する経路と、上記フリップフロップを介さずに上記演算器へ転送する経路と、を切替えるための切替条件設定を、コンフィギュレーション情報に反映させ、上記コンフィギュレーション情報に反映された上記切替条件設定に基づき、上記セレクタを制御して上記経路の切替えを行わせることを特徴とする。
【００２２】
請求項８に記載の発明によれば、上記セレクタの上記切替条件設定は、演算処理を行うために、複数の上記演算ユニットの各演算処理内容を設定する演算内容の情報と、接続内容の情報に基づいて、上記演算ユニットの上記演算内容に対応した演算処理時間を算出し、上記演算ユニット間の上記接続内容に基づいて、接続される最初の上記演算ユニットを選択し、上記最初の演算ユニットから接続順に、上記演算ユニットの上記演算処理時間から累積処理時間を算出し、上記累積処理時間を上記算出する毎に、予め設定した動作周期の時間と比較し、動作周期以内であれば上記フリップフロップを使用しない設定をし、動作周期を超えていれば上記フリップフロップを使用する設定にするとともに、累積時間を現在選択されている上記演算ユニットの上記演算処理時間に設定をすることを特徴とする。
【００２３】
請求項９に記載の発明によれば、上記演算ユニットに接続される配線数に対応した上記演算処理時間を算出することを特徴とする。
上記により演算ユニットに割り当てた命令が動作周波数（例えば１クロック以内）の処理時間に収まれば、演算ユニット内部のＦＦをスルーして、そのまま接続先演算ユニットに出力させる。そして、接続先のユニットの命令を連続して処理しても動作周期（例えば１クロック以内）に収まるならば、接続先演算ユニットでも内部のＦＦもスルーする。また前提として演算処理（命令）ごとにかかる処理時間を決めておくことで、リコンフィギュラブル回路の演算ユニットのグループ内部のデータ転送速度（動作周波数）を高速化できる。また、演算ユニットが持つＦＦを常に使う必要がなくなり、レイテンシを低減できる。
【００２４】
請求項１０に記載の発明によれば、少なくとも複数の演算ユニットを備え、コンフィギュレーション情報に基づき主に上記複数の演算ユニットを再構成することで多種の機能を実現可能なリコンフィギュラブル回路における上記演算ユニットにおいて、上記演算ユニットへの入力データに対して演算処理を行う演算器と、
上記入力データが上記演算器へ転送される時間を遅延させるためのフリップフロップと、上記入力データを上記フリップフロップを介して上記演算器へ転送する経路と、上記入力データを上記フリップフロップを介さずに上記演算器へ転送する経路とを切替えるセレクタとを備え、上記セレクタはコンフィギュレーション情報に含まれる上記セレクタの切替条件設定情報に基づき上記経路の切替えを行う切替手段と、上記切替手段を有する上記演算ユニット間を上記コンフィギュレーション情報に基づき接続をするとき、上記演算ユニットの演算処理時間の合計が予め設定された動作周期内であればグループとし、上記グループ間でデータの転送を行うときは上記グループの出力に、通信用フリップフロップを設け、上記通信用フリップフロップを介して転送を行う通信手段を、具備する構成とする。
【００２５】
上記構成により、いくつかの演算ユニットをグループ化し、グループを跨ぐデータのやりとりでは、グループ間通信用ＦＦをたたくようにすることで、演算ユニットグループ内部のデータ転送速度（動作周波数）を高速化できる。
【発明の効果】
【００２６】
本発明によれば、リコンフィギュラブル回路の演算ユニットのグループ内部のデータ転送速度（動作周波数）を高速化できる。また、演算ユニットが持つＦＦを常に使う必要がなくなり、レイテンシを小さくできる。
【発明を実施するための最良の形態】
【００２７】
以下図面に基づいて、本発明の実施形態について詳細を説明する。
（実施例１）
図１に本発明の演算ユニット１０の内部構成について示す。演算ユニット１０は、入力データをセレクタ１１を介して受け付ける。セレクタ１１はコンフィギュレーションメモリ３（設定メモリ）から転送されるコンフィギュレーション情報に含まれる切替条件設定情報に基づきセレクタの切替えをし、入力データをＦＦ１２を経由させるかスルーするかを選択する。ここで入力データは、演算ユニットの外部から入力されるデータ、例えば他の演算ユニット１０の演算結果やリコンフィギュラブル回路を有する集積回路の外部から入力された信号などである。その後入力データは演算器１３に入力され演算処理を行い出力される。ここで演算器１３は、組み合わせ回路や順序回路により演算を行う演算器である。例えば和算、乗算、論理和、論理積などの演算をする。
【００２８】
上記、セレクタ１１を有する演算ユニット１０を、上記説明した図１１と同様の構成にマッピングした図を図２に示す。図２の構成はコンフィギュレーション情報に含まれる切替条件設定情報により、使用する演算ユニット１０を決定し、各演算ユニット１０の接続を決め、セレクタ１１の切替えを行い構築される。
【００２９】
セレクタ１１の切替えの詳細は後述するが、図３であれば、「ｏｒ」（演算ユニット１０：Ａ）から「＋」（演算ユニット１０：Ｂ）までの処理時間が動作周期以内であれば、二段目（演算ユニット１０：Ｂ）のセレクタ１１を切替えスルーさせる。このように構成させることで従来３クロックかかっていた処理を２クロックに遅延させることができる。なお、セレクタ１１はコンフィギュレーション情報に含まれる切替条件設定情報より切替えができる構成であれば限定されない。
（実施例２）
実施例１で説明したセレクタ１１の切替え方法について説明する。コンフィギュレーション情報に含まれる切替条件設定情報を作成するために、演算ユニットの演算処理の内容（和算、乗算、論理和、論理積など）と、演算ユニット間の接続（演算器間ネットワーク８）を決定する。例えば、図５に示すような構成に各演算ユニットがマッピングされることを前提に、図４に示すフロー図に沿って演算ユニット内のセレクタ１１の切替え処理内容のマッピング方法について説明をする（実際には各演算ユニット間にはコンフィギュレーション情報に基づき接続を行うための配線があるが本図には記載していない）。
【００３０】
ステップＳ４１では、マッピングするＮ個の演算ユニット１０を選択し、データ入力がされる演算ユニット１０を、例えば図５に示すように「１」などの番号を割付ける。番号の割付けはカウンタ機能などによりする。最初の演算ユニット１０のセレクタ切替えを行う場合は、ｉ＝１を設定して保持する。次の演算ユニット１０のセレクタ切替えを行う場合には、後述する判定処理Ｓ４６までのステップを終了後、上記カウンタの変数ｉをインクリメントしｉ＝ｉ＋１とすることで次の演算ユニットの選択をする。
【００３１】
ステップＳ４２は、ｉ番目までの演算ユニットの処理時間の累積処理時間を算出し、予め設定した比較処理時間とを比較する。処理時間の合計を図５を参照して説明する。同図の複数からなる演算ユニット（Ｎ個）において、演算ユニット「１」をｉ＝１の示す演算ユニットとする。演算ユニット「１」の演算処理時間は、予め用意した演算処理に対応した演算処理時間から算出する。
【００３２】
例えば、和算はＡ（ｎｓｅｃ：ナノ秒）、乗算はＢ（ｎｓｅｃ）、論理和はＣ（ｎｓｅｃ）、論理積はＤ（ｎｓｅｃ）のような対応表（テーブル、演算式）を用意する。演算ユニット「１」が和算であれば、Ａ（ｎｓｅｃ）を保持する。次にｉ＝２になったときは、同図演算ユニット「２」が乗算であればＢ（ｎｓｅｃ）とし、前回演算ユニット「１」の演算処理時間Ａ（ｎｓｅｃ）との合計である累積処理時間（Ａ＋Ｂ）を算出し、変数（ｓｕｍ）に累積処理時間を代入する。
【００３３】
次に、演算処理時間を合計したｓｕｍ（累積処理時間：合計値）と上記比較処理時間とを比較する。比較処理時間は動作周期（Ｔｃｌｋ）を設定する。ここで動作周期とは、システムクロックの周期である。但し、システムクロック以外の周期を用いてもよい。次に、累積処理時間が比較処理時間に収まればステップＳ４３（ＹＥＳ）に進み、そうでない場合はステップＳ４４（ＮＯ）の処理をする。
【００３４】
ステップＳ４３では、変数ｉの示す演算ユニットのセレクタ１１の切替えを、ＦＦ１２を使用しないように設定する。
ステップＳ４４では、変数ｉの示す演算ユニットのセレクタ１１の切替えを、ＦＦ１２を使用するように設定する。
【００３５】
ステップＳ４５では、演算ユニット１〜Ｎまでのセレクタ１１の切替え設定が完了したかを確認する。Ｎ個の演算ユニットの設定が完了していない場合は、Ｓ４１に戻りＮ個分の設定が完了するまで処理を続ける。
【００３６】
図５では演算ユニット「１」〜「ｌ」までの演算初期時間を合計し、予め設定した比較処置時間（Ｔｃｌｋ）と比較し、比較処理時間に収まらなくなったので、演算ユニット「ｌ」のＦＦ１２を使用するようにしている。そして、次の演算ユニット「ｍ」を選択し、Ｓ４１でｉ＝ｍとして、Ｓ４２でｓｕｍに演算ユニット「ｍ」の演算処理時間を対応表から選択し代入する。その後比較処理時間と累積処理時間（ｓｕｍ＝演算ユニット「ｍ」の演算処理時間のみ）を比較してＦＦを利用するかどうかを決める。全ての演算ユニットのセレクタ切替え設定が完了すれば、処理を終了する。
【００３７】
上記説明したようにプログラムにより、コンフィギュレーション情報にセレクタ切替えの情報を反映させることができる。
（実施例３）
実施例１で説明したセレクタの切替え方法について図６を用い説明する。コンフィギュレーション情報に含まれる切替条件設定情報を作成するために、演算ユニットの演算処理の内容（和算、乗算、論理和、論理積など）と、演算ユニット間の接続（演算器間ネットワーク）を決定する。
【００３８】
ステップＳ６１では、演算ユニットに割付けた番号ｉを初期化し、ｉ＝０とする。ここでｉは０〜Ｎまでの演算ユニットに対応している。また、前提条件としてｉ＝０番目のＦＦ１２は使う設定とする。また累積処理時間を初期化してＴｓｕｍ＝０とする。
【００３９】
ステップＳ６２では、ｉ＝０番目の演算ユニットへの入力データビット幅に対応する演算対処理時間対応表を参照する。ここで演算処理時間対応表は、１ビット幅ごとに処理時間を設定した表（テーブル、計算式）である。例えば、和算はＡ（ｎｓｅｃ：ナノ秒）、乗算はＢ（ｎｓｅｃ）、論理和はＣ（ｎｓｅｃ）、論理積はＤ（ｎｓｅｃ）のような対応表（テーブル、演算式）を用意する。さらに和算の場合に、１ビット幅の演算をすると１０（ｎｓｅｃ）、２ビット幅であれば２０（ｎｓｅｃ）、・・・、ＮビットであればＸ（ｎｓｅｃ）のように設定されている。
【００４０】
ステップＳ６３では、演算対処理時間対応表から、演算ユニットのＦＦの出力から演算ユニット出力(演算後)までの累積処理時間求め、Ｔｓｕｍ＝Ｔｉ（ｉ＝０）とする。
ステップＳ６４では、ｉをインクリメントしてｉ＝ｉ＋１として、次の演算ユニットを選択する。
【００４１】
ステップＳ６５では、ｉ番目演算ユニットへの入力データビット幅に対応する、演算対処理時間対応表を参照しｉ番目演算処理時間Ｔｉを求める。
ステップＳ６６では、累積処理時間に現在選択されている演算ユニットのｉ番目演算処理時間と合計する。Ｔｓｕｍ＝ Ｔｓｕｍ＋Ｔｉをする。
【００４２】
ステップＳ６７では、累積演算処理時間を合計したＴｓｕｍ（合計値）と上記比較処理時間とを比較する。比較処理時間は動作周期（Ｔｃｌｋ）を予め設定する。ここで動作周期とは、システムクロックの周期である。但し、システムクロック以外の周期を用いてもよい。
【００４３】
次に、合計値が比較処理時間に収まればステップＳ６８（ＹＥＳ）に進み、そうでない場合はステップＳ６９（ＮＯ）の処理をする。
ステップＳ６８では、変数ｉの示す演算ユニットのセレクタ１１の切替えを、ＦＦ１２を使用しないように設定する。
【００４４】
ステップＳ６９では、変数ｉの示す演算ユニットのセレクタ１１の切替えを、ＦＦ１２を使用するように設定し、ステップＳ６１０で現在の累積処理時間Ｔｓｕｍを破棄して、現在の演算ユニットの演算処理時間ＴｉをＴｓｕｍに代入する。
【００４５】
ステップＳ６１１では、演算ユニット１〜Ｎまでのセレクタ１１の切替え設定が完了したかを確認する。Ｎ個の演算ユニットの設定が完了していない場合は、Ｓ６４に戻りＮ個分の設定が完了するまで処理を続ける。
【００４６】
上記説明したプログラムにより、コンフィギュレーション情報にセレクタ切替えの情報を反映させることができる。
また、演算ユニットの演算処理時間を算出する際に、ビット幅に関するデータ以外にも温度による演算処理の遅延などを追加してもよい。
【００４７】
なお、当然であるが１つの演算ユニットから複数の演算ユニットに接続される場合、つまり２つ以上のルートが存在する場合にも、上記プログラムを利用することでセレクタの切替えをコンフィギュレーションデータに反映することが可能である。
【００４８】
さらに、演算ユニットのＦＦ１２を切替えるセレクタ１１はクロスバスイッチを利用することで、コンフィギュレーション情報による接続を変更することを可能している。よって、セレクタ１１は演算ユニット１０の外部に設ける構成としてもよい。
【００４９】
ここで、本発明が適用されるプログラム（図４、図６に示したプログラムのフロー図）は、そのプログラムコードを記録したＲＯＭやＲＡＭのメモリ、外部記録装置、可搬記録媒体をコンピュータ（ＰＣなど）に供給し、そのコンピュータがプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【００５０】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記録した可搬記録媒体等は本発明を構成することになる。プログラムコードを提供するための可搬記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、磁気テープ、不揮発性のメモリーカード、ＲＯＭカード、電子メールやパソコン通信等のネットワーク接続装置（言い換えれば、通信回線）を介して記録した種々の記録媒体などを用いることができる。
また、コンピュータがメモリ上に読み出したプログラムコードを実行することによって、前述した実施の形態の機能が実現される他、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施の形態の機能が実現される。
更に、可搬型記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実現の処理の一部又は全部を行い、その処理によっても前述した実施の形態の機能が実現される。
その後、プログラムに基づき作成されたコンフィギュレーション情報は、上記コンピュータの通信手段などによりコンフィギュレーションメモリ３の適切なエリアに保存される。
（変形例）
図７は本発明で演算ユニットをマッピングした例である。円で囲まれた領域の演算ユニットは高速でデータをやり取りができる領域（グループ）を示している。
【００５１】
例えば１クロック内で処理を完了することができる範囲である。
また、このようなグループが、他の高速処理を必要とするグループと演算を行う場合（グループを跨いでデータのやり取りを行う際）、同図のようにグループ境界の近傍に設けたグループ通信用ＦＦを配置することで、グループ内の演算処理を安定して高速にすることができる。
【００５２】
また、本発明は、上記実施の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。
（付記１）少なくとも複数の演算ユニットを備え、コンフィギュレーション情報に基づき主に前記複数の演算ユニットを再構成することで多種の機能を実現可能なリコンフィギュラブル回路における前記演算ユニットにおいて、
前記演算ユニットへの入力データに対して演算処理を行う演算器と、
前記入力データが前記演算器へ転送される時間を遅延させるためのフリップフロップと、
前記入力データを前記フリップフロップを介して前記演算器へ転送する経路と、
前記入力データを前記フリップフロップを介さずに前記演算器へ転送する経路とを切替えるセレクタとを備え、
前記セレクタはコンフィギュレーション情報に含まれる前記セレクタの切替条件設定情報に基づき前記経路の切替えを行う、
ことを特徴とする演算ユニット。
【００５３】
（付記２）前記セレクタの切替えは、クロスバスイッチにより構成されることを特徴とする付記１に記載のリコンフィギュラブル回路を構成する演算ユニット。
（付記３）少なくとも複数の演算ユニットを備え、コンフィギュレーション情報に基づき主に前記複数の演算ユニットを再構成することで多種の機能を実現可能なリコンフィギュラブル回路において、前記演算ユニットへの入力データに対して演算処理を行う演算器と、前記入力データが前記演算器へ転送される時間を遅延させるためのフリップフロップとを備え、前記入力データを前記フリップフロップを介して前記演算器へ転送する経路と、前記入力データを前記フリップフロップを介さずに前記演算器へ転送する経路とを切替えるセレクタを前記演算ユニットの外部に備え、前記セレクタはコンフィギュレーション情報に含まれる前記セレクタの切替条件設定情報に基づき前記経路の切替えを行う、ことを特徴とするリコンフィギュラブル回路。
【００５４】
（付記４）付記１記載の演算ユニットを複数備えて多種の機能を実現可能なリコンフィギュラブル回路における前記複数の演算ユニットの構成を切替えるコンフィギュレーション情報を作成する処理をコンピュータに実行させるためのプログラムであって、前記演算ユニットの備えるセレクタが、前記演算ユニットへの入力データを、前記演算ユニットの備えるフリップフロップを介して、前記演算ユニットの備える演算器へ転送する経路と、前記フリップフロップを介さずに前記演算器へ転送する経路と、を切替えるための切替条件設定を、コンフィギュレーション情報に反映させる処理を前記コンピュータに実行させることを特徴とするプログラム。
【００５５】
（付記５）前記セレクタの前記切替条件設定は、演算処理を行うために、複数の前記演算ユニットの各演算処理内容を設定する演算内容の情報と接続内容の情報に基づいて、前記演算ユニットの前記演算内容に対応した演算処理時間を算出し、前記演算ユニット間の前記接続内容に基づいて、接続される最初の前記演算ユニットを選択し、前記最初の演算ユニットから接続順に、前記演算ユニットの前記演算処理時間から累積処理時間を算出する処理と、前記累積処理時間を前記算出する毎に、予め設定した動作周期の時間と比較し、動作周期以内であれば前記フリップフロップを使用しない設定をし、動作周期を超えていれば前記フリップフロップを使用する設定にするとともに、累積時間を現在選択されている前記演算ユニットの前記演算処理時間に変更して設定をする処理と、を特徴とする付記４に記載のコンピュータに提供するプログラム。
【００５６】
（付記６）前記演算処理時間は、前記演算ユニットに接続される配線数に対応した前記演算処理時間であることを特徴とする付記５に記載のコンピュータに提供するプログラム。
【００５７】
（付記７）
付記１記載の演算ユニットを複数備えて多種の機能を実現可能なリコンフィギュラブル回路における前記複数の演算ユニット構成切替方法において、
前記演算ユニットの備えるセレクタが、前記演算ユニットへの入力データを、前記演算ユニットの備えるフリップフロップを介して、前記演算ユニットの備える演算器へ転送する経路と、前記フリップフロップを介さずに前記演算器へ転送する経路と、を切替えるための切替条件設定を、コンフィギュレーション情報に反映させ、
前記コンフィギュレーション情報に反映された前記切替条件設定に基づき、前記セレクタを制御して前記経路の切替えを行わせることを特徴とする演算ユニット構成切替方法
（付記８）前記セレクタの前記切替条件設定は、演算処理を行うために、複数の前記演算ユニットの各演算処理内容を設定する演算内容の情報と、接続内容の情報に基づいて、前記演算ユニットの前記演算内容に対応した演算処理時間を算出し、前記演算ユニット間の前記接続内容に基づいて、接続される最初の前記演算ユニットを選択し、前記最初の演算ユニットから接続順に、前記演算ユニットの前記演算処理時間から累積処理時間を算出し、
前記累積処理時間を前記算出する毎に、予め設定した動作周期の時間と比較し、動作周期以内であれば前記フリップフロップを使用しない設定をし、動作周期を超えていれば前記フリップフロップを使用する設定にするとともに、累積時間を現在選択されている前記演算ユニットの前記演算処理時間に設定をする、
ことを特徴とする付記７に記載の演算ユニット構成切替方法。
【００５８】
（付記９）前記演算処理時間は、前記演算ユニットに接続される配線数に対応した前記演算処理時間を算出することを特徴とする付記８に記載の演算ユニット構成切替方法。
（付記１０）少なくとも複数の演算ユニットを備え、コンフィギュレーション情報に基づき主に前記複数の演算ユニットを再構成することで多種の機能を実現可能なリコンフィギュラブル回路における前記演算ユニットにおいて、
前記演算ユニットへの入力データに対して演算処理を行う演算器と、
前記入力データが前記演算器へ転送される時間を遅延させるためのフリップフロップと、
前記入力データを前記フリップフロップを介して前記演算器へ転送する経路と、
前記入力データを前記フリップフロップを介さずに前記演算器へ転送する経路とを切替えるセレクタとを備え、
前記セレクタはコンフィギュレーション情報に含まれる前記セレクタの切替条件設定情報に基づき前記経路の切替えを行う切替手段と、
前記切替手段を有する前記演算ユニット間を前記コンフィギュレーション情報に基づき接続をするとき、前記演算ユニットの演算処理時間の合計が予め設定された動作周期内であればグループとし、
前記グループ間でデータの転送を行うときは前記グループの出力に、通信用フリップフロップを設け、前記通信用フリップフロップを介して転送を行う通信手段を、
具備することを特徴とするリコンフィギュラブル回路
（付記１１）前記演算処理時間は、温度変化による前記演算処理時間の変動を算出することを特徴とする付記５に記載のコンピュータに提供するプログラム。
【００５９】
（付記１２）前記演算処理時間は、温度変化による前記演算処理時間の変動を算出することを特徴とすることを特徴とする付記８に記載のコンフィギュレーション情報の作成方法。
【図面の簡単な説明】
【００６０】
【図１】本発明の演算ユニットの構成を示した図である。
【図２】本発明の演算ユニット接続を示した図である。
【図３】ＦＦを使用しない処理を行った図である。（処理遅延  ２クロック）
【図４】実施例１によるセレクタ切替え方法のフローである。
【図５】実施例１のフローを説明するためのリコンフィギュラブル回路の概要図である。
【図６】実施例２によるセレクタ切替え方法のフローである。
【図７】グループ間でデータのやり取りを行う場合のリコンフィギュラブル回路の概要図である。
【図８】クラスタの構成を示す図である。
【図９】クラスタ内の構成における、本発明の主要な構成部分を示す図である。
【図１０】無線ＬＡＮ装置にリコンフィギュラブル回路を適用した回路である。
【図１１】従来のリコンフィギュラブル回路を示した図である。（処理遅延  ３クロック）
【符号の説明】
【００６１】
１    再構成可能演算回路（クラスタ）
２    演算器群
３    コンフィギュレーションメモリ
４    シーケンサ
５    データ入力部
６    データバッファ部
７    データバッファ制御部
８    演算器間ネットワーク
９    データメモリ
１０    演算器
１１    セレクタ
１２    ＦＦ（フリップフロップ）
１３    演算器
１０１    アンテナ
１０２    アナログＲＦ（Ｒａｄｉｏ ｆｒｅｑｕｅｎｃｙ ）部
１０３    アナログＢＢ（ベースバンド：Ａ／Ｄ変換）部
１０４    ディジタルＢＢ部
【図１】
2006252144.tif 000003
【図２】
2006252144.tif 000004
【図３】
2006252144.tif 000005
【図４】
2006252144.tif 000006
【図５】
2006252144.tif 000007
【図６】
2006252144.tif 000008
【図７】
2006252144.tif 000009
【図８】
2006252144.tif 000010
【図９】
2006252144.tif 000011
【図１０】
2006252144.tif 000012
【図１１】
2006252144.tif 000013