(57)【特許請求の範囲】
【請求項１】
コンフィグレーションデータに基づいて任意の演算状態に動的に構築されるリコンフィグ可能な集積回路装置において，
それぞれ演算器を有する複数の演算プロセッサエレメントと，外部メモリとデータ転送を行うメモリを有するメモリプロセッサエレメントと，前記演算プロセッサエレメントとメモリプロセッサエレメントとを任意の状態で接続するプロセッサエレメント間スイッチ群とを有する複数のクラスタと，
前記クラスタ間のデータパスを任意の状態で構築するクラスタ間スイッチ群と，
前記クラスタ間スイッチ群とは別に設けられ，前記メモリプロセッサエレメントと前記外部メモリとでデータ転送を行う外部メモリバスとを有し，
前記コンフィグレーションデータに基づいて前記演算プロセッサエレメントと，メモリプロセッサエレメントと，プロセッサエレメント間スイッチ群と，クラスタ間スイッチ群とが動的に変更可能であり，
さらに，前記複数のクラスタのメモリプロセッサエレメントからのアクセス要求に応答して，前記メモリプロセッサエレメントと外部メモリとの間で前記外部メモリバスを介してダイレクトメモリアクセスによるデータ転送を実行させるダイレクトメモリアクセス制御部を有することを特徴とするリコンフィグ可能な集積回路装置。
【請求項２】
請求項１において，
前記クラスタは，さらに，前記コンフィグレーションデータを格納するコンフィグレーションデータメモリと，前記演算プロセッサエレメント及びメモリプロセッサエレメントからの終了信号に応答して前記コンフィグレーションデータメモリから次の演算状態を構築するコンフィグレーションデータを出力させるシーケンサとを有するリコンフィグ可能な集積回路装置。
【請求項３】
請求項１において，
さらに，複数のメモリプロセッサエレメントに共通に設けられ，当該複数のメモリプロセッサエレメントからのダイレクトメモリアクセス要求を受け付け，前記ダイレクトメモリアクセス制御部に前記複数のメモリプロセッサエレメントに対して同期したダイレクトメモリアクセス要求を指令するデータフロー制御部を有するリコンフィグ可能な集積回路装置。
【請求項４】
請求項１において，
さらに，複数のメモリプロセッサエレメントに共通に設けられ，当該複数のメモリプロセッサエレメントからのダイレクトメモリアクセス要求を受け付け，前記ダイレクトメモリアクセス制御部に前記複数のメモリプロセッサエレメントに対して同期したダイレクトメモリアクセス要求を指令するデータフロー制御部を有し，
前記データフロー制御部は，単一のメモリプロセッサエレメントからのダイレクトメモリアクセス要求を受け付けた時は，当該受付に応答して前記ダイレクトメモリアクセス制御部に当該ダイレクトメモリアクセス要求を指令するリコンフィグ可能な集積回路装置。
【請求項５】
請求項１において，
前記メモリプロセッサエレメントは，前記プロセッサエレメント間スイッチ群に接続される内部バスとの内部側インターフェースと，前記外部メモリバスとの外部側インターフェースとを有し，前記外部側インターフェースを介して前記外部メモリにダイレクトメモリアクセスしながら，前記内部側インターフェースを介して前記演算プロセッサエレメントからアクセスされることを特徴とするリコンフィグ可能な集積回路装置。
【請求項６】
請求項５において，
前記メモリプロセッサエレメントは，第１及び第２のメモリバンクを有し，前記コンフィグレーションデータに基づいて前記第１及び第２のメモリバンクが前記内部側及び外部側インターフェースに交互に接続されることを特徴とするリコンフィグ可能な集積回路装置。
【請求項７】
請求項６において，
前記メモリプロセッサエレメントは，前記外部メモリと前記第１または第２のメモリバンクとのデータ転送が完了した後に，前記演算プロセッサエレメントと前記第１または第２のメモリバンクとのデータ転送を許可し，前記外部メモリと前記第１及び第２のメモリバンクのいずれとのデータ転送も完了しない場合は，前記複数の演算プロセッサエレメントに動作停止を指示するストール信号をアサートし，前記外部メモリと前記第１または第２のメモリバンクのいずれとのデータ転送が完了すると前記ストール信号をネゲートすることを特徴とするリコンフィグ可能な集積回路装置。
【請求項８】
請求項１において，
前記メモリプロセッサエレメントは，前記外部メモリとのダイレクトメモリアクセスによるデータ転送を行いながら，前記演算プロセッサエレメントとのデータ転送を受付け，前記ダイレクトメモリアクセスによるデータ転送が前記演算プロセッサエレメントとのデータ転送に追従できなくなるときに，前記複数の演算プロセッサエレメントの動作を停止するストール信号をアサートし，追従できるときに前記ストール信号をネゲートすることを特徴とするリコンフィグ可能な可能な集積回路装置。
【請求項９】
請求項１において，
前記メモリプロセッサエレメントは，第１及び第２のメモリバンクを有し，
前記メモリプロセッサエレメントは，起動時において，前記コンフィグレーションデータに基づいて，前記第１または第２のメモリバンクの一方を前記外部メモリバス側にアクセス可能状態にし，前記アクセス要求を出力することを特徴とするリコンフィグ可能な集積回路装置。
【請求項１０】
コンフィグレーションデータに基づいて所定の演算状態に動的に構築されるリコンフィグ可能な集積回路装置において，
演算器を有する演算プロセッサエレメントと，外部メモリとデータ転送を行うメモリを有するメモリプロセッサエレメントと，前記演算プロセッサエレメントとメモリプロセッサエレメントとを任意の状態で接続するプロセッサエレメント間スイッチ群とを有する複数のクラスタと，
前記クラスタ間のデータパスを任意の状態で構築するクラスタ間スイッチ群と，
前記クラスタ間スイッチ群とは別に設けられ，前記メモリプロセッサエレメントと前記外部メモリとでデータ転送を行う外部メモリバスとを有し，
前記コンフィグレーションデータに基づいて前記演算プロセッサエレメントと，メモリプロセッサエレメントと，プロセッサエレメント間スイッチ群と，クラスタ間スイッチ群とが動的に変更可能であり，
さらに，前記複数のクラスタのメモリプロセッサエレメントからのアクセス要求に応答して，前記メモリプロセッサエレメントと外部メモリとの間で前記外部メモリバスを介してダイレクトメモリアクセスによるデータ転送を実行させるダイレクトメモリアクセス制御部を有し，
前記メモリプロセッサエレメントは，第１及び第２のメモリバンクを有し，当該第１または第２のメモリバンクの一方が前記外部メモリとの間で前記外部メモリバスを介してダイレクトメモリアクセスによるデータ転送中に，前記第１または第２のメモリバンクの他方が前記演算プロセッサエレメントとデータ転送を行うことを特徴とするリコンフィグ可能な集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，再構築可能（リコンフィギュラブル，以下単にリコンフィグ可能と称する。）な集積回路装置に関し，特に，リコンフィグ可能な集積回路装置内に設けられ外部メモリとデータ転送を行う内部メモリの新規な構成に関する。
【背景技術】
【０００２】
リコンフィグ可能な集積回路装置は，複数のプロセッサエレメントと，当該プロセッサエレメント間を接続するネットワークとを有し，外部または内部のイベントに応答して，シーケンサがプロセッサエレメントとネットワークにコンフィグレーションデータを与え，当該コンフィグレーションデータに応じてプロセッサエレメントとネットワークにより任意の演算状態または演算回路を構築する。従来の伝統的なプログラム可能なマイクロプロセッサは，メモリに記憶されている命令を順番に読み出し逐次的に処理する。このようにマイクロプロセッサは，１つのプロセッサで同時に実行できる命令は数個に限定されるため，処理能力に一定の限界がある。
【０００３】
それに対して，近年において提案されているリコンフィグ可能な集積回路装置は，加算器，乗算器，比較器などの機能を有するＡＬＵや，遅延回路，カウンタなどの複数種類のプロセッサエレメントを複数個あらかじめ設けておき，プロセッサエレメント間を接続するネットワークを設け，複数のプロセッサエレメントとネットワークを，シーケンサを有する状態遷移制御部からのコンフィグレーションデータによって所望の構成に再構築し，その演算状態で所定の演算を実行する。一つの演算状態におけるデータ処理が完了すると，別のコンフィグレーションデータにより別の演算状態が構築され，その状態で異なるデータ処理が行われる。
【０００４】
このように，異なる演算状態を動的に構築することで，大量のデータに対するデータ処理能力を向上させ，全体の処理効率を高めることができる。かかるリコンフィグ可能な集積回路装置については，例えば特許文献１に記載されている。
【特許文献１】特開２００１−３１２４８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記従来のリコンフィグ可能な集積回路装置では，複数のプロセッサエレメントのアレイをプロセッサ間を接続するスイッチ群で囲み，状態遷移管理部がプロセッサエレメントやスイッチ群にコンフィグレーションデータを供給して任意の演算状態にする。また，プロセッサエレメント群には，外部メモリからデータが入力され，演算状態にされたプロセッサエレメント群が入力データに対して所定のデータ処理を実行し，それにより得られたデータが出力される。
【０００６】
上記の集積回路装置では，外部メモリからデータ処理に必要なデータが一括して読み出されて内部メモリに格納され，その後，ある演算状態にされたプロセッサエレメント群とスイッチ群とが読み出された全てのデータに対してデータ処理を行っている。
【０００７】
しかしながら，リコンフィグ可能な集積回路装置は，動的にコンフィグレーションされた所定の数のプロセッサエレメントにより，異なるアプリケーションを実行する。そのため，各プロセッサエレメントには必要とするタイミングで必要な量のデータを外部メモリから読み出し，また書き込むことが求められる。ところが，従来技術では，データ転送はプロセッサエレメント間を接続するスイッチ群によるデータパスを利用して行われ，画一的なタイミングでしか外部メモリとのデータ転送ができない。
【０００８】
また，外部メモリから読み出したデータや外部メモリに書き込むデータを格納する内部メモリが，複数のプロセッサエレメントに対して所定数設けられているが，ユーザにより構築される演算状態は千差万別であり，いかなる数の内部メモリが必要か，いかなる入出力特性の内部メモリが必要かなどは，予測困難である。したがって，リコンフィグ可能な集積回路装置では，内部メモリの構成と動作により柔軟性の高いものが求められる。
【０００９】
そこで，本発明の目的は，柔軟性の高い内部メモリの構成と動作を可能にするリコンフィグ可能な集積回路装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために，本発明の第１の側面によれば，コンフィグレーションデータに基づいて任意の演算状態に動的に構築されるリコンフィグ可能な集積回路装置において，
それぞれ演算器を有する複数の演算プロセッサエレメントと，外部メモリとデータ転送を行うメモリを有するメモリプロセッサエレメントと，前記演算プロセッサエレメントとメモリプロセッサエレメントとを任意の状態で接続するプロセッサエレメント間スイッチ群とを有する複数のクラスタと，
前記クラスタ間のデータパスを任意の状態で構築するクラスタ間スイッチ群と，
前記メモリプロセッサエレメントと前記外部メモリとでデータ転送を行う外部メモリバスとを有し，
前記コンフィグレーションデータに基づいて前記演算プロセッサエレメントと，メモリプロセッサエレメントと，プロセッサエレメント間スイッチ群と，クラスタ間スイッチ群とが動的に変更可能であり，
さらに，前記複数のクラスタのメモリプロセッサエレメントからのアクセス要求に応答して，前記メモリプロセッサエレメントと外部メモリとの間でダイレクトメモリアクセスによるデータ転送を実行させるダイレクトメモリアクセス制御部を有することを特徴とする。
【００１１】
上記の第１の側面によれば，クラスタ内に設けられるメモリプロセッサエレメントが，クラスタ間のスイッチ群とは異なる外部メモリバスを介して外部メモリとダイレクトメモリアクセスによりデータ転送をすることができ，リコンフィグされる演算状態に適したタイミングで外部メモリ内のデータに対してリコンフィグされた演算を実行することができる。
【００１２】
上記第１の側面において，好ましい態様によれば，前記クラスタは，さらに，前記コンフィグレーションデータを格納するコンフィグレーションデータメモリと，前記演算プロセッサエレメント及びメモリプロセッサエレメントからの終了信号に応答して前記コンフィグレーションデータメモリから次の演算状態を構築するコンフィグレーションデータを出力させるシーケンサとを有する。
【００１３】
上記第１の側面において，別の好ましい態様によれば，さらに，複数のメモリプロセッサエレメントに共通に設けられ，当該複数のメモリプロセッサエレメントからのダイレクトメモリアクセス要求を受け付け，前記ダイレクトメモリアクセス制御部に前記複数のメモリプロセッサエレメントに対して同期したダイレクトメモリアクセス要求を指令するデータフロー制御部を有する。かかるデータフロー制御部により，複数のメモリプロセッサエレメントからのアクセス要求を同期して実行することができる。
【００１４】
上記第１の側面において，別の好ましい態様によれば，前記メモリプロセッサエレメントは，前記プロセッサエレメント間スイッチ群に接続される内部バスとの内部側インターフェースと，前記外部メモリバスとの外部側インターフェースとを有し，前記外部側インターフェースを介して前記外部メモリにダイレクトメモリアクセスしながら，前記内部側インターフェースを介して前記演算プロセッサエレメントからアクセスされることを特徴とする。この態様によれば，外部メモリと演算プロセッサエレメントとの間でシームレスなデータ転送を行うことができる。
【００１５】
上記第１の側面において，さらに別の好ましい態様によれば，前記メモリプロセッサエレメントは，前記外部メモリとのダイレクトメモリアクセスによるデータ転送を行いながら，前記演算プロセッサエレメントとのデータ転送を受付け，前記ダイレクトメモリアクセスによるデータ転送が前記演算プロセッサエレメントとのデータ転送に追従できなくなるときに，前記複数の演算プロセッサエレメントの動作を停止するストール信号をアサートし，追従できるときに前記ストール信号をネゲートすることを特徴とする。この態様によれば，外部メモリと演算プロセッサエレメントとの間でシームレスなデータ転送ができなくなると，演算プロセッサエレメントでの動作を停止させて，誤動作を回避することができる。
【００１６】
上記の目的を達成するために，本発明の第２の側面によれば，コンフィグレーションデータに基づいて所定の演算状態に動的に構築されるリコンフィグ可能な集積回路装置において，
演算器を有する演算プロセッサエレメントと，外部メモリとデータ転送を行うメモリを有するメモリプロセッサエレメントと，前記演算プロセッサエレメントとメモリプロセッサエレメントとを任意の状態で接続するプロセッサエレメント間スイッチ群とを有する複数のクラスタと，
前記クラスタ間のデータパスを任意の状態で構築するクラスタ間スイッチ群と，
前記メモリプロセッサエレメントと前記外部メモリとでデータ転送を行う外部メモリバスとを有し，
前記コンフィグレーションデータに基づいて前記演算プロセッサエレメントと，メモリプロセッサエレメントと，プロセッサエレメント間スイッチ群と，クラスタ間スイッチ群とが動的に変更可能であり，
さらに，前記複数のクラスタのメモリプロセッサエレメントからのアクセス要求に応答して，前記メモリプロセッサエレメントと外部メモリとの間でダイレクトメモリアクセスによるデータ転送を実行させるダイレクトメモリアクセス制御部を有し，
前記メモリプロセッサエレメントは，第１及び第２のメモリバンクを有し，当該第１または第２のメモリバンクの一方が前記外部メモリとの間でダイレクトメモリアクセスによるデータ転送中に，前記第１または第２のメモリバンクの他方が前記演算プロセッサエレメントとデータ転送を行うことを特徴とする。
【００１７】
上記第２の側面によれば，クラスタ間スイッチ群とは別の外部メモリバスを介して，外部メモリと演算プロセッサエレメントとの間でシームレスなデータ転送を任意のタイミングで行うことができる。
【発明の効果】
【００１８】
上記の発明によれば，各クラスタ内に設けられたメモリプロセッサエレメントが，クラスタ間のデータパスとは別に外部メモリへのダイレクトメモリアクセスによるデータ転送を可能にするので，リコンフィグ可能な集積回路装置におけるメモリプロセッサエレメントへのデータ転送の柔軟性を高くし，データ転送の効率化を図ることができる。
【発明を実施するための最良の形態】
【００１９】
以下，図面にしたがって本発明の実施の形態について説明する。但し，本発明の技術的範囲はこれらの実施の形態に限定されず，特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００２０】
図１は，本実施の形態におけるリコンフィグ可能な集積回路装置の一部を構成するクラスタの構成図である。クラスタ１０は，状態管理を行うシーケンサＳＥＱと，コンフィグレーションデータＣＤを格納するコンフィグレーションデータメモリ１４と，コンフィグレーションデータＣＤにより任意の回路構成に構築（コンフィグレーション）されるプロセッサエレメントネットワーク部１６とを有する。コンフィグレーションデータメモリ１４には，図示しないコンフィグレーションデータロード部からコンフィグレーションデータＣＤがロードされる。
【００２１】
プロセッサエレメントネットワーク部１６は，複数のプロセッサエレメント（以下しばしばＰＥと称する）ＰＥ０〜ＰＥ５と，ＰＥ間を接続するセレクタなどのスイッチ群からなるＰＥ間スイッチ群２０と，他のクラスタとのデータ転送するためのインターフェースとして，入力ポート部２２と出力ポート部２４とを有する。これらの入力・出力ポート部２２，２４は，クラスタ間スイッチ群３０に接続されている。図１の例によれば，プロセッサエレメントＰＲ０〜ＰＥ３は全て演算ＰＥであり，ＡＬＵ，加算器，比較器などを内部に有する。また，プロセッサエレメントＰＥ４は遅延回路やカウンタなどの他のＰＥであり，プロセッサエレメントＰＥ５はＲＡＭを内蔵するメモリＰＥである。
【００２２】
これらのプロセッサエレメントＰＥ０〜ＰＥ５には，コンフィグレーションデータメモリ１４からコンフィグレーションデータＣＤ０〜ＣＤ５が供給され，それらＰＥ内の図示しないレジスタにコンフィグレーションデータが格納される。そして，このレジスタに設定されたコンフィグレーションデータＣＤ０〜ＣＤ５に基づいて，各ＰＥ内の回路構成が動的に構築される。同様に，ＰＥ間スイッチ群２０にもコンフィグレーションデータメモリ１４からコンフィグレーションデータＣＤｓが供給され，そのデータに基づいて内蔵するスイッチ群の構成が構築されてＰＥ間のデータパスが動的に構築される。クラスタ間スイッチ群３０も同様にコンフィグレーションデータＣＤｃに基づいて動的に構築され，クラスタ間のデータパスが構築される。
【００２３】
クラスタ内のメモリプロセッサエレメントＰＥ５は，ＰＥ間スイッチ群２０を介して各ＰＥ０〜ＰＥ４とデータ転送可能にされる。そのために，メモリプロセッサエレメントＰＥ５は内部バスＩ−ＢＵＳに接続される。一方，メモリプロセッサエレメントＰＥ５は，外部メモリＥ−ＭＥＭと外部バスＥ−ＢＵＳ１，Ｅ−ＢＵＳ２を介して直接データ転送可能にされ，かかるメモリアクセスは，ダイレクトメモリアクセス制御部ＤＭＡＣによる制御により，クラスタ間スイッチ群３０とは別のバス経由で直接行われる。したがって，メモリプロセッサエレメントＰＥ５は，外部メモリＥ−ＭＥＭとの間で，直接データ転送を行うことができ，クラスタ間のデータパスの動作と独立したタイミングでデータ転送を行うことができる。
【００２４】
また，各プロセッサエレメントＰＥ０〜ＰＥ５からは終了信号ＣＳ０〜ＣＳ５が出力され，この終了信号に基づいて切替信号生成部１２が適宜切替信号ＳＷ１を出力する。この切替信号ＳＷ１に応答して，シーケンサＳＥＱがコンフィグレーションデータメモリ１４に新たなアドレスと切替信号ＳＷ２を出力し，それに応答して，新たなコンフィグレーションデータが出力され，ＰＥネットワーク部１６内の回路構成が新たに構築される。
【００２５】
図２は，本実施の形態におけるＰＥネットワーク部の構成例を示す図である。演算プロセッサエレメントＰＥ０〜ＰＥ３と，メモリプロセッサエレメントＰＥ５と，それ以外のプロセッサエレメントＰＥ４とは，ＰＥ間スイッチ群２０内のスイッチであるセレクタ４１を介して接続可能に構成されている。各プロセッサエレメントＰＥ０〜ＰＥ５は，コンフィグレーションデータＣＤ０〜ＣＤ５に基づいて任意の構成に構築可能であり，また，ＰＥ間スイッチ群２０内のセレクタ４１（４１ａ，４１ｂ，４１ｃ）も，コンフィグレーションデータＣＤｓに基づいて任意の構成に構築可能である。
【００２６】
セレクタ４１は，図中左下に一例として示されるとおり，コンフィグレーションデータＣＤを格納するレジスタ４２と，レジスタ４２のデータに応じて入力を選択するセレクタ回路４３と，セレクタ回路４３の出力をクロックＣＫに同期してラッチするフリップフロップ４４とで構成される。
【００２７】
図３，図４は，本実施の形態におけるＰＥネットワーク部のコンフィグレーションデータにより構築された回路構成例を示す図である。これらの図には，演算回路を動的に構築可能な演算プロセッサエレメントＰＥ０〜ＰＥ３，ＰＥ６が，ＰＥ間スイッチ群２０により接続されて，所定の演算を高速に行う専用演算回路に構築される。なお，プロセッサエレメントＰＥ６は，図１，２には示していない。
【００２８】
図３の例は，入力データａ，ｂ，ｃ，ｄ，ｅ，ｆに対して，以下の演算式を実行する専用演算回路に構築された例である。
（ａ＋ｂ）＋（ｃ−ｄ）＋（ｅ＋ｆ）
このコンフィグレーションの例によれば，プロセッサエレメントＰＥ０は，Ａ＝ａ＋ｂの演算回路に構築され，プロセッサエレメントＰＥ１は，Ｂ＝ｃ−ｄの演算回路に構築され，プロセッサエレメントＰＥ２はＣ＝ｅ＋ｆの演算回路に構築され，プロセッサエレメントＰＥ３はＤ＝Ａ＋Ｂの演算回路に構築され，プロセッサエレメントＰＥ６はＥ＝Ｄ＋Ｃの演算回路に構築される。各データａ〜ｆは，図示しないメモリプロセッサエレメントや外部のクラスタから供給され，プロセッサエレメントＰＥ６の出力が演算結果Ｅとしてメモリプロセッサエレメントや外部のクラスタに出力される。
【００２９】
プロセッサエレメントＰＥ０，ＰＥ１，ＰＥ２が平行して演算処理し，その演算結果に対してプロセッサエレメントＰＥ３がＤ＝Ａ＋Ｂの演算処理し，最後にプロセッサエレメントＰＥ６がＥ＝Ｄ＋Ｃの演算処理を行う。このように，専用の演算回路を構築することで，並列演算を可能にし，演算処理の効率を高めることができる。
【００３０】
各演算プロセッサエレメントは，内部にＡＬＵ，加算器，乗算器，比較器などを内蔵し，コンフィグレーションデータＤＣに基づいて任意の演算回路に再構築可能である。そして，図３のように構築することで，上記の演算を専用に行う専用演算回路を構築することができる。かかる専用演算回路を構築することで，複数の演算を並行して実行することができ，演算効率を高めることができる。
【００３１】
図４の例は，入力データａ〜ｄに対して，（ａ＋ｂ）＊（ｃ＋ｄ）の演算を実行する専用演算回路に構築された例である。プロセッサエレメントＰＥ０がＡ＝ａ＋ｂの演算回路に構築され，プロセッサエレメントＰＥ１がＢ＝ｃ−ｄの演算回路に構築され，プロセッサエレメントＰＥ３がＣ＝Ａ＊Ｂの演算回路に構築され，演算結果Ｃがメモリプロセッサエレメントまたは外部のクラスタに出力される。この場合も，プロセッサエレメントＰＥ０，ＰＥ１が並列に演算処理し，その演算結果Ａ，Ｂに対してプロセッサエレメントＰＥ３がＣ＝Ａ＊Ｂの演算処理を行う。よって，専用演算回路に構築することで，上記の演算効率を高めることができ，大量のデータに対する演算効率を高めることができる。
【００３２】
図５は，本実施の形態におけるリコンフィグ可能な集積回路装置の構成図である。図５には，複数のクラスタＣＬＳ０〜ＣＬＳ３が設けられ，それらクラスタ間の接続を行うクラスタ間スイッチ群３０がクラスタ間の領域に配置されている。このクラスタ間スイッチ群３０をコンフィグレーションデータＣＤにより構築することで，複数のクラスタを組み合わせた任意の演算回路を動的に構築することができる。
【００３３】
図５の例では，各クラスタＣＬＳ０〜ＣＬＳ３内にメモリプロセッサエレメントＰＥ−ＲＡＭが設けられている。クラスタ内には複数のメモリプロセッサエレメントが設けられる場合もあり，メモリプロセッサエレメントが設けられない場合もある。これらのメモリＰＥは，外部バスＥ−ＢＵＳ１を介してダイレクトメモリアクセス制御部ＤＭＡＣに接続され，このアクセス制御部ＤＭＡＣを介して外部メモリＥ−ＭＥＭとダイレクトメモリアクセスによるデータ転送を行う。この外部メモリＥ−ＭＥＭは，高速メモリの一例として例えばＤＤＲ−ＳＤＲＡＭ（Double Data Rate Synchronous DRAM）が使用されている。さらに，複数のメモリプロセッサエレメントＰＥ−ＲＡＭに対して，共通のデータフロー制御部４０が設けられている。各メモリプロセッサエレメントは，アクセス要求ＤＲ０〜ＤＲ３を発行し，このアクセス要求に応答してデータフロー制御部４０が制御部ＤＭＡＣにアクセスコマンドを与えて，アクセス要求を出したメモリプロセッサエレメントとのＤＭＡによるデータ転送を実行させる。
【００３４】
データフロー制御部４０は，複数のメモリプロセッサエレメントからのアクセス要求を受け付け，それら複数のメモリプロセッサエレメントと外部メモリとのＤＭＡデータ転送を同期して実行させることができる。つまり，アクセス制御部ＤＭＡＣは，データフロー制御部４０からのアクセスコマンドＡＣＭＤに基づいて，複数のメモリプロセッサエレメントとのＤＭＡデータ転送を，ラウンドロビン形式で順次同期して実行する。
【００３５】
このように，クラスタ内のメモリプロセッサエレメントは，クラスタ内の演算プロセッサエレメントにより構築された演算回路が処理するデータを外部メモリＥ−ＭＥＭからＤＭＡ転送し，演算処理されたデータを外部メモリＥ−ＭＥＭにＤＭＡ転送する。また，このＤＭＡ転送は，クラスタ間を接続するクラスタ間スイッチ群３０とは別の外部バスＥ−ＢＵＳ１，Ｅ−ＢＵＳ２を介して直接行われる。よって，リコンフィグ可能な集積回路装置の場合，クラスタ間スイッチ群３０が動的にその接続構造を変更されても，各メモリプロセッサエレメントと外部メモリとの間は，クラスタ間スイッチ群３０とは別の経路で，且つ各メモリプロセッサエレメントの必要とするタイミングでデータ転送をすることができ，動的に構築されるクラスタ及び複数クラスタに最適なデータ転送を実現することができる。
【００３６】
図６は，本実施の形態におけるメモリプロセッサエレメントの一例を示す構成図である。メモリプロセッサエレメントは，外部メモリとクラスタ内の演算プロセッサエレメントとの間でシームレスなデータ転送を可能にするために，第１のメモリバンクＢＮＫ０と第２のメモリバンクＢＮＫ１とを有し，それらとＰＥ間スイッチ群２０との間に内部側インターフェース５０と，外部バスＥ−ＢＵＳ１との間に外部側インターフェース５２とを有する。各メモリバンクＢＮＫ０，ＢＮＫ１は，それぞれ４つの１６ビット幅のＲＡＭを有する。そして，内部側インターフェース５０はＰＥ間スイッチ群２０に接続される内部バスＩ−ＢＵＳに接続され，コンフィグレーションデータＣＤに基づいて動的に異なる入出力バスインターフェース構造に構築される。また，外部側インターフェース５２は外部バスＥ−ＢＵＳ１に接続され，これもコンフィグレーションデータＣＤに基づいて動的に異なる入出力バスインターフェース構造に構築される。構築される入出力バスインターフェース構造については，後に詳述する。
【００３７】
第１及び第２のメモリバンクＢＮＫ０，ＢＮＫ１は，一方のメモリバンクが内部の演算プロセッサエレメントＰＥ／ＡＬＵとデータ転送しながら，他方のメモリバンクが外部メモリＥ−ＭＥＭとデータ転送を行い，かつ両メモリバンクは交互にデータ転送を行うことができる。そのために，両メモリバンクＢＮＫ０，ＢＮＫ１と内部側及び外部側インターフェース５０，５２との間には，セレクタＳＥＬが設けられ，これらのセレクタＳＥＬがコンフィグレーションデータＣＤに基づいて設定される。これにより，前記第１及び第２のメモリバンクを内部側及び外部側インターフェースに交互に接続させることができる。なお，インターフェース５０，５２と各メモリバンクＢＮＫ０，ＢＮＫ１との間の信号線は，１６ビットデータ線，アドレス線，その他必要な制御線を全て含むものとする。
【００３８】
メモリプロセッサエレメント内には，メモリバンクの切替制御やＤＭＡリクエストの制御などを行うメモリ制御部５４と，内部の演算プロセッサエレメントＰＥ／ＡＬＵへの演算実行制御などを行う演算制御部５６とを有する。メモリ制御部５４は，メモリバンクの状態を監視し，外部メモリと内部の演算プロセッサエレメントとのシームレスなデータ転送を行うことができるように，メモリバンクの切替制御，ＤＭＡリクエスト，演算プロセッサエレメントを動作停止するためのストール信号ＳＴＲのアサートとネゲートを行う。このストール信号ＳＴＲに応答して，演算制御部５６は，演算プロセッサエレメントの動作の開始や停止を制御する。
【００３９】
図７，図８は，本実施の形態におけるメモリプロセッサエレメント内の２つのメモリバンクの切替動作を説明する図である。図中メモリプロセッサエレメントＰＥ／ＲＡＭ内には，２つのメモリバンクＢＮＫ０，ＢＮＫ１と，メモリ制御部５４（図６参照）がメモリバンクの切替制御に使用するアクセス終了レジスタＥＮＤ−ＲＥＧとが示されている。このアクセス終了レジスタＥＮＤ−ＲＥＧは２つ設けられ，それぞれ第１及び第２のメモリバンクのアクセスの状態を示すフラグが格納され，例えばアクセスが終了して終了信号を受信した時に終了状態「０」にされ，アクセス可能状態（レディー）になった時にレディー状態「１」にされる。そして，この２つのレジスタ値を監視することで，メモリ制御部５４（図４）は２つのメモリバンクＢＮＫ０，ＢＮＫ１の切替制御を行う。
【００４０】
以下，図６，７，８を参照して起動時の初期起動以降の動作を説明する。起動時はリセット解除後にシーケンサＳＥＱが初期起動に対応するアドレスを出力し，コンフィグレーションデータメモリ１４（図６）から初期起動用のコンフィグレーションデータが出力され，クラスタ内のプロセッサエレメントＰＥとＰＥ間スイッチ群２０が初期回路構成に構築される。この初期起動により，図７（Ａ）に示されるように，アクセス終了レジスタＥＮＤ−ＲＥＧには初期値が設定される。この例では，第１のメモリバンクＢＮＫ０のレジスタがレディー状態（フラグ「０」），第２のバンクメモリＢＮＫ１のレジスタがアクセス終了状態（フラグ「１」）になっている。さらに，この初期起動により，第１のメモリバンクＢＮＫ０が外部側インターフェース５２側に接続され，第２のメモリバンクＢＮＫ１が内部側インターフェース５０に接続されるように，セレクタＳＥＬの構成が構築される。
【００４１】
この初期起動の後，メモリ制御部５４は，アクセス終了レジスタを参照して，外部メモリに対するアクセス要求ＤＭＡＲを出力する。前述のとおり，アクセス要求ＤＭＡＲは，データフロー制御部４０（図５）を経由して，ダイレクトメモリアクセス制御部ＤＭＡＣに与えられ，外部メモリＥ−ＭＥＭと第１のメモリバンクＢＮＫ０との間で直接データ転送が開始される。具体的には，外部メモリＥ−ＭＥＭから読み出されたデータが外部バスを経由して直接第１のメモリバンクＢＮＫ０に転送され書き込まれる。初期起動時のアクセス要求ＤＭＡＲは，前述したとおり複数のメモリプロセッサエレメントから出力されるので，複数のダイレクトメモリアクセスによるデータ転送が同期して実行される。
【００４２】
次に，図７（Ｂ）に示されるように，外部メモリＥ−ＭＥＭから第１のメモリバンクＢＮＫ０へのデータ転送が終了すると，ＤＭＡ制御部ＤＭＡＣからアクセス終了信号ＥＮＤ１が出され，それに応答してアクセス終了レジスタＥＮＤ−ＲＥＧの第１のメモリバンクに対応するビットがアクセス終了状態（フラグ「１」）になる。このように両レジスタがいずれもアクセス終了状態（フラグ「１」）になったとき，メモリ制御部５４は状態終了信号ＣＳを発行し，シーケンサＳＥＱから次のアドレスＡｄｄを出力させ，コンフィグレーションデータメモリ１４から新たなコンフィグレーションデータＣＤを出力させ，それにより，第１及び第２のメモリバンクＢＮＫ０，ＢＮＫ１を切り替える。つまり，第１のメモリバンクＢＮＫ０は外部側インターフェース５２に接続され，第２のメモリバンクＢＮＫ１は内部側インターフェース５０に接続される。
【００４３】
次に，図７（Ｃ）に示されるように，メモリ制御部５４は，２つのメモリバンクを切り替えると，アクセス終了レジスタＥＮＤ−ＲＥＧをクリアし，共にレディー状態（フラグ「０」）にする。このレディー状態に応答して，メモリ制御部５４は，外部メモリへのアクセス要求ＤＭＡＲを出力し，それに基づき，ＤＭＡ制御部ＤＭＡＣは外部メモリＥ−ＭＥＭと第２のメモリバンクＢＮＫ１との間のデータ転送を制御する。この場合のアクセス制御ＤＭＡＲは，初期起動時と異なりアクセスが必要となったメモリプロセッサエレメントのタイミングで発行され，オンデマンドでデータ転送が実行される。メモリ制御部５４は，同時に，内部の演算プロセッサエレメントが実行可能状態であることを示す信号ＡＬＵ−ＥＮを出力し，それに応答して，演算制御部５６は，内部の演算プロセッサエレメントＰＥ／ＡＬＵに演算開始信号ＡＬＵ−ＳＴを出力し，演算プロセッサエレメントの演算処理を開始させる。これにより，内部の演算プロセッサエレメントＰＥ／ＡＬＵは，第１のメモリバンクＢＮＫ０にアクセスして，データを読み出し，読み出したデータに対して演算処理を実行する。
【００４４】
次に，図８（Ａ）に示されるように，第２のメモリバンクＢＮＫ１と外部メモリＥ−ＭＥＭとのデータ転送が終了すると，アクセス終了信号ＥＮＤ１に応答して，アクセス終了レジスタＥＮＤ−ＲＥＧがアクセス終了状態（フラグ「１」）にされる。通常，外部メモリとのダイレクトメモリアクセスはデータバス幅が広く高速データ転送であり，内部の演算プロセッサエレメントとのデータ転送よりも先に終了する。
【００４５】
そして，図８（Ｂ）に示されるように，やがて，内部の演算プロセッサエレメントＰＥ／ＡＬＵからのアクセスも終了し，アクセス終了信号ＥＮＤ２によりアクセス終了レジスタＥＮＤ−ＲＥＧの残りのフラグもアクセス終了状態（フラグ「１」）にされる。これに応答して，メモリ制御部５４は，状態終了信号ＣＳを出力し，コンフィグレーションデータメモリ１４から出力されるコンフィグレーションデータＣＤにより，第１及び第２のメモリバンクＢＮＫ０，ＢＮＫ１の内部側と外部側のインターフェースとの接続を置き換える。
【００４６】
そして，図８（Ｃ）に示されるように，メモリ制御部５４が再度ダイレクトメモリアクセス要求ＤＭＡＲを出力して，第１のメモリバンクＢＮＫ０と外部メモリＥ−ＭＥＭとのデータ転送を開始させ，さらに，演算制御部５６が演算開始信号ＡＬＵ−ＳＴを出力して，内部の演算プロセッサエレメントＰＥ／ＡＬＵから第２のメモリバンクＢＮＫ１へのアクセスを開始させる。
【００４７】
以上のように，メモリ制御部５４は，第１及び第２のメモリバンクを交互に切り替えて，外部メモリＥ−ＭＥＭから内部の演算プロセッサエレメントへのシームレスなデータ転送を可能にする。特に，外部メモリとのダイレクトメモリアクセスは内部の演算プロセッサエレメントによるアクセスよりも高速であるので，演算プロセッサエレメントは，シームレスでデータを読み出して演算処理することができる。
【００４８】
図９は，本実施の形態におけるメモリプロセッサエレメント内の２つのメモリバンクの切替動作を説明する図である。ここでは，シームレスなデータ転送に支障が生じた時の制御について説明する。外部メモリとの直接データ転送は高速に行われるので，通常は，一方のメモリバンクが内部の演算ＰＥとデータ転送を完了する前に，他方のメモリバンクの外部メモリとのデータ転送を終了する。そして，内部演算ＰＥとのデータ転送の完了を待って，メモリバンクの切替制御が行われ，それにより外部メモリと内部の演算ＰＥとの間のシームレスなデータ転送を可能にする。ところが，何らかの理由により内部の演算ＰＥとのデータ転送が先に完了する場合がある。
【００４９】
図９（Ａ）に示されるように，第１のメモリバンクＢＮＫ０から内部の演算ＰＥへのデータ転送が先に完了すると，終了信号ＥＮＤ２によりアクセス終了レジスタＥＮＤ−ＲＥＧがアクセス終了状態（フラグ「１」）にされる。これに応答して，メモリ制御部５４は，演算制御部５６にストール信号ＳＴＲをアサートし，それにより演算ＰＥアレイはそのパイプライン処理を一旦停止する。つまり，メモリＰＥ内からデータを読み出すことができなくなると，演算ＰＥアレイのパイプライン処理を行うことができず，演算処理に支障をきたすからである。
【００５０】
そして，図９（Ｂ）に示されるように，第２のメモリバンクＢＮＫ１のデータ転送が完了すると，終了信号ＥＮＤ１によりアクセス終了レジスタＥＮＤ−ＲＥＧがアクセス終了状態にされる。その結果，メモリ制御部５４は，状態終了信号ＣＳを出力し，コンフィグレーションデータＣＤによりメモリバンクを切り替える。その後，図９（Ｃ）に示されるように，メモリ制御部５４は，アクセス要求ＤＭＡＲを出力して，第１のメモリバンクＢＮＫ０に外部メモリとのデータ転送を開始させ，ストール信号をネゲートして，内部の演算ＰＥアレイを動作再開させ，その結果，第２のメモリバンクＢＮＫ１は内部の演算ＰＥとのデータ転送を開始する。
【００５１】
このように，専用の演算回路が構築されてデータの演算処理がパイプライン処理されているので，メモリ制御部５４は，２つのメモリバンクのアクセス状態を監視して，データのシームレスな転送が不可能になると，内部の演算ＰＥに対してパイプライン処理を停止するストール信号をアサートする。これにより，パイプライン処理に支障が生じるのを未然に防ぐことができる。そして，シームレスな転送が可能になると，メモリ制御部５４はストール信号をネゲートし，パイプライン処理を再開させる。
【００５２】
図１０，図１１は，本実施の形態におけるメモリプロセッサエレメント内の２つのメモリバンクの切替動作を説明する図である。ここでは，内部の演算ＰＥから外部メモリＥ−ＭＥＭへのデータ転送をメモリＰＥを経由して行う例である。
【００５３】
図１０（Ａ）では，演算ＰＥが第１のメモリバンクＢＮＫ０にデータを書き込んでいる。図１０（Ｂ）でそのデータ書き込みが完了すると終了信号ＥＮＤ２により，アクセス終了レジスタＥＮＤ−ＲＥＧが共にアクセス終了状態（フラグ「１」）になる。これに応答して，メモリ制御部５４は，状態終了信号ＣＳを出力し，コンフィグレーションデータＣＤに基づき２つのメモリバンクの切替を行わせる。そして，図１０（Ｃ）のように，アクセス要求ＤＭＡＣにより第１のメモリバンクＢＮＫ０に外部メモリと直接データ転送を開始させ，演算ＰＥへの演算スタート信号ＡＬＵ−ＳＴにより演算ＰＥから第２のメモリバンクＢＮＫ１へのデータ書き込みを開始させる。
【００５４】
次に，図１１（Ａ）のように，第１のメモリバンクＢＮＫ０のデータ転送が先に完了し，図１１（Ｂ）のように演算ＰＥからのデータ書き込みが終了する。そこで，メモリ制御部５４が２つのメモリバンクを切り替えて，図１１（Ｃ）のように切り替えられたメモリバンクのデータ転送がそれぞれ開始する。
【００５５】
以上のとおり，演算ＰＥから外部メモリへのデータ転送もメモリＰＥを介してシームレスに行われる。さらに，途中でシームレスなデータ転送が不可能になると，ストール信号がネゲートされて，演算ＰＥアレイがパイプライン処理を停止し，データ転送可能になるとパイプライン処理を再開する。
【００５６】
図１２は，本実施の形態におけるメモリプロセッサエレメントにおける制御部の構成図である。また，図１３は，その制御部の状態遷移図である。図１２の例では，同じクラスタ内にメモリユニット６０に複数のメモリプロセッサエレメントＲＡＭ−ＰＥ０〜ＰＥｎを有し，それぞれに対応して演算プロセッサエレメントのアレイＰＥ／ＡＬＵ−ＡＲＲＡＹが構築されている。各メモリＰＥ内に，メモリ制御部５４としてバンク切替制御部５４１と，ＤＭＡ転送実行判定部５４２とを有し，演算制御部５６としてＡＬＵ演算実行判定部５６１を有する。また，複数のメモリＰＥに共通に，演算制御部５６としてＡＬＵ演算制御部５６２を有し，また，メモリ制御部５４としてＤＭＡ転送制御部５４３を有する。メモリＰＥ内の第１及び第２のメモリバンクＢＮＫ０，ＢＮＫ１は，外部バスを介してアクセス制御部ＤＭＡＣと，クラスタ内部のＰＥ間スイッチ群ＰＥ−ＳＷを介して演算プロセッサエレメントアレイＰＥ／ＡＬＵ−ＡＲＲＡＹと，それぞれ交互にデータ転送可能に構成されている。
【００５７】
図１３の状態遷移図を参照しながら制御の流れを説明する。前述したとおり，まず，メモリプロセッサエレメントＲＡＭ−ＰＥが起動し，コンフィグレーションデータＣＤに基づき所望の回路構成に構築される（Ｃ１０）。この起動により，アクセス終了レジスタＥＮＤ−ＲＥＧが初期値のフラグに設定され，そのフラグ状態によりメモリバンクが初期状態になる（Ｃ１２）。
【００５８】
また，メモリプロセッサエレメントＲＡＭ−ＰＥの起動後の動作中，アクセス終了レジスタＥＮＤ−ＲＥＧの状態（両フラグ「１」）により，バンク切替制御部５４１がメモリバンクの切替制御を行い（Ｃ１２），それによりメモリバンクが切り替えられる（Ｃ１４）。さらに，メモリバンクを切り替える時に，それに伴って演算ＰＥの回路構成が切り替えられる場合もある（Ｃ１２，Ｃ１４）。
【００５９】
メモリバンクの切り替えが行われると，ＤＭＡ転送実行判定部５４２が，外部メモリに対してデータ転送が可能か否かを判定し，データ転送実行可能であれば，メモリＰＥ外に設けられているＤＭＡ転送制御部５４３にＤＭＡ転送可能信号ＤＭＡ−ＥＮを出力する（Ｃ１６）。このデータ転送実行可能か否かは，メモリバンクの状態を示すアクセス終了レジスタの状態によって行われる。そして，対応するＤＭＡ転送制御部５４３が，データフロー制御部（図示せず）を介して，アクセス制御部ＤＭＡＣにアクセスリクエストを出力し（Ｃ１８），データ転送が行われる（Ｃ２０）。そして，外部メモリとのデータ転送が終了すると，ＤＭＡ転送制御部５４３がデータ転送終了信号ＥＮＤ１を受信し，同終了信号ＥＮＤ１０がバンク切り替え制御部５４１に与えられる。その後，アクセス終了レジスタの状態に応じて前述のバンク切替制御が行われる（Ｃ１２）。
【００６０】
一方，メモリバンクの切り替えが行われると，ＡＬＵ演算実行判定部５６１が，メモリバンクの状態をアクセス終了レジスタに基づいて監視し，演算ＰＥからアクセス可能か否か，つまり演算ＰＥが演算処理を実行可能か否かを判定する（Ｃ２２）。実行可能であると，ＡＬＵ演算実行判定部５６１は，演算実行可能信号ＡＬＵ−ＥＮを出力する。
【００６１】
全てのメモリプロセッサエレメントＲＡＭ−ＰＥ０〜ｎから演算実行可能信号ＡＬＵ−ＥＮを受信して初めて，ＡＬＵ演算制御部５６２は，クラスタ内の演算ＰＥアレイ全てに演算開始信号ＡＬＵ−ＳＴを出力し（Ｃ２４），全ての演算ＰＥアレイに同期して演算処理させる（Ｃ２６）。つまり，クラスタ内の複数の演算ＰＥアレイは，複数のメモリＰＥとデータ転送しながら演算処理を同期して行うパイプライン処理を行う必要があるので，ＡＬＵ演算制御部５６２が複数のメモリＰＥに共通に１個設けられ，全てのメモリＰＥから演算実行可能信号ＡＬＵ−ＥＮを受信して初めて，共通のＡＬＵ演算制御部５６２が複数の演算ＰＥアレイに演算開始信号ＡＬＵ−ＳＴを出力する。ＡＬＵ演算実行判定部５６１は，メモリバンクの状態を監視し，データ転送がシームレスに行い得なくなると，ストール信号ＳＴＲをアサートし演算ＰＥアレイのパイプライン処理を停止させる。このストール信号ＳＴＲについては，前述したとおりである。
【００６２】
演算処理が完了すると，演算ＰＥ側のメモリバンクへのアクセスが終了するので，演算ＰＥから終了信号ＥＮＤ２を受信し，ＡＬＵ演算実行判定部５６１は，演算実行可能信号ＡＬＵ−ＥＮをネゲートする。この終了信号ＥＮＤ２によりアクセス終了レジスタＥＮＤ−ＲＥＧのフラグ状態が変更され，それに応じて，メモリバンクの切り替えまたは演算ＰＥの構成変更が制御，実行される（Ｃ１２，Ｃ１４）。
【００６３】
図１３中，破線内の状態遷移はメモリＰＥの状態遷移を示し，その左側はＤＭＡ転送制御部５４３とダイレクトメモリアクセス制御部ＤＭＡＣの状態を示し，その右側はＡＬＵ演算制御部５６２と演算ＰＥアレイの状態を示す。
【００６４】
図１２，図１３では，ＤＭＡ転送実行判定部５４２が出力するＤＭＡ転送可能信号ＤＭＡ−ＥＮに基づいて，ＤＭＡ転送制御部５４３はＤＭＡリクエストを出力しているが，ＤＭＡ転送制御部５４３が，ダイレクトメモリアクセス制御部ＤＭＡＣで受付済みのチャネルの状態をチェックし，ＤＭＡ転送を実行しても良いか否か，つまりＤＭＡ転送の実行タイミングとして適切であるか否かを判定し，適切である場合にＤＭＡリクエストを出力するようにしても良い。このようにすることで，ダイレクトメモリアクセス制御部ＤＭＡＣのチャネル数が所定数を超えていてＤＭＡリクエストを出すに適切なタイミングでない場合は，ＤＭＡリクエストをチャネル数が所定数以下になるまで出さずに，それによりＤＭＡ転送タイミングを遅くするよう制御することができる。ＤＭＡ転送可能信号ＤＭＡ−ＥＮは，あくまでもアクセス終了レジスタＥＮＤ−ＲＥＧの状態により生成されるので，上記のＤＭＡ転送タイミングを遅くする制御に意味がある。
【００６５】
図１３において，演算プロセッサエレメントアレイによる演算状態が終了すると（Ｃ２６），シーケンサにより新たなコンフィグレーションデータが出力され，演算ＰＥのコンフィグレーションデータが変更される（Ｃ１２）。このコンフィグレーションデータの切替は，必要に応じて行われる。
【００６６】
図１４は，アクセス終了レジスタのフラグ変更制御を説明する図である。図１４（Ａ）はメモリバンクＢＮＫ０／１が内部側（演算ＰＥアレイ側）に接続されている時のフラグ変更制御を示す。メモリバンクＢＮＫには，演算ＰＥアレイ側からアクセスのためのアドレスＡｄｄを供給され，それに対応するアクセスが行われる。メモリ制御部５４内の比較器７０にも，このアクセスアドレスＡｄｄが供給される。そして，あらかじめコンフィグレーションデータによる回路構築時にアクセスすべき最終アドレスＥ−Ａｄｄが比較器７０に設定されている。比較器７０は，アクセスアドレスに付随されるアドレスが有効か否かを示すアドレス有効信号Ｖａｌｉｄが有効になるたびに，アクセスアドレスＡｄｄと最終アドレスＥ−Ａｄｄとを比較し，一致すればアクセス終了レジスタＥＮＤ−ＲＥＧのフラグを終了状態「１」に変更する。
【００６７】
または，別の制御方法としては，演算ＰＥアレイからの終了信号ＥＮＤ２に応答して，アクセス終了レジスタＥＮＤ−ＲＥＧのフラグを終了状態「１」に変更する場合もある。いずれの場合も，メモリバンクの内部側と外部側の切替が行われると，アクセス終了レジスタＥＮＤ−ＲＥＧのフラグはレディー状態「０」にされる。
【００６８】
図１４（Ｂ）は，メモリバンクＢＮＫ０／１が外部側（外部メモリＥ−ＭＥＭ側）に接続されている時のフラグ変更制御を示す。この場合は，アクセス制御部ＤＭＡＣからアクセスアドレスＡｄｄを供給される。そして，メモリ制御部５４は，アクセス制御部ＤＭＡＣからの終了信号ＥＮＤ１に応答して，アクセス終了レジスタＥＮＤ−ＲＥＧのフラグを終了状態「１」に変更し，メモリバンクの内部側と外部側の切替が行われると，切替終了信号ＥＮＤＳＷに応答してアクセス終了レジスタＥＮＤ−ＲＥＧのフラグをレディー状態「０」にする。
【００６９】
さらに，アクセス終了レジスタＥＮＤ−ＲＥＧは，リセットによっても終了状態を解除されてレディー状態にされる。
【００７０】
図１５，図１６は，メモリＰＥ内の外部側インターフェースについて説明する図である。外部側インターフェース５２は外部バスＥ−ＢＵＳ１に接続され，コンフィグレーションデータＣＤに基づいて異なる入出力バスインターフェース構造に動的に構築される。通常，ダイレクトメモリアクセスに使用される外部バスＥ−ＢＵＳ１は広いバス幅を有する。たとえば，外部メモリＥ−ＭＥＭが３２ビットＤＤＲ−ＳＤＲＡＭの場合，１クロックサイクルで２回のデータ出力が行われるので，外部バスＥ−ＢＵＳ１のバス幅は６４ビットになる。その場合，メモリバンクＢＮＫ内の４個の１６ビットＲＡＭに対して，６４ビットのデータがパラレルに入出力するように，外部側インターフェース５２の回路が構築される。
【００７１】
図１５（Ａ）は，上記の外部バスＥ−ＢＵＳ１のバス幅が６４ビットの場合の外部側インターフェースを示している。上記の通り，６４ビットのデータがパラレルに４個の１６ビットＲＡＭに入出力される。
【００７２】
図１５（Ｂ）は，バス幅が３２ビットの場合を示し，インターフェースは，それぞれ２個ずつの１６ビットＲＡＭからなる２組のＲＡＭに対して，３２ビットのデータがパラレルに入出力されるように構築される。そして，インターフェースは，各組の２個のＲＡＭに対しては，１６ビットのデータをシリアルに入出力する。
【００７３】
図１６は，バス幅が１６ビットの場合を示し，インターフェースは，４個の１６ビットＲＡＭに対して，１６ビットのデータをシリアルに入出力するように構築される。図１６のインターフェース５２の構成は，内部側インターフェースと同様の構成になる。つまり，内部側インターフェースは，演算ＰＥアレイ側の内部バスが１６ビットとバス幅が狭いことに対応して，図１６で説明したような構成に構築される。よって，内部側インターフェース５０は，１６ビットのデータを４個の１６ビットＲＡＭに対してシリアルに入出力するよう構築される。
【００７４】
このように，メモリＰＥ内のインターフェース５０，５２がコンフィグレーションデータＣＤに基づいて接続されるバスの構成に適合するように構成される。
【００７５】
以上説明したとおり，本実施の形態によれば，動的に回路構成を変更して構築可能な集積回路装置において，複数の演算ＰＥとメモリＰＥを有するクラスタが複数組配置され，クラスタ間が動的に接続状態が変更されるスイッチ群で接続され，そのクラスタ間スイッチ群とは別に，クラスタ内のメモリＰＥが外部バスにより外部メモリと接続されている。そして，メモリＰＥが外部メモリとＤＭＡ転送可能にされる。また，メモリＰＥは，外部メモリと演算ＰＥ間でシームレスなデータ転送を可能にできるように，例えばダブルバッファ構成にされていて，データ転送に支障が生じた場合は，演算ＰＥアレイのパイプライン動作が一時的に停止される。
【００７６】
以上の実施の形態をまとめると，次の付記のとおりである。
【００７７】
（付記１）コンフィグレーションデータに基づいて任意の演算状態に動的に構築されるリコンフィグ可能な集積回路装置において，
それぞれ演算器を有する複数の演算プロセッサエレメントと，外部メモリとデータ転送を行うメモリを有するメモリプロセッサエレメントと，前記演算プロセッサエレメントとメモリプロセッサエレメントとを任意の状態で接続するプロセッサエレメント間スイッチ群とを有する複数のクラスタと，
前記クラスタ間のデータパスを任意の状態で構築するクラスタ間スイッチ群と，
前記メモリプロセッサエレメントと前記外部メモリとでデータ転送を行う外部メモリバスとを有し，
前記コンフィグレーションデータに基づいて前記演算プロセッサエレメントと，メモリプロセッサエレメントと，プロセッサエレメント間スイッチ群と，クラスタ間スイッチ群とが動的に変更可能であり，
さらに，前記複数のクラスタのメモリプロセッサエレメントからのアクセス要求に応答して，前記メモリプロセッサエレメントと外部メモリとの間でダイレクトメモリアクセスによるデータ転送を実行させるダイレクトメモリアクセス制御部を有することを特徴とするリコンフィグ可能な集積回路装置。
【００７８】
（付記２）付記１において，
前記クラスタは，さらに，前記コンフィグレーションデータを格納するコンフィグレーションデータメモリと，前記演算プロセッサエレメント及びメモリプロセッサエレメントからの終了信号に応答して前記コンフィグレーションデータメモリから次の演算状態を構築するコンフィグレーションデータを出力させるシーケンサとを有するリコンフィグ可能な集積回路装置。
【００７９】
（付記３）付記１において，
さらに，複数のメモリプロセッサエレメントに共通に設けられ，当該複数のメモリプロセッサエレメントからのダイレクトメモリアクセス要求を受け付け，前記ダイレクトメモリアクセス制御部に前記複数のメモリプロセッサエレメントに対して同期したダイレクトメモリアクセス要求を指令するデータフロー制御部を有するリコンフィグ可能な集積回路装置。
【００８０】
（付記４）付記１において，
さらに，複数のメモリプロセッサエレメントに共通に設けられ，当該複数のメモリプロセッサエレメントからのダイレクトメモリアクセス要求を受け付け，前記ダイレクトメモリアクセス制御部に前記複数のメモリプロセッサエレメントに対して同期したダイレクトメモリアクセス要求を指令するデータフロー制御部を有し，
前記データフロー制御部は，単一のメモリプロセッサエレメントからのダイレクトメモリアクセス要求を受け付けた時は，当該受付に応答して前記ダイレクトメモリアクセス制御部に当該ダイレクトメモリアクセス要求を指令するリコンフィグ可能な集積回路装置。
【００８１】
（付記５）付記１において，
前記メモリプロセッサエレメントは，前記プロセッサエレメント間スイッチ群に接続される内部バスとの内部側インターフェースと，前記外部メモリバスとの外部側インターフェースとを有し，前記外部側インターフェースを介して前記外部メモリにダイレクトメモリアクセスしながら，前記内部側インターフェースを介して前記演算プロセッサエレメントからアクセスされることを特徴とするリコンフィグ可能な集積回路装置。
【００８２】
（付記６）付記５において，
前記メモリプロセッサエレメントは，第１及び第２のメモリバンクを有し，前記コンフィグレーションデータに基づいて前記第１及び第２のメモリバンクが前記内部側及び外部側インターフェースに交互に接続されることを特徴とするリコンフィグ可能な集積回路装置。
【００８３】
（付記７）付記６において，
前記メモリプロセッサエレメントは，前記外部メモリと前記第１または第２のバンクとのデータ転送が完了した後に，前記演算プロセッサエレメントと前記第１または第２のメモリバンクとのデータ転送を許可し，前記外部メモリと前記第１及び第２のメモリバンクのいずれとのデータ転送も完了しない場合は，前記複数の演算プロセッサエレメントに動作停止を指示するストール信号をアサートし，前記外部メモリと前記第１または第２のメモリバンクのいずれとのデータ転送が完了すると前記ストール信号をネゲートすることを特徴とするリコンフィグ可能な集積回路装置。
【００８４】
（付記８）付記１において，
前記メモリプロセッサエレメントは，前記ダイレクトメモリアクセス制御部の動作状態を監視して，当該動作状態に基づいて前記アクセス要求を前記データフロー制御部に供給することを特徴とするリコンフィグ可能な集積回路装置。
【００８５】
（付記９）付記８において，
前記メモリプロセッサエレメントは，前記動作状態に基づいて前記アクセス要求のタイミングを可変制御することを特徴とするリコンフィグ可能な集積回路装置。
【００８６】
（付記１０）付記１において，
前記メモリプロセッサエレメントは，前記外部メモリとのダイレクトメモリアクセスによるデータ転送を行いながら，前記演算プロセッサエレメントとのデータ転送を受付け，前記ダイレクトメモリアクセスによるデータ転送が前記演算プロセッサエレメントとのデータ転送に追従できなくなるときに，前記複数の演算プロセッサエレメントの動作を停止するストール信号をアサートし，追従できるときに前記ストール信号をネゲートすることを特徴とするリコンフィグ可能な可能な集積回路装置。
【００８７】
（付記１１）付記５において，
前記メモリプロセッサエレメントの外部インターフェースは，前記コンフィグレーションデータに基づいて複数のデータバス幅に対応したインターフェース状態に構築されることを特徴とするリコンフィグ可能な集積回路装置。
【００８８】
（付記１２）付記１において，
前記メモリプロセッサエレメントは，第１及び第２のメモリバンクを有し，
前記メモリプロセッサエレメントは，起動時において，前記コンフィグレーションデータに基づいて，前記第１または第２のメモリバンクの一方を前記外部バス側にアクセス可能状態にし，前記アクセス要求を出力することを特徴とするリコンフィグ可能な集積回路装置。
【００８９】
（付記１３）付記１２において，
前記メモリプロセッサエレメントは，前記第１または第２のメモリバンクの一方が前記ダイレクトメモリアクセスによるデータ転送を完了したときに前記演算プロセッサエレメントへの演算実行可能信号をアサートして，前記演算プロセッサエレメントの演算実行を促すことを特徴とするリコンフィグ可能な集積回路装置。
【００９０】
（付記１４）付記１３において，
前記メモリプロセッサエレメントは，前記第１及び第２のメモリバンクが共にデータ転送可能でない状態になったとき，前記演算プロセッサエレメントの演算停止を要求するストール信号をアサートすることを特徴とするリコンフィグ可能な集積回路装置。
【００９１】
（付記１５）付記１３において，
前記クラスタは，複数のメモリプロセッサエレメントを有し，
さらに，前記複数のメモリプロセッサエレメントからの演算実行可能信号のアサートに応答して，複数の演算プロセッサエレメントに，同期した演算実行を要求する演算実行制御部を，前記複数のメモリプロセッサエレメントに共通して有することを特徴とするリコンフィグ可能な集積回路装置。
【００９２】
（付記１６）コンフィグレーションデータに基づいて所定の演算状態に動的に構築されるリコンフィグ可能な集積回路装置において，
演算器を有する演算プロセッサエレメントと，外部メモリとデータ転送を行うメモリを有するメモリプロセッサエレメントと，前記演算プロセッサエレメントとメモリプロセッサエレメントとを任意の状態で接続するプロセッサエレメント間スイッチ群とを有する複数のクラスタと，
前記クラスタ間のデータパスを任意の状態で構築するクラスタ間スイッチ群と，
前記メモリプロセッサエレメントと前記外部メモリとでデータ転送を行う外部メモリバスとを有し，
前記コンフィグレーションデータに基づいて前記演算プロセッサエレメントと，メモリプロセッサエレメントと，プロセッサエレメント間スイッチ群と，クラスタ間スイッチ群とが動的に変更可能であり，
さらに，前記複数のクラスタのメモリプロセッサエレメントからのアクセス要求に応答して，前記メモリプロセッサエレメントと外部メモリとの間でダイレクトメモリアクセスによるデータ転送を実行させるダイレクトメモリアクセス制御部を有し，
前記メモリプロセッサエレメントは，第１及び第２のメモリバンクを有し，当該第１または第２のメモリバンクの一方が前記外部メモリとの間でダイレクトメモリアクセスによるデータ転送中に，前記第１または第２のメモリバンクの他方が前記演算プロセッサエレメントとデータ転送を行うことを特徴とするリコンフィグ可能な集積回路装置。
【図面の簡単な説明】
【００９３】
【図１】本実施の形態におけるリコンフィグ可能な集積回路装置の一部を構成するクラスタの構成図である。
【図２】本実施の形態におけるＰＥネットワーク部の構成例を示す図である。
【図３】本実施の形態におけるＰＥネットワーク部のコンフィグレーションデータにより構築された回路構成例を示す図である。
【図４】本実施の形態におけるＰＥネットワーク部のコンフィグレーションデータにより構築された回路構成例を示す図である。
【図５】本実施の形態におけるリコンフィグ可能な集積回路装置の構成図である。
【図６】本実施の形態におけるメモリプロセッサエレメントの一例を示す構成図である。
【図７】本実施の形態におけるメモリプロセッサエレメント内の２つのメモリバンクの切替動作を説明する図である。
【図８】本実施の形態におけるメモリプロセッサエレメント内の２つのメモリバンクの切替動作を説明する図である。
【図９】本実施の形態におけるメモリプロセッサエレメント内の２つのメモリバンクの切替動作を説明する図である。
【図１０】本実施の形態におけるメモリプロセッサエレメント内の２つのメモリバンクの切替動作を説明する図である。
【図１１】本実施の形態におけるメモリプロセッサエレメント内の２つのメモリバンクの切替動作を説明する図である。
【図１２】本実施の形態におけるメモリプロセッサエレメントの制御部の構成図である。
【図１３】本実施の形態におけるメモリプロセッサエレメントの制御部の状態遷移図である。
【図１４】アクセス終了レジスタのフラグ変更制御を説明する図である。
【図１５】メモリＰＥ内の外部側インターフェースについて説明する図である。
【図１６】メモリＰＥ内の外部側インターフェースについて説明する図である。
【符号の説明】
【００９４】
ＰＥ０〜ＰＥ５：プロセッサエレメント      ＳＥＱ：シーケンサ
１４：コンフィグレーションデータメモリ    ２０：ＰＥ間スイッチ群
３０：クラスタ間スイッチ群                Ｅ−ＢＵＳ１：外部メモリバス
Ｅ−ＭＥＭ：外部メモリ                    ＤＭＡＣ：ダイレクトメモリアクセス制御部
【図１】
0004536618.tif 000002
【図２】
0004536618.tif 000003
【図３】
0004536618.tif 000004
【図４】
0004536618.tif 000005
【図５】
0004536618.tif 000006
【図６】
0004536618.tif 000007
【図７】
0004536618.tif 000008
【図８】
0004536618.tif 000009
【図９】
0004536618.tif 000010
【図１０】
0004536618.tif 000011
【図１１】
0004536618.tif 000012
【図１２】
0004536618.tif 000013
【図１３】
0004536618.tif 000014
【図１４】
0004536618.tif 000015
【図１５】
0004536618.tif 000016
【図１６】
0004536618.tif 000017