(57)【要約】【課題】  処理方法の異なる複数の入力信号に対して、柔軟に信号処理を実行するに際し、単独のマイコンやＤＳＰを用いずに、高速な信号処理を実現することができる動作設定情報書替可能な信号処理装置を提供する。【解決手段】  動作定義情報及び定数パラメータを含むコンフィグ情報によって動作を書替えることができ、かつ、並列に動作可能な複数の演算ユニット１２と、演算ユニット同士が相互にデータ通信するための、個々の演算ユニットに宛てた通信機能を有するメッセージ格納手段１１であって、所定の演算ユニットに対する処理依頼内容である入力データ及びコンフィグ情報が書き込まれると演算ユニットを起動させる、メッセージ格納手段と、１つ以上の演算ユニットによる処理結果を出力する出力手段１３と、を有する。【選択図】      図１
2006323752.tif 000002
【特許請求の範囲】
【請求項１】
動作定義情報及び定数パラメータを含むコンフィグ情報によって動作を書替えることができ、かつ、並列に動作可能な複数の演算ユニットと、
前記演算ユニット同士が相互にデータ通信するための、個々の前記演算ユニットに宛てた通信機能を有するメッセージ格納手段であって、所定の前記演算ユニットに対する処理依頼内容である入力データ及び前記コンフィグ情報が書き込まれると前記演算ユニットを起動させる、メッセージ格納手段と、
１つ以上の前記演算ユニットによる処理結果を出力する出力手段と、
を有する、信号処理装置。
【請求項２】
前記演算ユニットは、１つ或いは複数の入力データ、又は、１つ或いは複数の出力データを有する、請求項１に記載の信号処理装置。
【請求項３】
前記演算ユニットは、内部に複数の演算器を含み、前記動作定義情報を基に前記演算器同士の結線をスイッチで切替えることにより、処理内容を書替えることができる、請求項１に記載の信号処理装置。
【請求項４】
前記演算ユニットは、内部に複数の演算器を含み、前記動作定義情報を基に前記演算器同士の結線を予めハード的に固定することにより、各々の前記演算ユニットの機能を定義する、請求項１に記載の信号処理装置。
【請求項５】
前記演算ユニットは、個々が独立したＣＰＵコアを有し、前記動作定義情報であるプログラムを切替えることにより、種々の処理を実行することができる、請求項１に記載の信号処理装置。
【請求項６】
前記演算ユニットは、個々が独立した書替可能な回路から成り、動作定義情報であるＦＰＧＡコンフィグ情報を書替えることにより、種々の処理を実行することができる、請求項１に記載の信号処理装置。
【請求項７】
各々の前記演算ユニットは、自分への処理を受け付ける自分専用の前記メッセージ格納手段を有し、常に前記メッセージ格納手段の内容を監視し、前記内容に要求が入ったら情報を読み出して処理を行う、請求項１に記載の信号処理装置。
【請求項８】
各々の前記演算ユニットは、自分への処理を受け付ける自分専用の前記メッセージ格納手段を有し、前記メッセージ格納手段は、そこに要求が入ったら、前記演算ユニットに対して前記要求を発行し、前記演算ユニットが前記要求を読み出して処理を行う、請求項１に記載の信号処理装置。
【請求項９】
各々の前記演算ユニットは、全ユニットに共有される前記メッセージ格納手段を有し、メッセージ管理部は、前記メッセージ格納手段の内容を監視し、前記メッセージ格納手段に要求が入ったら対象の前記演算ユニットに対し前記要求を発行する、請求項１に記載の信号処理装置。
【請求項１０】
前記メッセージ格納手段には、入力識別コード及び入力データが入っており、前記入力識別コードを基に、各々の前記演算ユニット自身が、前記動作定義情報及び前記定数パラメータをそれらの情報格納場所から取得して演算処理を実行する、請求項７乃至９のいずれか一項に記載の信号処理装置。
【請求項１１】
前記メッセージ格納手段には、入力識別コード、入力データ、及び定数パラメータが入っており、前記入力識別コードを基に、各々の前記演算ユニット自身が、前記動作定義情報をその情報格納場所から取得して演算処理を実行する、請求項７乃至９のいずれか一項に記載の信号処理装置。
【請求項１２】
前記メッセージ格納手段には、入力データ、定数パラメータ、及び動作定義情報が入っており、前記演算ユニットは、それらを読み出して演算処理を実行する、請求項７乃至９のいずれか一項に記載の信号処理装置。
【請求項１３】
前記メッセージ格納手段は、ＦＩＦＯ（First In First Out）の構造になっており、複数の処理要求を格納することができる、請求項７乃至１２のいずれか一項に記載の信号処理装置。
【請求項１４】
前記メッセージ格納手段は、複数の処理要求を格納することができ、各々の前記処理要求には優先順位の情報が付与されており、前記優先順位の高い前記処理要求から順に読み出される、請求項７乃至１２のいずれか一項に記載の信号処理装置。
【請求項１５】
前記情報格納場所は、複数の前記演算ユニットで共有される記憶領域にある、又は、各々の前記演算ユニット内に置かれる、請求項１０又は１１に記載の信号処理装置。
【請求項１６】
処理中の前記演算ユニットが自身の内部状態を判定し、判定結果が出力を変更させる、請求項１に記載の信号処理装置。
【請求項１７】
前記演算ユニットとは別の状態監視ユニットが各々の前記演算ユニットの内部状態を監視し、その結果から前記演算ユニットの出力先を分岐させる、請求項１に記載の信号処理装置。
【請求項１８】
処理中の前記演算ユニットが自身の内部状態を判定し、新たに別の前記演算ユニットの起動／処理終了を行う、請求項１に記載の信号処理装置。
【請求項１９】
前記演算ユニットとは別個に前記演算ユニットに対する状態監視部があり、前記状態監視部が各々の前記演算ユニットの内部状態を監視し、所定の条件が成立したときに、新たに別の演算ユニットの起動を行う、請求項１に記載の信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作定義情報及び定数パラメータによって動作設定情報を書替えることができ、かつ、並列に実行可能な複数の演算ユニットを有する信号処理装置に関する。
【背景技術】
【０００２】
従来、処理方法の異なる複数の入力信号に対する処理の方法としては、専用のハードウェアが用いられていた。この方法の場合、入力信号一つ一つに処理回路が必要となるため、回路規模が大きくなっていた。また、入力信号の処理内容が変わった場合には、ハードウェアを新たに作り直す必要があった。
【０００３】
これに対する解決策としては、信号処理をマイコンやＤＳＰのソフトウェアで実行する方法がある。この方法によれば、処理方法の異なる複数の入力信号に対して一つのプロセッサで対応可能なため、回路規模を比較的小さくすることができる。また、ソフトウェアを変更することで、入力信号の処理内容の変更にも柔軟に対応することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ソフトウェアを用いた信号処理には、上述した利点はあるものの、専用のハードウェアを用いた信号処理に比べて処理速度の点で劣っており、その用途が自ずと限られてしまうという問題点があった。
【課題を解決するための手段】
【０００５】
本発明による信号処理装置は、動作定義情報及び定数パラメータを含むコンフィグ情報によって動作を書替えることができ、かつ、並列に動作可能な複数の演算ユニットと、演算ユニット同士が相互にデータ通信するための、個々の演算ユニットに宛てた通信機能を有するメッセージ格納手段であって、所定の演算ユニットに対する処理依頼内容である入力データ及びコンフィグ情報が書き込まれると演算ユニットを起動させる、メッセージ格納手段と、１つ以上の演算ユニットによる処理結果を出力する出力手段と、を有する。
【発明の効果】
【０００６】
本発明によれば、処理方法の異なる複数の入力信号に対して、柔軟に信号処理を実行するに際し、単独のマイコンやＤＳＰを用いないので、高速な信号処理を実現することができる。
【発明を実施するための最良の形態】
【０００７】
図１は、本発明による信号処理装置の概略的構成図である。
同図を参照し、本信号処理装置の動作について説明する。
【０００８】
演算部１０は、メッセージＢＯＸ（メッセージ格納手段）１１、複数の（この例では、４個の）演算ユニット１２Ａ〜１２Ｄ、出力部１３で構成される信号処理装置である。各演算ユニット１２Ａ〜１２Ｄの動作を規定する動作定義情報と、その特性を規定する定数パラメータとを合わせて以下ではコンフィグ情報と称する。このコンフィグ情報に従い演算ユニット１２Ａ〜１２Ｄは、様々なユニットとして並列に動作する。図１における演算ユニット１２Ａ〜１２Ｄは、例えば、コンフィグ情報に従って、バンドパス・フィルタ演算ユニット、ピーク・ホールド演算ユニット等となる。
【０００９】
メッセージＢＯＸ１１は、演算ユニット１２同士が相互にデータ通信するための、個々の演算ユニット１２に宛てた通信手段であり、各演算ユニット１２Ａ〜１２Ｄは、常にメッセージＢＯＸ１１の内容を監視している。演算部１０の外部から、所定の演算ユニット１２Ａ〜１２Ｄに対する、チャンネル（以下「ｃｈ」と記す。）情報、入力データ、コンフィグ情報を含む処理依頼（メッセージ）を、通信手段であるメッセージＢＯＸ１１に書き込むと、各演算ユニット１２Ａ〜１２Ｄは、そのメッセージが自分宛であるかどうかをチェックし、自分宛のメッセージを取り出し、コンフィグ情報からそのｃｈに必要な処理を読み出して実行し、次段の演算ユニット１２Ａ〜１２Ｄ宛のメッセージ（処理結果、ｃｈ情報）をメッセージＢＯＸ１１に書き込む。
【００１０】
他の演算ユニット１２Ａ〜１２Ｄも、その間、常時、メッセージＢＯＸ１１を見て自分宛のメッセージがないか監視しているので、１つの演算ユニット１２Ａ〜１２Ｄが処理中でも、新たな処理依頼をメッセージＢＯＸ１１に書き込むことも可能である。
【００１１】
メッセージＢＯＸ１１のある区画は外部出力するためのデータを書き込む領域になっており、最終的な処理結果は、そこから出力部に取り出されて外部に出力される。
【００１２】
図２は、メッセージＢＯＸ１１及び演算ユニット１２Ａ〜１２Ｄの処理フローの一例を示している。
同図を参照し、各部の動作について説明する。
【００１３】
演算ユニット１２Ａ〜１２Ｄは、メッセージＢＯＸ１１にデータがあるかを常に監視し（Ｓ２２１）、データがある場合には、メッセージＢＯＸ１１に対してデータ読み出しの要求を発行する。メッセージＢＯＸ１１は、演算ユニット１２Ａ〜１２Ｄからの読み出しの要求があるかを常に監視し（Ｓ２１１）、要求がある場合には、要求データを出力するとともにその記憶を削除する（Ｓ２１２）。このとき、演算ユニット１２Ａ〜１２Ｄは、メッセージＢＯＸ１１からのデータを読み出して（Ｓ２２２）、コンフィグ情報に従ってデータの処理を実行する（Ｓ２２３）。
【００１４】
その結果得られたデータをメッセージＢＯＸ１１に出力するために、演算ユニット１２Ａ〜１２Ｄは、メッセージＢＯＸ１１に対してデータ書き込みの要求を発行する。メッセージＢＯＸ１１は、演算ユニットから書き込みの要求があるかを常に監視し（Ｓ２１３）、要求がある場合には、演算ユニット１２Ａ〜１２Ｄが出力した（Ｓ２２４）データを受け取るとともにそのメッセージを記憶する（Ｓ２１４）。
各メッセージＢＯＸ１１においては、入力と出力は並行して動作する。
【００１５】
図３は、演算ユニット１２Ａ〜１２Ｄが構成する各モジュールから見た処理フローである。
同図において、ＢＰＦは、バンドパス・フィルタ演算ユニット、Ｐ／Ｈは、ピーク・ホールド演算ユニットを表す。
同図を参照し、ｃｈ１に対してＢＰＦ及びＰ／Ｈの処理が、ｃｈ２に対してＰ／Ｈの処理が、それぞれ実行される演算部１０の動作例について説明する。
【００１６】
演算部１０への入力は、ｃｈ１入力（Ｓ３１１）とｃｈ２入力（Ｓ３２１）が異なったタイミングでなされる。それぞれの入力がなされると、それらは、メッセージＢＯＸ１１へ配送され、メッセージＢＯＸ１１に記憶される（Ｓ３１２、Ｓ３２２）。ＢＰＦは、Ｓ３１２でメッセージＢＯＸに記憶されたメッセージを読み出してｃｈ１の処理を実行し（Ｓ３１３）、その処理結果をメッセージＢＯＸ１１に書き込む（Ｓ３１４）。
【００１７】
Ｐ／Ｈは、異なったタイミングでｃｈ１の処理（Ｓ３１５）とｃｈ２の処理（Ｓ３２３）を実行する。Ｓ３１５では、Ｓ３１４で記憶されたメッセージを読み出し、処理結果をｃｈ１の出力とする（Ｓ３１６）。Ｓ３２３では、Ｓ３２２で記憶されたメッセージを読み出し、処理結果をｃｈ２の出力とする（Ｓ３２４）。
【００１８】
図４は、入力ｃｈ毎に見た処理フローである。
同図を参照し、ｃｈ１に対してＢＰＦ及びＰ／Ｈの処理が、ｃｈ２に対してＰ／Ｈの処理が、それぞれ実行される演算部１０の動作例について説明する。
【００１９】
まず、ｃｈ１では、第ｎ番目の入力が、メッセージＢＯＸ１１に入力される（Ｓ４１１）。次いで、その入力は、メッセージＢＯＸ１１に記憶される（Ｓ４１２）。次いで、ＢＰＦは、メッセージＢＯＸ１１から記憶を読み出し、ＢＰＦの処理をし（Ｓ４１３）、その処理結果が、メッセージＢＯＸ１１に入力される。その入力は、メッセージＢＯＸ１１に記憶される（Ｓ４１４）。次いでＰ／Ｈは、メッセージＢＯＸ１１から記憶を読み出し、Ｐ／Ｈの処理をし（Ｓ４１５）、その結果が第ｎ番目の出力となる。
【００２０】
ｃｈ２では、第ｎ番目の入力が、ｃｈ１とずれたタイミングで、メッセージＢＯＸに入力される（Ｓ４２１）。次いで、その入力は、メッセージＢＯＸ１１に記憶される（Ｓ４２２）。次いでＰ／Ｈは、メッセージＢＯＸ１１から記憶を読み出し、Ｐ／Ｈの処理をし（Ｓ４２３）、その結果が第ｎ番目の出力となる。
【００２１】
ｃｈ１においてもｃｈ２においても、第ｎ番目の入力から第（ｎ＋１）番目の入力までが、演算周期である。これらの演算周期において、同じ演算ユニット１２はｃｈ１とｃｈ２の各処理に対して同時には使用されていないことに注意されたい。例えば、Ｐ／Ｈは、ｃｈ１とｃｈ２とでずれたタイミングで使用することにより、これらのｃｈで共用することができる。
【００２２】
図５は、演算ユニットの入出力データ数を表す図である。
同図に示したように、演算ユニット１２は、１つ又は複数の入力データを有することができ、１つ又は複数の出力データを有することができる。
【００２３】
入力データが２つで出力データが１つの演算ユニット１２としては、例えば、２つの入力データの和、差、積等を出力するユニットが考えられる。
入力データが３つで出力データが２つの演算ユニット１２としては、例えば、２行３列の行列により入力を出力に線形変換するユニットが考えられる。
【００２４】
図６は、演算ユニット内の構成の一例を表す図である。
同図の例において、演算ユニット１２は、内部に複数の演算器（積和演算器、除算器、テーブル演算器等）を含み、動作定義情報を基に演算器同士の結線をスイッチ（以下、「ＳＷ」と記す。）で切替えることにより、処理内容を書替えることができる。例えば、図６において、ＳＷの設定を変えることにより、単一演算器の使用、複数の演算器の縦列接続を選択することができる。これにより、少ない演算器で多種類の演算に対応することができる。
【００２５】
また、演算ユニット１２は、内部に複数の演算器（積和演算器、除算器、テーブル演算器等）を含み、動作定義情報を基に演算器同士の結線を予めハード的に固定することにより、各々の演算ユニット１２の機能を定義する。例えば、図６において、ＳＷを使う代わりに、配線を１つの設定で直結しているものを考えることができる。演算ユニット１２を、例えばＩＣで構成する場合、配線層のみの変更で異なる用途ＩＣを実現することができる。また、ＳＷが無いので、安価にアプリケーションに合わせた演算機能を用意することができる。
【００２６】
図７は、演算ユニット内の構成の一例を表す図である。
同図の例において、演算ユニット１２は、個々が独立したＣＰＵコアを有し、動作定義情報であるプログラムを切替えることにより、種々の処理（例えば、ＩＩＲフィルタ、ＦＩＲフィルタ、ＦＦＴ、２次元マップ）を実行することができる。この場合、各演算ユニット１２の演算機能定義の自由度は非常に高いものとなる。また、１つのＣＰＵで賄う機能が少ないので、演算部１０の処理の全てを１ＣＰＵで実行するより高速に実行でき、更に、プログラミングの自由度は高まる。
【００２７】
図８は、演算ユニット内の構成の一例を表す図である。
同図の例において、演算ユニット１２は、個々が独立した書替可能な回路（ＦＰＧＡ等）から成り、動作定義情報であるＦＰＧＡコンフィグ情報を書替えることにより、種々の処理（例えば、ＩＩＲフィルタ、ＦＩＲフィルタ、ＦＦＴ、２次元マップ）を実行することができる。この場合、各演算ユニット１２の演算機能定義の自由度は非常に高いものとなる。また、各ユニットは別個のＦＰＧＡなので、動作時に一部のユニットのＦＰＧＡデータ（ロジック）だけを書替えることも可能となる。
【００２８】
尚、演算部１０における全ての演算ユニットの構成が１種類に統一されている必要はない。例えば、図６の構成を有する演算ユニット、図７の構成を有する演算ユニット、図８の構成を有する演算ユニットを混在させて演算部１０を成しても良い。
【００２９】
図９は、演算ユニットへの処理要求方法の一例を示す図である。
同図の例において、各演算ユニット１２Ａ〜１２Ｄは、自分への処理を受け付ける自分専用のメッセージＢＯＸ１１Ａ〜１１Ｄを有し、常にこの内容を監視し、内容に要求が入ったら情報を読み出して処理を行う。また、各演算ユニット１２Ａ〜１２Ｄは、自分への処理を受け付ける自分専用のメッセージＢＯＸ１１Ａ〜１１Ｄを有し、このメッセージＢＯＸ１１は、そこに要求が入ったら、演算ユニット１２に対して要求を発行し、それに従い演算ユニット１２が情報を読み出して処理を行う。この場合、各演算ユニット１２Ａ〜１２Ｄが自分専用の演算ユニットを有するので、応答が速いという利点がある。
【００３０】
図１０は、演算ユニットへの処理要求方法の一例を示す図である。
同図の例において、各演算ユニット１２Ａ〜１２Ｄは、全ユニットに共有されるメッセージＢＯＸ１１を有し、メッセージ管理部１４は、メッセージＢＯＸ１１の内容を監視し、そこに要求が入ったら対象の演算ユニット１２に対し要求を発行する。尚、メッセージ管理部１４内のコンフィグ情報は、メッセージＢＯＸ１１に入ってきたデータをどの演算ユニット１２に配送するかを記述している。この例では、各ユニット毎にメッセージＢＯＸを有する場合に比べて、メモリの容量を小さくすることができる。
【００３１】
図１１は、演算ユニットへの処理要求内容の一例を示す図であり、図１２は、演算ユニットへの処理要求のフローである。
【００３２】
まず、図１１を参照し、演算ユニットへの処理要求について概略的に説明する。
図９又は図１０を用いて説明したメッセージＢＯＸ１１には、外部から与えられた入力データを識別するコード（入力識別コード）及び入力データ（値）が入っている。また、記憶領域１（１５）には、入力識別コード毎に動作定義情報が格納されており、記憶領域２（１６）には、入力識別コード毎に定数パラメータが格納されている。
【００３３】
入力識別コードを基に、各演算ユニット１２自身が、動作定義情報及び定数パラメータをそれらの情報格納場所１５、１６から取得して演算処理を実行する。
尚、記憶領域１（１５）及び／又は記憶領域２（１６）は、各演算ユニット１２のローカルにあっても良いし、複数の演算ユニット１２に共通のロケーションにあっても良い。
【００３４】
次に、図１２を参照し、演算ユニットへの処理要求について詳細に説明する。
まず、メッセージＢＯＸ１１から入力識別コード及び入力データを読み出す（Ｓ１２０１、Ｓ１２０２）。次に、入力識別コードから記憶領域１（１５）における動作定義情報の読み出し先を算出し（Ｓ１２０３）、動作定義情報を読み出す（Ｓ１２０４）。図１１の例では、入力識別コードａから記憶領域１（１５）における動作定義情報（ａ用）を読み出している。
【００３５】
次に、読み出された動作定義情報に基づいて、演算ユニット１２は動作定義（演算ユニット１２の内部接続切替等）を実行する（Ｓ１２０５）。次に、入力識別コードから記憶領域２（１６）におけるパラメータ情報の読み出し先を算出し（Ｓ１２０６）、定数パラメータを読み出す（Ｓ１２０７）。図１１の例では、入力識別コードａから記憶領域２（１６）における定数パラメータ（ａ用）を読み出している。次に、読み出された定数パラメータに基づいて、演算ユニット１２は、演算処理を実行し（Ｓ１２０８）、その結果を出力する（Ｓ１２０９）。
【００３６】
図１１及び図１２の例のように演算ユニット１２への処理要求を行うことにより、動作定義情報及び定数パラメータは直接的にはメッセージＢＯＸ１１に含まれないので、メッセージＢＯＸ１１の容量を小さくすることができる。
【００３７】
図１３は、演算ユニット１２への処理要求内容の一例を示す図であり、図１４は、演算ユニット１２への処理要求のフローである。
【００３８】
まず、図１３を参照し、演算ユニット１２への処理要求について概略的に説明する。
図９又は図１０を用いて説明したメッセージＢＯＸ１１には、外部から与えられた入力データを識別するコード（入力識別コード）、入力データ（値）、及び定数パラメータが入っている。また、記憶領域１５には、入力識別コード毎に動作定義情報が格納されている。入力識別コードを基に、各演算ユニット１２自身が、動作定義情報をその情報格納場所１５から取得して演算処理を実行する。
【００３９】
次に、図１４を参照し、演算ユニット１２への処理要求について詳細に説明する。
まず、メッセージＢＯＸ１１から入力識別コード、入力データ、及び定数パラメータを読み出す（Ｓ１４０１、Ｓ１４０２、Ｓ１４０３）。次に、入力識別コードから記憶領域１５における動作定義情報の読み出し先を算出し（Ｓ１４０４）、動作定義情報を読み出す（Ｓ１４０５）。図１３の例では、入力識別コードａから記憶領域１５における動作定義情報（ａ用）を読み出している。
【００４０】
次に、読み出された動作定義情報に基づいて、演算ユニット１２は動作定義（演算ユニット１２の内部接続切替等）を実行する（Ｓ１４０６）。次に、演算ユニット１２は、演算処理を実行し（Ｓ１４０７）、その結果を出力する（Ｓ１４０８）。
【００４１】
尚、記憶領域１５は、各演算ユニット１２のローカルにあっても良いし、複数の演算ユニット１２に共通のロケーションにあっても良い。
図１３及び図１４の例のように演算ユニット１２への処理要求を行うことにより、定数パラメータ及び動作定義情報を演算ユニット１２の外部から与えるので、各演算ユニット１２の記憶容量を小さくすることができる。
【００４２】
図１５は、演算ユニット１２への処理要求内容の一例を示す図であり、図１６は、演算ユニット１２への処理要求のフローである。
【００４３】
まず、図１５を参照し、演算ユニット１２への処理要求について概略的に説明する。
図９又は図１０を用いて説明したメッセージＢＯＸ１１には、外部から与えられた入力データ（値）、定数パラメータ、及び動作定義情報が入っており、演算ユニット１２は、それらを読み出して演算処理を実行する。
【００４４】
次に、図１６を参照し、演算ユニット１２への処理要求について詳細に説明する。
まず、メッセージＢＯＸ１１から入力データ、定数パラメータ、及び動作定義情報を読み出す（Ｓ１６０１、Ｓ１６０２、Ｓ１６０３）。
【００４５】
次に、読み出された動作定義情報に基づいて、演算ユニット１２は動作定義（演算ユニット１２の内部接続切替等）を実行する（Ｓ１６０４）。次に、演算ユニット１２は、演算処理を実行し（Ｓ１６０５）、その結果を出力する（Ｓ１６０６）。
【００４６】
図１５及び図１６の例のように演算ユニット１２への処理要求を行うことにより、定数パラメータ及び動作定義情報を演算ユニット１２の外部から与えるので、各演算ユニット１２がメモリを有する必要がなくなる。
【００４７】
図１７は、入力データへの参照を示す図である。
図１１、図１３、又は図１５を用いて説明した実施例において、メッセージＢＯＸ１１内の入力データを記憶領域１７への参照値とすることができる。
【００４８】
この場合、記憶領域１７に実際に使用するデータが格納されており、図１７に示すように、参照値の示す参照先のデータを参照個数分だけ情報格納場所１７から演算ユニット１２に読み込んで、演算処理を実行する。これにより、ＦＦＴ演算を実行する場合等のように多くの入力データを演算ユニット１２に渡すときでも、メッセージＢＯＸ１１の必要記憶容量を小さくすることができる。
【００４９】
図１８は、定数パラメータへの参照を示す図である。
図１３又は図１５を用いて説明した実施例において、メッセージＢＯＸ１１内の定数パラメータを記憶領域１６への参照値とすることができる。
【００５０】
この場合、記憶領域１６に定数パラメータが格納されており、図１８に示すように、参照値の示す参照先の定数パラメータを参照個数分だけ情報格納場所１６から演算ユニット１２に読み込んで、演算処理を実行する。異なるメッセージＢＯＸ１１において共通の定数パラメータを用いるような場合に、この方法を用いると、共通する定数パラメータを記憶領域１６に格納して共用することにより、記憶容量を節約することができる。例えば、ＦＩＲフィルタ係数等のような多くの定数パラメータが必要な場合に、この方法は、特に有効であり、メッセージＢＯＸ１１の必要記憶容量を小さくすることができる。
尚、記憶領域１６は、各演算ユニット１２のローカルにあっても良いし、複数の演算ユニット１２に共通のロケーションにあっても良い。
【００５１】
図１９は、動作定義情報への参照を示す図である。
図１５を用いて説明した実施例において、メッセージＢＯＸ１１内の動作定義情報を記憶領域１５への参照値とすることができる。
【００５２】
この場合、記憶領域１５に動作定義情報が格納されており、図１９に示すように、参照値の示す参照先の動作定義情報を参照個数分だけ情報格納場所１５から演算ユニット１２に読み込んで、演算処理を実行する。異なるメッセージＢＯＸ１１において共通の動作定義情報を用いるような場合に、この方法を用いると、共通する動作定義情報を記憶領域１５に格納して共用することにより、記憶容量を節約することができる。例えば、回路接続情報が多い回路等のように多くの動作定義情報が必要な場合に、この方法は、特に有効であり、メッセージＢＯＸ１１の必要記憶容量を小さくすることができる。
尚、記憶領域１５は、各演算ユニット１２のローカルにあっても良いし、複数の演算ユニット１２に共通のロケーションにあっても良い。
【００５３】
図２０は、演算ユニット１２への処理要求手段の構造を示す図である。
同図に示したように、メッセージＢＯＸ１１はＦＩＦＯ（First In First Out）の構造にすることができる。同図の左側から新しいメッセージ（処理要求）が、このＦＩＦＯに次々と入力され、右側へシフトされて行くので、右側に行くほど古いメッセージが格納されており、最も古いメッセージを最初に取り出す。同図には、ＦＩＦＯの５段の内、４段までメッセージが入っている例を示した。この構造により、メッセージを渡すべき演算ユニット１２で処理が終わっていなくても、入力側はウェイトすることなく、メッセージを渡すことができる。
【００５４】
図２１は、演算ユニットへの処理要求手段の構造を示す図である。
同図に示したように、メッセージＢＯＸ１１はＦＩＦＯの構造をとるとともに、入力されるひとつひとつのメッセージ（処理要求）に優先順位を付けることができる。演算ユニット１２にメッセージを渡す際、各メッセージの優先順位を比較し、優先順位の高いものから順に取り出す。同一優先順位のメッセージに関しては、古いものから先に取り出す。この構造により、例えば、短い周期で処理を行うｃｈは、長い周期で処理を行うｃｈより優先度を高くする等、より良いタイミングで処理を実行することができるようになる。
【００５５】
図２２は、演算ユニット用の情報の置き場所の一例を示す図である。
図１１、図１３、図１８、又は図１９を用いて説明した実施例において、動作定義情報又は定数パラメータを格納する情報格納場所１５、１６は、複数の演算ユニット１２で共有される記憶領域（共有ＲＡＭ１８等）とすることができる。複数のｃｈで同じ動作定義情報又は定数パラメータを有する場合には、記憶領域を共有できるので、記憶容量を小さくすることができる。
【００５６】
図２３は、演算ユニット用の情報の置き場所の一例を示す図である。
図１１、図１３、図１８、及び図１９を参照して説明した実施例において、動作定義情報又は定数パラメータを格納する情報格納場所１５、１６は、演算ユニット１２毎に置くことができる。動作定義情報又は定数パラメータが演算ユニット１２内部に置かれた場合、それらが共有ＲＡＭ１８に置かれた場合に比較して、高速にアクセスすることができるので、処理が速くなる。
【００５７】
図２４は、条件判断による分岐を行うハードウェア構成の一例を示す図であり、図２５は条件判断による分岐が起こるフローの一例である。
これらの図を参照して、条件判断による分岐の機能を備えた演算ユニットについて説明する。
【００５８】
図２４のハードウェアにおいては、処理中の演算ユニットＡ（１２Ａ）が自身の内部状態（この例では、演算器３の状態）を判定し、判定結果が出力を変更させる。
【００５９】
以下で、図２５を参照して、このハードウェアの動作を説明する。
まず、メッセージＢＯＸＡ（１１Ａ）にメッセージが入力されると、演算ユニットＡ（１２Ａ）は、メッセージＢＯＸＡ（１１Ａ）から入力データ参照値を読み出して（Ｓ２５０１）、入力データの読み出し先を算出する（Ｓ２５０２）。次に、算出された読み出し先に基づいて、演算ユニット１２Ａは、記憶領域（図示せず）から入力データを読み出す（Ｓ２５０３）。
【００６０】
次に、演算ユニットＡ（１２Ａ）は、メッセージＢＯＸＡ（１１Ａ）から定数パラメータを読み出す（Ｓ２５０４）。次に、演算ユニットＡ（１２Ａ）は、Ｓ２５０３で読み出された入力データを最初の演算器（この例では、演算器１）に送信する（Ｓ２５０５）。次に、演算ユニットＡ（１２Ａ）は、定数パラメータを各演算器（この例では、演算器１〜演算器４）に送信する（Ｓ２５０６）。次に、演算ユニット１２Ａは、演算器１〜演算器３の処理を実行する（Ｓ２５０７〜Ｓ２５０９）。
【００６１】
次に、演算ユニットＡ（１２Ａ）は、特定の回路（この例では、演算器３）の内部状態の判定を行い、分岐条件が成立するか否かを調べて（Ｓ２５１０）、その結果及び演算器３の処理結果を出力部１３に送信する。分岐条件が成立する場合には、出力部１３は演算器３の処理結果を出力し、分岐条件が成立しない場合には、出力部１３は演算器４の処理（Ｓ２５１１）結果を出力する（Ｓ２５１２）。
以上のように、演算ユニットＡ（１２Ａ）の特定の回路の内部状態の判定結果が出力を変更させるようなハードウェアによる分岐処理により、演算ユニットＡ（１２Ａ）が内部の演算器の順次処理だけの場合に比べて、より複雑な演算をすることができる。
【００６２】
図２６は、条件判断による分岐を行うハードウェア構成の一例を示す図であり、図２７は条件判断による分岐が起こるフローの一例である。
これらの図を参照して、条件判断により出力先を分岐させる機能を備えた演算ユニットについて説明する。
【００６３】
図２６のハードウェアにおいては、演算ユニット１２Ａ〜１２Ｃとは別の状態監視ユニット２６０１が各演算ユニット１２Ａ〜１２Ｃの内部状態を監視し、その結果から演算ユニット１２の出力先を分岐させる。
【００６４】
以下で、図２７を参照して、このハードウェアの動作を説明する。
まず、演算ユニットＡ（１２Ａ）の動作を説明する。
状態監視ユニット２６０１は、常に演算ユニットＡ（１２Ａ）を監視しており、演算ユニットＡ（１２Ａ）は演算処理を実行すると（Ｓ２７１１）、その状態を状態監視ユニット２６０１に通知する。状態監視ユニット２６０１は、その通知に基づいてＳ２７１１の処理結果の出力先を演算ユニットＡ（１２Ａ）、演算ユニットＢ（１２Ｂ）、演算ユニットＣ（１２Ｃ）のいずれにするのか判断し（Ｓ２７０２）、その結果を出力先切替部２６０２に指示する。
【００６５】
この指示に基づいて、出力先切替部２６０２は、Ｓ２７１１の処理結果の出力先を演算ユニットＡ（１２Ａ）、演算ユニットＢ（１２Ｂ）、演算ユニットＣ（１２Ｃ）の中の特定の１つから選択して切替える（Ｓ２７１３）。この特定の１つをｘとすると、出力先切替部２６０２は、出力先ｘ及びＳ２７１１の処理結果を含むメッセージをメッセージＢＯＸ１（１１）に送信する。このメッセージＢＯＸ１（１１）の内容に従って、Ｓ２７１１の演算処理結果が、出力先ｘに出力される（Ｓ２７１４）。
【００６６】
演算ユニットＢ（１２Ｂ）及び演算ユニットＣ（１２Ｃ）についても、全く同様の動作が実行される。
以上のように、演算ユニットを監視した結果から演算処理結果の出力先を切替えるように指示することにより、演算ユニット１２の順次処理だけの場合に比べて、より複雑な演算をすることができる。
【００６７】
図２８は、条件判断によるイベント発生を行うハードウェア構成の一例を示す図である。
同図を参照して、このハードウェアの動作について説明する。
【００６８】
このハードウェアにおいては、処理中の演算ユニット１２（この例では、演算ユニットＡ（１２Ａ））自身が内部状態を判定し、新たに別の演算ユニット１２（この例では、演算ユニットＢ（１２Ｂ））の起動／処理終了を行う。
【００６９】
演算ユニットＡ（１２Ａ）においては、常に、その内部状態が監視され、イベント発生条件が成立するか否かの条件判断が行われている。演算ユニットＡ（１２Ａ）においてイベント発生条件が成立した場合には、演算ユニットＡ（１２Ａ）からイベント管理部２８０１に対して、イベント要求（この例では、演算ユニットＢ（１２Ｂ）の起動要求）が送信される。
【００７０】
すると、イベント管理部２８０１は、演算ユニットＢ（１２Ｂ）への処理依頼を発行するために、演算ユニットＢ（１２Ｂ）での処理内容を記述したコンフィグ情報を読み出して、メッセージＢＯＸ１１〜１１’’に送信する。メッセージＢＯＸ１１’’にコンフィグ情報が送信されると、直ちに、演算ユニットＢ（１２Ｂ）は、このコンフィグ情報に基づいて起動される。
【００７１】
条件判断によるイベント発生を行うハードウェア構成により、定常的な処理の流れのみを用いる場合に比べて、より複雑な演算をすることができる。
【００７２】
図２９は、条件判断によるイベント発生を行うハードウェア構成の一例を示す図である。
同図を参照して、このハードウェアの動作について説明する。
【００７３】
このハードウェアにおいては、演算ユニット１２とは別個に演算ユニット１２に対する状態監視部２９０１があり、これが各演算ユニット１２の内部状態を監視し、所定の条件が成立したときに、新たに別の演算ユニット１２の起動を行う。
【００７４】
状態監視部２９０１は、常に、各演算ユニット１２（図２９では、特に演算ユニットＡ（１２Ａ）を例に挙げる）の内部状態を監視して、イベント発生の有無を判断している。演算ユニットＡ（１２Ａ）においてイベントが発生した場合、状態監視部２９０１は、演算ユニットＢ（１２Ｂ）の起動を指示すべく、演算ユニットＢ（１２Ｂ）への処理依頼を発行するために、演算ユニットＢ（１２Ｂ）での処理内容を記述したコンフィグ情報をイベント情報として読み出し、メッセージＢＯＸ２（１１’）に送信する。メッセージＢＯＸ２（１１’’）にコンフィグ情報が送信されると、直ちに、演算ユニットＢ（１２Ｂ）は、このコンフィグ情報に基づいて起動される。
【００７５】
条件判断によるイベント発生を行うハードウェア構成により、定常的な処理の流れのみを用いる場合に比べて、より複雑な演算をすることができる。
【図面の簡単な説明】
【００７６】
【図１】本発明による信号処理装置の概略的構成図である。
【図２】メッセージＢＯＸ及び演算ユニットの処理フローの一例である。
【図３】演算ユニットが構成する各モジュールから見た処理フローである。
【図４】入力ｃｈ毎に見た処理フローである。
【図５】演算ユニットの入出力データ数を表す図である。
【図６】演算ユニット内の構成の一例を表す図である。
【図７】演算ユニット内の構成の一例を表す図である。
【図８】演算ユニット内の構成の一例を表す図である。
【図９】演算ユニットへの処理要求方法の一例を示す図である。
【図１０】演算ユニットへの処理要求方法の一例を示す図である。
【図１１】演算ユニットへの処理要求内容の一例を示す図である。
【図１２】演算ユニットへの処理要求のフローである。
【図１３】演算ユニットへの処理要求内容の一例を示す図である。
【図１４】演算ユニットへの処理要求のフローである。
【図１５】演算ユニットへの処理要求内容の一例を示す図である。
【図１６】演算ユニットへの処理要求のフローである。
【図１７】入力データへの参照を示す図である。
【図１８】定数パラメータへの参照を示す図である。
【図１９】動作定義情報への参照を示す図である。
【図２０】演算ユニットへの処理要求手段の構造を示す図である。
【図２１】演算ユニットへの処理要求手段の構造を示す図である。
【図２２】演算ユニット用の情報の置き場所の一例を示す図である。
【図２３】演算ユニット用の情報の置き場所の一例を示す図である。
【図２４】条件判断による分岐を行うハードウェア構成の一例を示す図である。
【図２５】条件判断による分岐が起こるフローの一例である。
【図２６】条件判断による分岐を行うハードウェア構成の一例を示す図である。
【図２７】条件判断による分岐が起こるフローの一例である。
【図２８】条件判断によるイベント発生を行うハードウェア構成の一例を示す図である。
【図２９】条件判断によるイベント発生を行うハードウェア構成の一例を示す図である。
【符号の説明】
【００７７】
１１    メッセージＢＯＸ
１２Ａ    演算ユニットＡ
１２Ｂ    演算ユニットＢ
１２Ｃ    演算ユニットＣ
１２Ｄ    演算ユニットＤ
１３    出力部
【図１】
2006323752.tif 000003
【図２】
2006323752.tif 000004
【図３】
2006323752.tif 000005
【図４】
2006323752.tif 000006
【図５】
2006323752.tif 000007
【図６】
2006323752.tif 000008
【図７】
2006323752.tif 000009
【図８】
2006323752.tif 000010
【図９】
2006323752.tif 000011
【図１０】
2006323752.tif 000012
【図１１】
2006323752.tif 000013
【図１２】
2006323752.tif 000014
【図１３】
2006323752.tif 000015
【図１４】
2006323752.tif 000016
【図１５】
2006323752.tif 000017
【図１６】
2006323752.tif 000018
【図１７】
2006323752.tif 000019
【図１８】
2006323752.tif 000020
【図１９】
2006323752.tif 000021
【図２０】
2006323752.tif 000022
【図２１】
2006323752.tif 000023
【図２２】
2006323752.tif 000024
【図２３】
2006323752.tif 000025
【図２４】
2006323752.tif 000026
【図２５】
2006323752.tif 000027
【図２６】
2006323752.tif 000028
【図２７】
2006323752.tif 000029
【図２８】
2006323752.tif 000030
【図２９】
2006323752.tif 000031