(57)【特許請求の範囲】
【請求項１】
複数のプロセッシングエレメントとコンフィギュレーションメモリから構成されるリコンフィギャラブル回路であって、
前記プロセッシングエレメントのコンフィギュレーションの状態遷移を管理する管理情報を生成する状態管理部と、
前記状態管理部から前記管理情報を受信し、前記管理情報に基づいて前記プロセッシングエレメントに対応する前記コンフィギュレーションメモリから、前記状態遷移する状態に相当するコンフィギュレーションデータを読込み、前記プロセッシングエレメントを状態遷移するための状態遷移情報を生成する状態デコード部と、
を具備することを特徴とするリコンフィギャラブル回路。
【請求項２】
前記プロセッシングエレメントごとに前記状態デコード部を備えることを特徴とする請求項１に記載のリコンフィギャラブルブル回路。
【請求項３】
複数の前記プロセッシングエレメントに対して前記状態デコード部を備えることを特徴とする請求項１に記載のリコンフィギャラブル回路。
【請求項４】
前記コンフィギュレーションメモリを、前記プロセッシングエレメントにコンフィギュレーションデータを転送する第１コンフィギュレーションメモリと、
前記第１コンフィギュレーションメモリに前記コンフィギュレーションデータを転送する第２コンフィギュレーションメモリから構成することを特徴とする請求項１〜３のいずれか１項に記載のリコンフィギャラブル回路。
【請求項５】
さらに請求項４に
前記プロセッシングエレメントに対応する前記第１コンフィギュレーションメモリに格納されていない前記コンフィギュレーションデータが必要であるとき、
前記第２コンフィギュレーションメモリから必要とする前記コンフィギュレーションデータを転送して第２コンフィギュレーションメモリに格納し、前記プロセッシングエレメントの前記コンフィギュレーションメモリ上に必要な前記コンフィギュレーションデータの読込みをするための転送制御を指示する転送制御信号を前記状態管理部から受信し、
前記転送制御信号に基づいて前記転送制御を指示する信号を生成し、前記第１コンフィギュレーションメモリと前記第２コンフィギュレーションメモリと前記状態デコード部にそれぞれに通知するコンフィギュレーションロード部と、
を備えることを特徴とする請求項４に記載のリコンフィギャラブル回路。
【請求項６】
前記状態管理部は、前記プロセッシングエレメントの状態と、前記プロセッシングエレメントに対応する前記第１コンフィギュレーションメモリの前記コンフィギュレーションデータを認識し、前記認識結果に基づいて前記転送制御信号を生成することを特徴とする請求項５に記載のリコンフィギャラブル回路。
【請求項７】
状態デコード部は、前記プロセッシングエレメントの前記コンフィグレーションメモリにある前記コンフィギュレーションデータのアドレスを記憶したＲＡＭを備え、
前記状態管理部の管理する前記管理情報に基づいて生成した前記アドレスを前記ＲＡＭに入力して前記状態遷移情報を出力することを特徴とする請求項１〜６のいずれか１項に記載のリコンフィギャラブル回路。
【請求項８】
状態デコード部は、前記プロセッシングエレメントの前記コンフィグレーションメモリにある前記コンフィギュレーションデータのアドレスを複数のレジスタに保持したルックアップテーブル回路を備え、
前記状態管理部の管理する前記管理情報に基づいて生成した前記アドレスをルックアップテーブル回路に入力し、対応する前記レジスタを選択することにより前記状態遷移情報を生成し出力することを特徴とする請求項１〜６のいずれか１項に記載のリコンフィギャラブル回路。
【請求項９】
前記状態管理部は、状態を示す状態データを記憶している状態記憶部と、前記状態データに基づいて次の状態を決定する状態決定部と、前記コンフィギュレーションデータのダウンロード実施中を示すダウンロードフラグ部とを備え、
前記状態決定部は、必要なコンフィギュレーションデータを前記状態データに含まれているダウンロード開始フラグを参照し、前記ダウンロード開始フラグが有効の場合に、前記ダウンロードフラグ部に有効であることを書き込み、コンフィギュレーションロード部にコンフィギュレーションローディングの実施を指示することを特徴とする請求項４〜６のいずれか１項に記載のリコンフィギャラブル回路。
【請求項１０】
前記状態データは、どのタイミングでコンフィギュレーションデータをダウンロードすべきかを示した前記ダウンロード開始フラグと、
ダウンロード実施中を示す前記ダウンロードフラグ部を参照して処理を中断すべきか否かの判断をして実行を示すダウンロードチェックフラグを備えることを特徴とする請求項９に記載のリコンフィギャラブル回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リコンフィギャラブル回路の状態遷移の制御の技術に関する。
【背景技術】
【０００２】
従来、再構成可能回路では、各演算器要素（プロセッシングエレメント以下ＰＥと示す）のオペレーションと、ＰＥ間の結線情報をコンフィギュレーションデータとしてメモリ上にて規定することにより、所望の処理を実現している。そして、コンフィギュレーションデータを変更することにより、実装する処理を変更することが可能である。そこでコンフィギュレーションデータを一つの状態としてとらえ、状態間の遷移を管理する状態管理部を設けることにより、複数の状態を動的に切り替えながら処理を実現することが可能である。【０００３】
図９に従来の再構成可能回路の構成を示す。再構成可能回路は、状態管理部９１、複数のプロセッシングエレメント９２、コンフィギュレーションメモリ９３から構成されている。図９に示す例では、状態管理部９１は４つの状態を管理している。４つの状態は、１）Ａ−ｃ１、Ｂ−ｃ１の状態、２）Ａ−ｃ２、Ｂ−ｃ１の状態、３）Ａ−ｃ１、Ｂ−ｃ２の状態、４）Ａ−ｃ２、Ｂ−ｃ２の状態である。そして１）〜４）に対応する要素がコンフィグレーションデータとして、各ＰＥ９２（ＰＥ−Ａ、ＰＥ−Ｂ・・・ＰＥ−Ｅ、ＰＥ−Ｆ）に設けられたコンフィギュレーションメモリ９３に格納される。各コンフィグレーションメモリ９３に格納される内容は、ＰＥ９２ごとに異なる。このように、複数の状態を動的に切り替えながら処理を実現するＰＥ９２により大規模なデータ処理を実行している。【０００４】
しかし、その多数のＰＥ９２の状態遷移を１つの状態管理部９１で管理する場合、つまり複数のループ遷移を一緒に実行する場合など、複数の状態が必要になる。状態数は組み合わせる状態遷移の個数や各遷移の状態数が増加すると膨大となり、ＰＥの動作効率を阻害することになる。特に、状態遷移に条件分岐が存在する場合、管理すべき状態数が膨大となり、状態管理部で管理することが困難となる。【０００５】
このような問題に対して、特許文献１〜３によれば、コンフィギュレーションメモリ上に記憶する状態数を削減し、メモリを有効に利用する手法として、複数の状態管理部を導入し、各状態管理部は状態管理部間で同期をとりながら管理下にあるプロセッシングエレメントの状態を管理する手法が提案されている。【０００６】
また、特許文献４には、ＳＩＭＤアレイプロセッサにおいて、ＰＥ内に固定式デコーダ論理回路とＬＵＴ方式を設けることで、大域的命令の選択されたビットをＬＵＴ方式で局所的に修正することで処理能力を向上させる提案をしている。【０００７】
特許文献５には、画像データを高速処理するアレイプロセッサでＬＵＴ方式を使用している。特許文献６には、外部入力される一連の処理データを多数ビットと小数ビットに配分してＰＥごとに並列処理することでアレイプロセッサの効率向上を図っている。【０００８】
しかしながら、特許文献１〜３においては、一つの状態管理部の管轄下にある演算器要素は、状態管理部が管理している状態に対応するメモリアドレスにコンフィギュレーションデータを保持している。そのため、異なる状態であってもＰＥ単位で見ると同じ処理を実行しているＰＥが多数存在する。そのような場合、同じ機能を異なるアドレスに複製して持たねばならずメモリを冗長に利用している。また、ＰＥグループ全体の状態数分のコンフィギュレーションメモリ空間が必要になるため、個々のＰＥにおける状態数よりも多い冗長なメモリ空間が存在するという問題がある。また、特許文献４〜６はＰＥ内でのＬＵＴ方式などについて記載されているが本発明とは異なる。
【特許文献１】特開２００１−０３１２４８１号公報
【特許文献２】特開２００４−０１３３７８０号公報
【特許文献３】特開２００４−０１３３７８１号公報
【特許文献４】特開平０１−０１１４９８２号公報
【特許文献５】特開平０６−０１１０８５２号公報
【特許文献６】特開２００３−００７６６６８号公報
【発明の開示】
【０００９】
本発明は上記のような実情に鑑みてなされたものであり、コンフィギュレーションメモリを効率よく利用した動的リコンフィギャラブル回路を提供することを目的とする。
本発明の態様のひとつである複数のプロセッシングエレメントとコンフィギュレーションメモリから構成されるリコンフィギャラブル回路であって、
上記プロセッシングエレメントのコンフィギュレーションの状態遷移を管理する管理情報を生成する状態管理部と、上記状態管理部から上記管理情報を受信し、上記管理情報に基づいて上記プロセッシングエレメントに対応する上記コンフィギュレーションメモリから、上記状態遷移する状態に相当するコンフィギュレーションデータを読込み、上記プロセッシングエレメントが状態遷移するための状態遷移情報を生成する状態デコード部と、  を具備する構成である。
【００１０】
好ましくは、上記プロセッシングエレメントごとに上記状態デコード部を備える構成としてもよい。
好ましくは、複数の上記プロセッシングエレメントに対して上記状態デコード部を備える構成としてもよい。
【００１１】
好ましくは、上記コンフィギュレーションメモリを、上記プロセッシングエレメントにコンフィギュレーションデータを転送する第１コンフィギュレーションメモリと、
上記第１コンフィギュレーションメモリに上記コンフィギュレーションデータを転送する第２コンフィギュレーションメモリから構成してもよい。
【００１２】
また、さらに上記プロセッシングエレメントに対応する上記第１コンフィギュレーションメモリに格納されていない上記コンフィギュレーションデータが必要であるとき、上記第２コンフィギュレーションメモリから必要とする上記コンフィギュレーションデータを転送して第１コンフィギュレーションメモリに格納し、上記プロセッシングエレメントの上記コンフィギュレーションメモリ上に必要な上記コンフィギュレーションデータの読込みをするための転送制御を指示する転送制御信号を上記状態管理部から受信し、上記転送制御信号に基づいて上記転送制御を指示する信号を生成し、上記第１コンフィギュレーションメモリと上記第２コンフィギュレーションメモリと上記状態デコード部それぞれに通知するコンフィギュレーションロード部を備える構成としてもよい。
【００１３】
好ましくは、上記状態管理部は、上記プロセッシングエレメントの状態と、上記プロセッシングエレメントに対応する上記第１コンフィギュレーションメモリの上記コンフィギュレーションデータを認識し、上記認識結果に基づいて上記転送制御信号を生成する構成としてもよい。
【００１４】
好ましくは、状態デコード部は、上記プロセッシングエレメントの上記コンフィグレーションメモリにある上記コンフィギュレーションデータのアドレスを記憶したＲＡＭを備え、上記状態管理部の管理する上記管理情報に基づいて生成した上記アドレスを上記ＲＡＭに入力して上記状態遷移情報を出力する構成としてもよい。
【００１５】
好ましくは、状態デコード部は、上記プロセッシングエレメントの上記コンフィグレーションメモリにある上記コンフィギュレーションデータのアドレスを複数のレジスタに保持したルックアップテーブル回路を備え、上記状態管理部の管理する上記管理情報に基づいて生成した上記アドレスをルックアップテーブル回路に入力し、対応する上記レジスタを選択することにより上記状態遷移情報を生成し出力する構成とすればよい。
【００１６】
好ましくは、上記状態管理部は、状態を示す状態データを記憶している状態記憶部と、上記状態データに基づいて次の状態を決定する状態決定部と、上記コンフィギュレーションデータのダウンロード実施中を示すダウンロードフラグ部とを備え、上記状態決定部は、必要なコンフィギュレーションデータを上記状態データに含まれているダウンロード開始フラグを参照し、上記ダウンロード開始フラグが有効の場合に、上記ダウンロードフラグ部に有効であることを書き込み、コンフィギュレーションロード部にコンフィギュレーションローディングの実施を指示する構成としてもよい。
【００１７】
好ましくは、上記状態データは、どのタイミングでコンフィギュレーションデータをダウンロードすべきかを示した上記ダウンロード開始フラグと、ダウンロード実施中を示す上記ダウンロードフラグ部を参照して処理を中断すべきか否かの判断をして実行を示すダウンロードチェックフラグを備える構成としてもよい。
【００１８】
各プロセッシングエレメントには状態デコード部を設ける。状態デコード部は、状態管理部からＰＥグループ全体の状態を受け取り、自分のＰＥの状態を解析してＰＥの状態を出力する。出力されたＰＥの状態に基づき、コンフィギュレーションメモリから状態に相当するコンフィギュレーションデータをロードし、機能回路上に実装する。
【００１９】
上記のように、異なる状態であっても、同じ機能を異なるアドレスに複製してもたずにメモリを効率よく利用できる。また、ＰＥグループ全体の状態数分のコンフィギュレーションメモリ空間と、個々のＰＥにおける状態数よりも多い冗長なメモリ空間を必要としなくなる。
【図面の簡単な説明】
【００２０】
【図１】状態デコードを使用したコンフィギュレーションデータ管理機構を示す図である。
【図２Ａ】図２Ａは状態デコード部の実装例としてＬＵＴ方式を示す図である。
【図２Ｂ】図２Ｂは状態デコード部の実装例としてＲＡＭ方式を示す図である。
【図３】ＬＵＴを使用した方式と、ＲＡＭを使用した方式による状態デコード部の実装例を示す図である。
【図４Ａ】図４ＡはＬＵＴ方式の動作のタイムチャートを示す図である。
【図４Ｂ】図４ＢはＲＡＭ方式の動作のタイムチャートを示す図である。
【図５】一つの状態デコード部が複数プロセッシングエレメントに対応した実装例を示す図である。
【図６】実行時に動的にコンフィギュレーションデータをメモリ上にダウンロードする機構を示す図である。
【図７】状態管理部の構成を示す図である。
【図８】実行時の動的なコンフィギュレーションのタイムチャートを示す図である。
【図９】従来方式におけるコンフィギュレーションデータの管理機構を示す図である。
【発明を実施するための最良の形態】
【００２１】
以下図面に基づいて、本発明の実施形態について詳細を説明する。
（原理説明）
本発明について図１を用いて説明する。実施例１に示したリコンフィギャラブル回路は、状態管理部１、プロセッシングエレメント２（ＰＥ）、コンフィギュレーションメモリ３、状態デコード部４から構成された回路図である。従来のリコンフィギャラブル回路に機能を付加した状態管理部１と、新たに状態デコード部４を設けている。【００２２】
状態管理部１は、ＰＥ２のコンフィギュレーションの状態遷移を管理する管理情報を生成する。状態デコード部４は、状態管理部１から管理情報を受信する。受信した管理情報に基づいてＰＥ２が状態遷移するための状態遷移情報を生成する。そして、各ＰＥ２に対応するコンフィギュレーションメモリ３から状態遷移する状態に相当するコンフィギュレーションデータを読み込みする。【００２３】
このように構成することで、効率よくメモリを使用することが可能になる。
（実施例１）
図１に示した回路図の状態デコード部４にルックアップテーブル（ＬＵＴ）方式を使用した方式について説明する。【００２４】
図２ＡはＬＵＴ方式の構成を示した図である。ＰＥ２のコンフィグレーションデータ３を記録したメモリアドレスを、状態管理部１が管理する状態のＩＤ番号（管理情報）に対応するＬＵＴ上に記憶しておく。実行時に状態のＩＤ番号をＬＵＴの入力として受けとり、ＬＵＴから対応するＰＥのメモリアドレスが出力される。【００２５】
図３に状態デコード部４の動作を示す。状態管理部１は図９で説明したように４つの状態をもち、その４つの状態についてそれぞれＩＤ番号を生成する。４つのＩＤ番号は、１）Ａ−ｃ１、Ｂ−ｃ１の状態を示す状態データをＩＤ１、２）Ａ−ｃ２、Ｂ−ｃ１の状態を示す状態データをＩＤ２、３）Ａ−ｃ１、Ｂ−ｃ２の状態を示す状態データをＩＤ３、４）Ａ−ｃ２、Ｂ−ｃ２の状態を示す状態データをＩＤ４という管理情報で示す。【００２６】
同図に示す管理情報ＩＤ２について説明する。状態管理部１はＩＤ２としてＰＥ２に対応するように設けた各状態デコード部４に対してＩＤ番号を発行する。図３ではＩＤ２に示すように「２」（ｂ×００１０）が、ＰＥ−ＡとＰＥ−Ｂの状態デコード部４に転送される。ＰＥ−Ａのデコード部４が「２」を受けとると２にデコードされコンフィギュレーションメモリ３のアドレス２からＡ−ｃ２に該当するコンフィギュレーションデータが選択される。同様に、ＰＥ−Ｂのデコード部４が「２」を受けとると１にデコードされ、コンフィギュレーションメモリ３のアドレス１からＢ−ｃ１に該当するコンフィギュレーションデータが選択される。そして、ＰＥ−ＡとＰＥ−Ｂにコンフィギュレーションメモリ３から、各ＰＥ２が現在必要とする各コンフィギュレーションデータを出力する。他のＰＥ２も同様に現在必要とする各コンフィギュレーションデータを出力する。【００２７】
図４ＡはＬＵＴ方式の動作を示すタイムチャートである。上段から１）クロック信号、２）状態管理部出力、３）状態デコード部出力（ＰＥ−Ａ）、４）状態デコード部出力（ＰＥ−Ｂ）、５）コンフィギュレーションメモリ部出力（ＰＥ−Ａ）、６）コンフィギュレーションメモリ部出力（ＰＥ−Ｂ）を示し、管理情報（Ｘ）と状態遷移情報（Ｙ−Ａ、Ｙ−Ｂ）とコンフィギュレーションデータ（Ｚ−Ａ、Ｚ−Ｂ）の動作を示している。【００２８】
状態管理部１から管理情報（Ｘ）が出力されると、１）クロックに示すクロック信号とは同期せず、各状態デコード部４は処理をする。各状態デコード部４ではＬＵＴの処理結果状態遷移情報（Ｙ−Ａ、Ｙ−Ｂ）が出力される。そしてコンフィギュレーションメモリ部３ではコンフィギュレーションデータ（Ｚ−Ａ、Ｚ−Ｂ）が選択されて出力される。【００２９】
このように構成することで、効率よくメモリを使用することが可能になる。
（実施例２）
一方、図２Ｂは、状態デコード部４をＲＡＭ方式で構成した例である。ＰＥ２のコンフィグレーションデータを記録したメモリアドレスを、状態管理部１が管理する状態のＩＤ番号（管理情報）をアドレスとして、メモリ上に記憶する。アドレス信号として状態に対応するＩＤ番号を入力することで、ＰＥ２の状態を出力する。【００３０】
図４Ａで示した例では、全体状態入力から出力までクロック同期（ＦＦを経由しない）のため、０クロックでの信号伝播が可能である。図４ＢではＲＡＭを使用するため１クロックのオーバーヘッドが必要である。つまりクロック同期である。図４ＢではＲＡＭにアクセスして、４ビット幅のデータパスを利用してＩＤ番号に該当する状態遷移情報を選択し２ビット幅のデータパスを利用して出力する。そして上記状態遷移情報に基づいて、コンフィギュレーションメモリ３からコンフィギュレーションデータを選択しＰＥ２に出力する。【００３１】
状態デコード部４は、状態管理部１から１）クロックに示すクロック信号の立ち上がりで管理情報（Ｘ）を取得する。各状態デコード部４ではＲＡＭの処理結果である状態遷移情報（Ｙ−Ａ、Ｙ−Ｂ）が出力される。クロック信号に同期して、コンフィギュレーションメモリ部３では処理結果である状態遷移情報（Ｙ−Ａ、Ｙ−Ｂ）を取得する。その後、コンフィギュレーションメモリ部３でコンフィギュレーションデータ（Ｚ−Ａ、Ｚ−Ｂ）が選択されてＰＥ２に出力される。【００３２】
このように構成することで、効率よくメモリを使用することが可能になる。
（実施例３）
図１に示した実施例１、２の構成では、一つのＰＥ２に対し一つの状態デコード部４が対応している。本例では、図５に示すように複数のＰＥ２に対して一つの状態デコード部５を対応させている。【００３３】
状態デコード部５は状態デコード部４と同じ構成であるが、ＰＥ２をブロックごとに制御している。例えば、同図ＰＥ−Ａ、ＰＥ−Ｂ・・・からなるグループとＰＥ−Ｅ、ＰＥ−Ｆ・・・からなるグループを状態デコード部５がグループごとに制御する。【００３４】
ＰＥ−ＡとＰＥ−Ｂの含まれるグループで考えた場合、ＰＥ−Ａ、ＰＥ−Ｂ・・・の全ての状態を示す管理情報を、同一グループ内のＰＥ２全てに通知する。管理情報を受信した状態デコード部５は状態遷移情報を生成して各コンフィギュレーションメモリ３に送信する。その状態遷移情報に基づいてＰＥ２が必要とするコンフィギュレーションデータを選択し出力する。【００３５】
なお、本例はＬＵＴ方式でもＲＡＭ方式でも実施可能である。
（実施例４）
次に、コンフィギュレーションデータ数（コンテキスト面数など）が多い大規模なアプリケーションを実装した場合の例を示す。大規模なアプリケーションを実装しようとすると、コンフィギュレーションメモリサイズが大きくなり回路規模が増大する。これを回避する方法として、状態管理部に記憶されているコンフィギュレーションデータをアプリケーション実行時に動的（ダイナミック）に書き換える構成を図６に示す。
（原理説明）
図６に示すコンフィギュレーション回路は、状態管理部６１、プロセッシングエレメント６２（ＰＥ）、コンフィギュレーションメモリ６３（第１コンフィギュレーションメモリ）、状態デコード部６４、コンフィギュレーションロード部６５、メインメモリ６６（第２コンフィギュレーションメモリ）から構成されるブロック図である。【００３６】
図６では、コンフィギュレーションメモリ６３に記憶できないコンフィギュレーションデータはメインメモリ６６に記憶する構成である。状態管理部６１は、状態遷移に加えて、現在の各ＰＥ６２の状態を解析した内容と、コンフィギュレーションメモリ６３にダウンロードされているコンフィギュレーションデータの内容を記憶しておく。【００３７】
アプリケーション実行時に、コンフィギュレーションメモリ６３上にないコンフィギュレーションデータが必要になった場合には、状態管理部６１は、コンフィギュレーションロード部６５に必要なコンフィギュレーションデータのダウンロードする指示を送る。つまり、状態管理部６１は、ＰＥ６２の状態と、ＰＥ６２に対応するコンフィギュレーションメモリ６３の各コンフィギュレーションデータを解析し、解析結果に基づいて必要なコンフィギュレーションデータ情報（転送制御信号）を生成する。コンフィギュレーションロード部６５は、転送制御信号に基づいて転送制御を指示する信号を生成し、コンフィギュレーションメモリ６３とメインメモリ６６と状態デコード部６４それぞれに通知する。【００３８】
メインメモリ６６から状態デコード部６４にデコード情報をロードし、コンフィギュレーションメモリ６３にはコンフィギュレーションデータをロードする。
ＰＥ６２は、コンフィギュレーションメモリ６３から必要なコンフィギュレーションデータの読み込みをする。【００３９】
なお、外部にコンフィギュレーションメモリ６６を設けた階層的なメモリ構造を持つリコンフィギャラブル回路でもよい。
（状態管理部とコンフィギュレーションロード部）
ダイナミックなコンフィギュレーションデータの読み込みを実現するための状態管理部６１とコンフィギュレーションロード部６５のブロック図を図７に示す。【００４０】
同図状態データに、どのタイミングでコンフィギュレーションデータをダウンロードすべきかを示したダウンロード開始フラグと、ダウンロード実施中を示すダウンロードフラグ７１を参照して処理を中断すべきか否かの判断の実行を示すダウンロードチェックフラグを備えている。【００４１】
状態管理部６１は、状態データを記憶している状態記憶部７２と、状態データに基づいて次の状態を決定する状態決定部７３からなる。さらに、状態決定部７３では、状態データに含まれているダウンロード開始フラグを参照し、フラグがＯＮ（有効）の場合には、ダウンロードフラグ部７１にＯＮ（有効）であることを書き込みする。そしてコンフィギュレーションロード部６５にコンフィギュレーションローディングの実施を指示（転送制御信号）する。【００４２】
コンフィギュレーションロード部６５は、状態管理部６１から指示を受けて、メインメモリ６６からコンフィギュレーションデータのダウンロードを実行するコンフィギュレーションメモリコントロール部７４を備えている。また、コンフィギュレーションメモリ６３、６６のどこにあるコンフィギュレーションデータをどこに転送すればよいかの情報（ダウンロード情報）を蓄えたダウンロードデータ記憶部７５を備えている。【００４３】
ただし、ダウンロード記憶部７５を持たずに、ダウンロード情報は外部のコンフィギュレーションメモリ６６（汎用メモリ）からダウンロードすることも可能である。
（動作説明）
図８に処理の流れについてタイムチャートを用い説明する。状態管理部６１では、状態決定部７３が状態記憶部７２から状態データを受け取ったさい、次の状態を決定するのと合わせてダウンロード開始フラグをチェックする（Ｔ１）。もしダウンロード開始フラグがＯＮの場合（有効）には、ダウンロードフラグ７１に対してＯＮ（有効）であることを書き込む（Ｔ２）。また、ダウンロード開始信号をコンフィギュレーションロード部７４に送信する（Ｔ１）。コンフィギュレーションロード部７４では、ダウンロード開始信号を受けてダウンロードを実行する（Ｔ２）。【００４４】
例えば、ダウンロードに必要な情報（ダウンロード情報）は、ダウンロードするコンフィギュレーションデータが納めてあるコンフィギュレーションメモリ６６の領域およびダウンロード先のコンフィギュレーションメモリ６３の領域などを情報とし、ダウンロード記憶部７５に保持される。そして、ダウンロード開始の信号の受信に合わせてダウンロードデータ記憶部７５から読み出す。【００４５】
ダウンロード情報は、コンフィギュレーションメモリ６６に記憶しておき、必要に応じてコンフィギュレーションメモリ６６から呼び出すことによりダウンロードデータ記憶部７５をなくした構成も可能である。【００４６】
コンフィギュレーションメモリコントロール部７４では、ダウンロード情報に基づき、コンフィギュレーションメモリ６６からコンフィギュレーションメモリ６３へのデータ転送処理を指示する。【００４７】
一方、状態決定部７３はダウンロード実行中も、状態遷移の処理を続行する。このことによりリコンフィギャラブル回路内における処理を中断することなく、コンフィギュレーションデータの書き換えが可能になる。【００４８】
ただし、処理内容によっては、次の処理の実行までにダウンロードの完了が間に合わない場合がある。そこで、状態データにはダウンロードチェックフラグを付け加える。このフラグが立っていない場合（有効）には、ダウンロードの実行の有無にかかわらず処理を継続するが、このフラグが立っている場合には、ダウンロードフラグ７１を参照し、ダウンロード実行中はストール信号を生成して、リコンフィギャラブル回路内部における処理を一時中断する。【００４９】
コンフィギュレーションロード部６５では、所定のコンフィギュレーションのダウンロードが完了したら、状態決定部７３に対してダウンロード処理完了の信号を送信する（Ｔ３）。状態決定部７３では、ダウンロード処理完了の信号を受けて、ダウンロードフラグをＯＦＦ（無効）にする（Ｔ４）。もし、ストール信号を発生してリコンフィギャラブル回路における処理を一時中断している場合には、ストール信号を解除する（Ｔ４）。【００５０】
上記構成により各ＰＥの状態を解析してコンフィギュレーションメモリに必要なコンフィギュレーションデータを格納することで、コンフィギュレーションメモリを効率よく利用できる。【００５１】
また、本発明は、上記実施の形態に限定されるものでなく、本発明の要旨を逸脱しない範囲内で種々の改良、変更が可能である。
本発明によれば、各ＰＥの状態を解析してコンフィギュレーションメモリにコンフィギュレーションデータを格納するため、コンフィギュレーションメモリを効率よく利用できる。
【図４Ａ】
0004410297.tif 000002
【図４Ｂ】
0004410297.tif 000003
【図５】
0004410297.tif 000004
【図８】
0004410297.tif 000005
【図１】
0004410297.tif 000006
【図２Ａ】
0004410297.tif 000007
【図２Ｂ】
0004410297.tif 000008
【図３】
0004410297.tif 000009
【図６】
0004410297.tif 000010
【図７】
0004410297.tif 000011
【図９】
0004410297.tif 000012