(57)【要約】【課題】専用ハードウェアや高性能なＳＩＭＤ型処理装置を用いることなく、処理の高速化を実現することができる信号処理装置を得ることを目的とする。【解決手段】処理命令を発行する全体制御部１に対して、部分制御部２１〜２Ｎ、データ転送部３１〜３Ｎ及びデータパス部４１〜４Ｎが並列に接続されており、全体制御部１が相互に異なる処理命令を部分制御部２１〜２Ｎに発行し、あるいは、同一の処理命令を少なくとも１個以上の部分制御部２に発行することで、処理の並列化を実現する。【選択図】図１
2011081658.tif 000002
【特許請求の範囲】
【請求項１】
処理命令を発行する全体制御部と、上記全体制御部により発行された処理命令が単一演算を指示する命令であれば、その命令にしたがって単一演算を実行し、上記処理命令がデータパス演算を指示する命令であれば、その命令にしたがって演算命令を発行し、上記処理命令がデータの転送を指示する命令であれば、その命令にしたがってデータ転送命令を発行する部分制御部と、上記部分制御部により発行されたデータ転送命令にしたがってデータパス演算に必要なデータ及び上記部分制御部により実行された単一演算の演算結果を転送するデータ転送部と、上記データ転送部により転送されたデータ及び単一演算の演算結果を用いて、上記部分制御部により発行された演算命令にしたがってデータパス演算を実行するデータパス部とを備えた信号処理装置において、上記全体制御部に対して、上記部分制御部、上記データ転送部及び上記データパス部が複数個並列に接続されており、上記全体制御部が相互に異なる処理命令を各部分制御部に発行し、あるいは、同一の処理命令を少なくとも１個以上の部分制御部に発行することで、処理の並列化を実現することを特徴とする信号処理装置。
【請求項２】
全体制御部は、相互に異なる処理命令、あるいは、同一の処理命令を発行した後、複数個の部分制御部を連結して、単一の処理命令を上記複数個の部分制御部に分担させることを特徴とする請求項１記載の信号処理装置。
【請求項３】
全体制御部は、複数個の部分制御部の処理状況を把握し、その処理状況に基づいて上記複数個の部分制御部を連結させるか否かを判定することを特徴とする請求項２記載の信号処理装置。
【請求項４】
全体制御部は、単一の処理命令を複数個の部分制御部に分担させる際、単一演算の演算結果及びデータパス部によるデータパス演算の演算結果を格納する各部分制御部の演算メモリを連結することで、各部分制御部に対して、他の部分制御部の演算メモリに対するアクセスを許可することを特徴とする請求項２または請求項３記載の信号処理装置。
【請求項５】
全体制御部は、相互に異なる処理命令、あるいは、同一の処理命令を発行する際、処理命令を発行する各部分制御部の処理時間を算出して、先に処理が終了する部分制御部と、その他の部分制御部とを判別し、その他の部分制御部に対する処理命令の中で、未だ処理が実行されていない命令を先に処理が終了している部分制御部に分担させることを特徴とする請求項１記載の信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、画像処理などの信号処理を行う信号処理装置に関するものである。
【背景技術】
【０００２】
近年、画像処理などの信号処理を行う信号処理装置では、並列処理を行うプロセッサと専用ハードウェアとから構成されている。
例えば、以下の特許文献１に開示されている信号処理装置では、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）型処理装置と専用ハードウェアが組み合わされており、ＳＩＭＤ型処理装置では、動き予測やＤＣＴ／ＩＤＣＴ処理を実行し、専用ハードウェアでは、ＶＬＣ処理を実行することで、ＳＩＭＤ型処理装置と専用ハードウェアの並列処理を実現している。
【０００３】
このように、特許文献１に開示されている信号処理装置では、高い処理性能を必要とするＶＬＣ処理を専用ハードウェアで処理することで、高い処理能力を達成している。
また、ＳＩＭＤ型処理装置を備えることで、多様な処理に対応できるようにしている。
ＳＩＭＤ型処理装置と専用ハードウェアの並列処理を実現することで、処理速度の高速化が図られる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−３０９３８６号公報（段落番号［００１２］から［００１５］、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の信号処理装置は以上のように構成されているので、ＳＩＭＤ型処理装置と専用ハードウェアの並列処理によって処理速度の高速化が図られているが、専用ハードウェアを使用しているため、処理内容を柔軟に変更することができない課題があった。
また、単一のＳＩＭＤ型処理装置が複数の処理を並列に実行するものであるため、処理の高速化は、ＳＩＭＤ型処理装置の性能に左右され、高性能なＳＩＭＤ型処理装置を実装しなければ、処理の高速化を実現することができない課題があった。
さらに、ＳＩＭＤ型処理装置と専用ハードウェアという異なるデータ処理装置が組み合わされたものであるため、製造バラつきの影響で性能に差異が生じ易く、性能に差異が生じると、装置全体の性能が劣化してしまう課題があった。
【０００６】
この発明は上記のような課題を解決するためになされたもので、専用ハードウェアや高性能なＳＩＭＤ型処理装置を用いることなく、処理の高速化を実現することができる信号処理装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係る信号処理装置は、処理命令を発行する全体制御部に対して、部分制御部、データ転送部及びデータパス部が複数個並列に接続されており、全体制御部が相互に異なる処理命令を各部分制御部に発行し、あるいは、同一の処理命令を少なくとも１個以上の部分制御部に発行することで、処理の並列化を実現するようにしたものである。
【発明の効果】
【０００８】
この発明によれば、処理命令を発行する全体制御部に対して、部分制御部、データ転送部及びデータパス部が複数個並列に接続されており、全体制御部が相互に異なる処理命令を各部分制御部に発行し、あるいは、同一の処理命令を少なくとも１個以上の部分制御部に発行することで、処理の並列化を実現するように構成したので、専用ハードウェアや高性能なＳＩＭＤ型処理装置を用いることなく、処理の高速化を実現することができる効果がある。
【図面の簡単な説明】
【０００９】
【図１】この発明の実施の形態１による信号処理装置を示す構成図である。
【図２】この発明の実施の形態１による信号処理装置の全体制御部１及び部分制御部２の内部を示す構成図である。
【図３】全体制御部１における連結判定部１１の内部を示す構成図である。
【図４】部分制御部２１と部分制御部２２を連結して、単一の処理命令を部分制御部２１と部分制御部２２に分担させる際の各種命令の流れを示す説明図である。
【図５】部分制御部２１，２２のメイン命令メモリ２１ｂに格納されているメインプログラム内の命令及びメインプログラムカウンタ２１ｃのカウント値Ｓ２（ＰＣ値）を示す説明図である。
【図６】この発明の実施の形態１による信号処理装置の全体制御部１の処理内容を示すフローチャートである。
【図７】この発明の実施の形態２による信号処理装置の全体制御部１及び部分制御部２の一部を示す構成図である。
【図８】この発明の実施の形態３による信号処理装置の全体制御部１の内部を示す構成図である。
【発明を実施するための形態】
【００１０】
実施の形態１．
図１はこの発明の実施の形態１による信号処理装置を示す構成図である。
図１において、全体制御部１は相互に異なる処理命令を部分制御部２１〜２Ｎに発行し、あるいは、同一の処理命令を少なくとも１個以上の部分制御部（例えば、部分制御部２ｎ−１と部分制御部２ｎ：ｎ＝１，２，・・・，Ｎ）に発行する処理を実施する。
全体制御部１は、画像符号化処理や画像復号処理の制御を実施するような場合、例えば、画像符号化処理における動きベクトルの算出処理のような単位処理の実行命令（処理命令）を部分制御部２１〜２Ｎに発行する処理を実施する。
【００１１】
部分制御部２１〜２Ｎは全体制御部１に接続されており、全体制御部１により発行された処理命令にしたがって並列に処理を実行する処理部である。
即ち、部分制御部２１〜２Ｎは全体制御部１により発行された処理命令が単一演算を指示する命令であれば、その命令にしたがってデータパス演算の処理順序判定に必要な比較演算や、後述する演算命令やデータ転送命令などを発行するために必要なパラメータを算出するための単一演算（例えば、加算、減算、乗算、除算など）を実行し、その処理命令がデータパス演算を指示する命令であれば、その命令にしたがってデータパス演算の演算命令をデータパス部４１〜４Ｎに発行し、その処理命令がデータの転送を指示する命令であれば、その命令にしたがってデータ転送命令をデータ転送部３１〜３Ｎに発行する処理を実施する。
【００１２】
データ転送部３１〜３Ｎは部分制御部２１〜２Ｎにより発行されたデータ転送命令にしたがってデータパス演算に必要なデータ及び部分制御部２１〜２Ｎにより実行された単一演算の演算結果を転送する処理を実行する。
即ち、データ転送部３１〜３Ｎは部分制御部２１〜２Ｎにより発行されたデータ転送命令が、例えば、部分制御部２１〜２Ｎの演算メモリ２４（図２を参照）に格納されているデータ（例えば、単一演算の演算結果）の転送を指示する命令であれば、そのデータをデータパス部４１〜４Ｎに転送し、そのデータ転送命令が、データメモリ５１〜５Ｎに格納されているデータ（例えば、データパス演算に必要なデータ）の転送を指示する命令であれば、そのデータをデータパス部４１〜４Ｎに転送する処理を実施する。また、そのデータ転送命令が、例えば、データパス部４１〜４Ｎによるデータパス演算の演算結果の転送を指示する命令であれば、その演算結果を部分制御部２１〜２Ｎの演算メモリ２４やデータメモリ５１〜５Ｎに転送する処理を実施する。
【００１３】
データパス部４１〜４Ｎは例えばＳＩＭＤ型処理装置で構成されており、データ転送部３１〜３Ｎにより転送されたデータ及び単一演算の演算結果を用いて、部分制御部２１〜２Ｎにより発行された演算命令にしたがってデータパス演算を実行する。
ただし、データパス部４１〜４Ｎは、部分制御部２１〜２Ｎにより発行された演算命令にしたがって１つのデータパス演算を実行するだけであり、１個のデータパス部４において、複数のデータパス演算を並列処理するものではないため、高性能なＳＩＭＤ型処理装置を用いる必要はない。
データメモリ５１〜５Ｎはデータパス部４１〜４Ｎがデータパス演算を実行する際に必要なデータや、データパス部４１〜４Ｎによるデータパス演算の演算結果などを格納する記録媒体である。
バス６はデータ転送部３１〜３Ｎがデータを転送する際に使用する伝送路であり、データ転送部３１〜３Ｎ、データパス部４１〜４Ｎ及びデータメモリ５１〜５Ｎ間を接続している。
【００１４】
図２はこの発明の実施の形態１による信号処理装置の全体制御部１及び部分制御部２の内部を示す構成図である。
図２では、部分制御部２１，２２を記載して、部分制御部２３〜２Ｎの記載を省略しているが、部分制御部２３〜２Ｎの内部は、部分制御部２１，２２の内部と同様である。
図２において、全体制御部１の連結判定部１１は、例えば、画像符号化処理における動きベクトルの算出処理のような単位処理の実行命令を発行する際、少なくとも１個以上の部分制御部２に対して、同一の処理命令を発行する場合、Ｎ個の部分制御部２１〜２Ｎの処理状況を把握し、その処理状況に基づいて、どの部分制御部２を連結させるかを判定する処理を実施する。
なお、連結させる部分制御部２の個数は、最低１個から最大で接続数（Ｎ個）までである。
【００１５】
全体制御部１の処理制御部１２は連結判定部１１により連結させる部分制御部２が判定されると、その連結させる部分制御部２に対して、同一の処理命令を発行する処理を実施する。
ここでは、少なくとも１個以上の部分制御部２に対して、同一の処理命令を発行する場合について示したが、部分制御部２１〜２Ｎに対して、相互に異なる単位処理を実行させる場合には、処理制御部１２は、相互に異なる処理命令を部分制御部２１〜２Ｎに発行する。
【００１６】
部分制御部２１〜２Ｎのメイン制御部２１は制御部２１ａ、メイン命令メモリ２１ｂ及びメインプログラムカウンタ２１ｃから構成されており、制御部２１ａは全体制御部１により発行された処理命令が単一演算を指示する命令であれば、メイン命令メモリ２１ｂにより格納されているメインプログラムを実行することで、単一演算を実行する。
また、全体制御部１により発行された処理命令がデータパス演算を指示する命令であれば、その命令にしたがってデータパス演算の演算命令の発行をデータパス制御部２３に指示し、その処理命令がデータの転送を指示する命令であれば、その命令にしたがってデータ転送命令の発行をデータ転送制御部２２に指示する処理を実施する。
【００１７】
メイン命令メモリ２１ｂはメイン制御部２１の制御部２１ａが実行するメインプログラムを格納している記録媒体である。
ここでは、メイン命令メモリ２１ｂがメインプログラムを格納している例を示しているが、これに限るものでなく、例えば、全体制御部１からメインプログラムが与えられるようにしてもよい。
メインプログラムカウンタ２１ｃは制御部２１ａにより現在実行されているメインプログラムの位置を特定するためのプログラムカウンタである。
【００１８】
部分制御部２１〜２Ｎのデータ転送制御部２２はメイン制御部２１の指示の下、データの転送先／転送元、転送データサイズ及びデータの転送順序を示すデータ転送命令をデータ転送部３１〜３Ｎに発行する処理を実施する。
部分制御部２１〜２Ｎのデータパス制御部２３はメイン制御部２１の指示の下、デーパス演算の演算内容及び演算実行順序などを示す演算命令をデータパス部４１〜４Ｎに発行する処理を実施する。
部分制御部２１〜２Ｎの演算メモリ２４はメイン制御部２１による単一演算の演算結果や、データパス部４１〜４Ｎによるデータパス演算の演算結果などを格納し、また、必要に応じてデータパス部４１〜４Ｎがデータパス演算を実施する際に必要なデータなどを格納する記録媒体である。
【００１９】
図３は全体制御部１における連結判定部１１の内部を示す構成図である。
図３において、状態判定部１１ａはＮ個の部分制御部２１〜２Ｎの処理状況を判定（例えば、処理の実行中であるか、待機中であるかなどを判定）する処理を実施する。
即ち、状態判定部１１ａは部分制御部２１〜２Ｎのメインプログラムカウンタ２１ｃのカウント値Ｓ２を監視することで、部分制御部２１〜２Ｎの処理状況を判定する処理を実施する。
連結制御部１１ｂは状態判定部１１ａの判定結果を参照して、どの部分制御部２を連結させるかを判定する処理を実施する。
【００２０】
次に動作について説明する。
この実施の形態１では、部分制御部２１〜２Ｎが全体制御部１により発行される処理命令にしたがって並列処理を実行しているとき、更なる処理の効率化を図るために、部分制御部２１と部分制御部２２を連結して、元々部分制御部２１に発行していた単一の処理命令の一部を部分制御部２２に分担させる例を説明する。
図４は部分制御部２１と部分制御部２２を連結して、単一の処理命令を部分制御部２１と部分制御部２２に分担させる際の各種命令の流れを示す説明図である。
図５は部分制御部２１，２２のメイン命令メモリ２１ｂに格納されているメインプログラム内の命令及びメインプログラムカウンタ２１ｃのカウント値Ｓ２（ＰＣ値）を示す説明図である。
図６はこの発明の実施の形態１による信号処理装置の全体制御部１の処理内容を示すフローチャートである。
【００２１】
まず、全体制御部１の処理制御部１２は、部分制御部２１〜２Ｎを並列に処理を実行させるため、相互に異なる処理命令を部分制御部２１〜２Ｎに発行する。あるいは、同一の処理命令を少なくとも１個以上の部分制御部（例えば、部分制御部２ｎ−１と部分制御部２ｎ：ｎ＝１，２，・・・，Ｎ）に発行する。
部分制御部２１〜２Ｎのメイン制御部２１は、全体制御部１から処理命令を受けると、その処理命令を内部の制御部２１ａに与える。
部分制御部２１〜２Ｎの制御部２１ａは、全体制御部１から出力された処理命令を解析し、その処理命令が単一演算を指示する命令であれば、メイン命令メモリ２１ｂにより格納されているメインプログラムを実行することで、単一演算（例えば、加算、減算、乗算、除算など）を実行する。即ち、データパス演算の処理順序判定に必要な比較演算や、データパス演算の演算命令やデータ転送命令などを発行するために必要なパラメータを算出するための単一演算を実行する。
また、部分制御部２１〜２Ｎの制御部２１ａは、その処理命令がデータパス演算を指示する命令であれば、その命令にしたがってデータパス演算の演算命令の発行をデータパス制御部２３に指示し、その処理命令がデータの転送を指示する命令であれば、その命令にしたがってデータ転送命令の発行をデータ転送制御部２２に指示する。
【００２２】
部分制御部２１〜２Ｎのデータ転送制御部２２は、メイン制御部２１の制御部２１ａからデータ転送命令の発行指示を受けると、その発行指示にしたがって、データの転送先／転送元、転送データサイズ及びデータの転送順序を示すデータ転送命令をデータ転送部３１〜３Ｎに発行する。
部分制御部２１〜２Ｎのデータパス制御部２３は、メイン制御部２１の制御部２１ａから演算命令の発行指示を受けると、その発行指示にしたがって、デーパス演算の演算内容及び演算実行順序などを示す演算命令をデータパス部４１〜４Ｎに発行する。
【００２３】
データ転送部３１〜３Ｎは、部分制御部２１〜２Ｎにより発行されたデータ転送命令を受けると、そのデータ転送命令にしたがってデータパス演算に必要なデータ及び部分制御部２１〜２Ｎにより実行された単一演算の演算結果を転送する。
例えば、部分制御部２１〜２Ｎにより発行されたデータ転送命令が、部分制御部２１〜２Ｎの演算メモリ２４に格納されているデータ（例えば、単一演算の演算結果）と、データメモリ５１〜５Ｎに格納されているデータ（例えば、データパス演算に必要なデータ）との転送を指示する命令であれば、部分制御部２１〜２Ｎの演算メモリ２４に格納されているデータをデータパス部４１〜４Ｎに転送するとともに、データメモリ５１〜５Ｎに格納されているデータをデータパス部４１〜４Ｎに転送する。
【００２４】
データパス部４１〜４Ｎは、部分制御部２１〜２Ｎにより発行された演算命令を受けると、データ転送部３１〜３Ｎにより転送されたデータ及び単一演算の演算結果を用いて、その演算命令にしたがってデータパス演算を実行する。
データ転送部３１〜３Ｎは、データパス部４１〜４Ｎがデータパス演算を実行した後、部分制御部２１〜２Ｎから、データパス演算の演算結果を部分制御部２１〜２Ｎの演算メモリ２４又はデータメモリ５１〜５Ｎに対して、転送を指示する転送命令を受けると、そのデータ転送命令にしたがって、データパス部４１〜４Ｎによるデータパス演算の演算結果を部分制御部２１〜２Ｎの演算メモリ２４又はデータメモリ５１〜５Ｎに転送する。
【００２５】
このように、全体制御部１の制御の下で、部分制御部２１〜２Ｎが並列に処理を実行することで、処理の効率化が図られるが、全体制御部１から相互に異なる処理命令が部分制御部２１〜２Ｎに発行される場合、ある部分制御部２の処理が既に完了しても、ある部分制御部２の処理が未だ完了していない状況が発生することがある。
このような場合に、未だ処理が完了していない部分制御部２の処理の一部を、既に処理が完了して、待機状態になっている部分制御部２に分担させれば、更なる処理の効率化を図ることができる。
以下、未だ処理が完了していない部分制御部２１の処理の一部を、既に処理が完了して、待機状態になっている部分制御部２２に分担させる際の具体的な処理内容を説明する。
【００２６】
全体制御部１の連結判定部１１における状態判定部１１ａは、Ｎ個の部分制御部２１〜２Ｎの処理状況を判定（例えば、処理の実行中であるか、待機中であるかなどを判定）する。
即ち、状態判定部１１ａは、部分制御部２１〜２Ｎのメインプログラムカウンタ２１ｃのカウント値Ｓ２を取得して（図６のステップＳＴ１）、そのカウント値Ｓ２を監視することで、部分制御部２１〜２Ｎの処理状況を判定する（ステップＳＴ２）。
例えば、図５（ａ）に示すように、部分制御部２１のメインプログラムカウンタ２１ｃのカウント値Ｓ２が“６”であれば、メイン命令メモリ２１ｂに格納されているメインプログラムにおいて、現在実行中の命令が命令Ｆであると認識して、部分制御部２１の処理状況は“現在実行中”であると判定する。
また、図５（ｂ）に示すように、部分制御部２２のメインプログラムカウンタ２１ｃのカウント値Ｓ２が“１００”であれば、メイン命令メモリ２１ｂに格納されているメインプログラム内の命令の実行が終了してＮＯＰ（待機状態）であると認識して、部分制御部２２の処理状況は“待機状態”であると判定する。
【００２７】
連結判定部１１の連結制御部１１ｂは、例えば、状態判定部１１ａの判定結果が、部分制御部２１が“現在実行中”であり、部分制御部２２が“待機状態”である旨を示す場合、部分制御部２１の単一処理の一部を部分制御部２２に分担させるか否かを判定する。
即ち、連結制御部１１ｂは、部分制御部２１のメインプログラムカウンタ２１ｃのカウント値Ｓ２を参照して、部分制御部２１のメイン命令メモリ２１ｂに格納されているメインプログラム内の命令の中で、未だ実行されていない命令（図５（ａ）の例では、命令Ｇ〜命令Ｖ）の数（以下、「残り実行命令数」と称する）を把握し、その残り実行命令数と予め設定されている判定閾値（＝“１０”）を比較する（ステップＳＴ３）。
ここでは、説明の便宜上、判定閾値を“１０”に設定しているが、これに限るものではなく、設計者が任意に設定することができる。また、必ずしも命令数を閾値とする必要はなく、命令処理サイクル数を閾値にしてもよい。
【００２８】
連結制御部１１ｂは、残り実行命令数が判定閾値未満であれば、部分制御部２１の単一処理の一部を部分制御部２２に分担させなくても、早期に処理が完了するので、部分制御部２１の単一処理の一部を部分制御部２２に分担させず、部分制御部２１の単一処理を継続させる（ステップＳＴ４）。即ち、部分制御部２１に対して、命令Ｇ〜命令Ｖの実行を継続させる。
連結制御部１１ｂは、残り実行命令数が判定閾値以上であれば、部分制御部２１の単一処理の一部を部分制御部２２に分担させるため、例えば、残り実行命令数の半数の命令（図５（ａ）では、命令Ｏ〜命令Ｖ）を部分制御部２２に分担させる指示（連結信号Ｓ１）を処理制御部１２に出力する（ステップＳＴ５）。
ここでは、残り実行命令数の半数の命令を部分制御部２２に分担させるものについて示したが、これに限るものではなく、設計者が任意に設定することができる。また、分担単位も命令数ではなく、処理サイクル数としてもよい。
【００２９】
全体制御部１の処理制御部１２は、連結判定部１１の連結制御部１１ｂから、例えば、命令Ｏ〜命令Ｖを部分制御部２２に分担させる指示を受けると、命令Ｏ〜命令Ｖの分担命令を部分制御部２２に発行するとともに、部分制御部２２に分担される命令Ｏ〜命令Ｖを除く、残りの実行命令（命令Ｇ〜命令Ｎ）の継続を指示する残り実行命令を部分制御部２１に発行する。
なお、全体制御部１の処理制御部１２は、命令Ｏ〜命令Ｖの分担命令を部分制御部２２に発行する際、命令Ｏ〜命令Ｖに対応するメインプログラムのＰＣ値“１５”〜“２２”を部分制御部２２に通知する。
【００３０】
部分制御部２１のメイン制御部２１における制御部２１ａは、全体制御部１から残りの実行命令（命令Ｇ〜命令Ｎ）の継続を指示する残り実行命令を受けると、命令Ｇから実行を開始して、命令Ｎの実行が終了するまで、命令の実行を継続する。
部分制御部２２のメイン制御部２１における制御部２１ａは、全体制御部１から命令Ｏ〜命令Ｖの分担命令を受けると、メイン命令格納メモリ２１ｂに格納されているメインプログラム内の命令の中から、全体制御部１から通知されたメインプログラムのＰＣ値“１５”〜“２２”をキーにして、分担された命令Ｏ〜命令Ｖを読み込み、その命令Ｏ〜命令Ｖを順次実行する。
【００３１】
以上で明らかなように、この実施の形態１によれば、処理命令を発行する全体制御部１に対して、部分制御部２１〜２Ｎ、データ転送部３１〜３Ｎ及びデータパス部４１〜４Ｎが並列に接続されており、全体制御部１が相互に異なる処理命令を部分制御部２１〜２Ｎに発行し、あるいは、同一の処理命令を少なくとも１個以上の部分制御部２に発行することで、処理の並列化を実現するように構成したので、専用ハードウェアや高性能なＳＩＭＤ型処理装置を用いることなく、処理の高速化を実現することができる効果を奏する。
【００３２】
また、この実施の形態１によれば、全体制御部１が、相互に異なる処理命令、あるいは、同一の処理命令を発行した後、複数個の部分制御部２を連結して、単一の処理命令を複数個の部分制御部２に分担させるように構成したので、更なる処理の効率化を図ることができる効果を奏する。
即ち、ある部分制御部２の処理内容が多くて、他の部分制御部２より多くの処理時間を要する状況が発生しても、未処理の部分を複数の部分制御部２に分散することができるため、既に処理が終了している部分制御部２や、その部分制御部２に接続されているデータ転送部３及びデータパス部４を有効に活用することができるようになり、処理の高速化を図ることができる。
なお、この実施の形態１では、部分制御部２１と部分制御部２２を連結するものについて示したが、これは一例に過ぎず、３個以上の部分制御部２を連結するようにしてもよい。
【００３３】
実施の形態２．
図７はこの発明の実施の形態２による信号処理装置の全体制御部１及び部分制御部２の一部を示す構成図であり、図において、図２と同一符号は同一又は相当部分を示すので説明を省略する。
全体制御部１の処理制御部１３は、図２の処理制御部１２と同様の処理を実施するほか、例えば、部分制御部２１と部分制御部２２が単独で処理を実施している段階（連結されていない段階）では、メイン制御部２１と演算メモリ２４間の接続を指示するセレクタ制御信号Ｓ３，Ｓ４を部分制御部２１，２２に出力し、部分制御部２１と部分制御部２２が連結して処理を実施する段階になると、メイン制御部２１と演算メモリ２４間の直接的な接続の解除を指示するセレクタ制御信号Ｓ３，Ｓ４を部分制御部２１，２２に出力する処理を実施する。
【００３４】
部分制御部２１，２２のセレクタ２５は全体制御部１の処理制御部１３から出力されたセレクタ制御信号Ｓ３，Ｓ４がメイン制御部２１と演算メモリ２４間の接続を指示していれば、メイン制御部２１と演算メモリ２４間を接続し、そのセレクタ制御信号Ｓ３，Ｓ４がメイン制御部２１と演算メモリ２４間の直接的な接続の解除を指示していれば、メイン制御部２１と演算メモリ２４間の直接的な接続を解除し、アクセス調停部２６を介して、メイン制御部２１と演算メモリ２４間を接続する処理を実施する。
【００３５】
部分制御部２１のアクセス調停部２６は部分制御部２２のアクセス調停部２とアクセスバス２７で連結されている。
部分制御部２１のアクセス調停部２６は部分制御部２１と部分制御部２２が連結して処理を実施する段階になると、部分制御部２１のメイン制御部２１から、部分制御部２１の演算メモリ２４に対するアクセスと、部分制御部２２のメイン制御部２１から、部分制御部２１の演算メモリ２４に対するアクセスとの競合を調停する処理を実施する。
部分制御部２２のアクセス調停部２６は部分制御部２１と部分制御部２２が連結して処理を実施する段階になると、部分制御部２２のメイン制御部２１から、部分制御部２２の演算メモリ２４に対するアクセスと、部分制御部２１のメイン制御部２１から、部分制御部２２の演算メモリ２４に対するアクセスとの競合を調停する処理を実施する。
【００３６】
次に動作について説明する。
上記実施の形態１では、全体制御部１が、相互に異なる処理命令、あるいは、同一の処理命令を発行した後、複数個の部分制御部２を連結して、単一の処理命令を複数個の部分制御部２に分担させるものについて示したが、単一の処理命令を複数個の部分制御部２に分担させる際、複数個の部分制御部２の演算メモリ２４を連結することで、各部分制御部２に対して、他の部分制御部２の演算メモリ２４に対するアクセスを許可するようにしてもよい。
具体的には、以下の通りである。
【００３７】
全体制御部１の処理制御部１３は、例えば、部分制御部２１と部分制御部２２が単独で処理を実施している段階（連結されていない段階）では、メイン制御部２１と演算メモリ２４間の接続を指示するセレクタ制御信号Ｓ３，Ｓ４を部分制御部２１，２２に出力する。
部分制御部２１，２２のセレクタ２５は、全体制御部１の処理制御部１３から、メイン制御部２１と演算メモリ２４間の接続を指示するセレクタ制御信号Ｓ３，Ｓ４を受けると、メイン制御部２１と演算メモリ２４間を接続する。
この場合、部分制御部２１のメイン制御部２１は、上記実施の形態１と同様に、部分制御部２１の演算メモリ２４に対するアクセスは可能になるが、他の部分制御部２２の演算メモリ２４に対するアクセスは許可されない。
同様に、部分制御部２２のメイン制御部２１は、部分制御部２２の演算メモリ２４に対するアクセスは可能になるが、他の部分制御部２１の演算メモリ２４に対するアクセスは許可されない。
【００３８】
全体制御部１の処理制御部１３は、例えば、部分制御部２１と部分制御部２２が連結して処理を実施する段階になると、メイン制御部２１と演算メモリ２４間の直接的な接続の解除を指示するセレクタ制御信号Ｓ３，Ｓ４を部分制御部２１，２２に出力する。
部分制御部２１，２２のセレクタ２５は、全体制御部１の処理制御部１３から、メイン制御部２１と演算メモリ２４間の直接的な接続の解除を指示するセレクタ制御信号Ｓ３，Ｓ４を受けると、メイン制御部２１と演算メモリ２４間の直接的な接続を解除し、アクセス調停部２６を介して、メイン制御部２１と演算メモリ２４間を接続する。
この場合、部分制御部２１のメイン制御部２１は、部分制御部２１の演算メモリ２４に対するアクセスだけでなく、他の部分制御部２２の演算メモリ２４に対するアクセスも許可される。
同様に、部分制御部２２のメイン制御部２１は、部分制御部２２の演算メモリ２４に対するアクセスだけでなく、他の部分制御部２１の演算メモリ２４に対するアクセスも許可される。
【００３９】
部分制御部２１のメイン制御部２１は、部分制御部２１の演算メモリ２４に対するアクセスを希望する場合、部分制御部２１の演算メモリ２４の選択を示すアクセス選択信号Ｓ５（部分制御部２１の演算メモリ２４内のアドレスを含む）をアクセス調停部２６に出力する。
部分制御部２１のアクセス調停部２６は、部分制御部２１のメイン制御部２１から部分制御部２１の演算メモリ２４の選択を示すアクセス選択信号Ｓ５を受けると、そのメイン制御部２１と演算メモリ２４間を接続することで、部分制御部２１の演算メモリ２４に対するアクセスを許可する。
【００４０】
部分制御部２１のメイン制御部２１は、他の部分制御部２２の演算メモリ２４に対するアクセスを希望する場合、他の部分制御部２２の演算メモリ２４の選択を示すアクセス選択信号Ｓ５（部分制御部２２の演算メモリ２４内のアドレスを含む）をアクセス調停部２６に出力する。
部分制御部２１のアクセス調停部２６は、部分制御部２１のメイン制御部２１から、他の部分制御部２２の演算メモリ２４の選択を示すアクセス選択信号Ｓ５を受けると、他の部分制御部２２のアクセス調停部２６を介して、部分制御部２１のメイン制御部２１と部分制御部２２の演算メモリ２４間を接続することで、他の部分制御部２２の演算メモリ２４に対するアクセスを許可する。
【００４１】
部分制御部２２のメイン制御部２１は、部分制御部２２の演算メモリ２４に対するアクセスを希望する場合、部分制御部２２の演算メモリ２４の選択を示すアクセス選択信号Ｓ６（部分制御部２２の演算メモリ２４内のアドレスを含む）をアクセス調停部２６に出力する。
部分制御部２２のアクセス調停部２６は、部分制御部２２のメイン制御部２１から部分制御部２２の演算メモリ２４の選択を示すアクセス選択信号Ｓ６を受けると、そのメイン制御部２１と演算メモリ２４間を接続することで、部分制御部２２の演算メモリ２４に対するアクセスを許可する。
【００４２】
部分制御部２２のメイン制御部２１は、他の部分制御部２１の演算メモリ２４に対するアクセスを希望する場合、他の部分制御部２１の演算メモリ２４の選択を示すアクセス選択信号Ｓ６（部分制御部２１の演算メモリ２４内のアドレスを含む）をアクセス調停部２６に出力する。
部分制御部２２のアクセス調停部２６は、部分制御部２２のメイン制御部２１から、他の部分制御部２１の演算メモリ２４の選択を示すアクセス選択信号Ｓ６を受けると、他の部分制御部２１のアクセス調停部２６を介して、部分制御部２２のメイン制御部２１と部分制御部２１の演算メモリ２４間を接続することで、他の部分制御部２１の演算メモリ２４に対するアクセスを許可する。
【００４３】
これにより、部分制御部２１，２２のメイン制御部２１は、他の部分制御部２２，２１の演算メモリ２４に対するアクセスが可能になるが、この場合、部分制御部２１の演算メモリ２４に対するアクセスとして、部分制御部２１のメイン制御部２１からのアクセスと、部分制御部２２のメイン制御部２１からのアクセスとが競合することがある。
同様に、部分制御部２２の演算メモリ２４に対するアクセスとして、部分制御部２１のメイン制御部２１からのアクセスと、部分制御部２２のメイン制御部２１からのアクセスとが競合することがある。
【００４４】
これらの競合は、部分制御部２１，２２のアクセス調停部２６が調停する。
即ち、部分制御部２１のアクセス調停部２６は、予め、部分制御部２１のメイン制御部２１からのアクセスと、他の部分制御部２２のメイン制御部２１からのアクセスとの間に優先順位が設定されており、例えば、部分制御部２１のメイン制御部２１からのアクセスの方が、優先順位が高く設定されていれば、部分制御部２１のメイン制御部２１からのアクセスと、他の部分制御部２２のメイン制御部２１からのアクセスとが同時に発生すると、部分制御部２１のメイン制御部２１からのアクセスを優先し、部分制御部２１のメイン制御部２１に対して、部分制御部２１の演算メモリ２４に対するアクセスを許可する。
その後、部分制御部２１のメイン制御部２１からのアクセスが終了すると、他の部分制御部２２のメイン制御部２１に対して、部分制御部２１の演算メモリ２４に対するアクセスを許可する。
【００４５】
逆に、他の部分制御部２２のメイン制御部２１からのアクセスの方が、優先順位が高く設定されていれば、部分制御部２１のメイン制御部２１からのアクセスと、他の部分制御部２２のメイン制御部２１からのアクセスとが同時に発生すると、他の部分制御部２２のメイン制御部２１からのアクセスを優先し、他の部分制御部２２のメイン制御部２１に対して、部分制御部２１の演算メモリ２４に対するアクセスを許可する。
その後、他の部分制御部２２のメイン制御部２１からのアクセスが終了すると、部分制御部２１のメイン制御部２１に対して、部分制御部２１の演算メモリ２４に対するアクセスを許可する。
部分制御部２２のアクセス調停部２６における調停処理は、部分制御部２１のアクセス調停部２６における調停処理と同様であるため説明を省略する。
【００４６】
なお、部分制御部２１の演算メモリ２４に対するアクセスとして、他の部分制御部２２のメイン制御部２１からのアクセスが発生すると同時に、部分制御部２２の演算メモリ２４に対するアクセスとして、他の部分制御部２１のメイン制御部２１からのアクセスが発生しても、アクセスバス２７が２本のバスで構成されているので、これらのアクセスを同時に許可することが可能である。
【００４７】
以上で明らかなように、この実施の形態２によれば、単一の処理命令を複数個の部分制御部２に分担させる際、複数個の部分制御部２の演算メモリ２４を連結することで、各部分制御部２に対して、他の部分制御部２の演算メモリ２４に対するアクセスを許可するように構成したので、複数個の部分制御部２の演算メモリ２４を１つの演算メモリとして使用することが可能となる。そのため、他の部分制御部２の演算メモリ２４に格納されているデータ（例えば、処理命令の実行に必要なデータや単一演算の演算結果など）を、自部分制御部２内の演算メモリ２４にコピーするなどの処理が不要になり（データ転送処理時間のオーバヘッドがなくなる）、処理の高速化を図ることができる効果を奏する。
【００４８】
この実施の形態２では、全体制御部１によって複数個の部分制御部２が連結されて処理が実行されるため、全体制御部１から分担命令が出力された部分制御部２に接続されているデータ転送部３及びデータパス部４の動作を止めることも可能である。データ転送部３及びデータパス部４の動作を止められる場合には、言うまでもないが、消費電力を削減することができる。
【００４９】
実施の形態３．
図８はこの発明の実施の形態３による信号処理装置の全体制御部１の内部を示す構成図であり、図において、図２と同一符号は同一又は相当部分を示すので説明を省略する。
全体制御部１の連結判定部１４は、図２の連結判定部１１と同様に、どの部分制御部２を連結させるかを判定する処理を実施する。
処理時間メモリ１４ａは部分制御部２１〜２Ｎのメイン命令メモリ２１ｂに格納されているメインプログラムを構成している全ての単位命令（例えば、命令Ｆ、命令Ｇ、・・・、命令Ｖ）を実行したときの単位命令当りの処理時間（例えば、命令Ｆの処理時間、命令Ｇの処理時間、・・・、命令Ｖの処理時間）を格納している記録媒体である。
【００５０】
処理時間算出部１４ｂは処理制御部１２から部分制御部２１〜２Ｎに対して相互に異なる処理命令が発行される際、あるいは、少なくとも１個以上の部分制御部２に対して同一の処理命令が発行される際、処理時間メモリ１４ａにより格納されている単位命令当りの処理時間を参照して、処理制御部１２から処理命令が発行される各部分制御部２の処理時間を算出する処理を実施する。
【００５１】
連結制御部１４ｃは処理時間算出部１４ｂの算出結果を参照して、先に処理が終了する部分制御部２と、多くの処理時間を要する部分制御部２（その他の部分制御部）とを判別して、多くの処理時間を要する部分制御部２における未処理の部分の一部を、既に処理が終了している部分制御部２に対して分担させる処理を実施する。
【００５２】
次に動作について説明する。
全体制御部１の連結判定部１２の代わりに、全体制御部１の連結判定部１４が実装されている点以外は、上記実施の形態１，２と同様であるため、ここでは、連結判定部１４の処理内容のみを説明する。
【００５３】
信号処理装置の初期動作時において、部分制御部２１〜２Ｎのメイン命令メモリ２１ｂに格納されているメインプログラムを一度実行することで、そのメインプログラムを構成している単位命令（例えば、命令Ｆ、命令Ｇ、・・・、命令Ｖ）毎の処理時間（例えば、命令Ｆの処理時間、命令Ｇの処理時間、・・・、命令Ｖの処理時間）を計測し、単位命令毎の処理時間を連結判定部１４の処理時間メモリ１４ａに格納する。
【００５４】
連結判定部１４の処理時間算出部１４ｂは、上記実施の形態１と同様に、処理制御部１２から部分制御部２１〜２Ｎに対して相互に異なる処理命令が発行される際、あるいは、少なくとも１個以上の部分制御部２に対して同一の処理命令が発行される際、処理時間メモリ１４ａにより格納されている単位命令当りの処理時間を参照して、処理制御部１２から処理命令が発行される各部分制御部２の処理時間を算出する。
例えば、ある部分制御部２に対して発行される処理命令が、命令Ｆ＋命令Ｇの実行を指示する命令であれば、当該部分制御部２の処理時間として、命令Ｆの処理時間と命令Ｇの処理時間の合計を算出する。
【００５５】
連結判定部１４の連結制御部１４ｃは、処理時間算出部１４ｂが処理制御部１２から処理命令が発行される各部分制御部２の処理時間を算出すると、各部分制御部２の処理時間を比較して、先の処理が終了する部分制御部２と、多くの処理時間を要する部分制御部２とを判別する。
連結制御部１４ｃは、先に処理が終了する部分制御部２と、多くの処理時間を要する部分制御部２とを判別すると、先に処理が終了する部分制御部２の処理終了後に、多くの処理時間を要する部分制御部２における未処理の部分の一部を、処理を終了している部分制御部２に対して分担させる処理を行う。
分担させる処理自体は、上記実施の形態１，２における図３の連結制御部１１ｂの処理内容と同様であるため説明を省略する。
【００５６】
以上で明らかなように、この実施の形態３によれば、処理制御部１２から部分制御部２１〜２Ｎに対して相互に異なる処理命令が発行される際、あるいは、少なくとも１個以上の部分制御部２に対して同一の処理命令が発行される際、処理時間算出部１４ｂが、処理時間メモリ１４ａにより格納されている単位命令当りの処理時間を参照して、処理制御部１２から処理命令が発行される各部分制御部２の処理時間を算出し、連結制御部１４ｃが、処理時間算出部１４ｂの算出結果を参照して、先に処理が終了する部分制御部２と、多くの処理時間を要する部分制御部２とを判別して、多くの処理時間を要する部分制御部２における未処理の部分の一部を、既に処理が終了している部分制御部２に対して分担させるように構成したので、仮に、製造バラつきや低電圧バラつきの影響で、部分制御部２１〜２Ｎの処理時間に差異を生じる場合でも、各部分制御部２の処理を他の部分制御部２が分担して処理することで、その差異の影響を抑制することができるようになり、その結果、チップの歩留まりを高めることができる効果を奏する。
【符号の説明】
【００５７】
１  全体制御部、２１〜２Ｎ  部分制御部、３１〜３Ｎ  データ転送部、４１〜４Ｎ  データパス部、５１〜５Ｎ  データメモリ、６  バス、１１，１４  連結判定部、１１ａ  状態判定部、１１ｂ  連結制御部、１２，１３  処理制御部、１４ａ  処理時間メモリ、１４ｂ  処理時間算出部、１４ｃ  連結制御部、２１  メイン制御部、２１ａ  制御部、２１ｂ  メイン命令メモリ、２１ｃ  メインプログラムカウンタ、２２  データ転送制御部、２３  データパス制御部、２４  演算メモリ、２５  セレクタ、２６  アクセス調停部、２７  アクセスバス。
【図１】
2011081658.tif 000003
【図２】
2011081658.tif 000004
【図３】
2011081658.tif 000005
【図４】
2011081658.tif 000006
【図５】
2011081658.tif 000007
【図６】
2011081658.tif 000008
【図７】
2011081658.tif 000009
【図８】
2011081658.tif 000010