(57)【要約】【課題】総合のデータ処理時間を短縮することができるキャッシュロジック技術を実現できるプログラマブル論理回路装置を提供する。【解決手段】コンフィギュレーションメモリに書き込まれる回路情報に基づいて回路が再構成されるプログラマブル論理回路部と、外部からの制御により、コンフィギュレーションメモリに外部から入力される回路情報を書き込むための回路情報入力制御手段と、再構成された回路で処理されるデータを一時的に保持するデータキャッシュ手段と、再構成された回路に対して、データキャッシュ手段からのデータと入力データとの一方を供給するように、外部からの制御により切り替えられる入力データ切替手段と、再構成された回路の出力データを、データキャッシュ手段に供給するか、出力データとして導出するかを、外部からの制御により切り替えられる出力データ切替手段とを備える。【選択図】図１
2006333496.tif 000002
【特許請求の範囲】
【請求項１】
回路素子と、この回路素子に接続されるコンフィギュレーションメモリとを備え、前記コンフィギュレーションメモリに書き込まれる回路情報に基づいて回路が構成されるプログラマブル論理回路部と、
外部からの制御信号を受けて、前記コンフィギュレーションメモリに外部から入力される回路情報を書き込むための回路情報入力制御手段と、
前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成された回路で処理されるデータを一時的に保持するデータキャッシュ手段と、
前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成される回路に対して、前記データキャッシュ手段からのデータと、入力データとのいずれか一方を供給するように、外部からの切り替え制御信号に応じて切替制御する入力データ切替手段と、
前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成される回路の出力データを、前記データキャッシュ手段に供給するか、あるいは出力データとして導出するかを、外部からの切り替え制御信号に応じて切替制御する出力データ切替手段と、
を備えることを特徴とするプログラマブル論理回路装置。
【請求項２】
請求項１において、
前記データキャッシュ手段は、前記プログラマブル論理回路部の前記回路素子を用いて前記プログラマブル論理回路部内に設けることを特徴とするプログラマブル論理回路装置。
【請求項３】
請求項１において、
前記入力データ切替手段および前記出力データ切替手段は、前記プログラマブル論理回路部の前記回路素子を用いて前記プログラマブル論理回路部内に設けることを特徴とするプログラマブル論理回路装置。
【請求項４】
請求項１において、
前記回路情報入力手段は、前記入力される回路情報を前記コンフィギュレーションメモリの少なくとも一部に書き込むことにより、前記プログラマブル論理回路部の前記回路素子の少なくとも一部の回路構成を変更する
ことを特徴とするプログラマブル論理回路装置。
【請求項５】
アプリケーションプログラムの処理の少なくとも一部分を処理するプログラマブル論理回路装置と、前記処理全体を制御する制御部とを備える情報処理システムであって、
前記プログラマブル論理回路装置は、
回路素子と、この回路素子に接続されるコンフィギュレーションメモリとを備え、前記コンフィギュレーションメモリに書き込まれる回路情報に基づいて回路が構成されるプログラマブル論理回路部と、
前記制御部からの制御信号を受けて、前記コンフィギュレーションメモリに外部から入力される回路情報を書き込むための回路情報入力制御手段と、
前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成された回路で処理されるデータを一時的に保持するデータキャッシュ手段と、
前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成される回路に対して、前記データキャッシュ手段からのデータと、入力データとのいずれか一方を供給するように、前記制御部からの切り替え制御信号に応じて切替制御する入力データ切替手段と、
前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成される回路の出力データを、前記データキャッシュ手段に供給するか、あるいは出力データとして導出するかを、前記制御部からの切り替え制御信号に応じて切替制御する出力データ切替手段と、
を備えることを特徴とする情報処理システム。
【請求項６】
請求項５において、
前記データキャッシュ手段は、前記プログラマブル論理回路部の前記回路素子を用いて前記プログラマブル論理回路部内に設けることを特徴とする情報処理システム。
【請求項７】
請求項５において、
前記入力データ切替手段および前記出力データ切替手段は、前記プログラマブル論理回路部の前記回路素子を用いて前記プログラマブル論理回路部内に設けることを特徴とする情報処理システム。
【請求項８】
請求項５において、
前記回路情報入力手段は、前記入力される回路情報を前記コンフィギュレーションメモリの少なくとも一部に書き込むことにより、前記プログラマブル論理回路部の前記回路素子の少なくとも一部の回路構成を変更する
ことを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばアプリケーションプログラムによる処理の一部分を、回路構成を再構成できるプログラマブル論理回路装置を用いてハードウエア処理することが可能である情報処理システムおよびこの情報処理システムに用いる前記プログラマブル論理回路装置に関する。特に、プログラマブル論理回路装置での再構成時間も含めた処理時間を短縮する方法に関する。
【背景技術】
【０００２】
デジタル回路装置の分野において、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）やプログラマブルロジックデバイス（ＰＬＤ）などのプログラマブル論理回路装置が、特定用途向け集積回路（ＡＳＩＣ）を作成する前の試作デバイスとして、または、数週間から数ヶ月という長い作製期間を要するＡＳＩＣの代替デバイスとして使われてきた。また、最近では、回路装置作成後に仕様を変更したり、回路を修正することを可能にするために、プログラマブル論理回路装置が使われている。
【０００３】
一般的なプログラマブル論理回路装置の構造を図１７に示す。プログラマブル論理回路装置１は、回路情報を外部から読み込む回路情報入力制御部２と、読み込まれた回路情報に従って回路機能を実現するプログラマブル論理回路部３とから構成される。
【０００４】
さらに、プログラマブル論理回路部３の詳細な構造は、図１８に示すように、回路素子４と、回路素子４に接続するコンフィギュレーションメモリ５とから構成される。回路素子４は、入出力部、論理回路セル、配線部からなるが、この回路素子４の接続形態により、プログラマブル論理回路装置は、ＦＰＧＡ型とＣＰＬＤ型とに分けられる。
【０００５】
ＦＰＧＡ型のプログラマブル論理回路部３Ａは、図１９（Ａ）に示すように、２次元格子状に配列された論理回路セル６Ａが、配線部７Ａにより相互に接続される。また、全体として矩形の配線部７Ａの四辺に接続された入出力部８Ａを介して外部と信号の入出力を行う。
【０００６】
また、ＣＰＬＤ型のプログラマブル論理回路部３Ｂは、図１９（Ｂ）に示すように、入出力部８Ｂと論理回路セル６Ｂが、ツリー構造状に配線部７Ｂに接続される。
【０００７】
いずれの構造においても、プログラマブル論理回路装置１に読み込まれた回路情報は、回路情報入力制御部２によってコンフィギュレーションメモリ５に書き込まれる。コンフィギュレーションメモリ５に書き込まれた回路情報に従って、回路素子の機能と結線状態が決められる。この操作をプログラマブル論理回路装置の再構成またはコンフィギュレーションと呼ぶ。
【０００８】
従来のプログラマブル論理回路装置では、回路情報を読み込むたびにコンフィギュレーションメモリ全体が書き換えられて、プログラマブル論理回路部に構成された回路全体が再構成される。
【０００９】
最近では、コンフィギュレーションメモリの一部分に対応する回路情報のみを読み込むことが可能になってきた。その結果、プログラマブル論理回路装置で動作中の回路の一部分を変更したり、動作中の回路を停止することなく、プログラマブル論理回路部に新たな回路を追加することができるようになった。このとき、プログラマブル論理回路装置上にある処理中の中間データが失われることもない。このようなプログラマブル論理回路装置は、動的に部分再構成可能なプログラマブル論理回路装置と呼ばれる。
【００１０】
［プログラマブル論理回路装置の新しい応用］
インターネットに代表されるデジタル通信ネットワークの発展と普及に伴い、デジタル通信方式と、これを用いてネットワーク上で流通されるデジタルメディア方式の開発と標準化が急速に進んでいる。これらの方式に従ってネットワーク上のデジタル信号を処理する装置は、処理を行うデバイスの視点から大きく二つに分類することができる。
【００１１】
ひとつは、プログラムで記述された手順に従って汎用プロセッサを用いて処理するソフトウエア処理であり、もうひとつは、ＡＳＩＣなどの専用処理回路を用いて回路結線で記述された手順に従って処理するハードウエア処理である。
【００１２】
ソフトウエア処理は、プログラムを変更することにより、ひとつのプロセッサが複数の方式のデータを処理したり、新たな方式に対応することができるという特長をもつ。その反面、プログラムが格納されているメモリから命令をフェッチしてデコードしたり、実行結果をメモリにライトバックするというオーバーヘッドがあるので、同じクロック周波数で動作するハードウエア処理に比べて処理速度が遅い。また、プログラムを格納する主記憶メモリや二次記憶装置が必要となるので、処理装置が大きくなるという欠点がある。
【００１３】
一方、ハードウエア処理は、処理手順の記述が回路結線で実現されているので、同じクロック周波数で動作するソフトウエア処理に比べて処理のオーバーヘッドが少ないため、処理速度が早く、また、処理手順を記憶するメモリが不要なので処理装置が小さい、という特長をもつ。その反面、一度作製した回路結線は変更することができないので、ソフトウエア処理に比べて柔軟性に欠け、複数の方式のデータを処理するためには複数の専用処理回路が必要であり、一度作製した回路は新たな方式には対応できない。
【００１４】
ハードウエア処理が柔軟性に欠けるという欠点を解決するために、プログラマブル論理回路装置を用いたハードウエア処理が最近注目されている。すなわち、処理速度が早く、処理装置が小さいというハードウエア処理の特長を保ちつつ、プログラマブル論理回路装置の回路情報を適宜変更することにより、複数の方式や新しい方式に対応しようとするものである。
【００１５】
このように、プログラマブル論理回路装置によるハードウエア処理により、汎用プロセッサを用いたソフトウエア処理と同じように柔軟性を持ち、ソフトウエア処理よりも高速な処理を実現する技術は、リコンフィギュラブルコンピューティングと呼ばれている。
【００１６】
［リコンフィギュラブルコンピューティング技術の説明］
リコンフィギュラブルコンピューティングでは、アプリケーション処理で必要となる複数の処理回路の回路情報を外部記憶装置へ事前に格納しておき、必要に応じて、その外部記憶装置から読み出した回路情報を、プログラマブル論理回路装置内のコンフィギュレーションメモリに書き込むことで、必要とする回路をプログラマブル論理回路装置上に実現する。
【００１７】
この技術は、必要な回路情報をプログラマブル論理回路装置の外部に退避しておくという観点から、キャッシュロジック技術と呼ばれたり、回路情報を書き替えることにより、実際のプログラマブル論理回路部の回路規模よりも大きな規模の回路を実現できるという観点から、バーチャルロジック技術と呼ばれている。以下の説明では、簡単のため、これらの技術を総称して、キャッシュロジック技術と呼ぶことにする。
【００１８】
キャッシュロジック技術は、同じプログラマブル論理回路装置上に、必要に応じて異なる回路を構成するという時分割駆動技術である。その結果、回路規模の小さなプログラマブル論理回路装置を用いて、その回路規模以上の回路を実現でき、回路装置の小型化と低コスト化が可能となる。
【００１９】
リコンフィグラブルコンピューティング技術の例として、特開平１０−７８９３２号公報に記載される「リコンフィグラブル・ネットワークコンピュータ」があり、それを従来例１として図２０を参照しながら説明する。
【００２０】
この従来例１の情報処理システムは、通信ネットワークＮＥＴに接続された複数のコンピュータで構成され、その内の少なくとも一つがアプリケーションプログラムを配布するコンピュータ（アプリケーション・サーバ）ＳＢであり、残りのコンピュータが前記アプリケーションプログラムをダウンロードし、実行するクライアントとなるコンピュータ（クライアント・コンピュータ）ＣＬで構成されたシステムである。複数のクライアント・コンピュータＣＬの一部に、プログラムにより機能を随時変更し再構成することが可能な拡張ハードウエア（拡張ＨＷ）１１が搭載されている。
【００２１】
アプリケーション・サーバＳＢに格納されたアプリケーションプログラムＡＰには、その一部の機能に対して、拡張ハードウエアで実行されるプログラムコード（拡張コード）と、クライアント・コンピュータＣＬのメインプロセッサ（メインＰ）１２で実行されるメインプロセッサコードが含まれている。
【００２２】
クライアント・コンピュータＣＬのＯＳは、拡張ハードウエア１１が実装されているか否かを判断する機能を持ち、その判断に基づいて、ハードウエア構成に適したコードをアプリケーションプログラムＡＰから取り出すコード選択機能１３を備える。そして、図２０の上側のクライアント・コンピュータＣＬのように、拡張ハードウエア１１が実装されている場合には、コード選択機能１３を通じてアプリケーションプログラムＡＰの中から拡張コードが取り出されて、拡張ハードウエアで処理が実行される。
【００２３】
また、図２０の下側のクライアント・コンピュータＣＬのように、拡張ハードウエア１１を持たない場合には、アプリケーションプログラムＡＰから、コード選択機能１３を通じてメインプロセッサコードが取り出されて、メインプロセッサ１２で処理が実行される。
【００２４】
この従来例１によれば、ネットワークで接続されたコンピュータ上で、サーバから配布されたアプリケーションプログラムをクライアント側で実行する際、クライアント側に、プログラムにより機能を随時変更し再構成可能な拡張ハードウエアを搭載し、サーバに格納されたアプリケーションプログラムには、クライアントのメインプロセッサコードと拡張コードを含ませ、拡張ハードウエアの有無、種類を判断したコード選択機能によって、クライアント側の計算機の構成を変え、処理に適した構成にすることでアプリケーションプログラムを高速に処理できる。
【００２５】
しかしながら、この従来例１の場合、プログラマブル論理回路装置のコンフィギュレーションメモリに書き込む回路情報（拡張コード）の規模によっては、アプリケーション・サーバＳＢからクライアント・コンピュータＣＬのプログラマブル論理回路装置のコンフィギュレーションメモリに回路情報を書き込む時間が長くなり、専用のハードウエア処理回路である拡張ハードウエアを用いて高速処理を実現しても、回路再構成時間を含めた全体の処理時間が、ソフトウエア処理時間よりも長くなるという問題がある。
【００２６】
この問題のひとつの解決方法が、マルチコンテキスト技術と呼ばれるデバイス技術である。すなわち、マルチコンテキスト技術においては、プログラマブル論理回路装置内に複数の回路情報を格納することができるように、複数個のコンフィギュレーションメモリを設け、必要に応じてコンフィギュレーションメモリを切り替えることにより、プログラマブル論理回路装置に回路を再構成することで、回路の再構成時間を大幅に短縮する。
【００２７】
［マルチコンテキスト技術によるプログラマブル論理回路装置の説明］
マルチコンテキスト技術によるプログラマブル論理回路装置の構造を、図２１に示す。マルチコンテキスト技術によるプログラマブル論理回路装置２０は、複数の回路情報を外部から読み込む回路情報入力制御部２１と、複数の回路情報から必要な回路情報を選択する回路情報選択制御部２２と、選択された回路情報に従って回路機能を実現するプログラマブル論理回路部２３から構成される。
【００２８】
このマルチコンテキスト技術によるプログラマブル論理回路部２３の詳細な構造は図２２に示すようなものとなり、プログラマブル論理回路部２３は、前述の場合と同様に、入出力部、論理回路セル、配線部からなる回路素子２４と、この回路素子２４に接続するコンフィギュレーションメモリ２５とから構成されるが、このマルチコンテキスト技術によるプログラマブル論理回路部２３の場合のコンフィギュレーションメモリ２５は、複数個のメモリプレーンで構成される。
【００２９】
そして、このマルチコンテキスト技術によるプログラマブル論理回路部２３の場合には、ＦＰＧＡ型とＣＰＬＤ型（図１９参照）とのいずれの構造においても、プログラマブル論理回路装置２０に外部から読み込まれた複数の回路情報は、回路情報入力制御部２１によってコンフィギュレーションメモリ２５の各メモリプレーンに一つの回路情報が書き込まれる状態で書き込まれる。
【００３０】
そして、コンフィギュレーションメモリ２５の複数個のメモリプレーンに書き込まれた複数の回路情報のうち、回路情報選択制御部２２からの選択信号により選択されたメモリプレーンの回路情報に従って、回路素子２４の機能と結線状態が決められて、プログラマブル論理回路装置２０に回路が再構成される。
【００３１】
マルチコンテキスト技術の例として、ＦＣＣＭ’９７（ＦＰＧＡｓ  ｆｏｒ  Ｃｕｓｔｏｍ  Ｃｏｍｐｕｔｉｎｇ  Ｍａｃｈｉｎｅｓ  １９９７）で発表された“Ａ  Ｔｉｍｅ−Ｍｕｌｔｉｐｌｅｘｅｄ  ＦＰＧＡ”（非特許文献１）の例がある。これを従来例２として、図２３を参照しながら説明する。
【００３２】
図２３は、発表された時分割駆動ＦＰＧＡの構成を示すものである。この時分割駆動ＦＰＧＡは、米国ザイリンクス（Ｘｉｌｉｎｘ）社のＸＣ４０００Ｅを改良したものであり、回路素子３１の論理セルと内部配線とを決定する、ＳＲＡＭで構成されたコンフィギュレーションメモリ３２を８組備えている。コンフィギュレーションメモリ３２のそれぞれには、異なる回路構成に対応する回路情報が格納されており、これらのコンフィギュレーションメモリ３２を切り替えることにより、時分割でＦＰＧＡの回路構成を再構成することができる。
【００３３】
上述の従来例２で示したように、マルチコンテキスト技術は、事前に複数の回路情報をコンフィギュレーションメモリに格納してあるので、回路の再構成時間を短縮することを可能にする。
【００３４】
しかしながら、回路情報を格納するために、複数プレーンまたは複数個のコンフィギュレーションメモリがプログラマブル論理回路装置の内部に必要なため、プログラマブル論理回路部の回路規模が大きくなる。回路規模が大きくなると、回路素子の負荷容量が大きくなることにより、回路性能が低下したり、消費電力が大きくなるという問題を引き起こす。また、回路規模が大きくなると、プログラマブル論理回路装置の製造コストが高くなるという問題も引き起こす。
【００３５】
上記の先行技術文献は、次の通りである。
【特許文献１】特開平１０−７８９３２号公報
【非特許文献１】ＦＣＣＭ’９７（ＦＰＧＡｓ  ｆｏｒ  Ｃｕｓｔｏｍ  Ｃｏｍｐｕｔｉｎｇ  Ｍａｃｈｉｎｅｓ  １９９７）で発表された“Ａ  Ｔｉｍｅ−Ｍｕｌｔｉｐｌｅｘｅｄ  ＦＰＧＡ”
【発明の開示】
【発明が解決しようとする課題】
【００３６】
ところで、画像データなどを処理する情報処理システムでは、画像データを所定数の画素データの群からなるブロック単位で、複数個の処理回路について順次に処理するようにすることが多い。例えば、画像圧縮符号化処理を行う場合には、画像データをブロック化し、そのブロック化したデータについて、例えば直交変換回路で直交変換し、その直交変換後のデータについて量子化回路で量子化処理を行い、さらに可変長符号化（エントロピー符号化）回路で、可変長符号化処理を行う。
【００３７】
この場合に、一般的には、画像データは、順次に、１ブロック毎に、複数の処理回路に順次に供給し、各処理回路では、その１ブロック単位で処理を行い、１ブロック毎の出力信号を得る。そして、それらの処理を全ブロックについて繰り返し行うようにする。
【００３８】
このため、これらの複数個の回路処理を、キャッシュロジック技術やマルチコンテキスト技術を用いて、プログラマブル論理回路装置で実行使用とする場合には、上述したいずれの従来例のプログラマブル論理回路装置を用いる場合でも、ブロック単位に、直交変換回路、量子化回路、可変長符号化回路などの処理回路を、１ブロック単位のデータごとについて、順にプログラマブル論理回路部に再構成して、処理を行うようにするのが一般的である。
【００３９】
しかしながら、この方式では、プログラマブル論理回路部への回路の再構成回数が、処理対象のブロック数分必要になり、回路のコンフィギュレーション時間が、全体の処理時間に影響を与えて、全体の処理時間が長くなってしまって、回路再構成時間を含めた総処理時間で比べると、ソフトウエア処理よりも処理時間が遅くなるおそれがある。
【００４０】
前述した従来のプログラマブル論理回路装置を用いた上述の処理時間について、図を参照して、さらに詳しく説明する。
【００４１】
以下では、３つの処理回路Ｃ１、Ｃ２、およびＣ３からなるアプリケーションを例にして説明する。処理対象のデータは、Ｎブロック（Ｎは２以上の整数）のデータからなり、データを、処理回路Ｃ１、Ｃ２、Ｃ３で、順次、処理することで処理が完了する。
【００４２】
アプリケーションが、例えば画像のＪＰＥＧ圧縮の場合であれば、処理回路Ｃ１、Ｃ２、Ｃ３が、それぞれＤＣＴ変換回路、量子化回路、エントロピー符号化回路に対応し、１ブロックのデータが、１画素が８ビット階調の８×８＝６４個の画素データに対応する。
【００４３】
［従来のキャッシュロジック技術による回路の再構成］
図１７を用いて説明したように、この場合のプログラマブル論理回路装置１は、回路情報入力制御部２と、回路素子４およびコンフィギュレーションメモリ５を内蔵するプログラマブル論理回路部３とで構成される。
【００４４】
この例では、図２４に示すように、回路Ｃ１，Ｃ２，Ｃ３のそれぞれを構成するための回路情報ＣＤ１，ＣＤ２，ＣＤ３が、回路情報入力制御部２を介してプログラマブル論理回路部３のコンフィギュレーションメモリ５に順次読み込まれて、回路素子４の部分に処理回路Ｃ１、Ｃ２、Ｃ３が構成され、この構成された処理回路Ｃ１、Ｃ２、Ｃ３のそれぞれで、Ｎブロックの入力データＤｉｎ１、Ｄｉｎ２、…、ＤｉｎＮを、順次処理して、Ｎブロックの出力データＤｏｕｔ１、Ｄｏｕｔ２、…、ＤｏｕｔＮを得る。
【００４５】
この処理手順を、図２５に示したタイミングチャートと、図２６に示したフローチャートを用いて詳しく説明する。
【００４６】
図２６に示すように、処理が開始されると、図２４に示していないアプリケーション制御部により、入力データのブロック番号を指し示すデータカウンタの値が「１」にリセットされる（ステップＳ１０１）。
【００４７】
次に、回路情報ＣＤ１が、回路情報入力制御部２を介してコンフィギュレーションメモリ５に読み込まれて、プログラマブル論理回路部３に処理回路Ｃ１が構成される（ステップＳ１０２）。これが図２５のタイミングチャートで最初の「読」として示した読み込み実行状態である。
【００４８】
こうして処理回路Ｃ１が構成されると、データカウンタが指し示す入力データのブロックＤｉｎ１が、処理回路Ｃ１に入力される（ステップＳ１０３）。データが入力されると、アプリケーション制御部によりデータカウンタの値に１が加えられる（ステップＳ１０４）。そして、入力データＤｉｎ１が、処理回路Ｃ１で処理される（ステップＳ１０５）。データの入力から処理回路Ｃ１による処理までが、図２５のタイミングチャートで最初の「処理」として示したデータ処理実行状態である。
【００４９】
ここで、回路情報ＣＤ１により構成される処理回路Ｃ１は、図２７に示すように、入力データバッファ４２と処理実行回路４１とで構成される。入力データＤｉｎ１は、一時的に入力データバッファ４２に保持され、順次、処理実行回路４１で処理される。処理された結果は、中間データとして、再び、入力データバッファ４２に保持される。このとき、最初の入力データＤｉｎ１は、中間データで上書きされて失われる。
【００５０】
以上のようにして、入力データＤｉｎ１が処理回路Ｃ１で処理された中間データが、プログラマブル論理回路部３上の入力データバッファ４２に保持された状態で、回路情報ＣＤ２が回路情報入力制御部２を介してコンフィギュレーションメモリ５に読み込まれて、処理回路Ｃ２がプログラマブル論理回路部３に構成される（ステップＳ１０６）。これが、図２５のタイミングチャートにおいて、第２番目の「読」で示す読み込み状態である。
【００５１】
処理回路Ｃ２が構成されると、プログラマブル論理回路部３上に保持されていた中間データが、処理回路Ｃ２に入力され、処理される（ステップＳ１０７）。中間データの入力から処理回路Ｃ２による処理までが、図２５のタイミングチャートにおいて第２番目の「処理」として示したデータ処理実行状態である。
【００５２】
この場合に、図２８に示すように、回路情報ＣＤ２は、入力データバッファ４２を保持した状態で、処理回路Ｃ１の処理実行回路４１を、処理実行回路４３へと動的に部分再構成して、処理回路Ｃ２を構成する。その結果、中間データが、入力データバッファ４２に保持され、処理回路Ｃ２の入力データとなる。そして、処理実行回路４３で処理された結果は、新たな中間データとして再び入力データバッファ４２に保持される。このとき、最初の中間データは、新たな中間データで上書きされて失われる。
【００５３】
処理回路Ｃ２で処理された結果が新たな中間データとしてプログラマブル論理回路部３上に保持された状態で、回路情報ＣＤ３が、回路情報入力制御部２を介してコンフィギュレーションメモリ５に読み込まれて、処理回路Ｃ３がプログラマブル論理回路部３に構成される（ステップＳ１０８）。これが、図２５のタイミングチャートで、第３番目の「読」として示した読み込み状態である。
【００５４】
処理回路Ｃ３が構成されると、プログラマブル論理回路部３上の入力データバッファ４２に保持されていた中間データが、処理回路Ｃ３に入力され、処理され（ステップＳ１０９）、その処理結果が出力データＤｏｕｔ１として出力される（ステップＳ１１０）。中間データの入力から処理回路Ｃ３による処理結果の出力までが、図２５のタイミングチャートで、第３番目の「処理」として示したデータ処理実行状態である。
【００５５】
この場合、図２９に示すように、回路情報ＣＤ３は、入力データバッファ４２を保持した状態で、処理回路Ｃ２の処理実行回路４３を処理実行回路４４へと動的に部分再構成し、さらに出力データバッファ４５を追加して、処理回路Ｃ３を構成する。その結果、中間データが入力データバッファ４２に保持され、処理回路Ｃ３の入力データとなる。処理実行回路４４で処理された結果は、出力データバッファ４５に一時的に保持された後に、出力データとして出力される。
【００５６】
処理回路Ｃ３による処理結果が出力されたときに、データカウンタの値が、入力データの全てのブロック数Ｎより小さい場合は、再び、回路情報ＣＤ１を読み込むことから初めて、すべての入力データを処理し終えるまで、上述のステップＳ１０２からステップＳ１１０までの処理サイクルを繰り返す（ステップＳ１１１）。
【００５７】
このように、３回の回路情報の読み込みと、それに引き続くデータ処理により、１ブロックのデータが処理される。このサイクルを、入力データのブロック数Ｎだけ繰り返すことにより、すべての入力データが処理される。
【００５８】
なお、図２５と図２６には示されていないが、回路情報の読み込み時や処理回路での処理時にエラーが発生した場合は、アプリケーション制御部にエラーの発生を通知して処理は終了する。
【００５９】
上述の例では、回路情報ＣＤ１が入力データバッファを生成し、回路情報ＣＤ３が出力データバッファを生成して、処理回路Ｃ１、Ｃ２、Ｃ３の中間データの保持を行うようにしたが、処理回路Ｃ１、Ｃ２、Ｃ３が中間データを保持する構成としては、これに限らない。処理回路Ｃ１、Ｃ２、Ｃ３が中間データを保持する別の回路構成の例を図３０、図３１、図３２に示す。
【００６０】
この別の例においては、回路情報ＣＤ１により構成される処理回路Ｃ１は、図３０に示すように、処理実行回路４１、左データバッファ４２Ｌ、右データバッファ４２Ｒで構成される。入力データは、一時的に左データバッファ４２Ｌに保持され、順次、処理実行回路４１で処理される。処理された結果は、中間データとして右データバッファ４２Ｒに保持される。このとき、最初の入力データは、左データバッファ４２Ｌに保持されたままである。
【００６１】
回路情報ＣＤ２は、図３１に示すように、左データバッファ４２Ｌと右データバッファ４２Ｒとを保持した状態で、処理回路Ｃ１の処理実行回路４１を処理実行回路４３へと動的に部分再構成して、処理回路Ｃ２を構成する。このとき、処理実行回路４１とは異なり、処理実行回路４３は、右データバッファ４２Ｒを入力とし、左データバッファ４２Ｌを出力とする。その結果、右データバッファ４２Ｒに保持されていた中間データが、処理実行回路４３の入力データとなる。処理実行回路４３で処理された結果は、新たな中間データとして左データバッファ４２Ｌに保持される。このとき、左データバッファ４２Ｌに保持されていた最初の入力データは、新たな中間データで上書きされて失われる。
【００６２】
回路情報ＣＤ３は、図３２に示すように、左データバッファ４２Ｌと右データバッファ４２Ｒとを保持した状態で、処理回路Ｃ２の処理実行回路４３を処理実行回路４４へと動的に部分再構成して、処理回路Ｃ３を構成する。このとき、処理実行回路４４は、処理実行回路４１と同じように、左データバッファ４２Ｌを入力とし、右データバッファ４２Ｒを出力とする。その結果、左データバッファ４２Ｌに保持されていた中間データが、処理実行回路４４の入力データとなる。処理実行回路４４で処理された結果は、右データバッファ４２Ｒに一時的に保持された後に、出力データとして出力される。
【００６３】
［マルチコンテキスト技術を用いたリコンフィギュラブルコンピューティングにおける回路の再構成］
図２１を用いて説明したように、マルチコンテキスト技術によるプログラマブル論理回路装置は、複数の回路情報を外部から読みこむ回路情報入力制御部２１と、複数の回路情報から必要な回路情報を選択する回路情報選択制御部２２と、選択された回路情報に従って回路機能を実現するプログラマブル論理回路部２３とから構成される。
【００６４】
マルチコンテキスト技術によるプログラマブル論理回路装置のアプリケーションの例では、図３３に示すように、回路情報ＣＤ１、ＣＤ２、ＣＤ３が、回路情報入力制御部２１を介してプログラマブル論理回路部２３のコンフィギュレーションメモリ２５に順次読み込まれて格納される。
【００６５】
そして、選択信号Ｓ１、Ｓ２、Ｓ３に従って回路情報選択制御部２２により構成される処理回路Ｃ１、Ｃ２、Ｃ３で、Ｎブロックの入力データＤｉｎ１、Ｄｉｎ２、…、ＤｉｎＮを順次処理して、Ｎブロック分の出力データＤｏｕｔ１、Ｄｏｕｔ２、…、ＤｏｕｔＮを得る。
【００６６】
この処理手順を、図３４に示したタイミングチャートと、図３５に示したフローチャートを用いて詳しく説明する。
【００６７】
図３５に示すように、処理が開始されると、図３３に示していないアプリケーション制御部により、入力データのブロック番号を指し示すデータカウンタの値が「１」にリセットされる（ステップＳ２０１）。
【００６８】
次に、３つの回路情報ＣＤ１、ＣＤ２、ＣＤ３が、回路情報入力制御部２１を介して順次読み込まれて、コンフィギュレーションメモリ２５に順次格納される（ステップＳ２０２、２０３、２０４）。これが図３４のタイミングチャートで、「読み込み」として示した読み込み実行状態である。
【００６９】
次に、選択信号Ｓ１に従って、回路情報選択制御部２２の指示により処理回路Ｃ１が構成され（ステップＳ２０５）、データカウンタが指し示す入力データのブロックＤｉｎ１が処理回路Ｃ１に入力される（ステップＳ２０６）。データが入力されると、アプリケーション制御部によりデータカウンタの値に「１」が加えられる（ステップＳ２０７）。そして、入力データＤｉｎ１が処理回路Ｃ１で処理される（ステップＳ２０８）。
【００７０】
次に、入力データＤｉｎ１が処理回路Ｃ１で処理された中間データがプログラマブル論理回路部２３上に保持された状態で、選択信号Ｓ２に従って回路情報選択制御部２２の指示により、処理回路Ｃ２がプログラマブル論理回路部２３に構成される（ステップＳ２０９）。この処理回路Ｃ２が構成されると、プログラマブル論理回路部２３上に保持されていた中間データが処理回路Ｃ２に入力され、処理される（ステップＳ２１０）。
【００７１】
中間データが処理回路Ｃ２で処理された結果が、新たな中間データとしてプログラマブル論理回路部２３上に保持された状態で、選択信号Ｓ３に従って回路情報選択制御部２２の指示により、処理回路Ｃ３がプログラマブル論理回路部２３に構成される（ステップＳ２１１）。この処理回路Ｃ３が構成されると、プログラマブル論理回路部２３上に保持されていた中間データが、処理回路Ｃ３に入力され、処理される（ステップＳ２１２）。そして、その処理結果が、出力データＤｏｕｔ１として出力される（ステップＳ２１３）。
【００７２】
処理回路Ｃ３による処理結果が出力されたときに、データカウンタの値が、入力データの全てのブロック数Ｎより小さい場合は、再び選択信号Ｓ１により処理回路Ｃ１を選択することから始めて、すべての入力データを処理し終えるまで、ステップＳ２０５からステップＳ２１３までの処理サイクルを繰り返す（ステップＳ２１４）。
【００７３】
このように、選択信号による３回の回路情報の選択と、それに引き続くデータ処理により、１ブロックのデータが処理される。このサイクルを入力データのブロック数Ｎだけ繰り返すことにより、すべての入力データが処理される。
【００７４】
なお、図３４と図３５には示されていないが、回路情報の読み込み時や処理回路での処理時にエラーが発生した場合は、アプリケーション制御部にエラーの発生を通知して処理は終了する。
【００７５】
この例の説明における処理回路Ｃ１、Ｃ２、Ｃ３が中間データを保持する回路構成は、図２７、図２８、図２９、および図３０、図３１、図３２を用いて説明したものと同じ回路構成を利用することができる。
【００７６】
上述したように、従来のプログラマブル論理回路装置を用いた再構成方法の場合には、一つ一つのブロックごとに、複数個の回路を、順次に、繰り返し再構成する必要があり、再構成の回数が（ブロック数×回路数）分、必要であり、そのため、総処理時間が長くなってしまうという問題がある。
【００７７】
そのため、プログラマブル論理回路装置における回路情報の再構成回数をできるだけ少なくすることにより、総処理時間を短縮するようにデータ処理方法を工夫する必要があるが、それを実現するためには、そのような工夫を可能にするように構成したプログラマブル論理回路装置の提供が必要である。
【００７８】
この発明は、以上の点にかんがみ、マルチコンテキスト技術のように、回路性能の低下、消費電力の増加、製造コストの増加などをもたらす複数の回路情報を格納するコンフィギュレーションメモリを用いることなく、しかも、ブロック単位の複数の処理を繰り返し行う場合においても、総合の処理時間を短縮することができるキャッシュロジック技術を実現することができるように構成したプログラマブル論理回路装置およびこのプログラマブル論理回路装置を用いる情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【００７９】
上記課題を解決するため、この発明によるプログラマブル論理回路装置は、
回路素子と、この回路素子に接続されるコンフィギュレーションメモリとを備え、前記コンフィギュレーションメモリに書き込まれる回路情報に基づいて回路が構成されるプログラマブル論理回路部と、
外部からの制御信号を受けて、前記コンフィギュレーションメモリに外部から入力される回路情報を書き込むための回路情報入力制御手段と、
前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成された回路で処理されるデータを一時的に保持するデータキャッシュ手段と、
前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成される回路に対して、前記データキャッシュ手段からのデータと、入力データとのいずれか一方を供給するように、外部からの切り替え制御信号に応じて切替制御する入力データ切替手段と、
前記コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成される回路の出力データを、前記データキャッシュ手段に供給するか、あるいは出力データとして導出するかを、外部からの切り替え制御信号に応じて切替制御する出力データ切替手段と、
を備えることを特徴とする。
【００８０】
上記のように構成した、この発明のプログラマブル論理回路装置においては、外部からの制御信号により回路情報入力制御手段が制御されて、コンフィギュレーションメモリに、外部から入力される回路情報が書き込まれる。したがって、どのような回路情報を、どのタイミングでコンフィギュレーションメモリに書き込むかを、外部からの制御信号により制御することができる。
【００８１】
そして、データキャッシュ手段に、コンフィギュレーションメモリに書き込まれた回路情報に基づいて構成された回路で処理されるデータが一時的に保持されると共に、回路で処理されるデータを、データキャッシュ手段に保持されているデータと、入力データとのいずれか一方とするように切替制御する入力データ切替手段が、外部からの切り替え制御信号により制御される。
【００８２】
さらに、回路の出力データをそのまま出力データとして導出するか、データキャッシュ手段に供給するかの出力データ切替手段も、外部からの切り替え制御信号により制御されるように構成されている。
【００８３】
したがって、請求項１のプログラマブル論理回路装置によれば、外部からの制御により、どのような回路情報を、どのようなタイミングでコンフィギュレーションメモリに再構成し、その再構成された回路により、入力データとデータキャッシュ手段に一時保持された回路処理結果のデータとのどちらを処理するか、また、回路処理結果を再度、データキャッシュ手段に書き込むか、出力データとして導出するかを制御することができるので、この請求項１のプログラマブル論理回路装置を用いることにより、コンフィギュレーション時間を含む総処理時間を短縮するようにデータ処理方法を工夫するが容易になる。
【発明の効果】
【００８４】
以上説明したように、この発明によるプログラマブル論理回路装置を用いれば、従来のマルチコンテキスト技術のように複数の回路情報を記憶するための余分なコンフィギュレーションメモリを必要としないで、プログラマブル論理回路装置の再構成時間を短縮し、回路再構成時間を含めた総処理時間で比べても、ソフトウエア処理に比べて処理時間の短いハードウエア処理を実現できる。その結果、キャッシュロジック技術によるリコンフュギュラブルコンピューティングを用いた、高速で小型化された情報処理装置を実現することができる。
【発明を実施するための最良の形態】
【００８５】
以下、この発明によるプログラマブル論理回路装置の実施形態および、それを用いたデータ処理方法並びにそれを用いた情報処理システムの実施形態について、図を参照しながら説明する。
【００８６】
［この発明によるプログラマブル論理回路装置の実施形態の構造の説明］
まず、この発明によるプログラマブル論理回路装置の実施の形態について説明する。
【００８７】
［第１の構造］
この発明によるプログラマブル論理回路装置の第１の構造（プログラマブル論理回路装置の第１の実施の形態）を図１に示す。
【００８８】
この第１の構造のプログラマブル論理回路装置５０は、回路情報を外部から読み込む回路情報入力制御部５１と、読み込んだ回路情報に従って回路機能を実現するプログラマブル論理回路部５２と、処理途中の中間データを一時的に保持するデータキャッシュ部５３とから構成される。
【００８９】
プログラマブル論理回路部５２は、回路素子５２Ｃとコンフィギュレーションメモ５２Ｍとを備え、回路情報入力制御部５１からコンフィギュレーションメモリ５２Ｍに書き込まれた回路情報に従って回路素子５２Ｃの機能と結線状態がきめられる。
【００９０】
この第１の構造において、コンフィギュレーションメモリ５２Ｍに読み込まれた回路情報により構成される回路は、目的とする処理回路５２１に加えて、処理回路５２１への入力を、外部からの入力データとするか、データキャッシュ部５３に保持されたデータとするかで切り替える入力データ切替回路５２２と、処理回路５２１からの出力を、外部への出力データとするか、データキャッシュ部５３に保持されるデータとするかで切り替える出力データ切替回路５２３とを備える。
【００９１】
このプログラマブル論理回路装置５０を用いて、ブロック化されている入力データを、複数個の回路でそれぞれ前記ブロック単位で処理を順次に行う場合に、前記複数個の回路の最初の回路の回路情報で、入力データ切替回路５２２と出力データ切替回路５２３とが生成される。
【００９２】
そして、複数の回路のうちの処理順序が最初の回路でのデータ処理では、入力データ切替回路５２２は、外部からの入力データを処理回路５２１に供給し、出力データ切替回路５２３は、処理回路５２１の出力データをデータキャッシュ部５３に供給するように切り替えられる。
【００９３】
また、複数の回路のうちの処理順序が中間の回路でのデータ処理では、入力データ切替回路５２２は、データキャッシュ部５３からのデータを処理回路５２１に入力し、出力データ切替回路５２３は、処理回路５２１の出力データをデータキャッシュ部５３に供給するように切り替えられる。
【００９４】
また、複数の回路のうちの処理順序が最後の回路でのデータ処理では、入力データ切替回路５２２は、データキャッシュ部５３からのデータを処理回路５２１に入力し、出力データ切替回路５２３は、処理回路５２１の出力データを外部に出力するように切り替えられる。
【００９５】
これらの入力データ切替回路５２２および出力データ切替回路５２３の切り替え制御は、後述するように、データ処理の流れを管理制御するアプリケーション制御部により行われる。
【００９６】
［第２の構造］
この発明によるプログラマブル論理回路装置の第２の構造（プログラマブル論理回路装置の第２の実施の形態）を、図２に示す。
【００９７】
この第２の構造のプログラマブル論理回路装置６０は、回路情報を外部から読み込む回路情報入力制御部５１と、読み込んだ回路情報に従って回路機能を実現するプログラマブル論理回路部５２と、処理途中の中間データを一時的に保持するデータキャッシュ部５３と、処理回路への入力データを、外部からの入力データとするか、データキャッシュ部５３に保持されたデータとするかで切り替える入力データ切替部６１と、処理回路からの出力を、外部への出力データとするか、データキャッシュ部５３に保持されるデータとするかで切り替える出力データ切替部６２とから構成される。
【００９８】
この第２の構造のプログラマブル論理回路装置６０と前述の第１の構造のプログラマブル論理回路装置５０との違いは、第１の構造のプログラマブル論理回路装置５０では、回路情報によって構成された入力データ切替回路５２２および出力データ切替回路５２３と同じ機能を持った入力データ切替部６１および出力データ切替部６２を、第２の構造のプログラマブル論理回路装置６０では、プログラマブル論理回路部５２とは別体として備えることである。
【００９９】
そして、この第２の構造の場合には、コンフィギュレーションメモリ５２Ｍに読み込まれる回路情報は、処理回路５２１についての情報のみとなる。
【０１００】
この第２の構造のプログラマブル論理回路装置６０を用いる場合には、入力データ切替部６１と、出力データ切替部６２とは、回路情報によって構成されるものではないので、第１の構造のプログラマブル論理回路装置５０に比べて、相対的に回路情報量が小さくなり、より一層の再構成時間短縮が可能となるという利点がある。
【０１０１】
［第３の構造］
この発明によるプログラマブル論理回路装置の第３の構造（プログラマブル論理回路装置の第２の実施の形態）を図３に示す。
【０１０２】
この第３の構造のプログラマブル論理回路装置７０は、回路情報を外部から読み込む回路情報入力制御部５１と、読み込んだ回路情報に従って回路機能を実現するプログラマブル論理回路部５２とから構成される。
【０１０３】
この第３の構造においては、コンフィギュレーションメモリ５２Ｍに読み込まれた回路情報により構成される回路が、目的とする処理回路５２１と、データキャッシュ回路５２４と、処理回路５２１への入力を、外部からの入力データとするか、データキャッシュ回路５２４に保持されたデータとするかで切り替える入力データ切替回路５２２と、処理回路５２１からの出力を、外部への出力データとするか、データキャッシュ回路５２４に保持されるデータとするかで切り替える出力データ切替回路５２３とを備える。
【０１０４】
この第３の構造のプログラマブル論理回路装置７０と、第１の構造のプログラマブル論理回路装置５０との違いは、第１の構造のデータキャッシュ部５３の機能が、回路情報によって構成されたデータキャッシュ回路５２４により実現されることである。
【０１０５】
この第３の構造のプログラマブル論理回路装置７０は、図１７に示した従来からある汎用のプログラマブル論理回路装置を用いて構成することができるというメリットがある。
【０１０６】
［情報処理システムおよびデータ処理方法の実施の形態の説明］
［第１の実施の形態］
この発明による情報処理システムおよびデータ処理方法の実施の形態では、発明が解決しようとする課題の欄で説明したのと同様に、複数個の回路によって、入力データをブロック単位に順次に処理するデータ処理を、上述した第１の構造のプログラマブル論理回路装置５０、第２の構造のプログラマブル論理回路装置６０、第３の構造のプログラマブル論理回路装置７０のいずれかを用いた情報処理システムにより行う。
【０１０７】
以下に説明する例は、回路情報ＣＤ１、ＣＤ２、ＣＤ３が、回路情報入力制御部５１を介してプログラマブル論理回路部５２のコンフィギュレーションメモリ５２Ｍに順次読み込まれて構成される処理回路Ｃ１、Ｃ２、Ｃ３で、Ｎブロック（Ｎ組）の入力データＤｉｎ１、Ｄｉｎ２、…、ＤｉｎＮを順次処理して、Ｎブロック（Ｎ組）の出力データＤｏｕｔ１、Ｄｏｕｔ２、…、ＤｏｕｔＮを得るようにするデータ処理である。
【０１０８】
このデータ処理の形態は、プログラマブル論理回路装置が情報処理システムのアプリケーション制御部により制御されるスレーブモードと、プログラマブル論理回路装置のアプリケーション制御部が情報処理システムのアプリケーション制御部から一時的に制御を移管されるマスターモードのふたつに分けることができる。以下、それぞれのモードにおけるデータ処理について、説明する。
【０１０９】
［スレーブモード］
図４は、スレーブモードの形態における情報処理システムの構成例を示すもので、この例は、第１の構造のプログラマブル論理回路装置５０を用いた場合である。
【０１１０】
この情報処理システムは、アプリケーション制御部１０１と、回路情報記憶部１０２と、入力データ記憶部１０３と、出力データ記憶部１０４と、プログラマブル論理回路装置５０とからなる。
【０１１１】
アプリケーション制御部１０１は、データ処理全体を制御する。そして、アプリケーション制御部１０１は、処理する入力データのブロックを指示する（ブロック番号を指示する）データカウンタ２０１と、データキャッシュ部５３に保持されたデータのブロックを指示する（ブロック番号を指示する）キャッシュカウンタ２０２とを備える。
【０１１２】
回路情報記憶部１０２は、この例では、３個の回路情報ＣＤ１，ＣＤ２，ＣＤ３を保持しており、アプリケーション制御部１０１の指示に従い、プログラマブル論理回路装置５０に、いずれかの回路情報を提供する。
【０１１３】
入力データ記憶部１０３は、入力データＤｉｎ１、Ｄｉｎ２、…、ＤｉｎＮを保持し、アプリケーション制御部１０１の指示に従って、プログラマブル論理回路装置５０に、必要な入力データを入力する。
【０１１４】
出力データ記憶部１０４は、アプリケーション制御部１０１の指示に応じて、プログラマブル論理回路装置５０から出力される出力データＤｏｕｔ１、Ｄｏｕｔ２、…、ＤｏｕｔＮを蓄積する。
【０１１５】
次に、この情報処理システムを用いた上述のデータ処理について、図５のタイミングチャートと、図６〜図８のフローチャートを用いて説明する。
【０１１６】
処理が開始されると、アプリケーション制御部１０１により、入力データのブロックを指し示すデータカウンタ２０１の値が「１」にリセットされ（ステップＳ３０１）、プログラマブル論理回路装置５０のデータキャッシュ部５３に保持されたデータのブロックを指し示すキャッシュカウンタ２０２の値がデータカウンタ２０１の値にセットされる（ステップＳ３０２）。
【０１１７】
次に、アプリケーション制御部１０１からの指示により、回路情報ＣＤ１が回路情報記憶部１０２から、プログラマブル論理回路装置５０の回路情報入力制御部５１を介してコンフィギュレーションメモリ５２Ｍに読み込まれて、プログラマブル論理回路部５２に処理回路Ｃ１が構成される（ステップＳ３０３）。これが、図５のタイミングチャートにおいて、最初の「読」で示した読み込み実行状態である。
【０１１８】
処理回路Ｃ１がプログラマブル論理回路装置５０に構成されると、アプリケーション制御部１０１により、入力データ切替回路５２２の入力データ取得先が外部の入力データ記憶部１０３に設定されて、キャッシュカウンタ２０２が指し示す入力データのブロックＤｉｎ１が、アプリケーション制御部１０１からの指示により、入力データ記憶部１０３から処理回路Ｃ１に入力される（ステップＳ３０４）。
【０１１９】
データが入力されるとアプリケーション制御部１０１により、キャッシュカウンタ２０２の値に「１」が加えられる（ステップＳ３０５）。そして、その入力データＤｉｎ１が処理回路Ｃ１で処理され（ステップＳ３０６）、アプリケーション制御部１０１により、出力データ切替回路５２３の出力先がデータキャッシュ部５３に設定されて、処理結果のデータがデータキャッシュ部５３に出力される（ステップＳ３０７）。
【０１２０】
次に、キャッシュカウンタ２０２の値と、後に説明する値ｋとがアプリケーション制御部１０１により比較され（ステップＳ３０８）、キャッシュカウンタ２０２の値が、ｋよりも小さい場合は、ステップＳ３０４に戻り、再び、キャッシュカウンタ２０２が指し示す入力データのブロック（ここでは、キャッシュカウンタ２０２の値が２になっているので、ブロックＤｉｎ２）が、アプリケーション制御部１０１からの指示により、入力データ記憶部１０３から処理回路Ｃ１に入力され、ステップＳ３０５からステップＳ３０７の処理が行われ、その処理結果がデータキャッシュ部５３に出力される。
【０１２１】
そして、ステップＳ３０４からステップＳ３０７の動作を、ステップＳ３０８で、キャッシュカウンタ２０２の値が、値ｋよりも大きくなったと判断されるまで繰り返す。以上の、データの入力から処理回路Ｃ１による処理までが、図５のタイミングチャートにおいて、最初の「データ処理」と示したデータ処理実行状態である。
【０１２２】
ｋの値は、データキャッシュ部５３のメモリ容量に応じて設定される値で、データキャッシュ部５３に保持することができる入力データのブロック数を超えない整数値である。一般的には、この値が大きいほど、回路情報の読み込み回数が少なくなり、従来のリコンフィギュラブルコンピューティングの回路再構成に比べて、再構成時間が短くなる。
【０１２３】
しかしながら、後に説明するように、複数の処理を並列して行う場合は、それぞれの処理における回路情報の読み込み周期を考慮してｋの値を決める必要がある。
【０１２４】
キャッシュカウンタ２０２の値がｋよりも大きくなると（ステップＳ３０８）、処理回路Ｃ１で処理され、データキャッシュ部５３に保持されたｋ個のブロックを、次の処理回路Ｃ２で処理するため、アプリケーション制御部１０１により、キャッシュカウンタ２０２の値がデータカウンタ２０１の値（このときのデータカウンタ２０１の値は「１」）にセットされる（ステップＳ３０９）。
【０１２５】
次に、アプリケーション制御部１０１からの指示により、回路情報ＣＤ２が回路情報記憶部１０２から回路情報入力制御部５１を介してコンフィギュレーションメモリ５２Ｍに読み込まれて、プログラマブル論理回路部５２に処理回路Ｃ２が構成される（ステップＳ３１０）。これが図５のタイミングチャートにおいて、２番目の「読」で示した読み込み実行状態である。
【０１２６】
処理回路Ｃ２がプログラマブル論理回路装置５０に構成されると、アプリケーション制御部１０１により、入力データ切替回路５２２の入力データ取得先がデータキャッシュ部５３に設定されて、キャッシュカウンタ２０２が指し示すデータキャッシュ部５３のデータのブロックＤｃａ１が、アプリケーション制御部１０１からの指示により、データキャッシュ部５３から処理回路Ｃ２に入力される（ステップＳ３１１）。
【０１２７】
データが入力されると、アプリケーション制御部１０１により、キャッシュカウンタ２０２の値に「１」が加えられる（ステップＳ３１２）。そして、その入力データＤｃａ１が処理回路Ｃ２で処理され（ステップＳ３１３）、アプリケーション制御部１０１により、出力データ切替回路５２３の出力先がデータキャッシュ部５３に設定されて、処理結果のデータがデータキャッシュ部５３に出力される（ステップＳ３１４）。
【０１２８】
次に、キャッシュカウンタ２０２の値と値ｋとが比較され（ステップＳ３１５）、キャッシュカウンタ２０２の値がｋよりも小さい場合は、ステップＳ３１１に戻り、再びキャッシュカウンタ２０２が指し示すデータのブロックが、アプリケーション制御部１０１からの指示により、データキャッシュ部５３から処理回路Ｃ２に入力され、ステップＳ３１２からステップＳ３１４の処理が行われ、その処理結果がデータキャッシュ部５３に出力される。
【０１２９】
そして、ステップＳ３１１からステップＳ３１４の動作を、ステップＳ３１５で、キャッシュカウンタ２０２の値が、ｋよりも大きくなったと判断されるまで繰り返す。処理回路Ｃ２へのデータの入力から処理回路Ｃ２による処理までが、図５のタイミングチャートにおいて、２番目の「データ処理」で示すデータ処理実行状態である。
【０１３０】
キャッシュカウンタ２０２の値がｋよりも大きくなると（ステップＳ３１５）、処理回路Ｃ２で処理され、データキャッシュ部５３に保持されたｋ個のブロックを、次の処理回路Ｃ３で処理するため、アプリケーション制御部１０１によりキャッシュカウンタ２０２の値がデータカウンタ２０１の値（このときのデータカウンタ２０１の値は「１」）にセットされる（ステップＳ３１６）
次に、アプリケーション制御部１０１からの指示により、回路情報ＣＤ３が回路情報記憶部１０２から回路情報入力制御部５１を介してコンフィギュレーションメモリ５２Ｍに読み込まれて、プログラマブル論理回路部５２に処理回路Ｃ３が構成される（ステップＳ３１７）。これが図５のタイミングチャートにおいて、３番目の「読」で示した読み込み実行状態である。
【０１３１】
処理回路Ｃ３がプログラマブル論理回路装置５０に構成されると、アプリケーション制御部１０１により、入力データ切替回路５２２の入力データ取得先がデータキャッシュ部５３に設定されて、キャッシュカウンタ２０２が指し示すデータのブロックＤｃａ１が、アプリケーション制御部１０１からの指示により、データキャッシュ部５３から処理回路Ｃ３に入力される（ステップＳ３１８）。
【０１３２】
データが入力されると、アプリケーション制御部１０１により、キャッシュカウンタ２０２の値に「１」が加えられる（ステップＳ３１９）。そして、その入力データＤｃａ１が処理回路Ｃ３で処理され（ステップＳ３２０）、アプリケーション制御部１０１により、出力データ切替回路５２３の出力先が外部に設定されて、処理回路Ｃ３による処理結果のデータが外部の出力データ記憶部１０４へ出力データとして出力される（ステップＳ３２１）。
【０１３３】
次に、キャッシュカウンタ２０２の値とｋが比較され（ステップＳ３２２）、キャッシュカウンタ２０２の値がｋよりも小さい場合は、ステップＳ３１８に戻り、再びキャッシュカウンタ２０２が指し示すデータのブロックが、アプリケーション制御部１０１からの指示により、データキャッシュ部５３から処理回路Ｃ３に入力され、ステップＳ３１９からステップＳ３２１の処理が行われ、その処理結果が外部の出力データ記憶部１０４に出力される。そして、ステップＳ３１８からステップＳ３２１までの動作を、ステップＳ３２２で、キャッシュカウンタ２０２の値がｋよりも大きくなったと判断されるまで繰り返す。
【０１３４】
キャッシュカウンタ２０２の値がｋよりも大きくなると（ステップＳ３２２）、アプリケーション制御部１０１により、データカウンタ２０１の値にｋが加えられる（ステップＳ３２３）。
【０１３５】
次に、データカウンタ２０１の値と、値Ｎとが比較され（ステップＳ３２４）、データカウンタ２０１の値がＮよりも小さい場合は、ステップＳ３０２に戻り、再びキャッシュカウンタ２０２がデータカウンタ２０１の値にセットされて、これまでに説明した操作を繰り返す。入力データのすべてのブロックを処理してデータカウンタ２０１の値がＮよりも大きくなると、処理は終了する。
【０１３６】
［マスターモード］
次に、マスターモードによる処理を説明する。図９は、マスターモードの形態における情報処理システムの構成例を示すもので、この例も、第１の構造のプログラマブル論理回路装置５０を用いた場合である。
【０１３７】
この例の情報処理システムにおいては、アプリケーション制御部１０１は、プログラマブル論理回路装置５０内に、回路情報により構成される。そして、システムのアプリケーション制御部１０５が設けられ、プログラマブル論理回路装置５０で実行される処理に関する制御が、このシステムのアプリケーション制御部１０５から、プログラマブル論理回路装置５０のアプリケーション制御部１０１に一時的に移管されることにより、処理が開始される。
【０１３８】
処理が開始されると、図９のプログラマブル論理回路装置５０に形成されたアプリケーション制御部１０１により入力データのブロックを指し示すデータカウンタ２０１の値が１にリセットされ、データキャッシュ部５３に保持されたデータのブロックを指し示すキャッシュカウンタ２０２の値がデータカウンタ２０１の値にセットされる。
【０１３９】
次に、前述したスレーブモードによる処理と同じ手順により、回路情報ＣＤ１、ＣＤ２、ＣＤ３が、回路情報記憶部１０２から回路情報入力制御部５１を介してプログラマブル論理回路部５２のコンフィギュレーションメモリ５２Ｍに順次読み込まれて構成される処理回路Ｃ１、Ｃ２、Ｃ３で、入力データ記憶部１０３に格納されたＮブロックの入力データＤｉｎ１、Ｄｉｎ２、…、ＤｉｎＮを、順次処理して、Ｎブロックの出力データＤｏｕｔ１、Ｄｏｕｔ２、…、ＤｏｕｔＮを出力データ記憶部１０４へ出力する。
【０１４０】
処理が終了すると、プログラマブル論理回路装置５０の制御が、再びシステムのアプリケーション制御部１０５へ移る。
【０１４１】
スレーブモードとマスターモードのいずれの場合も、３回の回路情報の読み込みと、それに引き続くデータ処理により、ｋブロックのデータが処理される。このサイクルを、Ｎ／ｋ回、繰り返すことにより、すべての入力データが処理される。
【０１４２】
なお、上述の実施の形態は、使用するプログラマブル論理回路装置が第１の構造のプログラマブル論理回路装置５０の場合であるが、第２の構造のプログラマブル論理回路装置６０、また、第３の構造のプログラマブル論理回路装置７０を用いても、ほぼ同様のデータ処理を行うことができる。
【０１４３】
ただし、第２の構造のプログラマブル論理回路装置６０を用いた場合には、回路情報を読み込むことにより構成される入力データ切替回路５２２と出力データ切替回路５２３と同じ機能を持った入力データ切替部６１と出力データ切替部６２とを備えているので、相対的に回路情報が小さくなり、より一層の再構成時間短縮が可能となるというメリットがある。
【０１４４】
また、第３の構造のプログラマブル論理回路装置７０を用いた場合には、データキャッシュ部５３の機能が、回路情報によって構成されたデータキャッシュ回路５２４により実現されるので、回路規模の増大に伴う消費電力の増加とチップコストの増加を防止できるというメリットがある。
【０１４５】
前述もしたように、従来の方法では、３回の回路情報の読み込みと、それに引き続くデータ処理により、１ブロックのデータのみしか処理されない。その結果、すべての入力データを処理するためには、このサイクルを、入力データのブロック数Ｎだけ繰り返すことが必要であった。
【０１４６】
これに比べ、この発明の上述の実施の形態のデータ処理方法では、すべての入力データを処理するために必要なサイクル数は、Ｎ／ｋである。すなわち、この発明を用いれば、回路情報の読み込み回数は１／ｋになり、回路の再構成時間を大幅に短縮することが可能となる。
【０１４７】
ところで、第１の構造および第２の構造のプログラマブル論理回路５０および６０では、データキャッシュ部５３として、余分なメモリ領域が必要となる。しかしながら、マルチコンテキスト技術で必要となる余分なコンフィギュレーションメモリと異なり、データキャッシュ部５３は、プログラマブル論理回路部５２とは別の部分に形成することが可能であるので、回路素子５２Ｃの負荷容量の増大に起因する回路性能の低下をもたらすことが無い。
【０１４８】
また、上述の実施の形態の場合、マルチコンテキスト技術で必要となる余分なコンフィギュレーションメモリに比べて容量の小さなメモリでデータキャッシュ部を構成しても、回路の再構成時間短縮の効果が大きいので、回路規模の増大に伴う消費電力の増加とチップコストの増加はわずかである。
【０１４９】
［第１の実施の形態のデータ処理の具体例］
上述したこの発明によるデータ処理の第１の実施の形態の具体例として、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）画像圧縮処理の場合について、次に説明する。
【０１５０】
（ＪＰＥＧ方式による画像圧縮）
図１０に、ＪＰＥＧ方式の画像圧縮処理の基本ブロックダイヤグラムを示す。入力画像は、８×８画素ブロック単位で、ＤＣＴ変換、量子化、エントロピー符号化が行われて、圧縮データが出力される。
【０１５１】
入力画像データは、８×８画素ブロックに分割され、分割されたブロック毎にＤＣＴ変換部８１で、２次元ＤＣＴ変換が行われる。変換の結果、６４個のＤＣＴ係数が得られる。
【０１５２】
高い符号化効率を得るために、得られた６４個のＤＣＴ係数は、量子化部８２において、量子化テーブル８３を用いて、ＤＣＴ係数毎に異なるステップサイズで線形量子化される。
【０１５３】
量子化された６４個の係数は、エントロピー符号化部８４で、符号化テーブル８５を参照しながらエントロピー符号化されて圧縮データとなる。エントロピー符号化の方式には、ハフマン符号化を用いる。
【０１５４】
この例では、ＪＰＥＧ画像圧縮処理を、ＤＣＴ変換、量子化、エントロピー符号化の３処理に分けて、上述したこの発明の第１の実施の形態のデータ処理方法を適用する例を示す。すなわち、ＤＣＴ変換、量子化、エントロピー符号化に対応する回路情報が、それぞれ、回路情報ＣＤ１、ＣＤ２、ＣＤ３であり、構成される回路が、それぞれ、回路Ｃ１、Ｃ２、Ｃ３である。
【０１５５】
（具体例の構成）
ＤＣＴ変換、量子化、エントロピー符号化の各処理の回路規模は、それぞれ、約３０Ｋゲート、約３０Ｋゲート、約４０Ｋゲートである。そこで、本具体例では、５７９０６システムゲートに対応したザイリンクス（Ｘｉｌｉｎｘ）社のＸＣＶ５０相当のデバイスを用いる。ＸＣＶ５０は、動的に部分再構成可能なＦＰＧＡ型のプログラマブル論理回路装置であり、コンフィギュレーションメモリ容量は、５５９２３２ビットである。
【０１５６】
この発明の第１の実施の形態を適用するにあたり、ＸＣＶ５０相当のデバイスには、コンフィギュレーションメモリの容量と同じ５５９２３２ビットのデータキャッシュ部が備えられているものとする。
【０１５７】
また、この発明の効果を従来技術と比較するために、ＤＣＴ変換、量子化、エントロピー符号化の各処理に対応する３つのコンフィギュレーションメモリ（５５９２３２ビット×３＝１６７７６９６ビット）を備えたマルチコンテキスト技術によるＸＣＶ５０相当のデバイスも想定することにする。
【０１５８】
処理対象の画像は、１０２４画素×１０２４画素×８ビットの画像である。処理単位は８×８画素ブロック（８画素×８画素×８ビット＝５１２ビット／ブロック）であるので、入力データのブロック数は、（１０２４画素×１０２４画素）／（８画素×８画素）＝１６３８４ブロックである。
【０１５９】
入力データの精度は８ビットであるが、処理の途中ではデータの桁数が増えるので、データキャッシュ部５３またはデータキャッシュ回路５２４は１６ビットでデータを保持することにする。このとき、データキャッシュ部５３またはデータキャッシュ回路５２４が保持することができるデータのブロック数ｋの最大値は、５５９２３２ビット／（８画素×８画素×１６ビット）＝５４６．１２５となる。本具体例では、ｋ＝５１２とする。
【０１６０】
（従来のプログラマブル論理回路装置を用いた場合の再構成時間）
はじめに、動的に部分再構成可能なＸＣＶ５０を用いた従来のリコンフィギュラブルコンピューティングにおける回路構成時間を見積もる。
【０１６１】
既に説明したように、３回の回路情報の読み込み、およびそれに引き続くデータ処理により、１ブロックのデータが処理され、このサイクルを入力データのブロック数Ｎだけ繰り返すことにより、すべての入力データが処理される。よって、３つの回路情報の読み込み時間を、それぞれ、Ｔｃｄ１、Ｔｃｄ２、Ｔｃｄ３とすると、Ｎブロックのデータを処理するときに必要な回路構成時間Ｔ（従来）は、
Ｔ（従来）＝（Ｔｃｄ１＋Ｔｃｄ２＋Ｔｃ３ｄ）×Ｎ
となる。
【０１６２】
（マルチコンテキスト技術を用いた場合の再構成時間）
次に、３つのコンフィギュレーションメモリを備えたＸＣＶ５０相当のデバイスを用いたマルチコンテキスト技術によるリコンフィギュラブルコンピューティングにおける回路構成時間を見積もる。
【０１６３】
既に説明したように、回路情報の読み込みは、処理の始めに１度だけであり、選択信号による３回の回路情報の選択と、それに引き続くデータ処理により１ブロックのデータが処理される。このサイクルを入力データのブロック数Ｎだけ繰り返すことにより、すべての入力データが処理される。よって、３つの回路選択の時間を、それぞれ、Ｔｓ１、Ｔｓ２、Ｔｓ３とすると、Ｎブロックのデータを処理するときに必要な回路構成時間Ｔ（マルチコンテキスト）は、
Ｔ（マルチコンテキスト）＝（Ｔｃｄ１＋Ｔｃｄ２＋Ｔｃｄ３）＋（Ｔｓ１＋Ｔｓ２＋Ｔｓ３）×Ｎ
となる。
【０１６４】
Ｔｓ１、Ｔｓ２、Ｔｓ３はＴｃｄ１、Ｔｃｄ２、Ｔｃｄ３に比べて十分に小さいので、
Ｔ（マルチコンテキスト）≒（Ｔｃｄ１＋Ｔｃｄ２＋Ｔｃｄ３）
と近似する。
【０１６５】
（この発明の第１の構造のプログラマブル論理回路装置５０を用いたデータ処理方法による再構成時間）
次に、コンフィギュレーションメモリと同じ容量のデータキャッシュ部を備えたＸＣＶ５０相当のデバイスを用いた、この発明の第１の構造のプログラマブル論理回路装置５０を用いた第１の実施の形態のデータ処理方法によるリコンフィギュラブルコンピューティングにおける回路構成時間を見積もる。
【０１６６】
既に説明したように、３回の回路情報の読み込みと、それに引き続くデータ処理により、ｋブロックのデータが処理される。このサイクルをＮ／ｋ回繰り返すことにより、すべての入力データが処理される。よって、Ｎブロックのデータを処理するときに必要な回路構成時間Ｔ（この発明）は、
Ｔ（この発明）＝（Ｔｃｄ１＋Ｔｃｄ２＋Ｔｃ３ｄ）×Ｎ／ｋ
である。
【０１６７】
（回路構成時間の比較）
本具体例では、Ｎ＝１６３８４、ｋ＝５１２である。よって、Ｔ（従来）を基準にして回路構成時間を比べると、
Ｔ（マルチコンテキスト）＝Ｔ（従来）／Ｎ
＝Ｔ（従来）／１６３８４
≒６．１×１０−５Ｔ（従来）
Ｔ（この発明）＝Ｔ（従来）／ｋ
＝Ｔ（従来）／５１２
≒２．０×１０−３Ｔ（従来）
となる。
【０１６８】
マルチコンテキスト技術による方式と、この発明による方式は、どちらも従来方式に比べて回路構成時間を大幅に短縮することが可能であることがわかる。この発明による方式は、従来方式に比べて回路構成時間を、１／５１２に短縮することができる。マルチコンテキスト技術による方式は、さらにこの発明の方式に比べて、回路構成時間を５１２／１６３８４＝１／３２に短縮することができる。
【０１６９】
したがって、回路構成時間のみで比べると、マルチコンテキスト技術による方式の方がこの発明よりも効果的であるが、マルチコンテキスト技術は、次に説明するように、回路性能の低下、消費電力の増加、製造コストの増加という問題点がある。
【０１７０】
（回路性能、消費電力、製造コストの比較）
回路性能をプログラマブル論理回路部のＲＣ時定数で、消費電力をプログラマブル論理回路装置を形成する半導体チップ全体の消費電力で、製造コストを同じく半導体チップ製造コストで、それぞれ比較する。これらの値を図１１に示したデバイスの面積構成比から見積もる。
【０１７１】
従来の方式によるＸＣＶ５０相当デバイスの面積構成比は、プログラマブル論理回路部のコンフィギュレーションメモリが約５０％、プログラマブル論理回路部の回路素子が約４０％、回路情報入力制御部などの制御部が約１０％である。
【０１７２】
この面積構成比（コンフィギュレーションメモリ：回路素子：制御部）＝（０．５：０．４：０．１）を基準にして、マルチコンテキスト技術と、この発明の第１の実施の形態によるＸＣＶ５０相当デバイスの面積構成比を次に説明する。
【０１７３】
マルチコンテキスト技術によるＸＣＶ５０相当デバイスは、プログラマブル論理回路部に３つのコンフィギュレーションメモリを備えるので、（コンフィギュレーションメモリ：回路素子：制御部）＝（１．５：０．４：０．１）となり、全体のチップ面積比は２．０となる。
【０１７４】
この発明の第１の実施の形態によるＸＣＶ５０相当デバイスのプログラマブル論理回路部は従来のものと同じであるが、新たにコンフィギュレーションメモリ相当のデータキャッシュ部を備えるので、（コンフィギュレーションメモリ：回路素子：制御部：データキャッシュ）＝（０．５：０．４：０．１：０．５）となり、全体のチップ面積比は１．５となる。
【０１７５】
プログラマブル論理回路部の抵抗Ｒと容量Ｃは、回路配線長Ｌに比例する。回路配線長Ｌは、おおよそ回路部面積Ｓの平方根に比例するので、ＲＣ時定数は、Ｌ２＝Ｓ（プログラマブル論理回路部）に比例する。
【０１７６】
回路の駆動周波数をｆ、駆動電圧をＶとすると、デバイス全体の消費電力は、ｆＣＶ２に比例する。容量Ｃはデバイス全体の面積Ｓの平方根に比例するので、消費電力はＳ（全体）の平方根に比例する。
【０１７７】
製造コストは、デバイス全体の面積に比例するので、製造コストはＳ（全体）に比例する。
【０１７８】
以上をまとめて、従来のデバイスを基準にしたマルチコンテキスト技術による方法と、この発明の第１の実施の形態による方法の回路性能、消費電力、製造コストの比較結果を図１２に示す。
【０１７９】
図１２に示したように、プログラマブル論理回路部に余分なコンフィギュレーションメモリを備えるマルチコンテキスト技術による方法は、回路性能が大きく低下し、消費電力と製造コストも増大する。
【０１８０】
一方、プログラマブル論理回路部外にデータキャッシュ部を備えるこの発明による方式は、回路性能の低下はなく、消費電力と製造コストの増加も、マルチコンテキスト技術による方法に比べて小さい。
【０１８１】
マルチコンテキスト技術による方法における回路性能の低下は、次のデータ処理方法の第２の実施の形態で示すような多くのコンフィギュレーションメモリを必要とする場合に顕著となる。
【０１８２】
［データ処理方法の第２の具体例］
この発明の第１の実施の形態のデータ処理方法を、同時に２つの処理を並列して行う場合に適用した具体例を、第２の例として説明する。
【０１８３】
この第２の例は、図１３に示すように、回路情報ＣＤ１、ＣＤ２、ＣＤ３が回路情報入力制御部５１を介してプログラマブル論理回路部５２のコンフィギュレーションメモリ５２Ｍに順次読み込まれて構成される処理回路Ｃ１、Ｃ２、Ｃ３で、第１の処理（Ａ処理）を行い、同時に並行して、回路情報ＣＤ４、ＣＤ５が回路情報入力制御部５１を介してプログラマブル論理回路部５２のコンフィギュレーションメモリ５２Ｍに順次読み込まれて構成される処理回路Ｃ４、Ｃ５で、第２の処理（Ｂ処理）を行うものである。図１３では、データキャッシュ部は省略した。
【０１８４】
（従来の方式による並行処理）
Ａ処理とＢ処理とを別々に従来の方式で行った場合のタイミングチャートを、図１４に示す。図１４に示した網かけ部分のタイミングでは、Ａ処理とＢ処理の回路情報の読み込みが同時に発生する。しかしながら、プログラマブル論理回路装置の回路情報入力制御部は、同時に複数の回路情報を読み込むことができない。
【０１８５】
よって、従来の方式で、ふたつの処理を並行して行う場合には、処理に優先順位を付けて、回路情報の読み込みが同時に発生しないようにしなければならない。例えば、Ｂ処理を優先して従来の方式で並行処理を行った場合のタイミングチャートを図１５に示す。
【０１８６】
この図１５からわかるように、Ａ処理は、回路Ｃ１による処理が終了しても、Ｂ処理の回路情報の読み込みが終了するまで、回路情報ＣＤ２を読み込むことができず、実行待ち状態（ストール）が発生する。
【０１８７】
このストールの発生は、Ａ処理の実行時間を著しく長くするという問題を引き起こす。
【０１８８】
（この発明の実施の形態による並行処理）
この発明を適用した場合のタイミングチャートを図１６に示す。この図１６に示すように、データキャッシュ部に格納するデータのブロック数ｋを適当に選ぶことにより、ストールを発生させること無く、Ａ処理とＢ処理を並行して実行することができる。その結果、並行処理によりシステム全体の処理速度を向上させることが可能となる。
【０１８９】
（マルチコンテキスト技術による並行処理）
マルチコンテキスト技術による方式で、Ａ処理とＢ処理を並行処理する場合、Ａ処理の回路情報ＣＤ１、ＣＤ２、ＣＤ３と、Ｂ処理の回路情報ＣＤ４、ＣＤ５のすべての組み合わせを備えたコンフィギュレーションメモリが必要となるので、６つのコンフィギュレーションメモリが必要である。その結果、プログラマブル論理回路部の回路規模が著しく増大し、ＲＣ時定数が３．７倍になるという処理性能の低下をもたらす。
【０１９０】
これに対して、この発明の実施の形態による方式では、既に説明したように回路性能の低下は発生しない。
【０１９１】
なお、上述の具体例では、１ブロックを構成するデータサンプル数は一定の場合であるが、各ブロックの区切りが判るのであれば、必ずしも、１ブロックが一定データサンプル数で構成されている必要はない。例えば、ＪＰＥＧ圧縮されたデータを伸長復号する場合には、伸長復号の対象の各ブロックは可変長ブロックとなる。
【０１９２】
以上説明したように、上述の実施形態のプログラマブル論理回路装置を用いたデータ処理方法によれば、従来のマルチコンテキスト技術のように複数の回路情報を記憶するための余分なコンフィギュレーションメモリを必要としないで、プログラマブル論理回路装置の再構成時間を短縮し、回路再構成時間を含めた総処理時間で比べても、ソフトウエア処理に比べて処理時間の短いハードウエア処理を実現できる。その結果、キャッシュロジック技術によるリコンフュギュラブルコンピューティングを用いた、高速で小型化された情報処理装置を実現することができる。
【０１９３】
また、従来のマルチコンテキスト技術のようにプログラマブル論理回路部に余分なコンフィギュレーションメモリを必要としないので、余分なコンフィギュレーションメモリを配置することで生じる配線負荷容量の増大に起因する、回路性能の低下、消費電力の増加をもたらすことなく、マルチコンテキスト技術によるプログラマブル論理回路装置を実現することができる。
【０１９４】
また、ストールを発生させること無く複数の処理を並行処理することが可能となり、その結果、キャッシュロジック技術によるリコンフュギュラブルコンピューティングを用いた、高速で小型化された情報処理装置を実現することができる。
【０１９５】
また、上述の実施形態のプログラマブル論理回路装置は、従来のプログラマブル論理回路装置と同じ構造のプログラマブル論理回路部を用いることができるので、従来のプログラマブル論理回路装置の設計を用いて容易に実現することができる。
【０１９６】
また、上述の実施形態によるプログラマブル論理回路装置のデータキャッシュ部をプログラマブル論理回路装置に構成することにより、新たに回路装置を作製することなく従来のプログラマブル論理回路装置を用いて、上述の実施形態のプログラマブル論理回路装置を実現することができる。
【図面の簡単な説明】
【０１９７】
【図１】この発明によるプログラマブル論理回路装置の実施の形態の第１の構造を示す図である。
【図２】この発明によるプログラマブル論理回路装置の実施の形態の第２の構造を示す図である。
【図３】この発明によるプログラマブル論理回路装置の実施の形態の第３の構造を示す図である。
【図４】この発明による情報処理システムの実施の形態の構成例を示す図である。
【図５】この発明によるプログラマブル論理回路装置の実施形態を用いたデータ処理方法の一例の動作を説明するために用いるタイミングチャートを示す図である。
【図６】この発明によるプログラマブル論理回路装置の実施形態を用いたデータ処理方法の一例の動作を説明するために用いるフローチャートの一部を示す図である。
【図７】この発明によるプログラマブル論理回路装置の実施形態を用いたデータ処理方法の一例の動作を説明するために用いるフローチャートの一部を示す図である。
【図８】この発明によるプログラマブル論理回路装置の実施形態を用いたデータ処理方法の一例の動作を説明するために用いるフローチャートの一部を示す図である。
【図９】この発明による情報処理システムの実施の形態の他の構成例を示す図である。
【図１０】この発明によるプログラマブル論理回路装置の実施形態を用いたデータ処理方法を適用するデータ処理の具体例を説明するための図である。
【図１１】この発明によるプログラマブル論理回路装置の実施形態を用いたデータ処理方法の一例と、従来例とを比較するための図である。
【図１２】この発明によるプログラマブル論理回路装置の実施形態を用いたデータ処理方法の一例と、従来例とを比較するための図である。
【図１３】この発明によるプログラマブル論理回路装置の実施形態を用いたデータ処理方法の第２の例を説明するための図である。
【図１４】従来のプログラマブル論理回路装置を用いた並列データ処理を説明するためのタイミングチャートである。
【図１５】従来のプログラマブル論理回路装置を用いた並列データ処理を説明するためのタイミングチャートである。
【図１６】この発明によるプログラマブル論理回路装置の実施形態を用いたデータ処理方法の一例による並列データ処理を説明するためのタイミングチャートである。
【図１７】一般的なプログラマブル論理回路装置の構造の例を示す図である。
【図１８】図１７のプログラマブル論理回路装置のプログラマブル論理回路部の詳細な構造を説明するための図である。
【図１９】図１７のプログラマブル論理回路装置のプログラマブル論理回路部の詳細な構造を説明するための図である。
【図２０】リコンフィグラブルコンピューティング技術の例を示す図である。
【図２１】マルチコンテキスト技術に用いられるプログラマブル論理回路装置を説明するための図である。
【図２２】図２１のプログラマブル論理回路装置のプログラマブル論理回路部の詳細な構成を示す図である。
【図２３】マルチコンテキスト技術の用いられるプログラマブル論理回路装置の他の例を説明するための図である。
【図２４】従来のリコンィギュラブルコンピューティングを用いたデータ処理例を説明するための図である。
【図２５】図２４の例の説明に供するタイミングチャートである。
【図２６】図２４の例の説明に供するフローチャートである。
【図２７】図２４の例に用いる回路情報により構成される回路の例を示す図である。
【図２８】図２４の例に用いる回路情報により構成される回路の例を示す図である。
【図２９】図２４の例に用いる回路情報により構成される回路の例を示す図である。
【図３０】図２４の例に用いる回路情報により構成される回路の他の例を示す図である。
【図３１】図２４の例に用いる回路情報により構成される回路の他の例を示す図である。
【図３２】図２４の例に用いる回路情報により構成される回路の他の例を示す図である。
【図３３】マルチコンテキスト技術を用いたデータ処理例を説明するための図である。
【図３４】図３３の例の説明に供するタイミングチャートである。
【図３５】図３３の例の説明に供するフローチャートである。
【符号の説明】
【０１９８】
５０、６０、７０；プログラマブル論理回路装置
５１；回路情報入力制御部
５２；プログラマブル論理回路部
５２Ｃ；回路素子
５２Ｍ；コンフィギュレーションメモリ
５３；データキャッシュ部
６１；入力データ切替部
６２；出力データ切替部
１０１；アプリケーション制御部
１０２；回路情報記憶部
１０３；入力データ記憶部
１０４；出力データ記憶部
１０５；システムのアプリケーション制御部
２０１；データカウンタ
２０２；キャッシュカウンタ
５２１；処理回路
５２２；入力データ切替回路
５２３；出力データ切替回路
５２４；データキャッシュ回路
【図１】
2006333496.tif 000003
【図２】
2006333496.tif 000004
【図３】
2006333496.tif 000005
【図４】
2006333496.tif 000006
【図５】
2006333496.tif 000007
【図６】
2006333496.tif 000008
【図７】
2006333496.tif 000009
【図８】
2006333496.tif 000010
【図９】
2006333496.tif 000011
【図１０】
2006333496.tif 000012
【図１１】
2006333496.tif 000013
【図１２】
2006333496.tif 000014
【図１３】
2006333496.tif 000015
【図１４】
2006333496.tif 000016
【図１５】
2006333496.tif 000017
【図１６】
2006333496.tif 000018
【図１７】
2006333496.tif 000019
【図１８】
2006333496.tif 000020
【図１９】
2006333496.tif 000021
【図２０】
2006333496.tif 000022
【図２１】
2006333496.tif 000023
【図２２】
2006333496.tif 000024
【図２３】
2006333496.tif 000025
【図２４】
2006333496.tif 000026
【図２５】
2006333496.tif 000027
【図２６】
2006333496.tif 000028
【図２７】
2006333496.tif 000029
【図２８】
2006333496.tif 000030
【図２９】
2006333496.tif 000031
【図３０】
2006333496.tif 000032
【図３１】
2006333496.tif 000033
【図３２】
2006333496.tif 000034
【図３３】
2006333496.tif 000035
【図３４】
2006333496.tif 000036
【図３５】
2006333496.tif 000037