(57)【要約】【課題】再構成可能な演算装置において、複数の再構成可能な演算器グループの回路構成をグループごとに切り替えること。【解決手段】少なくとも１つの演算器を含む再構成可能な複数の演算器グループ３４，３５，３６と、これらの演算器グループ３４，３５，３６の任意の出力データを演算器グループ３４，３５，３６の任意の入力データとすることができる再構成可能なバスネットワーク５と、複数の演算器グループ３４，３５，３６の回路構成を制御するためのアドレス情報および切り替えタイミング信号を出力するシーケンサ３１と、シーケンサ３１から出力されたアドレス情報および切り替えタイミング信号に基づいて、複数の演算器グループ３４，３５，３６の回路構成をグループごとに再構成可能にする回路構成出力部４と、を備える。【選択図】図２
2007249843.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの演算器を含む再構成可能な複数の演算器グループと、
複数の前記演算器グループの任意の出力データを複数の前記演算器グループの任意の入力データとすることができる再構成可能なバスネットワークと、
複数の前記演算器グループの回路構成を制御するためのアドレス情報および切り替えタイミング信号を出力するシーケンサと、
前記シーケンサから出力されたアドレス情報および切り替えタイミング信号に基づいて、複数の前記演算器グループの回路構成をグループごとに再構成可能にする回路構成出力部と、
を備えることを特徴とする再構成可能な演算装置。
【請求項２】
前記回路構成出力部は、複数の前記演算器グループにアドレス情報を前記演算器グループごとに制御されたタイミングで出力する遅延器を含むことを特徴とする請求項１に記載の再構成可能な演算装置。
【請求項３】
前記回路構成出力部は、アドレス情報に対して算術演算を行って該アドレス情報を動的に変化させる算術演算器を含むことを特徴とする請求項１に記載の再構成可能な演算装置。
【請求項４】
前記回路構成出力部は、アドレス情報に対して論理演算を行って該アドレス情報を動的に変化させる論理演算器を含むことを特徴とする請求項１に記載の再構成可能な演算装置。
【請求項５】
前記回路構成出力部は、アドレス情報を変換するテーブルを含むことを特徴とする請求項１に記載の再構成可能な演算装置。
【請求項６】
前記回路構成出力部は、アドレス情報をルックアップテーブルを用いてデコードする回路を含むことを特徴とする請求項１に記載の再構成可能な演算装置。
【請求項７】
前記回路構成出力部は、特定のアドレス情報によりカウントを開始するカウンタのカウント値に対応するアドレス情報を複数の前記演算器グループへ出力するパターン出力回路を含むことを特徴とする請求項１に記載の再構成可能な演算装置。
【請求項８】
前記回路構成出力部は、切り替えタイミング信号を前記演算器グループごとに遅延させて、前記演算器グループにアドレス情報をグループごとに制御されたタイミングで出力させるイネーブル信号遅延器を含むことを特徴とする請求項１に記載の再構成可能な演算装置。
【請求項９】
前記回路構成出力部は、切り替えタイミング信号を複数の前記演算器グループごとに分配するイネーブル信号の分配器を含むことを特徴とする請求項１に記載の再構成可能な演算装置。
【請求項１０】
前記回路構成出力部は、前記請求項２〜７のいずれか１つ、または前記請求項２〜７の異種もしくは同種のいずれか２つ以上の構成と、前記請求項８もしくは９のいずれか１つの構成を組み合わせた構成であることを特徴とする請求項１に記載の再構成可能な演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、動的に構成を変えることにより様々な処理を行うことができる再構成可能な演算装置に関する。
【背景技術】
【０００２】
図１２は、従来の再構成可能な演算装置の構成を示す図である。図１２に示すように、従来の再構成可能な演算装置１は、シーケンサ１１から出力されたアドレス情報を、回路構成出力部１２のテーブル１３を参照してデコードし、複数の演算器グループ１４，１５，１６へ演算器等の実命令コードを出力する。特定のアドレス情報のときには、複数の演算器グループ１４，１５，１６は、シーケンサ１１から出力された切り替えタイミング信号に基づいて、一括して再構成される。
【０００３】
図１３は、図１２に示す演算装置１の３段パイプライン動作について説明する図である。図１３に示すように、例えばデータの入力回数が３回である場合、データ１は、１段目、２段目および３段目の演算器グループ１４，１５，１６の回路構成が切り替わってから、１段目の演算器グループ１４に入力される。そして、データ１、データ２およびデータ３のパイプライン処理が済み、データ３が３段目の演算器グループ１６から出力された後に、１段目、２段目および３段目の演算器グループ１４，１５，１６の回路構成が切り替わる。
【０００４】
このような再構成可能な演算装置として、次の構成のデータ処理装置が公知である。このデータ処理装置は、演算または他のデータ処理を実行する少なくとも１つの処理ユニットと、前記処理ユニットで実行する演算または他のデータ処理の内容を指示する実行命令を記述可能な第１のフィールド、および前記実行命令で実行する演算または他のデータ処理が実行可能な状態に前記処理ユニットを設定する準備情報を記述可能な第２のフィールドとを具備する命令セットをフェッチ可能なユニットと、前記第１のフィールドの前記実行命令をデコードし、その実行命令の演算または他のデータ処理が実行できるように予め設定された前記処理ユニットにより当該演算または他のデータ処理を進める第１の実行制御ユニットと、前記第２のフィールドの前記準備情報をデコードし、前記第１の実行制御ユニットの実行内容とは独立して前記処理ユニットの状態を演算または他のデータ処理が実行できるように設定する第２の実行制御ユニットとを有する（例えば、特許文献１参照。）。
【０００５】
また、次の構成のデータ処理装置が公知である。このデータ処理装置は、入力および／または出力インタフェースを変更可能な複数の処理ユニットと、少なくとも１つの前記処理ユニットの入力および／または出力インタフェースを、前記処理ユニットにより処理を実行する時期とは独立して指示するデータフロー指定命令をフェッチ可能なユニットと、前記データフロー指定命令をデコードし、前記処理ユニットの入力および／または出力インタフェースを設定し、複数の前記処理ユニットによるデータパスを構成可能なデータフロー指定ユニットとを有する（例えば、特許文献２参照。）。
【０００６】
さらに、本発明者は、先に再構成可能な演算装置について出願している。この出願にかかる再構成可能な演算装置は、所与の第１のコンフィギュレーション・データにより再構成可能で互いに同時動作可能な複数の演算手段と、読み書き自在の少なくとも１つの記憶手段と、演算装置として必要とされる種々の処理要素と、前記複数の演算手段および前記記憶手段の任意の出力データを前記複数の演算手段の任意の入力のデータとすることを可能とするとともに、前記複数の演算手段、前記記憶手段および前記の種々の処理要素からなる資源の間のデータ転送を前記資源の位置および種類にほぼ依存することなく均一な転送時間で行うとともに、所与の第２のコンフィギュレーション・データにより再構成可能な資源間相互接続手段と、前記第１および第２のコンフィギュレーション・データを格納する格納手段と、前記コンフィギュレーション・データを外部記憶装置から前記格納手段へロードする手段と、前記複数の演算手段から得られる情報に基づき、前記第１および第２のコンフィギュレーション・データを適切なシーケンスおよびタイミングで前記の再構成可能な手段に供給する供給手段とを備える（例えば、特許文献３参照。）。
【０００７】
【特許文献１】国際公開第０１／１６７１０号パンフレット
【特許文献２】国際公開第０１／１６７１１号パンフレット
【特許文献３】特開２００６−３１１２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の再構成可能な演算装置では、回路構成が複数の演算器グループ全体で一括して切り替わるため、複数の演算器グループでパイプライン処理を行う場合、図１３に示すように、初期の段階で２段目以降の演算器グループにデータの待ち時間ができてしまう。また、最終の段階では、最終段よりも手前の演算器グループにデータの待ち時間ができてしまう。回路構成の再構成回数が増えるほど、演算器グループのデータ待ち時間が増えるため、演算装置の処理効率が低くなるという問題点がある。
【０００９】
この問題は、上記特許文献１または特許文献２に開示されたデータ処理装置においても同様である。また、これらのデータ処理装置では、演算処理ユニットアレイ部での演算が終了したことの確認が取れた段階で回路構成を一括して切り替えることが可能であるが、この場合には、演算処理ユニットアレイ部に有効なデータが全くない状態を作る必要がある。そのため、実際に回路構成を切り替えるタイミングを考慮すると、数十サイクルのペナルティが発生する場合があるという問題点がある。
【００１０】
この発明は、上述した従来技術による問題点を解消するため、複数の再構成可能な演算器グループの回路構成をグループごとに切り替えることができる再構成可能な演算装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、本発明にかかる再構成可能な演算装置は、再構成可能な複数の演算器グループ、再構成可能なバスネットワーク、シーケンサおよび回路構成出力部を備える。各演算器グループは、少なくとも１つの演算器を含む。バスネットワークは、複数の演算器グループの任意の出力データをそれら演算器グループの任意の入力データとすることができる。シーケンサは、各演算器グループの回路構成を制御するためのアドレス情報および切り替えタイミング信号を出力する。回路構成出力部は、シーケンサから出力されたアドレス情報および切り替えタイミング信号に基づいて、複数の演算器グループの回路構成をグループごとに再構成可能にする。この発明によれば、回路構成出力部によって、複数の再構成可能な演算器グループの回路構成をグループごとに切り替えることが可能となる。
【００１２】
この発明において、回路構成出力部は、複数の演算器グループにシーケンサから出力されたアドレス情報を演算器グループごとに制御されたタイミングで出力する遅延器を含んでいてもよい。例えば、この遅延器は、特定のアドレス情報に基づいて、複数の演算器グループへのアドレス情報の出力タイミングを制御する構成であってもよい。このようにすることによって、各演算器グループにアドレス情報を演算器グループごとに制御されたタイミングで与えることができる。
【００１３】
具体的には、遅延器を、切り替えタイミング信号をレジスタで遅延させる構成としてもよいし、あるいは、切り替えタイミング信号をカウンタのカウントにより指定サイクル数だけ遅延させる構成としてもよい。遅延サイクル数が少ない場合には、レジスタを用いた構成とすればよいし、遅延サイクル数が多い場合には、カウンタを用いた構成とすればよい。
【００１４】
また、上記発明において、回路構成出力部は、アドレス情報に対して算術演算を行って該アドレス情報を動的に変化させる算術演算器や、アドレス情報に対して論理演算を行って該アドレス情報を動的に変化させる論理演算器を含んでいてもよい。さらに、回路構成出力部は、アドレス情報を変換するテーブルを含んでいてもよい。このようにすることによって、シーケンサから出力されたアドレス情報を動的に変化させて各演算器グループに与えることができる。
【００１５】
また、上記発明において、回路構成出力部は、アドレス情報をルックアップテーブルを用いてデコードする回路を含んでいてもよい。また、回路構成出力部は、特定のアドレス情報によりカウントを開始するカウンタのカウント値に対応するアドレス情報を複数の演算器グループへ出力するパターン出力回路を含んでいてもよい。この場合、カウンタが複数の演算器グループごとに設けられていてもよい。このようにすることによって、シーケンサから出力されたアドレス情報に基づいて、回路構成出力部が独自にアドレス情報を動的に変化させて各演算器グループに与えることができる。
【００１６】
また、上記発明において、回路構成出力部は、切り替えタイミング信号を演算器グループごとに遅延させて、演算器グループにアドレス情報をグループごとに制御されたタイミングで出力させるイネーブル信号遅延器を含んでいてもよい。このようにすることによって、各演算器グループにアドレス情報を与えるタイミングを演算器グループごとに制御することができる。具体的には、イネーブル信号遅延器を、特定のアドレス情報に基づいて、シーケンサから出力された切り替えタイミング信号を、レジスタで遅延させる構成としてもよいし、特定のアドレス情報によりカウントを開始するカウンタで指定サイクル数だけ遅延させる構成としてもよい。
【００１７】
カウンタを用いる場合には、複数の演算器グループごとにカウンタを設け、該カウンタのカウント数の設定値およびカウントを開始するための特定のアドレス情報を、複数の演算器グループごとに設定可能にしてもよい。遅延サイクル数が少ない場合には、レジスタを用いた構成とすればよいし、遅延サイクル数が多い場合には、カウンタを用いた構成とすればよい。また、上記発明において、回路構成出力部は、切り替えタイミング信号を複数の演算器グループごとに分配するイネーブル信号の分配器を含んでいてもよい。また、上記発明において、上述した各回路構成出力部を組み合わせてもよい。
【００１８】
さらに、シーケンサが、複数の演算器グループのうちのいずれかから回路切り替え要求信号を受け取ると、複数の演算器グループの回路構成を制御するための次のアドレス情報を出力する構成であってもよい。このようにすれば、演算器グループの演算結果に応じて演算器グループの回路構成を切り替えることができる。また、シーケンサが、独自に演算器グループの回路構成を切り替えるようになっていてもよい。
【発明の効果】
【００１９】
本発明にかかる再構成可能な演算装置によれば、複数の再構成可能な演算器グループの回路構成をグループごとに切り替えることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２０】
以下に添付図面を参照して、この発明にかかる再構成可能な演算装置の好適な実施の形態を詳細に説明する。なお、すべての添付図面において、同様の構成要素には同一の符号を付して、重複する説明を省略する。
【００２１】
図１は、本発明にかかる再構成可能な演算装置を備えた集積回路装置の構成を概略的に示す図である。図１に示すように、この集積回路装置２は、複数（特に限定しないが、図示例では６個）のクラスタブロックと呼ばれる再構成可能な演算装置３を有する。各演算装置３は、クロスバー２１を介して相互にデータの授受が可能に接続されている。各演算装置３に対するデータの入出力パス、およびクロスバー２１によるデータパスの構成は、上位制御回路２２により制御されている。
【００２２】
図２は、本発明にかかる演算装置の構成を示す図である。図２に示すように、演算装置３は、シーケンサ３１、回路構成出力部４、複数（特に限定しないが、図示例では３個）の演算器グループ３４，３５，３６およびバスネットワーク５を備えている。各演算器グループ３４，３５，３６は、少なくとも１個の演算器を含む。例えば、各演算器グループ３４，３５，３６は、１個以上の乗算器と１個以上の加算器を含む。
【００２３】
それら乗算器と加算器の間のデータパス、およびそれらの演算器と他の種々の回路要素の間のデータパスは、配線情報等に基づいて再構成可能であり、演算装置３で行う処理に合わせて再構成される。なお、演算器グループの数は、２個でもよいし、４個以上、例えば十数〜数十個でもよい。ここでは、演算器グループの数が３個である場合を例にして説明するが、それ以外の場合でも同様である。
【００２４】
シーケンサ３１は、演算器グループ３４，３５，３６の回路構成を制御するためのアドレス情報および切り替えタイミング信号を出力する。バスネットワーク５は、複数の演算器グループ３４，３５，３６のいずれについても、その出力データを自身の入力データとすることができ、また、その出力データを同一の演算装置３内の他の演算器グループの入力データとすることができる。バスネットワーク５は、配線情報等に基づいて再構成可能であり、演算装置３で行う処理に合わせて再構成される。バスネットワーク５と他の演算装置内のバスネットワークとは、クロスバー２１を介して相互に接続可能である。
【００２５】
回路構成出力部４は、テーブル４２、第１の付加回路４１、第２の付加回路４４および第３の付加回路４３のうちのいずれか１つまたは２つ以上を備えている。回路構成出力部４には、テーブル４２、第１の付加回路４１、第２の付加回路４４および第３の付加回路４３のすべてが備わっている必要はないが、図２には、すべてが備えられている状態が示されている。集積回路装置２の用途や演算装置３で行う処理などに応じて、テーブル４２、第１の付加回路４１、第２の付加回路４４および第３の付加回路４３の中から必要なものが選択されて用いられる。
【００２６】
また、回路構成出力部４が複数の演算器グループ３４，３５，３６の回路構成の切り替えをグループごとに制御する場合には、回路構成出力部４には、レジスタ４５が設けられる。レジスタ４５は、回路構成出力部４から各演算器グループ３４，３５，３６に渡されるアドレス情報を一時的に保持し、グループごとに制御されたタイミングで各演算器グループ３４，３５，３６へ出力する。複数の演算器グループ３４，３５，３６の回路構成を一括して切り替える場合には、レジスタ４５はなくてもい。
【００２７】
テーブル４２は、入力されたアドレス情報に対応したアドレス情報や演算器等の実命令コードを出力する。第１の付加回路４１は、例えば単純遅延器、指定サイクル数遅延器、算術演算器、論理演算器、ルックアップテーブルを用いたアドレスデコード回路またはスルーデータ回路を備えている。第１の付加回路４１は、シーケンサ３１から出力されたアドレス情報に対して、次のような処理を行う。
【００２８】
単純遅延器は、シーケンサ３１から特定のアドレス情報が出力されたときに、レジスタ４５によって、シーケンサ３１から出力された切り替えタイミング信号を演算器グループごとに遅延させ、それによって、複数の演算器グループ３４，３５，３６へのアドレス情報の出力タイミングをグループごとに遅延させる。指定サイクル数遅延器は、単純遅延器のレジスタ４５の代わりに、カウンタを用いることによって、単純遅延器よりも多くのサイクル数の遅延を行うようにしたものである。
【００２９】
単純遅延器および指定サイクル数遅延器は、シーケンサ３１から特定以外のアドレス情報が出力された場合には、そのアドレス情報に対して何も処理を行わない。第１の付加回路４１が単純遅延器や指定サイクル数遅延器である場合には、各演算器グループ３４，３５，３６を再構成する際の切り替えタイミングをグループごとに変化させることができる。当然のことながら、各演算器グループ３４，３５，３６に対する遅延サイクルの数を同じにすれば、各演算器グループ３４，３５，３６の構成を一括して切り替えることもできる。
【００３０】
算術演算器は、シーケンサ３１から出力されたアドレス情報に対して算術演算を行うことによって、アドレス情報を動的に変化させる。論理演算器は、シーケンサ３１から出力されたアドレス情報に対して論理演算を行うことによって、アドレス情報を動的に変化させる。アドレスデコード回路は、ルックアップテーブルを用いて、シーケンサ３１から出力されたアドレス情報のデコードを行う。第１の付加回路４１が算術演算器や論理演算器やアドレスデコード回路である場合には、テーブル４２の参照アドレスを動的に変化させることができる。スルーデータ回路は、シーケンサ３１から出力されたアドレス情報に対して何も処理を行わない。
【００３１】
第３の付加回路４３は、例えば単純遅延器、指定サイクル数遅延器、算術演算器、論理演算器、ルックアップテーブルを用いたアドレスデコード回路、スルーデータ回路、またはカウンタとメモリによるパターン出力回路を備えている。これら遅延器、演算器および回路（ただし、パターン出力回路を除く）は、それぞれ、テーブル４２から出力されたアドレス情報に対して、第１の付加回路４１の遅延器、演算器および回路と同様の処理を行う。
【００３２】
パターン出力回路は、テーブル４２から特定のアドレス情報が出力されたときに、カウンタのカウントを開始し、そのカウント値に対応するアドレス情報をメモリから読み出して複数の演算器グループ３４，３５，３６へ出力する。これは、テーブル４２はないが、第１の付加回路４１がある場合には、第１の付加回路４１から特定のアドレス情報が出力されたときに行われる。また、テーブル４２も第１の付加回路４１もない場合には、シーケンサ３１から特定のアドレス情報が出力されたときに行われる。
【００３３】
パターン出力回路に特定以外のアドレス情報が入力された場合には、パターン出力回路は、そのアドレス情報に対して何も処理を行わない。第３の付加回路４３がパターン出力回路である場合には、シーケンサ３１からアドレス情報が１回、出力されると、回路構成出力部４から各演算器グループ３４，３５，３６へ複数のアドレス情報を出力させることができる。
【００３４】
第２の付加回路４４は、例えばイネーブル信号遅延器またはイネーブル信号の分配器を備えている。イネーブル信号遅延器は、シーケンサ３１から特定のアドレス情報が出力されたときに、シーケンサ３１から出力された切り替えタイミング信号をレジスタ４５で遅延させて、レジスタ４５からのアドレス情報の出力を許可するイネーブル信号として出力する。切り替えタイミング信号を複数サイクルだけ遅延させる場合には、特定のアドレス情報によりカウントを開始するカウンタを用いて切り替えタイミング信号を指定サイクル数だけ遅延させるようにすればよい。
【００３５】
イネーブル信号遅延器によれば、各演算器グループ３４，３５，３６にアドレス情報を与えるタイミングをグループごとに制御することができる。イネーブル信号遅延器に特定以外のアドレス情報が入力された場合には、イネーブル信号遅延器は、シーケンサ３１から出力された切り替えタイミング信号をそのままレジスタ４５へ出力する。イネーブル信号の分配器は、シーケンサ３１から出力された切り替えタイミング信号を複数の演算器グループ３４，３５，３６ごとに分配する。
【００３６】
回路構成出力部４におけるテーブル４２、第１の付加回路４１、および第３の付加回路４３の有無は、集積回路装置２のクラスタブロック（図１参照）ごとに適宜、選択される。また、第１の付加回路４１および第３の付加回路４３が上述した遅延器や演算器や回路のいずれであるか、ということや、第２の付加回路４４がイネーブル信号の遅延器であるか分配器であるか、ということも、集積回路装置２のクラスタブロックごとに適宜、選択される。第１の付加回路４１と第３の付加回路４３により、シーケンサ３１からの１回の動作指示によって複数の命令を発行することができる。また、その命令発行タイミングを可変にすることができる。さらに、実際の発行タイミングを決めるイネーブル信号についても、同様の制御が可能である。
【００３７】
また、演算装置３においては、各演算器グループ３４，３５，３６の構成を切り替えるモードとして次の３つのモードを実現できる。第１のモードは、シーケンサ３１が独自に判断して、各演算器グループ３４，３５，３６の構成を切り替える自立モードである。第２のモードは、複数の演算器グループ３４，３５，３６からそれぞれの演算終了時点で出力される回路切り替え要求信号ＣＳ１，ＣＳ２，ＣＳ３のいずれか１つに基づいて、シーケンサ３１が各演算器グループ３４，３５，３６の構成を切り替える演算結果モードである。
【００３８】
第３のモードは、回路構成出力部４におけるカウンタやアドレスなどの情報に基づいて、回路構成出力部４が独自に切り替えるモードである。これら３つのモードを実現できることによって、従来の再構成可能な演算装置１では実現できなかった複雑なＦｏｒ  Ｌｏｏｐ文などを実装することができる。
【００３９】
次に、回路構成出力部４が上述した単純遅延器で構成される場合の具体例を説明する。図３は、単純遅延器の構成の一例を示す図である。図３に示すように、回路構成出力部４は、演算回路５１、レジスタ５２，５３，５４，５５，５６、セレクタ５７，５８，５９を備えている。演算回路５１は、シーケンサ３１から特定のアドレス情報が与えられたときに、セレクタ５７，５８，５９の出力を制御する回路である。
【００４０】
この回路構成出力部４では、シーケンサ３１から出力されたアドレス情報は、１段目の演算器グループ用のレジスタ５４、２段目の演算器グループ用のレジスタ５５および３段目の演算器グループ用のレジスタ５６に送られ、そこで一時的に保持される。これら３つのレジスタ５４，５５，５６は、図２に示す演算装置３の全体図のレジスタ４５に相当する。各レジスタ５４，５５，５６に対してアドレス情報の出力を許可するイネーブル信号は、それぞれ１段目の演算器グループ用のセレクタ５７、２段目の演算器グループ用のセレクタ５８および３段目の演算器グループ用のセレクタ５９から与えられる。
【００４１】
各セレクタ５７，５８，５９は、シーケンサ３１から出力された切り替えタイミング信号と、該切り替えタイミング信号を前段のレジスタ５２により遅延させた信号と、前段のレジスタ５２の出力信号を後段のレジスタ５３によりさらに遅延させた信号の中から１つを選択して出力する。演算回路５１に特定のアドレス情報が与えられたときには、１段目の演算器グループ用のセレクタ５７、２段目の演算器グループ用のセレクタ５８および３段目の演算器グループ用のセレクタ５９は、それぞれ１段目の演算器グループ用のレジスタ５４、２段目の演算器グループ用のレジスタ５５および３段目の演算器グループ用のレジスタ５６に、シーケンサ３１から出力された切り替えタイミング信号を遅延させた信号を出力する。
【００４２】
一方、シーケンサ３１から特定以外のアドレス情報が出力された場合には、各セレクタ５７，５８，５９は、シーケンサ３１から出力された切り替えタイミング信号をそのまま出力する。回路構成出力部４は、特定のアドレス情報の入力によってアドレス情報の出力タイミングを遅延させる制御が開始されると、数サイクルの間、シーケンサ３１からのアドレス情報の入力を受け付けない。
【００４３】
次に、回路構成出力部４が上述したパターン出力回路で構成される場合の具体例を説明する。図４は、パターン出力回路の構成の一例を示す図であり、複数の演算器グループの回路構成の切り替えを一括して制御する場合の図である。図４に示すように、回路構成出力部４は、比較回路６１、カウンタ６２、メモリ６３およびセレクタ６４を備えている。比較回路６１は、シーケンサ３１から出力されたアドレス情報と、予め設定されたアドレス情報との比較を行う。比較の結果、両アドレス情報が一致する場合には、比較回路６１は、カウンタ６２を起動させてゼロからカウントを開始させるとともに、セレクタ６４をメモリ６３側に切り替える。
【００４４】
カウンタ６２のカウント値はメモリ６３に渡され、そのカウント値に応じてメモリ６３から出力されるアドレス情報がセレクタ６４を介して複数の演算器グループへ一括して送られる。カウンタ６２のカウント値が予め設定された値になるまで、この動作が継続する。従って、シーケンサ３１がアドレス情報を１回、出力しただけで、回路構成出力部４が複数のアドレス情報を出力することになる。比較回路６１で両アドレス情報が一致しないとき、またはカウンタ６２のカウント値が設定値になったときには、セレクタ６４は、シーケンサ３１側に切り替えられ、シーケンサ３１から出力されたアドレス情報をそのまま出力する。
【００４５】
図５は、回路構成出力部がパターン出力回路で構成されており、複数の演算器グループの回路構成の切り替えをグループごとに制御する場合の図である。図５に示すように、この場合の回路構成出力部４は、上述した一括制御方式のパターン出力回路と同様の構成をグループごとに有している。すなわち、回路構成出力部４は、１段目の演算器グループ用の比較回路６５ａ、カウンタ６６ａ、メモリ６７ａおよびセレクタ６８ａと、２段目の演算器グループ用の比較回路６５ｂ、カウンタ６６ｂ、メモリ６７ｂおよびセレクタ６８ｂと、３段目の演算器グループ用の比較回路６５ｃ、カウンタ６６ｃ、メモリ６７ｃおよびセレクタ６８ｃを備えている。
【００４６】
比較回路６５ａ，６５ｂ，６５ｃのアドレス情報の設定値１、設定値２および設定値３は、同じであってもよいし、異なっていてもよい。また、カウンタ６６ａ，６６ｂ，６６ｃのカウント値の設定値Ａ、設定値Ｂおよび設定値Ｃは、同じであってもよいし、異なっていてもよい。さらに、メモリ６７ａ，６７ｂ，６７ｃに格納されている変換情報も、同じであってもよいし、異なっていてもよい。このような構成により、セレクタ６８ａ，６８ｂ，６８ｃからそれぞれ１段目の演算器グループ用のアドレス情報、２段目の演算器グループ用のアドレス情報および３段目の演算器グループ用のアドレス情報が出力される。各グループ用のアドレス情報は、図示省略したレジスタ（図２のレジスタ４５）を介して各演算器グループへ送られる。
【００４７】
次に、回路構成出力部４が上述したイネーブル信号遅延器で構成される場合の具体例を説明する。図６は、イネーブル信号遅延器の構成の一例を示す図であり、カウンタを用いて切り替えタイミング信号を複数サイクルだけ遅延させる場合の図である。図６に示すように、イネーブル信号遅延器は、１段目の演算器グループ用の比較回路７１ａ、カウンタ７２ａ、ゼロ比較器７３ａおよびセレクタ７４ａと、２段目の演算器グループ用の比較回路７１ｂ、カウンタ７２ｂ、ゼロ比較器７３ｂおよびセレクタ７４ｂと、３段目の演算器グループ用の比較回路７１ｃ、カウンタ７２ｃ、ゼロ比較器７３ｃおよびセレクタ７４ｃを備えている。
【００４８】
比較回路７１ａは、シーケンサ３１から出力されたアドレス情報と、予め設定されたアドレス情報との比較を行う。比較の結果、両アドレス情報が一致する場合には、比較回路７１ａは、カウンタ７２ａへタイミングを通知する。カウンタ７２ａは、その通知を受け取ると、予め設定された値からの自動カウントダウンを開始する。そして、カウンタ７２ａの値がゼロになった時点で、セレクタ７４ａにおいてシーケンサ３１からのタイミングと入れ替えて演算器へ通知する。
【００４９】
また、比較回路７１ａは、カウンタ７２ａからの制御信号により、カウンタ７２ａの値がゼロになるまでの間、シーケンサ３１からの入力を受け付けない。比較回路７１ａでアドレス情報を比較したときに設定値と一致しない場合には、セレクタ７４ａは、シーケンサ３１から出力された切り替えタイミング信号をそのまま演算器へ通知する。２段目および３段目の演算器グループ用の比較回路７１ｂ，７１ｃ、カウンタ７２ｂ，７２ｃ、ゼロ比較器７３ｂ，７３ｃおよびセレクタ７４ｂ，７４ｃについても同様である。
【００５０】
次に、実施の形態の演算装置３により実現される回路構成について説明する。図７は、１段目の演算器グループ３４、２段目の演算器グループ３５および３段目の演算器グループ３６が３段パイプラインを構成している図である。図８は、１段目の演算器グループ３４、２段目の演算器グループ３５および３段目の演算器グループ３６が並列３段パイプラインを構成している図である。この場合、各段の演算器グループ３４，３５，３６において、図８の左側の列の３段パイプラインに供される演算器の数と左側の列の３段パイプラインに供される演算器の数は、可変である。つまり、各段の演算器グループ３４，３５，３６において、各グループのリソースを自由に配分することができる。
【００５１】
図９は、左側の列の３段パイプラインの出力を右側の列の３段パイプラインの入力に戻すことにより、１段目の演算器グループ３４、２段目の演算器グループ３５および３段目の演算器グループ３６が６段パイプラインを構成している図である。この場合も、上記並列３段パイプライン構成の場合と同様に、各演算器グループ３４、３５、３６のリソースを自由に配分することができる。なお、パイプラインの段数は、３段や６段に限らず、２〜５段や７段以上にすることもできる。また、１段目の演算器グループ３４、２段目の演算器グループ３５および３段目の演算器グループ３６の再構成を一括して制御することもできる。
【００５２】
図１０は、実施の形態の演算装置を３段パイプライン構成で動作させたときの各演算器グループの動作状態を示す図である。図１０に示すように、演算装置３が設定Ｘ（アプリケーションイメージ）、設定Ｙ（アプリケーションイメージ）、設定Ｚ（アプリケーションイメージ）の順で処理を実行する場合、各演算器グループの回路構成の切り替えをグループごとに制御することができるので、設定Ｘと設定Ｙの間、および設定Ｙと設定Ｚの間を、それぞれ空き時間なく連続して処理することができる。
【００５３】
図１１は、従来の再構成可能な演算装置を３段パイプライン構成で動作させたときの各演算器グループの動作状態を示す図である。図１１に示すように、従来の演算装置１では、３段目の演算器グループの処理が済んでからすべての演算器グループの回路構成を一括して切り替えなければならないため、設定Ｘと設定Ｙの間、および設定Ｙと設定Ｚの間にそれぞれ空き時間ができてしまう。
【００５４】
以上説明したように、実施の形態によれば、シーケンサ３１から出力されたアドレス情報を回路構成出力部４により動的に変化させて各演算器グループ３４，３５，３６に与えることができる。また、各演算器グループ３４，３５，３６にアドレス情報を与えるタイミングを演算器グループ３４，３５，３６ごとに制御することができる。従って、各演算器グループ３４，３５，３６にアドレス情報をグループごとに制御されたタイミングで与えることができるので、各演算器グループ３４，３５，３６の回路構成をグループごとに切り替えることができる。
【００５５】
また、このことによって、例えば１段目の演算器グループ３４と２段目の演算器グループ３５がそれぞれＭという回路構成とＮという回路構成を取り得る場合、１段目の演算器グループ３４の回路構成と２段目の演算器グループ３５の回路構成が取り得る組み合わせは、ＭとＭ、ＭとＮ、ＮとＭおよびＮとＮの４通りであるが、この４通りの組み合わせを、実施の形態の演算装置３では、Ｍの回路構成情報とＮの回路構成情報だけで実現することができる。それに対して、従来の演算装置１では、１段目の演算器グループの回路構成と２段目の演算器グループの回路構成を一括して切り替えるため、上記４通りの回路構成情報が必要となる。つまり、実施の形態によれば、再構成に必要な回路構成情報を最大半分にすることができる。
【００５６】
（付記１）少なくとも１つの演算器を含む再構成可能な複数の演算器グループと、
複数の前記演算器グループの任意の出力データを複数の前記演算器グループの任意の入力データとすることができる再構成可能なバスネットワークと、
複数の前記演算器グループの回路構成を制御するためのアドレス情報および切り替えタイミング信号を出力するシーケンサと、
前記シーケンサから出力されたアドレス情報および切り替えタイミング信号に基づいて、複数の前記演算器グループの回路構成をグループごとに再構成可能にする回路構成出力部と、
を備えることを特徴とする再構成可能な演算装置。
【００５７】
（付記２）前記回路構成出力部は、複数の前記演算器グループにアドレス情報を前記演算器グループごとに制御されたタイミングで出力する遅延器を含むことを特徴とする付記１に記載の再構成可能な演算装置。
【００５８】
（付記３）前記遅延器は、特定のアドレス情報に基づいて、複数の前記演算器グループへのアドレス情報の出力タイミングを制御することを特徴とする付記２に記載の再構成可能な演算装置。
【００５９】
（付記４）前記遅延器は、切り替えタイミング信号をレジスタで遅延させることにより、複数の前記演算器グループへのアドレス情報の出力タイミングを制御することを特徴とする付記２に記載の再構成可能な演算装置。
【００６０】
（付記５）前記遅延器は、切り替えタイミング信号をカウンタのカウントにより指定サイクル数だけ遅延させることにより、複数の前記演算器グループへのアドレス情報の出力タイミングを制御することを特徴とする付記２に記載の再構成可能な演算装置。
【００６１】
（付記６）前記回路構成出力部は、アドレス情報に対して算術演算を行って該アドレス情報を動的に変化させる算術演算器を含むことを特徴とする付記１に記載の再構成可能な演算装置。
【００６２】
（付記７）前記回路構成出力部は、アドレス情報に対して論理演算を行って該アドレス情報を動的に変化させる論理演算器を含むことを特徴とする付記１に記載の再構成可能な演算装置。
【００６３】
（付記８）前記回路構成出力部は、アドレス情報を変換するテーブルを含むことを特徴とする付記１に記載の再構成可能な演算装置。
【００６４】
（付記９）前記回路構成出力部は、アドレス情報をルックアップテーブルを用いてデコードする回路を含むことを特徴とする付記１に記載の再構成可能な演算装置。
【００６５】
（付記１０）前記回路構成出力部は、特定のアドレス情報によりカウントを開始するカウンタのカウント値に対応するアドレス情報を複数の前記演算器グループへ出力するパターン出力回路を含むことを特徴とする付記１に記載の再構成可能な演算装置。
【００６６】
（付記１１）前記カウンタは、複数の前記演算器グループごとに設けられていることを特徴とする付記１０に記載の再構成可能な演算装置。
【００６７】
（付記１２）前記回路構成出力部は、切り替えタイミング信号を前記演算器グループごとに遅延させて、前記演算器グループにアドレス情報をグループごとに制御されたタイミングで出力させるイネーブル信号遅延器を含むことを特徴とする付記１に記載の再構成可能な演算装置。
【００６８】
（付記１３）前記イネーブル信号遅延器は、特定のアドレス情報に基づいて、切り替えタイミング信号をレジスタで遅延させることを特徴とする付記１２に記載の再構成可能な演算装置。
【００６９】
（付記１４）前記イネーブル信号遅延器は、切り替えタイミング信号を、特定のアドレス情報によりカウントを開始するカウンタで指定サイクル数だけ遅延させることを特徴とする付記１２に記載の再構成可能な演算装置。
【００７０】
（付記１５）前記カウンタは、複数の前記演算器グループごとに設けられており、該カウンタのカウント数の設定値およびカウントを開始するための特定のアドレス情報は、複数の前記演算器グループごとに設定可能であることを特徴とする付記１２に記載の再構成可能な演算装置。
【００７１】
（付記１６）前記回路構成出力部は、切り替えタイミング信号を複数の前記演算器グループごとに分配するイネーブル信号の分配器を含むことを特徴とする付記１に記載の再構成可能な演算装置。
【００７２】
（付記１７）前記回路構成出力部は、前記付記２〜１１のいずれか１つ、または前記付記２〜１１の異種もしくは同種のいずれか２つ以上の構成と、前記付記１２〜１６のいずれか１つの構成を組み合わせた構成であることを特徴とする付記１に記載の再構成可能な演算装置。
【００７３】
（付記１８）前記シーケンサは、複数の前記演算器グループのうちのいずれかから回路切り替え要求信号を受け取ると、複数の前記演算器グループの回路構成を制御するための次のアドレス情報を出力することを特徴とする付記１に記載の再構成可能な演算装置。
【産業上の利用可能性】
【００７４】
以上のように、本発明にかかる再構成可能な演算装置は、例えば種々の通信規格に対応可能なソフトウェア無線機に有用であり、特に、複数の通信方式に対応可能な携帯電話機や無線ＬＡＮ（ローカル・エリア・ネットワーク）装置に適している。
【図面の簡単な説明】
【００７５】
【図１】本発明にかかる再構成可能な演算装置を備えた集積回路装置の構成を概略的に示す図である。
【図２】本発明にかかる演算装置の構成を示す図である。
【図３】本発明にかかる演算装置の一部を構成する単純遅延器の構成の一例を示す図である。
【図４】本発明にかかる演算装置の一部を構成するパターン出力回路の構成の一例を示す図である。
【図５】本発明にかかる演算装置の一部を構成するパターン出力回路の構成の一例を示す図である。
【図６】本発明にかかる演算装置の一部を構成するイネーブル信号遅延器の構成の一例を示す図である。
【図７】本発明にかかる演算装置により実現される３段パイプライン構成を示す図である。
【図８】本発明にかかる演算装置により実現される並列３段パイプライン構成を示す図である。
【図９】本発明にかかる演算装置により実現される６段パイプライン構成を示す図である。
【図１０】実施の形態の演算装置を３段パイプライン構成で動作させたときの各演算器グループの動作状態を示す図である。
【図１１】従来の再構成可能な演算装置を３段パイプライン構成で動作させたときの各演算器グループの動作状態を示す図である。
【図１２】従来の再構成可能な演算装置の構成を示す図である。
【図１３】図１２に示す演算装置の３段パイプライン動作について説明する図である。
【符号の説明】
【００７６】
３  演算装置
４  回路構成出力部
５  バスネットワーク
３１  シーケンサ
３４，３５，３６  演算器グループ
５２，５３  レジスタ
６２，６６ａ，６６ｂ，６６ｃ，７２ａ，７２ｂ，７２ｃ  カウンタ
【図１】
2007249843.tif 000003
【図２】
2007249843.tif 000004
【図３】
2007249843.tif 000005
【図４】
2007249843.tif 000006
【図５】
2007249843.tif 000007
【図６】
2007249843.tif 000008
【図７】
2007249843.tif 000009
【図８】
2007249843.tif 000010
【図９】
2007249843.tif 000011
【図１０】
2007249843.tif 000012
【図１１】
2007249843.tif 000013
【図１２】
2007249843.tif 000014
【図１３】
2007249843.tif 000015