(57)【特許請求の範囲】
【請求項１】
第１のクラスタと、
第２のクラスタと、
前記第１のクラスタ及び前記第２のクラスタに接続可能なデータネットワークと、
プログラムカウンタマスタであるか否かを示すプログラムカウンタマスタデータであって、前記第１のクラスタのプログラムカウンタマスタデータ及び前記第２のクラスタのプログラムカウンタマスタデータを記憶するためのプログラムカウンタマスタデータ記憶手段とを有し、
前記第１のクラスタは、
プログラムカウンタ値を出力する第１のプログラムカウンタ制御手段と、
前記プログラムカウンタマスタデータ記憶手段が前記第１のクラスタのプログラムカウンタマスタデータを記憶しているときには、前記第１のプログラムカウンタ制御手段が出力するプログラムカウンタ値に応じて処理を行い、前記プログラムカウンタマスタデータ記憶手段が前記第１のクラスタのプログラムカウンタマスタデータを記憶していないときには、前記データネットワークを介して前記第２のクラスタからプログラムカウンタ値を入力してその入力したプログラムカウンタ値に応じて処理を行う第１のプロセッシングエレメントとを有することを特徴とするリコンフィグラブル回路。
【請求項２】
前記第１のクラスタは、前記プログラムカウンタマスタデータ記憶手段が前記第１のクラスタのプログラムカウンタマスタデータを記憶しているときには、前記データネットワークを介して前記第２のクラスタに前記第１のプログラムカウンタ制御手段が出力したプログラムカウンタ値を出力することを特徴とする請求項１記載のリコンフィグラブル回路。
【請求項３】
前記第２のクラスタは、
プログラムカウンタ値を出力する第２のプログラムカウンタ制御手段とを有し、
前記プログラムカウンタマスタデータ記憶手段が前記第２のクラスタのプログラムカウンタマスタデータを記憶しているときには、前記第２のプログラムカウンタ制御手段が出力するプログラムカウンタ値に応じて処理を行い、前記プログラムカウンタマスタデータ記憶手段が前記第２のクラスタのプログラムカウンタマスタデータを記憶していないときには、前記データネットワークを介して前記第１のクラスタからプログラムカウンタ値を入力してその入力したプログラムカウンタ値に応じて処理を行う第２のプロセッシングエレメントとを有することを特徴とする請求項２記載のリコンフィグラブル回路。
【請求項４】
前記第１のプロセッシングエレメントは、前記データネットワークを介してプログラムカウンタ値を入力することができることを特徴とする請求項１〜３のいずれか１項に記載のリコンフィグラブル回路。
【請求項５】
さらに、前記プログラムカウンタマスタデータ記憶手段のプログラムカウンタマスタデータを書き換えるためのデータ書き換え手段を有することを特徴とする請求項１〜４のいずれか１項に記載のリコンフィグラブル回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リコンフィグラブル回路に関する。
【背景技術】
【０００２】
図４は、リコンフィグラブル論理回路の構成例を示す図である。リコンフィグラブル論理回路は、データネットワーク４０３及び複数のクラスタ４０１ａ〜４０１ｄを有する。各クラスタ４０１ａ〜４０１ｄは、プログラムカウンタ制御手段４１１、ユーザプログラム記憶手段４１２及び複数のプロセッシングエレメント（ＰＥ：Processing Element）４１３を有する。プログラムカウンタ制御手段４１１は、ユーザプログラム記憶手段４１２にプログラムカウンタ値ＰＣを出力する。ＰＥ４１３は、プログラムカウンタ値ＰＣが示すユーザプログラム記憶手段４１２内のプログラムに応じて処理を行う。
【０００３】
プログラムカウンタ値ＰＣは、クラスタ４０１ａ〜４０１ｄ毎に独立している。複数のクラスタ４０１ａ〜４０１ｄの同期をとって動作させるには、複数のクラスタ４０１ａ〜４０１ｄのプログラムカウンタ値ＰＣを同期して動作させる必要がある。また、ユーザは、プログラム上で全体を統一（同期）保障した動作を行うようにプログラミングを行う必要がある。
【０００４】
図５は、図４のリコンフィグラブル論理回路のより具体的な構成例を示す図である。各クラスタ４０１ａ〜４０１ｄは、プログラムカウンタ制御手段４１１、ユーザプログラム記憶手段４１２及び複数のＰＥ４１３の他に、コンフィグレーション記憶手段５１１、ネットワークコンフィグレーション記憶手段５０１及びプログラム記憶手段５１２を有する。データネットワーク４０３は、クロスバスイッチ５２１を有する。
【０００５】
各クラスタ４０１ａ〜４０１ｄのプログラムカウンタ制御手段４１１は独立しており、連携する手段を持っていない。このため、各クラスタ４０１ａ〜４０１ｄのプログラム記憶手段５１２には、同一種類のタスク０（ｔａｓｋ０）のプログラムを記憶させる必要がある。各クラスタ４０１ａ〜４０１ｄのプログラム記憶手段５１２内のプログラムが独立していないため、これらが連携しないとユーザプログラムが動作できないといった非効率な問題を抱えている。
【０００６】
下記の特許文献１には、各プロセッサユニットの送信部内に以下のようにアクセス要求の送付先を決める回路を設けるマルチプロセッサシステムが記載されている。主記憶データへのアクセス要求の場合、全てのプロセッサユニットとそのデータを保持している一つのメモリユニットのみに、そのアクセス要求をクロスバスイッチを介して部分放送する。入出力装置内のメモリマップドレジスタに対するアクセス要求の場合には、全ての入出力ユニットにこのアクセス要求を部分放送する。プロセッサユニット、メモリユニットあるいは入出力ユニットのいずかれに属するメモリマップドレジスタに対するアクセス要求の場合、全てのユニットにこのアクセス要求をクロスバスイッチを介して放送する。
【０００７】
下記の特許文献２には、プロセッサエレメントＰＥ１２がＰＥ１３〜１５に対してパイプカウンタを特定して複数のタスクを呼び出し、同期待ち命令で必要に応じて同期待ちを行う並列演算処理装置が記載されている。アービタは、タスク呼び出しが発生すると対応するパイプカウンタのカウント値を増加し、そのタスクが終了すると対応するパイプカウンタのカウント値を減少させる。プロセッサエレメントＰＥ１２は、同期待ち命令を実行したときに、同期待ち命令に含まれるカウント値と、アービタの対応するパイプカウンタのカウント値とを比較し、一致した場合に同期待ちを解除し、一致しない場合に同期待ちとなる。
【０００８】
【特許文献１】特開平９−１３８７８２号公報
【特許文献２】特開平１１−３０６０３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述のようなリコンフィグラブル論理回路においては、各クラスタ４０１ａ〜４０１ｄに１つのプログラムカウンタ制御手段４１１を持ち、ユーザプログラムを同期させるためプログラムカウンタ値ＰＣの制御を行う。しかし、ユーザはプログラミングによる同期問題を保障する必要があり、ソフトウエアの負担が大きい。
【００１０】
本発明の目的は、複数のクラスタのプログラムカウンタ値を容易に同期させ、プログラミングによるソフトウエアの負担を軽減することである。
【課題を解決するための手段】
【００１１】
本発明の一観点によれば、第１のクラスタと、第２のクラスタと、前記第１のクラスタ及び前記第２のクラスタに接続可能なデータネットワークと、プログラムカウンタマスタであるか否かを示すプログラムカウンタマスタデータであって、前記第１のクラスタのプログラムカウンタマスタデータ及び前記第２のクラスタのプログラムカウンタマスタデータを記憶するためのプログラムカウンタマスタデータ記憶手段とを有し、前記第１のクラスタは、プログラムカウンタ値を出力する第１のプログラムカウンタ制御手段と、前記プログラムカウンタマスタデータ記憶手段が前記第１のクラスタのプログラムカウンタマスタデータを記憶しているときには、前記第１のプログラムカウンタ制御手段が出力するプログラムカウンタ値に応じて処理を行い、前記プログラムカウンタマスタデータ記憶手段が前記第１のクラスタのプログラムカウンタマスタデータを記憶していないときには、前記データネットワークを介して前記第２のクラスタからプログラムカウンタ値を入力してその入力したプログラムカウンタ値に応じて処理を行う第１のプロセッシングエレメントとを有することを特徴とするリコンフィグラブル回路が提供される。
【発明の効果】
【００１２】
プログラムカウンタマスタデータを設定することにより、第１及び第２のクラスタのプログラムカウンタ値を容易に同期させることができ、プログラミングによるソフトウエアの負担を軽減することができる。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明の実施形態によるリコンフィグラブル論理回路の構成例を示す図である。リコンフィグラブル論理回路は、プログラムカウンタマスタデータ記憶手段１０２、データネットワーク１０３及び複数のクラスタ１０１ａ〜１０１ｄを有する。各クラスタ１０１ａ〜１０１ｄは、プログラムカウンタ制御手段１１１、ユーザプログラム記憶手段１１２及び複数のプロセッシングエレメント（ＰＥ：Processing Element）１１３を有する。データネットワーク１０３は、クラスタ１０１ａ〜１０１ｄに接続可能である。
【００１４】
プログラムカウンタマスタデータ記憶手段１０２は、例えばレジスタであり、０ビット目〜３ビット目のプログラムカウンタマスタデータを記憶する。０ビット目〜３ビット目のプログラムカウンタマスタデータは、それぞれクラスタ１０１ａ〜１０１ｄがプログラムカウンタマスタであるか否かを示す。プログラムカウンタマスタデータが１であるときにはプログラムカウンタマスタであることを示し、プログラムカウンタマスタデータが０であるときにはプログラムカウンタマスタでないことを示す。
【００１５】
まず、クラスタ１０１ａの動作を説明する。クラスタ１０１ａ内のプログラムカウンタ制御手段１１１は、プログラムカウンタマスタデータ記憶手段１０２内の０ビット目に１が記憶されていれば、プログラムカウンタ値ＰＣをユーザプログラム記憶手段１１２に出力し、プログラムカウンタ値ＰＣ１をデータネットワーク１０３に出力する。プログラムカウンタ値ＰＣ１は、プログラムカウンタ値ＰＣと同じ値である。
【００１６】
また、クラスタ１０１ａ内のプログラムカウンタ制御手段１１１は、プログラムカウンタマスタデータ記憶手段１０２内の０ビット目に０が記憶されていれば、プログラムカウンタ値ＰＣ２をデータネットワーク１０３から入力し、そのプログラムカウンタ値ＰＣ２をプログラムカウンタ値ＰＣとしてユーザプログラム記憶手段１１２に出力する。
【００１７】
クラスタ１０１ｂ〜１０１ｄの動作も同様である。クラスタ１０１ｂ〜１０１ｄ内のプログラムカウンタ制御手段１１１は、それぞれプログラムカウンタマスタデータ記憶手段１０２内の１ビット目〜３ビット目に１が記憶されていれば、プログラムカウンタ値ＰＣをユーザプログラム記憶手段１１２に出力し、プログラムカウンタ値ＰＣ１をデータネットワーク１０３に出力する。プログラムカウンタ値ＰＣ１は、プログラムカウンタ値ＰＣと同じ値である。
【００１８】
また、クラスタ１０１ｂ〜１０１ｄ内のプログラムカウンタ制御手段１１１は、それぞれプログラムカウンタマスタデータ記憶手段１０２内の１ビット目〜３ビット目に０が記憶されていれば、プログラムカウンタ値ＰＣ２をデータネットワーク１０３から入力し、そのプログラムカウンタ値ＰＣ２をプログラムカウンタ値ＰＣとしてユーザプログラム記憶手段１１２に出力する。
【００１９】
プログラムカウンタマスタデータ記憶手段１０２のプログラムカウンタマスタデータは、０ビット目〜３ビット目のうちのいずれか１つが１であり、その他が０である。プログラムカウンタ制御手段１１１は、自己のクラスタのプログラムカウンタマスタデータが１であるときには、プログラムカウンタ値ＰＣ１をデータネットワーク１０３を介して他のクラスタに送信する。また、プログラムカウンタ制御手段１１１は、自己のクラスタのプログラムカウンタマスタデータが０であるときには、プログラムカウンタ値ＰＣ２をデータネットワーク１０３を介して他のクラスタから受信する。これにより、すべてのクラスタ１０１ａ〜１０１ｄ内のプログラムカウンタ制御手段１１１は、同じプログラムカウンタ値ＰＣをユーザプログラム記憶手段１１２に出力する。このプログラムカウンタ値ＰＣは、プログラムカウンタマスタデータが１であるクラスタ内のプログラムカウンタ制御手段１１１が生成したものである。ＰＥ１１３は、プログラムカウンタ値ＰＣが示すユーザプログラム記憶手段１１２内のプログラムに応じて処理を行う。
【００２０】
プログラムカウンタマスタデータ記憶手段１０２は、４ビットのプログラムカウンタマスタデータを記憶し、４個のクラスタ１０１ａ〜１０１ｄのプログラムカウンタ制御手段１１１に対して、それに対応する４個のプログラムカウンタマスタデータを出力する。各プログラムカウンタ制御手段１１１は、データネットワーク１０３に対して、プログラムカウンタ値ＰＣ１を出力したり、プログラムカウンタ値ＰＣ２を入力することができる。また、プログラムカウンタ値ＰＣ１をデータネットワーク１０３に出力することにより、各ＰＥ１１３は、直接、データネットワーク１０３上のプログラムカウンタ値を参照可能である。上記構成により、各クラスタ１０１ａ〜１０１ｄ内のプログラムカウンタ制御手段１１１は、プログラムカウンタ値ＰＣと同じプログラムカウンタ値ＰＣ１を他のクラスタに伝達することが可能となり、リコンフィグラブル論理回路全体で一つのプログラムカウンタ値ＰＣを統一して使用することができる。
【００２１】
プログラムカウンタマスタデータを設定することにより、すべてのクラスタ１０１ａ〜１０１ｄのプログラムカウンタ値ＰＣを容易に同期させることができ、プログラミングによるソフトウエアの負担を軽減することができる。
【００２２】
図２は、図１のリコンフィグラブル論理回路のより具体的な構成例を示す図である。図２は、図１に対して、ネットワークコンフィグレーション制御手段２０１を追加したものである。クラスタ１０１ａ〜１０１ｄは、それぞれネットワークコンフィグレーション制御手段２０１を有する。ネットワークコンフィグレーション制御手段２０１は、データネットワーク１０３に対する、プログラムカウンタ制御手段１１１及びＰＥ１１３の接続を再構成可能に制御する。プログラムカウンタ制御手段１１１をデータネットワーク１０３に接続することにより、プログラムカウンタ制御手段１１１は、データネットワーク１０３に対して、プログラムカウンタ値ＰＣ１を出力又はプログラムカウンタ値ＰＣ２を入力することができる。また、ＰＥ１１３をデータネットワーク１０３に接続することにより、ＰＥ１１３は、データネットワーク１０３からプログラムカウンタ値ＰＣ３を入力し、種々の処理を行うことができる。
【００２３】
クラスタ１０１ａ内のプログラムカウンタ制御手段１１１は、例えばタスク０（ｔａｓｋ０）のプログラムを基にプログラムカウンタ値ＰＣを生成する。クラスタ１０１ｂ内のプログラムカウンタ制御手段１１１は、例えばタスク１（ｔａｓｋ１）のプログラムを基にプログラムカウンタ値ＰＣを生成する。クラスタ１０１ｃ内のプログラムカウンタ制御手段１１１は、例えばタスク２（ｔａｓｋ２）のプログラムを基にプログラムカウンタ値ＰＣを生成する。クラスタ１０１ｄ内のプログラムカウンタ制御手段１１１は、例えばタスク３（ｔａｓｋ３）のプログラムを基にプログラムカウンタ値ＰＣを生成する。
【００２４】
ユーザプログラムは、クラスタ１０１ａ〜１０１ｄ単位にユーザプログラム記憶手段１１２にロードされる。これにより、ネットワークコンフィグレーション制御手段２０１内の記憶手段（レジスタ）にもプログラムが設定される。また、ユーザプログラムは、タスク単位で動作するプログラムである。プログラムカウンタ制御手段１１１は、ユーザプログラムに応じて所定のタスクのプログラムカウンタ値ＰＣを生成する。
【００２５】
クラスタ１０１ａのプログラム（タスク０）が動作中のときには、プログラムカウンタマスタデータ記憶手段１０２の０ビット目を１に設定しておき、１ビット目〜３ビット目を０に設定しておく。クラスタ１０１ａのプログラムカウンタ制御手段１１１は、プログラムカウンタマスタデータ記憶手段１０２の０ビット目が１であるので、自己が生成したプログラムカウンタ値ＰＣをプログラムカウンタ値ＰＣ１としてデータネットワーク１０３を介してクラスタ１０１ｂ〜１０１ｄに送信する。これに対して、クラスタ１０１ｂ〜１０１ｄのプログラムカウンタ制御手段１１１は、プログラムカウンタマスタデータ記憶手段１０２の１ビット目〜３ビット目が０であるので、データネットワーク１０３を介して、クラスタ１０１ａのプログラムカウンタ制御手段１１１が生成したプログラムカウンタ値ＰＣをプログラムカウンタ値ＰＣ２として受信し、そのプログラムカウンタ値ＰＣ２をプログラムカウンタ値ＰＣとしてユーザプログラム記憶手段１１２に出力する。クラスタ１０１ａ〜１０１ｄは、ユーザプログラム記憶手段１１２内の同じプログラムカウンタ値ＰＣが示すユーザプログラムに応じて動作する。ただし、クラスタ１０１ａ〜１０１ｄ内のユーザプログラム記憶手段１１２には、異なるユーザプログラムが記憶されているので、クラスタ１０１ａ〜１０１ｄは相互に異なる処理を行う。
【００２６】
また、クラスタ１０１ｂのプログラム（タスク１）が動作中のときには、プログラムカウンタマスタデータ記憶手段１０２の１ビット目を１に設定しておき、０ビット目、２ビット目、３ビット目を０に設定しておく。クラスタ１０１ｂのプログラムカウンタ制御手段１１１は、プログラムカウンタマスタデータ記憶手段１０２の１ビット目が１であるので、自己が生成したプログラムカウンタ値ＰＣをプログラムカウンタ値ＰＣ１としてデータネットワーク１０３を介してクラスタ１０１ａ、１０１ｃ、１０１ｄに送信する。これに対して、クラスタ１０１ａ、１０１ｃ、１０１ｄのプログラムカウンタ制御手段１１１は、プログラムカウンタマスタデータ記憶手段１０２の０ビット目、２ビット目、３ビット目が０であるので、データネットワーク１０３を介して、クラスタ１０１ｂのプログラムカウンタ制御手段１１１が生成したプログラムカウンタ値ＰＣをプログラムカウンタ値ＰＣ２として受信し、そのプログラムカウンタ値ＰＣ２をプログラムカウンタ値ＰＣとしてユーザプログラム記憶手段１１２に出力する。クラスタ１０１ａ〜１０１ｄは、ユーザプログラム記憶手段１１２内の同じプログラムカウンタ値ＰＣが示すユーザプログラムに応じて動作する。
【００２７】
また、クラスタ１０１ｃのプログラム（タスク２）が動作中のときには、プログラムカウンタマスタデータ記憶手段１０２の２ビット目を１に設定しておき、０ビット目、１ビット目、３ビット目を０に設定しておく。クラスタ１０１ｃのプログラムカウンタ制御手段１１１は、プログラムカウンタマスタデータ記憶手段１０２の２ビット目が１であるので、自己が生成したプログラムカウンタ値ＰＣをプログラムカウンタ値ＰＣ１としてデータネットワーク１０３を介してクラスタ１０１ａ、１０１ｂ、１０１ｄに送信する。これに対して、クラスタ１０１ａ、１０１ｂ、１０１ｄのプログラムカウンタ制御手段１１１は、プログラムカウンタマスタデータ記憶手段１０２の０ビット目、１ビット目、３ビット目が０であるので、データネットワーク１０３を介して、クラスタ１０１ｃのプログラムカウンタ制御手段１１１が生成したプログラムカウンタ値ＰＣをプログラムカウンタ値ＰＣ２として受信し、そのプログラムカウンタ値ＰＣ２をプログラムカウンタ値ＰＣとしてユーザプログラム記憶手段１１２に出力する。クラスタ１０１ａ〜１０１ｄは、ユーザプログラム記憶手段１１２内の同じプログラムカウンタ値ＰＣが示すユーザプログラムに応じて動作する。
【００２８】
また、クラスタ１０１ｄのプログラム（タスク３）が動作中のときには、プログラムカウンタマスタデータ記憶手段１０２の３ビット目を１に設定しておき、０ビット目〜２ビット目を０に設定しておく。クラスタ１０１ｄのプログラムカウンタ制御手段１１１は、プログラムカウンタマスタデータ記憶手段１０２の３ビット目が１であるので、自己が生成したプログラムカウンタ値ＰＣをプログラムカウンタ値ＰＣ１としてデータネットワーク１０３を介してクラスタ１０１ａ〜１０１ｃに送信する。これに対して、クラスタ１０１ａ〜１０１ｃのプログラムカウンタ制御手段１１１は、プログラムカウンタマスタデータ記憶手段１０２の０ビット目〜２ビット目が０であるので、データネットワーク１０３を介して、クラスタ１０１ｄのプログラムカウンタ制御手段１１１が生成したプログラムカウンタ値ＰＣをプログラムカウンタ値ＰＣ２として受信し、そのプログラムカウンタ値ＰＣ２をプログラムカウンタ値ＰＣとしてユーザプログラム記憶手段１１２に出力する。クラスタ１０１ａ〜１０１ｄは、ユーザプログラム記憶手段１１２内の同じプログラムカウンタ値ＰＣが示すユーザプログラムに応じて動作する。
【００２９】
以上のように、プログラムカウンタマスタデータ記憶手段１０２に記憶されるプログラムカウンタマスタデータは、タスクスイッチ（＝コンテキストスイッチ）として、タスク０〜タスク３を切り替えることができる。また、ＰＥ１１３は、随時ユーザプログラムにより、データネットワーク１０３を介してプログラムカウンタ値ＰＣ３を認識し、制御及び演算等を行うことができる。
【００３０】
図３は、図２のリコンフィグラブル論理回路のより具体的な構成例を示す図である。リコンフィグラブル論理回路は、プログラムカウンタマスタデータ記憶手段１０２、データネットワーク１０３及び複数のクラスタ１０１ａ〜１０１ｄの他に、ＣＰＵ（中央処理装置）３０１及びコンフィグレーションメモリ３０２を有する。ＣＰＵ３０１は、コンフィグレーションメモリ３０２、プログラムカウンタマスタデータ記憶手段１０２及び複数のクラスタ１０１ａ〜１０１ｄを制御する。コンフィグレーションメモリ３０２は、ユーザプログラムを記憶する。データネットワーク１０３は、クロスバスイッチ３２１を有する。クロスバスイッチ３２１は、クラスタ１０１ａ〜１０１ｄ間のデータネットワーク１０３を再構成可能に接続する。
【００３１】
各クラスタ１０１ａ〜１０１ｄは、プログラムカウンタ制御手段１１１、ユーザプログラム記憶手段１１２、ネットワークコンフィグレーション制御手段２０１及び複数のＰＥ１１３の他に、以下の構成を有する。コンフィグレーション記憶手段３１１は、例えばレジスタであり、ＰＥ１１３毎に設けられ、ユーザプログラム記憶手段１１２に記憶されたユーザプログラムの一部がロードされる。プログラム記憶手段３１２は、例えばレジスタであり、ユーザプログラム記憶手段１１２に記憶されたユーザプログラムの一部がロードされる。
【００３２】
クラスタ１０１ａでは、プログラム記憶手段３１２はタスク０のプログラムを記憶し、プログラムカウンタ制御手段１１１はそのタスク０のプログラムを基にプログラムカウンタ値ＰＣ１１を生成する。同様に、クラスタ１０１ｂでは、プログラム記憶手段３１２はタスク１のプログラムを記憶し、プログラムカウンタ制御手段１１１はそのタスク１のプログラムを基にプログラムカウンタ値ＰＣ１１を生成する。同様に、クラスタ１０１ｃでは、プログラム記憶手段３１２はタスク２のプログラムを記憶し、プログラムカウンタ制御手段１１１はそのタスク２のプログラムを基にプログラムカウンタ値ＰＣ１１を生成する。同様に、クラスタ１０１ｄでは、プログラム記憶手段３１２はタスク３のプログラムを記憶し、プログラムカウンタ制御手段１１１はそのタスク３のプログラムを基にプログラムカウンタ値ＰＣ１１を生成する。
【００３３】
プログラムカウンタマスタデータＭＢ０はプログラムカウンタマスタデータ記憶手段１０２の０ビット目のデータであり、プログラムカウンタマスタデータＭＢ１はプログラムカウンタマスタデータ記憶手段１０２の１ビット目のデータである。以下、プログラムカウンタマスタデータＭＢ０及びＭＢ１の総称又は個々をプログラムカウンタマスタデータＭＢという。
【００３４】
否定回路（ＮＯＴ回路）３１３は、プログラムカウンタマスタデータＭＢを論理反転した値を出力する。論理積回路（ＡＮＤ回路）３１５は、否定回路３１３の出力値及びプログラムカウンタ値ＰＣ１２の論理積を出力する。プログラムカウンタ値ＰＣ１２は、データネットワーク１０３から入力される値である。論理積回路３１４は、プログラムカウンタ値ＰＣ１１及びプログラムカウンタマスタデータＭＢの論理積をプログラムカウンタ値ＰＣ１３としてデータネットワーク１０３に出力する。論理和回路（ＯＲ回路）３１６は、論理積回路３１４及び３１５の出力値の論理和をプログラムカウンタ値ＰＣとしてコンフィグレーション記憶手段３１１及びネットワークコンフィグレーション制御手段２０１に出力する。
【００３５】
まず、プログラムカウンタマスタデータＭＢが１である場合を説明する。その場合、否定回路３１３は０を出力し、論理積回路３１５も０を出力する。また、論理積回路３１４は、プログラムカウンタ値ＰＣ１１と同じプログラムカウンタ値ＰＣ１３を出力する。その結果、論理和回路３１６は、プログラムカウンタ値ＰＣ１１と同じプログラムカウンタ値ＰＣを出力する。また、プログラムカウンタ値ＰＣ１３は、プログラムカウンタ値ＰＣ１１と同じ値としてデータネットワーク１０３に出力され、他のクラスタに送信される。
【００３６】
次に、プログラムカウンタマスタデータＭＢが０である場合を説明する。その場合、否定回路３１３は１を出力する。論理積回路３１５は、プログラムカウンタ値ＰＣ１２と同じ値を出力する。プログラムカウンタ値ＰＣ１２は、データネットワーク１０３を介して他のクラスタから受信した値である。また、論理積回路３１４は０を出力する。その結果、論理和回路３１６は、プログラムカウンタ値ＰＣ１２と同じプログラムカウンタ値ＰＣを出力する。
【００３７】
以上のように、プログラムカウンタマスタデータＭＢが１である場合には、プログラムカウンタ値ＰＣはプログラムカウンタ制御手段１１１が生成したプログラムカウンタ値ＰＣ１１と同じ値になる。また、プログラムカウンタマスタデータＭＢが０である場合には、プログラムカウンタ値ＰＣはデータネットワーク１０３から入力したプログラムカウンタ値ＰＣ１２と同じ値になる。
【００３８】
例えば、プログラムカウンタマスタデータＭＢ０が１であり、プログラムカウンタマスタデータＭＢ１が０に設定されている例を説明する。その場合、クラスタ１０１ａでは、プログラムカウンタ値ＰＣがプログラムカウンタ値ＰＣ１１と同じ値になり、ネットワークコンフィグレーション制御手段２０１はデータネットワーク１０３内の接続ポイント３２２を接続する。クラスタ１０１ｂでは、プログラムカウンタ値ＰＣがプログラムカウンタ値ＰＣ１２と同じ値になり、ネットワークコンフィグレーション制御手段２０１はデータネットワーク１０３内の接続ポイント３２２を接続する。
【００３９】
クラスタ１０１ａのプログラムカウンタ値ＰＣ１３は、プログラムカウンタ値ＰＣ１１と同じ値であり、データネットワーク１０３内の接続ポイント３２２を介して、クラスタ１０１ｂのプログラムカウンタ値ＰＣ１２として送信される。クラスタ１０１ｂでは、プログラムカウンタ値ＰＣは、プログラムカウンタ値ＰＣ１２と同じ値になる。したがって、クラスタ１０１ａ及び１０１ｂのプログラムカウンタ値ＰＣは、共にクラスタ１０１ａのプログラムカウンタ値ＰＣ１１と同じ値になる。
【００４０】
ＣＰＵ３０１は、プログラムカウンタマスタデータ記憶手段１０２にプログラムカウンタマスタデータをアサインする。クラスタ１０１ａのタスク０のプログラムが動作するとき、プログラムカウンタマスタデータＭＢ０を１に設定する。クラスタ１０１ａのプログラムカウンタ制御手段１１１からプログラムカウンタ値ＰＣ１１が出力され、ネットワークコンフィグレーション制御手段２０１はデータネットワーク１０３上の接続ポイント３２２が接続されるようにスイッチングする。これにより、クラスタ１０１ａは、データネットワーク１０３及びクロスバスイッチ３２１を介して他のクラスタ１０１ｂのデータネットワーク１０３に接続される。クラスタ１０１ｂのプログラムカウンタ制御手段１１１から出力されるプログラムカウンタ値ＰＣ１１は別のタスク１のプログラムのものであるため、タスク１の動作は停止状態である。クラスタ１０１ｂのプログラムカウンタ値ＰＣは、データネットワーク１０３を介してクラスタ１０１ａから入力される。クラスタ１０１ａ及び１０１ｂのＰＥ１１３は、タスク０のプログラムカウンタ値ＰＣを基に動作する。ネットワークコンフィグレーション制御手段２０１は、データネットワーク１０３の接続可変なスイッチを制御し、ＰＥ１１３はユーザプログラムによりデータネットワーク１０３のプログラムカウンタ値ＰＣ３の参照が行える。プログラムカウンタ値ＰＣ３の直接参照は、各ＰＥ１１３のユーザプログラム等の条件判定、入力データとして扱える。
【００４１】
次に、リコンフィグラブル論理回路の処理手順を説明する。まず、ＣＰＵ３０１は、コンフィグレーションメモリ３０２からユーザプログラムを読み出してクラスタ１０１ａ〜１０１ｄのユーザプログラム記憶手段１１２に記憶させる。次に、ＣＰＵ３０１は、コンフィグレーションメモリ３０２からプログラムカウンタマスタデータを読み出してプログラムカウンタマスタデータ記憶手段１０２に記憶させる。次に、ユーザプログラム記憶手段１１２内のユーザプログラムは、コンフィグレーション記憶手段３１１、ネットワークコンフィグレーション制御手段２０１内の記憶手段及びプログラム記憶手段３１２に分配ロードされる。次に、ＣＰＵ３０１は、クラスタ１０１ａ〜１０１ｄ内のプログラムカウンタ制御手段１１１に起動を指示する。次に、プログラムカウンタ制御手段１１１は、プログラム記憶手段３１２に記憶されているタスクのプログラムに応じてプログラムカウンタ値ＰＣ１１を生成し、プログラムカウンタ値ＰＣが出力される。ネットワークコンフィグレーション制御手段２０１は、プログラムカウンタ値ＰＣが示す自己の記憶手段内のプログラムに応じて、データネットワーク１０４の接続を制御する。ＰＥ１１３は、プログラムカウンタ値ＰＣが示すコンフィグレーション記憶手段３１１内のプログラムに応じて、処理を行う。上記のユーザプログラムのタスク処理が終了すると、ＣＰＵ（データ書き換え手段）３０１は、上記と同様に、プログラムカウンタマスタデータ記憶手段１０２内のプログラムカウンタマスタデータを書き換えることができる。上記の処理を繰り返すことにより、別のタスクを動作させることができる。例えば、タスク０を動作させた後に、タスク１を動作させることができる。
【００４２】
図５のリコンフィグラブル論理回路では、同一のプログラムカウンタ値ＰＣを制御する場合、クラスタ１０１ａ〜１０１ｄのプログラム記憶手段５１２には同じタスク０の１種類分の動作プログラムを記憶させる必要があった。本実施形態では、クラスタ１０１ａ〜１０１ｄのプログラム記憶手段３１２に異なるタスク０〜タスク３のプログラムを記憶させることができる。プログラムカウンタマスタデータＭＢを使用することにより、プログラムカウンタ値ＰＣの生成においてプログラムカウンタマスタデータ記憶手段１０２の記憶ビット数分のタスク空間を増やすことが可能であり、ユーザプログラムを増量させる効果が得られる。また、ユーザは、タスク毎にプログラミングできることにより、ソフトウエアの負担を軽減できる。
【００４３】
１つのクラスタのプログラムカウンタ値ＰＣの制御により、プログラム上で全体を統一（同期）保障した同期問題をクリアすることができる。また、ＰＥ１１３は、データネットワーク１０３上のプログラムカウンタ値ＰＣ３を直接参照することが可能となり、ユーザプログラムの制御できる範囲を広げ、性能を向上させることができる。
【００４４】
以上のように、本実施形態によれば、プログラムカウンタマスタデータＭＢを設定することにより、クラスタ１０１ａ〜１０１ｄのプログラムカウンタ値ＰＣを容易に同期させることができ、プログラミングによるソフトウエアの負担を軽減することができる。
【００４５】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施形態によるリコンフィグラブル論理回路の構成例を示す図である。
【図２】図１のリコンフィグラブル論理回路のより具体的な構成例を示す図である。
【図３】図２のリコンフィグラブル論理回路のより具体的な構成例を示す図である。
【図４】リコンフィグラブル論理回路の構成例を示す図である。
【図５】図４のリコンフィグラブル論理回路のより具体的な構成例を示す図である。
【符号の説明】
【００４７】
１０１ａ〜１０１ｄ  クラスタ
１０２  プログラムカウンタマスタデータ記憶手段
１０３  データネットワーク
１１１  プログラムカウンタ制御手段
１１２  ユーザプログラム記憶手段
１１３  ＰＥ
【図１】
0004580879.tif 000002
【図２】
0004580879.tif 000003
【図３】
0004580879.tif 000004
【図４】
0004580879.tif 000005
【図５】
0004580879.tif 000006