(57)【要約】【課題】離れた演算部間の通信が必要な場合でも、高速な並列信号処理が可能な装置を得ることを目的とする。【解決手段】並列信号処理装置１００は、メモリを有する複数の演算部１２０と、演算部１２０の間に設けられる複数のデータバス１５０と、間引き制御部１１１とを備え、演算部１２０毎にスルーパススイッチ部１４０を備える。例えば、間引き制御部１１１は、演算部１２０Ｂ・Ｄを間引き演算部として選択する。間引き演算部のスルーパススイッチ部１４０Ｂ・Ｄは、間引き演算部の入力側のデータバス１５０と、間引き演算部の出力側のデータバス１５０とを接続する。間引き演算部以外の演算部Ａ・Ｃ・Ｅは、メモリに記憶されているデータを出力側のデータバス１５０に出力し、入力側のデータバス１５０からデータを入力し、入力したデータを用いて特定の演算を行う。【選択図】図３
2013003895.tif 000002
【特許請求の範囲】
【請求項１】
順番が定められた複数の演算部と、
順番が連続する演算部の間に設けられる複数のデータバスと、
複数の演算部のうち少なくともいずれかの演算部を間引き演算部として選択する間引き制御部と、
前記間引き制御部によって選択された間引き演算部と前記間引き演算部より一つ前の演算部との間に設けられる入力側のデータバスと、前記間引き演算部と前記間引き演算部より一つ後の演算部との間に設けられる出力側のデータバスとを接続するデータバス接続部と
を備えることを特徴とする演算装置。
【請求項２】
複数の演算部は、データを記憶するメモリを備え、
前記間引き演算部以外の演算部は、メモリに記憶されているデータを出力側のデータバスに出力し、入力側のデータバスからデータを入力し、入力したデータを用いて特定の演算を行う
ことを特徴とする請求項１記載の演算装置。
【請求項３】
前記演算装置は、順番が連続する演算部の間に設けられる複数の第一データバスと複数の第二データバスとを備え、
前記データバス接続部は、前記間引き演算部の入力側の第一データバスと出力側の第一データバスとを接続すると共に前記間引き演算部の入力側の第二データバスと出力側の第二データバスとを接続し、前記間引き演算部以外の演算部の入力側の第二データバスと出力側の第一データバスとを接続し、
前記間引き演算部以外の演算部は、メモリに記憶されているデータを出力側の第一データバスと出力側の第二データバスとのうちいずれかのデータバスに出力し、入力側の第一データバスからデータを入力し、入力したデータを用いて特定の演算を行う
ことを特徴とする請求項２記載の演算装置。
【請求項４】
前記演算装置は、
特定の演算に用いるデータが記憶されている入力元演算部として、特定の演算を行う実行演算部より一つ前の順番を有する第一演算部と、前記実行演算部より二つ前の順番を有する第二演算部と、前記第二演算部より前の順番を有する第三演算部とのうちいずれかの演算部を入力元演算部として選択する演算制御部を備え、
前記間引き制御部は、前記演算制御部が前記第三演算部を入力元演算部として選択した場合に間引き演算部を選択する
ことを特徴とする請求項３記載の演算装置。
【請求項５】
前記間引き制御部は、前記入力元演算部が前記第二演算部よりｎ（１以上の整数）個前の順番を有する演算部である場合、前記実行演算部と前記入力元演算部との間の順番を有する演算部のうちｎ個の演算部を間引き演算部として選択する
ことを特徴とする請求項４記載の演算装置。
【請求項６】
前記間引き制御部は、間引き演算部の選択を行った後、選択した間引き演算部の代わりに、選択した間引き演算部の前後いずれかの演算部を新たな間引き演算部として選択する
ことを特徴とする請求項５記載の演算装置。
【請求項７】
前記演算装置は、さらに、
割当番号が割り当てられて演算部の間毎に設けられる複数の制御信号線と、
複数の制御信号線の少なくともいずれかに制御信号を出力する制御信号出力部と、
複数の演算部に対応付けて設けられる複数の制御信号中継部であって、所定の割当番号の制御信号線に出力された制御信号を入力し、入力した制御信号を当該演算部に入力する複数の制御信号中継部を備え、
故障していない演算部の制御信号中継部は、入力側の制御信号線毎に制御信号を入力し、入力した制御信号を入力側の制御信号線と同じ割当番号が割り当てられた出力側の制御信号線に出力し、
故障した演算部の制御信号中継部は、入力側の制御信号線毎に制御信号を入力し、入力した制御信号を入力側の制御信号線の次の割当番号が割り当てられた出力側の制御信号線に出力する
ことを特徴とする請求項１から請求項６いずれかに記載の演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、演算の並列処理を行う演算装置に関するものである。
【背景技術】
【０００２】
デジタルスチルカメラ、デジタルビデオカメラ、デジタルテレビやＰＣ（パーソナルコンピュータ）グラフィックスなどの分野では、高速かつ大量のデジタル画像信号の処理が必要とされており、大規模な専用ハードウェアによるＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）が開発されている。
一方で、専用ハードウェアでの開発は、短期間で高度化・複雑化していく信号処理アルゴリズムへの容易な追従が困難である。
【０００３】
そこで、プログラマビリティの高い高速プロセッサやＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）による開発も行われている。
【０００４】
しかしながら、画像の高解像度化や高画質化により、画像処理装置へ要求性能は増大しており、単独のプロセッサやＤＳＰでは演算処理量や演算精度の不足や高速クロック化による消費電力が課題となる。
そこで、単一の命令で複数のデータを並列処理するＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）型プロセッサを含む構成で演算処理能力を高める方法が考えられている。
【０００５】
ＳＩＭＤ制御の並列信号処理プロセッサでは、算術演算や論理演算を行う演算装置（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ：ＡＬＵ）と演算装置からの演算結果を一時記憶しておくメモリ等から構成されるプロセッサエレメント（ＰＥ）を１次元に配置し、そのＰＥを単一の命令により制御するものである。
例えば、高速かつ大量のデジタル画像信号の処理が必要とされるデジタルスチルカメラ、デジタルビデオカメラ、デジタルテレビやＰＣ（パーソナルコンピュータ）グラフィックスなどの分野には、高度化・複雑化する信号処理アルゴリズムに容易に対応するため、並列信号処理プロセッサが適している。
【０００６】
また、画像処理装置へ要求性能は画像の高解像度化や高画質化により増大しており、演算処理量や演算精度を高めるためにＰＥ数の拡大が考えられている。
【０００７】
さらに、特定の演算要素のＰＥとその演算要素に隣接する演算要素のＰＥとの間を接続するデータバスを構成して、多様な信号処理機能、特に信号処理で多用される畳み込み演算を効率的に並列処理できる技術が用いられている。
【０００８】
例えば、特許文献１では、所定距離だけ離れたＰＥ間を直接に接続する複数のデータバスを構成する並列信号処理プロセッサについて開示している。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−１４６４７７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従来の並列信号処理プロセッサは、複数のＰＥ間でデータを参照するため、接続する最大距離のＰＥ数と同数のデータバスを必要とする。そのため、接続する最大距離を大きくするとデータバス本数が増えてしまう。
また、最大距離を越えるＰＥ間の通信ではデータ転送だけのために命令の実行サイクルを浪費するので、演算効率が低下するという課題が生じた。
【００１１】
本発明は、例えば、最大距離を越える演算要素（ＰＥ）間の通信が必要な場合でも、高速な並列信号処理が可能な演算装置を得ることを目的とする。
【課題を解決するための手段】
【００１２】
本発明の演算装置は、
順番が定められた複数の演算部と、
順番が連続する演算部の間に設けられる複数のデータバスと、
複数の演算部のうち少なくともいずれかの演算部を間引き演算部として選択する間引き制御部と、
前記間引き制御部によって選択された間引き演算部と前記間引き演算部より一つ前の演算部との間に設けられる入力側のデータバスと、前記間引き演算部と前記間引き演算部より一つ後の演算部との間に設けられる出力側のデータバスとを接続するデータバス接続部とを備える。
【発明の効果】
【００１３】
本発明によれば、例えば、最大距離を越える演算要素（演算部）間の通信が必要な場合でも、高速な並列信号処理が可能になる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１における並列信号処理装置１００の構成図。
【図２】実施の形態１における演算部１２０のデータバスの接続状態（１）（２）を示す図。
【図３】実施の形態１における並列信号処理装置１００の一例を示す図。
【図４】実施の形態１における並列信号処理装置１００の演算例を示す図。
【図５】従来の並列信号処理の演算例を示す図。
【図６】実施の形態２における並列信号処理装置１００の構成図。
【図７】実施の形態２における演算部１２０のデータバスの接続状態（１）−（３）を示す図。
【図８】実施の形態２における並列信号処理装置１００の一例を示す図。
【図９】実施の形態２における並列信号処理装置１００の一例を示す図。
【図１０】従来の並列信号処理装置の構成図。
【図１１】実施の形態３における並列信号処理装置１００の構成図。
【図１２】実施の形態３における間引き制御スイッチ部１７０の構成図。
【図１３】実施の形態３における間引き制御スイッチ部１７０の一例を示す図。
【発明を実施するための形態】
【００１５】
実施の形態１．
隣接する演算部間に一本の信号線を設け、隣接していない演算部に記憶されているデータを用いて各演算部が演算を行う形態について説明する。演算部は「プロセッサエレメント」ともいう。
【００１６】
図１は、実施の形態１における並列信号処理装置１００の構成図である。
実施の形態１における並列信号処理装置１００の構成について、図１に基づいて説明する。
【００１７】
並列信号処理装置１００（演算装置の一例）は、プログラム制御部１１０と、第一信号線１０１と、第二信号線１０２とを備える。
並列信号処理装置１００は、複数の演算部１２０と、複数のデータバス１５０とを備える。
並列信号処理装置１００は、セレクタ１３０とスルーパススイッチ部１４０とを演算部１２０毎に備える。
【００１８】
複数の演算部１２０には「１番目の演算部、２番目の演算部、・・・」というように順番を定める。
図１では、複数の演算部１２０を順番通りに並べて配置している。例えば、演算部１２０Ａを１番目の演算部、演算部１２０Ｂを２番目の演算部、演算部１２０Ｃを３番目の演算部、演算部１２０Ｄを４番目の演算部、演算部１２０Ｅを５番目の演算部として扱う。但し、複数の演算部１２０の配置は順番通りでなくても構わない。
【００１９】
複数のデータバス１５０は、順番が連続する二つの演算部１２０の間に一本ずつ設ける。
例えば、演算部１２０Ａと演算部１２０Ｂとの間に一本のデータバス１５０を設ける。同様に、演算部１２０Ｂと演算部１２０Ｃとの間、演算部１２０Ｃと演算部１２０Ｄとの間、演算部１２０Ｄと演算部１２０Ｅとの間にも一本ずつデータバス１５０を設ける。
【００２０】
プログラム制御部１１０は、第一信号線１０１と第二信号線１０２とのそれぞれを介して複数の演算部１２０に接続している。
【００２１】
プログラム制御部１１０は、複数の演算命令によって特定の演算処理を表したプログラムが記憶されたメモリ、プログラムに含まれる演算命令を解読する処理回路（例えば、ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）およびプログラムの実行に必要なその他の部品（例えば、プログラムカウンタ）を備える（図示省略）。
【００２２】
プログラム制御部１１０は、演算命令の解読結果に従って、例えば、以下のような処理を行う。
プログラム制御部１１０（演算制御部の一例）は、特定の演算に用いるデータが記憶されている入力元演算部として、特定の演算を行う実行演算部より一つ前の順番を有する第一演算部と、第一演算部より前の順番を有する第二演算部とのうちいずれかの演算部１２０を入力元演算部として選択する。
プログラム制御部１１０は、第一信号線１０１を介して演算を行うための演算制御信号１０１ａを各演算部１２０へ入力する。プログラム制御部１１０は、後述する間引き演算部以外の演算部１２０（実行演算部）だけに演算制御信号１０１ａを入力してもよい。
演算制御信号１０１ａは、入力元演算部を特定する情報（例えば、実行演算部から入力元演算部までの演算部１２０の個数）や、演算の内容（例えば、数式）（例えば、加算、減算、乗算、除算、論理演算などの演算の種類）を含んだ信号である。
【００２３】
プログラム制御部１１０は、間引き制御部１１１を備える。
間引き制御部１１１は、複数の演算部１２０のうち少なくともいずれかの演算部１２０を間引き演算部として選択する。
間引き制御部１１１は、間引き制御信号１０２ａを第二信号線１０２を介して間引き演算部へ入力する。
間引き制御信号１０２ａは、間引き演算部と間引き演算部より一つ前の演算部１２０との間に設けられる入力側のデータバス１５０と、間引き演算部と間引き演算部より一つ後の演算部１２０との間に設けられる出力側のデータバス１５０とを接続することを指示する信号である。
【００２４】
例えば、間引き制御部１１１は、プログラム制御部１１０が第二演算部を入力元演算部として選択した場合に間引き演算部を選択する。
間引き制御部１１１は、入力元演算部が第一演算部よりｎ（１以上の整数）個前の順番を有する演算部１２０である場合、実行演算部と入力元演算部１２０との間の順番を有する演算部１２０のうちｎ個の演算部１２０を間引き演算部として選択する。
さらに、間引き制御部１１１は、間引き演算部の選択を行った後、選択した間引き演算部の代わりに、選択した間引き演算部の前後いずれかの演算部１２０を新たな間引き演算部として選択する。そして、間引き制御部１１１は、新たな間引き演算部に間引き制御信号１０２ａを入力する。
【００２５】
間引き演算部のセレクタ１３０およびスルーパススイッチ部１４０（それぞれデータバス接続部の一例）は、入力側のデータバス１５０と出力側のデータバス１５０とを接続する。
セレクタ１３０およびスルーパススイッチ部１４０の詳細については後述する。
【００２６】
複数の演算部１２０は、さらに、データを記憶するメモリと、特定の演算を行う演算器とを備える（図示省略）。例えば、演算器は、電子回路やＣＰＵによって構成される。
各演算部１２０は、セレクタ１３０およびスルーパススイッチ部１４０を制御する。
【００２７】
間引き演算部以外の演算部１２０の演算器は、メモリに記憶されているデータを出力側のデータバス１５０に出力し、入力側のデータバス１５０からデータを入力し、入力したデータを用いて特定の演算を行う。
【００２８】
図２は、実施の形態１における演算部１２０のデータバスの接続状態（１）（２）を示す図である。
実施の形態１における演算部１２０のデータバスの接続状態（１）（２）について、図２に基づいて説明する。図中の黒丸は、データバス、信号線およびスイッチを互いに接続する端子を表している。
【００２９】
（１）演算制御信号１０１ａが入力されていて間引き制御信号１０２ａが入力されていない場合、演算部１２０（実行演算部）のスルーパススイッチ部１４０は、スルーパススイッチ１４１を切り替えてデータバス１５０ａを第二入出力部１２４に接続する。
また、セレクタ１３０は、セレクタスイッチ１３１を切り替えてデータバス１５０ｂを第一入出力部１２３に接続する。
【００３０】
（１）の場合、演算部１２０は、メモリ１２１からデータを取得し、取得したデータを第一入出力部１２３を介してデータバス１５０ｂへ出力する。
また、演算器１２２は他の演算部１２０から出力されたデータを第二入出力部１２４から入力し、入力したデータを用いて演算を行う。演算の方法は演算制御信号１０１ａの指示に従う。演算部１２０は、演算器１２２の演算結果をメモリ１２１に記憶する。
但し、演算部１２０が第二入出力部１２４を介してデータバス１５０ａにデータを出力し、演算器１２２が第一入出力部１２３からデータを入力して演算を行っても構わない。
【００３１】
全ての演算部１２０が（１）に該当する場合、並列信号処理装置１００は、図１のような状態になる。
これにより、各演算部１２０は、隣りの演算部１２０（入力元演算部）に記憶されているデータを用いて演算を行うことができる。
例えば、演算部１２０Ｂは、演算部１２０Ｃに記憶されているデータ（および演算部１２０Ａに記憶されているデータ）を用いて演算を行うことができる。
【００３２】
図２に戻り、演算部１２０のデータバスの接続状態（２）について説明する。
【００３３】
（２）間引き制御信号１０２ａが入力されている場合、演算部１２０（間引き演算部）のスルーパススイッチ部１４０がスルーパススイッチ１４１を切り替えると共にセレクタ１３０がセレクタスイッチ１３１を切り替えて、データバス１５０ａとデータバス１５０ｂとを連結する。
【００３４】
（２）の場合、演算部１２０は、メモリに記憶されているデータを出力する必要は無く、データを入力して演算を行う必要も無い。
【００３５】
図３は、実施の形態１における並列信号処理装置１００の一例を示す図である。
【００３６】
（１）に該当する実行演算部と（２）に該当する間引き演算部とが交互に存在する場合、並列信号処理装置１００は、図３のような状態になる。
これにより、各実行演算部は、二つ隣りの演算部１２０（入力元演算部）に記憶されているデータを用いて演算を行うことができる。
例えば、演算部１２０Ｃは、演算部１２０Ｅに記憶されているデータ（および演算部１２０Ａに記憶されているデータ）を用いて演算を行うことができる。
【００３７】
図４は、実施の形態１における並列信号処理装置１００の演算例を示す図である。
「Ｙ＝ＡＸ（ｎ）＋ＣＸ（ｎ＋３）＋ＣＸ（ｎ−３）」を計算する場合について、図４に基づいて説明する。ここで、Ｘ（ｎ）とは、ｎ番目の演算部１２０に記憶されたデータＸを示す。当然、データＸ（ｎ）の値は、各演算部１２０で個別な値である。
【００３８】
演算部１２０Ｄに注目して説明する。
演算部１２０Ｄは４番目の演算部なので、ｎ＝４となり、演算部１２０Ｄのメモリにはデータ値「Ｘ（４）」が予め記憶されている。
例えば、演算部１２０Ｄの一つ前の演算部１２０Ｃのメモリには「Ｘ（４−１）」が記憶され、演算部１２０Ｄの二つ前の演算部１２０Ｂのメモリには「Ｘ（４−２）」が記憶されている。
また、演算部１２０Ｄの一つ後の演算部１２０Ｅのメモリには「Ｘ（４＋１）」が記憶され、演算部１２０Ｄの二つ後の演算部１２０Ｆには「Ｘ（４＋２）」が記憶されている。
【００３９】
さらに、各演算部１２０のメモリには、係数値「Ａ」「Ｃ」が予め記憶されている。
【００４０】
次に、計算手順について説明する。
【００４１】
ステップ１において、全ての演算部１２０に対して演算制御信号１０１ａが入力される。演算制御信号１０１ａはデータ値と係数値「Ａ」との乗算を指示する命令である。また、間引き制御信号１０２ａはいずれの演算部１２０にも入力されない。
したがって、全ての演算部１２０は、データ値と係数値「Ａ」との乗算を行い、乗算の結果をメモリに記憶する。
例えば、演算部１２０Ｄはデータ値「Ｘ（４）」と係数値「Ａ」との乗算値「ＡＸ（４）」を算出し、演算部１２０Ｇはデータ値「Ｘ（４＋３）」と係数値「Ａ」との乗算値「ＡＸ（４＋３）」を算出し、演算部１２０Ａはデータ値「Ｘ（４−３）」と係数値「Ａ」との乗算値「ＡＸ（４−３）」を算出する。
【００４２】
ステップ２において、全ての演算部１２０に対して演算制御信号１０１ａが入力される。演算制御信号１０１ａはデータ値と係数値「Ｃ」との乗算を指示する命令である。また、間引き制御信号１０２ａはいずれの演算部１２０にも入力されない。
したがって、全ての演算部１２０は、データ値と係数値「Ｃ」との乗算を行い、乗算の結果をメモリに記憶する。
例えば、演算部１２０Ｄはデータ値「Ｘ（４）」と係数値「Ｃ」との乗算値「ＣＸ（４）」を算出し、演算部１２０Ｇはデータ値「Ｘ（４＋３）」と係数値「Ｃ」との乗算値「ＣＸ（ｎ＋３）」を算出し、演算部１２０Ａはデータ値「Ｘ（４−３）」と係数値「Ｃ」との乗算値「ＣＸ（４−３）」を算出する。
【００４３】
ステップ３において、２つ置きに並ぶ演算部１２０（Ａ、Ｄ、Ｇ）に対して演算制御信号１０１ａが入力される。演算制御信号１０１ａは２つ前の演算部１２０と２つ後の演算部１２０とのそれぞれによって演算されたステップ２の演算結果の加算を指示する命令である。また、その他の演算部１２０（Ｂ、Ｃ、Ｅ、Ｆ）に対して間引き制御信号１０２ａが入力される。
したがって、演算制御信号１０１ａを受けた演算部１２０（Ａ、Ｄ、Ｇ）は２つ前の演算部１２０と２つ後の演算部１２０とのそれぞれからステップ２の演算結果を取得し、取得した演算結果の加算を行い、加算の結果をメモリに記憶する。また、間引き制御信号１０２ａを受けた演算部１２０（Ｂ、Ｃ、Ｅ、Ｆ）は入力側のデータバス１５０と出力側のデータバス１５０とを連結して演算結果を中継する。
例えば、演算部１２０Ｄは、２つ前の演算部１２０Ａからステップ２の演算結果「ＣＸ（４−３）」を取得し、２つ後の演算部１２０Ｇからステップ２の演算結果「ＣＸ（４＋３）」を取得する。そして、演算部１２０Ｄは、取得した演算結果の合計値「ＣＸ（４−３）＋ＣＸ（４＋３）」を算出する。
【００４４】
ステップ４において、ステップ３で演算制御信号１０１ａが入力された演算部１２０（Ａ、Ｄ、Ｇ）の一つ前の演算部１２０（Ｃ、Ｆ）に対して演算制御信号１０１ａが入力され、その他の演算部１２０（Ａ、Ｂ、Ｄ、Ｅ、Ｇ）に対して間引き制御信号１０２ａが入力される。演算制御信号１０１ａの内容はステップ３の演算制御信号１０１ａと同じである。
したがって、ステップ３と同様に、演算制御信号１０１ａを受けた演算部１２０（Ｃ、Ｆ）は２つ前の演算部１２０と２つ後の演算部１２０とのそれぞれからステップ２の演算結果を取得し、取得した演算結果の加算を行い、加算の結果をメモリに記憶する。
【００４５】
ステップ５において、ステップ４で演算制御信号１０１ａが入力された演算部１２０（Ｃ、Ｆ）の一つ前の演算部１２０（Ｂ、Ｅ）に対して演算制御信号１０１ａが入力され、その他の演算部１２０（Ａ、Ｃ、Ｄ、Ｆ、Ｇ）に対して間引き制御信号１０２ａが入力される。演算制御信号１０１ａの内容はステップ３の演算制御信号１０１ａと同じである。
したがって、ステップ３と同様に、演算制御信号１０１ａを受けた演算部１２０（Ｂ、Ｅ）は２つ前の演算部１２０と２つ後の演算部１２０とのそれぞれからステップ２の演算結果を取得し、取得した演算結果の加算を行い、加算の結果をメモリに記憶する。
【００４６】
上記のように、ステップ３からステップ５までの処理において、各演算部１２０は輪番で演算を行う。つまり、連続する３つの演算部１２０（Ｂ、Ｃ、Ｄ）は交代しながら順番に演算を行う。
これにより、全ての演算部１２０が前後の演算部１２０以外の演算部１２０に記憶されているデータを用いて演算を行うことができる。
【００４７】
ステップ６において、全ての演算部１２０に対して演算制御信号１０１ａが入力される。演算制御信号１０１ａはステップ１の演算結果とステップ３から５の演算結果との加算を指示する命令である。また、間引き制御信号１０２ａはいずれの演算部１２０にも入力されない。
したがって、全ての演算部１２０は、ステップ１の演算結果とステップ３から５の演算結果との加算を行い、加算の結果をメモリに記憶する。
例えば、演算部１２０Ｄは、ステップ１の演算結果「ＡＸ（４）」とステップ３の演算結果「ＣＸ（４＋３）＋ＣＸ（４−３）」との合計値「ＡＸ＋ＣＸ（４＋３）＋ＣＸ（４−３）」を算出する。
【００４８】
以上の処理により、並列信号処理装置１００は「Ｙ＝ＡＸ（ｎ）＋ＣＸ（ｎ＋３）＋ＣＸ（ｎ−３）」を計算することができる。
さらに、並列信号処理装置１００は、任意の離れたデータ値「Ｘ（ｎ＋α）」による多項式（例えば、「Ｙ＝ＡＸ（ｎ−１）＋ＣＸ（ｎ＋２）＋ＣＸ（ｎ−４）」）を計算できる。
【００４９】
また、並列信号処理装置１００は、以下で説明するように、従来技術よりも早く演算を行うことができる。
【００５０】
図５は、従来の並列信号処理の演算例を示す図である。演算例で用いている計算式は実施の形態１の演算例（図４）と同じである。
【００５１】
従来の並列信号処理では、隣りの演算部に記憶されているデータだけしか入力できない。演算部１２０Ｄに注目して説明すると、演算部Ａ・Ｂに記憶されているデータ「ＣＸ（４−３）」「ＣＸ（４＋３）」を演算部Ｄで使用するためには、データを転送するための処理ステップ３−６が必要になる。
したがって、従来の並列信号処理は、実施の形態１の並列信号処理（図４）に比べて多くの処理ステップを要する。
【００５２】
実施の形態２．
隣接する演算部間に複数本の信号線を設け、一つ隣りの演算部と二つ隣りの演算部と二つ隣りの演算部より離れている演算部とのいずれかに記憶されているデータを用いて各演算部が演算を行う形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略する事項については実施の形態１と同様である。
【００５３】
図６は、実施の形態２における並列信号処理装置１００の構成図である。
実施の形態２における並列信号処理装置１００の構成について、図６に基づいて説明する。
【００５４】
並列信号処理装置１００（演算装置の一例）は、複数の第一データバス１５１と複数の第二データバス１５２とを備える。
複数の第一データバス１５１と複数の第二データバス１５２とは、順番が連続する二つの演算部１２０の間に一本ずつ設ける。
例えば、演算部１２０Ａと演算部１２０Ｂとの間に第一データバス１５１と第二データバス１５２とを一本ずつ設ける。同様に、演算部１２０Ｂと演算部１２０Ｃとの間、演算部１２０Ｃと演算部１２０Ｄとの間、演算部１２０Ｄと演算部１２０Ｅとの間にも第一データバス１５１と第二データバス１５２とを一本ずつ設ける。
【００５５】
プログラム制御部１１０は、以下のように動作する。
【００５６】
プログラム制御部１１０（演算制御部の一例）は、特定の演算に用いるデータが記憶されている入力元演算部として、特定の演算を行う実行演算部より一つ前の順番を有する第一演算部と、実行演算部より二つ前の順番を有する第二演算部と、第二演算部より前の順番を有する第三演算部とのうちいずれかの演算部を入力元演算部として選択する。
プログラム制御部１１０は、間引き制御部１１１によって選択される間引き演算部以外の演算部１２０（実行演算部）に演算制御信号１０１ａを入力する。
【００５７】
間引き制御部１１１は、プログラム制御部１１０が第三演算部を入力元演算部として選択した場合に間引き演算部を選択し、選択した間引き演算部へ間引き制御信号１０２ａを入力する。
間引き制御信号１０２ａ（間引き制御命令）は、入力側の第一データバス１５１と出力側の第一データバス１５１とを接続すると共に入力側の第二データバス１５２と出力側の第二データバス１５２とを接続することを指示する信号である。
【００５８】
例えば、間引き制御部１１１は、入力元演算部が第二演算部よりｎ（１以上の整数）個前の順番を有する演算部１２０である場合、実行演算部と入力元演算部との間の順番を有する演算部１２０のうちｎ個の演算部１２０を間引き演算部として選択する。
さらに、間引き制御部１１１は、間引き演算部の選択を行った後、選択した間引き演算部の代わりに、選択した間引き演算部の前後いずれかの演算部１２０を新たな間引き演算部として選択する。そして、間引き制御部１１１は、新たな間引き演算部に間引き制御信号１０２ａを入力する。
【００５９】
演算部１２０の動作について説明する。
【００６０】
間引き演算部のセレクタ１３０およびスルーパススイッチ部１４０（それぞれデータバス接続部の一例）は、入力側の第一データバスと出力側の第一データバスとを接続すると共に入力側の第二データバス１５２と出力側の第二データバス１５２とを接続する。
間引き演算部以外の演算部１２０（実行演算部）のセレクタ１３０およびスルーパススイッチ部１４０は、入力側の第二データバス１５２と出力側の第一データバス１５１とを接続する。
セレクタ１３０とスルーパススイッチ部１４０との詳細については後述する。
【００６１】
実行演算部の演算器（図示省略）は、メモリ（図示省略）に記憶されているデータを出力側の第一データバス１５１と出力側の第二データバス１５２とのうちいずれかのデータバスに出力し、入力側の第一データバス１５１からデータを入力し、入力したデータを用いて特定の演算を行う。
【００６２】
図７は、実施の形態２における演算部１２０のデータバスの接続状態（１）−（３）を示す図である。
実施の形態２における演算部１２０のデータバスの接続状態（１）−（３）について、図７に基づいて説明する。
【００６３】
（１）第一データバス１５１へのデータの出力を指示する演算制御信号１０１ａが入力されていて間引き制御信号１０２ａが入力されていない場合、演算部１２０（実行演算部）のスルーパススイッチ部１４０は、第一スルーパススイッチ１４２を切り替えて第一データバス１５１ａを第二入出力部１２４に接続する。
また、セレクタ１３０は、第一セレクタスイッチ１３２と第二セレクタスイッチ１３３とを切り替えて第一データバス１５１ｂを第一入出力部１２３に接続する。
【００６４】
（１）の場合、演算部１２０は、メモリからデータを取得し、取得したデータを第一入出力部１２３を介して第一データバス１５１ｂへ出力する。
また、演算器１２２は他の演算部１２０から出力されたデータを第二入出力部１２４から入力し、入力したデータを用いて演算を行う。演算の方法は演算制御信号１０１ａの指示に従う。演算部１２０は、演算器１２２の演算結果をメモリ１２１に記憶する。
但し、演算部１２０が第二入出力部１２４を介して第一データバス１５１ａにデータを出力し、演算器１２２が第一入出力部１２３からデータを入力して演算を行っても構わない。
【００６５】
全ての演算部１２０が（１）に該当する場合、並列信号処理装置１００は、図６のような状態になる。
これにより、各演算部１２０は、隣りの演算部１２０（入力元演算部）に記憶されているデータを用いて演算を行うことができる。
例えば、演算部１２０Ｃは、演算部１２０Ｄに記憶されているデータ（および演算部１２０Ｂに記憶されているデータ）を用いて演算を行うことができる。
【００６６】
図７に戻り、演算部１２０のデータバスの接続状態（２）について説明する。
【００６７】
（２）第二データバス１５２へのデータの出力を指示する演算制御信号１０１ａが入力されていて間引き制御信号１０２ａが入力されていない場合、演算部１２０（実行演算部）のスルーパススイッチ部１４０は、第一スルーパススイッチ１４２を切り替えて第一データバス１５１ａを第二入出力部１２４に接続する。
さらに、スルーパススイッチ部１４０が第二スルーパススイッチ１４３を切り替えると共にセレクタ１３０が第二セレクタスイッチ１３３を切り替えて、第二データバス１５２ａと第一データバス１５１ｂとを連結する。
また、セレクタ１３０は、第一セレクタスイッチ１３２を切り替えて第一入出力部１２３を第二データバス１５２ｂに接続する。
【００６８】
（２）の場合、演算部１２０は、メモリからデータを取得し、取得したデータを第一入出力部１２３を介して第二データバス１５２ｂへ出力する。
また、演算器１２２は他の演算部１２０から出力されたデータを第二入出力部１２４から入力し、入力したデータを用いて演算を行う。演算の方法は演算制御信号１０１ａの指示に従う。演算部１２０は、演算器１２２の演算結果をメモリ１２１に記憶する。
但し、演算部１２０が第二入出力部１２４を介して第一データバス１５１ａにデータを出力し、演算器１２２が第一入出力部１２３からデータを入力して演算を行っても構わない。
【００６９】
図８は、実施の形態２における並列信号処理装置１００の一例を示す図である。
【００７０】
全ての演算部１２０が（２）に該当する場合、並列信号処理装置１００は、図８のような状態になる。
これにより、各演算部１２０は、二つ隣りの演算部１２０（入力元演算部）に記憶されているデータを用いて演算を行うことができる。
例えば、演算部１２０Ｃは、演算部１２０Ｅに記憶されているデータ（および演算部１２０Ａに記憶されているデータ）を用いて演算を行うことができる。
【００７１】
図７に戻り、演算部１２０のデータバスの接続状態（３）について説明する。
【００７２】
（３）間引き制御信号１０２ａが入力されている場合、演算部１２０（間引き演算部）のスルーパススイッチ部１４０が第一スルーパススイッチ１４２を切り替えると共にセレクタ１３０が第二セレクタスイッチ１３３を切り替えて、第一データバス１５１ａと第一データバス１５１ｂとを連結する。
さらに、スルーパススイッチ部１４０は第二スルーパススイッチ１４３を切り替えて第二データバス１５２ａと第二データバス１５２ｂとを連結する。
【００７３】
（３）の場合、演算部１２０は、メモリに記憶されているデータを出力する必要は無く、データを入力して演算を行う必要も無い。
【００７４】
図９は、実施の形態２における並列信号処理装置１００の一例を示す図である。
【００７５】
（２）に該当する実行演算部と（３）に該当する間引き演算部とが交互に存在する場合、並列信号処理装置１００は、図９のような状態になる。
これにより、各実行演算部は、４つ離れた演算部１２０（入力元演算部）に記憶されているデータを用いて演算を行うことができる。
例えば、演算部１２０Ａは、演算部１２０Ｅに記憶されているデータを用いて演算を行うことができる。
【００７６】
上記のように、間引き演算部の入力側のデータバスと出力側のデータバスとを連結することにより（図７（３）参照）、実行演算部は遠く離れた入力元演算部からデータを取得して演算を行うことができる。
【００７７】
例えば、実行演算部が４つ離れた入力元演算部からデータを取得して演算を行う場合、実行演算部と入力元演算部との間にある演算部のうち「２（＝４−２）」個の演算部を間引き演算部として選択すればよい（図９参照）。中間にある２つの演算部１２０を間引き演算部として扱うことにより、実行演算部と４つ離れた演算部１２０とをデータバスで直結することができるためである。
同様に、実行演算部がｎ個離れた入力元演算部からデータを取得して演算を行う場合、実行演算部と入力元演算部との間にある演算部のうち「ｎ−２」個の演算部を間引き演算部として選択すればよい。
【００７８】
また、並列信号処理装置１００の演算部１２０の間には２本のデータバスを設ければよいため、並列信号処理装置１００を小型化することができる。
但し、演算部１２０の間に３本以上のデータバスを設けても構わない。この場合、間引き演算部の数を減らすことができる。これにより、輪番に要する処理数（図４のステップ３−５参照）が減り、演算時間が短縮される。
【００７９】
図１０は、従来の並列信号処理装置の構成図である。図１０に示すように、演算部間にデータバスを２本ずつ設けた従来の並列信号処理装置は、１回の処理で（ａ）一つ隣りまたは（ｂ）二つ隣りの演算部からしかデータを取得することができない。
このため、従来の並列信号処理は、データバス本数により直接参照できる演算部より遠い演算部のデータを使う計算をする場合、データを転送するための処理ステップ（図５のステップ３−６参照）が必要であり、実施の形態２の並列信号処理に比べて多くの処理ステップを要する。
【００８０】
実施の形態３．
複数の演算部のうちいずれかの演算部（またはセレクタ、スルーパススイッチ部）が故障した場合に正常に動作することができる形態について説明する。
以下、実施の形態１、２と異なる事項について主に説明する。説明を省略する事項については実施の形態１、２と同様である。
【００８１】
図１１は、実施の形態３における並列信号処理装置１００の構成図である。
実施の形態３における並列信号処理装置１００の構成について、図１１に基づいて説明する。
【００８２】
並列信号処理装置１００は、実施の形態２で説明した構成（図６参照）に加えて、冗長制御部１６０、第三信号線１０３、複数の間引き制御スイッチ部１７０および冗長要素１０９を備える。また、並列信号処理装置１００は、複数の第二信号線１０２から成る第二信号線群１０４を備える。
【００８３】
プログラム制御部１１０は、演算部を診断するための診断プログラムを定期的にまたは所定のタイミングで実行し、各演算部１２０が正常であるか否かを判定する。診断プログラムはプログラム制御部１１０のメモリに予め記憶しておく。
【００８４】
プログラム制御部１１０によって演算部１２０の故障が検出された場合、冗長制御部１６０は、第三信号線１０３を介して冗長制御信号１０３ａを故障した演算部１２０の間引き制御スイッチ部１７０に入力する。
【００８５】
複数の第二信号線１０２（複数の制御信号線の一例）は、割当番号が割り当てられて演算部１２０の間毎に設けられる。
間引き制御部１１１（制御信号出力部の一例）は、複数の第二信号線１０２のうち間引き演算部に接続されている第二信号線１０２に間引き制御信号１０２ａ（制御信号の一例）を出力する。
【００８６】
複数の間引き制御スイッチ部１７０（複数の制御信号中継部の一例）は、複数の演算部１２０に対応付けて設けられている。
複数の間引き制御スイッチ部１７０は、所定の割当番号の第二信号線１０２に出力された間引き制御信号１０２ａを入力し、入力した間引き制御信号１０２ａを当該演算部１２０に入力する。
【００８７】
冗長制御信号１０３ａが入力されていない間引き制御スイッチ部１７０は、入力側の第二信号線１０２毎に間引き制御信号１０２ａを入力し、入力した間引き制御信号１０２ａを入力側の第二信号線１０２と同じ割当番号が割り当てられた出力側の第二信号線１０２に出力する。
冗長制御信号１０３ａが入力された間引き制御スイッチ部１７０は、入力側の第二信号線１０２毎に間引き制御信号１０２ａを入力し、入力した間引き制御信号１０２ａを入力側の第二信号線１０２の次の割当番号が割り当てられた出力側の第二信号線１０２に出力する。
【００８８】
冗長要素１０９は、演算部１２０Ｆとセレクタ１３０Ｆとスルーパススイッチ部１４０Ｆとを備える。
並列信号処理装置１００は、必要な個数の演算部１２０に加えて冗長要素１０９を備える。これにより、いずれかの演算部１２０に故障が発生した場合であっても、正常に動作する演算部１２０を必要な個数だけ確保することができる。
【００８９】
図１２は、実施の形態３における間引き制御スイッチ部１７０の構成図である。
実施の形態３における間引き制御スイッチ部１７０の構成について、図１２に基づいて説明する。
【００９０】
ここで、Ｎ個の演算部１２０を一グループ（一組）として扱うものとする。この場合、Ｎ本の第二信号線１０２を演算部１２０の間毎に設ける。
図１２では、４つの演算部１２０を一グループとして扱い、４本の第二信号線１０２Ａ−Ｄを演算部１２０の間毎に設けている。
【００９１】
各第二信号線１０２には割当番号を割り当てる。
以下、第二信号線１０２Ａの割当番号を「１」、第二信号線１０２Ｂの割当番号を「２」、第二信号線１０２Ｃの割当番号を「３」、第二信号線１０２Ｄの割当番号を「４」とする。
【００９２】
間引き制御スイッチ部１７０は、入力側の第二信号線１０２毎に入力側の第二信号線１０２を同じ割当番号が割り当てられた出力側の第二信号線１０２に接続するための信号線スイッチ１７１を備える。
間引き制御スイッチ部１７０は、信号線スイッチ１７１を切り替えることにより、入力側の第二信号線１０２を次の割当番号が割り当てられた出力側の第二信号線１０２に接続することができる。
【００９３】
間引き制御スイッチ部１７０は、演算部１２０を所定の割当番号の第二信号線１０２に接続するための切り離しスイッチ１７２を備える。図１２において、演算部１２０Ａ、Ｅは第二信号線１０２Ａに接続され、演算部１２０Ｂ、Ｆは第二信号線１０２Ｂに接続され、演算部１２０Ｃは第二信号線１０２Ｃに接続され、演算部１２０Ｄは第二信号線１０２Ｄに接続されている。
間引き制御スイッチ部１７０は、切り離しスイッチ１７２を切り替えることにより、演算部１２０を第二信号線１０２から切り離すことができる。
【００９４】
いずれの演算部１２０も故障していない場合、並列信号処理装置１００は以下のように動作する。
【００９５】
各間引き制御スイッチ部１７０は、入力側の第二信号線１０２毎に入力側の第二信号線１０２を同じ割当番号が割り当てられた出力側の第二信号線１０２に接続する。
これにより、間引き制御信号１０２ａが第二信号線１０２Ａに出力された場合、各間引き制御スイッチ部１７０は、入力側の第二信号線１０２Ａから間引き制御信号１０２ａを入力し、入力した間引き制御信号１０２ａを出力側の第二信号線１０２Ａに出力する。
また、演算部１２０を第二信号線１０２Ａに接続している間引き制御スイッチ部１７０Ａ、Ｅは、入力した間引き制御信号１０２ａを演算部１２０Ａ、Ｅに入力する。
間引き制御信号１０２ａが入力された演算部１２０Ａ、Ｅは、間引き演算部として動作する（実施の形態１、２参照）。
【００９６】
図１３は、実施の形態３における間引き制御スイッチ部１７０の一例を示す図である。
演算部１２０Ｅが故障した場合の並列信号処理装置１００の動作について、図１３に基づいて説明する。
【００９７】
故障した演算部１２０Ｅの間引き制御スイッチ部１７０Ｅは、切り離しスイッチ１７２を切り替えて演算部１２０Ｅを第二信号線１０２Ａから切り離す。
また、間引き制御スイッチ部１７０Ｅは、各信号線スイッチ１７１を切り替えて入力側の第二信号線１０２を次の割当番号が割り当てられた出力側の第二信号線１０２に接続する。つまり、入力側の第二信号線１０２Ａは出力側の第二信号線１０２Ｂに接続される。
このため、第二信号線１０２から間引き制御スイッチ部１７０Ｅへ入力された間引き制御信号１０２ａは、第二信号線１０２Ｂから間引き制御スイッチ部１７０Ｆに入力される。
そして、間引き制御信号１０２ａは第二信号線１０２Ｂに接続されている演算部１２０Ｆに入力され、演算部１２０Ｆは故障した演算部１２０Ｅの代わりに間引き演算部として動作する。
【００９８】
以上のように、間引き制御スイッチ部１７０を備えることにより、演算部１２０の故障に対して冗長度を有し、高い歩留まりで低コストな並列信号処理装置１００を実現することができる。
【符号の説明】
【００９９】
１００  並列信号処理装置、１０１  第一信号線、１０１ａ  演算制御信号、１０２  第二信号線、１０２ａ  間引き制御信号、１０３  第三信号線、１０３ａ  冗長制御信号、１０４  第二信号線群、１０９  冗長要素、１１０  プログラム制御部、１１１  間引き制御部、１２０  演算部、１２１  メモリ、１２２  演算器、１２３  第一入出力部、１２４  第二入出力部、１３０  セレクタ、１３１  セレクタスイッチ、１３２  第一セレクタスイッチ、１３３  第二セレクタスイッチ、１４０  スルーパススイッチ部、１４１  スルーパススイッチ、１４２  第一スルーパススイッチ、１４３  第二スルーパススイッチ、１５０  データバス、１５１  第一データバス、１５２  第二データバス、１６０  冗長制御部、１７０  間引き制御スイッチ部、１７１  信号線スイッチ、１７２  切り離しスイッチ。
【図１】
2013003895.tif 000003
【図２】
2013003895.tif 000004
【図３】
2013003895.tif 000005
【図４】
2013003895.tif 000006
【図５】
2013003895.tif 000007
【図６】
2013003895.tif 000008
【図７】
2013003895.tif 000009
【図８】
2013003895.tif 000010
【図９】
2013003895.tif 000011
【図１０】
2013003895.tif 000012
【図１１】
2013003895.tif 000013
【図１２】
2013003895.tif 000014
【図１３】
2013003895.tif 000015