(57)【特許請求の範囲】
【請求項１】
命令を実行可能な複数のプロセッシングエレメントおよび該プロセッシングエレメント間を接続する内部接続ネットワークを備える演算装置と、
アプリケーションのデータフローグラフに基づいて前記各プロセッシングエレメントの処理内容と前記内部接続ネットワークの信号経路を規定するマッピングデータを生成する制御装置と、
を備え、
前記制御装置は、第１のデータフローグラフに基づいて生成した実装中の第１のアプリケーションの第１のマッピングデータと、前記第１のデータフローグラフに基づいて生成した前記第１のアプリケーションの、前記第１のマッピングデータと異なる第２のマッピングデータと、を統合した第３のマッピングデータを生成し、該第３のマッピングデータに基づいて前記演算装置の回路構成を構築し、当該回路構成によりデータ処理を継続させた後、前記第２のマッピングデータに基づいて前記演算装置の回路構成を構築することにより、前記演算装置の回路構成の再構築の前後に渡りデータ処理を継続させることを特徴とする集積回路装置。
【請求項２】
前記制御装置は、前記第１のアプリケーションが動作している前記演算装置に第２のアプリケーションを追加して実装する際に、前記第１のアプリケーションと前記第２のアプリケーションとの両方が実装できるように生成した、前記第１のアプリケーションの第２のマッピングデータと前記第２のアプリケーションの第４のマッピングデータと、を統合した第５のマッピングデータを生成し、前記第３のマッピングデータに基づいて前記演算装置の回路構成を構築した後、前記第５のマッピングデータに基づいて前記演算装置の回路構成を構築することを特徴とする請求項１に記載の集積回路装置。
【請求項３】
前記制御装置は、前記第２のマッピングデータを生成する際に、前記第１のマッピングデータにより割り当てられたプロセッシングエレメントから別のプロセッシングエレメントへの割り当ての変更が禁止される前記第１のアプリケーションの処理を、前記第１のマッピングデータにより割り当てられたプロセッシングエレメントと同じプロセッシングエレメントに割り当てることを特徴とする請求項２に記載の集積回路装置。
【請求項４】
前記制御装置は、前記第１のマッピングデータと前記第３のマッピングデータで同じ機能が割り当てられたそれぞれのプロセッシングエレメントの内部記憶素子にて、同一の信号が入力された場合に、異なる内部状態が同一の状態になるまでに要する時間を平衡状態到達時間として算出し、前記第３のマッピングデータに基づいて前記演算装置の回路構成を構築した後、少なくとも前記平衡状態到達時間が経過してから、前記第５のマッピングデータに基づいて前記演算装置の回路構成を構築することを特徴とする請求項３に記載の集積回路装置。
【請求項５】
前記制御装置は、処理が割り当てられたプロセッシングエレメントの内部記憶素子のデータ保持期間が不定であり、前記平衡状態到達時間を規定できない処理を、別のプロセッシングエレメントへの割り当ての変更が禁止される処理とすることを特徴とする請求項４に記載の集積回路装置。
【請求項６】
前記制御装置は、各プロセッシングエレメントの内部記憶素子のデータが不定または初期値に設定した状態を開始状態として前記平衡状態到達時間を算出することを特徴とする請求項４に記載の集積回路装置。
【請求項７】
前記制御装置は、前記平衡状態到達時間が０である場合、前記第３のマッピングデータに基づいて前記演算装置の回路構成を構築する処理を省略し、前記第１のマッピングデータに基づいて構築された回路構成から、前記第５のマッピングデータに基づいて構築される回路構成に移行することを特徴とする請求項４に記載の集積回路装置。
【請求項８】
前記制御装置は、前記平衡状態到達時間が予め設定された上限値以下になるように、前記第２のマッピングデータを生成することを特徴とする請求項４に記載の集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、集積回路装置に関し、特にリコンフィギャラブル回路を有する集積回路装置に関する。
【背景技術】
【０００２】
従来、実装するアプリケーションに応じて演算装置の回路構成を変えることができる粗粒度リコンフィギャラブル回路が提案されている。粗粒度リコンフィギャラブル回路は、種々の命令を実行可能な複数のプロセッシングエレメント（ＰＥ）と、プロセッシングエレメント間を接続する内部接続ネットワークと、コンフィギュレーションデータを格納するコンフィギュレーションメモリを備えている。コンフィギュレーションデータは、各プロセッシングエレメントが処理する演算と、内部接続ネットワークの信号経路を規定するデータである。
【０００３】
コンフィギュレーションデータは、リコンフィギャラブル回路にアプリケーションを実装する際に、コンフィギュレーションメモリにロードされる。コンフィギュレーションデータの供給開始タイミングに関して、電源投入時の外部リセット解除信号に応答して、リコンフィギャラブル回路内の少なくとも一部が初期化回路状態に構築され、この初期化回路の動作完了後の内部リセット解除信号に応答して、コンフィギュレーションデータの供給を開始するようにした提案が公知である（例えば、特許文献１参照。）。
【０００４】
複数のアプリケーションが同時に実行される場合、異なるアプリケーションが同じプロセッシングエレメントや同じ信号経路を使用しないように、それぞれのコンフィギュレーションデータを生成する必要がある。これを可能とする技術として、ランタイムマッピング技術が提案されている。ランタイムマッピング技術では、コンフィギュレーションデータは、処理すべきプロセッシングエレメントの配置やプロセッシングエレメント間の物理的な信号経路に依存しない論理的なデータフローグラフで構成される。そして、同時に実装したいアプリケーションが指定されたときに、ハードウェアリソースが重複しないように、プロセッシングエレメントや信号経路の割り当てが決定される（例えば、非特許文献１参照。）。
【０００５】
【特許文献１】特開２００７−５２６０２号公報（段落［０００９］）
【非特許文献１】ロデヴァイク・ティ．・スミス（Ｌｏｄｅｗｉｊｋ  Ｔ．  Ｓｍｉｔ）、外５名、「ランタイム・マッピング・オブ・アプリケーションズ・トゥ・ア・ヘテロジーニアス・リコンフィギャラブル・タイルド・システム・オン・チップ・アーキテクチャ（Ｒｕｎ−Ｔｉｍｅ  Ｍａｐｐｉｎｇ  ｏｆ  Ａｐｐｌｉｃａｔｉｏｎｓ  ｔｏ  ａ  Ｈｅｔｅｒｏｇｅｎｅｏｕｓ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｔｉｌｅｄ  Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ  Ａｒｃｈｉｔｅｃｔｕｒｅ）」、ザ・２００４・アイトリプルイー・インターナショナル・カンファレンス・オブ・フィールド・プログラマブル・テクノロジー（Ｔｈｅ  ２００４  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｆ  Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｔｅｃｈｎｏｌｏｇｙ）（米国）、２００４年、ｐ．４２１−４２４
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の粗粒度リコンフィギャラブル回路において、あるアプリケーションが動作している途中で、別のアプリケーションを新たに実装して動作させる方法として、動作中のアプリケーション（以下、既存アプリケーションとする）のマッピングを変更せずに、新たに動作させるアプリケーション（以下、追加アプリケーションとする）のマッピングを行う方法が考えられる。しかし、この方法では、既存アプリケーションが使用しているハードウェアリソースを除いて、追加アプリケーションのマッピングを行う必要があるため、プロセッシングエレメントや配線リソースが障害となり、追加アプリケーションのマッピングを行うことができないことがあるという問題点がある。
【０００７】
そこで、別の方法として、必要に応じて既存アプリケーションの再マッピングをするとともに、追加アプリケーションのマッピングを行う方法が考えられる。しかし、この方法では、既存アプリケーションのマッピングを不用意に変更すると、処理中のデータが破壊されてしまうという問題点がある。これを回避するには、マッピングを変更する前に、実行中の処理を中断しなければならない。
【０００８】
この発明は、上述した従来技術による問題点を解消するため、あるアプリケーションが動作している途中で、回路の構成を変更することができる集積回路装置を提供することを目的とする。また、この発明は、あるアプリケーションが動作している途中で、別のアプリケーションを新たに実装して動作させることができる集積回路装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、本発明にかかる集積回路装置は、命令を実行可能な複数のプロセッシングエレメントおよびそのプロセッシングエレメント間を接続する内部接続ネットワークを備える演算装置と、アプリケーションのデータフローグラフに基づいて演算装置の各プロセッシングエレメントの処理内容と内部接続ネットワークの信号経路を規定するマッピングデータを生成する制御装置を備える。制御装置は、第１のマッピングデータと第２のマッピングデータとを統合した第３のマッピングデータを生成する。
【００１０】
第１のマッピングデータは、第１のデータフローグラフに基づいて生成された実装中の第１のアプリケーションのマッピングデータである。第２のマッピングデータは、第１のデータフローグラフに基づいて生成された第１のアプリケーションのマッピングデータであるが、第１のマッピングデータとは、演算装置の使用するリソースの一部が異なる。そして、制御装置は、第３のマッピングデータに基づいて演算装置の回路構成を構築した後、第２のマッピングデータに基づいて演算装置の回路構成を構築する。
【００１１】
また、制御装置は、第１のアプリケーションが動作している演算装置に第２のアプリケーションを追加して実装する際に、第２のマッピングデータと第４のマッピングデータとを統合した第５のマッピングデータを生成する。第４のマッピングデータは、第２のアプリケーションの第２のデータフローグラフから生成されるマッピングデータである。第４のマッピングデータと第２のマッピングデータとは、演算装置の異なるリソースを使用する。そして、制御装置は、第３のマッピングデータに基づいて演算装置の回路構成を構築した後、第５のマッピングデータに基づいて演算装置の回路構成を構築する。
【００１２】
この発明によれば、演算装置の回路構成が、動作中の第１の構成から、第１の構成と異なる第２の構成に移行する際に、一旦、第１の構成と第２の構成を統合した中間構成となる第３の構成を経てから、第２の構成に移行する。また、第１のアプリケーションが動作している演算装置に第２のアプリケーションを追加して実装する際に、演算装置の回路構成が、第１のアプリケーションが動作している第１の構成から、第１のアプリケーションと第２のアプリケーションの両方が動作可能な第５の構成に移行する際に、一旦、第１の構成と第２の構成を統合した中間構成となる第３の構成を経てから、第５の構成に移行する。
【発明の効果】
【００１３】
本発明にかかる集積回路装置によれば、あるアプリケーションが動作している途中で、処理中のデータを破壊することなく、回路の構成を変更することができるという効果を奏する。また、あるアプリケーションが動作している途中で、処理中のデータを破壊することなく、別のアプリケーションを新たに実装して動作させることができるという効果を奏する。さらに、あるアプリケーションが動作している途中で、実行中の処理を中断することなく、別のアプリケーションを新たに実装して動作させることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１４】
以下に添付図面を参照して、この発明にかかる集積回路装置の好適な実施の形態を詳細に説明する。なお、以下の説明において、同様の構成には同一の符号を付して、重複する説明を省略する。
【００１５】
（実施の形態１）
図１は、この発明の実施の形態１にかかる集積回路装置の構成を示すブロック図である。図１に示すように、プロセッサ１、コンフィギュレーションメモリ２、演算器アレイ３およびメモリ４は、コンフィギュレーションデータバス５を介して相互に接続されている。また、演算器アレイ３は、コンフィギュレーションメモリ２とデータバス６に接続されている。
【００１６】
演算器アレイ３は、演算装置としての機能を有し、種々の命令を実行可能な複数のプロセッシングエレメントと、プロセッシングエレメント間を接続する内部接続ネットワークを備えている。プロセッサ１は、制御装置としての機能を有し、論理的なデータフローグラフに基づいてマッピングデータを生成する。
【００１７】
また、プロセッサ１は、後述する平衡状態到達時間を算出する。データフローグラフは、演算器アレイ３のプロセッシングエレメントに割り当てられる処理の物理的な配置や、プロセッシングエレメント間の物理的な信号経路に依存しないコンフィギュレーションデータである。特に図示しないが、データフローグラフでは、各ノードはプロセッシングエレメントの処理に対応し、データグラフ間の枝はデータ経路を示す。
【００１８】
マッピングデータは、演算器アレイ３において、処理が割り当てられたプロセッシングエレメントの物理的な配置や物理的な信号経路、およびプロセッシングエレメントの内部データがどのくらいの過去のデータまで依存しているかということを示す履歴依存期間を規定するデータである。コンフィギュレーションメモリ２は、プロセッサ１により生成されたマッピングデータを記憶する。
【００１９】
演算器アレイ３の回路構成、すなわち各プロセッシングエレメントの処理内容と内部接続ネットワークの信号経路は、コンフィギュレーションメモリ２に記憶されているマッピングデータに基づいて決められる。コンフィギュレーションメモリ２から演算器アレイ３へマッピングデータを転送するタイミングは、プロセッサ１により制御される。メモリ４は、実装されるアプリケーションの論理的なデータフローグラフ、および現在動作中のマッピングデータを記憶する。
【００２０】
図２は、この発明の実施の形態１にかかる集積回路装置の処理手順を示すフローチャートである。図２に示すように、あるアプリケーションの動作中に、プロセッサ１が、別のアプリケーションの追加を指示するアプリケーション追加指示を外部から受信すると（ステップＳ１）、プロセッサ１は、メモリ４に追加アプリケーション情報要求を送信する（ステップＳ２）。そして、プロセッサ１は、メモリ４から追加アプリケーションのデータフローグラフを読み込む（ステップＳ３）。
【００２１】
また、プロセッサ１は、メモリ４にマッピング情報要求を送信する（ステップＳ４）。そして、プロセッサ１は、メモリ４から既存アプリケーションのデータフローグラフおよびマッピング情報を読み込む（ステップＳ５）。ここで、動作中のアプリケーションは１つよいし、２つ以上でもよい。２つ以上の場合は、複数のアプリケーションからなるアプリケーション群と考えればよい。
【００２２】
次いで、プロセッサ１は、メモリ４から読み込んだ追加アプリケーションのデータフローグラフと、既存アプリケーションのデータフローグラフおよびマッピング情報に基づいてマッピングを実施し、追加アプリケーションを含む最終マッピングデータを生成する（ステップＳ６）。そして、プロセッサ１は、生成した最終マッピングデータをコンフィギュレーションメモリ２へ送信する。最終マッピングデータは、コンフィギュレーションメモリ２に記憶される（ステップＳ７）。
【００２３】
次いで、プロセッサ１は、最終マッピングデータと現在動作中のマッピングデータとを統合した中間状態のマッピングデータを生成する（ステップＳ８）。そして、プロセッサ１は、生成した中間状態のマッピングデータをコンフィギュレーションメモリ２へ送信する。中間状態のマッピングデータは、コンフィギュレーションメモリ２に記憶される（ステップＳ９）。中間状態のマッピングデータについては、後述する。
【００２４】
次いで、プロセッサ１は、コンフィギュレーションメモリ２にデータ転送命令を送信する（ステップＳ１０）。コンフィギュレーションメモリ２は、そのデータ転送命令を受信すると、記憶している中間状態のマッピングデータを演算器アレイ３に実装する（ステップＳ１１）。また、プロセッサ１は、コンフィギュレーションメモリ２へデータ転送命令を送信すると、状態の整合が取れるまでの時間（平衡状態到達時間）ｔを算出する（ステップＳ１２）。
【００２５】
この平衡状態到達時間ｔは、演算器アレイ３に中間状態のマッピングデータが実装される前に動作していたマッピングデータと中間状態のマッピングデータとで同じ機能が割り当てられたプロセッシングエレメントの内部記憶素子の状態が同一になるまでに要する時間のことである。平衡状態到達時間については、後述する。
【００２６】
次いで、プロセッサ１は、演算器アレイ３に中間状態のマッピングデータが実装されてから平衡状態到達時間ｔが経過したら、コンフィギュレーションメモリ２にデータ転送命令を送信する（ステップＳ１３）。コンフィギュレーションメモリ２は、そのデータ転送命令を受信すると、記憶している最終マッピング情報を演算器アレイ３に実装する（ステップＳ１４）。最終マッピング情報の実装に成功したら、プロセッサ１は、最終マッピングに関するマッピングデータをメモリ４に記憶させ、一連の処理を終了する。
【００２７】
図３は、中間状態のマッピングデータを説明する図である。図３において、符号２１はプロセッシングエレメントへの処理の割り当てを移動させる前の状態であり、符号２２はプロセッシングエレメントへの処理の割り当てを移動させた後の状態であり、符号２３は移動前の状態と移動後の状態を統合した中間状態である。移動前の状態２１、移動後の状態２２および中間状態２３は、それぞれ、前記既存アプリケーションのマッピングデータ、前記最終マッピングデータおよび前記中間状態のマッピングデータにより、プロセッシングエレメントの処理内容と内部接続ネットワークの信号経路が決められた状態である。
【００２８】
プロセッサ１は、移動後の状態２２を規定するマッピングデータを生成する際に、プロセッシングエレメントに割り当てられる処理を、移動可能な処理と移動不可能な処理に区別する。移動可能な処理とは、処理が割り当てられたプロセッシングエレメントにおける前記履歴依存期間が有限となる処理であり、移動後の状態２２を規定するマッピングデータによるプロセッシングエレメントへの処理の割り当てにおいて、移動前の状態２１を規定するマッピングデータにより割り当てられたプロセッシングエレメントとは異なるプロセッシングエレメントへの割り当てが許される処理のことである。例えば、内部にフリップフロップしかなく、ループ回路を形成していない回路構成の場合、履歴依存期間は有限であり、フリップフロップの段数となる。
【００２９】
移動不可能な処理とは、処理が割り当てられたプロセッシングエレメントにおける前記履歴依存期間が無限大（不定）となる処理であり、移動後の状態２２を規定するマッピングデータによるプロセッシングエレメントへの処理の割り当てにおいて、移動前の状態２１を規定するマッピングデータにより割り当てられたプロセッシングエレメントとは異なるプロセッシングエレメントへの割り当てが禁止される処理のことである。例えば、アルゴリズム等から推定できるような特殊な場合を除いて、レジスタファイルやメモリ素子に対応するプロセッシングエレメントでは、履歴依存期間が無限大となる。また、通常、ループ回路の履歴依存期間も無限大となる。以下、このような移動不可能な処理が割り当てられるプロセッシングエレメントのことを、固定プロセッシングエレメントと呼ぶ。
【００３０】
図４および図５は、それぞれ、移動可能な処理および移動不可能な処理が割り当てられたプロセッシングエレメントの一例を示す図である。図４および図５において、太線は、内部接続ネットワークの信号経路を示す。図４に示すプロセッシングエレメントでは、セレクタ３１により演算器３２に前段のプロセッシングエレメント（図示せず）から二つの信号が入力し、その二つの入力信号の演算結果をセレクタ３３を介して後段のプロセッシングエレメント（図示せず）へ出力する回路構成となっている。この場合には、履歴依存期間が有限となり、移動可能な処理が割り当てられていることになる。
【００３１】
図５に示すプロセッシングエレメントでは、演算器３２に前段のプロセッシングエレメント（図示せず）から一つの信号が入力するとともに、演算器３２の出力信号がレジスタ３４およびセレクタ３１を介して演算器３２のもう一方の入力信号として入力し、レジスタ３４の出力信号をセレクタ３３を介して後段のプロセッシングエレメント（図示せず）へ出力する回路構成となっている。この場合には、履歴依存期間が無限大となり、移動不可能な処理が割り当てられていることになる。
【００３２】
図３において、α1、α6およびα10の処理は、移動不可能な処理であり、これらの処理が割り当てられたプロセッシングエレメントが固定プロセッシングエレメントである。前記既存アプリケーションのマッピングデータから前記最終マッピングデータまたは前記中間状態のマッピングデータを生成する際には、次のような制約条件がある。図３に示すように、第１の制約条件として、既存アプリケーションのマッピングデータにより移動不可能な処理（α1、α6およびα10）が割り当てられた固定プロセッシングエレメントについては、最終マッピングデータによっても同じ処理が割り当てられるようにする。つまり、固定プロセッシングエレメントの物理的な位置を変更しない。
【００３３】
第２の制約条件として、移動可能な処理（α2、α3、α4、α5、α7、α8およびα9）のうち、既存アプリケーションのマッピングデータによるプロセッシングエレメントや信号経路の割り当てが最終マッピングデータによる割り当てにおいて変更される処理については、図３において破線の楕円２４で囲むように、新たに割り当てられるプロセッシングエレメントや信号経路が既存アプリケーションのマッピングデータによるプロセッシングエレメントや信号経路と競合しないようにする。
【００３４】
つまり、既存アプリケーションのマッピングデータによりある処理が割り当てられたプロセッシングエレメントに、最終マッピングデータによって別の処理を割り当てたり、既存アプリケーションのマッピングデータによりあるデータの転送に使用されるデータ経路を、最終マッピングデータによって別のデータの転送に使用したりしてはいけない。ただし、固定プロセッシングエレメントの入力については、データ経路を変更することができる。
【００３５】
プロセッサ１は、上述した制約条件の下で生成した最終マッピングデータから既存アプリケーションに対する部分（移動後の状態２２に対応）のみを抽出し、既存アプリケーションのマッピングデータ（移動前の状態２１）と合成して中間状態のマッピングデータ（中間状態２３に対応）を生成する。中間状態のマッピングデータは、以下のようにして生成される。プロセッサ１は、プロセッシングエレメントに、移動前の状態２１に対応するマッピングデータおよび移動後の状態２２に対応するマッピングデータのいずれか一方で割り当てられた処理を割り当てる。これは、上述した制約条件があることによって、これら二つのマッピングデータにおいて、同一のプロセッシングエレメントに異なる処理が割り当てられることがないからである。
【００３６】
また、プロセッサ１は、データ経路については、移動前の状態２１に対応するマッピングデータによるデータ経路と移動後の状態２２に対応するマッピングデータによるデータ経路の両方とする。これは、固定プロセッシングエレメントの入力を除いて、異なるデータが衝突することがないからである。ただし、移動前の状態２１に対応するマッピングデータと移動後の状態２２に対応するマッピングデータとで、固定プロセッシングエレメントに対するデータの転送元が異なっている場合がある。
【００３７】
例えば、図３のα10の処理が割り当てられたプロセッシングエレメントが、これに該当する。この場合には、プロセッサ１は、中間状態のマッピングデータにおける固定プロセッシングエレメントに対するデータ入力経路として、移動前の状態２１に対応するマッピングデータにおける経路とする。従って、図３において破線の楕円２５で囲むように、中間状態のマッピングデータ（中間状態２３に対応）においては、移動後の状態２２に対応するマッピングデータにおけるα8のプロセッシングエレメントとα10のプロセッシングエレメントの間のデータ経路は、接続されない。このような制約条件の下で、中間状態のマッピングデータが生成される。
【００３８】
図３から明らかなように、中間状態のマッピングデータ（中間状態２３に対応）は、既存アプリケーションのマッピングデータ（移動前の状態２１）のうち、一部分を複製し、それに新たな部分を差分として付加した回路となる。複製の回路内にフリップフロップ等の記憶素子がある場合、差分となる付加回路では、既存アプリケーションのマッピングデータ（移動前の状態２１）による元の回路と記憶素子の内部状態が異なる。
【００３９】
そこで、演算器アレイ３に中間状態のマッピングデータを実装した後、複製の回路と元の回路の状態が同じになるまでの時間として、前記平衡状態到達時間が算出される。平衡状態到達時間は、例えば、リセット直後のように、内部の記憶素子のデータが不定または初期値に設定され、その記憶素子のデータが履歴に依存しない状態からタイミングを算出する。また、平衡状態到達時間のカウントは、そのような条件が満たされるタイミングから開始される。
【００４０】
回路全体の平衡状態到達時間（ＴA）は、次の（１）式および（２）式から算出される。ただし、τpは、移動後のプロセッシングエレメントｐが移動前のプロセッシングエレメントと同一状態に到達する平衡状態到達時間（クロック数）であり、ｔpは、異なる状態にあるプロセッシングエレメントｐに対して同一信号が入力した場合に到達する平衡状態到達時間（クロック数）であり、ｌp-qは、プロセッシングエレメントｐとプロセッシングエレメントｑの間の到達時間（クロック数）である。固定プロセッシングエレメントの平衡状態到達時間は０とする。
【００４１】
【数１】
0005151311.tif 000002
【数２】
0005151311.tif 000003
【００４２】
図６および図７は、回路全体の平衡状態到達時間を説明する図である。図６に示す回路では、プロセッシングエレメント４１間の横方向のデータ転送は、フリップフロップ４２を経由して行われる。従って、データが横方向に転送される場合と縦方向に転送される場合とでは、遅延が異なるので、マッピングによって回路全体の遅延が異なることなる。そのため、データ経路を考慮して回路全体の平衡状態到達時間を算出する必要がある。
【００４３】
例えば、図７に示すようなデータ経路の場合、Ｃ１のプロセッシングエレメントとＣ４のプロセッシングエレメントの間、およびＣ４のプロセッシングエレメントとＣ６のプロセッシングエレメントの間に、それぞれ、フリップフロップ４３，４４がある。従って、その部分での遅延に、フリップフロップ４３，４４による遅延として１を加える必要がある。
【００４４】
図７に示す例では、Ｃ４のプロセッシングエレメントの平衡状態到達時間は、Ｃ１のプロセッシングエレメントからの経路では３（＝２＋１）であり、Ｃ３のプロセッシングエレメントからの経路では４（＝２＋２）である。従って、Ｃ３のプロセッシングエレメントからの経路が律束となる。なお、図６および図７において、塗り潰されたプロセッシングエレメント４５は、固定プロセッシングエレメントである。
【００４５】
平衡状態到達時間に上限を設定し、この上限を、中間状態のマッピングデータを生成する際の第３の制約条件としてもよい。すなわち、第３の制約条件によれば、中間状態のマッピングデータの平衡状態到達時間は、この上限値以下となる。この場合、この上記条件を満たすまで、マッピングが再実行される。
【００４６】
また、平衡状態到達時間を算出する際に、中間状態のマッピングデータを実装するタイミングを限定条件として加えてもよい。そうすれば、平衡状態到達時間を短縮することができるので、短時間で最終マッピングデータを実装することができる。例えば、すべてのフリップフロップをリセットした直後に中間状態のマッピングデータを実装する、という条件の場合、リセットによりすべてのフリップフロップが例えば０に初期化されるので、複製の回路と元の回路とで差がない。従って、この場合には、平衡状態到達時間を０とすることができる。
【００４７】
さらに、平衡状態到達時間が０である場合、中間状態のマッピングデータを実装せずに、既存アプリケーションのマッピングデータが実装されている状態から、直接、最終マッピングデータを実装するようにしてもよい。このようにすれば、より短時間で最終マッピングデータを実装することができる。
【００４８】
（実施の形態２）
図８は、この発明の実施の形態２にかかる集積回路装置の構成を示すブロック図である。図８に示すように、実施の形態２では、シーケンサ１１とタイミングレジスタ１２が追加されており、これらシーケンサ１１およびタイミングレジスタ１２とプロセッサ１により制御装置としての機能が実現される。これらシーケンサ１１およびタイミングレジスタ１２は、コンフィギュレーションデータバス５に接続されている。シーケンサ１１は、コンフィギュレーションメモリ２、演算器アレイ３およびタイミングレジスタ１２に接続されている。
【００４９】
タイミングレジスタ１２は、演算器アレイ３により算出された平衡状態到達時間を記憶する。シーケンサ１１は、タイミングレジスタ１２を監視し、コンフィギュレーションメモリ２から演算器アレイ３へマッピングデータを転送するタイミングを制御する。従って、実施の形態２では、プロセッサ１は、シーケンサ１１により実現される機能を除いた処理を行う。その他の構成は、実施の形態１と同じである。
【００５０】
また、実施の形態２では、第１メモリ１３に論理的なデータフローグラフが記憶され、第２メモリ１４に現在動作中のマッピングデータが記憶され、データフローグラフと現在動作中のマッピングデータが別々に管理される。これら第１メモリ１３および第２メモリ１４は、コンフィギュレーションデータバス５に接続されている。
【００５１】
図９は、この発明の実施の形態２にかかる集積回路装置の処理手順を示すフローチャートである。図９に示すように、あるアプリケーションの動作中に、プロセッサ１が、別のアプリケーションの追加を指示するアプリケーション追加指示を外部から受信すると（ステップＳ２１）、プロセッサ１は、第１メモリ１３に追加アプリケーション情報要求を送信する（ステップＳ２２）。そして、プロセッサ１は、第１メモリ１３から追加アプリケーションのデータフローグラフを読み込む（ステップＳ２３）。
【００５２】
また、プロセッサ１は、第１メモリ１３および第２メモリ１４にマッピング情報要求を送信する（ステップＳ２４）。そして、プロセッサ１は、第１メモリ１３および第２メモリ１４から既存アプリケーションのデータフローグラフおよびマッピング情報を読み込む（ステップＳ２５）。ここで、既存アプリケーションとして、複数のアプリケーションが動作していてもよい。
【００５３】
次いで、実施の形態１のステップＳ６からステップＳ９までと同様に、プロセッサ１は、最終マッピングデータの生成（ステップＳ２６）、最終マッピングデータの送信（ステップＳ２７）、中間状態のマッピングデータの生成（ステップＳ２８）および中間状態のマッピングデータの送信（ステップＳ２９）を順次行う。次いで、プロセッサ１は、状態の整合が取れるまでの時間（平衡状態到達時間）ｔを算出する（ステップＳ３０）。そして、プロセッサ１は、生成した平衡状態到達時間ｔをタイミングレジスタ１２へ送信する。平衡状態到達時間ｔは、タイミングレジスタ１２に記憶される（ステップＳ３１）。
【００５４】
次いで、プロセッサ１は、シーケンサ１１に中間状態のマッピングデータの実行開始を指示する（ステップＳ３２）。シーケンサ１１は、その中間マッピング開始指示を受け取ると、コンフィギュレーションメモリ２にデータ転送命令を送信する（ステップＳ３３）。コンフィギュレーションメモリ２は、そのデータ転送命令を受信すると、記憶している中間状態のマッピングデータを演算器アレイ３に実装する（ステップＳ３４）。
【００５５】
同時に、シーケンサ１１は、タイミングレジスタ１２を監視する（ステップＳ３５）。そして、シーケンサ１１は、中間状態のマッピングデータが演算器アレイ３に実装されてから、タイミングレジスタ１２に記憶されている平衡状態到達時間ｔが経過したら、コンフィギュレーションメモリ２にデータ転送命令を送信する（ステップＳ３６）。コンフィギュレーションメモリ２は、そのデータ転送命令を受信すると、記憶している最終マッピング情報を演算器アレイ３に実装する（ステップＳ３７）。最終マッピング情報の実装に成功したら、プロセッサ１は、最終マッピングに関するマッピングデータを第２メモリ１４に記憶させ、一連の処理を終了する。
【００５６】
以上説明したように、各実施の形態によれば、演算器アレイ３の回路構成が、既存アプリケーションのマッピングデータを実装した状態から、一旦、中間状態のマッピングデータを実装する状態を経てから、最終マッピングデータを実装する状態に移行する。従って、アプリケーションが動作している途中で、処理中のデータを破壊することなく、演算器アレイ３の回路構成を変更することができる。
【００５７】
また、あるアプリケーションが動作している演算器アレイ３に別のアプリケーションを追加して実装する際に、演算器アレイ３の回路構成が、既存アプリケーションのマッピングデータを実装した状態から、一旦、中間状態のマッピングデータを実装する状態を経てから、最終マッピングデータを実装する状態に移行する。従って、あるアプリケーションが動作している途中で、処理中のデータを破壊することなく、また、実行中の処理を中断することなく、別のアプリケーションを新たに実装して動作させることができる。
【産業上の利用可能性】
【００５８】
以上のように、本発明にかかる集積回路装置は、複数のアプリケーションが実装される演算装置に有用であり、特に、無線通信方式に応じて演算装置の回路構成を変える必要のある移動通信システムに適している。
【図面の簡単な説明】
【００５９】
【図１】この発明の実施の形態１にかかる集積回路装置の構成を示すブロック図である。
【図２】この発明の実施の形態１にかかる集積回路装置の処理手順を示すフローチャートである。
【図３】処理の移動前と移動後のマッピングデータから生成される中間状態のマッピングデータを説明する図である。
【図４】移動可能な処理が割り当てられたプロセッシングエレメントの一例を示す図である。
【図５】移動不可能な処理が割り当てられたプロセッシングエレメントの一例を示す図である。
【図６】回路全体の平衡状態到達時間を説明する図である。
【図７】回路全体の平衡状態到達時間を説明する図である。
【図８】この発明の実施の形態２にかかる集積回路装置の構成を示すブロック図である。
【図９】この発明の実施の形態２にかかる集積回路装置の処理手順を示すフローチャートである。
【符号の説明】
【００６０】
１  プロセッサ
２  コンフィギュレーションメモリ
３  演算器アレイ
４，１３，１４  メモリ
１１  シーケンサ
１２  タイミングレジスタ
【図１】
0005151311.tif 000004
【図２】
0005151311.tif 000005
【図３】
0005151311.tif 000006
【図４】
0005151311.tif 000007
【図５】
0005151311.tif 000008
【図６】
0005151311.tif 000009
【図７】
0005151311.tif 000010
【図８】
0005151311.tif 000011
【図９】
0005151311.tif 000012