(57)【要約】【課題】内部動作が停止した場合に外部バッファと適切にデータのやり取りが可能なリコンフィギュラブル回路を提供する。【解決手段】リコンフィギュラブル回路は、複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、リコンフィギュラブル演算器アレイの動作の停止時に外部から供給されるデータを一時的に格納し、リコンフィギュラブル演算器アレイの動作の再開時に格納されたデータをリコンフィギュラブル演算器アレイに供給するバッファ回路とを含むことを特徴とする。【選択図】図１
2010244238.tif 000002
【特許請求の範囲】
【請求項１】
複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、
前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に外部から供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路と
を含むことを特徴とするリコンフィギュラブル回路。
【請求項２】
前記バッファ回路は、外部から供給され一時的に格納された格納後の該データを前記リコンフィギュラブル演算器アレイに供給する第１の動作モードと、外部から供給されるデータを一時的な格納動作を介することなく前記リコンフィギュラブル演算器アレイに供給する第２の動作モードとを備えることを特徴とする請求項１記載のリコンフィギュラブル回路。
【請求項３】
前記リコンフィギュラブル演算器アレイの動作の停止時に、前記リコンフィギュラブル演算器アレイから外部へのデータアクセス要求を無効化するアクセス要求無効化回路を更に含むことを特徴とする請求項１又は２記載のリコンフィギュラブル回路。
【請求項４】
前記バッファ回路は、
格納個数指示レジスタと、
シフトレジスタと
を含み、前記シフトレジスタは、前記リコンフィギュラブル演算器アレイの動作が停止した時点から前記格納個数指示レジスタの格納値が示す個数分のデータを格納することを特徴とする請求項３記載のリコンフィギュラブル回路。
【請求項５】
前記バッファ回路は、カウンタを更に含み、前記シフトレジスタに格納されるデータのうちで前記カウンタのカウント値により選択したデータを前記リコンフィギュラブル演算器アレイに出力することを特徴とする請求項４記載のリコンフィギュラブル回路。
【請求項６】
前記カウンタは、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作する場合は前記カウント値をクロックに応じてカウントアップし、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作しない際は前記カウント値を現在値に維持し、前記リコンフィギュラブル演算器アレイが動作している期間に前記シフトレジスタがシフト動作しない場合は前記カウント値をクロックに応じてカウントダウンすることを特徴とする請求項５記載のリコンフィギュラブル回路。
【請求項７】
前記停止制御回路は、リコンフィギュラブル演算器アレイからの停止要求及び外部からの停止要求の少なくとも１つに応答して、前記リコンフィギュラブル演算器アレイの動作を停止することを特徴とする請求項１乃至６のいずれか一項記載のリコンフィギュラブル回路。
【請求項８】
前記バッファ回路は、
前記リコンフィギュラブル演算器アレイの動作の停止時に第１の外部リソースから供給される第１のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第１のデータを前記リコンフィギュラブル演算器アレイに供給する第１のバッファ回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に第２の外部リソースから供給される第２のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第２のデータを前記リコンフィギュラブル演算器アレイに供給する第２のバッファ回路と
を含むことを特徴とする請求項１乃至７のいずれか一項記載のリコンフィギュラブル回路。
【請求項９】
前記データは、有効値又は無効値であるデータと、該有効値又は無効値であるデータが有効値であるか無効値であるかを示す有効指示データとを含むことを特徴とする請求項１乃至８のいずれか一項記載のリコンフィギュラブル回路。
【請求項１０】
リコンフィギュラブル回路と、
前記リコンフィギュラブル回路がデータ読み出し及びデータ書込みを行なう外部バッファと、
を含み、前記リコンフィギュラブル回路は、
複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、
前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に前記外部バッファから供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路と
を含むことを特徴とするリコンフィギュラブル回路システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願開示は、一般に論理回路に関し、詳しくは演算論理が再構成可能なリコンフィギュラブル回路に関する。
【背景技術】
【０００２】
ダイナミックリコンフィギャラブル回路（以下、リコンフィギュラブル回路と呼ぶ）は、複数の演算器とネットワーク回路とを含み、ネットワーク回路による演算器間の接続と演算命令を、コンフィギュレーションデータに基づいて再構成可能に設定することができる。リコンフィギュラブル回路では、その動作中において、内部の演算器命令及び演算器間の接続の変更（即ちコンテキスト切り替え）を行なうことができる。これにより、内部の演算器を時間軸方向に分割して共用し、回路全体のハードウェア規模を削減することが可能となる。またリコンフィギュラブル回路は、パイプライン演算を行うことが可能であり、連続したデータを高速に処理する用途に適している。
【０００３】
外部バッファメモリをリコンフィギュラブル回路に接続することで、リコンフィギュラブル回路の演算結果の格納及びリコンフィギュラブル回路へのデータ入力を、１クロック単位で連続に実行することができる。このような外部バッファを設けた場合、リコンフィギュラブル回路が内部演算動作を停止したときのデータのやり取りが問題となる。リコンフィギュラブル回路ではコンテキスト切り替え時等に内部演算動作を停止させる場合があるが、その場合、内部のフリップフロップも動作が停止しておりデータ格納動作を行なうことができない。従って、リコンフィギュラブル回路で内部演算動作が停止した時に外部バッファからのデータ読み出しが行なわれると、本来読み込まれるべきデータ（入力データ）が読み込まれないことになる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３１１２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以上を鑑みると、リコンフィギュラブル回路の内部動作が停止した場合に外部バッファと適切にデータのやり取りが可能なリコンフィギュラブル回路が望まれる。
【課題を解決するための手段】
【０００６】
リコンフィギュラブル回路は、複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、前記リコンフィギュラブル演算器アレイの動作の停止時に外部から供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路とを含むことを特徴とする。
【０００７】
リコンフィギュラブル回路システムは、リコンフィギュラブル回路と、前記リコンフィギュラブル回路がデータ読み出し及びデータ書込みを行なう外部バッファとを含み、前記リコンフィギュラブル回路は、複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、前記リコンフィギュラブル演算器アレイの動作の停止時に前記外部バッファから供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路とを含むことを特徴とする。
【０００８】
リコンフィギュラブル回路の制御方法は、複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイの動作を停止し、前記リコンフィギュラブル演算器アレイの動作の停止と同時に前記リコンフィギュラブル演算器アレイから外部リソースへのデータ読み出し要求を無効化し、前記リコンフィギュラブル演算器アレイの動作の停止後に前記外部リソースから供給される読み出しデータを、前記外部リソースの読み出しレイテンシ分の数、バッファに格納し、前記リコンフィギュラブル演算器アレイの動作を再開するとともに前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給する各段階を含むことを特徴とする。
【発明の効果】
【０００９】
本願開示の少なくとも１つの実施例によれば、リコンフィギュラブル演算器アレイの動作停止中に外部から供給されるデータをバッファ回路に一時的に格納し、動作再開後にバッファ回路の格納データをリコンフィギュラブル演算器アレイに供給する。これによりリコンフィギュラブル回路は、その内部動作が停止した場合に、外部バッファと適切にデータのやり取りを行なうことができる。
【図面の簡単な説明】
【００１０】
【図１】リコンフィギュラブル回路システムの構成の一例を示す図である。
【図２】リコンフィギュラブル演算器アレイの構成の一例を示す図である。
【図３】外部バッファへの読み出しアクセス時の動作を示す図である。
【図４】外部バッファへの書き込みアクセスの時の動作を示す図である。
【図５】コンテキストの切り替えに伴う動作停止について説明するための図である。
【図６】リコンフィギュラブル演算器アレイが動作停止したときの外部バッファからのデータ読み出しの問題点を説明するための図である。
【図７】バッファ回路の構成の一例を示す図である。
【図８】要求制御回路の構成の一例を示す図である。
【図９】停止制御回路の構成の一例を示す図である。
【図１０】リコンフィギュラブル演算器アレイが動作停止したときに要求制御回路及びバッファ回路により外部バッファと適切に連携する様子を示す図である。
【図１１】図１０との対比としてバッファ回路及び要求制御回路が設けられていない構成においてデータ読み出しを適切に行なうための動作を示す図である。
【図１２】リコンフィギュラブル回路システムの構成の変形例を示す図である。
【図１３】イネーブル生成器の構成の一例を示す図である。
【図１４】カウンタの構成の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１２】
図１は、リコンフィギュラブル回路システムの構成の一例を示す図である。図１のリコンフィギュラブル回路システムは、リコンフィギュラブル回路１０及び外部バッファ１１を含む。リコンフィギュラブル回路１０は、アドレスを指定するアドレスデータと書込みデータとを外部バッファ１１に供給することで、外部バッファ１１の指定アドレスに書込みデータを書き込む。またリコンフィギュラブル回路１０は、アドレスを指定するアドレスデータを外部バッファ１１に供給することで、外部バッファ１１の指定アドレスからデータを読み出す。外部バッファ１１は、リコンフィギュラブル回路１０の外部に設けられるデータ記憶機能を有するリソースであって、ＤＲＡＭ等のメモリ装置であってよい。外部バッファ１１の仕様については後程詳細に説明する。
【００１３】
リコンフィギュラブル回路１０は、リコンフィギュラブル演算器アレイ１２、停止制御回路１３、バッファ回路１４、要求制御回路１５、要求制御回路１６、シーケンサ１７、及びコンフィギュレーションメモリ１８を含む。リコンフィギュラブル演算器アレイ１２は、複数の演算器とこれら演算器間を再構成可能に接続するネットワーク回路とを含む。複数の演算器の各々が実行する演算はコンフィギュレーションデータ中の演算命令により指定され、複数の演算器間の接続形態はコンフィギュレーションデータ中の接続データにより指定される。これらのコンフィギュレーションデータはコンフィギュレーションメモリ１８に格納されている。シーケンサ１７は、コンフィギュレーションメモリ１８に格納される複数のコンフィギュレーションデータの内で、リコンフィギュラブル演算器アレイ１２の現在の実行形態を指定するコンフィギュレーションデータを選択する。シーケンサ１７により指定されたコンフィギュレーションデータがリコンフィギュラブル演算器アレイ１２に供給され、そのコンフィギュレーションデータに従った演算実行形態でリコンフィギュラブル演算器アレイ１２が動作する。シーケンサ１７は、順次新たなコンフィギュレーションデータを指定してリコンフィギュラブル演算器アレイ１２に供給することで、リコンフィギュラブル演算器アレイ１２の演算実行形態（コンテキスト）を順次更新していくことができる。
【００１４】
停止制御回路１３は、リコンフィギュラブル演算器アレイ１２の動作の実行及び停止を制御する。リコンフィギュラブル回路１０内部で生成された停止要求であるシーケンサ１７からの内部停止要求ｉｎ−ｓｔａｌｌが停止制御回路１３に供給される。またリコンフィギュラブル回路１０外部で生成された停止要求である外部バッファ１１からの外部停止要求ｅｘｔ−ｓｔａｌｌが停止制御回路１３に供給される。停止制御回路１３は、内部停止要求ｉｎ−ｓｔａｌｌ又は外部停止要求ｅｘｔ−ｓｔａｌｌの何れかにより停止を要求されると、停止信号ｓｔａｌｌを送出する。停止信号ｓｔａｌｌは、リコンフィギュラブル演算器アレイ１２、バッファ回路１４、要求制御回路１５、及び要求制御回路１６に供給される。
【００１５】
図２は、リコンフィギュラブル演算器アレイ１２の構成の一例を示す図である。図２のリコンフィギュラブル演算器アレイ１２は、複数ｎ個の演算器（プロセッサエレメントＰＥ）２０−１乃至２０−ｎとネットワーク回路２２とを含む。ネットワーク回路２２は、複数の演算器２０−１乃至２０−n間を再構成可能に接続する。複数の演算器２０−１乃至２０−nの各々が実行する演算はコンフィギュレーションデータ中の演算命令により指定され、ネットワーク回路２２が実現する複数の演算器間の接続形態はコンフィギュレーションデータ中の接続データにより指定される。各演算器２０−１乃至２０−nにより実現されるカウンタ、加減算器、乗算器等を組み合わせることで、任意の演算処理を行うことができる。またリコンフィギュラブル演算器アレイ１２の内部の演算を複数段のパイプライン構成として実現し、データ演算を１クロック単位で連続に行うことが可能である。
【００１６】
各演算器２０−１乃至２０−nは内部にフリップフロップ２１を含む。なお図示の都合上、各演算器について１つのフリップフロップ２１を示すが、実際には各演算器には複数のフリップフロップ２１が含まれる。各フリップフロップ２１のイネーブル端子ｅｎには、停止制御回路１３が出力する停止信号ｓｔａｌｌが印加される。従って、この停止信号ｓｔａｌｌがアサートされると、各フリップフロップ２１のデータ格納動作（データ更新動作）は停止される。これにより演算器２０−１乃至２０−nの内部に演算途中のデータを保持したままで、リコンフィギュラブル演算器アレイ１２の演算を停止することができる。その後、停止信号ｓｔａｌｌをネゲート（デアサート）すれば、リコンフィギュラブル演算器アレイ１２の演算動作を、停止した状態から再開することができる。
【００１７】
図３は、外部バッファへの読み出しアクセス時の動作を示す図である。また図４は、外部バッファへの書き込みアクセスの時の動作を示す図である。以下に、図３及び図４を用いて、図１の外部バッファ１１の動作について詳細に説明する。
【００１８】
外部バッファ１１への入力は、アドレスＡＤＤ、アドレス有効フラグＡＤＤＶ、書き込みデータＷＤ、及び書き込みデータ有効フラグＷＤＶを含む。外部バッファ１１からの出力は、読み出しデータＲＤと、読み出しデータ有効フラグＲＤＶとを含む。各データ有効フラグは、対応するデータが有効か無効かを示す値を有する。例えばアドレスデータ有効フラグＡＤＤＶは、有効値又は無効値であり得るアドレスＡＤＤが実際に有効値であるか無効値であるのかを示す値を有する。図３及び図４に示す例において各データ有効フラグは、値１のときに対応するデータが有効であることを示し、値０のときに対応するデータが無効であることを示す。例えば図３において、Ａ０乃至Ａ３は有効なアドレス値であるが、Ａ４は無効なアドレス値である。
【００１９】
外部バッファ１１は、アドレスデータ有効フラグＡＤＤＶがアドレス無効を示すとき、即ちＡＤＤＶ＝０のとき、nop動作となる。即ち外部バッファ１１は何も動作を実行しない。またアドレス有効（ＡＤＤＶ＝１）で且つ書き込みデータ無効（ＷＤＶ＝０）のとき、外部バッファ１１は読み出し動作を実行する。図３の例では、書き込みデータ有効フラグＷＤＶは常時０に設定されているので、アドレスデータ有効フラグＡＤＤＶがアドレス有効を示す全てのサイクルで、読み出し動作が実行される。図３の最下段に示す四角で囲った「Ｒ」は、対応するサイクルで読み出し動作が実行されることを示している。なお最上段にクロック信号ＣＬＫが示されており、１クロックサイクルで1つの読み出し動作又は書き込み動作が実行される。
【００２０】
アドレス有効（ＡＤＤＶ＝１）で且つ書き込みデータ有効（ＷＤＶ＝１）のとき、外部バッファ１１は書き込み動作を実行する。図４の例では、アドレスＡ０，Ａ２，Ａ４乃至Ａ１２の各サイクルにおいて、アドレス有効（ＡＤＤＶ＝１）で且つ書き込みデータ有効（ＷＤＶ＝１）であるので、書き込み動作が実行される。図４の最下段に示す四角で囲った「Ｗ」は対応するサイクルで書き込み動作が実行されることを示す。また四角で囲った「Ｒ」は対応するサイクルで読み出し動作が実行されることを示す。
【００２１】
なお外部バッファ１１は、読み出しアクセスを要求した場合、所定の読み出しレイテンシの後に読み出しデータを出力する。図３及び図４の例では、読み出しレイテンシは５クロックサイクルとなっている。即ち、例えば図３のアドレスＡ０の読み出しアクセス要求に対して、その読み出しデータＲ０は５クロックサイクル後に出力されている。
【００２２】
図５は、コンテキストの切り替えに伴う動作停止について説明するための図である。前述のように、リコンフィギュラブル回路は動作中にコンテキスト切り替えを実行することにより、実行する演算動作を変更することができる。このコンテキスト切り替え時の待ち時間を無くすために、リコンフィギュラブル演算器アレイ１２はコンフィギュレーションメモリ１８からのコンフィギュレーションデータの先読みを行なうことができる。図５に示す例では、リコンフィギュラブル演算器アレイ１２がコンテキストＡで動作している状態において、コンテキストＢに相当するコンフィギュレーションデータが先読み（ｐｒｅｌｏａｄ）されている。タイミングＴ１で、リコンフィギュラブル演算器アレイ１２の動作の基になるコンフィギュレーションデータがコンテキストＡのものからコンテキストＢのものに切り替えられ、これによりコンテキスト切り替えが行なわれる。この後、リコンフィギュラブル演算器アレイ１２がコンテキストＢで動作している状態において、コンテキストＣに相当するコンフィギュレーションデータが先読み（ｐｒｅｌｏａｄ）されている。
【００２３】
タイミングＴ２では、コンテキスト切り替えの分岐が発生する。この分岐では、リコンフィギュラブル演算器アレイ１２内部での演算結果に応じて、次に実行するコンテキストが決定される。この例では、コンテキストＣに相当するコンフィギュレーションデータが先読みされているが、実際に次に実行するコンテキストがコンテキストＤであることが分岐により確定する。従って、タイミングＴ２からクロック信号ＣＬＫのｎサイクルかけて、コンテキストＤをコンフィギュレーションメモリ１８から読み込む。このようなコンテキスト読み直し（先読みコンテキストの書き替え）の間は、リコンフィギュラブル演算器アレイ１２の動作を停止する必要がある。リコンフィギュラブル演算器アレイ１２は、コンテキスト読み直しが必要であることを検出すると、図１に示すように停止要求をシーケンサ１７に送る。これに応答して、シーケンサ１７が内部停止要求ｉｎ−ｓｔａｌｌを停止制御回路１３に供給し、停止制御回路１３が停止信号ｓｔａｌｌを発生する。この停止信号ｓｔａｌｌにより、リコンフィギュラブル演算器アレイ１２の動作はＴ２からｎサイクルの間動作を停止する（図示のＳＴＡＬＬ）。その後、コンテキストＤに相当するコンフィギュレーションデータが先読みされると、タイミングＴ３で、リコンフィギュラブル演算器アレイ１２の動作の基になるコンフィギュレーションデータがコンテキストＢのものからコンテキストＤのものに切り替えられる。これによりコンテキストＢからコンテキストＤへの切り替えが行なわれる。
【００２４】
図６は、リコンフィギュラブル演算器アレイが動作停止したときの外部バッファからのデータ読み出しの問題点を説明するための図である。図６に示す動作は、リコンフィギュラブル演算器アレイが外部バッファを読み出し中に動作停止が発生し、そのまま読み出し要求が継続した場合についてのものである。前述のようにリコンフィギュラブル演算器アレイの内部のフリップフロップの更新動作を停止してリコンフィギュラブル演算器アレイの演算動作を停止させると、停止時の状態がそのまま継続することになる。従って、何らかの工夫をしない限りは、図６に示す例のように読み出し要求が継続してしまうことになる。
【００２５】
図６の（ａ）にはクロック信号ＣＬＫが示される。（ｃ）に示すように、タイミングＴ１からＴ２の間においてリコンフィギュラブル演算器アレイは読み出し要求を行なっており、（ｂ）に示すように、５サイクルのレイテンシをおいて外部バッファが読み出しデータ供給動作を行なっている。この読み出しデータ供給動作により供給されるデータが、図６の（ｄ）に示すリコンフィギュラブル回路入力データＤＡＴＡ１となる。（ｃ）に示すようにタイミングＴ２でリコンフィギュラブル演算器アレイは動作停止するが、そのまま読み出し要求は継続される。この動作停止中の読み出し要求に対応して、（ｄ）に示すように、５サイクル遅れでＤＡＴＡ３が入力データとして外部バッファからリコンフィギュラブル回路に供給される。このとき、タイミングＴ２からＴ３の間においてリコンフィギュラブル演算器アレイは動作を停止しているので、何らかの工夫をしない限りは、その間の入力データが失われることになる。ＤＡＴＡ３はリコンフィギュラブル演算器アレイが読み出しを意図したデータではないので失われても問題ないが、ＤＡＴＡ１は失われてはならないデータである。また同様に、リコンフィギュラブル演算器アレイがタイミングＴ４からＴ５にかけて動作停止すると、読み出しデータＤＡＴＡ４のうちでタイミングＴ４からＴ５の間に供給されている部分が失われてしまう。
【００２６】
以上のような、不都合を解消するために、図１に示すリコンフィギュラブル回路１０ではバッファ回路１４、要求制御回路１５、及び要求制御回路１６が設けられている。バッファ回路１４は、リコンフィギュラブル演算器アレイ１２の動作の停止時に外部バッファ１１から供給されるデータを一時的に格納する。またバッファ回路１４は、リコンフィギュラブル演算器アレイ１２の動作の再開時に、格納されたデータをリコンフィギュラブル演算器アレイ１２に供給する。要求制御回路１５は、リコンフィギュラブル演算器アレイ１２の動作の停止時に、リコンフィギュラブル演算器アレイ１２から外部への書き込みデータ供給を無効化するアクセス要求無効化回路として機能する。また要求制御回路１６は、リコンフィギュラブル演算器アレイ１２の動作の停止時に、リコンフィギュラブル演算器アレイ１２から外部へのアドレス供給を無効化するアクセス要求無効化回路として機能する。
【００２７】
図７は、バッファ回路１４の構成の一例を示す図である。バッファ回路１４は、カウンタ３１、イネーブル生成器３２、タップ付きシフトレジスタ３３、ＯＲ回路３４、セレクタ３５、格納個数指示レジスタ３６、及びインバータ３９を含む。タップ付きシフトレジスタ３３は、シフトレジスタの任意のフリップフロップの格納値を選択的に出力可能としたものであり、縦続接続されたフリップフロップ３７−１乃至３７−ｎ及びセレクタ３８を含む。なお図示の都合上、フリップフロップ３７−１乃至３７−ｎは１ビットに対応する一列のみを示すが、実際には入力データがａ＋１ビットであれば、ａ＋１列のフリップフロップ列が設けられることになる。なお図示の例の場合、バッファ回路１４への入力データは、有効値又は無効値であるａビットのデータｄｉｎと、有効値又は無効値であるデータｄｉｎが有効値であるか無効値であるかを示す１ビットの有効指示データ（フラグ）ｖｉｎとからなる。これらａ＋１ビットの入力データの各ビットに対して一列のフリップフロップが設けられ、全体でａ＋１列のフリップフロップ列が設けられる。バッファ回路１４の出力データは、同様に、有効値又は無効値であるａビットのデータｄｏｕｔと、有効値又は無効値であるデータｄｏｕｔが有効値であるか無効値であるかを示す１ビットの有効指示データ（フラグ）ｖｏｕｔとからなる。
【００２８】
バッファ回路１４は、第１の動作モードでは、外部バッファ１１から供給され一時的に格納された格納後のデータをリコンフィギュラブル演算器アレイ１２に供給する。またバッファ回路１４は、第２の動作モードでは、外部バッファ１１から供給されるデータを一時的な格納動作を介することなくリコンフィギュラブル演算器アレイ１２に供給する。シフトレジスタ３３に未読み出しの格納データが存在するときには第１の動作モードとなり、シフトレジスタ３３に未読み出しの格納データが存在しないときには第２の動作モードになる。第１の動作モードと第２の動作モードとの切り替えは、シフトレジスタ３３に格納される未読み出しのデータの個数をカウントするカウンタ３１の出力カウント値が０であるか１以上であるかに応じてセレクタ３５を制御することにより行なわれる。カウンタ３１の出力カウント値が０のときに、セレクタ３５は、外部バッファ１１からの供給データを選択してリコンフィギュラブル演算器アレイ１２に供給する。カウンタ３１の出力カウント値が１以上のときに、セレクタ３５は、シフトレジスタ３３の出力を選択してリコンフィギュラブル演算器アレイ１２に供給する。
【００２９】
シフトレジスタ３３は、リコンフィギュラブル演算器アレイ１２の動作が停止した時点から格納個数指示レジスタ３６の格納値が示す個数分のデータを格納する。格納個数指示レジスタ３６には、外部バッファ１１のレイテンシをクロックサイクル数で表した値が格納されている。格納個数指示レジスタ３６の格納値は、イネーブル生成器３２に供給される。
【００３０】
図１３は、イネーブル生成器の構成の一例を示す図である。イネーブル生成器３２は、縦続接続されたフリップフロップ７１−１乃至７１−ｎ及びセレクタ７２を含む。セレクタ７２は、格納個数指示レジスタ３６の格納値ｓｔａｇｅが示す位置にあるフリップフロップ７１−１乃至７１−ｎのデータを選択し、ストールフラグ信号ｓｔａｌｌ＿ｆｌａｇとして出力する。イネーブル生成器３２は、停止信号ｓｔａｌｌを格納個数指示レジスタ３６の格納値ｓｔａｇｅが示す個数分のサイクルだけ遅延させてから、ストールフラグ信号ｓｔａｌｌ＿ｆｌａｇとして出力するよう機能する。従ってイネーブル生成器３２の出力するストールフラグ信号ｓｔａｌｌ＿ｆｌａｇは、リコンフィギュラブル演算器アレイ１２の動作が停止した時点（即ち停止信号ｓｔａｌｌがアサートされた時点）から上記の個数分のサイクルの間はネゲート状態にある。即ち、この期間、ストールフラグ信号ｓｔａｌｌ＿ｆｌａｇの論理反転であるカウントイネーブル信号はアサート状態となっている。例えばレイテンシが５クロックサイクルの場合、格納個数指示レジスタ３６には５が格納される。この場合、リコンフィギュラブル演算器アレイ１２の動作が停止した時点から５クロックサイクルの間、カウントイネーブル信号がアサート状態となる。従ってこの例では、シフトレジスタ３３は、リコンフィギュラブル演算器アレイ１２の動作が停止した時点から数えて５個のデータ（５クロックサイクル分のデータ）を格納し、それ以降のデータを格納しない。
【００３１】
シフトレジスタ３３は、フリップフロップ３７−１乃至３７−ｎに格納されるデータのうちでカウンタ３１のカウント値により選択したデータをリコンフィギュラブル演算器アレイ１２に出力する。例えばカウンタ３１のカウント値が４の場合、セレクタ３８により４番目のフリップフロップ３７−４の格納データを選択して、セレクタ３５に供給する。これにより、４番目のフリップフロップ３７−４の格納データがリコンフィギュラブル演算器アレイ１２に供給されることになる。
【００３２】
図１４は、カウンタ３１の構成の一例を示す図である。カウンタ３１は、１増加回路８１、１減少回路８２、セレクタ８３、セレクタ８４、フリップフロップ８５、及びＡＮＤ回路８６及び８７を含む。ＡＮＤ回路８６及び８７の各々は、一方の入力が負論理であり他方の入力が正論理となっている。カウンタ３１は、リコンフィギュラブル演算器アレイ１２の動作が停止している期間にシフトレジスタ３３がシフト動作する場合は、カウント値をクロックＣＬＫに応じてカウントアップする。即ち、停止信号ｓｔａｌｌがアサートされており且つストールフラグ信号ｓｔａｌｌ＿ｆｌａｇがネゲートされている場合、カウンタ３１は、カウント値をクロックＣＬＫのパルスに同期してカウントアップする。
【００３３】
またカウンタ３１は、リコンフィギュラブル演算器アレイ１２の動作が停止している期間にシフトレジスタ３３がシフト動作しない場合は、カウント値を現在値に維持する。即ち、停止信号ｓｔａｌｌがアサートされており且つストールフラグ信号ｓｔａｌｌ＿ｆｌａｇもアサートされている場合、カウンタ３１は、カウントアップもカウントダウンもすることなく、カウント値を変化させずに現在値に維持する。
【００３４】
またカウンタ３１は、リコンフィギュラブル演算器アレイ１２が動作している期間にシフトレジスタ３３がシフト動作しない場合は、カウント値をクロックＣＬＫに応じてカウントダウンする。即ち、停止信号ｓｔａｌｌがネゲート（デアサート）されており且つストールフラグ信号ｓｔａｌｌ＿ｆｌａｇがアサートされている場合、カウンタ３１は、カウント値をクロックＣＬＫのパルスに同期してカウントダウンする。
【００３５】
図８は、要求制御回路１５の構成の一例を示す図である。要求制御回路１６も図８の構成と同一の構成を有する。要求制御回路１５（又は１６）は、２入力のうちの一方が負論理入力であるＡＮＤ回路４１、フリップフロップ４２、及びフリップフロップ４３を含む。要求制御回路１５（又は１６）の入力データは、有効値又は無効値であるａビットのデータｄｉｎと、有効値又は無効値であるデータｄｉｎが有効値であるか無効値であるかを示す１ビットの有効指示データ（フラグ）ｖｉｎとからなる。また要求制御回路１５（又は１６）の出力データは、有効値又は無効値であるａビットのデータｄｏｕｔと、有効値又は無効値であるデータｄｏｕｔが有効値であるか無効値であるかを示す１ビットの有効指示データ（フラグ）ｖｏｕｔとからなる。要求制御回路１５の場合、入出力データは書き込みデータであり、要求制御回路１６の場合、入出力データはアドレスデータである。
【００３６】
フリップフロップ４２は、有効フラグを除いた入出力データｄｉｎ／ｄｏｕｔの各ビットに対して１個ずつ設けられる。この例の場合、入出力データがａビットであるので、ａ個のフリップフロップ４２が設けられる。入力データｄｉｎは、有効指示データｖｉｎがアサート状態（有効を示す状態）のときにクロックＣＬＫに同期してフリップフロップ４２に格納され、出力データｄｏｕｔとして出力される。有効指示データｖｉｎがネゲート状態（無効を示す状態）のときには、入力データｄｉｎはフリップフロップ４２に格納されず、出力データｄｏｕｔとして現れない。
【００３７】
停止信号ｓｔａｌｌがネゲート状態（０）で動作有効を示す時、入力有効指示データｖｉｎはクロックＣＬＫに同期してフリップフロップ４３に格納され、出力有効指示データデータｖｏｕｔとして出力される。停止信号ｓｔａｌｌがアサート状態（１）で動作停止を示す時には、ＡＮＤ回路４１の出力は０となる。この場合、クロックＣＬＫに同期してフリップフロップ４３には０が格納され、出力有効指示データｖｏｕｔとして０（無効を示す値）が出力される。
【００３８】
図９は、停止制御回路１３の構成の一例を示す図である。図９に示す停止制御回路１３は、ＯＲ回路４５を含む。ＯＲ回路４５の入力には、内部停止要求ｉｎ−ｓｔａｌｌ、第１の外部停止要求ｅｘｔ−ｓｔａｌｌ１、第２の外部停止要求ｅｘｔ−ｓｔａｌｌ２等の複数の要因に基づく停止要求信号が印加される。ここで内部停止要求ｉｎ−ｓｔａｌｌはシーケンサ１７から供給される。また例えば第１の外部停止要求ｅｘｔ−ｓｔａｌｌ１は、図１に示す外部停止要求ｅｘｔ−ｓｔａｌｌに相当する。第２の外部停止要求ｅｘｔ−ｓｔａｌｌ２に相当する信号は図１には示されていないが、図９に示す停止制御回路１３は、任意の数の外部からの停止要求に対して対応可能となっている。入力される停止要求信号のうちの１つでもアサート状態（１）になると、停止要求信号がアサート状態（１）となる。
【００３９】
図１０は、リコンフィギュラブル演算器アレイが動作停止したときに要求制御回路及びバッファ回路により外部バッファと適切に連携する様子を示す図である。図１０に示す動作は、図１に示すリコンフィギュラブル演算器アレイ１２が外部バッファ１１を読み出し中に、何らかの動作停止要求が発生した場合についての各部分の動作である。停止制御回路１３の停止信号ｓｔａｌｌのアサートに応答して、リコンフィギュラブル演算器アレイ１２の動作が停止し、また要求制御回路１６が有効指示信号ｖｏｕｔをネゲート状態とする。従って、リコンフィギュラブル演算器アレイ１２の演算動作の停止時以降においては、外部バッファ１１に対する読み出し要求は行なわれない。
【００４０】
図１０の（ａ）にはクロック信号ＣＬＫが示される。（ｃ）に示すように、タイミングＴ１からＴ２の間においてリコンフィギュラブル演算器アレイ１２は読み出し要求を行なっており、（ｂ）に示すように、５サイクルのレイテンシをおいて外部バッファが読み出しデータ供給動作を行なっている。この読み出しデータ供給動作により供給されるデータが、図１０の（ｄ）に示すリコンフィギュラブル回路入力データＤＡＴＡ１となる。（ｃ）に示すようにタイミングＴ２でリコンフィギュラブル演算器アレイ１２は動作停止し、外部バッファ１１に対する読み出し要求は停止される。但し、タイミングＴ２前の読み出し要求に対応して、（ｄ）に示すように、Ｔ２から５サイクルの間はＤＡＴＡ１が入力データとして外部バッファ１１からリコンフィギュラブル回路１０に供給される。バッファ回路１４は、この５サイクル分の入力データＤＡＴＡ１をバッファデータ５１として格納する。このときカウンタ３１のカウント値は５までカウントアップされる。
【００４１】
（ｃ）に示すようにリコンフィギュラブル演算器アレイ１２はタイミングＴ３で演算動作を再開する。これに伴い要求制御回路１６が有効指示信号ｖｏｕｔをアサート状態とし、外部バッファ１１に対する読み出し要求を再開する。バッファ回路１４においては、前述のように、カウンタ３１の出力カウント値が１以上のときに、セレクタ３５は、シフトレジスタ３３の出力を選択してリコンフィギュラブル演算器アレイ１２に供給する。従って、タイミングＴ３から５サイクルの間は、シフトレジスタ３３に格納されるバッファデータＤＡＴＡ１が入力データ５２としてリコンフィギュラブル演算器アレイ１２に順次供給される。この５サイクルの間にバッファ回路１４のカウンタ３１はカウントダウンし、カウント値が０になる。カウンタ３１の出力カウント値が０になると、セレクタ３５は、外部バッファ１１からの供給データを選択してリコンフィギュラブル演算器アレイ１２に供給する。従ってタイミングＴ３での読み出し要求再開に応答してＴ３から６サイクル目に外部バッファ１１から読み出される読み出しデータＤＡＴＡ２は、バッファ回路１４を介してリコンフィギュラブル演算器アレイ１２に供給されることになる。このバッファ回路１４の動作により、外部バッファ１１から読み出されるデータが失われることなく、リコンフィギュラブル演算器アレイ１２に連続して供給される。
【００４２】
また更に、（ｃ）に示すようにタイミングＴ４でリコンフィギュラブル演算器アレイ１２は動作停止し、外部バッファ１１に対する読み出し要求は停止される。タイミングＴ４前の読み出し要求に対応して、（ｄ）に示すように、Ｔ４から５サイクルの間はＤＡＴＡ２が入力データとして外部バッファ１１からリコンフィギュラブル回路１０に供給される。バッファ回路１４は、この５サイクル分の入力データＤＡＴＡ１をバッファデータ５３及び５５として格納する。但し、（ｃ）に示すようにリコンフィギュラブル演算器アレイ１２はタイミングＴ５で演算動作を再開している。このＴ５での演算動作再開は、Ｔ４での演算動作停止から５サイクル以内の４サイクル目に生じているので、この時点でバッファ回路１４には４サイクル分の入力データＤＡＴＡ２がバッファデータ５３として格納されている。Ｔ５での演算動作再開時のバッファ回路１４のカウンタ３１のカウント値は４である。従って、タイミングＴ５から４サイクルの間は、Ｔ５の時点でシフトレジスタ３３に既に格納されている４サイクル分のバッファデータ５３が入力データ５４としてリコンフィギュラブル演算器アレイ１２に順次供給される。Ｔ５の直後のサイクルでは、シフトレジスタ３３からのデータ読み出しとシフト動作とが並行して起こり、Ｔ４から５サイクル目の入力データがバッファデータ５５としてバッファ回路１４に格納される。このときバッファ回路１４のカウンタ３１のカウント値は４に維持される。その後、Ｔ５から２サイクル目乃至５サイクル目において、カウント値は４から０までカウントダウンする。Ｔ５から５サイクル目において、Ｔ５の直後のサイクルでバッファ回路１４に格納されたバッファデータ５５が入力データ５６としてリコンフィギュラブル演算器アレイ１２に供給される。カウンタ３１の出力カウント値が０になると、セレクタ３５は、外部バッファ１１からの供給データを選択してリコンフィギュラブル演算器アレイ１２に供給する。従ってタイミングＴ５での読み出し要求再開に応答してＴ５から６サイクル目に外部バッファ１１から読み出される読み出しデータＤＡＴＡ３は、バッファ回路１４を介してリコンフィギュラブル演算器アレイ１２に供給されることになる。このバッファ回路１４の動作により、外部バッファ１１から読み出されるデータが失われることなく、リコンフィギュラブル演算器アレイ１２に連続して供給される。
【００４３】
図１０に示す動作は、停止要求の要因が内部停止要求ｉｎ−ｓｔａｌｌの場合であっても外部停止要求ｅｘｔ−ｓｔａｌｌの場合であっても、何れも同じ動作となる。外部バッファ１１から外部停止要求ｅｘｔ−ｓｔａｌｌが発生する原因としては、例えば、外部バッファ１１でのデータ格納が完了してない段階で外部バッファ１１に読み出し要求をした等がある。
【００４４】
図１１は、図１０との対比としてバッファ回路及び要求制御回路が設けられていない構成においてデータ読み出しを適切に行なうための動作を示す図である。図１０の場合と同様に、タイミングＴ２で何らかの停止要求が発生するが、直ちにリコンフィギュラブル演算器アレイが動作停止すると、図６で説明したように読み出しデータの入力に失敗してしまう。これを避けるために、図１１に示す動作例では、停止要求が発生してからレイテンシ分の５サイクル待って、タイミングＴ２’でリコンフィギュラブル演算器アレイの動作を停止している。但し、停止要求が発生したタイミングＴ２で外部バッファに対する読み出し要求を停止しており、外部バッファからのデータ読み出しはタイミングＴ２’までに完了する。従ってタイミングＴ２’からＴ３’までリコンフィギュラブル演算器アレイの動作を停止しても、読み出しデータが失われることはない。この図１１に示すように、リコンフィギュラブル演算器アレイの実際の動作停止を遅らせながら先に読み出し要求を停止させ、データ読み出しを適切に行なうように動作制御することも可能ではある。しかしながら図１１に示す動作の場合、図１０の動作と比較して、リコンフィギュラブル演算器アレイの実際の動作停止をＴ２からＴ２’まで遅らせることにより、動作再開のタイミングも遅れることになる。従って、動作停止する度にリコンフィギュラブル回路の動作が余分に遅れていくことになり、処理性能が低下してしまう。図１に示す構成ではバッファ回路１４及び要求制御回路１５及び１６を設けることにより、リコンフィギュラブル演算器アレイ１２の動作停止を遅らせることなく、高い処理性能を実現することができる。
【００４５】
図１２は、リコンフィギュラブル回路システムの構成の変形例を示す図である。図１２において、図１と同一の構成要素は同一の番号で参照し、その説明は省略する。図１２のリコンフィギュラブル回路システムは、リコンフィギュラブル回路１０Ａ、外部バッファ１１、及び外部バッファ６１を含む。外部バッファ１１は読み出しレイテンシが例えば５クロックサイクルであり、外部バッファ６１は読み出しレイテンシが例えば８クロックサイクルである。
【００４６】
リコンフィギュラブル回路１０Ａは、図１に示すリコンフィギュラブル回路１０の構成に加え更に、バッファ回路６４、要求制御回路６５、及び要求制御回路６６を含む。バッファ回路６４、要求制御回路６５、及び要求制御回路６６はそれぞれ、バッファ回路１４、要求制御回路１５、及び要求制御回路１６と同一の構成でよい。バッファ回路１４、要求制御回路１５、及び要求制御回路１６が外部バッファ１１に対する読み出し・書き込み制御を行なうのと同様にして、バッファ回路６４、要求制御回路６５、及び要求制御回路６６が外部バッファ６１に対する読み出し・書き込み制御を行なう。
【００４７】
停止要求の要因が何であるかに関わらず一旦停止信号ｓｔａｌｌがアサートされると、その後の外部バッファ１１に対する制御と外部バッファ６１に対する制御は同様であり、互いに独立に実行される。外部バッファ１１に対しては、そのレイテンシが５サイクルであることに応じて、バッファ回路１４には５サイクル分の読み出しデータがバッファされる。また外部バッファ６１に対しては、そのレイテンシが８サイクルであることに応じて、バッファ回路６４には８サイクル分の読み出しデータがバッファされる。外部バッファ１１及び６１の各々に対する読み出しデータのバッファリング及びリコンフィギュラブル演算器アレイ１２へのデータ供給動作は、格納データ数が５と８とで異なるだけであり、図１０に示したのと同様の動作が両方のバッファに対して実行される。
【００４８】
このようにしてリコンフィギュラブル回路１０に対して複数の外部バッファが接続されている場合であっても、リコンフィギュラブル演算器アレイ１２の演算動作停止時にそれぞれの外部バッファに対して適切に読み出し動作を行なうことができる。なお図１２の例では外部バッファの数が２である場合について示してあるが、外部バッファの数は２に限られるものではなく、任意の数の外部バッファが設けられてよい。
【００４９】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００５０】
なお本発明は、以下の内容を含むものである。
（付記１）
複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、
前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に外部から供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路と
を含むことを特徴とするリコンフィギュラブル回路。
（付記２）
前記バッファ回路は、外部から供給され一時的に格納された格納後の該データを前記リコンフィギュラブル演算器アレイに供給する第１の動作モードと、外部から供給されるデータを一時的な格納動作を介することなく前記リコンフィギュラブル演算器アレイに供給する第２の動作モードとを備えることを特徴とする付記１記載のリコンフィギュラブル回路。
（付記３）
前記リコンフィギュラブル演算器アレイの動作の停止時に、前記リコンフィギュラブル演算器アレイから外部へのデータアクセス要求を無効化するアクセス要求無効化回路を更に含むことを特徴とする付記１又は２記載のリコンフィギュラブル回路。
（付記４）
前記バッファ回路は、
格納個数指示レジスタと、
シフトレジスタと
を含み、前記シフトレジスタは、前記リコンフィギュラブル演算器アレイの動作が停止した時点から前記格納個数指示レジスタの格納値が示す個数分のデータを格納することを特徴とする付記３記載のリコンフィギュラブル回路。
（付記５）
前記バッファ回路は、カウンタを更に含み、前記シフトレジスタに格納されるデータのうちで前記カウンタのカウント値により選択したデータを前記リコンフィギュラブル演算器アレイに出力することを特徴とする付記４記載のリコンフィギュラブル回路。
（付記６）
前記カウンタは、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作する場合は前記カウント値をクロックに応じてカウントアップし、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作しない際は前記カウント値を現在値に維持し、前記リコンフィギュラブル演算器アレイが動作している期間に前記シフトレジスタがシフト動作しない場合は前記カウント値をクロックに応じてカウントダウンすることを特徴とする付記５記載のリコンフィギュラブル回路。
（付記７）
前記停止制御回路は、リコンフィギュラブル演算器アレイからの停止要求及び外部からの停止要求の少なくとも１つに応答して、前記リコンフィギュラブル演算器アレイの動作を停止することを特徴とする付記１乃至６のいずれか一項記載のリコンフィギュラブル回路。
（付記８）
前記バッファ回路は、
前記リコンフィギュラブル演算器アレイの動作の停止時に第１の外部リソースから供給される第１のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第１のデータを前記リコンフィギュラブル演算器アレイに供給する第１のバッファ回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に第２の外部リソースから供給される第２のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第２のデータを前記リコンフィギュラブル演算器アレイに供給する第２のバッファ回路と
を含むことを特徴とする付記１乃至７のいずれか一項記載のリコンフィギュラブル回路。
（付記９）
前記データは、有効値又は無効値であるデータと、該有効値又は無効値であるデータが有効値であるか無効値であるかを示す有効指示データとを含むことを特徴とする付記１乃至８のいずれか一項記載のリコンフィギュラブル回路。
（付記１０）
リコンフィギュラブル回路と、
前記リコンフィギュラブル回路がデータ読み出し及びデータ書込みを行なう外部バッファと、
を含み、前記リコンフィギュラブル回路は、
複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイと、
前記リコンフィギュラブル演算器アレイの動作の実行及び停止を制御する停止制御回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に前記外部バッファから供給されるデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給するバッファ回路と
を含むことを特徴とするリコンフィギュラブル回路システム。
（付記１１）
前記バッファ回路は、外部から供給され一時的に格納された格納後の該データを前記リコンフィギュラブル演算器アレイに供給する第１の動作モードと、外部から供給されるデータを一時的な格納動作を介することなく前記リコンフィギュラブル演算器アレイに供給する第２の動作モードとを備えることを特徴とする付記１０記載のリコンフィギュラブル回路システム。
（付記１２）
前記リコンフィギュラブル演算器アレイの動作の停止時に、前記リコンフィギュラブル演算器アレイから外部へのデータアクセス要求を無効化するアクセス要求無効化回路を更に含むことを特徴とする付記１０又は１１記載のリコンフィギュラブル回路システム。
（付記１３）
前記バッファ回路は、
格納個数指示レジスタと、
シフトレジスタと
を含み、前記シフトレジスタは、前記リコンフィギュラブル演算器アレイの動作が停止した時点から前記格納個数指示レジスタの格納値が示す個数分のデータを格納することを特徴とする付記１２記載のリコンフィギュラブル回路システム。
（付記１４）
前記バッファ回路は、カウンタを更に含み、前記シフトレジスタに格納されるデータのうちで前記カウンタのカウント値により選択したデータを前記リコンフィギュラブル演算器アレイに出力することを特徴とする付記１３記載のリコンフィギュラブル回路システム。
（付記１５）
前記カウンタは、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作する場合は前記カウント値をクロックに応じてカウントアップし、前記リコンフィギュラブル演算器アレイの動作が停止している期間に前記シフトレジスタがシフト動作しない際は前記カウント値を現在値に維持し、前記リコンフィギュラブル演算器アレイが動作している期間に前記シフトレジスタがシフト動作しない場合は前記カウント値をクロックに応じてカウントダウンすることを特徴とする付記１４記載のリコンフィギュラブル回路システム。
（付記１６）
前記停止制御回路は、リコンフィギュラブル演算器アレイからの停止要求及び外部からの停止要求の少なくとも１つに応答して、前記リコンフィギュラブル演算器アレイの動作を停止することを特徴とする付記１０乃至１５のいずれか一項記載のリコンフィギュラブル回路システム。
（付記１７）
前記外部バッファを第１の外部バッファとして、前記リコンフィギュラブル回路がデータ読み出し及びデータ書込みを行なう第２の外部バッファを更に含み、前記バッファ回路は、
前記リコンフィギュラブル演算器アレイの動作の停止時に前記第１の外部バッファから供給される第１のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第１のデータを前記リコンフィギュラブル演算器アレイに供給する第１のバッファ回路と、
前記リコンフィギュラブル演算器アレイの動作の停止時に前記第２の外部バッファから供給される第２のデータを一時的に格納し、前記リコンフィギュラブル演算器アレイの動作の再開時に前記格納された第２のデータを前記リコンフィギュラブル演算器アレイに供給する第２のバッファ回路と
を含むことを特徴とする付記１０乃至１６のいずれか一項記載のリコンフィギュラブル回路システム。
（付記１８）
前記データは、有効値又は無効値であるデータと、該有効値又は無効値であるデータが有効値であるか無効値であるかを示す有効指示データとを含むことを特徴とする付記１０乃至１７のいずれか一項記載のリコンフィギュラブル回路システム。
（付記１９）
複数の演算器と該演算器間を再構成可能に接続するネットワーク回路とを含むリコンフィギュラブル演算器アレイの動作を停止し、
前記リコンフィギュラブル演算器アレイの動作の停止と同時に前記リコンフィギュラブル演算器アレイから外部リソースへのデータ読み出し要求を無効化し、
前記リコンフィギュラブル演算器アレイの動作の停止後に前記外部リソースから供給される読み出しデータを、前記外部リソースの読み出しレイテンシ分の数、バッファに格納し、
前記リコンフィギュラブル演算器アレイの動作を再開するとともに前記格納されたデータを前記リコンフィギュラブル演算器アレイに供給する
各段階を含むことを特徴とするリコンフィギュラブル回路の制御方法。
【符号の説明】
【００５１】
１０  リコンフィギュラブル回路
１１  外部バッファ
１２  リコンフィギュラブル演算器アレイ
１３  停止制御回路
１４  バッファ回路
１５  要求制御回路
１６  要求制御回路
１７  シーケンサ
１８  コンフィギュレーションメモリ
【図１】
2010244238.tif 000003
【図２】
2010244238.tif 000004
【図３】
2010244238.tif 000005
【図４】
2010244238.tif 000006
【図５】
2010244238.tif 000007
【図６】
2010244238.tif 000008
【図７】
2010244238.tif 000009
【図８】
2010244238.tif 000010
【図９】
2010244238.tif 000011
【図１０】
2010244238.tif 000012
【図１１】
2010244238.tif 000013
【図１２】
2010244238.tif 000014
【図１３】
2010244238.tif 000015
【図１４】
2010244238.tif 000016