(57)【特許請求の範囲】
【請求項１】
コンフィグレーションデータに基づいて任意の演算状態に構築されるリコンフィグ可能な集積回路装置において，
リコンフィグ可能な複数のプロセッサエレメントと，前記プロセッサエレメント間を任意の状態で接続するプロセッサエレメントネットワークとを有するリコンフィグ回路ユニットと，
前記プロセッサエレメントと前記プロセッサエレメントネットワークにコンフィグレーションデータを供給して，前記リコンフィグ回路ユニットを任意の状態に構築するコンフィグレーション制御部とを有し，
リセットに応答して，前記リコンフィグ回路ユニット内の少なくとも一部が，内蔵メモリ又は外付けのメモリに初期値を書き込むメモリ初期化回路に構築され，
当該メモリ初期化回路の動作完了後に，前記コンフィグレーション制御部が前記コンフィグレーションデータの供給を開始することを特徴とするリコンフィグ可能な集積回路装置。
【請求項２】
請求項１記載のリコンフィグ可能な集積回路装置において，
さらに，コンフィグレーション制御部からの状態遷移信号に応答して，前記コンフィグレーションデータを取り込むコンフィグレーションレジスタを有し，
当該コンフィグレーションレジスタに取り込まれたコンフィグレーションデータに基づいて，前記リコンフィグ回路ユニットが前記任意の状態に構築され，
前記リセットに応答して，前記コンフィグレーションレジスタが前記メモリ初期化回路状態に対応する初期化コンフィグレーションデータに初期化されることを特徴とするリコンフィグ可能な集積回路装置。
【請求項３】
請求項２記載のリコンフィグ可能な集積回路装置において，
前記コンフィグレーションレジスタは，複数のフリップフロップを有し，前記リセット時に生成される外部リセット解除信号が当該複数のフリップフロップのクリア端子またはプリセット端子に選択的に供給され，当該外部リセット解除信号の発生により，前記複数のフリップフロップに前記初期化コンフィグレーションデータがセットされることを特徴とするリコンフィグ可能な集積回路装置。
【請求項４】
請求項２記載のリコンフィグ可能な集積回路装置において，
さらに，被初期化回路を有し，
前記コンフィグレーションレジスタは，前記メモリ初期化回路を構築する第１のコンフィグレーションデータに初期化される第１のコンフィグレーションレジスタと，前記被初期化回路を初期化する追加の初期化回路を構築する第２のコンフィグレーションデータに初期化される第２のコンフィグレーションレジスタとを有し，
前記リセットは，電源投入時に生成される第１のリセット信号とＣＰＵにより生成される第２のリセット信号により発生し，
前記第１のリセット信号に応答して，前記第１及び第２のコンフィグレーションレジスタが初期化され，前記第２のリセット信号に応答して前記第１のコンフィグレーションレジスタが初期化され前記第２のコンフィグレーションレジスタは初期化されないことを特徴とするリコンフィグ可能な集積回路装置。
【請求項５】
請求項１乃至４のいずれかに記載のリコンフィグ可能な集積回路装置において，
前記内蔵メモリは，内部バスに接続されたワークメモリと，前記リコンフィグ回路ユニット内のメモリエレメントの少なくとも１つであり，
前記メモリ初期化回路は，前記内蔵メモリ，外付けメモリをそれぞれ初期化する複数の回路を有することを特徴とするリコンフィグ可能な集積回路装置。
【請求項６】
請求項１記載のリコンフィグ可能な集積回路装置において，
前記リセットは，電源投入時に生成される第１のリセット信号，ＣＰＵにより生成される第２のリセット信号のいずれかまたは両方により発生することを特徴とするリコンフィグ可能な集積回路装置。
【請求項７】
コンフィグレーションデータに基づいて任意の演算状態に構築されるリコンフィグ可能な集積回路装置において，
リコンフィグ可能な複数のプロセッサエレメントと，前記プロセッサエレメント間を任意の状態で接続するプロセッサエレメントネットワークとを有するリコンフィグ回路ユニットと，
前記リコンフィグ回路ユニットにコンフィグレーションデータを供給して，前記リコンフィグ回路ユニットを任意の状態に構築するコンフィグレーション制御部とを有し，
リセット信号に応答して，前記リコンフィグ回路ユニットに供給される前記コンフィグレーションデータが，初期化用コンフィグレーションデータにセットされ，当該初期化用コンフィグレーションデータに基づいて，前記リコンフィグ回路ユニット内の少なくとも一部が，メモリ回路に初期値を書き込むメモリ初期化回路に構築されることを特徴とするリコンフィグ可能な集積回路装置。
【請求項８】
請求項１乃至７のいずれかに記載のリコンフィグ可能な集積回路装置において，
前記メモリ初期化回路は，初期化対象のメモリ回路のアドレスを順次発生するアドレス発生回路と前記初期値を生成する初期値発生回路とを有し，当該アドレス発生回路と初期値発生回路とが前記コンフィグレーションデータに基づいて前記プロセッサエレメントと前記プロセッサエレメントネットワークとにより構築されることを特徴とするリコンフィグ可能な集積回路装置。
【請求項９】
請求項８記載のリコンフィグ可能な集積回路装置において，
前記アドレス発生回路は，クロックに同期して前記アドレスを順次発生し，前記初期値発生回路は，クロックに同期して当該アドレスに書き込まれる初期値を発生し，当該アドレスと初期値が初期化対象のメモリ回路に供給されることを特徴とするリコンフィグ可能な集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，再構築可能な（リコンフィグアラブル，以下単にリコンフィグ可能と称する）集積回路装置に関し，特に，電源投入時に内外のメモリの初期化を行う初期化回路を自動構築するリコンフィグ可能な集積回路装置に関する。
【背景技術】
【０００２】
リコンフィグ可能な集積回路装置は，複数のプロセッサエレメントと，プロセッサエレメント間を接続するネットワークとを有し，シーケンサが外部または内部のイベントに応答して出力するコンフィグレーションデータに基づいて，プロセッサエレメントとネットワークとが任意の演算状態または演算回路に構築される。
【０００３】
従来の一般的なプログラム可能なマイクロプロセッサは，メモリに記憶されている命令を順番に読み出して逐次的に処理する。したがって，１つのマイクロプロセッサで同時に実行できる命令は数個に限定され，処理能力に限界がある。
【０００４】
これに対して，上記のリコンフィグ可能な集積回路装置は，加算器，乗算器，比較器などの機能を有するＡＬＵや，遅延回路，カウンタなどの複数種類のプログラムを複数個あらかじめ設け，プロセッサエレメント間を接続するネットワークを設け，プロセッサエレメントとネットワークとをシーケンサを含む状態遷移制御部からのコンフィグレーションデータに基づいて所望の構成に再構築し，その演算状態で所定の演算を実行する。複数のプロセッサエレメントにより複数の演算回路を構築しておけば，それらの演算回路に同時にデータ処理を行わせることができる。そして，１つの演算状態でのデータ処理が完了すると，別のコンフィグレーションデータにより別の演算状態が構築され，その状態で異なるデータ処理を行う。
【０００５】
このように，リコンフィグ可能な集積回路装置は，異なる演算状態を動的に再構築することで，大量のデータに対するデータ処理能力を向上させ，全体の処理効率を高めることができる。リコンフィグ可能な集積回路装置については，たとえば特許文献１に記載されている。
【特許文献１】特開２００１−３１２４８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
一般的な集積回路装置は，電源投入時において種々の初期化処理を実行し，初期化処理が終了した後に内部リセットが解除され通常動作を行う。電源投入時の初期化処理には，例えば外部クロックに同期した内部クロックを生成するＰＬＬ回路の初期化動作，各種パラメータが設定されるレジスタの初期化，メモリ内のデータの初期化，データのダウンロードなどがある。リコンフィグ可能な集積回路装置においても，上記と同様に電源投入時において初期化処理を行う必要があり，そのために初期化処理のための回路を設けておく必要がある。または，ＣＰＵが初期化プログラムを実行する場合は，初期化プログラムをプログラムメモリ内に設けておく必要がある。
【０００７】
しかしながら，かかる初期化処理のための回路は，電源投入時の一定期間においてのみ動作するだけであり，内部リセットが解除された後の通常動作時には動作する必要がない場合がある。したがって，そのような初期化処理の回路をリコンフィグ可能な回路とは別に設けることは，回路規模の増大を招き好ましくない。初期化プログラムの場合も同様にプログラム容量を増大し好ましくない。
【０００８】
また，集積回路装置には内部メモリが内蔵され，さらに外部メモリが外付けで接続される。さらに，リコンフィグ回路ユニットを内蔵する場合は，そのリコンフィグ回路ユニットもメモリエレメントを有する。したがって，これらの複数のメモリ内のデータを初期化するために，多くの工数を必要とする。
【０００９】
そこで，本発明の目的は，電源投入等のリセット時に動作するメモリの初期化回路を専用回路として設ける必要のないまたはその回路規模を小さくしたリコンフィグ可能な集積回路装置を提供することにある。
【００１０】
また，本発明の目的は，電源投入等のリセット時に動作するメモリの初期化動作を高速化することができるリコンフィグ可能な集積回路装置を提供することにある。
【００１１】
上記の目的を達成するために，本発明の第１の側面によれば，コンフィグレーションデータに基づいて任意の演算状態に構築されるリコンフィグ可能な集積回路装置において，
リコンフィグ可能な複数のプロセッサエレメントと，前記プロセッサエレメント間を任意の状態で接続するプロセッサエレメントネットワークとを有するリコンフィグ回路ユニットと，
前記プロセッサエレメントとプロセッサエレメントネットワークにコンフィグレーションデータを供給して，前記リコンフィグ回路ユニットを任意の状態に構築するコンフィグレーション制御部とを有し，
リセットに応答して，前記リコンフィグ回路ユニット内の少なくとも一部が，内蔵メモリ又は外付けのメモリに初期値を書き込むメモリ初期化回路に構築され，
当該メモリ初期化回路の動作完了後に，前記コンフィグレーション制御部が前記コンフィグレーションデータの供給を開始することを特徴とする。
【００１２】
上記本発明の第１の側面において好ましい態様によれば，さらに，コンフィグレーション制御部からの状態遷移信号に応答して，前記コンフィグレーションデータを取り込むコンフィグレーションレジスタを有し，当該コンフィグレーションレジスタに取り込まれたコンフィグレーションデータに基づいて，前記リコンフィグ回路ユニットが前記任意の状態に構築され，前記リセットに応答して，前記コンフィグレーションレジスタが前記メモリ初期化回路状態に対応する初期化コンフィグレーションデータに初期化されることを特徴とする。
【００１３】
上記本発明の第１の側面において好ましい態様によれば，前記コンフィグレーションレジスタは，複数のフリップフロップを有し，前記リセット時に生成される外部リセット解除信号が当該複数のフリップフロップのクリア端子またはプリセット端子に選択的に供給され，当該外部リセット解除信号の発生により，前記複数のフリップフロップに前記初期化コンフィグレーションデータがセットされることを特徴とする。
【００１４】
上記本発明の第１の側面において好ましい態様によれば，さらに，被初期化回路を有し，前記コンフィグレーションレジスタは，前記メモリ初期化回路を構築する第１のコンフィグレーションデータに初期化される第１のコンフィグレーションレジスタと，前記被初期化回路を初期化する追加の初期化回路を構築する第２のコンフィグレーションデータに初期化される第２のコンフィグレーションレジスタとを有し，前記リセットは，電源投入時に生成される第１のリセット信号とＣＰＵにより生成される第２のリセット信号により発生し，前記第１のリセット信号に応答して，前記第１及び第２のコンフィグレーションレジスタが初期化され，前記第２のリセット信号に応答して前記第１のコンフィグレーションレジスタが初期化され前記第２のコンフィグレーションレジスタは初期化されないことを特徴とする。
【００１５】
上記の目的を達成するために，本発明の第２の側面によれば，コンフィグレーションデータに基づいて任意の演算状態に構築されるリコンフィグ可能な集積回路装置において，
リコンフィグ可能な複数のプロセッサエレメントと，前記プロセッサエレメント間を任意の状態で接続するプロセッサエレメントネットワークとを有するリコンフィグ回路ユニットと，
前記リコンフィグ回路ユニットにコンフィグレーションデータを供給して，前記リコンフィグ回路ユニットを任意の状態に構築するコンフィグレーション制御部とを有し，
リセット信号に応答して，前記リコンフィグ回路ユニットに供給される前記コンフィグレーションデータが，初期化用コンフィグレーションデータにセットされ，当該初期化用コンフィグレーションデータに基づいて，前記リコンフィグ回路ユニット内の少なくとも一部が，メモリ回路に初期値を書き込むメモリ初期化回路に構築されることを特徴とする。
【発明の効果】
【００１６】
本発明によれば，リセット時にメモリを初期化するメモリ初期化回路がリコンフィグ回路ユニット内に自動的に構築されるので，初期化プログラムを設ける必要がなく，また，専用回路により高速に初期化処理を行うことができる。
【発明を実施するための最良の形態】
【００１７】
以下，図面にしたがって本発明の実施の形態について説明する。但し，本発明の技術的範囲はこれらの実施の形態に限定されず，特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１８】
図１は，本実施の形態における集積回路装置の概略構成図である。集積回路装置１は，リコンフィグ可能な複数のプロセッサエレメントＰＥ１〜ＰＥ６と，それらの間を任意の状態で接続するプロセッサエレメントネットワークＮＥＴとを有するリコンフィグ回路ユニット１０と，このリコンフィグ回路ユニットのプロセッサエレメントＰＥとネットワークＮＥＴにコンフィグレーションデータＣＤを供給してリコンフィグ回路ユニット１０を任意の回路状態に構築するコンフィグレーション制御部１１とを有する。コンフィグレーション制御部１１内には，図示しないシーケンサと，コンフィグレーションデータを格納したコンフィグレーションメモリとが設けられ，シーケンサは，内外のイベントに応答して状態遷移信号１２を出力しながら，コンフィグレーションメモリから所望のコンフィグレーションデータを読み出して出力する。
【００１９】
また，リコンフィグ回路ユニット１０内には，コンフィグレーション制御部１１からの状態遷移信号１２に応答して，コンフィグレーションデータＣＤをラッチするコンフィグレーションレジスタ１３が設けられ，このコンフィグレーションレジスタ１３にラッチされるコンフィグレーションデータＣＤ１〜３，ＣＤ４〜６に基づいてプロセッサエレメントＰＥ１〜ＰＥ６の内部が任意の状態に構築され，コンフィグレーションデータＣＤＳに基づいてネットワークＮＥＴが任意の接続状態に構築される。電源投入時のリセット状態が解除された後の通常動作時において，コンフィグレーション制御部１１内のシーケンサが状態遷移を制御し，構築すべき回路状態に対応したコンフィグレーションデータＣＤを順次出力する。
【００２０】
プロセッサエレメントは，内部に演算回路を有する演算プロセッサエレメントや，内部にメモリを有するメモリプロセッサエレメントなどを含む。演算プロセッサエレメントの場合は，加算器，減算器，乗算器などを有するＡＬＵ，所定の値を出力する即値生成回路，入力データ加工部，比較器などを有し，コンフィグレーションデータに基づいて任意の演算回路状態に構築される。このように，コンフィグレーションデータにより任意の演算回路状態が構築されて，その演算回路によりデータ処理が行われるので，プロセッサエレメントＰＥへのコンフィグレーションデータはプロセッサエレメント命令の一種である。また，プロセッサエレメントネットワークＮＥＴへのコンフィグレーションデータは，プロセッサエレメント間を接続するための接続情報である。
【００２１】
集積回路装置１は，リコンフィグ回路ユニット１０以外に，再構築の対象外である固定された内部回路１４を有する。内部回路１４は，リコンフィグ回路ユニット１０内に構築された演算回路と所定の信号を送受信して所定の動作を行う。集積回路装置１には，外部からの電源ＶＣＣの投入を検出して外部リセット信号ＥＲＳＴを生成するパワーオンリセット回路１６が設けられている。そして，パワーオンリセット回路１６は，電源の投入時に外部リセット信号ＥＲＳＴをリセット状態（例えばＬレベル）にし，電源ＶＣＣの立ち上がり後に外部リセット信号ＥＲＳＴを解除状態する（例えばＨレベルにする）。つまり，Ｈレベルの外部リセット信号ＥＲＳＴは，外部リセット解除信号とも呼ぶことができる。
【００２２】
この電源投入時に生成される外部リセット解除信号ＥＲＳＴ（Ｈレベルの外部リセット信号）は，内部回路の初期化処理の開始を指示する信号である。そこで，本実施の形態では，外部リセット解除信号ＥＲＳＴに応答して，リコンフィグ回路ユニット１０内の少なくとも一部のプロセッサエレメントＰＥとネットワークＮＥＴとが初期化回路に構築される。具体的には，コンフィグレーションレジスタ１３が外部リセット解除信号ＥＲＳＴに応答して初期化コンフィグレーションデータに初期化される。そして，この初期化コンフィグレーションデータに基づいて，リコンフィグ回路ユニット１０内に初期化回路が構築される。
【００２３】
電源投入時に構築された初期化回路の動作により所定の初期化動作が終了すると，内部回路１４から内部リセット信号ＩＲＳＴがＨレベル（内部リセット解除信号）になり，それに応答して，コンフィグレーション制御部１１の通常動作が開始され，必要なコンフィグレーションデータＣＤがリコンフィグ回路ユニット１０に供給開始される。これにより，リコンフィグ回路ユニット１０内に任意の回路状態が構築される。通常動作状態になると，リコンフィグ回路ユニット１０内に構築されていた初期化回路は存在意義を失いもはや存在しない。つまり，電源投入時に利用されないリコンフィグ回路ユニットを利用して一時的に初期化回路を構築することで，固定された初期化回路を別途設けることなく，電源投入時の初期化動作を可能にすることができる。
【００２４】
なお，図１のコンフィグレーションレジスタ１３は，コンフィグレーション制御部１１内に設けられる場合もある。
【００２５】
図２は，本実施の形態における内蔵または外付けのメモリ回路を有する集積回路装置に構成図である。図２は，図１をより具体的にした構成図である。集積回路装置１は，マイクロプロセッサであり，内部回路としてプログラムを逐次実行するＣＰＵ１４０と，ＣＰＵの演算処理などに使用されるワークＲＡＭ１４２と，内部バス１４８と，外付けメモリ回路である外部ＲＡＭ２０へのアクセス制御を行う外部アクセスユニット１４４とを有する。
【００２６】
さらに，図１と同様に，複数のプロセッサエレメントＰＥを有するリコンフィグ回路ユニット１０と，それを再構築するための命令コードと結線情報であるコンフィグレーションデータＣＤを供給するコンフィグレーション制御部１１と，コンフィグレーションデータをラッチするコンフィグレーションレジスタ１３とを有する。図２の例では，リコンフィグ回路ユニット１０は，１２個のプロセッサエレメントとプロセッサエレメントネットワークＮＥＴとを有し，１２個のプロセッサエレメントは，１０個の演算プロセッサエレメントＰＥ１〜１０と，２個のメモリプロセッサエレメントＲＡＭ＃１，２とを有する。そして，リコンフィグ回路ユニット１０と内部バス１４８との間には，バスアクセスユニット１４６が設けられている。このバスアクセスユニット１４６は，リコンフィグ回路ユニット１０内に再構築される回路のバスアクセスを制御する。
【００２７】
かかる構成の集積回路装置は，ＣＰＵが内蔵するプログラムを逐次実行しながら，適切なタイミングでコンフィグレーション制御部１１に所望のコンフィグレーションデータを出力させ，コンフィグレーションレジスタ１３にラッチさせる。それによりリコンフィグ回路ユニット１０内に所望の専用回路が構築される。そして，構築された所望の専用回路が内部リソースとして，ＣＰＵに代わって専用の演算処理などを実行する。その間は，ＣＰＵは他のプログラムを実行することができる。そして，所望の専用回路が演算処理を終了すると，ＣＰＵはコンフィグレーション制御部１１に別のコンフィグレーションデータを出力させ，コンフィグレーションレジスタ１３にラッチさせる。その結果，リコンフィグ回路ユニット１０内に別の専用回路が再構築される。
【００２８】
このように，ＣＰＵ１４０がコンフィグレーション制御部１１に所望のコンフィグレーションデータＣＤを生成させることにより，リコンフィグ回路ユニット１０内に所望の専用演算回路を構築し，所望の演算処理を専用演算回路に実行させることができる。
【００２９】
上記の集積回路装置１の場合，電源投入時のリセットに応答して，ワークＲＡＭ１４２とメモリプロセッサエレメントＲＡＭ＃１，２などの内蔵メモリ回路と，外部ＲＡＭ２０の外付けメモリ回路とを初期化する必要がある。初期化の処理は，具体的には，「０」または「１」の初期値をメモリ回路内の全てのメモリセルに書き込む処理である。
【００３０】
通常のマイクロプロセッサでは，電源投入時などのリセット時に，ＣＰＵが初期化プログラムを実行して，ＣＰＵ１４０により初期値が内蔵メモリ回路及び外付けメモリ回路に書き込まれる。しかし，かかるＣＰＵ動作による初期化は，使用頻度の低い初期化プログラムを搭載する必要がありプログラムメモリ容量の観点から好ましくない。さらに，ＣＰＵ１４０により初期値をメモリに書き込む初期化処理では，ＣＰＵがメモリマップ上に配置された全てのメモリ領域に対して順次アドレスを変更して逐次的に初期値を書き込むので，メモリ容量が大きくなると，初期化処理に要する時間が長くなる。
【００３１】
そこで，本実施の形態では，電源投入時などのリセット時に，外部リセット信号ＥＲＳＴの解除状態（Ｈレベル）に応答して，メモリ初期化回路を構築するためのコンフィグレーションデータＣＤがリコンフィグ回路ユニット１０に供給される。その結果，リコンフィグ回路ユニット１０内に，メモリ初期化回路が構築される。望ましくは，初期化が必要なワークＲＡＭ１４２と，リコンフィグ回路ユニット１０内のメモリプロセッサエレメントＲＡＭ＃１，２と，外部ＲＡＭ２０とをそれぞれ初期化する４つのメモリ初期化回路が構築される。
【００３２】
そして，構築されたメモリ初期化回路が，それぞれ対応するメモリ回路に書き込みアドレスと初期値を供給して，それぞれのメモリ回路を初期化する。複数のメモリ初期化回路が構築されることで，複数のメモリ回路が並列に初期化されるので，初期化動作の時間を短くすることができる。また，ＣＰＵ１４０による初期化動作ではないので，初期化プログラムが不要になる。そして，通常動作時には，リコンフィグ回路ユニット内からメモリ初期化回路はもはや消失し，コンフィグレーション制御部１１からのコンフィグレーションデータＣＤによって所望の回路が再構築される。よって，専用のメモリ初期化回路を設けたり，初期化プログラムを設けたりすることなく，リセット時に利用されていないリコンフィグ回路ユニット１０の一部を利用して，メモリ初期化回路を再構築しメモリを初期化することができる。
【００３３】
メモリ初期化回路を構築するためのコンフィグレーションデータＣＤは，外部リセット解除信号ＥＲＳＴに応答して，コンフィグレーションレジスタ１３が初期化されることでレジスタ内に自動的に設定される。したがって，ＣＰＵ１４０による初期化プログラムの実行を伴わずに，ハードウエアリセット信号ＥＲＳＴにより，自動的にコンフィグレーションデータＣＤが生成され，リコンフィグ回路ユニット１０内にメモリ初期化回路が構築され，初期化処理が実行される。
【００３４】
また，メモリの初期化動作は，電源投入時に加えて，ＣＰＵが実行するソフトウエアによるリセット時にも必要な場合がある。したがって，ＣＰＵによるリセット動作に伴って生成されるＣＰＵリセット信号（図示せず）に応答して，コンフィグレーションレジスタ１３が初期化されてレジスタ内にメモリ初期化回路構築のためのコンフィグレーションデータＣＤを設定してもよい。
【００３５】
図３は，本実施の形態におけるコンフィグレーション制御部，コンフィグレーションレジスタ，リコンフィグ回路ユニットの具体的構成図である。コンフィグレーション制御部１１内のシーケンサＳＥＱは，内外のイベント（イベント信号ＩＶＮＴ）に応答して，状態遷移信号１２を出力するとともに，コンフィグレーションメモリＣＦＧ−ＲＡＭからコンフィグレーションデータを出力させて，コンフィグレーションレジスタ１３の各フリップフロップ１３１〜１３３にラッチさせる。このラッチされたコンフィグレーションデータＣＤは，プロセッサエレメントの状態を決める命令及びプロセッサエレメントネットワークの接続情報であり，これにより，リコンフィグ回路ユニット１０内に所望の専用演算回路が構築される。
【００３６】
これらの通常動作は，内部リセット信号ＩＲＳＴがＨレベル（解除状態）になった後に行われる。したがって，電源投入後に外部電源が所定のレベルに上昇して外部リセット信号ＥＲＳＴがＨレベルになり，さらに初期化動作が終了して内部リセット信号ＩＲＳＴがＨレベルになるまで，コンフィグレーション制御部１１は通常動作を行わない。つまり，リコンフィグ回路ユニット内には何ら回路状態及び接続状態が構築されない。そこで，電源投入時の外部リセット信号ＥＲＳＴに応答してリコンフィグレーションレジスタ１３に初期化回路構築のためのコンフィグレーションデータが設定されるようにして，リコンフィグ回路ユニット内に初期化回路を自動的に構築する。
【００３７】
電源投入時に生成される外部リセット信号ＥＲＳＴの信号線は，コンフィグレーションレジスタ１３の各フリップフロップ１３１〜１３３のクリア端子ＣＬまたはプリセット端子ＰＲのいずれかに接続されている。この接続端子は，初期化用のコンフィグレーションデータに基づいてあらかじめ決定されている。したがって，外部リセット信号ＥＲＳＴがＨレベルになると，フリップフロップ１３１〜１３３は，その信号線が接続されているのがクリア端子かプリセット端子に応じて，「０」または「１」にセットされる。その結果，外部リセット信号ＥＲＳＴの信号線の接続状態に応じた初期化用のコンフィグレーションデータＣＤ，ＣＤＳが，コンフィグレーションレジスタ１３の各フリップフロップに設定される。
【００３８】
この初期化用のコンフィグレーションデータにより，例えば，演算プロセッサエレメントＰＥ１，２が外部ＲＡＭに対するメモリ初期化回路に構築され，演算プロセッサエレメントＰＥ３，４が内蔵するワークＲＡＭに対するメモリ初期化回路に構築され，さらに，リコンフィグ回路ユニット１０内のメモリプロセッサエレメントＲＡＭ＃１に対しては，演算プロセッサエレメントＰＥ７，８がメモリ初期化回路に構築され，メモリプロセッサエレメントＲＡＭ＃２に対しては，演算プロセッサエレメントＰＥ９，１０がメモリ初期化回路に構築される。
【００３９】
図４は，本実施の形態におけるメモリ初期化回路が構築されたリコンフィグ回路ユニットの例を示す図である。図４には，図３のリコンフィグ回路ユニット１０内の演算プロセッサエレメントＰＥ６，ＰＥ９，ＰＥ１０とメモリプロセッサエレメントＲＡＭ＃２のみが示されている。図４には，メモリ初期化回路の構築が太線で示されている。
【００４０】
プロセッサエレメントＰＥ９は，クロックに同期して所定の固定値を出力する即値生成部１０１と，入力データを加工する入力データ加工部１０２と，入力値を加算，減算，乗算などの演算を行う演算器１０３と，入力値を比較する比較器１０４などを有する。他のプロセッサエレメントＰＥ６，１０も同様である。そして，初期化用コンフィグレーションデータＣＤにより，プロセッサエレメントＰＥ９は，即値生成部１０１がアドレスのインクリメント値を生成し，演算器１０３が演算器の出力にインクリメント値を加算し，加算結果がメモリプロセッサエレメントＲＡＭ＃２のアドレス入力端子に供給されるように，構築される。つまり，プロセッサエレメントＰＥ９は，カウント（累積加算）を行う命令である初期化用コンフィグレーションデータＣＤにより，アドレス生成回路に構築される。同様に，プロセッサエレメントＰＥ１０は，初期化用コンフィグレーションデータＣＤにより，即値生成部１１１が書込データ「０」または「１」を生成し，書込データがメモリプロセッサエレメントＲＡＭ＃２の書込データ端子に供給されるように，構築される。つまり，プロセッサエレメントＰＥ１０は，即値発生命令である初期化用コンフィグレーションデータにより，ライトデータ生成回路に構築される。
【００４１】
上記のように構築された結果，クロックに同期して，プロセッサエレメントＰＥ９がアドレスを逐一インクリメントし，プロセッサエレメントＰＥ１０が書込データを供給する。それにより，メモリプロセッサエレメントＲＡＭ＃２内のメモリセル全てに初期値の書込データが書き込まれる。
【００４２】
図５は，本実施の形態における電源投入時のメモリ初期化動作を示す波形図である。電源が投入されると（ＰＷ−ＯＮ），外部リセット信号ＥＲＳＴがＬレベルになり電源電位が上昇する。所定のレベルに上昇すると，外部リセット信号ＥＲＳＴがＨレベルになり外部リセットは解除される。この外部リセット解除信号（ＥＲＳＴ＝Ｈ）に応答して，コンフィグレーションレジスタに初期化用のコンフィグレーションデータがセットされる。その結果，リコンフィグ回路ユニット内には，それぞれのメモリ回路を初期化するメモリ初期化回路が自動的に構築される。
【００４３】
なお，集積回路装置内には，図示しないＰＬＬ回路が設けられている。ＰＬＬ回路は，外部クロックＥＣＬＫを入力し，それに位相同期した高い周波数の内部クロックＩＣＬＫを生成する。ただし，電源投入後はＰＬＬ回路は未だロック状態になっていないので，外部クロックＥＣＬＫがそのまま内部クロックＩＣＬＫとして使用される。そして，ＰＬＬ回路がロック状態に達してから，ＰＬＬ回路が生成した内部クロックＰＬＬ−ＩＣＬＫが内部クロックＩＣＬＫとして出力される。その後，内部リセット信号ＩＲＳＴがＨレベルになり，内部回路は通常動作を開始する。
【００４４】
本実施の形態では，リコンフィグ回路ユニット内に構築されたメモリ初期化回路は，上記の内部クロックＩＣＬＫに同期して，アドレスをインクリメントし，そのアドレスＡＤＤと書込データＷ−ＤＡＴＡとを対応するメモリ回路に供給する。それにより，メモリ回路内の全てのメモリセルに初期値の書込データが書き込まれる。電源投入直後は，内部クロックＩＣＬＫとして外部クロックＥＣＬＫがそのまま内部に供給されるので，その間は，メモリ初期化回路は外部クロックＥＣＬＫに同期して初期値の書込動作を実行する。
【００４５】
そして，メモリの初期化処理や，ＰＬＬのロック動作などが完了すると，内部リセット信号ＩＲＳＴがＨレベルになり内部リセット状態が解除され，リコンフィグ回路ユニットは，通常動作のための種々の専用回路に再構築される。
【００４６】
図６は，本実施の形態のコンフィグレーションレジスタの変形例を示す図である。図６において，コンフィグレーション制御部１１の構成は前述のものと同じである。一方，コンフィグレーションレジスタ１３は，第１のレジスタ群１３１〜１３３と，第２のレジスタ群１３４〜１３６とを有する。第１のレジスタ群１３１〜１３３は，外部リセット信号ＥＲＳＴがＨレベルになったときと，ＣＰＵリセット信号ＣＰＵＲＳＴがＨレベルになったときのいずれにおいても，それらの信号に応答してメモリ初期化回路を構築するコンフィグレーションデータＣＤ１〜３にセットされる。
【００４７】
一方，第２のレジスタ群１３４〜１３６は，外部リセット信号ＥＲＳＴがＨレベルになったときに，その信号に応答してＰＬＬ回路の初期化回路を構築するコンフィグレーションデータＣＤ１０〜１２にセットされる。ＰＬＬ回路の初期化回路とは，たとえば，ＰＬＬ回路がロックオンするまでに要する時間をカウントするカウンタ回路である。
【００４８】
上記のように，電源投入時の外部リセット信号ＥＲＳＴのＨレベルに応答して，メモリ初期化回路用のコンフィグレーションデータＣＤ１〜ＣＤ３と，ＰＬＬ回路初期化用のコンフィグレーションデータＣＤ１０〜１２とが自動的に生成され，それぞれの初期化回路がリコンフィグ回路ユニット内に構築される。一方，ＣＰＵによるリセット発生時のＣＰＵリセット信号ＣＰＵＲＳＴのＨレベルに応答して，メモリ初期化回路用のコンフィグレーションデータＣＤ１〜ＣＤ３だけが自動的に生成され，メモリ回路が初期化される。このとき，ＰＬＬ回路は通常動作状態を継続する。
【００４９】
図６のコンフィグレーションデータは，それぞれわずか３ビットしか示していないが，実際の構成例ではもっと多くのビット数になる。
【００５０】
図７は，本実施の形態におけるプロセッサエレメントネットワークＮＥＴの構成例を示す図である。演算プロセッサエレメントＰＥ０〜ＰＥ３と，メモリプロセッサエレメントＰＥ５と，それ以外のプロセッサエレメントＰＥ４とは，ネットワークＮＥＴ内のスイッチであるセレクタ４１を介して接続可能に構成されている。各プロセッサエレメントＰＥ０〜ＰＥ５は，コンフィグレーションデータＣＤ０〜ＣＤ５に基づいて任意の構成に構築可能であり，また，ネットワークＮＥＴ内のセレクタ４１（４１ａ，４１ｂ，４１ｃ）も，コンフィグレーションデータＣＤｓに基づいて任意の構成に構築可能である。
【００５１】
セレクタ４１は，図中左下に一例として示されるとおり，コンフィグレーションデータＣＤを格納するレジスタ４２と，レジスタ４２のデータに応じて入力を選択するセレクタ回路４３と，セレクタ回路４３の出力をクロックＣＫに同期してラッチするフリップフロップ４４とで構成される。また，ネットワークＮＥＴは，データの入力ポート２２と出力ポート２４ともセレクタを介して所望の接続を可能にしている。
【００５２】
図８，図９は，本実施の形態における通常動作でのコンフィグレーションデータにより構築された回路状態例を示す図である。これらの図には，演算回路を動的に構築可能な演算プロセッサエレメントＰＥ０〜ＰＥ３，ＰＥ６が，ネットワークＮＥＴにより接続されて，所定の演算を高速に行う専用演算回路に構築される。
【００５３】
図８の例は，入力データａ，ｂ，ｃ，ｄ，ｅ，ｆに対して，以下の演算式を実行する専用演算回路に構築された例である。
（ａ＋ｂ）＋（ｃ−ｄ）＋（ｅ＋ｆ）
このコンフィグレーションの例によれば，プロセッサエレメントＰＥ０は，Ａ＝ａ＋ｂの演算回路に構築され，プロセッサエレメントＰＥ１は，Ｂ＝ｃ−ｄの演算回路に構築され，プロセッサエレメントＰＥ２はＣ＝ｅ＋ｆの演算回路に構築され，プロセッサエレメントＰＥ３はＤ＝Ａ＋Ｂの演算回路に構築され，プロセッサエレメントＰＥ６はＥ＝Ｄ＋Ｃの演算回路に構築される。各データａ〜ｆは，図示しないメモリプロセッサエレメントなどから供給され，プロセッサエレメントＰＥ６の出力が演算結果Ｅとしてメモリプロセッサエレメントや外部に出力される。
【００５４】
プロセッサエレメントＰＥ０，ＰＥ１，ＰＥ２が平行して演算処理し，その演算結果に対してプロセッサエレメントＰＥ３がＤ＝Ａ＋Ｂの演算処理し，最後にプロセッサエレメントＰＥ６がＥ＝Ｄ＋Ｃの演算処理を行う。このように，専用の演算回路を構築することで，並列演算を可能にし，演算処理の効率を高めることができる。
【００５５】
各演算プロセッサエレメントは，内部にＡＬＵ，加算器，乗算器，比較器などを内蔵し，コンフィグレーションデータＤＣに基づいて任意の演算回路に再構築可能である。そして，図８のように構築することで，上記の演算を専用に行う専用演算回路を構築することができる。かかる専用演算回路を構築することで，複数の演算を並行して実行することができ，演算効率を高めることができる。
【００５６】
図９の例は，入力データａ〜ｄに対して，（ａ＋ｂ）＊（ｃ＋ｄ）の演算を実行する専用演算回路に構築された例である。プロセッサエレメントＰＥ０がＡ＝ａ＋ｂの演算回路に構築され，プロセッサエレメントＰＥ１がＢ＝ｃ−ｄの演算回路に構築され，プロセッサエレメントＰＥ３がＣ＝Ａ＊Ｂの演算回路に構築され，演算結果Ｃがメモリプロセッサエレメントまたは外部のクラスタに出力される。この場合も，プロセッサエレメントＰＥ０，ＰＥ１が並列に演算処理し，その演算結果Ａ，Ｂに対してプロセッサエレメントＰＥ３がＣ＝Ａ＊Ｂの演算処理を行う。よって，専用演算回路に構築することで，上記の演算効率を高めることができ，大量のデータに対する演算効率を高めることができる。
【００５７】
以上説明したとおり，本実施の形態では，電源投入時の初期化期間において，リコンフィグ回路ユニットがコンフィグレーション制御部によって所望の回路状態に構築されていないことを利用して，初期化動作に必要な初期化回路，具体例ではアドレス生成回路と初期値生成回路とからなるメモリ初期化回路，を構築する。そして，初期化動作後の通常動作時において，コンフィグレーション制御部によりリコンフィグ回路ユニット内に所望の回路状態が構築される。通常動作時には，初期化回路は存在する必要はない。
【００５８】
上記の実施の形態では，コンフィグレーションレジスタへの初期化コンフィグレーションデータの設定をレジスタ内のフリップフロップのクリア端子とプリセット端子とを利用して行った。それに限定されず，コンフィグレーション制御部とは別に，初期化コンフィグレーションデータ生成部を設けて，外部リセット信号ＥＲＳＴに応答して初期化コンフィグレーション生成部が初期化コンフィグレーションデータをコンフィグレーションレジスタに供給しながら，状態遷移信号を供給するようにしても良い。つまり，電源投入時に初期化データを自動的にコンフィグレーションレジスタにラッチさせるようにすることができれば，同様に初期化回路をリコンフィグ回路ユニット内に構築することができる。
【００５９】
また，上記の実施の形態では，コンフィグレーションレジスタが，リコンフィグ回路ユニット側に設けられているが，コンフィグレーション制御部内に設けられていても良い。
【図面の簡単な説明】
【００６０】
【図１】本実施の形態における集積回路装置の概略構成図である。
【図２】本実施の形態における内蔵または外付けのメモリ回路を有する集積回路装置に構成図である。
【図３】本実施の形態におけるコンフィグレーション制御部，コンフィグレーションレジスタ，リコンフィグ回路ユニットの具体的構成図である。
【図４】本実施の形態におけるメモリ初期化回路が構築されたリコンフィグ回路ユニットの例を示す図である。
【図５】本実施の形態における電源投入時のメモリ初期化動作を示す波形図である。
【図６】本実施の形態のコンフィグレーションレジスタの変形例を示す図である。
【図７】本実施の形態におけるプロセッサエレメントネットワークＮＥＴの構成例を示す図である。
【図８】本実施の形態における通常動作でのコンフィグレーションデータにより構築された回路状態例を示す図である。
【図９】本実施の形態における通常動作でのコンフィグレーションデータにより構築された回路状態例を示す図である。
【符号の説明】
【００６１】
１：集積回路装置                    １０：リコンフィグ回路ユニット
１１：コンフィグレーション制御部    １３：リコンフィグレーションレジスタ
ＣＤ：リコンフィグレーションデータ  ２０，１４２，ＲＡＭ：メモリ回路
【図１】
0004490392.tif 000002
【図２】
0004490392.tif 000003
【図３】
0004490392.tif 000004
【図４】
0004490392.tif 000005
【図５】
0004490392.tif 000006
【図６】
0004490392.tif 000007
【図７】
0004490392.tif 000008
【図８】
0004490392.tif 000009
【図９】
0004490392.tif 000010