(57)【特許請求の範囲】
【請求項１】
処理対象データ及び処理結果データを格納するデータメモリと、
処理命令に従って単一演算を実行して、前記処理対象データに対する演算制御命令及びデータ転送制御命令を生成するメイン制御部、前記単一演算に用いるデータ及び演算結果データを格納する演算メモリ、前記演算制御命令に基づいて前記処理対象データに対する演算命令を生成するデータパス制御部、及び前記データ転送制御命令に基づいてデータ転送命令を生成するデータ転送制御部を有する部分制御部と、
前記演算命令に基づき、前記処理対象データに対する演算を実行するデータパス部と、  前記データ転送制御命令に基づき、前記データメモリ、前記部分制御部及び前記データパス部間のデータ転送を行うデータ転送部と、
前記データメモリ、前記部分制御部、前記データパス部及び前記データ転送部を互いに接続するバスと、
前記部分制御部、前記データパス部及び前記データ転送部からなる並列ユニットを複数並列に接続して、各並列ユニットに互いに異なる処理命令を発行するか、又は複数の並列ユニット単位に同一の処理命令を発行するかして、各並列ユニットに並列に処理を実行させる全体制御部とを備え、
前記部分制御部は、自メイン制御部が生成した演算制御命令及びデータ転送制御命令を、他の部分制御部内のデータパス制御部及びデータ転送制御部へ転送するメイン命令伝達部を有し、
前記全体制御部は、各並列ユニット内の各部分制御部の処理性能情報に基づいて、同一の処理命令を実行させる複数の並列ユニットのうちから１つの並列ユニット内の部分制御部を選択し、各並列ユニット内のメイン命令伝達部を制御して、当該部分制御部のメイン制御部が生成した演算制御命令及びデータ転送制御命令を、他の各並列ユニット内の各部分制御部内のデータパス制御部及びデータ転送制御部へ転送させる選択部を有することを特徴とする並列信号処理装置。
【請求項２】
前記部分制御部、前記データパス部及び前記データ転送部からなる並列ユニットそれぞれについて、各並列ユニットに対して互いに異なる処理命令を格納しておくか、又は複数ユニット単位に同一の処理命令を格納しておくかして、各並列ユニットに並列に処理を実行させる命令メモリを備えることを特徴とする請求項１記載の並列信号処理装置。
【請求項３】
前記部分制御部は、データ転送制御部の状態情報を他の部分制御部へ通知する状態管理部を有し、さらに、当該他の部分制御部内の状態管理部から通知される状態情報を取得することを特徴とする請求項２記載の並列信号処理装置。
【請求項４】
処理対象データ及び処理結果データを格納するデータメモリと、
処理命令に従って単一演算を実行して、前記処理対象データに対する演算制御命令及びデータ転送制御命令を生成するメイン制御部、前記単一演算に用いるデータ及び演算結果データを格納する演算メモリ、前記演算制御命令に基づいて前記処理対象データに対する演算命令を生成するデータパス制御部、及び前記データ転送制御命令に基づいてデータ転送命令を生成するデータ転送制御部を有する部分制御部と、
前記演算命令に基づき、前記処理対象データに対する演算を実行するデータパス部と、  前記データ転送制御命令に基づき、前記データメモリ、前記部分制御部及び前記データパス部間のデータ転送を行うデータ転送部と、
前記データメモリ、前記部分制御部、前記データパス部及び前記データ転送部を互いに接続するバスと、
前記部分制御部、前記データパス部及び前記データ転送部からなる並列ユニットを複数並列に接続して、各並列ユニットに互いに異なる処理命令を発行するか、又は複数の並列ユニット単位に同一の処理命令を発行するかして、各並列ユニットに並列に処理を実行させる全体制御部とを備え、
前記部分制御部、前記データパス部及び前記データ転送部からなる並列ユニットそれぞれについて、各並列ユニットに対して互いに異なる処理命令を格納しておくか、又は複数の並列ユニット単位に同一の処理命令を格納しておくかして、各並列ユニットに並列に処理を実行させる命令メモリを備え、
前記部分制御部は、自データ転送制御部の状態情報を他の部分制御部へ通知する状態管理部を有し、さらに、当該他の部分制御部内の状態管理部から通知される状態情報を取得することを特徴とする並列信号処理装置。
【請求項５】
処理対象データ及び処理結果データを格納するデータメモリと、
処理命令に従って単一演算を実行して、前記処理対象データに対する演算制御命令及びデータ転送制御命令を生成するメイン制御部、前記単一演算に用いるデータ及び演算結果データを格納する演算メモリ、前記演算制御命令に基づいて前記処理対象データに対する演算命令を生成するデータパス制御部、及び前記データ転送制御命令に基づいてデータ転送命令を生成するデータ転送制御部を有する部分制御部と、
前記演算命令に基づき、前記処理対象データに対する演算を実行するデータパス部と、  前記データ転送制御命令に基づき、前記データメモリ、前記部分制御部及び前記データパス部間のデータ転送を行うデータ転送部と、
前記データメモリ、前記部分制御部、前記データパス部及び前記データ転送部を互いに接続するバスと、
前記部分制御部、前記データパス部及び前記データ転送部からなる並列ユニットそれぞれについて、各並列ユニットに対して互いに異なる処理命令を格納しておくか、又は複数の並列ユニット単位に同一の処理命令を格納しておくかして、各並列ユニットに並列に処理を実行させる命令メモリとを備え、
前記部分制御部は、自データ転送制御部の状態情報を他の部分制御部へ通知する状態管理部を有し、さらに、当該他の部分制御部内の状態管理部から通知される状態情報を取得することを特徴とする並列信号処理装置。
【請求項６】
前記部分制御部は、自データ転送制御部の状態情報と他の部分制御部内の状態管理部から通知される状態情報とに基づいて、自メイン制御部が生成したデータ転送制御命令を他の部分制御部内のデータ転送制御部へ転送する転送命令調停部を有することを特徴とする請求項３乃至５のいずれか１項に記載の並列信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ処理装置を複数個並列に接続し、同一命令に基づいて並列に処理を実行する並列信号処理装置に関するものである。
【背景技術】
【０００２】
近年、画像データ等の信号処理を行う信号処理装置として、プロセッサによる並列処理と、専用ハードウェアによる処理とを組み合わせた構成が用いられてきた。例えば特許文献１に開示された画像処理装置は、従来のＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）型並列データ処理装置と専用ハードウェアとを組み合わせた構成であり、プロセッサにより、ＳＩＭＤ型並列データ処理装置に動き予測、ＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）、及びＩＤＣＴ（Ｉｎｖｅｒｓｅ  ＤＣＴ）処理を実行させ、かつ、ＶＬＣ（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｄｅｃｏｄｅ）処理を行う専用ハードウェアにＶＬＣ処理を実行させ、さらに、これらＳＩＭＤ型並列データ処理装置と専用ハードウェアを並列で動作させる。
【０００３】
このような構成にすれば、高い処理性能を必要とするＶＬＣ処理を専用ハードウェアで実行することにより、高い処理能力を達成することができる。また、ＳＩＭＤ型並列データ処理装置を備えることにより、多様な処理に対応することができる。さらに、プロセッサがこれらを並列に動作させることにより、処理速度を向上させることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−３０９３８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の画像処理装置は以上のように構成されているので、単一のプロセッサが、ＳＩＭＤ型並列データ処理装置及び専用ハードウェアの処理制御、演算器による単一演算（加算、減算、乗算等）の制御、並びにデータ転送の制御を行うこととなる。従って、画像処理装置全体の処理時間がプロセッサの処理速度に律速されるという課題があった。
また、製造ばらつき等の影響により、プロセッサ、ＳＩＭＤ型並列データ処理装置、専用ハードウェア間に性能差が生じた場合、画像処理装置全体の性能が劣化する、又は画像処理装置全体が動作せず歩留まりが劣化するという課題もあった。
さらに、画像処理装置全体が一斉に動作するため、消費電力が大きいという課題もあった。
【０００６】
この発明は、上記のような課題を解決するためになされたもので、データパス部への演算命令、データ転送部へのデータ転送命令、比較演算等の単一演算を一斉並列動作で実行することにより、処理を高速化した並列信号処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係る並列信号処理装置は、処理対象データ及び処理結果データを格納するデータメモリと、処理命令に従って単一演算を実行して、処理対象データに対する演算制御命令及びデータ転送制御命令を生成するメイン制御部、単一演算に用いるデータ及び演算結果データを格納する演算メモリ、演算制御命令に基づいて処理対象データに対する演算命令を生成するデータパス制御部、及びデータ転送制御命令に基づいてデータ転送命令を生成するデータ転送制御部を有する部分制御部と、演算命令に基づき、処理対象データに対する演算を実行するデータパス部と、データ転送制御命令に基づき、データメモリ、部分制御部及びデータパス部間のデータ転送を行うデータ転送部と、データメモリ、部分制御部、データパス部及びデータ転送部を互いに接続するバスと、部分制御部、データパス部及びデータ転送部からなる並列ユニットを複数並列に接続して、各並列ユニットに互いに異なる処理命令を発行するか、又は複数の並列ユニット単位に同一の処理命令を発行するかして、各並列ユニットに並列に処理を実行させる全体制御部とを備え、部分制御部は、自メイン制御部が生成した演算制御命令及びデータ転送制御命令を、他の部分制御部内のデータパス制御部及びデータ転送制御部へ転送するメイン命令伝達部を有し、全体制御部は、各並列ユニット内の各部分制御部の処理性能情報に基づいて、同一の処理命令を実行させる複数の並列ユニットのうちから１つの並列ユニット内の部分制御部を選択し、各並列ユニット内のメイン命令伝達部を制御して、当該部分制御部のメイン制御部が生成した演算制御命令及びデータ転送制御命令を、他の各並列ユニット内の各部分制御部内のデータパス制御部及びデータ転送制御部へ転送させる選択部を有することを特徴とするものである。
【発明の効果】
【０００９】
この発明によれば、データパス部への演算命令、データ転送部へのデータ転送命令、比較演算等の単一演算を一斉並列動作で実行することにより、処理を高速化した並列信号処理装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】この発明の実施の形態１に係る並列信号処理装置の構成を示すブロック図である。
【図２】図１に示す全体制御部１の内部構成を示すブロック図である。
【図３】図１に示す並列信号処理装置の部分制御部１０の内部構成を説明するブロック図である。
【図４】図３に示すメイン命令伝達部１５ｂの内部構成を示すブロック図である。
【図５】この発明の実施の形態２に係る並列信号処理装置の全体制御部１の内部構成を示すブロック図である。
【図６】この発明の実施の形態３に係る並列信号処理装置の構成を示すブロック図である。
【図７】図６に示す転送命令調停部１８ａの内部構成を示すブロック図である。
【図８】実施の形態３に係る並列信号処理装置において、転送命令調停部１８ａ〜１８ｄの接続例を図８（ａ）に示し、転送例を図８（ｂ）に示す。
【００１１】
実施の形態１．
図１は、この発明の実施の形態１に係る並列信号処理装置の構成を示すブロック図である。図１に示す並列信号処理装置は、１つの全体制御部１と、複数個（＃１〜＃ｎ）の部分制御部１０、データパス部２０、データ転送部３０及びデータメモリ４０と、１つのバス５０とから構成されている。なお、部分制御部１０、データパス部２０及びデータ転送部３０が並列ユニットを構成し、図１では＃１〜＃ｎの並列ユニットが並列に全体制御部１に接続されている。
【００１２】
全体制御部１は、例えば画像符号化・復号処理の制御を行い、各部分制御部１０に対して例えば画像符号化処理の動きベクトル算出のような単位処理を実行させる命令を発行する。部分制御部１０は、全体制御部１が発行する単位処理の命令に従って、パラメータ算出及び比較演算の単一演算（加算、減算、乗算、除算等）を実行し、データパス部２０に単位処理を実行させるための演算命令を発行すると共に、データ転送部３０に単位処理に必要なデータを転送させるためのデータ転送命令を発行する。データパス部２０は、部分制御部１０が発行した演算命令に従って、転送されたデータを用いた演算を実行する。データ転送部３０は、部分制御部１０が発行したデータ転送命令に従って、部分制御部１０、データパス部２０、データ転送部３０及びデータメモリ４０間でデータを転送する。データメモリ４０は、単位処理の対象となるデータと単位処理の結果データとを格納する。バス５０は、部分制御部１０、データパス部２０、データ転送部３０及びデータメモリ４０の間を相互に接続して、データ転送部３０がデータを転送させるために用いる。例えばデータメモリ４０が画像データを格納し、部分制御部１０がその画像データに対して単位処理を実行して動きベクトルを算出し、動きベクトルを結果データとして再びデータメモリ４０に格納する。
【００１３】
図２は、図１に示す全体制御部１の構成を示すブロック図である。全体制御部１は、接続されている部分制御部１０へ単位処理命令（信号）Ｓ１を発行すると共に各部分制御部１０の並列処理を制御するための伝達制御命令（信号）Ｓ２を発行する命令発行部１０１と、全体処理の処理順序、処理内容及び単位処理を行う部分制御部１０を指定した全体制御プログラムを格納しているプログラムメモリ１０２とから構成される。
なお、全体制御プログラムは、外部から設定してもよいし、全体制御部１自らがロードしてもよい。また、全体制御プログラムは、全体制御部１に接続された部分制御部１０それぞれに異なる単位処理を実行させるようにしてもよいし、全ての又は複数の部分制御部１０に同じ単位処理を実行させるようにしてもよい。
【００１４】
命令発行部１０１は、プログラムメモリ１０２から全体制御プログラムを読み出し、その処理順序に従って、単位処理実行対象に指定されている部分制御部１０のうちから任意の１つの部分制御部１０を選択して単位処理命令Ｓ１を発行する。また、命令発行部１０１は、単位処理命令Ｓ１が発行された部分制御部１０が生成する演算命令とデータ転送命令とを他の単位処理実行対象の部分制御部１０に伝達指示するための伝達制御命令Ｓ２を、単位処理実行対象の全ての部分制御部１０に対して発行する。
【００１５】
図３は、図１に示す部分制御部１０の構成を示すブロック図である。部分制御部１０ａは、データパス制御命令Ｓ２０ａとデータ転送制御命令Ｓ３０ａを発行するメイン制御部１１ａ、データパス部２０ａを制御するデータパス制御部１２ａ、データ転送部３０ａを制御するデータ転送制御部１３ａ、メイン制御部１１ａの演算に必要なデータを格納する演算メモリ１４ａ、及び自他のメイン制御部１１ａ〜１１ｃが発行したデータパス制御命令Ｓ２０ａ〜Ｓ２０ｃとデータ転送制御命令Ｓ３０ａ〜Ｓ３０ｃから所定の命令を選択するメイン命令伝達部１５ａから構成される。部分制御部１０ｂ，１０ｃの各構成も部分制御部１０ａと同一である。
【００１６】
図３では、３つの部分制御部１０ａ〜１０ｃが並列に接続されている構成を例に説明する。例えば、部分制御部１０ａ〜１０ｃに同一の単位処理を実行させる場合、そのうちの１つの部分制御部１０ｂに対して単位処理命令Ｓ１が発行される。また、この部分制御部１０ｂが発行する命令に従って他の部分制御部１０ａ，１０ｃに接続されたデータパス部２０ａ，２０ｃ及びデータ転送部３０ａ，３０ｃが同一の単位処理を実行できるように、部分制御部１０ｂの発行する命令を部分制御部１０ａ，１０ｃへ伝達するための伝達制御命令Ｓ２が、部分制御部１０ａ〜１０ｃにそれぞれ発行される。
【００１７】
単位処理命令Ｓ１が発行されたメイン制御部１１ｂは、その単位処理命令Ｓ１に従って、演算メモリ１４ｂのデータを用いて単位処理に必要な比較演算及びパラメータ算出等の単一演算を実行し、単位処理で実行する演算とその実行順序をデータパス制御部１２ｂに指示するデータパス制御命令（信号）Ｓ２０ｂを発行すると共に、単位処理で必要なデータと演算結果の転送順序、データサイズ、及び転送先／転送元をデータ転送制御部１３ｂに指示するデータ転送制御命令Ｓ３０ｂを発行する。
【００１８】
メイン命令伝達部１５ｂは、自メイン制御部１１ｂが発行したデータパス制御命令Ｓ２０ｂ及びデータ転送制御命令Ｓ３０ｂか、他メイン制御部１１ａ又は１１ｃが発行したデータパス制御命令Ｓ２０ａ及びデータ転送制御命令Ｓ３０ａか、又はデータパス制御命令Ｓ２０ｃ及びデータ転送制御命令Ｓ３０ｃかを選択して、共通データパス制御命令Ｓ２１及び共通データ転送制御命令Ｓ３１として出力する。メイン命令伝達部１５ｂにおいて自他どちらのメイン制御部が発行した命令を選択するかは、全体制御部１から入力される伝達制御命令Ｓ２に従う。よって、図３に示す各メイン命令伝達部１５ａ〜１５ｃは、部分制御部１０ｂが発行したデータパス制御命令Ｓ２０ｂ及びデータ転送制御命令Ｓ３０ｂを選択する。
【００１９】
図４は、図３に示すメイン命令伝達部１５ａ〜１５ｃに共通の構成を示すブロック図であり、部分制御部１０ｂ内部のメイン命令伝達部１５ｂを例にして説明する。メイン命令伝達部１５ｂは、４つの伝達セレクタ１５１〜１５４と、２つの発行命令セレクタ１５５，１５６とから構成される。各伝達セレクタ１５１〜１５４は２ｔｏ１セレクタであり、各発行命令セレクタ１５５，１５６は３ｔｏ１セレクタである。また、各セレクタ１５１〜１５６には、部分制御部１０ｂのメイン制御部１１ｂから発行されたデータパス制御命令Ｓ２０ｂとデータ転送制御命令Ｓ３０ｂを選択して伝達するよう指示した伝達制御命令Ｓ２が入力される。従って、メイン命令伝達部１５ｂは、自メイン制御部１１ｂから入力されるデータパス制御命令Ｓ２０ｂとデータ転送制御命令Ｓ３０ｂを他メイン制御部１１ａ，１１ｃに伝達すると共に、これらデータパス制御命令Ｓ２０ｂとデータ転送制御命令Ｓ３０ｂを共通データパス制御命令Ｓ２１と共通データ転送制御命令Ｓ３１として自データパス制御部１２ｂと自データ転送制御部１３ｂへ発行する。
【００２０】
単位処理命令Ｓ１が発行された部分制御部１０ｂ内部のデータパス制御部１２ｂは、メイン命令伝達部１５ｂによって選択された共通データパス制御命令（信号）Ｓ２１（即ちデータパス制御命令Ｓ２０ｂ）に含まれる単位処理で実行する演算とその実行順序の情報に従って、演算命令（信号）Ｓ２２ｂを生成してデータパス部２０ｂへ発行する。
また、データ転送制御部１３ｂも、メイン命令伝達部１５ｂによって選択された共通データ転送制御命令（信号）Ｓ３１（即ちデータ転送制御命令Ｓ３０ｂ）に含まれる単位処理で必要なデータと演算結果の転送順序、データサイズ、及び転送先／転送元の情報に従って、データ転送命令（信号）Ｓ３２ｂを生成してデータ転送部３０ｂへ発行する。
【００２１】
単位処理実行対象であって単位処理命令Ｓ１が発行されていない部分制御部１０ａにおいて、自メイン命令伝達部１５ａは、他メイン命令伝達部１５ｂから伝達されたデータパス制御命令Ｓ２０ｂとデータ転送制御命令Ｓ３０ｂを選択して、共通データパス制御命令Ｓ２１と共通データ転送制御命令Ｓ３１としてデータパス制御部１２ａとデータ転送制御部１３ａへ発行する。同様に、単位処理実行対象であって単位処理命令Ｓ１が発行されていない部分制御部１０ｃのメイン命令伝達部１５ｃも、他メイン命令伝達部１５ｂから伝達されたデータパス制御命令Ｓ２０ｂとデータ転送制御命令Ｓ３０ｂを選択して、共通データパス制御命令Ｓ２１と共通データ転送制御命令Ｓ３１としてデータパス制御部１２ｃとデータ転送制御部１３ｃへ発行する。
【００２２】
単位処理実行対象であって単位処理命令Ｓ１が発行された部分制御部１０ｂに接続されているデータパス部２０ｂ及びデータ転送部３０ｂと、単位処理実行対象であって単位処理命令Ｓ１が発行されていない部分制御部１０ａ，１０ｃに接続されているデータパス部２０ａ，２０ｃ及びデータ転送部３０ａ，３０ｃとが、共通データパス制御命令Ｓ２１に基づく演算命令Ｓ２２ａ〜２２ｃと共通データ転送制御命令Ｓ３１に基づくデータ転送命令Ｓ３２ａ〜Ｓ３２ｃに従って、同一の単位処理をそれぞれ実行する。
そのため、単位処理実行対象の全ての部分制御部１０ａ〜１０ｃが、単位処理命令Ｓ１が発行された部分制御部１０ｂ内部のメイン制御部１１ｂを共有することができる。また、単位処理命令Ｓ１が発行されなかった部分制御部１０ａ，１０ｃのメイン制御部１１ａ，１１ｃは不要となるのでクロック供給を停止するように構成してもよく、その分の消費電力を削減することができる。
【００２３】
なお、クロック供給部は、並列信号処理装置全体で１つ備える構成であってもよいし、あるいは並列ユニットで１つ備える構成であってもよい。
並列信号処理装置全体で１つのクロック供給部を備える構成の場合、例えば、並列信号処理装置内部にクロック供給部を設置して、全体制御部１がこのクロック供給部を制御してクロック供給部から各並列ユニットへクロック供給／停止を行うか、あるいは全体制御部１の内部にクロック供給部を設置して、全体制御部１から各並列ユニットへクロック供給／停止を行う。
並列ユニットで１つのクロック供給部を備え、並列信号処理装置全体では複数のクロック供給部を備える構成の場合、例えば、全体制御部１が各クロック供給部を制御して各クロック供給部から各並列ユニットへクロック供給／停止を行う。
【００２４】
以上より、実施の形態１によれば、処理対象データ及び処理結果データを格納するデータメモリ４０と、単位処理命令Ｓ１に従って単一演算を実行して、処理対象データに対するデータパス制御命令Ｓ２０及びデータ転送制御命令Ｓ３０を生成するメイン制御部１１と、単一演算に用いるデータ及び演算結果データを格納する演算メモリ１４と、データパス制御命令Ｓ２０に基づいて処理対象データに対する演算命令Ｓ２２を生成するデータパス制御部１２と、データ転送制御命令Ｓ３０に基づいてデータ転送命令Ｓ３２を生成するデータ転送制御部１３とを有する部分制御部１０と、演算命令Ｓ２２に基づき処理対象データに対する演算を実行するデータパス部２０と、データ転送命令Ｓ３２に基づきデータメモリ４０、部分制御部１０及びデータパス部２０間のデータ転送を行うデータ転送部３０と、データメモリ４０、部分制御部１０、データパス部２０及びデータ転送部３０を互いに接続するバス５０と、部分制御部１０、データパス部２０及びデータ転送部３０からなる並列ユニットを複数並列に接続して、各並列ユニットに互いに異なる単位処理命令Ｓ１を発行するか、又は複数ユニット単位に同一の単位処理命令Ｓ１を発行するかして、各並列ユニットに並列に処理を実行させる全体制御部１とを備えるように構成した。このため、データパス部２０への演算命令、データ転送部３０へのデータ転送命令及び比較演算等の単一演算をデータパス制御部１２、データ転送制御部１３及びメイン制御部１１において一斉並列動作で実行することにより、処理を高速化した並列信号処理装置を提供することができる。
【００２５】
また、部分制御部１０は、自メイン制御部１１が生成したデータパス制御命令Ｓ２０及びデータ転送制御命令Ｓ３０を、他の部分制御部１０内のデータパス制御部１２及びデータ転送制御部１３へ転送するメイン命令伝達部１５を有し、全体制御部１の命令発行部１０１が伝達制御命令Ｓ２によって各並列ユニット内のメイン命令伝達部１５を制御して、同一の単位処理命令Ｓ１を実行させる複数の並列ユニットのうちの任意の並列ユニット内の部分制御部１０のメイン制御部１１が生成したデータパス制御命令Ｓ２０及びデータ転送制御命令Ｓ３０を、他の各並列ユニット内の各部分制御部１０内のデータパス制御部１２及びデータ転送制御部１３へ転送させるように構成した。このため、メイン制御部１１を、自他含めた複数のデータパス制御部１２及びデータ転送制御部１３で共有できる。さらに、共有している間、使用していないメイン制御部１１へのクロック供給を停止すれば、消費電力を削減できる。
【００２６】
実施の形態２．
図５は、この発明の実施の形態２に係る全体制御部１の構成を示すブロック図である。全体制御部１は、図５に示すように命令発行部１０１、選択部１０３及び処理性能メモリ１０４から構成される。全体制御部１に接続されている＃１〜＃ｎの部分制御部１０の処理性能は、互いに全く同一とは限らず、製造ばらつき又は低電圧ばらつきに起因して処理時間がばらついたり、動作しないものがあったりする。そこで、全体制御部１に接続された全ての部分制御部１０について、動作有無を含めた、単位命令当たりの処理時間を示す処理性能情報を、処理性能メモリ１０４に格納する。この処理性能情報は、全体制御部１が並列信号処理装置の初期動作時に命令を一度実行して、各部分制御部１０の処理性能を計測することで作成される。
【００２７】
選択部１０３は、処理性能メモリ１０４から各部分制御部１０の処理性能情報を読み出し、処理性能と単位処理の処理負荷とを比較して、単位処理命令Ｓ１を発行する１つの部分制御部１０を決定して単位処理命令Ｓ１を発行すると共に、単位処理実行対象の部分制御部１０を選択して命令発行部１０１に通知する。このとき、選択部１０３は、動作しないメイン制御部１１を有する部分制御部１０を、単位処理実行対象には選択しても、単位処理命令Ｓ１発行対象からは除外する。これによって、メイン制御部１１が動作しない部分制御部１０も、単位処理命令Ｓ１が発行された部分制御部１０のメイン制御部１１を共有して単位処理を実行できることになる。
【００２８】
命令発行部１０１は、選択部１０３が選択した単位処理実行対象の全ての部分制御部１０に対して伝達制御命令Ｓ２を発行する。
【００２９】
本実施の形態２に係る並列信号処理装置の構成は、図５に示す全体制御部１以外、上記実施の形態１で説明した並列信号処理装置の構成と同一であるので説明を省略する。
【００３０】
以上より、実施の形態２によれば、各並列ユニット内の各部分制御部１０の処理性能情報を格納する処理性能メモリ１０４と、処理性能メモリ１０４が格納する処理性能情報に基づいて、同一の単位処理命令Ｓ１を実行させる複数の並列ユニットのうちから１つの並列ユニット内の部分制御部１０を選択し、当該部分制御部１０のメイン制御部１１が生成したデータパス制御命令Ｓ２０及びデータ転送制御命令Ｓ３０を、他の各並列ユニット内の各部分制御部１０内のデータパス制御部１２及びデータ転送制御部１３へ転送させる選択部１０３とを有するように構成した。このため、上記実施の形態１の効果に加えて、部分制御部１０の製造ばらつき又は低電圧ばらつきで処理性能に差が生じる場合であっても、部分制御部１０の処理性能に見合った単位処理命令Ｓ１を発行できるため、ばらつきの影響を低減できる。また、動作しないメイン制御部１１が存在する場合でも、他の部分制御部１０のメイン制御部１１を共有することで、動作しないメイン制御部１１のデータパス制御部１２及びデータ転送制御部１３も処理を実行できるため、チップの歩留まりが向上する。
【００３１】
実施の形態３．
図６は、この発明の実施の形態３に係る並列信号処理装置の構成を示すブロック図であり、図１又は図３と同一又は相当の部分については同一の符号を付し説明を省略する。
本実施の形態３の並列信号処理装置は、部分制御部１０、データパス部２０及びデータ転送部３０を１組とする並列ユニット６０が、複数、バス５０に並列に接続される構成である。図６の例では、並列ユニット６０ａの内部に部分制御部１０ａ、データパス部２０ａ及びデータ転送部３０ａが配置され、並列ユニット６０ｂの内部に部分制御部１０ｂ、データパス部２０ｂ及びデータ転送部３０ｂが配置されている。データメモリ４０は、各並列ユニット６０ａ，６０ｂに１つずつ配置してもよいし、全並列ユニット６０ａ，６０ｂに１つ配置して共有してもよい。なお、全体制御部１は用いない。
【００３２】
以下では、並列ユニット６０ａの構成を例に説明する。
部分制御部１０ａは、図３に示したメイン制御部１１ａ、データパス制御部１２ａ、データ転送制御部１３ａ及び演算メモリ１４ａに加え、新たに、図６に示す命令メモリ１６ａ、状態管理部１７ａ及び転送命令調停部１８ａを備える。命令メモリ１６ａには、同一並列ユニット６０ａ内の部分制御部１０ａ、データパス部２０ａ及びデータ転送部３０ａで実行する処理命令が格納されている。そして、メイン制御部１１ａは、この命令メモリ１６ａに格納されている処理命令に従って、単一演算を実行して、データパス制御命令Ｓ２０ａ及びデータ転送制御命令Ｓ３０ａを発行する。
また、メイン制御部１１ａは、データ転送制御命令Ｓ３０ａと共に発行先指定命令（信号）Ｓ４０ａも発行する。この詳細は後述する。
【００３３】
データパス制御部１２ａは、メイン制御部１１ａから発行されたデータパス制御命令Ｓ２０ａに従って、データパス部２０ａへ演算命令Ｓ２２ａを発行する。
データ転送制御部１３ａは、転送命令調停部１８ａから入力される調停済データ転送制御命令（信号）Ｓ４２ａに従って、データ転送部３０ａへデータ転送命令Ｓ３２ａを発行する。
【００３４】
状態管理部１７ａは、各並列ユニット６０ａ，６０ｂの各データ転送制御部１３ａ，１３ｂが動作中か待機中かを示す状態情報と、各データ転送制御部１３ａ，１３ｂのアドレス情報とを格納し、さらに、自他の状態情報とアドレス情報を自他の並列ユニット６０ａ，６０ｂのメイン制御部１１ａ，１１ｂへそれぞれ通知する。
自並列ユニット６０ａの状態管理部１７ａが格納している、データ転送制御部１３ａについての状態情報の更新は、自データ転送制御部１３ａがデータ転送制御命令Ｓ３０ａから動作状態となるか待機状態となるかを判定して行えばよい。他方、状態管理部１７ａが格納している、他の並列ユニット６０ｂの他データ転送制御部１３ｂについての状態情報の更新は、他状態管理部１７ｂから通知を受けた自メイン制御部１１ａが行う。
なお、図６の例では、部分制御部１０ａが内部に状態管理部１７ａを備える構成としたが、部分制御部１０ａの外に設置する構成にしてもよい。
【００３５】
ここで、発行先指定命令Ｓ４０ａを説明する。メイン制御部１１ａは、先ず、命令メモリ１６ａの処理命令より部分制御部１０ａの実行する処理がデータ転送を必要とするか否かを判定して、データ転送制御部１３ａの状態が「動作中」か「待機中」か判断する。また、他状態管理部１７ｂから通知される他データ転送制御部１３ｂの状態情報及びアドレス情報を取得する。メイン制御部１１ａは続いて、自他の状態管理部１７ａ，１７ｂに基づいて「待機中」のデータ転送制御部１３ａ又は１３ｂを選択して、そのアドレス情報を発行先指定命令Ｓ４０ａとして発行する。
なお、自状態管理部１７ａが格納している、自データ転送制御部１３ａについての状態情報の更新をデータ転送制御部１３ａ自身が行わず、自メイン制御部１１ａが処理命令から判定して更新してもよい。
【００３６】
転送命令調停部１８ａは、メイン制御部１１ａが発行するデータ転送制御命令Ｓ３０ａを、発行先指定命令Ｓ４０ａに従って自転送命令調停部１８ａ又は他転送命令調停部１８ｂへ転送すると共に、他転送命令調停部１８ｂから自転送命令調停部１８ａ宛に転送されてきた調停用データ転送制御命令（信号）Ｓ４１を取得する。
【００３７】
図７は、図６に示す転送命令調停部１８ａの構成を示すブロック図である。転送命令調停部１８ａは、振り分け部１８１と調停部１８２とから構成される。振り分け部１８１は、メイン制御部１１ａから発行されたデータ転送制御命令Ｓ３０ａを調停用データ転送制御命令Ｓ４１として、同時に発行された発行先指定命令Ｓ４０ａが指定する転送命令調停部１８ａ又は１８ｂへ転送する。ただし、転送先が同一並列ユニット６０内の場合には、メイン制御部１１ａは発行先指定命令Ｓ４０ａを発行しなくてもよい。
調停部１８２は、自他の振り分け部１８１から転送されてきた調停用データ転送制御命令Ｓ４１を調停済データ転送制御命令Ｓ４２ａとしてデータ転送制御部１３ａへ発行する。
【００３８】
図８に、実施の形態３に係る並列信号処理装置について、転送命令調停部１８ａ〜１８ｄの接続例を図８（ａ）に示し、転送例を図８（ｂ）に示す。図８に示す並列信号処理装置は並列ユニット数４とし、不図示の並列ユニット６０ａ〜６０ｄから転送命令調停部１８ａ〜１８ｄを抜粋して図示する。なお、転送命令調停部１８ａ〜１８ｄを除き、各並列ユニット６０ａ〜６０ｄの各部の図示は省略する。また、図８（ｂ）では、並列ユニット６０ａのデータ転送制御部１３ａ，１３ｂ，１３ｄが動作中で、並列ユニット６０ｃのデータ転送制御部１３ｃが待機中の場合の転送例を示し、不使用の信号線を点線で表す。
【００３９】
図８（ｂ）において、メイン制御部１１ａから転送命令調停部１８ａへ、データ転送制御命令Ｓ３０ａと、発行先として「転送命令調停部１８ｃ」を指定した発行先指定命令Ｓ４０ａとが発行される。発行先の指定方法は、ここでは説明のために「転送命令調停部１８ｃ」としたが、実際は状態管理部１７ａ〜１７ｄから取得したアドレス情報により指定する。また、発行先には、状態情報が「待機中」となっているデータ転送制御部を指定する。
【００４０】
転送命令調停部１８ａの振り分け部１８１は、発行先指定命令Ｓ４０ａに従って、転送命令調停部１８ｃの調停部１８２へ発行先指定命令Ｓ４０ａを転送する。転送命令調停部１８ｃの調停部１８２は、転送されてきた発行先指定命令Ｓ４０ａを調停済データ転送制御命令Ｓ４２ｃとしてデータ転送制御部１３ｃへ発行する。これにより、メイン制御部１１ａが他の部分制御部１０ｃのデータ転送制御部１３ｃへデータ転送制御命令Ｓ３０ａを発行できるため、データ転送制御部１３ｃをメイン制御部１１ａ，１１ｃで共有することができ、この結果、データ転送部３０ｃをメイン制御部１１ａ，１１ｃで共有することができる。
【００４１】
他方、転送命令調停部１８ｂ，１８ｄは、発行先指定命令Ｓ４０ｂ，Ｓ４０ｄの指示に従って、データ転送制御命令Ｓ３０ｂ，Ｓ３０ｄを調停済データ転送制御命令Ｓ４２ｂ，Ｓ４２ｄとしてそのまま自データ転送制御部１３ｂ，１３ｄ（不図示）へ発行する。
【００４２】
このように、単位処理実行中の部分制御部１０ａにおいて、データ転送部３０ａがデータ転送の動作中に部分制御部１０ａ又はデータパス部２０ａに待機状態が発生する場合に、他の部分制御部１０ｃ内部の待機中のデータ転送制御部１３ｃへデータ転送制御命令Ｓ３０ａを発行することにより、その部分制御部１０ｃに接続されている待機中のデータ転送部３０ｃを使用できるため、処理の高速化を図ることができる。
また、製造ばらつき、低電圧ばらつき等が原因で、部分制御部１０ａとデータパス部２０ａは動作するがデータ転送部３０ａが動作しない場合、部分制御部１０ａは動作しないデータ転送部３０ａを使用せず、他の並列ユニット６０ｂ〜６０ｄのデータ転送部３０ｂ〜３０ｄを利用できるため、歩留まり向上につながる。
さらに、各部分制御部１０ａ〜１０ｄの実行する単位処理がデータ転送を頻繁に必要としない場合には、データ転送部３０ａ〜３０ｄは待機状態にあることが多くなる。このため、任意の１つのデータ転送部３０ａを各部分制御部１０ａ〜１０ｄが共有して利用すれば、他のデータ転送部３０ｂ〜３０ｄへのクロック供給を停止して未動作状態にすることができ、その分の消費電力を削減することができる。
【００４３】
なお、クロック供給部は、上記実施の形態１と同様に、並列信号処理装置全体で１つ備える構成であってもよいし、あるいは並列ユニット６０で１つ備える構成であってもよい。
ただし、本実施の形態３では、各並列ユニット６０において、部分制御部１０にクロック供給がされると、部分制御部１０内のメイン制御部１１が自データ転送部３０へクロック供給／停止を行う。メイン制御部１１によるクロック供給／停止の決定は、データ転送部３０の状態情報に応じて、動作状態のときに供給する、待機状態のときに停止することとする。
【００４４】
以上より、実施の形態３によれば、処理対象データ及び処理結果データを格納するデータメモリ４０と、単位処理命令Ｓ１に従って単一演算を実行して、処理対象データに対するデータパス制御命令Ｓ２０及びデータ転送制御命令Ｓ３０を生成するメイン制御部１１と、単一演算に用いるデータ及び演算結果データを格納する演算メモリ１４と、データパス制御命令Ｓ２０に基づいて処理対象データに対する演算命令Ｓ２２を生成するデータパス制御部１２と、データ転送制御命令Ｓ３０に基づいてデータ転送命令Ｓ３２を生成するデータ転送制御部１３とを有する部分制御部１０と、演算命令Ｓ２２に基づき処理対象データに対する演算を実行するデータパス部２０と、データ転送命令Ｓ３２に基づきデータメモリ４０、部分制御部１０及びデータパス部２０間のデータ転送を行うデータ転送部３０と、データメモリ４０、部分制御部１０、データパス部２０及びデータ転送部３０を互いに接続するバス５０と、部分制御部１０、データパス部２０及びデータ転送部３０からなる並列ユニット６０それぞれについて、各並列ユニット６０に対して互いに異なる処理命令を格納しておくか、又は複数ユニット単位に同一の処理命令を格納しておくかして、各並列ユニット６０に並列に処理を実行させる命令メモリ１６とを備えるように構成した。このため、このため、データパス部２０への演算命令、データ転送部３０へのデータ転送命令及び比較演算等の単一演算をデータパス制御部１２、データ転送制御部１３及びメイン制御部１１において一斉並列動作で実行することにより、処理を高速化した並列信号処理装置を提供することができる。
【００４５】
また、部分制御部１０は、データ転送制御部１３の状態情報を他の部分制御部１０へ通知する状態管理部１７を有し、さらに、当該他の部分制御部１０内の状態管理部１７から通知される状態情報を取得するように構成した。さらに、部分制御部１０は、自データ転送制御部１３の状態情報と他の部分制御部１０内の状態管理部１７から通知される状態情報とに基づいて、自メイン制御部１１が生成したデータ転送制御命令Ｓ３０を他の部分制御部１０内のデータ転送制御部１３へ転送する転送命令調停部１８を有するように構成した。このため、データ転送部３０を、自他含めた複数のメイン制御部１１で共有できるようになり、部分制御部１０が他の部分制御部１０に接続した待機中のデータ転送部３０を使用して処理の高速化を図ることができる。さらに、共有している間、使用していないデータ転送部３０へのクロック供給を停止すれば、消費電力を削減できる。
【００４６】
なお、上記実施の形態３の命令メモリ１６、状態管理部１７及び転送命令調停部１８を、上記実施の形態１又は実施の形態２に組み込んだ構成にして、プログラムメモリ１０２の全体制御プログラムに従って各並列ユニット６０を動作させる方式と、命令メモリ１６の処理命令に従って各並列ユニット６０が動作する方式の両方式で動作させることも可能である。
【符号の説明】
【００４７】
１  全体制御部、１０  部分制御部、１１  メイン制御部、１２  データパス制御部、１３  データ転送制御部、１４  演算メモリ、１５  メイン命令伝達部、１６  命令メモリ、１７  状態管理部、１８  転送命令調停部、２０  データパス部、３０  データ転送部、４０  データメモリ、５０  バス、６０  並列ユニット、１０１  命令発行部、１０２  プログラムメモリ、１０３  選択部、１０４  処理性能メモリ、１５１〜１５４  伝達セレクタ、１５５，１５６  発行命令セレクタ、１８１  振り分け部、１８２  調停部、Ｓ１  単位処理命令、Ｓ２  伝達制御命令、Ｓ２０ａ〜Ｓ２０ｃ  データパス制御命令（演算制御命令）、Ｓ２１  共通データパス制御命令、Ｓ２２ａ〜Ｓ２２ｃ  演算命令、Ｓ３０ａ〜Ｓ３０ｃ  データ転送制御命令、Ｓ３１  共通データ転送制御命令、Ｓ３２ａ〜Ｓ３２ｃ  データ転送命令、Ｓ４０ａ〜Ｓ４０ｄ  発行先指定命令、Ｓ４１  調停用データ転送制御命令、Ｓ４２ａ〜Ｓ４２ｄ  調停済データ転送制御命令。
【図１】
0005495707.tif 000002
【図２】
0005495707.tif 000003
【図３】
0005495707.tif 000004
【図４】
0005495707.tif 000005
【図５】
0005495707.tif 000006
【図６】
0005495707.tif 000007
【図７】
0005495707.tif 000008
【図８】
0005495707.tif 000009