(57)【特許請求の範囲】
【請求項１】
単一の命令を実行して、所定の演算処理を行う複数のプロセッサエレメントを実装している複数のＳＩＭＤ演算器と、上記複数のＳＩＭＤ演算器間の結合又は分離を指示する連結制御信号を出力する全体連結制御部と、上記全体連結制御部から出力された連結制御信号が結合を指示していれば、上記複数のＳＩＭＤ演算器を結合し、上記連結制御信号が分離を指示していれば、上記複数のＳＩＭＤ演算器を分離する演算器連結部とを備えた並列信号処理プロセッサにおいて、
上記複数のＳＩＭＤ演算器は、プログラムを格納している命令メモリと、上記全体連結制御部から選択対象の命令メモリを示す選択信号を受けると、上記選択信号が示す命令メモリが自己の命令メモリであれば、上記命令メモリに格納されているプログラムを取得して、上記プログラムを他のＳＩＭＤ演算器に与え、上記選択信号が示す命令メモリが自己の命令メモリでなければ、他のＳＩＭＤ演算器からプログラムを取得し、その取得したプログラム内の命令を上記複数のプロセッサエレメントに発行するとともに、上記単一の命令が分岐命令である場合、上記分岐命令が示す先が上記自己の命令メモリの範囲内であれば、上記命令メモリに格納されている上記プログラムを取得して、上記プログラムを他のＳＩＭＤ演算器に与え、上記分岐命令が示す先が上記自己の命令メモリの範囲内でなければ、他のＳＩＭＤ演算器から上記プログラムを取得して、その取得した上記プログラム内の上記命令を上記複数のプロセッサエレメントに発行する命令発行手段とを備えていることを特徴とする並列信号処理プロセッサ。
【請求項２】
複数のＳＩＭＤ演算器の命令メモリに格納されているプログラムはＳＩＭＤプログラムの一部であって、各命令メモリにはＳＩＭＤプログラム内の相互に異なる部分が格納されていることを特徴とする請求項１記載の並列信号処理プロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、単一の命令を実行して、所定の演算処理を行う複数のプロセッサエレメントを実装している複数のＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）演算器が並列に動作することで、デジタル信号データを並列処理するＳＩＭＤ制御方式の並列信号処理プロセッサに関するものである。
【背景技術】
【０００２】
例えば、デジタルスチルカメラ、デジタルビデオカメラ、デジタルテレビやＰＣ（パーソナルコンピュータ）グラフィックスなどの分野では、高速かつ大量のデジタル画像信号を処理する必要があるため、大規模な専用ハードウェア（例えば、ＬＳＩ）の開発が行われている。
一方、デジタル画像信号に対する信号処理アルゴリズムが短期間で高度化・複雑化していく傾向にあるため、専用ハードウェアを開発する上で、短期間で高度化・複雑化する信号処理アルゴリズムへの追従が困難である。
【０００３】
そこで、プログラマビリティが高い高速プロセッサやＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）から構成されている画像処理装置の開発も行われている。
しかしながら、画像の高解像度化や高画質化に伴って、画像処理装置に対する要求性能が増大しているため、単独のプロセッサやＤＳＰでは、演算処理量や演算精度の不足、あるいは、高速クロック化による消費電力の増加が問題とされている。
そのため、単一の命令で複数のデータを並列処理するＳＩＭＤ制御方式の並列信号処理プロセッサによって、演算処理能力を高める方法が考えられている。
【０００４】
ＳＩＭＤ制御方式の並列信号処理プロセッサは、例えば、算術演算や論理演算を行う演算装置（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ：ＡＬＵ）や、ＡＬＵの演算結果を一時的に記憶するメモリなどから構成されるプロセッサエレメントを１次元に配置し、複数のプロセッサエレメントを単一の命令によって制御するものである。
例えば、デジタルスチルカメラ、デジタルビデオカメラ、デジタルテレビやＰＣグラフィックスなどの分野では、上述したように、高速かつ大量のデジタル画像信号を処理する必要があるが、ＳＩＭＤ制御方式の並列信号処理プロセッサは、高速かつ大量のデジタル画像信号を処理することが可能であるため適している。
また、ＳＩＭＤ制御方式の並列信号処理プロセッサは、短期間で高度化・複雑化する信号処理アルゴリズムに対して、容易に対応することができるため適している。
【０００５】
近年、画像処理装置に対する要求性能は、画像の高解像度化や高画質化に伴って増大している。
そのため、並列信号処理プロセッサでは、搭載するプロセッサエレメントの台数を増やして、演算処理量や演算精度を高めるようにしている。
また、単に、プロセッサエレメントの台数を増やすだけでなく、多様な信号処理を並列に処理することができるようにするために、並列信号処理プロセッサにおけるプロセッサエレメントの構成を変更できるようにしている（例えば、非特許文献１を参照）。
【０００６】
ただし、演算効率を高めるために、図７に示すように、同時に処理するプロセッサエレメント（ＰＥ演算器）の台数を増加させる場合（全体連結制御部が、ＳＩＭＤ演算器＃１のＰＥ演算器と、ＳＩＭＤ演算器＃２のＰＥ演算器と、ＳＩＭＤ演算器＃３のＰＥ演算器とを結合する場合）、ＳＩＭＤ演算器＃１，＃２，＃３における命令メモリに対して、同一のＳＩＭＤプログラムＤを格納する必要がある。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】日経エレクトロニクス「これがＣｅｌｌ」，２００５年２月２８日発行，Ｐ１００〜１０９
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来の並列信号処理プロセッサは以上のように構成されているので、演算効率を高めるために、同時に処理するプロセッサエレメント（ＰＥ演算器）の台数を増加させる場合、ＳＩＭＤ演算器＃１，＃２，＃３における命令メモリに対して、同一のＳＩＭＤプログラムＤを格納する必要があり、命令メモリの利用効率が低下するなどの課題があった。
【０００９】
この発明は上記のような課題を解決するためになされたもので、演算効率を高めるために、同時に処理するプロセッサエレメントの台数を増加させる場合でも、各ＳＩＭＤ演算器における命令メモリに対して、異なるプログラムを格納できるようにして、命令メモリの利用効率の低下を防止することができる並列信号処理プロセッサを得ることを目的とする。
【課題を解決するための手段】
【００１０】
この発明に係る並列信号処理プロセッサは、単一の命令を実行して、所定の演算処理を行う複数のプロセッサエレメントを実装している複数のＳＩＭＤ演算器が、プログラムを格納している命令メモリと、全体連結制御部から出力された選択信号が示す命令メモリが自己の命令メモリであれば、自己の命令メモリに格納されているプログラムを取得して、そのプログラムを他のＳＩＭＤ演算器に与え、その選択信号が示す命令メモリが自己の命令メモリでなければ、他のＳＩＭＤ演算器からプログラムを取得し、その取得したプログラム内の命令を複数のプロセッサエレメントに発行するとともに、単一の命令が分岐命令である場合、分岐命令が示す先が自己の命令メモリの範囲内であれば、命令メモリに格納されているプログラムを取得して、プログラムを他のＳＩＭＤ演算器に与え、分岐命令が示す先が自己の命令メモリの範囲内でなければ、他のＳＩＭＤ演算器からプログラムを取得して、その取得したプログラム内の命令を複数のプロセッサエレメントに発行する命令発行手段とを備えるようにしたものである。
【発明の効果】
【００１１】
この発明によれば、単一の命令を実行して、所定の演算処理を行う複数のプロセッサエレメントを実装している複数のＳＩＭＤ演算器が、プログラムを格納している命令メモリと、全体連結制御部から出力された選択信号が示す命令メモリが自己の命令メモリであれば、自己の命令メモリに格納されているプログラムを取得して、そのプログラムを他のＳＩＭＤ演算器に与え、その選択信号が示す命令メモリが自己の命令メモリでなければ、他のＳＩＭＤ演算器からプログラムを取得し、その取得したプログラム内の命令を複数のプロセッサエレメントに発行する命令発行手段とを備えるように構成したので、演算効率を高めるために、同時に処理するプロセッサエレメントの台数を増加させる場合でも、各ＳＩＭＤ演算器における命令メモリに対して、異なるプログラムを格納できるようになり、その結果、命令メモリの利用効率の低下を防止することができる効果がある。
【図面の簡単な説明】
【００１２】
【図１】この発明の実施の形態１による並列信号処理プロセッサを示す構成図である。
【図２】この発明の実施の形態１による並列信号処理プロセッサの全体連結制御部２を示す構成図である。
【図３】この発明の実施の形態１による並列信号処理プロセッサの命令フェッチ制御部１２−１〜１２−３を示す構成図である。
【図４】この発明の実施の形態１による並列信号処理プロセッサの命令デコード部１３−１〜１３−３を示す構成図である。
【図５】３個のＳＩＭＤ演算器１−１〜１−３を結合して、ＳＩＭＤプログラムＡ−１，Ａ−２，Ａ−３内の命令データを順番に読み出し、その命令データに対応するＰＥ制御信号を１２個のＰＥ演算器１４−１〜１４−３に発行している様子を示す説明図である。
【図６】３個のＳＩＭＤ演算器１−１〜１−３を分離して、ＳＩＭＤ演算器１−１〜１−３がＳＩＭＤプログラムＡ，Ｂ，Ｃ内の命令データを読み出し、その命令データに対応するＰＥ制御信号をＰＥ演算器１４−１〜１４−３に発行している様子を示す説明図である。
【図７】従来の並列信号処理プロセッサにおけるＰＥ演算器の結合例を示す説明図である。
【発明を実施するための形態】
【００１３】
実施の形態１．
図１はこの発明の実施の形態１による並列信号処理プロセッサを示す構成図である。
図１において、ＳＩＭＤ演算器１−１は単一の命令を実行して、入出力バス４から入力した演算対象のデータに対して所定の演算処理を行う４個のＰＥ演算器１４−１（プロセッサエレメント）を実装している。
ＳＩＭＤ演算器１−２は単一の命令を実行して、入出力バス４から入力した演算対象のデータに対して所定の演算処理を行う４個のＰＥ演算器１４−２（プロセッサエレメント）を実装している。
ＳＩＭＤ演算器１−３は単一の命令を実行して、入出力バス４から入力した演算対象のデータに対して所定の演算処理を行う４個のＰＥ演算器１４−３（プロセッサエレメント）を実装している。
図１では、並列信号処理プロセッサが３個のＳＩＭＤ演算器１−１〜１−３を実装し、ＳＩＭＤ演算器１−１〜１−３が４個のＰＥ演算器１４−１〜１４−３を実装している例を示しているが、並列信号処理プロセッサが４個以上のＳＩＭＤ演算器１を実装し、各ＳＩＭＤ演算器１が４個未満あるいは５個以上のＰＥ演算器１４を実装するようにしてもよい。
【００１４】
全体連結制御部２はＳＩＭＤ演算器１−１とＳＩＭＤ演算器１−２とＳＩＭＤ演算器１−３間の結合又は分離を指示するＳＩＭＤ結合制御信号を演算器連結部３−１，３−２に出力するとともに、選択対象の命令メモリを示すデコーダ選択信号をＳＩＭＤ演算器１−１〜１−３に出力する処理を実施する。
演算器連結部３−１は全体連結制御部２から出力されたＳＩＭＤ結合制御信号がＳＩＭＤ演算器１−１とＳＩＭＤ演算器１−２間の結合を指示していれば、ＳＩＭＤ演算器１−１とＳＩＭＤ演算器１−２間を結合し、そのＳＩＭＤ結合制御信号がＳＩＭＤ演算器１−１とＳＩＭＤ演算器１−２間の分離を指示していれば、ＳＩＭＤ演算器１−１とＳＩＭＤ演算器１−２間を分離する処理を実施する。
【００１５】
演算器連結部３−２は全体連結制御部２から出力されたＳＩＭＤ結合制御信号がＳＩＭＤ演算器１−２とＳＩＭＤ演算器１−３間の結合を指示していれば、ＳＩＭＤ演算器１−２とＳＩＭＤ演算器１−３間を結合し、そのＳＩＭＤ結合制御信号がＳＩＭＤ演算器１−２とＳＩＭＤ演算器１−３間の分離を指示していれば、ＳＩＭＤ演算器１−２とＳＩＭＤ演算器１−３間を分離する処理を実施する。
入出力バス４は演算対象のデータをＳＩＭＤ演算器１−１〜１−３に伝送するとともに、ＳＩＭＤ演算器１−１〜１−３の演算結果を伝送するための伝送路である。
【００１６】
ＳＩＭＤ演算器１−１の命令メモリ１１−１はＳＩＭＤプログラムの一部（以下、「ＳＩＭＤプログラムＡ−１」と称する）を格納しているＲＡＭやＲＯＭなどの記録媒体である。
命令フェッチ制御部１２−１は命令デコード部１３−１から出力された分岐指示信号が命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得する旨を示していれば、命令メモリ１１−１からＳＩＭＤプログラムＡ−１内の命令（以下、「命令データ」と称する）を取得して、その命令データを命令デコード部１３−１に出力するとともに、その命令データを右隣のＳＩＭＤ演算器１−２に出力する処理を実施する。
一方、命令デコード部１３−１から出力された分岐指示信号が命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得しない旨を示していれば、命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得せずに、例えば、ＮＯＰの命令データを右隣のＳＩＭＤ演算器１−２に出力する処理を実施する。ここでは、ＮＯＰの命令データを出力する例を示しているが、何も出力しないようにしてもよい。
【００１７】
命令デコード部１３−１は全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−１を選択する旨を示していれば、命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得する旨を示す分岐指示信号を命令フェッチ制御部１２−１に出力し、そのデコーダ選択信号が命令メモリ１１−１以外の命令メモリを選択する旨を示していれば、命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得しない旨を示す分岐指示信号を命令フェッチ制御部１２−１に出力する処理を実施する。
また、命令デコード部１３−１は全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−１を選択する旨を示していれば、命令フェッチ制御部１２−１から出力された命令データをＰＥ制御信号に変換して、そのＰＥ制御信号を４個のＰＥ演算器１４−１に発行し、全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−１以外の命令メモリを選択する旨を示していれば、右隣のＳＩＭＤ演算器１−２から出力された命令データをＰＥ制御信号に変換して、そのＰＥ制御信号を４個のＰＥ演算器１４−１に発行する処理を実施する。
【００１８】
ＰＥ演算器１４−１はバスＩ／Ｆ１６−１からＰＥバス１５−１を介して演算対象のデータを入力し、命令デコード部１３−１から発行されたＰＥ制御信号を実行することで、その演算対象のデータに対して所定の演算処理（例えば、算術演算や論理演算などの論理演算、あるいは、データシフトなどの演算）を行い、その演算結果をＰＥバス１５−１を介してバスＩ／Ｆ１６−１に出力する処理を実施する。
バスＩ／Ｆ１６−１は入出力バス４から演算対象のデータを入力して、そのデータをＰＥバス１５−１を介して４個のＰＥ演算器１４−１に出力する一方、４個のＰＥ演算器１４−１の演算結果をＰＥバス１５−１を介して入力し、その演算結果を入出力バス４に出力する処理を実施する。
【００１９】
ＳＩＭＤ演算器１−２の命令メモリ１１−２はＳＩＭＤプログラムの一部（以下、「ＳＩＭＤプログラムＡ−２」と称する）を格納しているＲＡＭやＲＯＭなどの記録媒体である。
命令フェッチ制御部１２−２は命令デコード部１３−２から出力された分岐指示信号が命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得する旨を示していれば、命令メモリ１１−２からＳＩＭＤプログラムＡ−２内の命令（以下、「命令データ」と称する）を取得して、その命令データを命令デコード部１３−２に出力するとともに、その命令データを右隣のＳＩＭＤ演算器１−３に出力する処理を実施する。
一方、命令デコード部１３−２から出力された分岐指示信号が命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得しない旨を示していれば、命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得せずに、左隣のＳＩＭＤ演算器１−１から出力された命令データを取得して、その命令データを右隣のＳＩＭＤ演算器１−３に出力する処理を実施する。ただし、左隣のＳＩＭＤ演算器１−１から何も出力されていなければ、何も出力しないようにしてもよい。
【００２０】
命令デコード部１３−２は全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−２を選択する旨を示していれば、命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得する旨を示す分岐指示信号を命令フェッチ制御部１２−２に出力し、そのデコーダ選択信号が命令メモリ１１−２以外の命令メモリを選択する旨を示していれば、命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得しない旨を示す分岐指示信号を命令フェッチ制御部１２−２に出力する処理を実施する。
また、命令デコード部１３−２は全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−２を選択する旨を示していれば、命令フェッチ制御部１２−２から出力された命令データをＰＥ制御信号に変換して、そのＰＥ制御信号を４個のＰＥ演算器１４−２に発行し、全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−２以外の命令メモリを選択する旨を示していれば、右隣のＳＩＭＤ演算器１−３から出力された命令データをＰＥ制御信号に変換して、そのＰＥ制御信号を４個のＰＥ演算器１４−２に発行する処理を実施する。
さらに、命令デコード部１３−２はＰＥ制御信号に変換する命令データを左隣のＳＩＭＤ演算器１−１に出力する処理を実施する。
【００２１】
ＰＥ演算器１４−２はバスＩ／Ｆ１６−２からＰＥバス１５−２を介して演算対象のデータを入力し、命令デコード部１３−２から発行されたＰＥ制御信号を実行することで、その演算対象のデータに対して所定の演算処理（例えば、算術演算や論理演算などの論理演算、あるいは、データシフトなどの演算）を行い、その演算結果をＰＥバス１５−２を介してバスＩ／Ｆ１６−２に出力する処理を実施する。
バスＩ／Ｆ１６−２は入出力バス４から演算対象のデータを入力して、そのデータをＰＥバス１５−２を介して４個のＰＥ演算器１４−２に出力する一方、４個のＰＥ演算器１４−２の演算結果をＰＥバス１５−２を介して入力し、その演算結果を入出力バス４に出力する処理を実施する。
【００２２】
ＳＩＭＤ演算器１−３の命令メモリ１１−３はＳＩＭＤプログラムの一部（以下、「ＳＩＭＤプログラムＡ−３」と称する）を格納しているＲＡＭやＲＯＭなどの記録媒体である。
命令フェッチ制御部１２−３は命令デコード部１３−３から出力された分岐指示信号が命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得する旨を示していれば、命令メモリ１１−３からＳＩＭＤプログラムＡ−３内の命令（以下、「命令データ」と称する）を取得して、その命令データを命令デコード部１３−３に出力する処理を実施する。
一方、命令デコード部１３−３から出力された分岐指示信号が命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得しない旨を示していれば、命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得せずに、左隣のＳＩＭＤ演算器１−２から出力された命令データを取得して、その命令データを命令デコード部１３−３に出力する処理を実施する。
【００２３】
命令デコード部１３−３は全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−３を選択する旨を示していれば、命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得する旨を示す分岐指示信号を命令フェッチ制御部１２−３に出力し、そのデコーダ選択信号が命令メモリ１１−３以外の命令メモリを選択する旨を示していれば、命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得しない旨を示す分岐指示信号を命令フェッチ制御部１２−３に出力する処理を実施する。
また、命令デコード部１３−３は命令フェッチ制御部１２−３から出力された命令データをＰＥ制御信号に変換して、そのＰＥ制御信号を４個のＰＥ演算器１４−２に発行する処理を実施する。
さらに、命令デコード部１３−３は命令フェッチ制御部１２−３から出力された命令データを左隣のＳＩＭＤ演算器１−２に出力する処理を実施する。
【００２４】
ＰＥ演算器１４−３はバスＩ／Ｆ１６−３からＰＥバス１５−３を介して演算対象のデータを入力し、命令デコード部１３−３から発行されたＰＥ制御信号を実行することで、その演算対象のデータに対して所定の演算処理（例えば、算術演算や論理演算などの論理演算、あるいは、データシフトなどの演算）を行い、その演算結果をＰＥバス１５−３を介してバスＩ／Ｆ１６−３に出力する処理を実施する。
バスＩ／Ｆ１６−３は入出力バス４から演算対象のデータを入力して、そのデータをＰＥバス１５−３を介して４個のＰＥ演算器１４−３に出力する一方、４個のＰＥ演算器１４−３の演算結果をＰＥバス１５−３を介して入力し、その演算結果を入出力バス４に出力する処理を実施する。
なお、命令フェッチ制御部１２−１〜１２−３及び命令デコード部１３−１〜１３−３から命令発行手段が構成されている。
【００２５】
図２はこの発明の実施の形態１による並列信号処理プロセッサの全体連結制御部２を示す構成図である。
図２において、結合制御命令メモリ２１は例えばＲＡＭなどの記録媒体であり、ＳＩＭＤ演算器１−１〜１−３間の結合／分離の制御や、選択対象の命令メモリを決定する全体結合制御プログラムを格納している。
シーケンサ２２は例えばプログラムカウンタ、ＲＯＭ及び制御回路を備えており、結合制御命令メモリ２１により格納されている全体結合制御プログラム内の命令を順次読み出して解読し、その命令にしたがってＳＩＭＤ連結制御部２３及びデコーダ選択制御部２４の動作を制御する。
【００２６】
ＳＩＭＤ連結制御部２３はシーケンサ２２の指示の下で、ＳＩＭＤ演算器１−１〜１−３間の結合又は分離を指示するＳＩＭＤ結合制御信号を生成し、そのＳＩＭＤ結合制御信号を演算器連結部３−１，３−２に出力する処理を実施する。
デコーダ選択制御部２４はシーケンサ２２の指示の下で、選択対象の命令メモリ１１を示すデコーダ選択信号を生成し、そのデコーダ選択信号をＳＩＭＤ演算器１−１〜１−３に出力する処理を実施する。
【００２７】
図３はこの発明の実施の形態１による並列信号処理プロセッサの命令フェッチ制御部１２−１〜１２−３を示す構成図である。
図３において、命令フェッチ制御部１２−１〜１２−３のメモリアクセス制御部３１は例えばプログラムカウンタや分岐アドレス制御回路を内蔵しており、命令デコード部１３−１〜１３−３から出力された分岐指示信号にしたがって内部のプログラムカウンタを制御することで、命令メモリ１１−１〜１１−３により格納されているＳＩＭＤプログラムＡ−１〜Ａ−３内の命令データの読出しを制御する。
【００２８】
命令フェッチ制御部１２−１のセレクタ判定部３２は命令デコード部１３−１から出力された分岐指示信号が命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得する旨を示していれば、命令メモリ１１−１から読み出されたＳＩＭＤプログラムＡ−１内の命令データを選択して、その命令データを右隣のＳＩＭＤ演算器１−２に出力する指令を命令セレクタ３３に出力し、その分岐指示信号が命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得しない旨を示していれば、例えば、ＮＯＰの命令データを選択して、その命令データを右隣のＳＩＭＤ演算器１−２に出力する指令を命令セレクタ３３に出力する処理を実施する。ここでは、ＮＯＰの命令データを選択する命令を出力する例を示しているが、何も出力しない命令を出力するようにしてもよい。
【００２９】
命令フェッチ制御部１２−２のセレクタ判定部３２は命令デコード部１３−２から出力された分岐指示信号が命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得する旨を示していれば、命令メモリ１１−２から読み出されたＳＩＭＤプログラムＡ−２内の命令データを選択して、その命令データを右隣のＳＩＭＤ演算器１−３に出力する指令を命令セレクタ３３に出力し、その分岐指示信号が命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得しない旨を示していれば、左隣のＳＩＭＤ演算器１−１から出力された命令データを選択して、その命令データを右隣のＳＩＭＤ演算器１−３に出力する指令を命令セレクタ３３に出力する処理を実施する。
【００３０】
命令フェッチ制御部１２−３のセレクタ判定部３２は命令デコード部１３−３から出力された分岐指示信号が命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得する旨を示していれば、命令メモリ１１−３から読み出されたＳＩＭＤプログラムＡ−３内の命令データを選択して、その命令データを命令デコード部１３−３に出力する指令を命令セレクタ３３に出力し、その分岐指示信号が命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得しない旨を示していれば、左隣のＳＩＭＤ演算器１−２から出力された命令データを選択して、その命令データを命令デコード部１３−３に出力する指令を命令セレクタ３３に出力する処理を実施する。
【００３１】
命令フェッチ制御部１２−１の命令セレクタ３３はセレクタ判定部３２から出力された指令が命令メモリ１１−１から読み出されたＳＩＭＤプログラムＡ−１内の命令データを選択する旨を示していれば、命令メモリ１１−１から読み出されたＳＩＭＤプログラムＡ−１内の命令データを選択して、その命令データを命令デコード部１３−１及び右隣のＳＩＭＤ演算器１−２に出力し、セレクタ判定部３２から出力された指令がＮＯＰの命令データを選択する旨を示していれば、ＮＯＰの命令データを選択して、その命令データを右隣のＳＩＭＤ演算器１−２に出力する処理を実施する。
【００３２】
命令フェッチ制御部１２−２の命令セレクタ３３はセレクタ判定部３２から出力された指令が命令メモリ１１−２から読み出されたＳＩＭＤプログラムＡ−２内の命令データを選択する旨を示していれば、命令メモリ１１−２から読み出されたＳＩＭＤプログラムＡ−２内の命令データを選択して、その命令データを命令デコード部１３−２及び右隣のＳＩＭＤ演算器１−３に出力し、セレクタ判定部３２から出力された指令が左隣のＳＩＭＤ演算器１−１から出力された命令データを選択する旨を示していれば、左隣のＳＩＭＤ演算器１−１から出力された命令データを選択し、その命令データを右隣のＳＩＭＤ演算器１−２に出力する処理を実施する。
【００３３】
命令フェッチ制御部１２−３の命令セレクタ３３はセレクタ判定部３２から出力された指令が命令メモリ１１−３から読み出されたＳＩＭＤプログラムＡ−３内の命令データを選択する旨を示していれば、命令メモリ１１−３から読み出されたＳＩＭＤプログラムＡ−３内の命令データを選択して、その命令データを命令デコード部１３−３に出力し、セレクタ判定部３２から出力された指令が左隣のＳＩＭＤ演算器１−２から出力された命令データを選択する旨を示していれば、左隣のＳＩＭＤ演算器１−２から出力された命令データを選択し、その命令データを命令デコード部１３−３に出力する処理を実施する。
【００３４】
図４はこの発明の実施の形態１による並列信号処理プロセッサの命令デコード部１３−１〜１３−３を示す構成図である。
図４において、命令デコード部１３−１の命令デコーダ４１は全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−１を選択する旨を示していれば、命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得する旨を示す分岐指示信号を命令フェッチ制御部１２−１に出力し、そのデコーダ選択信号が命令メモリ１１−１以外の命令メモリを選択する旨を示していれば、命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得しない旨を示す分岐指示信号を命令フェッチ制御部１２−１に出力する処理を実施する。
また、命令デコーダ４１はセレクタ４２により選択された命令データをＰＥ制御信号に変換し、そのＰＥ制御信号を４個のＰＥ演算器１４−１に発行する処理を実施する。
【００３５】
命令デコード部１３−２の命令デコーダ４１は全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−２を選択する旨を示していれば、命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得する旨を示す分岐指示信号を命令フェッチ制御部１２−２に出力し、そのデコーダ選択信号が命令メモリ１１−２以外の命令メモリを選択する旨を示していれば、命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得しない旨を示す分岐指示信号を命令フェッチ制御部１２−２に出力する処理を実施する。
また、命令デコーダ４１はセレクタ４２により選択された命令データをＰＥ制御信号に変換し、そのＰＥ制御信号を４個のＰＥ演算器１４−２に発行する処理を実施する。
【００３６】
命令デコード部１３−３の命令デコーダ４１は全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−３を選択する旨を示していれば、命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得する旨を示す分岐指示信号を命令フェッチ制御部１２−３に出力し、そのデコーダ選択信号が命令メモリ１１−３以外の命令メモリを選択する旨を示していれば、命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得しない旨を示す分岐指示信号を命令フェッチ制御部１２−３に出力する処理を実施する。
また、命令デコーダ４１はセレクタ４２により選択された命令データをＰＥ制御信号に変換し、そのＰＥ制御信号を４個のＰＥ演算器１４−３に発行する処理を実施する。
【００３７】
命令デコード部１３−１のセレクタ４２は全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−１を選択する旨を示していれば、命令フェッチ制御部１２−１から出力された命令データを選択して、その命令データを命令デコーダ４１に出力し、そのデコーダ選択信号が命令メモリ１１−１以外の命令メモリを選択する旨を示していれば、右隣のＳＩＭＤ演算器１−２から出力された命令データを選択して、その命令データを命令デコーダ４１に出力する処理を実施する。
【００３８】
命令デコード部１３−２のセレクタ４２は全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−２を選択する旨を示していれば、命令フェッチ制御部１２−２から出力された命令データを選択して、その命令データを命令デコーダ４１及び左隣のＳＩＭＤ演算器１−１に出力し、そのデコーダ選択信号が命令メモリ１１−２以外の命令メモリを選択する旨を示していれば、右隣のＳＩＭＤ演算器１−３から出力された命令データを選択して、その命令データを命令デコーダ４１及び左隣のＳＩＭＤ演算器１−１に出力する処理を実施する。
命令デコード部１３−３のセレクタ４２は命令フェッチ制御部１２−３から出力された命令データを選択して、その命令データを命令デコーダ４１及び左隣のＳＩＭＤ演算器１−２に出力する処理を実施する。
【００３９】
次に動作について説明する。
最初に、３個のＳＩＭＤ演算器１−１〜１−３を結合して、３×４個のＰＥ演算器１４が並列に演算処理を実行する場合の処理内容を説明する。
図５は３個のＳＩＭＤ演算器１−１〜１−３を結合して、ＳＩＭＤプログラムＡ−１，Ａ−２，Ａ−３内の命令データを順番に読み出し、その命令データに対応するＰＥ制御信号を１２個のＰＥ演算器１４−１〜１４−３に発行している様子を示す説明図である。
なお、ＰＥ演算器１４−１〜１４−３は、演算対象のデータや演算結果を格納するＲＡＭなどの記録媒体を実装しているが、ＳＩＭＤ演算器１−１〜１−３が結合されることで、他のＳＩＭＤ演算器１に実装されているＰＥ演算器１４の記録媒体に格納されている演算結果を参照することが可能になり、その演算結果を演算対象のデータとして使用することができる。
【００４０】
まず、全体連結制御部２は、ＳＩＭＤ演算器１−１とＳＩＭＤ演算器１−２とＳＩＭＤ演算器１−３間の結合を指示するＳＩＭＤ結合制御信号を演算器連結部３−１，３−２に出力する。
即ち、全体連結制御部２のシーケンサ２２は、結合制御命令メモリ２１により格納されている全体結合制御プログラム内の命令を読み出し、その命令がＳＩＭＤ演算器１−１〜１−３間の結合を指示する命令であれば、ＳＩＭＤ演算器１−１〜１−３間の結合を指示するＳＩＭＤ結合制御信号の生成をＳＩＭＤ連結制御部２３に指示する。
全体連結制御部２のＳＩＭＤ連結制御部２３は、シーケンサ２２の指示の下、ＳＩＭＤ演算器１−１〜１−３間の結合を指示するＳＩＭＤ結合制御信号を生成し、そのＳＩＭＤ結合制御信号を演算器連結部３−１，３−２に出力する。
【００４１】
演算器連結部３−１は、全体連結制御部２からＳＩＭＤ演算器１−１とＳＩＭＤ演算器１−２間の結合を指示するＳＩＭＤ結合制御信号を受けると、ＳＩＭＤ演算器１−１とＳＩＭＤ演算器１−２間を結合する。
演算器連結部３−２は、全体連結制御部２からＳＩＭＤ演算器１−２とＳＩＭＤ演算器１−３間の結合を指示するＳＩＭＤ結合制御信号を受けると、ＳＩＭＤ演算器１−２とＳＩＭＤ演算器１−３間を結合する。
これにより、３個のＳＩＭＤ演算器１−１〜１−３が結合されるため、１２個のＰＥ演算器１４を用いて、３個の演算対象のデータを同時に演算することが可能なＳＩＭＤが構成される。
【００４２】
次に、全体連結制御部２は、最初にＳＩＭＤプログラムＡ−１内の命令データをＳＩＭＤ演算器１−１〜１−３に与えるため、選択対象の命令メモリがＳＩＭＤ演算器１−１内の命令メモリ１１−１である旨を示すデコーダ選択信号をＳＩＭＤ演算器１−１〜１−３の命令デコード部１３−１〜１３−３に出力する。
即ち、全体連結制御部２のシーケンサ２２は、結合制御命令メモリ２１により格納されている全体結合制御プログラム内の次の命令（ＳＩＭＤ演算器１−１〜１−３間の結合を指示する命令の次の命令）を読み出し、その命令がＳＩＭＤプログラムＡ−１内の命令データを選択する命令であれば、選択対象の命令メモリがＳＩＭＤ演算器１−１内の命令メモリ１１−１である旨を示すデコーダ選択信号の生成をデコーダ選択制御部２４に指示する。
全体連結制御部２のデコーダ選択制御部２４は、シーケンサ２２の指示の下、選択対象の命令メモリがＳＩＭＤ演算器１−１内の命令メモリ１１−１である旨を示すデコーダ選択信号を生成し、そのデコーダ選択信号をＳＩＭＤ演算器１−１〜１−３の命令デコード部１３−１〜１３−３に出力する。
【００４３】
命令デコード部１３−１の命令デコーダ４１は、全体連結制御部２から命令メモリ１１−１を選択する旨を示すデコーダ選択信号を受けると、命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得する旨を示す分岐指示信号を命令フェッチ制御部１２−１に出力する。
一方、命令デコード部１３−１，１３−２の命令デコーダ４１は、全体連結制御部２から命令メモリ１１−１を選択する旨を示すデコーダ選択信号を受けると、命令メモリ１１−２，１１−３からＳＩＭＤプログラムＡ−２，Ａ−３を取得しない旨を示す分岐指示信号を命令フェッチ制御部１２−２，１２−３に出力する。
【００４４】
命令フェッチ制御部１２−１は、命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得する旨を示す分岐指示信号を命令デコード部１３−１から受けると、命令メモリ１１−１からＳＩＭＤプログラムＡ−１内の命令データを取得して、その命令データを命令デコード部１３−１に出力するとともに、その命令データを右隣のＳＩＭＤ演算器１−２に出力する。
即ち、命令フェッチ制御部１２−１のメモリアクセス制御部３１は、命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得する旨を示す分岐指示信号を受けると、その分岐指示信号にしたがって内部のプログラムカウンタを制御することで、命令メモリ１１−１により格納されているＳＩＭＤプログラムＡ−１内の命令データを順番に読み出し、その命令データが命令メモリ１１−１から命令セレクタ３３に与えられるように制御する。
【００４５】
命令フェッチ制御部１２−１のセレクタ判定部３２は、命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得する旨を示す分岐指示信号を受けると、命令メモリ１１−１から読み出されたＳＩＭＤプログラムＡ−１内の命令データを選択して、その命令データを右隣のＳＩＭＤ演算器１−２に出力する指令を命令セレクタ３３に出力する。
命令フェッチ制御部１２−１の命令セレクタ３３は、メモリアクセス制御部３１の制御の下、命令メモリ１１−１からＳＩＭＤプログラムＡ−１内の命令データを受けると、セレクタ判定部３２から出力された指令にしたがって、そのＳＩＭＤプログラムＡ−１内の命令データを選択して、その命令データを命令デコード部１３−１に出力するとともに、その命令データを右隣のＳＩＭＤ演算器１−２に出力する。
【００４６】
命令フェッチ制御部１２−２は、命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得しない旨を示す分岐指示信号を命令デコード部１３−２から受けると、命令メモリ１１−２からＳＩＭＤプログラムＡ−２内の命令データを取得せずに、左隣のＳＩＭＤ演算器１−１から出力されたＳＩＭＤプログラムＡ−１内の命令データを選択して、その命令データを右隣のＳＩＭＤ演算器１−３に出力する。
即ち、命令フェッチ制御部１２−２のセレクタ判定部３２は、命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得しない旨を示す分岐指示信号を受けると、左隣のＳＩＭＤ演算器１−１から出力された命令データを選択して、その命令データを右隣のＳＩＭＤ演算器１−３に出力する指令を命令セレクタ３３に出力する。
命令フェッチ制御部１２−２の命令セレクタ３３は、左隣のＳＩＭＤ演算器１−１からＳＩＭＤプログラムＡ−１内の命令データを受けると、セレクタ判定部３２から出力された指令にしたがって、そのＳＩＭＤプログラムＡ−１内の命令データを選択し、その命令データを右隣のＳＩＭＤ演算器１−３に出力する。
【００４７】
命令フェッチ制御部１２−３は、命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得しない旨を示す分岐指示信号を命令デコード部１３−３から受けると、命令メモリ１１−３からＳＩＭＤプログラムＡ−３内の命令データを取得せずに、左隣のＳＩＭＤ演算器１−２から出力されたＳＩＭＤプログラムＡ−１内の命令データを選択して、その命令データを命令デコード部１３−３に出力する。
即ち、命令フェッチ制御部１２−３のセレクタ判定部３２は、命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得しない旨を示す分岐指示信号を受けると、左隣のＳＩＭＤ演算器１−２から出力された命令データを選択して、その命令データを命令デコード部１３−３に出力する指令を命令セレクタ３３に出力する。
命令フェッチ制御部１２−３の命令セレクタ３３は、左隣のＳＩＭＤ演算器１−２からＳＩＭＤプログラムＡ−１内の命令データを受けると、セレクタ判定部３２から出力された指令にしたがって、そのＳＩＭＤプログラムＡ−１内の命令データを選択し、その命令データを命令デコード部１３−３に出力する。
【００４８】
命令デコード部１３−３のセレクタ４２は、命令フェッチ制御部１２−３からＳＩＭＤプログラムＡ−１内の命令データを受けると、その命令データを命令デコーダ４１に出力するとともに、左隣のＳＩＭＤ演算器１−２に出力する。
命令デコード部１３−３の命令デコーダ４１は、セレクタ４２からＳＩＭＤプログラムＡ−１内の命令データを受けると、その命令データをＰＥ制御信号に変換し、そのＰＥ制御信号を４個のＰＥ演算器１４−３に発行する。
【００４９】
命令デコード部１３−２のセレクタ４２は、全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−２以外の命令メモリを選択する旨を示しているため、右隣のＳＩＭＤ演算器１−３から出力されたＳＩＭＤプログラムＡ−１内の命令データを選択して、その命令データを命令デコーダ４１に出力するとともに、左隣のＳＩＭＤ演算器１−１に出力する。
命令デコード部１３−２の命令デコーダ４１は、セレクタ４２からＳＩＭＤプログラムＡ−１内の命令データを受けると、その命令データをＰＥ制御信号に変換し、そのＰＥ制御信号を４個のＰＥ演算器１４−２に発行する。
【００５０】
命令デコード部１３−１のセレクタ４２は、全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−１を選択する旨を示しているため、命令フェッチ制御部１２−１から出力されたＳＩＭＤプログラムＡ−１内の命令データを選択して、その命令データを命令デコーダ４１に出力する。
命令デコード部１３−１の命令デコーダ４１は、セレクタ４２からＳＩＭＤプログラムＡ−１内の命令データを受けると、その命令データをＰＥ制御信号に変換し、そのＰＥ制御信号を４個のＰＥ演算器１４−１に発行する。
これにより、３個のＳＩＭＤ演算器１−１〜１−３内のＰＥ演算器１４−１〜１４−３には、同一のＰＥ制御信号（ＳＩＭＤ演算器１がＳＩＭＤプログラムＡ−１内の命令データを実行するための制御信号）が発行されたことになる。
【００５１】
ＳＩＭＤ演算器１−１のバスＩ／Ｆ１６−１は、入出力バス４から演算対象のデータを入力すると、ＰＥバス１５−１を介して、そのデータを４個のＰＥ演算器１４−１に出力する。
ＳＩＭＤ演算器１−２のバスＩ／Ｆ１６−２は、入出力バス４から演算対象のデータを入力すると、ＰＥバス１５−２を介して、そのデータを４個のＰＥ演算器１４−２に出力する。
ＳＩＭＤ演算器１−３のバスＩ／Ｆ１６−３は、入出力バス４から演算対象のデータを入力すると、ＰＥバス１５−３を介して、そのデータを４個のＰＥ演算器１４−３に出力する。
【００５２】
ＳＩＭＤ演算器１−１のＰＥ演算器１４−１は、命令デコード部１３−１から発行されたＰＥ制御信号を実行することで、バスＩ／Ｆ１６−１から出力された演算対象のデータに対して所定の演算処理を行い、ＰＥバス１５−１を介して、その演算結果をバスＩ／Ｆ１６−１に出力する。
ＳＩＭＤ演算器１−２のＰＥ演算器１４−２は、命令デコード部１３−２から発行されたＰＥ制御信号を実行（ＰＥ演算器１４−１と同一のＰＥ制御信号を実行）することで、バスＩ／Ｆ１６−２から出力された演算対象のデータに対して所定の演算処理を行い、ＰＥバス１５−２を介して、その演算結果をバスＩ／Ｆ１６−２に出力する。
ＳＩＭＤ演算器１−３のＰＥ演算器１４−３は、命令デコード部１３−３から発行されたＰＥ制御信号を実行（ＰＥ演算器１４−１，１４−２と同一のＰＥ制御信号を実行）することで、バスＩ／Ｆ１６−３から出力された演算対象のデータに対して所定の演算処理を行い、ＰＥバス１５−３を介して、その演算結果をバスＩ／Ｆ１６−３に出力する。
【００５３】
ＳＩＭＤ演算器１−１のバスＩ／Ｆ１６−１は、ＰＥ演算器１４−１の演算結果を受けると、その演算結果を入出力バス４に出力する。
ＳＩＭＤ演算器１−２のバスＩ／Ｆ１６−２は、ＰＥ演算器１４−２の演算結果を受けると、その演算結果を入出力バス４に出力する。
ＳＩＭＤ演算器１−３のバスＩ／Ｆ１６−３は、ＰＥ演算器１４−３の演算結果を受けると、その演算結果を入出力バス４に出力する。
【００５４】
全体連結制御部２は、ＳＩＭＤ演算器１−１〜１−３がＳＩＭＤプログラムＡ−１内の命令データを実行すると、次に、ＳＩＭＤプログラムＡ−２内の命令データをＳＩＭＤ演算器１−１〜１−３に与えるため、選択対象の命令メモリがＳＩＭＤ演算器１−２内の命令メモリ１１−２である旨を示すデコーダ選択信号をＳＩＭＤ演算器１−１〜１−３の命令デコード部１３−１〜１３−３に出力する。
即ち、全体連結制御部２のシーケンサ２２は、結合制御命令メモリ２１により格納されている全体結合制御プログラム内の次の命令（ＳＩＭＤプログラムＡ−１内の命令データを選択する命令の次の命令）を読み出し、その命令がＳＩＭＤプログラムＡ−２内の命令データを選択する命令であれば、選択対象の命令メモリがＳＩＭＤ演算器１−２内の命令メモリ１１−２である旨を示すデコーダ選択信号の生成をデコーダ選択制御部２４に指示する。
全体連結制御部２のデコーダ選択制御部２４は、シーケンサ２２の指示の下、選択対象の命令メモリがＳＩＭＤ演算器１−２内の命令メモリ１１−２である旨を示すデコーダ選択信号を生成し、そのデコーダ選択信号をＳＩＭＤ演算器１−１〜１−３の命令デコード部１３−１〜１３−３に出力する。
【００５５】
命令デコード部１３−２の命令デコーダ４１は、全体連結制御部２から命令メモリ１１−２を選択する旨を示すデコーダ選択信号を受けると、命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得する旨を示す分岐指示信号を命令フェッチ制御部１２−２に出力する。
一方、命令デコード部１３−１，１３−３の命令デコーダ４１は、全体連結制御部２から命令メモリ１１−２を選択する旨を示すデコーダ選択信号を受けると、命令メモリ１１−１，１１−３からＳＩＭＤプログラムＡ−１，Ａ−３を取得しない旨を示す分岐指示信号を命令フェッチ制御部１２−１，１２−３に出力する。
【００５６】
命令フェッチ制御部１２−１は、命令デコード部１３−１から、命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得しない旨を示す分岐指示信号を受けると、命令メモリ１１−１からＳＩＭＤプログラムＡ−１内の命令データを取得せずに、ＮＯＰの命令データを選択して、その命令データを右隣のＳＩＭＤ演算器１−２に出力する。
即ち、命令フェッチ制御部１２−１のセレクタ判定部３２は、命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得しない旨を示す分岐指示信号を受けると、ＮＯＰの命令データを選択して、その命令データを右隣のＳＩＭＤ演算器１−２に出力する指令を命令セレクタ３３に出力する。
命令フェッチ制御部１２−１の命令セレクタ３３は、セレクタ判定部３２から出力された指令にしたがって、ＮＯＰの命令データを選択し、その命令データを右隣のＳＩＭＤ演算器１−２に出力する。
【００５７】
命令フェッチ制御部１２−２は、命令デコード部１３−２から、命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得する旨を示す分岐指示信号を受けると、命令メモリ１１−２からＳＩＭＤプログラムＡ−２内の命令データを取得して、その命令データを命令デコード部１３−２に出力するとともに、その命令データを右隣のＳＩＭＤ演算器１−３に出力する。
即ち、命令フェッチ制御部１２−２のメモリアクセス制御部３１は、命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得する旨を示す分岐指示信号を受けると、その分岐指示信号にしたがって内部のプログラムカウンタを制御することで、命令メモリ１１−２により格納されているＳＩＭＤプログラムＡ−２内の命令データを順番に読み出し、その命令データが命令メモリ１１−２から命令セレクタ３３に与えられるように制御する。
【００５８】
命令フェッチ制御部１２−２のセレクタ判定部３２は、命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得する旨を示す分岐指示信号を受けると、命令メモリ１１−２から読み出されたＳＩＭＤプログラムＡ−２内の命令データを選択して、その命令データを右隣のＳＩＭＤ演算器１−３に出力する指令を命令セレクタ３３に出力する。
命令フェッチ制御部１２−２の命令セレクタ３３は、メモリアクセス制御部３１の制御の下、命令メモリ１１−２からＳＩＭＤプログラムＡ−２内の命令データを受けると、セレクタ判定部３２から出力された指令にしたがって、そのＳＩＭＤプログラムＡ−２内の命令データを選択して、その命令データを命令デコード部１３−２に出力するとともに、その命令データを右隣のＳＩＭＤ演算器１−３に出力する。
【００５９】
命令フェッチ制御部１２−３は、命令デコード部１３−３から、命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得しない旨を示す分岐指示信号を受けると、命令メモリ１１−３からＳＩＭＤプログラムＡ−３内の命令データを取得せずに、左隣のＳＩＭＤ演算器１−２から出力されたＳＩＭＤプログラムＡ−２内の命令データを選択して、その命令データを命令デコード部１３−３に出力する。
即ち、命令フェッチ制御部１２−３のセレクタ判定部３２は、命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得しない旨を示す分岐指示信号を受けると、左隣のＳＩＭＤ演算器１−２から出力された命令データを選択して、その命令データを命令デコード部１３−３に出力する指令を命令セレクタ３３に出力する。
命令フェッチ制御部１２−３の命令セレクタ３３は、左隣のＳＩＭＤ演算器１−２からＳＩＭＤプログラムＡ−２内の命令データを受けると、セレクタ判定部３２から出力された指令にしたがって、そのＳＩＭＤプログラムＡ−２内の命令データを選択し、その命令データを命令デコード部１３−３に出力する。
【００６０】
命令デコード部１３−３のセレクタ４２は、命令フェッチ制御部１２−３からＳＩＭＤプログラムＡ−２内の命令データを受けると、その命令データを命令デコーダ４１に出力するとともに、左隣のＳＩＭＤ演算器１−２に出力する。
命令デコード部１３−３の命令デコーダ４１は、セレクタ４２からＳＩＭＤプログラムＡ−２内の命令データを受けると、その命令データをＰＥ制御信号に変換し、そのＰＥ制御信号を４個のＰＥ演算器１４−３に発行する。
【００６１】
命令デコード部１３−２のセレクタ４２は、全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−２を選択する旨を示しているため、命令フェッチ制御部１２−２から出力されたＳＩＭＤプログラムＡ−２内の命令データを選択して、その命令データを命令デコーダ４１に出力するとともに、左隣のＳＩＭＤ演算器１−１に出力する。
命令デコード部１３−２の命令デコーダ４１は、セレクタ４２からＳＩＭＤプログラムＡ−２内の命令データを受けると、その命令データをＰＥ制御信号に変換し、そのＰＥ制御信号を４個のＰＥ演算器１４−２に発行する。
【００６２】
命令デコード部１３−１のセレクタ４２は、全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−１以外の命令メモリを選択する旨を示しているため、右隣のＳＩＭＤ演算器１−２から出力されたＳＩＭＤプログラムＡ−２内の命令データを選択して、その命令データを命令デコーダ４１に出力する。
命令デコード部１３−１の命令デコーダ４１は、セレクタ４２からＳＩＭＤプログラムＡ−２内の命令データを受けると、その命令データをＰＥ制御信号に変換し、そのＰＥ制御信号を４個のＰＥ演算器１４−１に発行する。
これにより、３個のＳＩＭＤ演算器１−１〜１−３内のＰＥ演算器１４−１〜１４−３には、同一のＰＥ制御信号（ＳＩＭＤ演算器１がＳＩＭＤプログラムＡ−２内の命令データを実行するための制御信号）が発行されたことになる。
【００６３】
ＳＩＭＤ演算器１−１のバスＩ／Ｆ１６−１は、入出力バス４から演算対象のデータを入力すると、ＰＥバス１５−１を介して、そのデータを４個のＰＥ演算器１４−１に出力する。
ＳＩＭＤ演算器１−２のバスＩ／Ｆ１６−２は、入出力バス４から演算対象のデータを入力すると、ＰＥバス１５−２を介して、そのデータを４個のＰＥ演算器１４−２に出力する。
ＳＩＭＤ演算器１−３のバスＩ／Ｆ１６−３は、入出力バス４から演算対象のデータを入力すると、ＰＥバス１５−３を介して、そのデータを４個のＰＥ演算器１４−３に出力する。
【００６４】
ＳＩＭＤ演算器１−１のＰＥ演算器１４−１は、命令デコード部１３−１から発行されたＰＥ制御信号を実行することで、バスＩ／Ｆ１６−１から出力された演算対象のデータに対して所定の演算処理を行い、ＰＥバス１５−１を介して、その演算結果をバスＩ／Ｆ１６−１に出力する。
ＳＩＭＤ演算器１−２のＰＥ演算器１４−２は、命令デコード部１３−２から発行されたＰＥ制御信号を実行（ＰＥ演算器１４−１と同一のＰＥ制御信号を実行）することで、バスＩ／Ｆ１６−２から出力された演算対象のデータに対して所定の演算処理を行い、ＰＥバス１５−２を介して、その演算結果をバスＩ／Ｆ１６−２に出力する。
ＳＩＭＤ演算器１−３のＰＥ演算器１４−３は、命令デコード部１３−３から発行されたＰＥ制御信号を実行（ＰＥ演算器１４−１，１４−２と同一のＰＥ制御信号を実行）することで、バスＩ／Ｆ１６−３から出力された演算対象のデータに対して所定の演算処理を行い、ＰＥバス１５−３を介して、その演算結果をバスＩ／Ｆ１６−３に出力する。
【００６５】
ＳＩＭＤ演算器１−１のバスＩ／Ｆ１６−１は、ＰＥ演算器１４−１の演算結果を受けると、その演算結果を入出力バス４に出力する。
ＳＩＭＤ演算器１−２のバスＩ／Ｆ１６−２は、ＰＥ演算器１４−２の演算結果を受けると、その演算結果を入出力バス４に出力する。
ＳＩＭＤ演算器１−３のバスＩ／Ｆ１６−３は、ＰＥ演算器１４−３の演算結果を受けると、その演算結果を入出力バス４に出力する。
【００６６】
全体連結制御部２は、ＳＩＭＤ演算器１−１〜１−３がＳＩＭＤプログラムＡ−２内の命令データを実行すると、最後に、ＳＩＭＤプログラムＡ−３内の命令データをＳＩＭＤ演算器１−１〜１−３に与えるため、選択対象の命令メモリがＳＩＭＤ演算器１−３内の命令メモリ１１−３である旨を示すデコーダ選択信号をＳＩＭＤ演算器１−１〜１−３の命令デコード部１３−１〜１３−３に出力する。
即ち、全体連結制御部２のシーケンサ２２は、結合制御命令メモリ２１により格納されている全体結合制御プログラム内の次の命令（ＳＩＭＤプログラムＡ−２内の命令データを選択する命令の次の命令）を読み出し、その命令がＳＩＭＤプログラムＡ−３内の命令データを選択する命令であれば、選択対象の命令メモリがＳＩＭＤ演算器１−３内の命令メモリ１１−３である旨を示すデコーダ選択信号の生成をデコーダ選択制御部２４に指示する。
全体連結制御部２のデコーダ選択制御部２４は、シーケンサ２２の指示の下、選択対象の命令メモリがＳＩＭＤ演算器１−３内の命令メモリ１１−３である旨を示すデコーダ選択信号を生成し、そのデコーダ選択信号をＳＩＭＤ演算器１−１〜１−３の命令デコード部１３−１〜１３−３に出力する。
【００６７】
命令デコード部１３−３の命令デコーダ４１は、全体連結制御部２から命令メモリ１１−３を選択する旨を示すデコーダ選択信号を受けると、命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得する旨を示す分岐指示信号を命令フェッチ制御部１２−３に出力する。
一方、命令デコード部１３−１，１３−２の命令デコーダ４１は、全体連結制御部２から命令メモリ１１−３を選択する旨を示すデコーダ選択信号を受けると、命令メモリ１１−１，１１−２からＳＩＭＤプログラムＡ−１，Ａ−２を取得しない旨を示す分岐指示信号を命令フェッチ制御部１２−１，１２−２に出力する。
【００６８】
命令フェッチ制御部１２−１は、命令デコード部１３−１から、命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得しない旨を示す分岐指示信号を受けると、命令メモリ１１−１からＳＩＭＤプログラムＡ−１内の命令データを取得せずに、ＮＯＰの命令データを選択して、その命令データを右隣のＳＩＭＤ演算器１−２に出力する。
即ち、命令フェッチ制御部１２−１のセレクタ判定部３２は、命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得しない旨を示す分岐指示信号を受けると、ＮＯＰの命令データを選択して、その命令データを右隣のＳＩＭＤ演算器１−２に出力する指令を命令セレクタ３３に出力する。
命令フェッチ制御部１２−１の命令セレクタ３３は、セレクタ判定部３２から出力された指令にしたがって、ＮＯＰの命令データを選択し、その命令データを右隣のＳＩＭＤ演算器１−２に出力する。
【００６９】
命令フェッチ制御部１２−２は、命令デコード部１３−２から、命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得しない旨を示す分岐指示信号を受けると、命令メモリ１１−２からＳＩＭＤプログラムＡ−２内の命令データを取得せずに、左隣のＳＩＭＤ演算器１−１から出力されたＮＯＰの命令データを選択して、その命令データを右隣のＳＩＭＤ演算器１−３に出力する。
即ち、命令フェッチ制御部１２−２のセレクタ判定部３２は、命令メモリ１１−２からＳＩＭＤプログラムＡ−２を取得しない旨を示す分岐指示信号を受けると、左隣のＳＩＭＤ演算器１−１から出力された命令データを選択して、その命令データを右隣のＳＩＭＤ演算器１−３に出力する指令を命令セレクタ３３に出力する。
命令フェッチ制御部１２−２の命令セレクタ３３は、左隣のＳＩＭＤ演算器１−１からＮＯＰの命令データを受けると、セレクタ判定部３２から出力された指令にしたがって、ＮＯＰの命令データを選択し、その命令データを右隣のＳＩＭＤ演算器１−３に出力する。
【００７０】
命令フェッチ制御部１２−３は、命令デコード部１３−２から、命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得する旨を示す分岐指示信号を受けると、命令メモリ１１−３からＳＩＭＤプログラムＡ−３内の命令データを取得して、その命令データを命令デコード部１３−３に出力する。
即ち、命令フェッチ制御部１２−３のメモリアクセス制御部３１は、命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得する旨を示す分岐指示信号を受けると、その分岐指示信号にしたがって内部のプログラムカウンタを制御することで、命令メモリ１１−３により格納されているＳＩＭＤプログラムＡ−３内の命令データを順番に読み出し、その命令データが命令メモリ１１−３から命令セレクタ３３に与えられるように制御する。
【００７１】
命令フェッチ制御部１２−３のセレクタ判定部３２は、命令メモリ１１−３からＳＩＭＤプログラムＡ−３を取得する旨を示す分岐指示信号を受けると、ＳＩＭＤプログラムＡ−３内の命令データを選択する指令を命令セレクタ３３に出力する。
命令フェッチ制御部１２−３の命令セレクタ３３は、メモリアクセス制御部３１の制御の下、命令メモリ１１−３からＳＩＭＤプログラムＡ−３内の命令データを受けると、セレクタ判定部３２から出力された指令にしたがって、そのＳＩＭＤプログラムＡ−３内の命令データを選択し、その命令データを命令デコード部１３−３に出力する。
【００７２】
命令デコード部１３−３のセレクタ４２は、命令フェッチ制御部１２−３からＳＩＭＤプログラムＡ−３内の命令データを受けると、その命令データを命令デコーダ４１に出力するとともに、左隣のＳＩＭＤ演算器１−２に出力する。
命令デコード部１３−３の命令デコーダ４１は、セレクタ４２からＳＩＭＤプログラムＡ−３内の命令データを受けると、その命令データをＰＥ制御信号に変換し、そのＰＥ制御信号を４個のＰＥ演算器１４−３に発行する。
【００７３】
命令デコード部１３−２のセレクタ４２は、全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−２以外の命令メモリを選択する旨を示しているため、右隣のＳＩＭＤ演算器１−３から出力されたＳＩＭＤプログラムＡ−３内の命令データを選択して、その命令データを命令デコーダ４１に出力するとともに、左隣のＳＩＭＤ演算器１−１に出力する。
命令デコード部１３−２の命令デコーダ４１は、セレクタ４２からＳＩＭＤプログラムＡ−３内の命令データを受けると、その命令データをＰＥ制御信号に変換し、そのＰＥ制御信号を４個のＰＥ演算器１４−２に発行する。
【００７４】
命令デコード部１３−１のセレクタ４２は、全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−１以外の命令メモリを選択する旨を示しているため、右隣のＳＩＭＤ演算器１−２から出力されたＳＩＭＤプログラムＡ−３内の命令データを選択して、その命令データを命令デコーダ４１に出力する。
命令デコード部１３−１の命令デコーダ４１は、セレクタ４２からＳＩＭＤプログラムＡ−３内の命令データを受けると、その命令データをＰＥ制御信号に変換し、そのＰＥ制御信号を４個のＰＥ演算器１４−１に発行する。
これにより、３個のＳＩＭＤ演算器１−１〜１−３内のＰＥ演算器１４−１〜１４−３には、同一のＰＥ制御信号（ＳＩＭＤ演算器１がＳＩＭＤプログラムＡ−３内の命令データを実行するための制御信号）が発行されたことになる。
【００７５】
ＳＩＭＤ演算器１−１のバスＩ／Ｆ１６−１は、入出力バス４から演算対象のデータを入力すると、ＰＥバス１５−１を介して、そのデータを４個のＰＥ演算器１４−１に出力する。
ＳＩＭＤ演算器１−２のバスＩ／Ｆ１６−２は、入出力バス４から演算対象のデータを入力すると、ＰＥバス１５−２を介して、そのデータを４個のＰＥ演算器１４−２に出力する。
ＳＩＭＤ演算器１−３のバスＩ／Ｆ１６−３は、入出力バス４から演算対象のデータを入力すると、ＰＥバス１５−３を介して、そのデータを４個のＰＥ演算器１４−３に出力する。
【００７６】
ＳＩＭＤ演算器１−１のＰＥ演算器１４−１は、命令デコード部１３−１から発行されたＰＥ制御信号を実行することで、バスＩ／Ｆ１６−１から出力された演算対象のデータに対して所定の演算処理を行い、ＰＥバス１５−１を介して、その演算結果をバスＩ／Ｆ１６−１に出力する。
ＳＩＭＤ演算器１−２のＰＥ演算器１４−２は、命令デコード部１３−２から発行されたＰＥ制御信号を実行（ＰＥ演算器１４−１と同一のＰＥ制御信号を実行）することで、バスＩ／Ｆ１６−２から出力された演算対象のデータに対して所定の演算処理を行い、ＰＥバス１５−２を介して、その演算結果をバスＩ／Ｆ１６−２に出力する。
ＳＩＭＤ演算器１−３のＰＥ演算器１４−３は、命令デコード部１３−３から発行されたＰＥ制御信号を実行（ＰＥ演算器１４−１，１４−２と同一のＰＥ制御信号を実行）することで、バスＩ／Ｆ１６−３から出力された演算対象のデータに対して所定の演算処理を行い、ＰＥバス１５−３を介して、その演算結果をバスＩ／Ｆ１６−３に出力する。
【００７７】
ＳＩＭＤ演算器１−１のバスＩ／Ｆ１６−１は、ＰＥ演算器１４−１の演算結果を受けると、その演算結果を入出力バス４に出力する。
ＳＩＭＤ演算器１−２のバスＩ／Ｆ１６−２は、ＰＥ演算器１４−２の演算結果を受けると、その演算結果を入出力バス４に出力する。
ＳＩＭＤ演算器１−３のバスＩ／Ｆ１６−３は、ＰＥ演算器１４−３の演算結果を受けると、その演算結果を入出力バス４に出力する。
【００７８】
ここでは、ＳＩＭＤプログラムＡ−１内の命令データを読み出してから、ＳＩＭＤプログラムＡ−２内の命令データを読み出し、その後、ＳＩＭＤプログラムＡ−３内の命令データを読み出すものについて示したが、ＳＩＭＤプログラムＡ−１〜Ａ−３の読出順は一例に過ぎず、例えば、ＳＩＭＤプログラムＡ−２内の命令データを読み出してから、ＳＩＭＤプログラムＡ−３内の命令データを読み出し、その後、ＳＩＭＤプログラムＡ−１内の命令データを読み出すようにしてもよいし、ＳＩＭＤプログラムＡ−３内の命令データを読み出してから、ＳＩＭＤプログラムＡ−１内の命令データを読み出し、その後、ＳＩＭＤプログラムＡ−２内の命令データを読み出すようにしてもよい。
【００７９】
また、全く同様な構成において、命令デコード部１３−１〜１３−３の命令デコーダ４１が、命令データから分岐命令を判別し、分岐命令の場合には、分岐先を示す分岐指示信号を命令フェッチ制御部１２−１〜１２−３に出力する手段を備えるようにしてもよい。
命令デコード部１３−１の命令デコーダ４１は、命令データから分岐命令を判別して、最初の分岐命令が見つかるまでは、上記と同様に、全体連結制御部２から出力されたデコーダ選択信号に従って分岐指示信号を出力する。
その後、分岐命令が見つかると、その分岐命令が示す分岐先が命令メモリ１１−１の範囲内を示していれば、命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得する旨を示す分岐指示信号を命令フェッチ制御部１２−１に出力し、その分岐命令が示す分岐先が命令メモリ１１−１の範囲以外を示していれば、命令メモリ１１−１からＳＩＭＤプログラムＡ−１を取得しない旨を示す分岐指示信号を命令フェッチ制御部１２−１に出力する処理を実施する。命令デコーダ部１３−２と命令デコーダ１３−３についても同様の処理を実施する。
その他の部分は、全く同様な構成でよい。
命令デコーダ部１３−１〜１３−３の命令デコーダ４１が、命令データから分岐命令を判別して、分岐命令の場合には、その分岐先を示す分岐指示信号を命令フェッチ制御部１２−１〜１２−３に出力する手段を備えることにより、全体連結制御部２に格納する全体結合制御プログラムはＳＩＭＤの連結構成のみを記述し、ＳＩＭＤプログラムＡ−１〜Ａ−３の読出順を記述する必要がなくなるため、全体結合制御プログラムの簡潔化を図ることができるとともに、ＳＩＭＤプログラムＡ−１〜Ａ−３の自由度を高めることができる。
【００８０】
次に、３個のＳＩＭＤ演算器１−１〜１−３を分離して、ＳＩＭＤ演算器１−１〜１−３内のＰＥ演算器１４が、それぞれ独立して演算処理を実行する（同一のＳＩＭＤ演算器１内のＰＥ演算器１４は、並列に演算処理を実行する）場合の処理内容を説明する。
図６は３個のＳＩＭＤ演算器１−１〜１−３を分離して、ＳＩＭＤ演算器１−１〜１−３がＳＩＭＤプログラムＡ，Ｂ，Ｃ内の命令データを読み出し、その命令データに対応するＰＥ制御信号をＰＥ演算器１４−１〜１４−３に発行している様子を示す説明図である。
【００８１】
ここまでは、ＳＩＭＤ演算器１−１〜１−３の命令メモリ１１−１〜１１−３には、ＳＩＭＤプログラムＡ−１，Ａ−２，Ａ−３が格納されているものとして説明したが、ＳＩＭＤ演算器１−１の命令メモリ１１−１には、ＳＩＭＤプログラムＡ−１の他にＳＩＭＤプログラムＡが格納され、ＳＩＭＤ演算器１−２の命令メモリ１１−２には、ＳＩＭＤプログラムＡ−２の他にＳＩＭＤプログラムＢが格納され、ＳＩＭＤ演算器１−３の命令メモリ１１−３には、ＳＩＭＤプログラムＡ−３の他にＳＩＭＤプログラムＣが格納されているものとする。
【００８２】
まず、全体連結制御部２は、ＳＩＭＤ演算器１−１とＳＩＭＤ演算器１−２とＳＩＭＤ演算器１−３間の分離を指示するＳＩＭＤ結合制御信号を演算器連結部３−１，３−２に出力する。
即ち、全体連結制御部２のシーケンサ２２は、結合制御命令メモリ２１により格納されている全体結合制御プログラム内の命令を読み出し、その命令がＳＩＭＤ演算器１−１〜１−３間の分離を指示する命令であれば、ＳＩＭＤ演算器１−１〜１−３間の分離を指示するＳＩＭＤ結合制御信号の生成をＳＩＭＤ連結制御部２３に指示する。
全体連結制御部２のＳＩＭＤ連結制御部２３は、シーケンサ２２の指示の下、ＳＩＭＤ演算器１−１〜１−３間の分離を指示するＳＩＭＤ結合制御信号を生成し、そのＳＩＭＤ結合制御信号を演算器連結部３−１，３−２に出力する。
【００８３】
演算器連結部３−１は、全体連結制御部２からＳＩＭＤ演算器１−１とＳＩＭＤ演算器１−２間の分離を指示するＳＩＭＤ結合制御信号を受けると、ＳＩＭＤ演算器１−１とＳＩＭＤ演算器１−２間を分離する。
演算器連結部３−２は、全体連結制御部２からＳＩＭＤ演算器１−２とＳＩＭＤ演算器１−３間の分離を指示するＳＩＭＤ結合制御信号を受けると、ＳＩＭＤ演算器１−２とＳＩＭＤ演算器１−３間を分離する。
これにより、３個のＳＩＭＤ演算器１−１〜１−３が分離されるため、それぞれのＳＩＭＤ演算器１が３個のＰＥ演算器１４を用いるＳＩＭＤが構成される。
【００８４】
次に、全体連結制御部２は、ＳＩＭＤプログラムＡ内の命令データをＳＩＭＤ演算器１−１に与えるため、選択対象の命令メモリがＳＩＭＤ演算器１−１内の命令メモリ１１−１である旨を示すデコーダ選択信号（デコーダ選択信号には、読出対象のＳＩＭＤプログラムが、ＳＩＭＤプログラムＡ−１ではなく、ＳＩＭＤプログラムＡである旨を示す命令を含むものとする）をＳＩＭＤ演算器１−１の命令デコード部１３−１に出力する。
また、全体連結制御部２は、ＳＩＭＤプログラムＢ内の命令データをＳＩＭＤ演算器１−２に与えるため、選択対象の命令メモリがＳＩＭＤ演算器１−２内の命令メモリ１１−２である旨を示すデコーダ選択信号（デコーダ選択信号には、読出対象のＳＩＭＤプログラムが、ＳＩＭＤプログラムＡ−２ではなく、ＳＩＭＤプログラムＢである旨を示す命令を含むものとする）をＳＩＭＤ演算器１−２の命令デコード部１３−２に出力する。
さらに、全体連結制御部２は、ＳＩＭＤプログラムＣ内の命令データをＳＩＭＤ演算器１−３に与えるため、選択対象の命令メモリがＳＩＭＤ演算器１−３内の命令メモリ１１−３である旨を示すデコーダ選択信号（デコーダ選択信号には、読出対象のＳＩＭＤプログラムが、ＳＩＭＤプログラムＡ−３ではなく、ＳＩＭＤプログラムＣである旨を示す命令を含むものとする）をＳＩＭＤ演算器１−３の命令デコード部１３−３に出力する。
【００８５】
命令デコード部１３−１の命令デコーダ４１は、全体連結制御部２から命令メモリ１１−１を選択する旨を示すデコーダ選択信号を受けると、そのデコーダ選択信号にしたがって命令メモリ１１−１からＳＩＭＤプログラムＡを取得する旨を示す分岐指示信号を命令フェッチ制御部１２−１に出力する。
また、命令デコード部１３−２の命令デコーダ４１は、全体連結制御部２から命令メモリ１１−２を選択する旨を示すデコーダ選択信号を受けると、そのデコーダ選択信号にしたがって命令メモリ１１−２からＳＩＭＤプログラムＢを取得する旨を示す分岐指示信号を命令フェッチ制御部１２−２に出力する。
また、命令デコード部１３−３の命令デコーダ４１は、全体連結制御部２から命令メモリ１１−３を選択する旨を示すデコーダ選択信号を受けると、そのデコーダ選択信号にしたがって命令メモリ１１−３からＳＩＭＤプログラムＣを取得する旨を示す分岐指示信号を命令フェッチ制御部１２−３に出力する。
【００８６】
命令フェッチ制御部１２−１は、命令デコード部１３−１から、命令メモリ１１−１からＳＩＭＤプログラムＡを取得する旨を示す分岐指示信号を受けると、命令メモリ１１−１からＳＩＭＤプログラムＡ内の命令データを取得して、その命令データを命令デコード部１３−１に出力する。
即ち、命令フェッチ制御部１２−１のメモリアクセス制御部３１は、命令メモリ１１−１からＳＩＭＤプログラムＡを取得する旨を示す分岐指示信号を受けると、その分岐指示信号にしたがって内部のプログラムカウンタを制御することで、命令メモリ１１−１により格納されているＳＩＭＤプログラムＡ内の命令データを順番に読み出し、その命令データが命令メモリ１１−１から命令セレクタ３３に与えられるように制御する。
【００８７】
命令フェッチ制御部１２−１のセレクタ判定部３２は、命令メモリ１１−１からＳＩＭＤプログラムＡを取得する旨を示す分岐指示信号を受けると、命令メモリ１１−１から読み出されたＳＩＭＤプログラムＡ内の命令データを選択して、その命令データを命令デコード部１３−１に出力する指令を命令セレクタ３３に出力する。
命令フェッチ制御部１２−１の命令セレクタ３３は、メモリアクセス制御部３１の制御の下、命令メモリ１１−１からＳＩＭＤプログラムＡ内の命令データを受けると、セレクタ判定部３２から出力された指令にしたがって、そのＳＩＭＤプログラムＡ内の命令データを選択して、その命令データを命令デコード部１３−１に出力する。
【００８８】
命令フェッチ制御部１２−２は、命令デコード部１３−２から、命令メモリ１１−２からＳＩＭＤプログラムＢを取得する旨を示す分岐指示信号を受けると、命令メモリ１１−２からＳＩＭＤプログラムＢ内の命令データを取得して、その命令データを命令デコード部１３−２に出力する。
命令フェッチ制御部１２−３は、命令デコード部１３−３から、命令メモリ１１−３からＳＩＭＤプログラムＣを取得する旨を示す分岐指示信号を受けると、命令メモリ１１−３からＳＩＭＤプログラムＣ内の命令データを取得して、その命令データを命令デコード部１３−３に出力する。
この場合の命令フェッチ制御部１２−２，１２−３の内部の動作は、命令フェッチ制御部１２−１の内部の動作と同様であるため説明を省略する。
【００８９】
命令デコード部１３−１のセレクタ４２は、全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−１を選択する旨を示しているため、命令フェッチ制御部１２−１から出力されたＳＩＭＤプログラムＡ内の命令データを選択して、その命令データを命令デコーダ４１に出力する。
命令デコード部１３−１の命令デコーダ４１は、セレクタ４２からＳＩＭＤプログラムＡ内の命令データを受けると、その命令データをＰＥ制御信号に変換し、そのＰＥ制御信号を４個のＰＥ演算器１４−１に発行する。
これにより、ＳＩＭＤ演算器１−１内のＰＥ演算器１４−１には、同一のＰＥ制御信号が発行されたことになる。
【００９０】
命令デコード部１３−２のセレクタ４２は、全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−２を選択する旨を示しているため、命令フェッチ制御部１２−２から出力されたＳＩＭＤプログラムＢ内の命令データを選択して、その命令データを命令デコーダ４１に出力する。
命令デコード部１３−２の命令デコーダ４１は、セレクタ４２からＳＩＭＤプログラムＢ内の命令データを受けると、その命令データをＰＥ制御信号に変換し、そのＰＥ制御信号を４個のＰＥ演算器１４−２に発行する。
これにより、ＳＩＭＤ演算器１−２内のＰＥ演算器１４−２には、同一のＰＥ制御信号が発行されたことになる。
【００９１】
命令デコード部１３−３のセレクタ４２は、全体連結制御部２から出力されたデコーダ選択信号が命令メモリ１１−３を選択する旨を示しているため、命令フェッチ制御部１２−３から出力されたＳＩＭＤプログラムＣ内の命令データを選択して、その命令データを命令デコーダ４１に出力する。
命令デコード部１３−３の命令デコーダ４１は、セレクタ４２からＳＩＭＤプログラムＣ内の命令データを受けると、その命令データをＰＥ制御信号に変換し、そのＰＥ制御信号を４個のＰＥ演算器１４−３に発行する。
これにより、ＳＩＭＤ演算器１−３内のＰＥ演算器１４−３には、同一のＰＥ制御信号が発行されたことになる。
【００９２】
ＳＩＭＤ演算器１−１のバスＩ／Ｆ１６−１は、入出力バス４から演算対象のデータを入力すると、ＰＥバス１５−１を介して、そのデータを４個のＰＥ演算器１４−１に出力する。
ＳＩＭＤ演算器１−２のバスＩ／Ｆ１６−２は、入出力バス４から演算対象のデータを入力すると、ＰＥバス１５−２を介して、そのデータを４個のＰＥ演算器１４−２に出力する。
ＳＩＭＤ演算器１−３のバスＩ／Ｆ１６−３は、入出力バス４から演算対象のデータを入力すると、ＰＥバス１５−３を介して、そのデータを４個のＰＥ演算器１４−３に出力する。
【００９３】
ＳＩＭＤ演算器１−１のＰＥ演算器１４−１は、命令デコード部１３−１から発行されたＰＥ制御信号を実行することで、バスＩ／Ｆ１６−１から出力された演算対象のデータに対して所定の演算処理を行い、ＰＥバス１５−１を介して、その演算結果をバスＩ／Ｆ１６−１に出力する。
ＳＩＭＤ演算器１−２のＰＥ演算器１４−２は、命令デコード部１３−２から発行されたＰＥ制御信号を実行することで、バスＩ／Ｆ１６−２から出力された演算対象のデータに対して所定の演算処理を行い、ＰＥバス１５−２を介して、その演算結果をバスＩ／Ｆ１６−２に出力する。
ＳＩＭＤ演算器１−３のＰＥ演算器１４−３は、命令デコード部１３−３から発行されたＰＥ制御信号を実行することで、バスＩ／Ｆ１６−３から出力された演算対象のデータに対して所定の演算処理を行い、ＰＥバス１５−３を介して、その演算結果をバスＩ／Ｆ１６−３に出力する。
【００９４】
ＳＩＭＤ演算器１−１のバスＩ／Ｆ１６−１は、ＰＥ演算器１４−１の演算結果を受けると、その演算結果を入出力バス４に出力する。
ＳＩＭＤ演算器１−２のバスＩ／Ｆ１６−２は、ＰＥ演算器１４−２の演算結果を受けると、その演算結果を入出力バス４に出力する。
ＳＩＭＤ演算器１−３のバスＩ／Ｆ１６−３は、ＰＥ演算器１４−３の演算結果を受けると、その演算結果を入出力バス４に出力する。
【００９５】
以上で明らかなように、この実施の形態１によれば、単一の命令を実行して、所定の演算処理を行う複数のＰＥ演算器１４を実装しているＳＩＭＤ演算器１−１〜１−３が、ＳＩＭＤプログラムを格納している命令メモリ１１−１〜１１−３と、全体連結制御部２から出力されたデコーダ選択信号が示す命令メモリが自己の命令メモリ１１であれば、自己の命令メモリ１１に格納されているＳＩＭＤプログラムを取得して、そのＳＩＭＤプログラムを他のＳＩＭＤ演算器１に与え、そのデコーダ選択信号が示す命令メモリが自己の命令メモリ１１でなければ、他のＳＩＭＤ演算器１からＳＩＭＤプログラムを取得する命令フェッチ制御部１２−１〜１２−３と、自己の命令フェッチ制御部１２により取得されたＳＩＭＤプログラム内の命令又は右隣の命令フェッチ制御部１２により取得されたＳＩＭＤプログラム内の命令を複数のＰＥ演算器１４に発行する命令デコード部１３−１〜１３−３とを備えるように構成したので、演算効率を高めるために、同時に処理するＰＥ演算器１４の台数を増加させる場合でも、各ＳＩＭＤ演算器１における命令メモリ１１に対して、異なるＳＩＭＤプログラムを格納できるようになり、その結果、命令メモリ１１の利用効率の低下を防止することができる効果を奏する。
【００９６】
即ち、ＳＩＭＤ演算器１−１〜１−３間を連結する場合でも、ＳＩＭＤ演算器１−１〜１−３の命令メモリ１１−１〜１１−３には、ＳＩＭＤプログラム内の相互に異なる部分（ＳＩＭＤプログラムＡ−１，Ａ−２，Ａ−３）を格納することができるため（従来例では、図７に示すように、命令メモリ１１−１〜１１−３には、同一のＳＩＭＤプログラムＤを格納する必要がある）、命令メモリ１１の利応効率を高めることができる。したがって、命令メモリ１１のメモリ容量を増やすことなく、より大きなプログラムを実行することが可能になる。
【００９７】
また、この実施の形態１によれば、全体連結制御部２が実行する全体結合制御プログラムによって、ＰＥ演算器１４の並列度を定義することが可能であるため、対象とする信号処理の内容に応じて、最適な並列度処理を実現することができる。
なお、実施の形態１において、ＰＥ演算器１４の演算ビット幅や演算種類に制約を与えるものではない。
【符号の説明】
【００９８】
１−１〜１−３  ＳＩＭＤ演算器、２  全体連結制御部、３−１，３−２  演算器連結部、４  入出力バス、１１−１〜１１−３  命令メモリ、１２−１〜１２−３  命令フェッチ制御部（命令発行手段）、１３−１〜１３−３  命令デコード部（命令発行手段）、１４−１〜１４−３  ＰＥ演算器（プロセッサエレメント）、１５−１〜１５−３  ＰＥバス、１６−１〜１６−３  バスＩ／Ｆ、２１  結合制御命令メモリ、２２  シーケンサ、２３  ＳＩＭＤ連結制御部、２４  デコーダ選択制御部、３１  メモリアクセス制御部、３２  セレクタ判定部、３３  命令セレクタ、４１  命令デコーダ、４２  セレクタ。
【図１】
0005511400.tif 000002
【図２】
0005511400.tif 000003
【図３】
0005511400.tif 000004
【図４】
0005511400.tif 000005
【図５】
0005511400.tif 000006
【図６】
0005511400.tif 000007
【図７】
0005511400.tif 000008