(57)【特許請求の範囲】
【請求項１】
プログラマブル論理回路に、複数個の回路を順次に再構成しながら、再構成した回路による処理を並行して順次に実行させるようにする場合における前記複数個の回路の再構成方法であって、
次に回路を再構成しようとする領域の少なくとも一部に、前に再構成されていて、その処理が実行されている前回路が存在するような回路については、前記前回路の領域と重なる部分と、重ならない部分とに、再構成のためのデータを分割しておき、
前記重ならない部分を前記前回路の処理と並行して再構成し、前記前回路の処理が終了した後に、前記重なる部分を再構成する
ことを特徴とするプログラマブル論理回路への回路の再構成方法。
【請求項２】
請求項１に記載のプログラマブル論理回路への回路の再構成方法において、
前記プログラマブル論理回路への回路の再構成および処理の実行を開始する前に、前記前回路の領域と重なる部分と、重ならない部分とに、再構成のためのデータを分割する処理を行っておくことを特徴とするプログラマブル論理回路への回路の再構成方法。
【請求項３】
請求項１に記載のプログラマブル論理回路への回路の再構成方法において、
前記複数個の回路による処理を複数回実行する場合であり、
前記プログラマブル論理回路への回路の再構成および処理の実行を開始した後、前記処理の実行中に、各回路の再構成に要する時間と、その回路の前記前回路のプロセス時間との比較によって、前記前回路との重なりが発生する回路を検出し、その検出結果に基づいて、重なりを発生する回路について、前記前回路の領域と重なる部分と、重ならない部分とに、再構成のためのデータを分割し、
前記再構成のためにデータが分割された回路が再度使用されるときに、前記重ならない部分を前記前回路の処理と並行して再構成し、前記前回路の処理が終了した後に、前記重なる部分を再構成する
ことを特徴とするプログラマブル論理回路への回路の再構成方法。
【請求項４】
前記前回路の領域と重なる部分と、重ならない部分との分割は、プログラマブル論理回路の最小構成単位セルを分割単位とし、重なり部からの配線が含まれるセル部分をも含める分割とすることを特徴とする請求項１〜３のいずれかに記載のプログラマブル論理回路への回路の再構成方法。
【請求項５】
請求項３に記載のプログラマブル論理回路への回路の再構成方法において、
前記前回路との重なり領域を生じる回路の検出および前記前回路の領域と重なる部分と、重ならない部分との分割処理は、前記繰り返し処理の最初のサイクルにおいて、前記複数個の回路による処理の実行と並行して行い、
前記繰り返し処理の２回目以降のサイクルにおいて、前記分割された回路データを用いた再構成を行う
ことを特徴とするプログラマブル論理回路への回路の再構成方法。
【請求項６】
プログラムで処理を記述した一連の処理をアプリケーションプログラムとして実行するものであり、アプリケーションプログラムの一部分を、プログラムによって機能を随時変更し再構成することが可能なプログラマブル論理回路で処理するものであって、前記アプリケーションプログラムの一部分が複数の処理機能に分割されて、それぞれの処理機能が回路ブロックと対応させられ、それらの回路ブロックを前記プログラマブル論理回路に再構成しながら、回路の再構成と処理機能の実行とを並列に、順次、実行していくようにする情報処理システムにおいて、
前記プログラマブル論理回路への前記複数個の回路ブロックの再構成および処理の実行を開始する前に、各回路ブロックについて、当該回路ブロックの再構成に要する時間と、その前に前記プログラマブル論理回路に再構成されていて、その処理が実行される前回路のプロセス時間との比較によって、前記前回路との重なりが発生する回路であるか否かを判別し、重なりが発生する回路については、前記前回路の領域と重なる部分と、重ならない部分とに、再構成のためのデータを分割する手段を備え、
前記プログラマブル論理回路への前記複数個の回路ブロックの再構成および処理の実行においては、前記分割された回路ブロックについては前記重ならない部分を前記前回路の処理と並行して再構成し、前記前回路の処理が終了した後に、前記重なる部分を再構成する
ことを特徴とする情報処理システム。
【請求項７】
プログラムで処理を記述した一連の処理をアプリケーションプログラムとして実行するものであり、アプリケーションプログラムの一部分を、プログラムによって機能を随時変更し再構成することが可能なプログラマブル論理回路で処理するものであって、前記アプリケーションプログラムの一部分が複数の処理機能による繰り返し処理とされ、それぞれの前記処理機能が回路ブロックと対応させられ、それらの回路ブロックを前記プログラマブル論理回路に再構成しながら、回路の再構成と処理機能の実行とを並列に、順次、実行していくようにする情報処理システムにおいて、
前記繰り返し処理の最初のサイクルにおいて、前記再構成および処理の実行と並行して、前記各回路ブロックについて、当該回路ブロックの再構成に要する時間と、その前に前記プログラマブル論理回路に再構成されていて、その処理が実行される前回路のプロセス時間との比較によって、前記前回路との重なりが発生する回路であるか否かを判別し、重なりが発生する回路については、前回路の領域と重なる部分と、重ならない部分とに、再構成のためのデータを分割する手段を備え、
前記繰り返し処理の２回目以降のサイクルにおいて、前記分割された回路ブロックについては前記重ならない部分を前記前回路の処理と並行して再構成し、前記前回路の処理が終了した後に、前記重なる部分を再構成する
ことを特徴とする情報処理システム。
【請求項８】
請求項６または請求項７に記載の情報処理システムにおいて、
前記回路ブロックについての再構成のためのデータの分割処理は、プログラマブル論理回路を搭載したシステム内の演算手段による演算処理、または、システムに接続されたネットワークに接続された演算手段による演算処理によって行われることを特徴とする情報処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、アプリケーションプログラムによる処理の一部分を、回路構成を再構成できるプログラマブル論理回路で処理することが可能である情報処理システムおよびプログラマブル論理回路への回路の再構成方法に関する。特に、回路の再構成と処理を並列に高速実行する方法に関する。
【０００２】
【従来の技術】
デジタル回路装置、特に特定用途向け集積回路（ＡＳＩＣ）の分野において、製品の開発期間を短縮するために、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）やプログラマブルロジックデバイス（ＰＬＤ）などで構成されたプログラマブル論理回路が広く使われている。これらのプログラマブル論理回路は、論理回路を記述する回路情報をこれらに読み込ませることで、内部の論理回路と論理回路間の結線を自由に構成することができる。
【０００３】
このため、プログラマブル論理回路を用いることで、従来は回路設計の終了後に数週間から数か月を必要とした集積回路の作製時間が不要となるメリットがある。特に米国特許第４，７００，１８７号の発明のような電気的に再構成可能なプログラマブル論理装置は、一度作製した回路を必要に応じて自由に何度でも変更できるという利点があり、ますます広く使われるようになってきている。
【０００４】
ところで、最近の論理回路は複雑さが増し、一つのプログラマブル論理回路では実現できない規模にまで回路規模が大きくなっている。この問題を解決するための一つの方法として、異なる時間に異なる論理回路を実現するために、プログラマブル論理回路を処理の途中で再構成することが提案されている。この方法を用いることにより、携帯情報端末のように装置が小型であるため内蔵できる回路規模に制約がある場合でも、様々な処理が比較的高速に行えるという利点がある。
【０００５】
しかし、この方法は、プログラマブル論理回路を再構成するときには、回路全体の回路情報を再度読み込ませるため、再構成に時間がかかるという欠点がある。さらに、処理の途中で再構成することは、処理を一時中断し、そのときのデータをプログラマブル論理回路の外部の記憶装置に待避させ、新たな回路情報を読み込んで再構成し、再構成前のデータと再構成に伴う新しいデータを入力するという余分な処理が必要になる。
【０００６】
この問題を解決するために、米国アトメル社の「ＣＯＮＦＩＧＵＲＡＢＬＥ  ＬＯＧＩＣ」という名のデータブックに記載されているプログラマブル論理回路、および米国ザイリンクス社の「ＴＨＥ  ＰＲＯＧＲＡＭＭＡＢＬＥ  ＬＯＧＩＣ」という名のデータブックに記載されているプログラマブル論理回路では、データを記憶するためのデータ記憶装置を有し、回路の動作中でも外部の記憶装置から回路情報の一部を読み込んで部分的に再構成を行うことで、再構成するための時間を最小に留めるようにしている。
【０００７】
このようなプログラマブル論理回路を情報処理システムに用いるときの問題は、所望の論理回路を構成するための回路情報を格納先から取り出し、必要に応じて複数の回路情報を合成し、所望の論理回路を再構成しながら、アプリケーションの処理を、高速かつ効率的に行わねばならないことである。
【０００８】
以上に述べた複数の回路情報をプログラマブル論理回路で処理する情報システムは、ネットワークに接続して利用することができる。その例として、特開平１０−７８９３２号公報に公開される「リコンフィグラブル・ネットワークコンピュータ」があり、それを従来例１として図９を参照しながら説明する。
【０００９】
この従来例１の情報処理システムは、通信ネットワークＮＥＴに接続された複数のコンピュータで構成され、その内の少なくとも一つがアプリケーションプログラムを配布するコンピュータ（アプリケーション・サーバ）ＳＢであり、残りのコンピュータが前記アプリケーションプログラムをダウンロードし、実行するクライアントとなるコンピュータ（クライアント・コンピュータ）ＣＬで構成されたシステムである。複数のクライアント・コンピュータＣＬの一部に、プログラムにより機能を随時変更し再構成することが可能な拡張ハードウェア（拡張ＨＷ）１が搭載されている。
【００１０】
アプリケーション・サーバＳＢに格納されたアプリケーションプログラムＡＰには、その一部の機能に対して、拡張ハードウェアで実行されるプログラムコード（拡張コード）と、クライアント・コンピュータＣＬのメインプロセッサ（メインＰ）２で実行されるメインプロセッサコードが含まれている。
【００１１】
クライアント・コンピュータＣＬのＯＳは、拡張ハードウェア１が実装されているか否かを判断する機能を持ち、その判断に基づいて、ハードウエア構成に適したコードをアプリケーションプログラムＡＰから取り出すコード選択機能３を備える。そして、図９の上側のクライアント・コンピュータＣＬのように、拡張ハードウエア１が実装されている場合には、コード選択機能３を通じてアプリケーションプログラムＡＰの中から拡張コードが取り出されて、拡張ハードウエアで処理が実行される。
【００１２】
また、図９の下側のクライアント・コンピュータＣＬのように、拡張ハードウェア１を持たない場合には、アプリケーションプログラムＡＰから、コード選択機能３を通じてメインプロセッサコードが取り出されて、メインプロセッサ２で処理が実行される。
【００１３】
別の構成では、拡張ハードウェア１で実現する機能を、クライアント・コンピュータＣＬ上に、後から動的に追加／削除が可能なＯＳの拡張機能あるいは動的ライブラリとして実現し、アプリケーションプログラムがＯＳに対し処理中に利用する拡張機能あるいは動的ライブラリの種類を登録する。ＯＳは、拡張機能あるいは動的ライブラリがクライアントに上に存在する場合にはそれを用い、存在しない場合にはネットワーク上のサーバーから必要とする拡張機能あるいは動的ライブラリを転送し利用する。
【００１４】
また、メインプロセッサ２用のコード、拡張ハードウェア１用のコードは、一体となっているのではなく、アプリケーションプログラムまたはＯＳの拡張機能または動的ライブラリ毎に、個々のコードをホストコンピュータに上に備えることもできる。
【００１５】
拡張ハードウェア１を構成するプログラマブルロジックの構成が、クライアント・コンピュータＣＬ間で異なる場合は、拡張コードを、適当なゲート数と入出力端子数の論理回路の機能をブール式等で記述した基本モジュールと、それらの接続関係を表現したコードとすることもできる。この基本モジュールをそれぞれプログラマブルロジックの基本プログラムに割り付ける機能と、複数のプログラマブルロジックチップにまたがる大きな拡張コードの場合には、基本モジュールを接続の度合いに応じて分割し、各プログラマブルロジックチップに配置配線する機能を、アプリケーション・サーバＳＢまたはクライアント・コンピュータＣＬ上に持つ。
【００１６】
拡張ハードウェア１を利用する複数のアプリケーションを同時に実行できるように、必要のなくなったハードウェア資源を別のアプリケーションプログラムのために再利用するハードウェア資源の管理機能と、拡張ハードウェア１に入りきらない拡張コードを時分割で入れ替えるコード入れ替え機能を持つ。クライアント・コンピュータＣＬ上で実行されるアプリケーションプログラム毎に適宜設定されるプライオリティ値、メインプロセッサ２の処理能力値、拡張ハードウェア１の処理能力値、ハードウェア資源量、コード入れ替えるために必要な処理能力値を基に、ハードウェア資源に入りきらない複数のアプリケーションプログラムに対して選択する拡張ハードウェア管理機能を持つ。
【００１７】
複数のアプリケーションが同時に同じ拡張コードを拡張ハードウェア１で利用する場合には、内部状態のみを時分割で切り替えて機能を共有する。
【００１８】
以上のように、ネットワークで接続されたコンピュータ上で、サーバから配布されたアプリケーションプログラムをクライアント側で実行する際、クライアントにプログラムにより機能を随時変更し、再構成可能な拡張ハードウェアを搭載し、サーバーに格納されたアプリケーションプログラムには、メインプロセッサコードと拡張コードを含ませ、拡張ハードウェアの有無、種類を判断したコード選択機能によって、クライアント側の計算機の構成を変え、処理に適した構成にすることでアプリケーションプログラムを高速に処理できる。
【００１９】
また、従来、ネットワーク上で、クライアント側に特殊なハードウェアを必要とする新しいサービスを開始しようとする場合、クライアント側のユーザはそのために新しいハードウェアを導入する必要があったし、サービスの提供者は、新しいハードウェアをもつ一部のユーザに対してのみ新しいサービスを提供することになった。このように、新しいハードウェアを導入することなく、新しいサービスを開始することが可能となる。
【００２０】
次にプログラマブル論理回路の新しいデバイス技術について述べる。アプリケーションの処理に合わせた処理回路をプログラマブル論理回路上に構成し、この専用の処理回路を用いて高速処理を実現するというリコンフィギュラブルコンピューティングにプログラマブル論理回路が活用され始めている。
【００２１】
リコンフィギュラブルコンピューティングでは、アプリケーション処理で必要となる複数の処理回路の回路情報を記憶装置へ事前に格納しておき、必要に応じて記憶装置から読み出した回路情報をプログラマブル論理回路に書きこむことで、その時点で必要となる回路を生成する。この技術はキャッシュロジック技術とかバーチャルロジック技術と呼ばれる。
【００２２】
キャッシュロジック技術は、おなじプログラマブル論理回路上に必要に応じて異なる回路を構成するという時分割駆動技術である。その結果、回路規模の小さなプログラマブル論理回路を用いて、その回路規模以上の回路を実現でき、回路装置の小型化と低コスト化が可能となる。しかしながら、プログラマブル論理回路に書きこむ回路情報の規模によっては、回路の再構成時間が長くなり、専用の処理回路を用いて高速処理を実現するというリコンフィギュラブルコンピューティングの効果を損なうという問題がある。
【００２３】
この回路の再構成というコンフィギュレーションは、その回路による処理、すなわちプロセスのオーバーヘッドとして作用し、処理の低速化を引き起こす。このオーバーヘッドによる影響を低減するために、コンフィギュレーションとプロセスの並列化処理が行われる。すなわち、あるプロセスの実行中に、プログラマブル論理回路の非動作領域に次の回路のコンフィギュレーションを並行して実行するものである。
【００２４】
ここで、コンフィギュレーションの単位としては、アプリケーションの処理に応じて、回路を機能単位に細分化して、コンフィギュレーションデータが生成したものとする。この生成された回路データ単位でプログラマブル論理回路上に配置、再構成される。再構成が完了した後から、プロセスとしてデータの処理が順次実行されていく。このプロセス期間に、デバイス上の別の非動作領域において、次の機能回路を再構成するためのコンフィギュレーションデータが転送され、回路が再構成されていく。
【００２５】
しかし、コンフィギュレーションしようとする領域に既にコンフィギュレーションされていて、そのプロセスが実行されている場合、そのプロセスが完了するまで待たなければならない。そのため、場合によっては、コンフィギュレーション時間が長くなって、次のプロセス開始が連続的に実行できず、待ち時間が発生し、全体の処理が遅くなる問題がある。
【００２６】
この問題点を、図１０、図１１および図１２を用いて説明する。例えば、処理回路を４つに分割して、順次部分書き換えを行いながら処理を実行していく場合で説明する。
【００２７】
図１０に示すように、それぞれの分割された回路ブロックをＡ，Ｂ，Ｃ，Ｄとし、それらのコンフィギュレーションデータをＣＤａ、ＣＤｂ、ＣＤｃ、ＣＤｄとし、それぞれのコンフィギュレーション時間をｔｃａ、ｔｃｂ、ｔｃｃ、ｔｃｄとし、プロセス時間をそれぞれｔｐａ、ｐｂ、ｔｐｃ、ｔｐｄとする。
【００２８】
コンフィギュレーション時間は、コンフィギュレーションデータの格納先からプログラマブルデバイスに転送される速度、すなわち、転送周波数と信号ラインのバス幅によって転送速度が決定され、それらの構成回路の最高動作周波数まで動作が可能になる。したがって、転送速度をＤＴＲ［ｂｐｓ］とすると、コンフィギュレーションデータに対して、それぞれのコンフィギュレーション時間が求められる。
【００２９】
一方、アプリケーションの処理において、プロセス時間は、プログラマブル論理回路の動作速度や回路構成によって決定され、あらかじめ回路動作シミュレーションによって求めることができ、処理データ量を加味して算出できる。
【００３０】
したがって、回路ブロックＡから回路ブロックＤまでの一連の処理を順番に実行する場合には、まず、回路ブロックＡをコンフィギュレーションし、そのコンフィギュレーション終了後から回路ブロックＡの処理が実行されると同時に、次の回路ブロックＢのコンフィギュレーションが並列処理で実行される。以下同様に、回路ブロックＤのコンフィギュレーションが完了した後から回路ブロックＤの処理が実行される。さらに、回路ブロックＡの処理に戻って繰り返される場合には、回路ブロックＤの処理と同時に回路ブロックＡのコンフィギュレーションが並列処理で実行される。以上のように、コンフィギュレーションデータが回路ブロック単位で扱われ、そのコンフィギュレーションが完了した後にその処理が実行可能になる。
【００３１】
しかし、コンフィギュレーションデータのサイズが大きく、そのコンフィギュレーション期間において、先の機能回路ブロックの処理時間が短い場合には、次の処理回路の実行開始まで待ち時間が発生することになる。そのため、アプリケーション全体の処理時間でみたときには、この待ち時間の累積時間分だけ処理時間が長くかかることになり、性能の低下が発生する問題がある。
【００３２】
今、回路ブロックＡ〜回路ブロックＤのそれぞれが図１１に示すような形状および大きさであり、プログラマブル論理回路４上に、図１１に示すような状態で配置される場合について、図１２の処理タイミング図を参照して説明する。
【００３３】
まず、スタート時点ｔ０から、回路ブロックＡのコンフィギュレーションＣａが行われる。この回路ブロックＡのコンフィギュレーションが完了した時点ｔ１から回路ブロックＡによるプロセスＰａが実行されると共に、次の回路ブロックＢのコンフィギュレーションＣｂが、プロセスＣａと並列に、コンフィギュレーション時間ｔｃｂの期間実行され、時点ｔ２で回路ブロックＢのコンフィギュレーションが完了する。
【００３４】
回路ブロックＡによるプロセスＰａと、回路ブロックＢによるプロセスＰｂが連続であるため、プロセスＰａが完了した時点ｔ３後から連続してプロセスＰｂが実行され、プロセス時間ｔｐｂ後の時点ｔ４まで行なわれる。
【００３５】
次の回路ブロックＣは、図１１に示すように、回路ブロックＡの領域と重複している部分があるため、回路ブロックＡがプロセスＰａが終了するまで、この回路ブロックＣのコンフィギュレーションはできない。したがって、プロセスＰａが終了し、プロセスＰｂが開始する時点ｔ３以後に、回路ブロックＣのコンフィギュレーションも開始されることになる。
【００３６】
ところが、回路ブロックＣのコンフィギュレーションデータＣＤｃが大きく、そのコンフィギュレーション時間ｔｃｃが、回路ブロックＢによるプロセスＰｂのプロセス時間ｔｐｂより長い場合、回路ブロックによるプロセスＰｃが開始できるまで、図１２において期間ｔｗｃで示す待ち時間が発生する。
【００３７】
この図１２では、他にもプロセスＰｄとコンフィギュレーションＣａとの間においても待ち時間ｔｗａが発生していることを示している。これらの待ち時間ｔｗａ，ｔｗｃは、プロセスＰａからプロセスＰｄまでの繰り返しサイクル数分だけ累積され、全体の処理時間が長くなってしまう。
【００３８】
この問題を解決できる手段としては、コンフィギュレーションデータを小さくしたり、コンフィギュレーション転送速度を上げることで、コンフィギュレーション時間を短縮することが挙げられる。
【００３９】
しかし、コンフィギュレーションデータを小さくするためには、プログラマブル論理回路の中の空いている論理回路部に対して回路利用効率を上げる必要があり、そのコンフィギュレーション再生成のためには、設計ツールを用いて複雑な処理が必要になり、多大な時間と労力を必要とする。
【００４０】
また、コンフィギュレーション転送速度を上げてコンフィギュレーション時間を短縮する場合、転送に関わる回路の動作速度には限界があり、必ずしも処理時間よりコンフィギュレーション時間を短くできるとは限らない。また、動作周波数を上げることは、消費電力の増加をもたらすため、バッテリー駆動などで低消費電力仕様を求められる場合には不適となる。
【００４１】
【発明が解決しようとする課題】
以上のように、従来の汎用ＣＰＵとソフトウェアによるアプリケーションプログラムの処理を高速化するため、あるいは新しい機能を付加する場合などに、拡張したハードウェアが用いられる。特に、拡張ハードウェアにプログラマブル論理回路を用いて、回路を再構成しながら処理を並列で実行していく場合には、回路の再構成時間による影響を小さくする必要がある。
【００４２】
通常、アプリケーションプログラムにおいて、処理の順番が決定されていて、そのために用いる機能回路もあらかじめ決定されている。しかし、プログラマブル論理回路には、応用システムに適した実装回路規模、処理性能、消費電力などに応じて、サイズが選択されるため、あらかじめ回路ブロックの分割サイズや配置などは適性化されていない。
【００４３】
そのため、特にプログラマブル論理回路のサイズが小さくなると、前述したように、回路ブロック間で重なる配置とする場合が発生し、先にコンフィギュレーションされた回路のプロセスが終了しないと、次の回路ブロックのコンフィギュレーションができない。したがって、コンフィギュレーションしようとする回路によるプロセス開始までの待ち時間が発生し、全体の処理性能が低下する欠点がある。
【００４４】
この発明は、以上の点にかんがみ、回路ブロックのコンフィギュレーションによるオーバーヘッドの影響を軽減し、システム全体の処理性能を向上させることを目的とする。
【００４５】
【課題を解決するための手段】
上記課題を解決するために、この発明によるプログラマブル論理回路への回路の再構成方法おいては、
プログラマブル論理回路に、複数個の回路を順次に再構成しながら、再構成した回路による処理を並行して順次に実行させるようにする場合における前記複数個の回路の再構成方法であって、
次に回路を再構成しようとする少なくとも一部の領域に、前に再構成されていて、その処理が実行されている前回路が存在するような回路については、前記前回路の領域と重なる部分と、重ならない部分とに、再構成のためのデータを分割しておき、
前記重ならない部分を前記前回路の処理と並行して再構成し、前記前回路の処理が終了した後に、前記重なる部分を再構成する
ことを特徴とする。
【００４６】
【作用】
上述の構成のこの発明によれば、プログラマブル論理回路に再構成されていて、処理が実行されている前回路の処理時間（プロセス時間）が、再構成（コンフィギュレーション）しようとする回路のコンフィギュレーション時間よりも短いため、待ち時間が発生する場合には、その回路を再構成するためのデータを前回路の領域と重なる部分と、重ならない部分とに、分割して生成しておく。
【００４７】
そして、実際のコンフィギュレーションにおいては、その回路の前回路と重ならない部分を、当該前回路の処理と並行して再構成する。そして、その前回路の処理が終了した後に、残りの前回路と重なる部分の再構成を行う。
【００４８】
したがって、各回路の処理と処理との間の待ち時間を無くす、あるいは短くすることができ、全体としての処理時間を短縮化することができる。
【００４９】
【発明の実施の形態】
以下、この発明による情報処理システムの実施の形態およびプログラマブル論理回路への回路再構成方法を、図を参照しながら説明する。なお、以下に説明する実施の形態においては、アプリケーションプログラムにおいて、使用する回路情報と処理順などの処理フローがあらかじめ決定されているものとする。
【００５０】
［第１の実施の形態］
［情報処理システムのハードウエア構成例］
図２は、この発明の第１の実施の形態の情報処理システム１０のハードウエア構成例を示すブロック図である。この実施の形態の情報処理システム１０においては、ＣＰＵ１１のホストバス１１Ｂに、チップセット１２に含まれるメモリコントローラ（図示せず）を介して、ＤＲＡＭで構成されるメインメモリ１３が接続される。
【００５１】
ホストバス１１Ｂは、また、チップセット１２に含まれるホスト−ＰＣＩバスブリッジ（図示せず）を介して、ＰＣＩバス１４に接続される。ＰＣＩバス１４には、プログラマブル論理回路インターフェース２１と、ハードディスクインターフェース１５と、通信インターフェース１６とが接続される。
【００５２】
そして、プログラマブル論理回路インターフェース２１には、プログラマブル論理回路２２とローカルメモリ２３とが接続される。そして、プログラマブル論理回路２２は、外部入出力インターフェース２４を介して外部機器３１に接続され、データの入出力が行なわれる。
【００５３】
プログラマブル論理回路インターフェース２１は、ＰＣＩバス１４などのシステムバスによってＣＰＵ１１やメインメモリ１３やローカルメモリ２３に接続されて、データ転送や制御を行うためのものである。このプログラマブル論理回路インターフェース２１には、プログラマブル論理回路２２の回路の再構成のための処理データに付加されたヘッダ情報を解釈する機能回路、回路再構成のための回路情報、処理データや中間処理データの最後に付加されるＥＯＦ（Ｅｎｄ  Ｏｆ  Ｆｒａｍｅ）のマーカ検出機能回路が含まれる。
【００５４】
ハードディスクインターフェース１５には、ハードディスクドライブ１７が接続される。ハードディスクドライブ１７により読み書きされるハードディスクには、アプリケーションプログラムが格納されている。アプリケーションプログラムは、ハードディスクインターフェース１５、ＰＣＩバス１４およびチップセット１２に含まれるホスト−ＰＣＩブリッジ（図示せず）を介して、ハードディスクドライブ１７からメインメモリ１３にロードされて、ＣＰＵ１１によって実行される。
【００５５】
また、ハードディスクドライブ１７のハードディスクには、プログラマブル論理回路２２に再構成される回路情報が格納されている場合もある。
【００５６】
通信インターフェース１６は、ＬＡＮやインターネットなどのネットワーク３２を介して様々な機器に接続することができる。このため、アプリケーションプログラムは、ネットワーク３２に接続される記憶装置３３に格納されている情報へのアクセスも行え、様々なアプリケーションプログラムやデータなどを入手できる。この場合は、情報処理システム１０が、アプリケーションプログラムを、ネットワーク３２に接続される通信インターフェース１６を介してメインメモリ１３に取得して実行あるいはＰＣＩバス１４から直接プログラマブル論理回路インターフェース２１を介してプログラマブル論理回路２２へ転送することもできる。
【００５７】
尚、プログラマブル論理回路２２と、その関連する周辺部であるプログラマブル論理回路インターフェース２１と、ローカルメモリ２３と、外部入出力インターフェース２４とは、集積化により一体化されて、図２において点線で囲むプログラマブル論理回路ユニット２０の構成とされる。このユニット２０の構成とすることで、入出力部のライン負荷を低減させたり、専用バス化の構成により、高速化および低消費電力化が図れる。
【００５８】
次に、プログラマブル論理回路２２の構造を図３および図４に示す。プログラマブル論理回路２２は、回路情報を格納するためのコンフィギュレーションメモリ４１と、論理セル４２と、配線領域４３と、入出力端子４４とで構成される。
【００５９】
コンフィギュレーションメモリ４１は、論理セル４２内および配線領域４３内のＥＥＰＲＯＭ、ＳＲＡＭなどの書き換え可能なメモリ素子で構成されている。回路データはアドレスＡＤＲとデータＤＴの対で構成される。図４に示すように、コンフィギュレーションメモリ４１にアドレスＡＤＲが与えられて、そのアドレスに対応するメモリセルにアドレスと対になった新しい回路情報のデータＤＴが格納されると、この回路情報に従って、論理セル４２内の回路構成と、論理セル４２および入出力端子４４を相互に接続する配線領域４３の接続状態が再構成される。この一連の動作をコンフィギュレーションと呼ぶ。コンフィギュレーションメモリ４１の一部分を書き換えることで、プログラマブル論理回路が動作中であっても、回路を部分的に再構成することができる。
【００６０】
図４に示すように、プログラマブル論理回路２２に再構成されて形成された回路素子４５に、入出力端子４４を介して、処理すべきデータが入力され、また、その処理結果が出力される。データ入力先の論理セルと、データ出力元の論理セルを、論理セルの位置に対応するセル座標を示した制御コードによってアプリケーションプログラムが指定する。
【００６１】
以上のシステム構成によって、プログラマブル論理回路２２による処理のデータの入出力方法により処理するデータとしては、マルチメディアのような画像、音声などのストリーミングデータなどがある。
【００６２】
［プログラマブル論理回路への再構成方法］
この実施の形態のプログラマブル論理回路への再構成方法においては、アプリケーションプログラムにおけるプロセスの順序、それぞれのプロセスに対応する回路ブロックの回路サイズ、配置アドレスの情報、および、プログラマブル論理回路のサイズによって、コンフィギュレーション時の重なりによる次のプロセスの待ち時間の発生を検出する。そして、コンフィギュレーションの重なりにより待ち時間発生となる回路ブロックのコンフィギュレーションデータを重なり部と重ならない部分とに分割し、重ならない部分のコンフィギュレーションを先のプロセスと並列実行し、先のプロセス終了後に、重なり部のコンフィギュレーションを実行するようにする。
【００６３】
これにより、プロセス間の待ち時間をなくすか、短くすることによって、コンフィギュレーションによるオーバーヘッドの影響を軽減し、システム全体の処理性能を向上させるようにする。なお、分割コンフィギュレーションデータの生成時間が、アプリケーション時間の処理時間を短くできるときに、その分割コンフィギュレーションデータの生成を行うようにするのは勿論である。
【００６４】
この分割コンフィギュレーションデータの生成は、ＣＰＵ１１が行うが、ネットワーク３２に接続されたサーバにおいて、そのＣＰＵなどの演算手段が行うようにしてもよい。
【００６５】
まず、プログラマブル論理回路に対する回路ブロックのサイズと配置、並びに、回路ブロックの重なり検出と、分割コンフィギュレーションデータの生成のための方法について述べる。
【００６６】
プログラマブル論理回路は、応用システムに適した実装回路規模、処理性能、消費電力などに応じて、サイズが選択されるため、プログラマブル論理回路のサイズが決まらないと、あらかじめ回路ブロックの分割サイズと配置などは決定できない。
【００６７】
しかし、一般的には、小さなサイズのプログラマブル論理回路に対しても利用できるような回路ブロックサイズで、回路ブロックのデータが生成される。
【００６８】
回路ブロックの配置は、プログラマブル論理回路のサイズに対応して配置が決定され、その配置はアドレスで指定される。すなわち、大きなサイズのプログラマブル論理回路においては、配置の自由度が高いため、回路の重なりは少なくなり、逆にサイズの小さなプログラマブル論理回路では、配置の制約により重なりが多くなる。
【００６９】
配置状態が決定されると、そのアドレス情報を用いて、あらかじめ、回路ブロック間で重なる領域になるかどうかの判別が可能である。
【００７０】
すなわち、まず、コンフィギュレーションしようとする回路ブロックが、プロセスを実行中の領域に重なるかどうかの検出のために、コンフィギュレーションしようとする回路ブロックのコンフィギュレーション時間と、そのコンフィギュレーション時に実行中となるプロセス時間との比較を行う。コンフィギュレーション時間の方がプロセス時間よりも長い場合には、プロセス間の待ち時間が発生することになるため、重なり処理を行うように判別する。コンフィギュレーション時間の方がプロセス時間よりも短く、重ならないと判別された場合には、そのままコンフィギュレーションを行う。
【００７１】
ここで、重なる場合には、重なる部分と重ならない部分とをプログラマブル論理回路の論理セル単位で切り分ける分割コンフィギュレーションデータの生成処理を行う。
【００７２】
分割コンフィギュレーションデータの生成処理においては、先のプロセスと並行して重ならない部分のコンフィギュレーションを行い、先のプロセスが終了した後から重なる部分のコンフィギュレーションを行う。このようにして、重なりのない回路部分のコンフィギュレーションを先行させることにより、先のプロセス終了後からのコンフィギュレーション時間を短縮できる。
【００７３】
例えば、前述の図１０の回路ブロックＡ〜Ｄの場合を例にとると、回路ブロックＣのコンフィギュレーション時間ｔｃｃは、回路ブロックＢのプロセス時間ｔｐｂよりも大きいので、図５に示すように、回路ブロックＣは、回路ブロックＡと重ならず、回路ブロックＡでのプロセスに影響しない領域Ｃ１と、回路ブロックＡと重なり、回路ブロックＡでのプロセスに影響する領域Ｃ２とに分ける。
【００７４】
なお、図５に示すように、回路ブロックＣを、回路ブロックＡの処理に影響しない領域Ｃ１と、回路ブロックＡの処理が終了した後にコンフィギュレーションを実行すべき領域Ｃ２に分割する場合、Ｃ１とＣ２の境界は、回路ブロックＡと完全に分離できるところにする必要があるため、プログラマブル論理回路の論理回路セル単位での分割となり、回路ブロックＡ側に関係する回路セルで未使用であっても、重なり拡張部Ｃｍとして領域Ｃ２に含める。また、配線についても同様に、回路ブロックＡに含まれる部分までは、重なり拡張部Ｃｍとして領域Ｃ２に含める。
【００７５】
また、回路ブロックの重なり検出と、分割コンフィギュレーションデータの生成の方法として二つの形態がある。一つは、アプリケーション処理開始前に、回路ブロックの重なりの有無をチェックし、有る場合には、最初に分割コンフィギュレーションデータを生成し、それらを用いてアプリケーションを実行する方法である。もう一つは、アプリケーション処理開始後の第１サイクルで、回路ブロックの重なりの有無をチェックし、重なりがある場合には、分割コンフィギュレーションデータを生成し、以降の処理では分割コンフィギュレーションを用いてアプリケーションを実行する方法である。
【００７６】
前者の形態の場合、後者の形態の場合のいずれの場合にも、コンフィギュレーションデータの分割生成処理は、情報処理システム１０内のＣＰＵ１１でも、ネットワーク３２に接続されたサーバのどちらでもよい。
【００７７】
［第一の形態；アプリケーション処理開始前に検出、分割データ生成］
回路ブロックの重なり検出と分割コンフィギュレーションデータの生成の方法として挙げた二つの形態のうちの第１の形態を、図５の回路ブロック配置図、図６のタイミング図および図１のフローチャートを用いて説明する。
【００７８】
アプリケーション処理の開始前に、プログラマブル論理回路のサイズ、機能回路ブロックの個別サイズと配置アドレス、処理順序を基に、重なり部が発生する回路ブロックを、前述のようにしてコンフィギュレーション時間とプロセス時間との比較によって待ち時間を検出する。検出されたコンフィギュレーションデータを分割生成する処理方法である。これらの処理フローを図１に示すフローチャートを用いて説明する。
【００７９】
ここでは、種類がＮ個の回路ブロックについて、順番にコンフィギュレーションとプロセスが実行されていく場合を示す。
【００８０】
まず、回路ブロックの順番を示す変数ｊの初期化（ｊ＝１）を行い（ステップＳ１）、ｊ番目の回路ブロックのコンフィギュレーションＣｊの時間ｔｃｊを算出する（ステップＳ２）。コンフィギュレーション時間ｔｃｊは、コンフィギュレーションデータの格納先からプログラマブル論理回路に転送される速度、すなわち、転送周波数と信号ラインのバス幅によって転送速度が決定される。この場合、それらの構成回路の最高動作周波数まで動作が可能になる。したがって、転送速度をＤＴＲ［ｂｐｓ］とすると、コンフィギュレーションデータサイズ［ｂｉｔ］をＤＴＲで割ることによって、それぞれのコンフィギュレーション時間が求められる。
【００８１】
次に、順番ｊが最初か否か判別し（ステップＳ３）、最初であれば、コンフィギュレーション時間ｔｃｊと時間比較するプロセス時間ｔｐは、複数個の回路ブロックを繰り返すアプリケーションの場合として、最後の回路ブロックＰＭ（ｊ＝Ｍ）のプロセス時間ｔｐ（Ｍ）であると決定する（ステップＳ４）。また、順番ｊが最初でなければ、コンフィギュレーション時間ｔｃｊと時間比較するプロセス時間ｔｐは、一つ前のプロセスのプロセス時間ｔｐ（ｊ−１）とする（ステップＳ５）。
【００８２】
プロセス時間は、プログラマブル論理回路の動作速度や回路構成によって決定され、あらかじめシミュレーションなどで求めることができるため、アプリケーションにおける処理データ量を加味して算出する。
【００８３】
そして、ｊ番目のコンフィギュレーションＣｊのコンフィギュレーション時間ｔｃｊと、ステップＳ４またはステップＳ５で算出されたプロセス時間ｔｐとの比較を行う（ステップＳ６）。この場合に、最初の回路ブロック（ｊ＝１）のコンフィギュレーション時間のときは、最終の回路ブロックのプロセス時間ｔｐ＝ｔｐ（Ｍ）との比較を行い、その後の回路ブロックのコンフィギュレーション時間のときには、その前のｊ−１番目のプロセス時間ｔｐ＝ｔｐ（ｊ−１）との比較を行う。
【００８４】
コンフィギュレーション時間ｔｃｊがプロセス時間ｔｐより長いときには、重なりが発生していると判定し、重なり状態を示すフラグＦｊをＦｊ＝１とし（ステップＳ７）、短いときには重なりがないと判定し、フラグＦｊをＦｊ＝０とする（ステップＳ８）。
【００８５】
重なりが発生するときには、重なり領域のコンフィギュレーションデータのアドレスをプログラマブル論理回路のサイズに対して配置が決定されたコンフィギュレーションデータのアドレスから算出する（ステップＳ９）。このアドレス算出アドレスデータに基づいて、分割コンフィギュレーションデータＣｊ１およびＣｊ２を生成する（ステップＳ１０）。ここでは、Ｃｊ１を重ならない領域、Ｃｊ２を重なり領域のコンフィギュレーションデータとして扱う。
【００８６】
ここで、重なり部側の分割コンフィギュレーションデータＣｊ２には、プログラマブル論理回路の最小構成単位である論理セルで分割するが、重なり部からの配線が含まれるセル部分をも含める。また、重ならない領域の分割コンフィギュレーションデータＣｊ１についても、プログラマブル論理回路の最小構成単位である論理セルを分割される最小単位とする。
【００８７】
分割コンフィギュレーションデータの生成が終了したら、順番を示す変数を次の順番にする（ステップＳ１１）。ステップＳ８でフラグＦｊをＦｊ＝０としたときには、重なり領域のアドレス算出のステップＳ９と分割コンフィギュレーションの生成のステップＳ１０とをバイパスして、コンフィギュレーションの順番を次の順番にする、このステップＳ１１に飛ぶ。
【００８８】
以下同様にして、Ｎ個の回路ブロックの最後の回路ブロックについて、重なりが生じるすべての回路ブロックについては、重なり領域の検出と分割データ生成の処理を行う（ステップＳ１２）。
【００８９】
以上のようにして生成された分割コンフィギュレーションデータを用いて、アプリケーション処理の実行を行う（ステップＳ１３）。この場合に、重なり判別フラグＦｊにより、重なりのあるコンフィギュレーションデータをＣｊ１とＣｊ２に分割したコンフィギュレーションデータを用いて、先に重ならない領域Ｃｊ１のコンフィギュレーションを行い、先のプロセスが終了した後に重なりの領域Ｃｊ２のコンフィギュレーションを行う。
【００９０】
図５に示した４個の回路ブロックの例の場合であれば、図６に示すように、回路ブロックＢのコンフィギュレーションの後に、回路ブロックＡのプロセスＰａの終了を待つことなく、プロセスＰａに並行して、分割コンフィギュレーションデータの生成処理で生成した、重ならない領域についての分割コンフィギュレーションデータＣ１のコンフィギュレーションＣｃ１を実行する。そして、回路ブロックＡのプロセスＰａの終了後、回路ブロックＢのプロセスＰｂと並行して、重なる領域についての分割コンフィギュレーションデータＣ２のコンフィギュレーションＣｃ２を実行する。以上により、この実施の形態の場合には、従来の図１２の場合のような待ち時間ｔｗｃを生じることなく、アプリケーションの実行を行うことができる。
【００９１】
［第２の形態；アプリケーション処理開始後の第１サイクルで検出、分割データ生成］
この第２の形態は、アプリケーション処理は、Ｎ個の回路ブロックによるプロセスが繰り返し行われるもので、そのアプリケーション処理開始後の第１サイクルで、回路ブロックの重なりの有無をチェックし、重なりがある場合には、分割コンフィギュレーションデータを生成し、以降の処理では分割コンフィギュレーションを用いてアプリケーションを実行する方法である。
【００９２】
なお、この分割コンフィギュレーションデータを生成するための処理時間が必要になるため、第１サイクルで分割コンフィギュレーションデータの生成が完了するまで、第２サイクルを待たせる必要はなく、アプリケーション処理と並列に、ＣＰＵによる分割コンフィギュレーションデータの生成処理、あるいは、ネットワークに接続されたサーバーなどによる分割コンフィギュレーションデータの生成処理によって生成できた時点のサイクルから、分割コンフィギュレーションの処理を実行することもできる。
【００９３】
ここでは、種類がＮ個の回路ブロックについて、順番にコンフィギュレーションとプロセスを実行するサイクルをＭ回実行するアプリケーション処理で、第１のサイクルで回路ブロックの重なり検出と分割コンフィギュレーション生成処理を行い、第２サイクル以降から分割コンフィギュレーションデータによる処理とした処理フローを図７および図８に示すフローチャートを用いて説明する。
【００９４】
まず、サイクル数を示す変数ｉと、回路ブロックのコンフィギュレーションの順番を示す変数（回路ブロックを示す変数に等しい）ｊとを初期化する（ステップＳ２１）。次に、第ｉサイクルのｊ番目の回路ブロックについてのコンフィギュレーションＣ（ｉｊ）を行う（ステップＳ２２）。そして、そのプロセスＰ  （ｉｊ）を実行する（ステップＳ２３）。
【００９５】
次に、そのコンフィギュレーションＣ（ｉｊ）およびプロセスＰ（ｉｊ）が最初の処理サイクル（ｉ＝１）であるか否か判別する（ステップＳ２４）。そして、最初の処理サイクルであると判別したときには、この最初の処理サイクルにおいて、ｊ番目の回路ブロックのコンフィギュレーションＣ（１ｊ）の時間ｔｃｊを、前述と同様にして、算出する（ステップＳ２５）。
【００９６】
次に、順番ｊが、最初の処理のサイクルにおいて１番目か否か判別し（ステップＳ２６）、１番目であれば、コンフィギュレーション時間ｔｃｊと時間比較するプロセス時間ｔｐは、その最初のサイクルの最後の回路ブロックＰＭ（ｊ＝Ｍ）のプロセス時間ｔｐ（Ｍ）であると決定する（ステップＳ２７）。また、順番ｊがその最初のサイクルにおいて１番目でなければ、コンフィギュレーション時間ｔｃｊと時間比較するプロセス時間ｔｐは、一つ前のプロセスのプロセス時間ｔｐ（ｊ−１）とする（ステップＳ２８）。
【００９７】
そして、ｊ番目のコンフィギュレーションＣ（１，ｊ）のコンフィギュレーション時間ｔｃｊと、ステップＳ２７またはステップＳ２８で算出されたプロセス時間ｔｐとの比較を行う（ステップＳ３１）。この場合に、最初の回路ブロック（ｊ＝１）のコンフィギュレーション時間のときは、最終の回路ブロックのプロセス時間ｔｐ＝ｔｐ（Ｍ）との比較を行い、その後の回路ブロックのコンフィギュレーション時間のときには、その前のｊ−１番目のプロセス時間ｔｐ＝ｔｐ  （ｊ−１）との比較を行う。
【００９８】
コンフィギュレーション時間ｔｃｊがプロセス時間ｔｐより長いときには、重なりが発生していると判定し、重なり状態を示すフラグＦｊをＦｊ＝１とし（ステップＳ３２）、短いときには重なりがないと判定し、フラグＦｊをＦｊ＝０とする（ステップＳ３３）。
【００９９】
重なりが発生するときには、重なり領域のコンフィギュレーションデータのアドレスをプログラマブル論理回路のサイズに対して配置が決定されたコンフィギュレーションデータのアドレスから算出する（ステップＳ３４）。このアドレス算出アドレスデータに基づいて、分割コンフィギュレーションデータＣｊ１およびＣｊ２を生成する（ステップＳ３５）。ここでは、Ｃｊ１を重ならない領域、Ｃｊ２を重なり領域のコンフィギュレーションデータとして扱う。
【０１００】
ここで、重なり部側の分割コンフィギュレーションデータＣｊ２には、プログラマブル論理回路の最小構成単位である論理セルで分割するが、重なり部からの配線が含まれるセル部分をも含める。また、重ならない領域の分割コンフィギュレーションデータＣｊ１についても、プログラマブル論理回路の最小構成単位である論理セルを分割される最小単位とする。
【０１０１】
但し、それぞれの分割領域Ｃｊ１またはＣｊ２のサイズが小さい場合には、分割コンフィギュレーションデータを生成するための時間が発生するため、アプリケーションの全体の処理時間に対して、分割コンフィギュレーション時間によるプロセス待ち時間の短縮時間の総和によって処理時間を短くできる効果がない場合には、分割処理をする必要はない。
【０１０２】
分割コンフィギュレーションデータの生成が終了したら、順番を示す変数を次の順番にする（ステップＳ３６）。ステップＳ３３でフラグＦｊをＦｊ＝０としたときには、重なり領域のアドレス算出のステップＳ３４と分割コンフィギュレーションの生成のステップＳ３５とをバイパスして、コンフィギュレーションの順番を次の順番にする、このステップＳ３６に飛ぶ。
【０１０３】
以下同様にして、Ｎ個の回路ブロックの最後の回路ブロックについて、重なりが生じるすべての回路ブロックについては、重なり領域の検出と分割データ生成の処理を行う（ステップＳ３７）。
【０１０４】
以上のようにして、第１の処理サイクル（ｉ＝１）において回路ブロックの重なりの検出と分割コンフィギュレーションデータの生成が行われる。そして、第２の処理サイクル以降に移行する（ステップＳ３８、ステップＳ３９）。
【０１０５】
この第２の処理サイクル以降からは、生成された分割コンフィギュレーションデータを用いて、アプリケーション処理の実行を行う（ステップＳ２２、ステップＳ２３）。この場合に、重なり判別のフラグＦｊにより、重なりのあるコンフィギュレーションデータをＣｊ１とＣｊ２に分割したコンフィギュレーションデータを用いて、図５および図６に示したように、先に重ならない領域Ｃｊ１のコンフィギュレーションを行い、先のプロセスが終了した後に重なりの領域Ｃｊ２のコンフィギュレーションを行う。
【０１０６】
【発明の効果】
以上説明したように、この発明によれば、処理を実行中の回路ブロックと次にコンフィギュレーションしようとする回路ブロックとの重なりを検出し、重ならない部分を先にコンフィギュレーションしておき、先の回路ブロックによる処理が終了した後に残りの重なり部のコンフィギュレーションを行うことで、プロセス間の待ち時間をなくす、あるいは、短くすることができるため、全体の処理時間の高速化が図れる。
【０１０７】
また、コンフィギュレーション時間を短くするために、コンフィギュレーションデータを小さくするための複雑で多大な労力と時間を要する再生成処理やコンフィギュレーションデータの転送速度を上げて消費電力を増加させることなしに、全体のコンフィギュレーション時間を同等にした構成で対応でき、システムの変更が不要である。
【図面の簡単な説明】
【図１】この発明によるプログラマブル論理回路への回路の再構成方法の実施の形態を説明するためのフローチャートである。
【図２】この発明による情報処理システムの実施の形態のハードウエア構成例を示す図である。
【図３】プログラマブル論理回路の構造の例を説明するための図である。
【図４】プログラマブル論理回路の構造の例を説明するための図である。
【図５】実施の形態の再構成方法によって、プログラマブル論理回路に順次に再構成しようとする回路ブロックの配置関係を説明するための図である。
【図６】実施の形態の再構成方法を用いたアプリケーションの実行動作のタイミングチャートを示す図である。
【図７】この発明によるプログラマブル論理回路への回路の再構成方法の他の実施の形態を説明するためのフローチャートの一部を示す図である。
【図８】図７のフローチャートの残部を示す図である。
【図９】プログラマブル論理回路を用いた情報処理システムの従来例のブロック図である。
【図１０】プログラマブル論理回路に順次に再構成しようとする複数個の回路ブロックのそれぞれのパラメータを示す図である。
【図１１】従来の再構成方法によって、プログラマブル論理回路に順次に再構成しようとする回路ブロックの配置関係を説明するための図である。
【図１２】図１１の例の場合のアプリケーションの実行動作のタイミングチャートを示す図である。
【符号の説明】
１０  情報処理システム
２０  プログラマブル論理回路ユニット
２２  プログラマブル論理回路
Ａ，Ｂ，Ｃ，Ｄ  回路ブロック
Ｃ１，Ｃ２  分割回路ブロック
【図１】
0003832557.tif 000002
【図２】
0003832557.tif 000003
【図３】
0003832557.tif 000004
【図４】
0003832557.tif 000005
【図５】
0003832557.tif 000006
【図６】
0003832557.tif 000007
【図７】
0003832557.tif 000008
【図８】
0003832557.tif 000009
【図９】
0003832557.tif 000010
【図１０】
0003832557.tif 000011
【図１１】
0003832557.tif 000012
【図１２】
0003832557.tif 000013