"コンフィグレーションデータに基づいて任意の演算状態に構築されるリコンフィグ可能な集積回路装置において,それぞれ演算回路を有し,前記コンフィグレーションデータに基づいて,任意の演算状態に構築可能な複数のプロセッシングエレメントと,前記コンフィグレーションデータに基づいて,前記複数のプロセッシングエレメントを任意の状態で接続するプロセッシングエレメント間ネットワークとを有し,前記プロセッシングエレメントは,入力バリッド信号と入力データ信号を入力し,出力バリッド信号と出力データ信号を出力し,更に,入力データ保持レジスタと,前記入力データ信号を演算する演算処理回路と,前記演算処理回路の演算結果データを保持する出力データ保持レジスタとを有し,ホールドモードを有効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,前記入力バリッド信号がバリッド,インバリッドにかかわらず,前記入力データ保持レジスタが当該更新時の入力データ信号を保持し,前記演算処理回路は前記入力データ保持レジスタに保持された入力データ信号について演算処理を行うリコンフィグ可能な集積回路装置。請求項1において,前記プロセッシングエレメントは,前記ホールドモードを有効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,前記更新直後にホールドモード信号に応答して,前記入力データ保持レジスタが前記入力データ信号を保持し,前記入力バリッド信号がインバリッドであっても前記ホールドモード信号に応答して,前記演算結果データに対応する出力データ信号の出力に同期して前記出力バリッド信号を出力するリコンフィグ可能な集積回路装置。請求項2において,前記プロセッシングエレメントは,前記ホールドモードを無効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,バリッドな入力バリッド信号に応答して,前記演算結果データに対応する出力データ信号の出力に同期して前記出力バリッド信号を出力するリコンフィグ可能な集積回路装置。請求項1または2において,前記プロセッシングエレメントは,前記入力データ信号を前記演算処理回路に入力するセレクタを有し,前記ホールドモードを有効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,前記セレクタは,前記更新時に入力される入力データ信号を前記入力データ保持レジスタを介さずに前記演算処理回路に入力した後,前記入力データ保持レジスタに保持された入力データ信号を前記演算処理回路に入力し,前記ホールドモードを無効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,前記セレクタは,前記入力される前記入力データ信号を前記入力データ保持レジスタを介さずに前記演算処理回路に入力し続けるリコンフィグ可能な集積回路装置。請求項2または4において前記プロセッシングエレメントは,フェッチイネーブル信号に応答して前記コンフィグレーションデータを入力してコンフィグレーションを更新し,ホールドモードか否かにかかわらず,前記フェッチイネーブル信号に応答して,前記更新時に前記出力バリッド信号をインバリッドにするとともに前記出力データ保持レジスタによる出力データ信号の取り込みを不能状態にするリコンフィグ可能な集積回路装置。請求項2または4において,第1のコンフィグレーションデータでコンフィグレーションされる回路を有する第1のコンテキストと,前記第1のコンテキストに後続し第2のコンフィグレーションデータでコンフィグレーションされる回路を有する第2のコンテキストとの間において,前記第1のコンテキストに含まれる第1のプロセッシングエレメントの出力データ保持レジスタが保持する出力データ信号を,前記第2のコンテキストへの更新時に,前記第2のコンテキストに含まれ前記ホールドモードにコンフィグレーションされた第2のプロセッシングエレメントが入力し,前記入力データ保持レジスタが保持する,リコンフィグ可能な集積回路装置。請求項4において,第1のコンフィグレーションデータでコンフィグレーションされる回路を有する第1のコンテキストと,前記第1のコンテキストに後続し第2のコンフィグレーションデータでコンフィグレーションされる回路を有する第2のコンテキストとの間において,前記第1のコンテキストに含まれる第1のプロセッシングエレメントの出力データ保持レジスタが保持する第1の出力データ信号を,前記第2のコンテキストへの更新時に,前記第2のコンテキストに含まれ前記ホールドモードにコンフィグレーションされた第2のプロセッシングエレメントが入力して前記演算処理回路が演算処理を開始し,前記更新時の前記第1の出力データ信号を入力データ信号として前記入力データ保持レジスタに保持し,前記入力データ保持レジスタに保持された入力データ信号を前記演算処理回路に入力する,リコンフィグ可能な集積回路装置。コンフィグレーションデータに基づいて任意の演算状態に構築されるリコンフィグ可能な集積回路装置において,それぞれ演算回路を有し,前記コンフィグレーションデータに基づいて,任意の演算状態に構築可能な複数のプロセッシングエレメントと,前記コンフィグレーションデータに基づいて,前記複数のプロセッシングエレメントを任意の状態で接続するプロセッシングエレメント間ネットワークとを有し,前記プロセッシングエレメントは,入力バリッド信号と入力データ信号を入力し,出力バリッド信号と出力データ信号を出力し,更に,前記入力データ信号を演算する演算処理回路と,前記演算処理回路の演算結果データを保持する出力データ保持レジスタと,前記出力バリッド信号を生成する出力バリッド信号生成回路とを有し,前記プロセッシングエレメントにおいて,ホールドモードを有効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,当該更新時の入力データ信号を前記演算処理回路が演算し,前記出力バリッド信号生成回路が,前記入力バリッド信号のバリッド,インバリッドにかかわらずホールドモード信号に応答して,前記更新時の入力データ信号に対応する前記出力データ信号の出力に同期して前記出力バリッド信号を出力し,前記ホールドモードを無効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,前記出力バリッド信号生成回路が,バリッドな入力バリッド信号に応答して,前記バリッドな入力バリッド信号時の入力データ信号に対応する出力データ信号の出力に同期して前記出力バリッド信号を出力するリコンフィグ可能な集積回路装置。請求項8において,前記プロセッシングエレメントは,更に入力データ保持レジスタを有し,前記プロセッシングエレメントにおいて,ホールドモードを有効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,当該更新時の入力データ信号を前記入力データ保持レジスタが保持して前記演算処理回路に出力し,前記ホールドモードを無効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,前記更新後に入力される入力データ信号を前記入力データ保持レジスタを介することなく前記演算処理回路が入力して演算処理するリコンフィグ可能な集積回路装置。請求項8または9において,第1のコンフィグレーションデータでコンフィグレーションされる回路を有する第1のコンテキストと,前記第1のコンテキストに後続し第2のコンフィグレーションデータでコンフィグレーションされる回路を有する第2のコンテキストとの間において,前記第1のコンテキストに含まれる第1のプロセッシングエレメントの出力データ保持レジスタが保持する出力データ信号を,前記第2のコンテキストへの更新時に,前記第2のコンテキストに含まれ前記ホールドモードにコンフィグレーションされた第2のプロセッシングエレメントが入力し前記演算処理回路が演算処理をする,リコンフィグ可能な集積回路装置。上記の分割された回路の単位はコンテキストContextと呼ばれる。動的に再構成可能な回路の動作方式のうち,コンテキストを切り替えることにより目的の回路動作を実現する方式をマルチコンテキスト方式と呼ぶ。近年においてLSIの回路設計は,RTLなどのハードウエア記述言語により記述された回路記述ファイルを,専用のコンパイラにより,動的に再構成可能な回路上で実行可能な形式に変換する。つまり,専用コンパイラは,LSI内の回路の物理的な制約に対応して,コンテキストの分割,各コンテキストでの回路合成,配置配線を含む変換処理を行う。このように,複数のコンテキストを数クロックサイクルで切り替える場合,連続するコンテキスト間で演算データを授受する必要がある。一般的には,あるコンテキストの回路が生成したデータは,RAMやLUTなどのレジスタファイルに書き込まれ,次のコンテキストの回路が,そのレジスタファイルからデータを読み出して目的の処理を行う。このように時間的に連続するコンテキスト間でのデータの授受をレジスタファイルを利用して行うと,前のコンテキストにおいてデータを書き込むレジスタファイルと,後のコンテキストにおいてデータを読み出すレジスタファイルとが必要になる。これは回路資源と配線資源の消費が増大し,効率的に再構築することを妨げることになる。そこで,本発明の目的は,時間的に連続するコンテキスト間のデータの授受を回路資源の消費を増大することなく可能にするリコンフィグ可能な集積回路装置を提供することにある。実施の形態の第1の側面は,コンフィグレーションデータに基づいて任意の演算状態に構築されるリコンフィグ可能な集積回路装置において,それぞれ演算回路を有し,前記コンフィグレーションデータに基づいて,任意の演算状態に構築可能な複数のプロセッシングエレメントと,前記コンフィグレーションデータに基づいて,前記複数のプロセッシングエレメントを任意の状態で接続するプロセッシングエレメント間ネットワークとを有し,前記プロセッシングエレメントは,入力バリッド信号と入力データ信号を入力し,出力バリッド信号と出力データ信号を出力し,更に,入力データ保持レジスタと,前記入力データ信号を演算する演算処理回路と,前記演算処理回路の演算結果データを保持する出力データ保持レジスタとを有し,ホールドモードを有効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,前記入力バリッド信号がバリッド,インバリッドにかかわらず,前記入力データ保持レジスタが当該更新時の入力データ信号を保持し,前記演算処理回路は前記入力データ保持レジスタに保持された入力データ信号について演算処理を行う。第1の側面によれば,時間的に連続するコンテキスト間のデータの授受を回路資源の消費を増大することなく可能にする。図1は,本実施の形態におけるリコンフィグ可能な集積回路装置のリコンフィグ回路ユニットの構成例を示す図である。プロセッシングエレメントPE0~PE3と,メモリプロセッシングエレメントPE5と,それ以外のプロセッシングエレメントPE4とが,プロセッサ間ネットワークNET内のセレクタ4を介して任意に接続可能に構成されている。各プロセッシングエレメントPE0~PE5は,コンフィグレーションデータCD0~CD5に基づいて任意の構成に構築可能であり,また,ネットワークNET内のセレクタ44a,4b,4cも,コンフィグレーションデータCDsに基づいて任意の接続状態に構築可能である。つまり,各プロセッシングエレメントの2つの入力に対応する1対のセレクタ4は,セレクタへのコンフィグレーションデータCDに基づいて,他のプロセッシングエレメントの出力と入力ポート2の入力の中からいずれかを選択する。そして,プロセッシングエレメントPEは,2つの入力を演算して1つの出力を出力する。これらの入力と出力は所定のビット数のデータである。セレクタ4は,図中左下に一例として示されるとおり,コンフィグレーションデータCDを格納するレジスタ41と,レジスタ41のデータに応じて入力を選択するセレクタ回路42と,セレクタ回路42の出力をクロックCKに同期してラッチするフリップフロップ43とで構成される。また,ネットワークNETは,データの入力ポート2と出力ポート3ともセレクタ4を介して所望の接続を可能にしている。本実施の形態におけるリコンフィグ可能な集積回路装置は,ホールドモードにリコンフィグレーション可能なプロセッサエレメントを有する。通常,プロセッサエレメントは,入力バリッド信号が有効バリッドの時の入力データを演算処理し,その演算処理結果データを出力データとして,それが有効バリッドであることを示す出力バリッド信号と共に出力する。これにより,プロセッサエレメントの出力端子に接続される後段のプロセッサエレメントは,出力バリッド信号に基づき出力データを有効な入力データとして入力し演算処理することができる。ホールドモードとは,入力バリッド信号がバリッドでない時でも入力データを入力して演算処理し,演算処理結果データである出力データの出力タイミングに同期して,バリッドな出力バリッド信号をその出力データと共に出力する動作モードである。これにより,コンフィグレーションデータの更新によりコンテキストが更新された時の,入力バリッド信号が無効インバリッド状態での入力データを,入力し演算処理することができる。その結果,コンフィグレーションデータが更新される前の第1のコンテキスト内のプロセッサエレメントの出力データを,コンフィグレーションデータが更新された後の第2のコンテキスト内のプロセッサエレメントに,レジスタファイルを介することなく直接引き渡すことができる。一方,コンフィグレーションデータ更新時には,プロセッシングエレメントは出力バリッド信号を一時的にインバリッドにして,プロセッシングエレメント間でのデータのやりとりを禁止する。これによりコンフィグレーションデータ更新時での誤動作の可能性をなくしている。ホールドモードに構築されたプロセッシングエレメントは,出力バリッド信号がインバリッドであっても入力データを入力して演算することができる。図2は,ホールドモードを有しないプロセッシングエレメントの構成図である。図2では,一般的なクロック,リセット信号などは,既知の信号であるので省略している。このプロセッシングエレメントPEは,1ビットの入力バリッド信号VI0,VI1と共に2つのnビットの入力データ信号DI0,DI1を入力し,入力バリッド信号がバリッドの時の入力データ信号の演算結果であるnビットの出力データ信号DOを1ビットの出力バリッド信号VOと共に出力する。入力バリッド信号VI0,VI1は,入力データ信号DI0,DI1が演算対象として有効なデータか否かをそれぞれ示す信号である。また,出力バリッド信号VOは,出力データ信号DOが演算結果データとして有効なデータか否かを示す信号である。この出力バリッド信号VOは,後段に接続されるプロセッシングエレメントにとっては入力バリッド信号になる。更に,プロセッシングエレメントPEは,コンフィグレーションデータCFGをフェッチイネーブル信号FETCHENに応答して入力し内部にコンフィグレーションデータを分配するコンフィグレーション制御回路20と,入力データ信号DI0,DI1を演算処理する演算処理回路24と,入力バリッド信号VI0,VI1からバリッドモード信号Vmodeに応じて内部入力バリッド信号ivinを生成するバリッド信号制御回路22と,出力バリッド信号保持レジスタFF2と,出力データ保持レジスタFF3とを有する。演算処理回路24は,コンフィグレーション制御回路20から供給されるオペレーションコードOpeCodeに応じてコンフィグレーションされる。また,ストップ信号STOPは,デバッグ工程において全ての回路動作を停止させるための信号であり,通常動作状態ではストップ信号STOPは常時Lレベルである。図3は,バリッド信号制御回路22の回路図の一例を示す図である。バリッドモードには,両方の入力バリッド信号VI0VI1が共にバリッドHレベルの時に内部バリッド信号ivinをHレベルにするモードと,いずれかの入力バリッド信号VI0VI1がバリッドの時に内部バリッド信号ivinをHレベルにするモードと,入力バリッド信号VI0がバリッドの時に内部バリッド信号ivinをHレベルにするモードと,入力バリッド信号VI1がバリッドの時に内部バリッド信号ivinをHレベルにするモードと,合計で4つのモードがある。これら4つのモードがバリッドモード信号Vmodeにより区別される。そして,バリッド信号制御回路22は,1/4のセレクタ221を有し,2ビットのバリッドモード信号Vmodeに応じて,セレクタ221が,上記の4つのモードに対応する信号を選択し,内部バリッド信号ivinとして出力する。図4は,コンフィグレーション制御回路20の一例を示す図である。コンフィグレーション制御回路20は,フェッチイネーブル信号FETCHENがHレベルの時のmビットのコンフィグレーションデータCFGをクロックCLKの立ち上がりエッジに応答してラッチし,内部にコンフィグレーションデータoCFGを出力するレジスタFFaを有する。レジスタFFaはフリップフロップである。通常動作状態ではストップ信号STOPがLレベルであるので,ANDゲート201を介してフェッチイネーブル信号FETCHENがそのままフリップフロップFFaのイネーブル信号として入力される。また,コンフィグレーションリセット信号CRSTXに応答してフリップフロップのラッチ状態がリセットされる。図5は,演算処理回路24の一例を示す図である。この演算処理回路24は,オペコードOpecodeによって種々の演算状態にリコンフィグレーション可能な演算回路ALUを有し,2つの入力データ信号DI0DI1に対して,コンフィグレーションされた演算回路が演算処理を行い,演算結果信号ALUoutとして出力される。リコンフィグレーション可能な演算処理には,例えば,四則演算と,シフト動作と,比較動作と,ANDOREXORNOTなどの論理演算などが含まれる。また,プロセッサエレメントのうち,後述するようにRAMやLUTなどのレジスタファイルを内蔵するものもある。図6は,図2のプロセッシングエレメントの演算動作を示す図である。この例では,コンフィグレーションデータで指定されるバリッドモードは,Vmode11の例であり,両入力バリッド信号VI0VI1が共にHレベルバリッドの場合に内部バリッド信号ivinをHレベルにするモードである。つまり,入力データ信号DI0DI1が共にバリッドな信号の場合に,演算結果の出力データ信号DOがバリッドな出力バリッド信号VOと共に出力される。また,この例でのプロセッシングエレメントの演算レイテンシは1クロックサイクルである。最初に,クロックCLKのサイクルT0,T1で,入力バリッド信号VI0VI1が共にHレベルバリッドになり,データ信号i0i1が有効な入力データ信号DI0DI1として入力されている。そして,演算処理回路24がそれらの入力データ信号i0i1を演算処理し,1クロックサイクルのレイテンシ後のサイクルT1で,出力バリッド信号VOのHレベルバリッドと共にデータ信号o0が有効な出力データ信号VOとして出力されている。同様に,サイクルT3で入力バリッド信号VI0VI1が共にHレベルになり,データ信号i4i5が有効な入力データ信号DI0DI1として入力され,1クロックサイクルのレイテンシ後のサイクルT4で,出力バリッド信号VOのHレベルバリッドと共にデータ信号o1が有効な出力データ信号VOとして出力されている。図2に示されたプロセッシングエレメントPEは,演算処理回路24が入力データ信号DI0DI1を入力バリッド信号VI0VI1の状態にかかわらず直接入力して演算処理を行う。これは,図1に示したとおり,プロセッシングエレメントPEの入力端子の前段に設けられたネットワークNET内のセレクタ,およびプロセッシングエレメントPEの演算回路の論理遅延と配線遅延が大きくなるため,プロセッシングエレメントPE内での入力データ信号への論理追加による遅延をできるだけ少なくするためである。ここでいう論理追加とは,たとえば入力データ信号DI0DI1を入力バリッド信号の状態によってマスクするなどの論理回路を挿入することなどを意味する。ただし,プロセッシングエレメントPEは,バリッド状態の入力バリッド信号VI0VI1に応答して,演算処理回路24の演算処理に必要なレイテンシ後に,バリッドな出力バリッド信号VOを出力する。これにより,有効な入力データ信号VI0VI1に対応する演算結果データである出力データ信号VOが,バリッドな出力バリッド信号VOと共に出力される。サイクルT2でのインバリッドな入力バリッド信号と共に入力される入力データ信号DI0DI1に対しては,演算処理に必要な1レイテンシ後のサイクルT3では出力バリッド信号VOはインバリッド状態になっている。したがって,サイクルT2での有効でない入力データ信号に対する出力データ信号DOに対しては,出力バリッド信号VOがインバリッドLレベルとなる。このことは,実質的に,プロセッシングエレメントPEが有効でない入力データ信号に対する演算処理は行わないことと等価である。なお,演算処理回路のレイテンシは,オペレーションコードOpecodeに応じて設定され,出力バリッド信号の出力レジスタFF2もそのレイテンシに対応したタイミングで出力バリッド信号VOを生成する。図7は,図2のプロセッシングエレメントのコンフィグレーションデータが更新される時の演算動作を示す図である。この例でも,コンフィグレーションデータで指定されるバリッドモードはVmode11であり,ストップ信号STOPはLレベルである。図7の例では,サイクルT1でフェッチイネーブル信号FETCHENがHレベルになると共にコンフィグレーションデータCFG=Aが入力されて,サイクルT2~T5の期間,プロセッシングエレメントPEがコンフィグレーションAの状態に構築される。同様に,サイクルT5でフェッチイネーブル信号FETCHENがHレベルになりコンフィグレーションデータCFG=Bが入力されて,サイクルT6~T9の期間プロセッシングエレメントPEがコンフィグレーションBの状態に構築される。サイクルT1で入力されるコンフィグレーションデータCFG=Aは,次のサイクルT2のクロックCLKの立ち上がりエッジでコンフィグレーション制御回路20によりラッチされ,内部コンフィグレーションデータoCFGとして内部に供給され,その結果プロセッシングエレメントPEはコンフィグレーションAの状態に構築される。つまり,サイクルT2がコンフィグレーションが更新されるクロックサイクルである。そして,サイクルT3でバリッドな入力バリッド信号VI0VI1と共に入力データ信号i0i1が入力され,1クロックレイテンシ後のサイクルT4でバリッドな出力バリッド信号VOと共に演算結果o0が出力データ信号DOとして出力される。同様に,T5で入力されるコンフィグレーションデータCFG=Bは,次のサイクルT6のクロックCLKの立ち上がりエッジでコンフィグレーション制御回路20によりラッチされ内部コンフィグレーションデータoCFGとして内部に供給され,その結果コンフィグレーションBの状態に構築される。サイクルT6でバリッドな入力バリッド信号VI0VI1と共に入力データ信号i4i5が入力され,1クロックレイテンシ後のサイクルT7でバリッドな出力バリッド信号VOと共に演算結果o1が出力データ信号DOとして出力される。いずれのコンフィグレーションABでも,サイクルT1T5でのフェッチイネーブル信号FETCHENのHレベルに応答して,次のサイクルT2T6では出力バリッド信号VOが共にインバリッドLレベルにされている。これは,図2のアンドゲート25による。このように,コンフィグレーションデータの更新時であるサイクルT2T6では出力バリッド信号VOがLレベルにされて,コンフィグレーション切り替え後の意図しないデータの伝播を防いでいる。ただし,コンフィグレーションBでは,サイクルT6で既にバリッドな入力バリッド信号VI0,VI1と共に入力データ信号i4i5が入力されている。これは,後述するレジスタファイルを内蔵したプロセッシングエレメントからの入力データ信号である。図8は,結線ネットワークの一例を示す図である。図8の左側には,8個のプロセッシングエレメントPE0~PE7と,プロセッシングエレメント間を接続するネットワークNETと,1個のプロセッシングエレメントPE8とが示され,ネットワークNETは,コンフィグレーションレジスタ41と,4入力1出力の2つのセレクタ4142を有する。セレクタ41の4つの入力には4つのプロセッシングエレメントPE0~PE3の各出力が接続され,セレクタ42の4つの入力には4つのプロセッシングエレメントPE4~PE7の各出力が接続される。そして,セレクタ41,42へのコンフィグレーションデータは,それぞれsel02,sel10である。つまり,セレクタ41がプロセッシングエレメントPE2の出力を選択してプロセッシングエレメントPE8の一方の入力に接続し,セレクタ42がプロセッシングエレメントPE4の出力を選択してプロセッシングエレメントPE8の他方の入力に接続している。図8の場合,ネットワークNETにおける有効な入力の結線はPE2PE4であり,有効な出力の結線はPE8である。そこで,図8の右側には,有効な結線のみを抽出して簡略化したモデル図コネクションモデルが示されている。このコネクションモデルは,処理されるデータの流れを表現するデータフローを示す目的のためにデータフローグラフとしてしばしば使用される。図9は,レジスタファイルを内蔵するプロセッシングエレメントの構成とそのシンボルを示す図である。レジスタファイル内蔵型のプロセッシングエレメントPEは,図5の演算処理回路であるALUの代わりに,RAMやLUTなどで構成されるレジスタファイル32を有する。そして,入力制御回路31がライトデータo0o3を入力してレジスタファイル32に書き込み,出力制御回路33がレジスタファイル32内のデータを読み出しリードデータi0i3として出力する。そして,レジスタファイル32の入出力制御や,アドレスによるアクセス制御は,コンフィグレーションレジスタ30に供給されるコンフィグレーションデータによって構築される。また,レジスタファイル32は,システムバス35からライトまたはリードアクセスされる。図9の右側には,レジスタファイル内蔵型のプロセッシングエレメントのシンボルが示されている。図中36がレジスタファイル32内のデータをリードデータi0i3として出力する場合のシンボルを示す。この場合は,レジスタファイル内のデータが,出力制御回路33の後段に接続される図示しないプロセッシングエレメントへの入力データ信号i0i3として出力されることを意味する。一方,図中37がライトデータo0o3をレジスタファイル32に格納する場合のシンボルを示す。この場合は,入力制御回路31の前段に接続される図示しないプロセッシングエレメントからの出力データ信号o0o3が入力されることを意味する。いずれも,データのフローを示すデータフローグラフとして表される。図10は,あるデータフローグラフを示す図である。このデータフローフラグを参照して,問題点を説明する。図10のデータフローグラフでは,入力データ信号i0i1をプロセッシングエレメントPEaが乗算し,その出力をプロセッシングエレメントPEdが反転して出力データ信号o2を出力し,入力データ信号i2i3をプロセッシングエレメントPEbが加算して出力データ信号o1を出力し,入力データ信号i4i5をプロセッシングエレメントPEcが減算し,その出力と入力データ信号i6をプログラムPEeが加算して出力データ信号o3を出力する。入力データ信号i0i5は,図示しないレジスタファイル内蔵型のプロセッシングエレメントから読み出され,出力データ信号o1o3は,同プロセッシングエレメントに書き込まれる。一般に,このようなデータフローを目的とする回路は,ハードウエア記述言語やスケマティックエディタで回路動作を記述し,その記述ファイルをリコンフィグLSI用の専用コンパイラで論理合成することで得ることができる。この回路を構築するために必要な回路のリソースは,データの入出力を行うレジスタ群50,51と,5つのプロセッシングエレメントPEaPEeと,それらを接続する結線ネットワーク52である。ただし,リコンフィグ可能なLSIで利用可能な回路リソースは有限であるので,データフローグラフに必要な回路のリソースが,利用可能なリソースの制限を超える場合は,コンパイラはデータフローグラフ全体を一度に実行可能な単位,即ちコンテキストに分割する。たとえば,利用可能なプロセッシングエレメントの数が最大で3個の場合を仮定すると,図10中の破線で囲まれた単位53,54がその一例である。図11は,図10のデータフローグラフが2つのコンテキストに分割された例を示す図である。すなわち,図11では,図10のプロセッシングエレメントPEaPEbを含む回路単位53を構築するPE0PE1を有するコンテキスト0と,図10のプロセッシングエレメントPEcPEdPEeを含む回路単位54を構築するPE0PE1PE2を有するコンテキスト1とに分割されている。それに伴って,コンテキスト0では,入力データ信号i0i3が入力され,出力データ信号o1n0が出力されている。一方,コンテキスト1では,入力データ信号i4i6とn0とが入力され,出力データ信号o2o3が出力されている。2つのコンテキストに分割されたことにより,コンテキスト0のプロセッシングエレメントPE0は出力データ信号n0を一旦レジスタファイル内蔵型プロセッシングエレメントに書き込み,コンテキスト1のプロセッシングエレメントPE1がそのデータを入力データ信号n0としてレジスタファイル内蔵型プロセッシングエレメントから読み出す。つまり,両コンテキストはレジスタファイル内蔵型プロセッシングエレメントを介して,データn0の引き渡しを行うことが必要になる。図12は,図11の2つのコンテキストに分割された回路単位の動作を示すタイミングチャート図である。図12には,サイクルT2T5でのコンテキスト0とサイクルT6T9でのコンテキスト1の動作が示されている。また,プロセッシングエレメントPE0PE1PE2の入力データ信号DI0DI1と入力バリッド信号VI0VO1と出力データ信号DOと出力バリッド信号VOに加えて,レジスタファイル内蔵型プロセッシングエレメントPErの読み出し信号i0i6n0と書き込み信号n0o1o3が示されている。コンテキスト0において,プロセッシングエレメントPE0PE1がそれぞれ,サイクルT3で入力される入力データ信号i0i1とi2i3とを演算して,サイクルT4で演算結果である出力データ信号n0,o1を出力している。出力データ信号n0はサイクルT5でレジスタファイル内蔵型プロセッシングエレメントPErに書き込まれている。そして,次のコンテキスト1において,リコンフィグデータ更新時のサイクルT6で,プロセッシングエレメントPE1が,レジスタファイル内蔵型プロセッシングエレメントPErから読み出される入力データ信号n0を入力し,1サイクル後のサイクルT7で演算結果データとして出力データ信号o2を出力している。このように,レジスタファイル内蔵型プロセッシングエレメントPErを介してデータn0のやり取りを行うことは,プロセッシングエレメントPErとそれに接続するための配線コストを消費してしまい,ハードウエアを無駄に消費することを意味する。また,レジスタファイル内蔵型プロセッシングエレメントPErへの書き込みや読み出しのレイテンシが,データフローの性能低下を招くことにもなる。[実施の形態におけるプロセッシングエレメント]本実施の形態におけるプロセッシングエレメントは,コンフィグレーションデータによりホールドモードに構築可能である。ホールドモードに構築されたプロセッシングエレメントは,バリッドを示す入力バリッド信号が入力されなくても,コンフィグレーションが更新された時の入力データ信号をラッチし,コンフィグレーションされた演算処理回路のレイテンシ後に出力バリッド信号をバリッドにすると共に演算処理された出力データ信号を出力する。したがって,図12で説明したように連続する別のコンテキストの間でデータ信号のやり取りをすることなく,先行するコンテキスト内のプロセッシングエレメントの出力データ信号を,後続のコンテキスト内の別のプロセッシングエレメントが入力データ信号として入力することができる。それにより,ハードウエアを無駄に消費することがなく,レジスタファイル内蔵型プロセッシングエレメントへの書き込みや読み出しのレイテンシの問題を回避できる。つまり,図12に破線で示したように,サイクルT6でプロセッシングエレメントPE0が未だ保持している出力データ信号n0を,サイクルT7でプロセッシングエレメントPE1が入力データ信号n0として入力し演算処理を行う。そして,その後プロセッシングエレメントPE0が新たな演算結果i4i5を入力しないようにするために,プロセッシングエレメントPE1はサイクルT6の入力データ信号n0を入力データ保持レジスタにラッチして保持する。図13は,本実施の形態における2つのコンテキストに分割された例を示す図である。すなわち,図11と同様に,図10のプロセッシングエレメントPEaPEbを含む回路単位53を構築するPE0PE1を有するコンテキスト0と,図10のプロセッシングエレメントPEcPEdPEeを含む回路単位54を構築するPE0PE1PE2を有するコンテキスト1とに分割されている。そして,コンテキスト0では,入力データ信号i0i3が入力され,出力データ信号o1が出力されている。一方,コンテキスト1では,入力データ信号i4i6が入力され,出力データ信号o2o3が出力されている。ただし,図11と異なり,コンテキスト1のプロセッシングエレメントPE1が,コンテキスト1に更新された時に,コンテキスト0においてプロセッシングエレメントPE0が出力して保持している出力データ信号n0を,入力している。そのために,コンテキスト1においてプロセッシングエレメントPE1はホールドモードに構築されている。それ以外のプロセッシングエレメントPE0PE2はホールドモードには構築されていない。図14は,本実施の形態におけるプロセッシングエレメントの構成図である。このプロセッシングエレメントPEは,ホールドモードを有効にするコンフィグレーションデータが与えられると,ホールドモードに構築される。図14のプロセッシングエレメントPEは,図2のPEと同様に,コンフィグレーション制御回路20と,バリッド信号制御回路22と,演算処理回路24と,出力バリッド信号を保持する出力バリッド信号保持レジスタFF2と,出力データ信号保持レジスタFF3とを有する。さらに,このプロセッシングエレメントPEは,コンフィグレーションデータにホールドモード信号が含まれ,コンフィグレーション制御回路20が,ホールドモードを有効にするコンフィグレーションデータに応答して,ホールドモード信号Hmodeを出力する。さらに,プロセッシングエレメントPEは,入力データ信号DI0DI1を保持する入力データ保持レジスタFF0FF1と,演算処理回路24に入力する内部入力データ信号iDI0iDI1を選択するセレクタSEL0SEL1と,入力ホールド制御回路27と,出力データ保持レジスタFF3と,出力バリッド信号を生成する回路25とその出力バリッド信号保持レジスタFF2とを有する。図15は,図14のプロセッシングエレメントの詳細な構成図である。図15において,コンフィグレーション制御回路20は,3つの回路20a,20b,20cを有する。第1のコンフィグレーション制御回路20aは,フェッチイネーブル信号FETCHENがHレベルのときに,バリッドモード信号CFGVMODEをクロックCLKの立ち上がりエッジでラッチするフリップフロップであるレジスタFFaを有する。第2のコンフィグレーション制御回路20bは,フェッチイネーブル信号FETCHENがHレベルのときに,ホールドモード信号CFGDHMODEをクロックCLKの立ち上がりエッジでラッチするレジスタFFbを有する。そして,第3のコンフィグレーション制御回路20cは,フェッチイネーブル信号FETCHENがHレベルのときに,オペレーションコードCFGOPECODEをクロックCLKの立ち上がりエッジでラッチするレジスタFFdを有する。これらのレジスタFFaFFbFFdは,ラッチする信号のビット数に対応しており,またコンフィグレーションリセット信号CRSTXがLレベルのときにリセットされる。そして,それぞれラッチされたコンフィグレーション信号は内部に分配される。入力ホールド制御回路27は,フェッチイネーブル信号FETCHENをクロックCLKに応答してラッチして1クロックサイクル遅延した遅延フェッチイネーブル信号srfetchen1dを生成するフリップフロップFFcと,ホールドモード信号srcfgdhmodeと遅延フェッチイネーブル信号srfetchen1dを入力するANDゲート62,63とANDゲート64,65とを有する。これらにより入力データ保持レジスタFF0FF1のイネーブル信号と,セレクタSLE0SEL1への選択信号を生成する。セレクタSEL0SEL1は,それぞれセレクタ回路S1S2とS3S4を有する。セレクタ回路S2S4がホールドモード1と非ホールドモード0とに応じて入力信号を選択し,セレクタ回路S1S3がホールドモード時において入力信号を切り替える。ホールドモード信号srcfgdhmodeがLレベル非ホールドモードになると,セレクタ回路S2S4は0側を選択し,入力データ信号DI0DI1を演算処理回路24に入力する。一方,ホールドモード信号srcfgdhmodeがHレベルホールドモードになると,セレクタ回路S2S4は1側を選択し,セレクタ回路S1S3の出力を演算処理回路24に入力する。さらに,セレクタ回路S1S3は,ANDゲート62,63の出力1または0に応じて,入力データ信号DI0DI1か,入力データ保持レジスタFF0FF1の出力かを選択する。そして,ホールドモード信号srcfgdhmodeがHレベルの場合に,ANDゲート62,63の出力は,コンフィグレーションの更新時のフリップフロップFFcの出力のLレベルにより,Lレベルになり,更新から1クロック遅延して生成されるフリップフロップFFcの出力のHレベルにより,Hレベルになる。つまり,セレクタ回路S1S2は,ホールドモードに更新されたとき,更新時のクロックサイクルで入力データ信号DI0DI1を選択し,更新時の次のクロックサイクル以降は入力データ保持レジスタFF0FF1に保持されている入力データ信号を選択する。さらに,バリッド信号制御回路22は,前述のセレクタ回路221に加えて,入力バリッド信号VI0VI1とホールドモード信号srcfgdhmode10との論理和を生成するORゲート60,61とを有する。すなわち,バリッド信号制御回路22は,非ホールドモードの場合は入力バリッド信号VI0VI1がHレベルの時に内部バリッド信号ivinをHレベルにし,ホールドモードの場合は入力バリッド信号VI0VI1がHレベルの時に加えて,ホールドモード信号srcfgdhmode10がHレベルの時も内部バリッド信号ivinをHレベルにする。出力バリッド信号生成回路25は,内部バリッド信号ivinを反転するインバータ25aと,それとフェッチイネーブル信号FETCHENとの論理和をとるORゲート25bと,その出力を反転するインバータ25cとを有する。これにより,出力バリッド信号生成回路25は,フェッチイネーブル信号FETCHENがHレベルになるとクロックCLKに同期して外部バリッド信号VOをLレベルインバリッドにし,フェッチイネーブル信号FETCHENがLレベルの期間は,内部バリッド信号ivinがHレベルなるとクロックCLKに同期して外部バリッド信号VOをHレベルバリッドにする。また,出力バリッド信号生成回路25の最終段のフリップフロップFF2は,クロックCLKの1サイクルのレイテンシを有し,これは演算処理回路24の演算処理のレイテンシが1であることに対応している。したがって,このフリップフロップFF2は,コンフィグレーションデータに応じて演算処理回路24のレイテンシと同じレイテンシになるように構築される。また,ORゲート70,71とインバータ72は,出力データ保持レジスタFF3のイネーブル信号を生成する回路である。この回路は,フェッチイネーブル信号FETCHENがHレベルになるとFF3のイネーブル信号をLレベルにして出力データ保持レジスタFF3のラッチ動作を禁止し,入力バリッド信号VI0VI1がHレベルになると内部バリッド信号ivinがHレベルになりFF3のイネーブル信号をHレベルにしてFF3のラッチ動作を許可し,さらに,ホールドモード信号srcfgdhmodeがHレベルになるときも内部バリッド信号ivinがHレベルになりFF3のイネーブル信号をHレベルにしてFF3のラッチ動作を許可する。図16は,図15のプロセッシングエレメントの動作例を示すタイミングチャートである。図16でも,図12と同様に,クロックサイクルT1でフェッチイネーブル信号FETCHENがHレベルになりT2でコンフィグレーションが更新され,プロセッシングエレメントはサイクルT2T5でコンテキスト0に構築される。同様に,サイクルT5でフェッチイネーブル信号FETCHENがHレベルになりT6でコンフィグレーションが更新され,プロセッシングエレメントはサイクルT6T9でコンテキスト1に構築される。図16の例では,コンテキスト0では,バリッドモードCFGVMODEが00,ホールドモードCFGVMODEが00,オペレーションコードCFGOPECODEがadd加算演算になり,コンテキスト1では,バリッドモードCFGVMODEが00,ホールドモードCFGVMODEが11,オペレーションコードCFGOPECODEがsub減算演算になっている。つまり,コンテキスト0では非ホールドモードに構築され,コンテキスト1ではホールドモードに構築される。まず,コンテキスト0の非ホールドモードの場合について説明する。サイクルT1でフェッチイネーブル信号FETCHENがHレベルになり,次のサイクルT2のクロックCLKの立ち上がりエッジでフリップフロップFFaFFbFFdが各コンフィグレーションデータをラッチし,ラッチしたコンフィグレーションデータにより内部の回路が構築される。前述のとおり,ホールドモードCFGDHMODEが00であるので,内部ホールドモード信号srcfgdhmode10が共にLレベルになり,セレクタSEL0SEL1のセレクタ回路S2S4は共に0側を選択し,入力データ信号DI0DI1が演算処理回路24の入力信号iDI0iDI1になる。サイクルT3で入力バリッド信号VI0VI1がHレベルになると,バリッド信号制御回路22が内部バリッド信号ivinをHレベルにする。これで出力データ保持レジスタFF3はイネーブル状態になる。また,出力バリッド保持レジスタFF2はストップ信号STOPがLレベルであるのでイネーブル状態になっている。演算処理部24は,入力信号iDI0iDI1である入力データ信号i0i1の減算処理をレイテンシ1で行い,サイクルT4で演算結果データを出力し,出力データ保持レジスタFF3が出力データ信号o0を出力する。同様に,出力バリッド信号生成回路25の最終段のフリップフロップFF2が,入力バリッド信号VI0VI1がHレベルになるサイクルT3からレイテンシ1後のサイクルT4で,出力データ信号o0の出力に同期して,出力バリッド信号VOをHレベルにする。このように,非ホールドモードでは,演算処理回路24が常時入力データ信号DI0DI1を入力し,入力バリッド信号VI0VI1がHレベルに対応する入力データ信号i0i1に対応する出力データ信号o0の出力に同期して出力バリッド信号VOをHレベルにする。これにより,実質的に,有効な入力データ信号しか演算されず,それに対応する有効な出力データ信号だけが有効な信号として出力される。演算そのものの論理と,バリッド,インバリッド判定の論理を分けることで,論理回路の段数を短くしている。次に,コンテキスト1のホールドモードの場合について説明する。ホールドモードに構築されたプロセッシングエレメントPE1では,入力バリッド信号VI0VI1がバリッド,インバリッドにかかわらず,入力データ保持レジスタFF0FF1が更新時サイクルT6の入力データ信号i2i3をサイクルT7でのクロックCLKの立ち上がりエッジで保持し,演算処理回路24が入力データ保持レジスタに保持された入力データ信号i2i3について演算処理を行う。さらに,図15の例では,セレクタ回路S1S3を設けて,更新時サイクルT6での入力データ信号i2i3をサイクルT6のタイミングから演算処理回路24に入力している。まず,入力データ保持レジスタFF0FF1とセレクタSEL0SEL1側について説明する。サイクルT5でフェッチイネーブル信号FETCHENがHレベルになり,次のサイクルT6のクロックCLKの立ち上がりエッジでフリップフロップFFaFFbFFdが各コンフィグレーションデータをラッチし,ラッチしたコンフィグレーションデータにより内部の回路が構築される。今度はホールドモードCFGDHMODEが11であるので,内部ホールドモード信号srcfgdhmode10が共にHレベルになり,セレクタSEL0SEL1のセレクタ回路S2S4は共に1側を選択する。さらに,サイクルT6では,フリップフロップFFcが,サイクルT5のフェッチイネーブル信号FETCHENのHレベルをクロックCLKの立ち上がりエッジでラッチし,1クロック遅延した遅延フェッチイネーブル信号srfetchen1dをHレベルにする。その結果,サイクルT6だけ,ANDゲート62,63の出力はHレベルになり,セレクタ回路S1S3が0側を選択して,入力データ信号i2i3を演算処理回路24の入力信号iDI0iDI1として出力する。これにより,サイクルT6から演算処理回路24は入力データ信号i2i3について減算処理を開始する。同時に,サイクルT6だけANDゲート64,65の出力もHレベルになるので,入力データ保持レジスタFF0FF1はイネーブル状態になり,次のサイクルT7のクロックCLKの立ち上がりエッジに応答してサイクルT6での入力データ信号i2i3をラッチする。次のサイクルT7以降では,遅延フェッチイネーブル信号srfetchen1dがLレベルなるため,ANDゲート62-65の出力がLレベルになり,セレクタ回路S1S3は0側を選択し,入力データ保持レジスタFF0FF1が保持する入力データ信号i2i3が演算処理回路24に入力される。しかも,サイクルT7以降は,入力データ保持レジスタFF0FF1のイネーブル信号はLレベルになり,新たな入力データ信号i4i5を保持することはない。このように,データホールドモードに構築されたプロセッシングエレメントは,コンフィグレーションデータの更新時T6における入力データ信号DI0DI1を,直接,演算処理回路24に入力して演算を開始させ,更新直後T7において入力データ保持レジスタFF0FF1が入力データ信号DI0DI1をラッチし,T7以後保持した入力データ信号を演算処理回路24に出力する。一方,バリッド信号側では次のような動作になる。まず,サイクルT6では,サイクルT5のフェッチイネーブル信号FETCHENのHレベルの反転が出力バリッド保持レジスタFF2に取り込まれ,出力バリッド信号VOはサイクルT6だけLレベルになる。一方,サイクルT6のクロックCLKの立ち上がりエッジで取り込まれた内部ホールドモード信号srcfgdhmode10のHレベルにより,入力バリッド信号VI0VI1がバリッドかインバリッドかにかかわらず,内部バリッド信号ivinがHレベルになる。これで,サイクルT6での入力データ信号DI0DI1は,実質的に有効な入力データ信号として取り扱われる。サイクルT5でのフェッチイネーブル信号FETCHENのHレベルによりORゲート71の出力信号keepffdがHレベルになり,サイクルT5だけ出力データ保持レジスタFF3はディセーブル状態になるが,サイクルT6以降は内部バリッド信号ivinのHレベルによりイネーブル状態になる。サイクルT6からレイテンシ1後のサイクルT7で,演算処理回路24は演算結果データを出力し,出力データ保持レジスタFF3は出力データ信号o1を出力する。これに同期して,出力バリッド信号生成回路25と出力バリッド保持レジスタFF2とが,出力バリッド信号VOをHレベルにする。これにより,プロセッシングエレメントに接続された後段の回路は,出力データ信号o1を有効な信号として入力する。図17は,図13のコンテキスト0,1について,本実施の形態のプロセッシングエレメントのホールドモードを利用した場合の動作を示すタイミングチャート図である。図13では,コンテキスト0でプロセッシングエレメントPE0が生成した出力データ信号n0を,コンテキスト1に更新された時に,プロセッシングエレメントPE1がその出力データ信号n0を入力して保持する。そして,コンテキスト1では,少なくともプロセッシングエレメントPE2は非ホールドモードにコンフィグレーションされ,コンテキスト1でプロセッシングエレメントPE0が新たに生成した出力データ信号を入力する。図17において,各プロセッシングエレメントは,クロックサイクルT1のフェッチイネーブル信号FETCHENのHレベルによりサイクルT2でコンフィグレーションデータが取り込まれ,コンテキスト0の内部回路が構築される。つまり,図13に示されるように,プロセッシングエレメントPE0は入力データ信号i0i1を入力し乗算し乗算値である出力データ信号n0を出力する回路に,プロセッシングエレメントPE1は入力データ信号i2i3を入力し加算し加算値である出力データ信号o1を出力する回路にそれぞれ構築コンフィグレーションされる。いずれのプロセッシングエレメントPE0PE1も,非ホールドモードにコンフィグレーションされている。従って,図17において,プロセッシングエレメントPE0は,サイクルT3でHレベルの入力バリッド信号VI0VI1と共に入力された入力データ信号i0i1を乗算し,レイテンシ1後のサイクルT4でその出力データ信号DOをHレベルの出力バリッド信号VOとともに出力する。この出力データ信号n0は,レジスタファイル内蔵型プロセッシングエレメントに書き込まれることはない。プロセッシングエレメントPE1も同様に,サイクルT3でHレベルの入力バリッド信号VI0VI1と共に入力された入力データ信号i2i3を加算し,レイテンシ1サイクル後のサイクルT4でその出力データ信号D0をHレベルの出力バリッド信号VOとともに出力する。この場合,プロセッシングエレメントPE1は非ホールドモードであるので,入力データ保持レジスタFF0FF1には入力データ信号は保持されない。入力データ信号DI0DI1は,コンテキスト0に更新された後継続して演算処理回路24に入力され続ける。次に,サイクルT5のフェッチイネーブル信号FETCHENのHレベルによりサイクルT6でコンフィグレーションデータが取り込まれ,コンテキスト1の内部回路が構築される。つまり,図13に示されるように,プロセッシングエレメントPE0は入力データ信号i4i5を入力し減算し減算結果を出力データ信号として出力するよう構築され,プロセッシングエレメントPE2は入力データ信号i6とプロセッシングエレメントPE0の出力データ信号とを入力し加算し加算結果を出力データ信号o3として出力するよう構築される。これらのプロセッシングエレメントPE0PE1は非ホールドモードに構築される。さらに,プロセッシングエレメントPE0の出力端子はプロセッシングエレメントPE1の入力端子に接続されるように構築されるとともに,プロセッシングエレメントPE1は入力データ信号を反転して出力データ信号o2を出力するように構築される。プロセッシングエレメントPE1はホールドモードに構築される。サイクルT6で新たなコンフィグレーションデータが取り込まれて内部に設定されることで,コンテキスト0からコンテキスト1に更新される。このコンフィグレーションの更新時であるサイクルT6では,各プロセッシングエレメントの出力バリッド信号VOはLレベルになり,プロセッシングエレメントPE0は未だコンテキスト0で生成した出力データ信号n0を出力データ保持レジスタFF3内に保持している。そこで,プロセッシングエレメントPE1は,コンフィグレーションの更新時であるサイクルT6において入力データ信号DI0として入力されるデータ信号n0を,演算処理回路24に入力する。演算処理回路24はサイクルT6から反転演算を開始する。さらに,次のサイクルT7のクロックCLKの立ち上がりエッジで,サイクルT6で入力されている入力データ信号n0を,入力データ保持レジスタFF0がラッチし演算処理回路24に入力する。ラッチされた入力データ信号n0はその後継続して演算処理回路24に入力される。そして,サイクルT6の入力データ信号n0に対する演算結果信号がレイテンシ1後のサイクルT7で出力データ信号o2として出力される。つまり,サイクルT6で入力バリッド信号VI0VI1がHレベルバリッドでないにもかかわらず,サイクルT7で出力バリッド信号VOがHレベルになっている。これは,図15,16で説明したとおり,ホールドモード信号によって出力バリッド信号VOがHレベルにされたからである。その結果,プロセッシングエレメントPE1は,サイクルT7で有効な出力データ信号o2を出力することになる。そして,プロセッシングエレメントPE1では,サイクルT7でプロセッシングエレメントPE0の出力データ信号i4i5が入力データ信号DI0に入力されているが,入力データ保持レジスタFF0は入力データ信号n0を保持し続けるので,プロセッシングエレメントPE0の出力データ信号i4i5はラッチされず内部に取り込まれない。一方,プロセッシングエレメントPE2も,サイクルT6でプロセッシングエレメントPE0の出力データ信号n0を入力しているが,非ホールドモードであるので,それに対する演算結果がバリッドHレベルの出力バリッド信号VOと共に出力されることはない。[本実施の形態の変型例]図15のプロセッシングエレメントは,変型例として,セレクタSEL0SEL1のセレクタ回路S1S3を設けないで,コンフィグレーション更新時の入力データ信号を入力データ保持レジスタFF0FF1が保持してそれをセレクタ回路S2S4を経由して演算処理回路24に入力しても良い。その場合は,演算処理回路24による演算処理の開始が1クロックサイクルだけ遅くなる。そして,演算処理の開始が1サイクル遅くなるので,Hレベルのホールドモード信号に基づいて生成されるHレベルの出力バリッド信号VOも1サイクル遅くする。そのためには,図15において,ORゲート60,61の後段に1クロックサイクル遅延させるフリップフロップを挿入する構成にすればよい。図18は,本実施の形態の変型例における動作を示すタイミングチャート図である。この図は,図16に対応する図である。図18では,図16と異なり,サイクルT6において入力データ信号DI0DI1の信号i2i3が,演算制御回路24にその入力信号iDI0iDI1として入力されていない。サイクルT6の入力データ信号DI0DI1の信号i2i3は,次のサイクルT7のクロックCLKの立ち上がりエッジで入力データ保持レジスタFF0FF1に保持され,演算制御回路24にその入力信号iDI0iDI1として入力されている。さらに,図18では,図16と異なり,サイクルT8で演算結果の出力データ信号o1が,Hレベルの出力バリッド信号と共に出力されている。以上説明したとおり,本実施の形態によればプロセッシングエレメントにホールドモードの構成を追加し,連続するコンテキスト間のデータの受け渡しを,後続のコンテキスト内のホールドモード構成にしたプロセッシングエレメントがコンフィグレーションの更新時に行う。したがって,コンテキスト間のデータの受け渡しをレジスタファイル内蔵型プロセッシングエレメントを介して行う必要はなく,ハードウエアの無駄な消費や無駄なレイテンシをなくすことができる。以上の実施の形態をまとめると,次の付記のとおりである。付記1コンフィグレーションデータに基づいて任意の演算状態に構築されるリコンフィグ可能な集積回路装置において,それぞれ演算回路を有し,前記コンフィグレーションデータに基づいて,任意の演算状態に構築可能な複数のプロセッシングエレメントと,前記コンフィグレーションデータに基づいて,前記複数のプロセッシングエレメントを任意の状態で接続するプロセッシングエレメント間ネットワークとを有し,前記プロセッシングエレメントは,入力バリッド信号と入力データ信号を入力し,出力バリッド信号と出力データ信号を出力し,更に,入力データ保持レジスタと,前記入力データ信号を演算する演算処理回路と,前記演算処理回路の演算結果データを保持する出力データ保持レジスタとを有し,ホールドモードを有効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,前記入力バリッド信号がバリッド,インバリッドにかかわらず,前記入力データ保持レジスタが当該更新時の入力データ信号を保持し,前記演算処理回路は前記入力データ保持レジスタに保持された入力データ信号について演算処理を行うリコンフィグ可能な集積回路装置。付記2付記1において,前記プロセッシングエレメントは,前記ホールドモードを有効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,前記更新直後にホールドモード信号に応答して,前記入力データ保持レジスタが前記入力データ信号を保持し,前記入力バリッド信号がインバリッドであっても前記ホールドモード信号に応答して,前記演算結果データに対応する出力データ信号の出力に同期して前記出力バリッド信号を出力するリコンフィグ可能な集積回路装置。付記3付記2において,前記プロセッシングエレメントは,前記ホールドモードを無効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,バリッドな入力バリッド信号に応答して,前記演算結果データに対応する出力データ信号の出力に同期して前記出力バリッド信号を出力するリコンフィグ可能な集積回路装置。付記4付記1または2において,前記プロセッシングエレメントは,前記入力データ信号を前記演算処理回路に入力するセレクタを有し,前記ホールドモードを有効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,前記セレクタは,前記更新時に入力される入力データ信号を前記入力データ保持レジスタを介さずに前記演算処理回路に入力した後,前記入力データ保持レジスタに保持された入力データ信号を前記演算処理回路に入力し,前記ホールドモードを無効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,前記セレクタは,前記入力される前記入力データ信号を前記入力データ保持レジスタを介さずに前記演算処理回路に入力し続けるリコンフィグ可能な集積回路装置。付記5付記2または4において前記プロセッシングエレメントは,フェッチイネーブル信号に応答して前記コンフィグレーションデータを入力してコンフィグレーションを更新し,ホールドモードか否かにかかわらず,前記フェッチイネーブル信号に応答して,前記更新時に前記出力バリッド信号をインバリッドにするとともに前記出力データ保持レジスタによる出力データ信号の取り込みを不能状態にするリコンフィグ可能な集積回路装置。付記6付記2または4において,第1のコンフィグレーションデータでコンフィグレーションされる回路を有する第1のコンテキストと,前記第1のコンテキストに後続し第2のコンフィグレーションデータでコンフィグレーションされる回路を有する第2のコンテキストとの間において,前記第1のコンテキストに含まれる第1のプロセッシングエレメントの出力データ保持レジスタが保持する出力データ信号を,前記第2のコンテキストへの更新時に,前記第2のコンテキストに含まれ前記ホールドモードにコンフィグレーションされた第2のプロセッシングエレメントが入力し,前記入力データ保持レジスタが保持する,リコンフィグ可能な集積回路装置。付記7付記4において,第1のコンフィグレーションデータでコンフィグレーションされる回路を有する第1のコンテキストと,前記第1のコンテキストに後続し第2のコンフィグレーションデータでコンフィグレーションされる回路を有する第2のコンテキストとの間において,前記第1のコンテキストに含まれる第1のプロセッシングエレメントの出力データ保持レジスタが保持する第1の出力データ信号を,前記第2のコンテキストへの更新時に,前記第2のコンテキストに含まれ前記ホールドモードにコンフィグレーションされた第2のプロセッシングエレメントが入力して前記演算処理回路が演算処理を開始し,前記更新時の前記第1の出力データ信号を入力データ信号として前記入力データ保持レジスタに保持し,前記入力データ保持レジスタに保持された入力データ信号を前記演算処理回路に入力する,リコンフィグ可能な集積回路装置。付記8付記6または7において,前記第2のコンテキストでは,前記第1のプロセッシングエレメントの出力端子が,前記第2のプロセッシングエレメントの入力端子に接続されるとともに,前記ホールドモードを無効とするコンフィグレーションデータでコンフィグレーションされた第3のプロセッシングエレメントの入力端子にも接続される,リコンフィグ可能な集積回路装置。付記9コンフィグレーションデータに基づいて任意の演算状態に構築されるリコンフィグ可能な集積回路装置において,それぞれ演算回路を有し,前記コンフィグレーションデータに基づいて,任意の演算状態に構築可能な複数のプロセッシングエレメントと,前記コンフィグレーションデータに基づいて,前記複数のプロセッシングエレメントを任意の状態で接続するプロセッシングエレメント間ネットワークとを有し,前記プロセッシングエレメントは,入力バリッド信号と入力データ信号を入力し,出力バリッド信号と出力データ信号を出力し,更に,前記入力データ信号を演算する演算処理回路と,前記演算処理回路の演算結果データを保持する出力データ保持レジスタと,前記出力バリッド信号を生成する出力バリッド信号生成回路とを有し,前記プロセッシングエレメントにおいて,ホールドモードを有効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,当該更新時の入力データ信号を前記演算処理回路が演算し,前記出力バリッド信号生成回路が,前記入力バリッド信号のバリッド,インバリッドにかかわらずホールドモード信号に応答して,前記更新時の入力データ信号に対応する前記出力データ信号の出力に同期して前記出力バリッド信号を出力し,前記ホールドモードを無効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,前記出力バリッド信号生成回路が,バリッドな入力バリッド信号に応答して,前記バリッドな入力バリッド信号時の入力データ信号に対応する出力データ信号の出力に同期して前記出力バリッド信号を出力するリコンフィグ可能な集積回路装置。付記10付記9において,前記プロセッシングエレメントは,更に入力データ保持レジスタを有し,前記プロセッシングエレメントにおいて,ホールドモードを有効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,当該更新時の入力データ信号を前記入力データ保持レジスタが保持して前記演算処理回路に出力し,前記ホールドモードを無効とするコンフィグレーションデータでコンフィグレーションが更新された場合は,前記更新後に入力される入力データ信号を前記入力データ保持レジスタを介することなく前記演算処理回路が入力して演算処理するリコンフィグ可能な集積回路装置。付記11付記9または10において,第1のコンフィグレーションデータでコンフィグレーションされる回路を有する第1のコンテキストと,前記第1のコンテキストに後続し第2のコンフィグレーションデータでコンフィグレーションされる回路を有する第2のコンテキストとの間において,前記第1のコンテキストに含まれる第1のプロセッシングエレメントの出力データ保持レジスタが保持する出力データ信号を,前記第2のコンテキストへの更新時に,前記第2のコンテキストに含まれ前記ホールドモードにコンフィグレーションされた第2のプロセッシングエレメントが入力し前記演算処理回路が演算処理をする,リコンフィグ可能な集積回路装置。付記12付記10において,第1のコンフィグレーションデータでコンフィグレーションされる回路を有する第1のコンテキストと,前記第1のコンテキストに後続し第2のコンフィグレーションデータでコンフィグレーションされる回路を有する第2のコンテキストとの間において,前記第1のコンテキストに含まれる第1のプロセッシングエレメントの出力データ保持レジスタが保持する第1の出力データ信号を,前記第2のコンテキストへの更新時に,前記第2のコンテキストに含まれ前記ホールドモードにリコンフィグレーションされた第2のプロセッシングエレメントが入力して前記演算処理回路が演算処理を開始し,前記更新時の前記第1の出力データ信号を入力データ信号として前記入力データ保持レジスタに保持し,前記入力データ保持レジスタに保持された入力データ信号を前記演算処理回路に入力する,リコンフィグ可能な集積回路装置。"