(57)【特許請求の範囲】
【請求項１】
複数の出力端子のいずれかへデータを出力する選択手段、第１の入力端子および第２の入力端子を備えた複数の演算要素と、
前記複数の演算要素の前記複数の出力端子及び前記第１の入力端子を一次元に接続し、一方の方向にデータを転送する複数のデータラインを備えた第１のデータバスと、
前記複数の演算要素の前記複数の出力端子及び前記第２の入力端子を一次元に接続し、前記第１のデータバスと異なる方向にデータを転送する複数のデータラインを備えた第２のデータバスとを備えた並列処理装置であって、
それぞれの演算要素は、前記選択手段で選択された出力端子へ出力したデータを、前記第１のデータバスを介して前記選択手段で選択された出力端子に対応した演算要素の第１の入力端子へ転送すると共に、
前記選択手段で選択された出力端子へ出力したデータを、前記第２のデータバスを介して前記選択手段で選択された出力端子に対応した演算要素の第２の入力端子へ転送することを特徴とする並列処理装置。
【請求項２】
複数の第１の出力端子のいずれかへデータを出力する第１の選択手段、第１の入力端子および第２の入力端子、並びに複数の第２の出力端子のいずれかへデータを出力する第２の選択手段、第３の入力端子および第４の入力端子を備えた複数の演算要素と、
前記複数の演算要素の前記複数の第１の出力端子及び前記第１の入力端子を一次元に接続し、第１の方向にデータを転送する複数のデータラインを備えた第１のデータバスと、
前記複数の演算要素の前記複数の第１の出力端子及び前記第２の入力端子を一次元に接続し、前記第１のデータバスとの第１の方向と異なる方向にデータを転送する複数のデータラインを備えた第２のデータバスと、
前記複数の演算要素の前記複数の第２の出力端子及び前記第３の入力端子を、第１及び第２のデータバスと交差する第２の方向に一次元に接続し、一方の方向にデータを転送する複数のデータラインを備えた第３のデータバスと、
前記複数の演算要素の前記複数の第２の出力端子及び前記第４の入力端子を一次元に接続し、前記第３のデータバスの第２の方向と異なる方向にデータを転送する複数のデータラインを備えた第４のデータバスとを備えた並列処理装置であって、
それぞれの演算要素は、前記第１の選択手段で選択された第１の出力端子へ出力したデータを、前記第１のデータバスを介して前記第１の選択手段で選択された第１の出力端子に対応した演算要素の第１の入力端子へ転送すると共に、
前記第１の選択手段で選択された第１の出力端子へ出力したデータを、前記第２のデータバスを介して前記第１の選択手段で選択された第１の出力端子に対応した演算要素の第２の入力端子へ転送すると共に、
前記第２の選択手段で選択された第２の出力端子へ出力したデータを、前記第３のデータバスを介して前記第２の選択手段で選択された第２の出力端子に対応した演算要素の第３の入力端子へ転送すると共に、
前記第２の選択手段で選択された第２の出力端子へ出力したデータを、前記第４のデータバスを介して前記第２の選択手段で選択された第２の出力端子に対応した演算要素の第４の入力端子へ転送することを特徴とする並列処理装置。
【請求項３】
複数の第１の出力端子のいずれかへデータを出力する第１の選択手段、第１の入力端子及び第２の入力端子、複数の第２の出力端子のいずれかへデータを出力する第２の選択手段、第３の入力端子及び第４の入力端子、並びに複数の第３の出力端子のいずれかへデータを出力する第３の選択手段、第５の入力端子及び第６の入力端子を備えた複数の演算要素と、
前記複数の演算要素の前記複数の第１の出力端子及び前記第１の入力端子を一次元に接続し、第１の方向にデータを転送する複数のデータラインを備えた第１のデータバスと、
前記複数の演算要素の前記複数の第１の出力端子及び前記第２の入力端子を一次元に接続し、前記第１のデータバスの第１の方向と異なる方向にデータを転送する複数のデータラインを備えた第２のデータバスと、
前記複数の演算要素の前記複数の第２の出力端子及び前記第３の入力端子を、第１及び第２のデータバスと交差する方向に一次元に接続し、第２の方向にデータを転送する複数のデータラインを備えた第３のデータバスと、
前記複数の演算要素の前記複数の第２の出力端子及び前記第４の入力端子を一次元に接続し、前記第３のデータバスの第２の方向と異なる方向にデータを転送する複数のデータラインを備えた第４のデータバスと、
前記複数の演算要素の前記複数の第３の出力端子及び前記第５の入力端子を、第１及び第２のデータバスと第３及び第４のデータバスを含む平面と交差する方向に一次元に接続し、第３の方向にデータを転送する複数のデータラインを備えた第５のデータバスと、
前記複数の演算要素の前記複数の第３の出力端子及び前記第６の入力端子を一次元に接続し、前記第５のデータバスの第３の方向と異なる方向にデータを転送する複数のデータラインを備えた第６のデータバスとを備えた並列処理装置であって、
それぞれの演算要素は、前記第１の選択手段で選択された第１の出力端子へ出力したデータを、前記第１のデータバスを介して前記第１の選択手段で選択された第１の出力端子に対応した演算要素の第１の入力端子へ転送すると共に、
前記第１の選択手段で選択された第１の出力端子へ出力したデータを、前記第２のデータバスを介して前記第１の選択手段で選択された第１の出力端子に対応した演算要素の第２の入力端子へ転送すると共に、
前記第２の選択手段で選択された第２の出力端子へ出力したデータを、前記第３のデータバスを介して前記第２の選択手段で選択された第２の出力端子に対応した演算要素の第３の入力端子へ転送すると共に、
前記第２の選択手段で選択された第２の出力端子へ出力したデータを、前記第４のデータバスを介して前記第２の選択手段で選択された第２の出力端子に対応した演算要素の第４の入力端子へ転送すると共に、
前記第３の選択手段で選択された第３の出力端子へ出力したデータを、前記第５のデータバスを介して前記第３の選択手段で選択された第３の出力端子に対応した演算要素の第５の入力端子へ転送すると共に、
前記第３の選択手段で選択された第３の出力端子へ出力したデータを、前記第６のデータバスを介して前記第３の選択手段で選択された第３の出力端子に対応した演算要素の第６の入力端子へ転送することを特徴とする並列処理装置。
【請求項４】
第１のデータバスと第２のデータバスの端部または第３のデータバスと第４のデータバスの端部または第５のデータバスと第６のデータバスの端部のうち、少なくとも一箇所の端部に、これらのデータバスを介して任意の演算要素を相互に接続する接続変換器を設けたことを特徴とする請求項１から請求項３のうちいずれか１項記載の並列処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の演算要素が相互に接続されたＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔｅ：単一命令複数データ処理方式）型の並列処理装置に関し、特に、その接続構成に関するものである。
【背景技術】
【０００２】
一つのＬＳＩ上に複数の演算要素を配置した単一命令複数データ処理方式の並列処理装置において、配線面積をできるだけ小さくする技術が用いられている。例えば、特許文献１では隣接する演算要素間を接続するデータバスを双方向バスで構成し、スイッチにより隣接した演算要素間通信を伴う演算と、通信を伴わない演算を切り替えることでそれぞれの処理時間を同じにし、回路面積と配線面積をできるだけ小さくすることを可能としている。
【０００３】
【特許文献１】特開平８−１０１８２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら上記構成の並列処理装置の場合、注目演算要素と隣接演算要素間の通信／演算のみが可能であり、隣接演算要素間同士、例えば左右の演算要素のデータを注目演算要素において高速に演算することは不可能となる。このため例えば画像処理などで使用する広範囲の畳み込み演算を行う場合は処理時間が膨大となるため、カメラからの画像データをリアルタイムに処理するなどの高速処理が困難であるといった問題点があった。
【０００５】
この発明は上記のような課題を解決するためになされたもので、距離の離れた演算要素間の通信及び演算を高速に処理することが可能で、かつ配線容量を抑制することのできる並列処理装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係る並列処理装置は、複数の出力端子のいずれかへデータを出力する選択手段、第１の入力端子および第２の入力端子を備えた複数の演算要素と、複数の演算要素の複数の出力端子及び第１の入力端子を一次元に接続し、一方の方向にデータを転送する複数のデータラインを備えた第１のデータバスと、複数の演算要素の複数の出力端子及び第２の入力端子を一次元に接続し、第１のデータバスと異なる方向にデータを転送する複数のデータラインを備えた第２のデータバスとを備えた並列処理装置であって、それぞれの演算要素は、選択手段で選択された出力端子へ出力したデータを、第１のデータバスを介して選択手段で選択された出力端子に対応した演算要素の第１の入力端子へ転送すると共に、選択手段で選択された出力端子へ出力したデータを、第２のデータバスを介して選択手段で選択された出力端子に対応した演算要素の第２の入力端子へ転送するよう構成したものである。
【発明の効果】
【０００７】
この発明の並列処理装置は、複数の演算要素を、選択手段で選択された出力端子へ出力したデータを、第１のデータバスを介して選択手段で選択された出力端子に対応した演算要素の第１の入力端子へ転送すると共に、選択手段で選択された出力端子へ出力したデータを、第２のデータバスを介して選択手段で選択された出力端子に対応した演算要素の第２の入力端子へ転送するよう構成したので、距離の離れた演算要素間の通信及び演算を高速に処理することが可能で、かつ配線容量を抑制することができる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、この発明の実施の形態１による通信システムを示す構成図である。
図において、並列処理装置は、一次元に配置された複数の演算要素（ＰＥ：Ｐｒｏｃｅｓｓｏｒ  Ｅｌｅｍｅｎｔ）１と、一方のデータバス（第１のデータバス）２と、他方のデータバス（第２のデータバス）３と、一方の最大距離データライン（第１の入力端子）４、他方の最大距離データライン（第２の入力端子）５と、セレクタ（選択手段）６からなる。尚、以下、一次元の配置を水平方向の配置とし、図面の右側に位置する演算要素１を右側演算要素、図面の左側に位置する演算要素１を左側演算要素として説明する。
【０００９】
演算要素１は、様々な演算を実施するプロセッサであり、これら演算要素１は一例として１ビットの演算器を搭載し、水平方向に１０２４個配置されているものとする。一方のデータバス２は、それぞれの演算要素１に対して右側からの別の演算要素１の１ビットデータを転送する右側データバスであり、それぞれの演算要素１について右側に最大１５個離れた演算要素１のデータを転送可能である。他方のデータバス３は、それぞれの演算要素１に対して左側からの別の演算要素１の１ビットデータを転送する左側データバスであり、それぞれの演算要素１について左側に最大１５個離れた演算要素１のデータを転送可能である。一方の最大距離データライン４及び他方の最大距離データライン５は、最も離れた演算要素間を接続するデータラインであり、一方の最大距離データライン４は、一方のデータバス２において、１５個離れた演算要素１同士を接続する右側最大距離データラインである。他方の最大距離データライン５は、他方のデータバス３において、１５個離れた演算要素１同士を接続する左側最大距離データラインである。セレクタ６は、演算要素１のデータを所望する距離の別の演算要素１に転送するために、一方のデータバス２及び他方のデータバス３のデータラインのうち、左右それぞれ一つのデータラインを選択する選択手段である。
【００１０】
図２は、図１における一方のデータバス２、他方のデータバス３、一方の最大距離データライン４、他方の最大距離データライン５及びセレクタ６の詳細を示す構成図である。
図中、ＯＲ回路７は、演算要素１からの出力とデータラインの論理和演算を行う論理和回路であり、一つの演算要素１について右側と左側でそれぞれ１４個を備えている。
【００１１】
一方のデータバス２のうち、ＯＲ回路７を通過する前のデータラインを、上から順に“Ｆｒｏｍ  ＰＥ［ｘ＋０１］”、“Ｆｒｏｍ  ＰＥ［ｘ＋０２］”、“Ｆｒｏｍ  ＰＥ［ｘ＋０３］”・・・“Ｆｒｏｍ  ＰＥ［ｘ＋０１５］”とする。即ち、一番上のデータラインは右隣の演算要素１、上から二番目のデータラインは２個離れた右側の演算要素１、更に一番下のデータラインは１５個離れた右側の演算要素１と接続される。また、一方のデータバス２のうち、ＯＲ回路７を通過後のデータラインを、上から順に“Ｔｏ  ＰＥ［ｘ−１５］”、“Ｔｏ  ＰＥ［ｘ−１４］”、“Ｔｏ  ＰＥ［ｘ−１３］”・・・“Ｔｏ  ＰＥ［ｘ−０１］”とする。即ち、一番上のデータラインは１５個離れた左側の演算要素１、上から二番目のデータラインは１４個離れた左側の演算要素１、更に一番下のデータラインは左隣の演算要素１と接続される。
【００１２】
左側データバス３についても同様に、ＯＲ回路７を通過する前のデータラインを上から順に“Ｆｒｏｍ  ＰＥ［ｘ−０１］”、“Ｆｒｏｍ  ＰＥ［ｘ−０２］”、“Ｆｒｏｍ  ＰＥ［ｘ−０３］”・・・“Ｆｒｏｍ  ＰＥ［ｘ−０１５］”とする。即ち、一番上のデータラインは左隣の演算要素１、上から二番目のデータラインは二つ離れた左側の演算要素１、更に一番下のデータラインは１５個離れた左側の演算要素１と接続される。また他方のデータバス３のうち、ＯＲ回路７を通過後のデータラインを上から順に“Ｔｏ  ＰＥ［ｘ＋１５］”、“Ｔｏ  ＰＥ［ｘ＋１４］”、“Ｔｏ  ＰＥ［ｘ＋１３］”・・・“Ｔｏ  ＰＥ［ｘ＋０１］”とする。即ち、一番上のデータラインは１５個離れた右側の演算要素１、上から二番目のデータラインは１４個離れた右側の演算要素１、更に一番下のデータラインは右隣の演算要素１と接続される。
【００１３】
ここで左右それぞれ１５個離れた演算要素１のデータを通信／演算する動作について、先ず一方のデータバス２を例に説明する。
セレクタ６は４ビットの制御信号により、演算要素１の出力データを“ＴＯ  ＰＥ［ｘ−１５］”に出力し、他の１４本のデータラインに対しては０を出力する。また、右側からのデータライン“Ｆｒｏｍ  ＰＥ［ｘ＋１５］”を経由して１５個離れた演算要素１のデータを受け取る。同時に、１４個離れた右側の演算要素１のデータは“Ｆｒｏｍ  ＰＥ［ｘ＋１４］”のデータライン上を転送されており、このときセレクタ６からＯＲ回路７に対して０が出力されているため、“ＴＯ  ＰＥ［ｘ−０１］”のデータライン、即ち、左隣への演算要素１に対して１４個離れた右側の演算要素１のデータが転送されることになる。同様に、右側に１３個離れた演算要素１のデータは左側に２個離れた演算要素１へ転送され、右側に１２個離れた演算要素１のデータは左側に３個離れた演算要素１へ転送されることになり、最終的に１５本のデータラインで１０２４個のそれぞれの演算要素１の全てが、右側に１５個離れた演算要素１のデータを受け取ることになる。
【００１４】
他方のデータバス３についても同様に、セレクタ６は４ビットの制御信号により、演算要素１の出力データを“ＴＯ  ＰＥ［ｘ＋１５］”に出力し、他の１４本のデータラインに対しては０を出力する。また、左側からのデータライン“Ｆｒｏｍ  ＰＥ［ｘ−１５］”を経由して１５個離れた演算要素１のデータを受け取る。同時に、１４個離れた左側の演算要素１のデータは“Ｆｒｏｍ  ＰＥ［ｘ−１４］”のデータライン上を転送されており、このときセレクタ６からＯＲ回路７に対して０が出力されているため、“ＴＯ  ＰＥ［ｘ＋０１］”のデータライン、即ち、右隣への演算要素１に対して１４個離れた左側の演算要素１のデータが転送されることになる。同様に、左側に１３個離れた演算要素１のデータは右側に２個離れた演算要素１へ転送され、左側に１２個離れた演算要素１のデータは右側に３個離れた演算要素１へ転送されることになり、最終的に１５本のデータラインで１０２４個のそれぞれの演算要素１の全てが、左側に１５個離れた演算要素１のデータを受け取ることになる。
【００１５】
次に、左右それぞれ３個離れた演算要素１のデータを通信／演算する動作について説明する。先ず、一方のデータバス２に着いて説明する。
セレクタ６は４ビットの制御信号により、演算要素１の出力データを“ＴＯ  ＰＥ［ｘ−０３］”に出力し、他の１５本のデータラインに対しては０を出力する。また、右側からの（最も遠い演算要素からのデータラインである）データライン“Ｆｒｏｍ  ＰＥ［ｘ＋１５］”を経由して３個離れた演算要素１のデータを受け取る。同時に、２個離れた右側の演算要素１のデータは“Ｆｒｏｍ  ＰＥ［ｘ＋１４］”のデータライン上を転送されており、このときセレクタ６からＯＲ回路７に対して０が出力されているため、“ＴＯ  ＰＥ［ｘ−０１］”のデータライン、即ち、左隣への演算要素１に対して２個離れた右側の演算要素１のデータが転送されることになる。同様に、右側に１個離れた演算要素１のデータは左側に２個離れた演算要素１へ転送されることになり、最終的に１５本中３本のデータラインを使用して１０２４個のそれぞれの演算要素１の全てが、右側に３個離れた演算要素１のデータを受け取ることになる。
【００１６】
次に、他方のデータバス３に関する動作を説明する。
他方のデータバス３についても同様に、セレクタ６は４ビットの制御信号により、演算要素１の出力データを“ＴＯ  ＰＥ［ｘ＋３］”に出力し、他の１５本のデータラインに対しては０を出力する。また、左側からのデータライン“Ｆｒｏｍ  ＰＥ［ｘ−１５］”を経由して３個離れた演算要素１のデータを受け取る。同時に２個離れた左側の演算要素１のデータは“Ｆｒｏｍ  ＰＥ［ｘ−１４］”のデータライン上を転送されており、このときセレクタ６からＯＲ回路７に対して０が出力されているため、“ＴＯ  ＰＥ［ｘ＋０１］”のデータライン、即ち、右隣への演算要素１に対して２個離れた左側の演算要素１のデータが転送されることになる。同様に、左側に１個離れた演算要素１のデータは右側に２個離れた演算要素１へ転送されることになり、最終的に１５本中３本のデータラインを使用して１０２４個のそれぞれの演算要素１の全てが、左側に３個離れた演算要素１のデータを受け取ることになる。
【００１７】
上記のような構成と制御を行うことで、画像処理などで使用する畳み込み演算を任意の距離で高速に処理し、且つ配線容量を抑えることが可能となる。
尚、上記実施の形態では、演算要素１は１ビットの演算器を搭載し水平方向に１０２４個配置され、転送可能な距離を左右それぞれ最大１５個としているが、これら演算ビット数や配置個数、最大転送距離は用途に応じて変更可能である。
また、上記実施の形態では、一方のデータバス２と他方のデータバス３とで共通のセレクタ６を使用しているが、左右それぞれにセレクタを備えることで異なる距離の演算要素間の転送も可能になる。
【００１８】
以上のように、実施の形態１の並列処理装置によれば、複数の出力端子のいずれかへデータを出力する選択手段、第１の入力端子および第２の入力端子を備えた複数の演算要素と、複数の演算要素の複数の出力端子及び第１の入力端子を一次元に接続し、一方の方向にデータを転送する複数のデータラインを備えた第１のデータバスと、複数の演算要素の複数の出力端子及び第２の入力端子を一次元に接続し、第１のデータバスと異なる方向にデータを転送する複数のデータラインを備えた第２のデータバスとを備えた並列処理装置であって、それぞれの演算要素は、選択手段で選択された出力端子へ出力したデータを、第１のデータバスを介して選択手段で選択された出力端子に対応した演算要素の第１の入力端子へ転送すると共に、選択手段で選択された出力端子へ出力したデータを、第２のデータバスを介して選択手段で選択された出力端子に対応した演算要素の第２の入力端子へ転送するよう構成したので、距離の離れた演算要素間の通信及び演算を高速に処理することが可能で、かつ配線容量を抑制することができる。
【００１９】
実施の形態２．
実施の形態２は、一方のデータバス２及び他方のデータバス３の終端に、任意の演算要素１を接続する接続変換器８を設けたものである。
図３は、実施の形態２の並列処理装置の構成図である。
図示例は、左右それぞれ３個離れた演算要素１同士の転送を行う場合の左終端の動作イメージであり、左端に、一方のデータバス２及び他方のデータバス３における左終端のデータライン接続を任意に変更する接続変換器８が接続されている。この接続変換器８は、内部接続を変更することで、任意の演算要素１同士の接続を可能とするものである。
【００２０】
図４は、左終端の折り返し処理の一例と、接続変換器８の接続例を示す説明図である。
これは、画像処理等で一般的に行われる終端処理を示したもので、左端（ＰＥ（１））を中心にミラーリング処理を実施する例である。図中、（ａ）は終端に位置する演算要素１（ＰＥ（１）〜ＰＥ（３））のデータの流れを示し、（ｂ）は折り返し処理の説明図である。図中の（ｂ）に示すように、存在しない画素データ（ＰＥ（２）（３））を左側に折り返すことで、ＰＥ（１）（２）（３）が参照すべき左側のデータを仮想的に生成することができる。
【００２１】
このように、左側に折り返したＰＥ（２）とＰＥ（３）を使用して終端処理を実施する場合、接続変換器８は（ａ）に示すような接続を行う。即ち、ＰＥ（２）はＰＥ（５）（右側）とＰＥ（３）（左側）の画像データを使用し、ＰＥ（３）は、ＰＥ（６）（右側）とＰＥ（２）（左側）の画像データを使用して左終端処理を行う。
【００２２】
尚、上記例では、左端の終端処理のみを説明したが、左右の終端を接続するようにしてもよく、このように構成することで、１０２４個の演算要素１をリング状に構成することも可能である。
【００２３】
以上のように、実施の形態２の並列処理装置によれば、一方のデータバスから他方のデータバスを介して任意の演算要素を相互に接続する接続変換器を設けたので、この接続変換器の設定により様々な終端処理を実現することができる。
【００２４】
実施の形態３．
実施の形態３は、演算要素１を二次元に配置した並列処理装置に関するものである。
図５は、実施の形態３における並列処理装置を示す構成図である。
図示の並列処理装置は、複数の演算要素１、一方のデータバス（第１のデータバス）２ａ、他方のデータバス（第２のデータバス）３ａ、一方の最大距離データライン（第１の入力端子）４ａ、他方の最大距離データライン（第２の入力端子）５ａ、第１の出力セレクタ（第１の選択手段）６ａ、第２の出力セレクタ（第２の選択手段）６ｂ、一方の二次元交差データバス（第３のデータバス）２ｂ、他方の二次元交差データバス（第４のデータバス）３ｂ、一方の二次元交差最大距離データライン（第３の入力端子）４ｂ、他方の二次元交差最大距離データライン（第４の入力端子）５ｂ、第１の入力セレクタ（第１の入力選択手段）９ａ、第２の入力セレクタ（第２の入力選択手段）９ｂを備えている。ここで、演算要素１、一方のデータバス２ａ、他方のデータバス３ａ、一方の最大距離データライン４ａ、他方の最大距離データライン５ａは、実施の形態１における演算要素１〜他方の最大距離データライン５と同様であるため、ここでの説明は省略する。
【００２５】
一方の二次元交差データバス２ｂ及び他方の二次元交差データバス３ｂは、一方のデータバス２ａ及び他方のデータバス３ａに対して交差する方向に設けられたデータバスである。即ち、一方の二次元交差データバス２ｂは、それぞれの演算要素１に対して下側からの別の演算要素１の１ビットデータを転送する下側データバスであり、それぞれの演算要素１について下側に最大１５個離れた演算要素１のデータを転送可能である。他方の二次元交差データバス３ｂは、それぞれの演算要素１に対して上側からの別の演算要素１の１ビットデータを転送する上側データバスであり、それぞれの演算要素１について上側に最大１５個離れた演算要素１のデータを転送可能である。
【００２６】
一方の二次元交差最大距離データライン４ｂ及び他方の二次元交差最大距離データライン５ｂは、一方の二次元交差データバス２ｂ及び他方の二次元交差データバス３ｂにおいて、最も離れた演算要素１間を接続するためのデータラインである。即ち、一方の二次元交差最大距離データライン４ｂは、一方の二次元交差データバス２ｂにおいて１５個離れた演算要素同士を接続する下側最大距離データラインであり、他方の二次元交差最大距離データライン５ｂは、他方の二次元交差データバス３ｂにおいて１５個離れた演算要素同士を接続する上側最大距離データラインである。
【００２７】
第１の出力セレクタ６ａは、演算要素１または一方の二次元交差最大距離データライン４ｂまたは他方の二次元交差最大距離データライン５ｂのデータを所望する距離の別の演算要素１に転送するために、一方のデータバス２ａ及び他方のデータバス３ａのデータラインのうち、左右それぞれ一つのデータラインを選択するセレクタである。第２の出力セレクタ６ｂは、演算要素１のデータを所望する距離の別の演算要素１に転送するために、一方の二次元交差データバス２ｂ及び他方の二次元交差データバス３ｂのデータラインのうち、上下それぞれ一つのデータラインを選択するセレクタである。
【００２８】
第１の入力セレクタ９ａは、一方の最大距離データライン４ａまたは一方の二次元交差最大距離データライン４ｂからの入力を演算要素１に選択出力するセレクタである。第２の入力セレクタ９ｂは、他方の最大距離データライン５ａまたは他方の二次元交差最大距離データライン５ｂからの入力を演算要素１に選択出力するセレクタである。
【００２９】
このような構成により、一方のデータバス２ａ及び他方のデータバス３ａ方向のデータ転送が実施の形態１と同様に行えると共に、一方の二次元交差データバス２ｂ及び他方の二次元交差データバス３ｂ方向のデータ転送についても、第１の入力セレクタ９ａが一方の二次元交差最大距離データライン４ｂを選択し、第２の入力セレクタ９ｂが他方の二次元交差最大距離データライン５ｂを選択し、かつ、第２の出力セレクタ６ｂが所定の選択動作を行うことにより、同様に行うことができる。更に、一方のデータバス２ａと一方の二次元交差データバス２ｂ、他方のデータバス３ａと他方の二次元交差データバス３ｂといった交差する方向のデータ転送も、第１の出力セレクタ６ａ、第２の出力セレクタ６ｂ、第１の入力セレクタ９ａ、第２の入力セレクタ９ｂそれぞれの選択動作により、同様に行うことができる。
【００３０】
尚、上記実施の形態３では、演算要素１は１ビットの演算器を搭載し、転送可能な距離を左右それぞれ最大１５個としているが、これらは用途に応じて変更すればよい。また、一方のデータバス２ａと他方のデータバス３ａで共通の第１の出力セレクタ６ａを、一方の二次元交差データバス２ｂと他方の二次元交差データバス３ｂで共通の第２の出力セレクタ６ｂを使用しているが、左右上下それぞれにセレクタを備えることで異なる距離の演算要素間の転送が可能になる。
【００３１】
また、上記実施の形態３では、説明の都合上、一方のデータバス２ａと他方のデータバス３ａの方向を左右方向、一方の二次元交差データバス２ｂと他方の二次元交差データバス３ｂの方向を上下方向としたが、並列処理装置として二次元配置であれば、特に左右上下の関係は存在しない。
【００３２】
以上のように、実施の形態３の並列処理装置によれば、複数の第１の出力端子のいずれかへデータを出力する第１の選択手段、第１の入力端子および第２の入力端子、並びに複数の第２の出力端子のいずれかへデータを出力する第２の選択手段、第３の入力端子および第４の入力端子を備えた複数の演算要素と、複数の演算要素の複数の第１の出力端子及び第１の入力端子を一次元に接続し、第１の方向にデータを転送する複数のデータラインを備えた第１のデータバスと、複数の演算要素の複数の第１の出力端子及び第２の入力端子を一次元に接続し、第１のデータバスとの第１の方向と異なる方向にデータを転送する複数のデータラインを備えた第２のデータバスと、複数の演算要素の複数の第２の出力端子及び第３の入力端子を、第１及び第２のデータバスと交差する第２の方向に一次元に接続し、一方の方向にデータを転送する複数のデータラインを備えた第３のデータバスと、複数の演算要素の複数の第２の出力端子及び第４の入力端子を一次元に接続し、第３のデータバスの第２の方向と異なる方向にデータを転送する複数のデータラインを備えた第４のデータバスとを備えた並列処理装置であって、それぞれの演算要素は、第１の選択手段で選択された第１の出力端子へ出力したデータを、第１のデータバスを介して第１の選択手段で選択された第１の出力端子に対応した演算要素の第１の入力端子へ転送すると共に、第１の選択手段で選択された第１の出力端子へ出力したデータを、第２のデータバスを介して第１の選択手段で選択された第１の出力端子に対応した演算要素の第２の入力端子へ転送すると共に、第２の選択手段で選択された第２の出力端子へ出力したデータを、第３のデータバスを介して第２の選択手段で選択された第２の出力端子に対応した演算要素の第３の入力端子へ転送すると共に、第２の選択手段で選択された第２の出力端子へ出力したデータを、第４のデータバスを介して第２の選択手段で選択された第２の出力端子に対応した演算要素の第４の入力端子へ転送するよう構成したので、上下左右斜めの任意の距離のデータを高速に転送し、且つ配線容量を抑えることが可能となる。
【００３３】
実施の形態４．
実施の形態４は、演算要素１を三次元に配置した並列処理装置に関するものである。
図６は、実施の形態４の並列処理装置を示す構成図である。
図示の並列処理装置は、一つの演算要素１と各データバスの構成を示しており、演算要素１、一方のデータバス（第１のデータバス）２ａ、他方のデータバス（第２のデータバス）３ａ、一方の最大距離データライン（第１の入力端子）４ａ、他方の最大距離データライン（第２の入力端子）５ａ、第１の出力セレクタ（第１の選択手段）６ａ、第２の出力セレクタ（第２の選択手段）６ｂ、第３の出力セレクタ（第３の選択手段）６ｃ、一方の二次元交差データバス（第３のデータバス）２ｂ、他方の二次元交差データバス（第４のデータバス）３ｂ、一方の二次元交差最大距離データライン（第３の入力端子）４ｂ、他方の二次元交差最大距離データライン（第４の入力端子）５ｂ、一方の三次元交差データバス（第５のデータバス）２ｃ、他方の三次元交差データバス（第６のデータバス）３ｃ、一方の三次元交差最大距離データライン（第５の入力端子）４ｃ、他方の三次元交差最大距離データライン（第６の入力端子）５ｃ、第１の入力セレクタ（第１の入力選択手段）１０ａ、第２の入力セレクタ（第２の入力選択手段）１０ｂを備えている。ここで、演算要素１、一方のデータバス２ａ、他方のデータバス３ａ、一方の最大距離データライン４ａ、他方の最大距離データライン５ａ、一方の二次元交差データバス２ｂ、他方の二次元交差データバス３ｂ、一方の二次元交差最大距離データライン４ｂ、他方の二次元交差最大距離データライン５ｂ、第１の出力セレクタ６ａ、第２の出力セレクタ６ｂは、実施の形態２と同様であるため、該当する部分に同一符号を付してその説明は省略する。
【００３４】
一方の三次元交差データバス２ｃ及び他方の三次元交差データバス３ｃは、一方のデータバス２ａ、他方のデータバス３ａ、一方の二次元交差データバス２ｂ、他方の二次元交差データバス３ｂが位置する平面に交差する方向を三次元方向とした場合、この三次元方向に演算要素１を接続するためのデータバスである（図面では、説明上、斜め方向に示している）。即ち、一方の三次元交差データバス２ｃは、それぞれの演算要素１に対して図面右上方向（これを奥側とする）からの別の演算要素１の１ビットデータを転送するデータバスであり、それぞれの演算要素１について奥側に最大１５個離れた演算要素１のデータを転送可能である。他方の三次元交差データバス３ｃは、それぞれの演算要素１に対して図面左下方向（これを手前側とする）からの別の演算要素１の１ビットデータを転送するデータバスであり、それぞれの演算要素１について手前側に最大１５個離れた演算要素１のデータを転送可能である。
【００３５】
一方の三次元交差最大距離データライン４ｃは、一方の三次元交差データバス２ｃにおいて１５個離れた演算要素同士を接続する奥側最大距離データラインである。他方の三次元交差最大距離データライン５ｃは、他方の三次元交差データバス３ｃにおいて１５個離れた演算要素同士を接続する手前側最大距離データラインである。
【００３６】
第３の出力セレクタ６ｃは、演算要素１または一方の最大距離データライン４ａまたは他方の最大距離データライン５ａのデータを所望する距離の別の演算要素１に転送するために、一方の三次元交差データバス２ｃ及び他方の三次元交差データバス３ｃのうち、奥側または手前側のそれぞれ一つのデータラインを選択するセレクタである。
【００３７】
第１の入力セレクタ１０ａは、一方の最大距離データライン４ａまたは一方の二次元交差最大距離データライン４ｂまたは一方の三次元交差最大距離データライン４ｃからの入力を演算要素１に選択出力するセレクタである。第２の入力セレクタ１０ｂは、他方の最大距離データライン５ａまたは他方の二次元交差最大距離データライン５ｂまたは他方の三次元交差最大距離データライン５ｃからの入力を演算要素１に選択出力するセレクタである。
【００３８】
このような構成により、実施の形態２におけるデータ転送に加えて、三次元方向のデータ転送が可能になると共に、一方の三次元交差データバス２ｃと一方のデータバス２ａまたは一方の二次元交差データバス２ｂ、他方の三次元交差データバス３ｃと他方のデータバス３ａまたは他方の二次元交差データバス３ｂといったように、いずれの方向に対してもデータ転送が可能である。
【００３９】
以上のように、実施の形態４の並列処理装置によれば、複数の第１の出力端子のいずれかへデータを出力する第１の選択手段、第１の入力端子及び第２の入力端子、複数の第２の出力端子のいずれかへデータを出力する第２の選択手段、第３の入力端子及び第４の入力端子、並びに複数の第３の出力端子のいずれかへデータを出力する第３の選択手段、第５の入力端子及び第６の入力端子を備えた複数の演算要素と、複数の演算要素の複数の第１の出力端子及び第１の入力端子を一次元に接続し、第１の方向にデータを転送する複数のデータラインを備えた第１のデータバスと、複数の演算要素の複数の第１の出力端子及び第２の入力端子を一次元に接続し、第１のデータバスの第１の方向と異なる方向にデータを転送する複数のデータラインを備えた第２のデータバスと、複数の演算要素の複数の第２の出力端子及び第３の入力端子を、第１及び第２のデータバスと交差する方向に一次元に接続し、第２の方向にデータを転送する複数のデータラインを備えた第３のデータバスと、複数の演算要素の複数の第２の出力端子及び第４の入力端子を一次元に接続し、第３のデータバスの第２の方向と異なる方向にデータを転送する複数のデータラインを備えた第４のデータバスと、複数の演算要素の複数の第３の出力端子及び第５の入力端子を、第１及び第２のデータバスと第３及び第４のデータバスを含む平面と交差する方向に一次元に接続し、第３の方向にデータを転送する複数のデータラインを備えた第５のデータバスと、複数の演算要素の複数の第３の出力端子及び第６の入力端子を一次元に接続し、第５のデータバスの第３の方向と異なる方向にデータを転送する複数のデータラインを備えた第６のデータバスとを備えた並列処理装置であって、それぞれの演算要素は、第１の選択手段で選択された第１の出力端子へ出力したデータを、第１のデータバスを介して第１の選択手段で選択された第１の出力端子に対応した演算要素の第１の入力端子へ転送すると共に、第１の選択手段で選択された第１の出力端子へ出力したデータを、第２のデータバスを介して第１の選択手段で選択された第１の出力端子に対応した演算要素の第２の入力端子へ転送すると共に、第２の選択手段で選択された第２の出力端子へ出力したデータを、第３のデータバスを介して第２の選択手段で選択された第２の出力端子に対応した演算要素の第３の入力端子へ転送すると共に、第２の選択手段で選択された第２の出力端子へ出力したデータを、第４のデータバスを介して第２の選択手段で選択された第２の出力端子に対応した演算要素の第４の入力端子へ転送すると共に、第３の選択手段で選択された第３の出力端子へ出力したデータを、第５のデータバスを介して第３の選択手段で選択された第３の出力端子に対応した演算要素の第５の入力端子へ転送すると共に、第３の選択手段で選択された第３の出力端子へ出力したデータを、第６のデータバスを介して第３の選択手段で選択された第３の出力端子に対応した演算要素の第６の入力端子へ転送するよう構成したので、三次元配置された各演算要素の任意の方向と距離のデータを高速に転送し、且つ配線容量を抑えることが可能となる。
【００４０】
尚、上記実施の形態２における終端処理の構成は、実施の形態１の構成に対して適用したが、実施の形態３や実施の形態４に対して適用してもよい。即ち、一方のデータバスと他方のデータバスの端部または一方の二次元交差データバスと他方の二次元交差データバスの端部または一方の三次元交差データバスと他方の三次元交差データバスの端部のうち、少なくとも一箇所の端部に、これらデータバスを介して任意の演算要素を相互に接続する接続変換器を設けてもよい。このように構成することにより、任意の方向のデータバスの終端処理を実現することができる。
【図面の簡単な説明】
【００４１】
【図１】この発明の実施の形態１による並列処理装置を示す構成図である。
【図２】この発明の実施の形態１による並列処理装置の詳細を示す構成図である。
【図３】この発明の実施の形態２による並列処理装置の構成図である。
【図４】この発明の実施の形態２による並列処理装置の接続例を示す説明図である。
【図５】この発明の実施の形態３による並列処理装置の構成図である。
【図６】この発明の実施の形態４による並列処理装置の構成図である。
【符号の説明】
【００４２】
１  演算要素、２，２ａ  一方のデータバス表示部、３，３ａ  他方のデータバス、４，４ａ  一方の最大距離データライン、５，５ａ  他方の最大距離データライン、６  セレクタ、６ａ  第１の出力セレクタ、６ｂ  第２の出力セレクタ、６ｃ  第３の出力セレクタ、８  接続変換器、９ａ，１０ａ  第１の入力セレクタ、９ｂ，１０ｂ  第２の入力セレクタ。
【図１】
0004855234.tif 000002
【図２】
0004855234.tif 000003
【図３】
0004855234.tif 000004
【図４】
0004855234.tif 000005
【図５】
0004855234.tif 000006
【図６】
0004855234.tif 000007