(57)【要約】【課題】  複数の演算を実行する際のプロセッサの負荷を軽減する。【解決手段】  信号処理装置１０は、入力メモリ１２、選択部１４、演算部１６、出力メモリ１８、マイクロスケジューラ２０を含む。プロセッサ２２は、プロセッサバス２６を介して、入力メモリ１２と出力メモリ１８との間で、データの受け渡しを行う。また、プロセッサ２２は、マイクロスケジューラ２０と接続されている。また、プロセッサ２２とマイクロスケジューラ２０は、プロセッサバス２６を介して、データの受け渡しを行ってもよい。さらに、出力メモリ１８と選択部１４は、専用バス２４で接続されている。【選択図】  図１
2006260411.tif 000002
【特許請求の範囲】
【請求項１】
入力された演算対象のデータを格納する入力メモリと、
演算結果のデータを格納する出力メモリと、
前記入力メモリに格納されたデータと前記出力メモリに格納されたデータのいずれかを選択して出力する選択部と、
前記選択部から出力されたデータに対する演算を行って前記出力メモリに格納する演算部と、
前記選択部を制御する選択制御部を有するマイクロスケジューラと、
を備え、
前記出力メモリから前記選択部へのデータの転送は専用バスにて行われ、
前記マイクロスケジューラは、当該マイクロスケジューラを制御するプロセッサによって予め設定されたタイミングに従って、前記選択部の出力を切替えることを特徴とする信号処理装置。
【請求項２】
前記プロセッサは、前記マイクロスケジューラに対して前記タイミングの設定をした後、動作開始の指示を行い、
前記マイクロスケジューラは、前記動作開始の指示に従って動作を開始し、所定の演算が終了してその演算結果が前記出力メモリに格納された後、汎用バスを介して、前記演算結果を前記プロセッサに出力することを特徴とする請求項１記載の信号処理装置。
【請求項３】
前記マイクロスケジューラは、前記入力メモリおよび出力メモリに対するアドレッシング動作を制御するアドレッシング部をさらに備えること特徴とする請求項１または２のいずれかに記載の信号処理装置。
【請求項４】
入力された演算対象のデータを格納する入力メモリと、
演算結果のデータを格納する出力メモリと、
前記入力メモリに格納されたデータと前記出力メモリに格納されたデータのいずれかを選択して出力する選択部と、
前記選択部から出力されたデータに対する演算を行って前記出力メモリに格納する演算部と、
所定の処理を構成する複数の演算を処理単位として、処理単位ごとに演算の内容を前記演算部に設定するとともに、前記演算部の処理単位の進行タイミングを制御するマイクロスケジューラと、
を備え、
前記マイクロスケジューラは、進行制御部を備え、当該進行制御部は、マイクロスケジューラを制御するプロセッサによって予め設定された処理単位ごとの演算内容とタイミングに従って、カウンタを制御するとともに、前記演算内容の設定および進行タイミングの制御を行うことを特徴とする信号処理装置。
【請求項５】
請求項４に記載の信号処理装置において、マイクロスケジューラは、処理単位ごとに処理開始タイミングを検知する検知部を備え、新たな処理単位の処理開始に先立ち、前記プロセッサによって予め与えられた新たな処理単位の演算内容を演算部に再設定することを特徴とする信号処理装置。
【請求項６】
前記アドレッシング部は、前記入力メモリおよび出力メモリの少なくとも一方のメモリについて、アクセスの対象となるアドレスを算出するアドレス生成部を有することを特徴とする請求項４に記載の信号処理装置。
【請求項７】
請求項６記載の信号処理装置において、
前記アドレス生成部は、剰余演算を行う剰余器を備え、
前記入力メモリおよび出力メモリの少なくとも一方のメモリは、ブロック化され、
前記剰余器は、各々のブロックのサイズを剰余数とし、前記進行制御部より出力されたカウンタの値を被剰余数として剰余演算を行うことによって、各々のブロックのアクセスの対象となるアドレスを算出することを特徴とする信号処理装置。
【請求項８】
所定のデータを受信する受信部と、
前記受信部から出力されたデータの信号処理を行い、または、所定の送信データの信号処理を行って所望の信号を出力する請求項１乃至７のいずれかに記載の信号処理装置と、
前記信号処理装置から出力された所望の信号を送信する送信部と、
前記送信部と前記受信部と前記信号処理装置を制御するプロセッサと、
を有することを特徴とする通信機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号処理技術に関し、特に複数の演算を実行する信号処理装置およびそれを利用した通信機器に関する。
【背景技術】
【０００２】
近年、通信回線のブロードバンド化に伴い、データ通信の高速化が非常に望まれている。この高速化は、有線でのデータ通信のみならず、無線でのデータ通信に対しても同様に要求され、ワイヤレスＬＡＮ、ＣＤＭＡ、ＧＰＲＳ等の種々の通信方式で実現されている。しかしながら、無線でのデータ通信は、無線通信機器を携帯して使用することを前提とすることから、無線通信機器の小型化が必須の課題となる。
【０００３】
無線通信機器の内部で行う処理のうち、非常に多くの個所で行われ、かつ、そのハードウェア規模が大きい処理の例として、フィルタ演算がある。無線通信機器におけるフィルタの用途は、例えば、隣接チャネルへの電力の漏洩を防止する帯域制限処理、レート変換処理などである。これらのフィルタ処理は、フィルタがアナログであるかデジタルであるかを問わず、急峻な特性が求められる。これを実現するためにはハードウェア規模が増大してしまうため、いくつかのフィルタを連結させて構成する必要がある。しかし、この場合であっても、連結させるフィルタの個数が多くなると、個々のフィルタに要する乗算器、メモリによってハードウェア規模が大きくなってしまう。従って、従来は、１つの乗算器を使い回す制御を行うことによって、ハードウェア規模を低減させていた（例えば、特許文献１参照。）。
【特許文献１】特開平６−２３２６９４号公報  （第３図）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明者はこうした状況下、以下の課題を認識するに至った。すなわち、複数のフィルタから構成される処理を実現するためには、各フィルタごとに、制御回路がその動作、及びメモリ管理を行わなければならず、フィルタの段数、もしくは、フィルタの個数が増加するにつれ、演算を制御するＤＳＰ等の制御回路の負荷が重くなるといった課題である。
【０００５】
本発明はこうした状況に鑑みてなされたものであり、その目的は、連結フィルタ等の多段からなる演算の処理を行う場合においても、ＤＳＰ等の制御回路の負荷を低減することのできる信号処理装置を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様の信号処理装置は、入力された演算対象のデータを格納する入力メモリと、演算結果のデータを格納する出力メモリと、入力メモリに格納されたデータと出力メモリに格納されたデータのいずれかを選択して出力する選択部と、選択部から出力されたデータに対する演算を行って出力メモリに格納する演算部と、選択部を制御する選択制御部を有するマイクロスケジューラと、を備える。
【０００７】
出力メモリから選択部へのデータの転送は専用バスにて行われ、マイクロスケジューラは、当該マイクロスケジューラを制御するプロセッサによって予め設定されたタイミングに従って、選択部の出力を切替える。
【０００８】
この態様によると、プロセッサとは別個に、マイクロスケジューラを信号処理装置の内部に設けることによって、演算処理中にプロセッサの介在を防止し、プロセッサの負荷を軽減することができる。また、メモリ間のデータの転送を、信号処理装置の外部の汎用バスを用いずに、信号処理装置の内部の専用バスを用いて行うことによって、プロセッサによる汎用バスの制御を軽減することができる。このようにプロセッサの負荷を軽減することによって、プロセッサは、当該演算処理中に他の処理を実行することができるので、システム全体の高速化を図ることができる。
【０００９】
本発明の別の態様もまた、信号処理装置である。この装置は、入力された演算対象のデータを格納する入力メモリと、演算結果のデータを格納する出力メモリと、入力メモリに格納されたデータと出力メモリに格納されたデータのいずれかを選択して出力する選択部と、選択部から出力されたデータに対する演算を行って出力メモリに格納する演算部と、所定の処理を構成する複数の演算を処理単位として、処理単位ごとに演算の内容を演算部に設定するとともに、演算部の処理単位の進行タイミングを制御するマイクロスケジューラと、を備える。
【００１０】
マイクロスケジューラは、当該マイクロスケジューラを制御するプロセッサによって予め設定された処理単位ごとの演算内容とタイミングに従って、演算内容の設定および進行タイミングの制御を行う。
【００１１】
この態様によると、処理単位ごとの演算の内容がマイクロスケジューラに予め設定されているので、プロセッサは演算途中に信号処理装置に介在する必要がなくなる。従って、プロセッサの負荷を軽減することができる。
【００１２】
ここで、「所定の処理」とは、１つ以上の演算を指す。同一のもしくは異なった２つ以上の演算であってもよい。また、「処理単位」は、「所定の処理」のうちの１つの演算を指す。例えば、「所定の処理」が、直列接続された２つのＦＩＲフィルタを指す場合、「処理単位」は、１つのＦＩＲフィルタとなる。
【００１３】
本発明のさらに別の態様もまた、信号処理装置である。この装置は、信号処理装置において、マイクロスケジューラは、処理単位ごとに処理開始タイミングを検知する検知部を備え、新たな処理単位の処理開始に先立ち、プロセッサによって予め与えられた新たな処理単位の演算内容を演算部に再設定する。
【００１４】
この態様によると、マイクロスケジューラ自身が処理単位ごとの演算の内容を把握しているので、連結フィルタのように多段からなる処理であっても、演算の途中でのプロセッサの介入を必要としないで、多段の演算を制御することができる。
【００１５】
本発明の別の態様は、通信機器である。この通信機器は、所定のデータを受信する受信部と、受信部から出力されたデータの信号処理を行い、または、所定の送信データの信号処理を行って所望の信号を出力する信号処理装置と、信号処理装置から出力された所望の信号を送信する送信部と、送信部と受信部と信号処理装置を制御するプロセッサとを備える。
【００１６】
この態様によると、マイクロスケジューラの自律動作機能により、プロセッサの負荷を軽減できるので、通信機器を小型化することができる。
【００１７】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１８】
本発明によれば、信号処理装置において、プロセッサの処理負荷を低減させることができる。
【発明を実施するための最良の形態】
【００１９】
（実施例）
本発明を具体的に説明する前に、概要を述べる。本発明の実施例は、マイクロスケジューラを備えた信号処理装置に関する。本実施例に係る信号処理装置は、プロセッサからの演算等に関する情報の設定及び開始指示を受けた後、設定された演算を実行する。ここで、マイクロスケジューラは、演算等の関する情報を予め設定されているので、演算中における演算の制御およびメモリの管理の一切を自律的に制御できる。これにより、演算途中において、プロセッサが信号処理装置に介入する必要がなくなり、プロセッサの負荷が低減される。詳細は後述するが、信号処理装置は、単なる四則演算、フィルタ処理といった１つの演算だけでなく、複数のフィルタからなる多段処理においても、演算を自律的に行うことができるものである。ここで、プロセッサとは、当該信号処理装置を統括する上位の制御装置であって、ＣＰＵやＤＳＰ等を指すものとする。また、信号処理装置とは、主としてハードウェアで構成された装置を指すものとする。
【００２０】
ここで、図１乃至図４を用いて、本発明の実施例に係るマイクロスケジューラを備えた信号処理装置について説明する。
【００２１】
図１は、本発明の実施の形態に係る信号処理装置１０とプロセッサ２２の構成を示す図である。信号処理装置１０は、入力メモリ１２、選択部１４、演算部１６、出力メモリ１８、マイクロスケジューラ２０を含む。プロセッサ２２は、プロセッサバス２６を介して、入力メモリ１２と出力メモリ１８との間で、データの受け渡しを行う。また、プロセッサ２２は、マイクロスケジューラ２０と接続されている。また、プロセッサ２２とマイクロスケジューラ２０は、プロセッサバス２６を介して、データの受け渡しを行ってもよい。さらに、出力メモリ１８と選択部１４は、専用バス２４で接続されている。
【００２２】
図２は、図１のマイクロスケジューラ２０の構成を示す図である。マイクロスケジューラ２０は、選択制御部２８、アドレッシング部３０、演算設定部３２、検知部３４、進行制御部３６を含む。アドレッシング部３０は、アドレス生成部３８を含む。
【００２３】
図３は、図１のマイクロスケジューラ２０に設定される設定内容３００を示す図である。設定内容３００は、全処理数４０と、全処理数４０の値（例えば、Ｎ個）の数だけ設定情報を含む。全処理数４０の値がＮであった場合の設定情報は、図３に示すように、第１の設定情報４２、第２の設定情報４４，第Ｎの設定情報４６を含む。各設定情報（４２，４４，４６）は、演算の内容、入力メモリ１２の開始アドレス、出力メモリ１８の開始アドレス、及び、終了タイミングを含む。
【００２４】
図４は、図１の信号処理装置１０とプロセッサ２２のフローチャート４００を示す図である。フローチャート４００は、マイクロスケジューラ２０への設定Ｓ０２、動作開始の指示Ｓ０４、設定処理Ｓ０６、切替処理Ｓ０８、演算処理Ｓ１０、第１の終了判定Ｓ１２、第２の終了判定Ｓ１４、選択部１４への出力Ｓ１６、プロセッサ２２への出力Ｓ２０を含む。フローチャート４００に含まれる処理のうち、マイクロスケジューラ２０への設定Ｓ０２と動作開始の指示Ｓ０４は、プロセッサ２２の処理である。また、設定処理Ｓ０６、切替処理Ｓ０８、演算処理Ｓ１０、第１の終了判定Ｓ１２、第２の終了判定Ｓ１４、選択部１４への出力Ｓ１６、およびプロセッサ２２への出力Ｓ２０は、信号処理装置１０の処理である。
【００２５】
ここで、例として、第１と第２のＦＩＲフィルタが直列に２つ連結された場合の演算処理について、図４を用いて説明する。ここで、第１のＦＩＲフィルタと第２のＦＩＲフィルタは、それぞれタップ数が異なってもよいし、各タップにおける係数が異なってもよい。
【００２６】
まず、マイクロスケジューラ２０への設定Ｓ０２において、プロセッサ２２が、マイクロスケジューラ２０に対し、第１と第２のＦＩＲフィルタの演算に関する設定内容３００を設定する。ここで、１つのＦＩＲフィルタ演算を処理単位とするので、設定される設定内容３００のうち、全処理数４０には２が設定される。さらに、第１の設定情報４２に第１のＦＩＲフィルタに関する設定情報が設定され、第２の設定情報４４に第２のＦＩＲフィルタに関する設定情報が設定される。
【００２７】
第１の設定情報４２の演算の内容は、第１のＦＩＲフィルタ演算に関する内容であって、タップ数、各タップにおける係数を指す。第２の設定情報４４の演算の内容も、第１の設定情報４２の内容と同様に、第２のＦＩＲフィルタに関する内容が設定される。
【００２８】
第１の設定情報４２の入力メモリ１２の開始アドレスは、入力メモリ１２に格納されているデータの読み出し開始アドレスを指す。また、第２の設定情報４４の入力メモリ１２の開始アドレスは、出力メモリ１８に格納されているデータの読み出し開始アドレスを意味する。出力メモリ１８に格納されているデータは第１のＦＩＲフィルタの演算結果であり、第２のＦＩＲフィルタは、その第１のＦＩＲフィルタの演算結果を入力として行われるからである。
【００２９】
第１の設定情報４２の出力メモリ１８の開始アドレスは、後に行われる演算部１６による第１のＦＩＲフィルタに係る演算結果を出力メモリ１８に格納する際の書き込み開始アドレスを指す。また、第２の設定情報４４の出力メモリ１８の開始アドレスは、後に行われる演算部１６による第２のＦＩＲフィルタに係る演算結果を出力メモリ１８に格納する際の書き込み開始アドレスを指す。
【００３０】
第１の設定情報４２の終了タイミングは、第１のＦＩＲフィルタ演算の処理時間、すなわち、演算の数を指す。また、第２の設定情報４４の終了タイミングは、第２のＦＩＲフィルタ演算の処理時間を指す。ここで、各々の終了タイミングは、プロセッサ２２が、対応するＦＩＲフィルタ演算に要する処理時間を、予め求めたものとなる。演算部１６における演算内容、および処理データ数に基づいて算出してもよい。
【００３１】
次に、動作開始の指示Ｓ０４において、プロセッサ２２が信号処理装置１０に内在するマイクロスケジューラ２０に対して、動作開始の指示を行う。
【００３２】
以上のマイクロスケジューラ２０への設定Ｓ０２、動作開始の指示Ｓ０４が、プロセッサ２２における処理となる。以後、マイクロスケジューラ２０への設定Ｓ０２に係る演算が信号処理装置１０にて完了するまで、プロセッサ２２は信号処理装置１０に介入することはない。
【００３３】
次に、信号処理装置１０の内部における処理を順に説明する。本例においては、マイクロスケジューラ２０への設定Ｓ０２において、所定の演算を直列接続された第１と第２の２つのＦＩＲフィルタからなる演算とし、また、その処理単位を各々のＦＩＲフィルタ演算としている。以下、処理単位ごとに説明をする。
【００３４】
まず、第１の処理単位である第１のＦＩＲフィルタに関する動作について説明する。
【００３５】
まず、設定処理Ｓ０６において、マイクロスケジューラ２０の演算設定部３２は、演算部１６に対し、演算内容の設定を行う。演算内容の設定とは、プロセッサ２２から予め設定された設定内容３００のうち、第１の設定情報４２の演算の内容、すなわち、第１のＦＩＲフィルタに関する内容を指す。
【００３６】
また、設定処理Ｓ０６において、マイクロスケジューラ２０のアドレッシング部３０は、入力メモリ１２に対し、アドレッシングを行う。アドレッシングは、プロセッサ２２から予め設定された設定内容３００のうち、第１の設定情報４２の入力メモリ１２の開始アドレスを入力メモリ１２に伝えることを指す。同様に、マイクロスケジューラ２０のアドレッシング部３０は、出力メモリ１８に対し、第１の設定情報４２の出力メモリ１８の開始アドレスのアドレッシングを行う。
【００３７】
次に、切替処理Ｓ０８において、マイクロスケジューラ２０の選択制御部２８は、選択部１４に対し、演算部１６に出力するデータ元を切り替える。ここでは、処理単位のうち、初めの処理であるので、選択部１４は入力メモリ１２側に切り替えられる。
【００３８】
次に、演算処理Ｓ１０において、マイクロスケジューラ２０の演算部１６は、設定処理Ｓ０６において設定された演算内容を、選択部１４から出力されたデータに対して行い、出力メモリ１８に演算結果を格納する。ここでは、設定処理Ｓ０６において設定された入力メモリ１２の開始アドレスの格納されているデータに対しての第１のＦＩＲフィルタ演算となる。
【００３９】
ここで、進行制御部３６は、動作開始の指示Ｓ０４において、プロセッサ２２からマイクロスケジューラ２０に動作開始の指示があったときのタイミングでカウンタを０とし、時間の進行とともにカウンタの値を増加する。アドレス生成部３８は、カウンタの増加に伴って、入力メモリ１２の開始アドレスをもとに、アドレスを生成する。生成されたアドレスを用いて、アドレッシング部３０は入力メモリ１２に対しアドレッシングを行う。同様に、アドレッシング部３０は、出力メモリ１８に対しても、出力メモリ１８の開始アドレスをもとにしたアドレッシングを行う。
【００４０】
次に、第１の終了判定Ｓ１２において、終了判定を行う。ここでは、設定処理Ｓ０６において設定された第１の設定情報４２のうちの第１の終了タイミングと、進行制御部３６におけるカウンタの値とが一致しているか否かで判定される。双方の値が一致していない場合は、まだ演算部１６において第１のＦＩＲフィルタ演算が終了していないと判断され、第１の終了判定Ｓ１２の分岐のうち、”Ｎｏ”で示した矢印に従って、演算処理Ｓ１０に処理が戻る。一方、双方の値が一致している場合は、演算部１６において第１のＦＩＲフィルタ演算が終了したと判断され、第１の終了判定Ｓ１２の分岐のうち、”Ｙｅｓ”で示した矢印に従って、第２の終了判定Ｓ１４に処理が移る。
【００４１】
第２の終了判定Ｓ１４においては、処理単位の演算についての終了判定が行われる。具体的には、処理単位の演算が設定処理Ｓ０６において設定された全処理数４０の値だけ繰り返されたかどうかによって判定される。ここでは、まだ、第２のＦＩＲフィルタ演算が行われていないので、未終了と判断され、第２の終了判定Ｓ１４の分岐のうち、”Ｎｏ”矢印に従って、選択部１４への出力Ｓ１６に処理が移る。
【００４２】
次に、選択部１４への出力Ｓ１６において、出力メモリ１８に格納されている第１のフィルタ演算の結果が、選択部１４へ転送される。選択部１４へ転送は、プロセッサバス２６ではなく、信号処理装置１０内の専用バス２４を介して行われる。
【００４３】
次に、第２の処理単位である第２のＦＩＲフィルタ演算の動作について説明する。第１のＦＩＲフィルタ演算と同様に、第２の処理単位である第２のＦＩＲフィルタ演算が、設定処理Ｓ０６、切替処理Ｓ０８、演算処理Ｓ１０、第１の終了判定Ｓ１２において行われる。以下、第１のＦＩＲフィルタ演算と異なる点を主に説明する。
【００４４】
設定処理Ｓ０６においては、演算部１６に対する設定内容が、第２の設定情報４４の演算の内容となる点以外は、第１のＦＩＲフィルタ演算の場合と同様である。
【００４５】
一方、マイクロスケジューラ２０のアドレッシング部３０におけるアドレッシングは、第１のＦＩＲフィルタ演算のときとは異なり、出力メモリ１８に対し、第２の設定情報４４の「入力メモリの開始アドレス」を出力メモリ１８に伝えることを指す。さらに、出力メモリ１８に対し、第２の設定情報４４の出力メモリの開始アドレスのアドレッシングを行う。
【００４６】
ここで、第２の処理単位である第２のＦＩＲフィルタ演算における切替処理Ｓ０８においては、第１のＦＩＲフィルタ演算の場合とは異なり、演算部１６の入力元を出力メモリ１８に切り替える処理を行う。すなわち、第２のＦＩＲフィルタ演算の入力データを、第１のＦＩＲフィルタ演算の出力データとなるように切り替え処理を行うこととなる。
【００４７】
次の演算処理Ｓ１０においては、マイクロスケジューラ２０の演算部１６における演算が、設定処理Ｓ０６において設定された第２の演算内容、すなわち第２のＦＩＲフィルタ演算とする点、および、演算対象となるデータは、設定処理Ｓ０６において設定された入力メモリの開始アドレスの格納されているデータであって、かつ選択部１４から出力されたデータとなる点、さらに、アドレッシング部３０が、すでに動作している進行制御部３６のカウンタの値と第２の設定情報４４の入力メモリ１２の開始アドレスをもとに、アドレスを切り替える点以外は、第１のＦＩＲフィルタ演算の場合と同様である。
【００４８】
次の第１の終了判定Ｓ１２においては、終了判定に、設定処理Ｓ０６において設定された第２の設定情報４４のうちの第２の終了タイミングを用いる点以外は、第１のＦＩＲフィルタ演算の場合と同様である。
【００４９】
第２の終了判定Ｓ１４においては、処理単位の演算についての終了判定が行われる。この段階では、すでに、第１，第２のＦＩＲフィルタ演算の双方が完了しているので、終了と判断され、第２の終了判定Ｓ１４の分岐のうち、”Ｙｅｓ”で示した矢印に従って、プロセッサ２２への出力Ｓ２０に処理が移る。なお、第１、第２のＦＩＲフィルタ演算の次の処理単位に係る演算が設定内容３００に設定されている場合は、終了と判断されず、第２の終了判定Ｓ１４の分岐のうち、”Ｎｏ”で示した矢印に従って、選択部への出力Ｓ１６に処理が移り、以後同様に処理が繰り返されることとなる。
【００５０】
プロセッサ２２への出力Ｓ２０において、マイクロスケジューラ２０のアドレッシング部３０は、出力メモリ１８に対し、格納されている演算結果をプロセッサ２２に転送するためのアドレッシングを行う。このとき、プロセッサ２２への転送は、信号処理装置１０の外部に設けられている汎用のプロセッサバス２６を介して行われる。
【００５１】
以上のような構成をとることにより、プロセッサ２２の介入なしに、マイクロスケジューラ２０は自律的に所定の演算を行うことができるため、プロセッサ２２の負荷を低減することができる。
【００５２】
次に、本発明の実施例の変形例を示す。変形例は、図１中の信号処理装置１０における入力メモリ１２がブロック化され、サイクリックバッファとして使用する場合である。サイクリックバッファとは、メモリ内を複数のブロックに分け、各ブロック内で巡回してデータを格納するバッファを指す。ここで、ブロック数、各ブロックのサイズは、プロセッサ２２が、予めマイクロスケジューラ２０に設定するものとする。
【００５３】
サイクリックバッファの構成、動作について、図５から図８を用いて説明する。
【００５４】
図５は、図１の入力メモリ１２がサイクリックバッファ５００であるときの構成図を示す図である。ここで、サイクリックバッファ５００は、３つのブロック（第１のブロック５０、第２のブロック５２、第３のブロック５４）から構成されるものと仮定した。第１のブロック５０は３つのアドレス領域を有する。また、第２のブロック５２は２つのアドレス領域を有する。また、第３のブロック５４は、４つのアドレス領域を有する。
【００５５】
図６は、図２のマイクロスケジューラ２０内のアドレス生成部３８の構成を示す図である。アドレス生成部３８は、第１の剰余器６０と、第２の剰余器６２と、第３の剰余器６４を含む。さらに、アドレス生成部３８は、第１の加算器６６と、第２の加算器６８と、第３の加算器７０と、第４の加算器７２と、第５の加算器７４と、第６の加算器７６を含む。
【００５６】
剰余器（６０、６２、６４）は、入力されるカウンタの値を被剰余数とし、それぞれに与えられた剰余数を使って剰余演算を行う。この剰余演算を行うための剰余器は、ブロックの数だけ必要となる。詳細は後述するが、各ブロック内を巡回して使用するため、剰余演算を行っている。各剰余器（６０，６２，６４）の剰余数は、サイクリックバッファ５００の各ブロック（５０，５２，５４）のサイズとなる。具体的には、第１の剰余器６０の剰余数は第１のブロック５０のサイズである”３”を指す。また、第２の剰余器６２の剰余数は第２のブロック５２のサイズである”２”を指す。また、第３の剰余器６４の剰余数は第３のブロック５４のサイズである”４”を指す。
【００５７】
第１から第６までの加算器（６６、６８、７０、７２、７４、７６）は、それぞれ２つの入力に対する加算を行って演算結果を出力する回路である。
【００５８】
第１のブロック５０に係るアドレス１を生成するために、第４の加算器７２は、第１の剰余器の演算結果と第１のブロック５０の開始アドレス”１００”との加算を行う。
【００５９】
また、第２のブロック５２のアドレス２を求めるために、まず、第１の加算器６６において、第２の剰余器６２の剰余結果と第１のブロック５０のサイズである”３”との加算を行う。言い換えると、第２の剰余器６２の剰余結果と、第１のブロック５０の開始アドレス”１００”と第２のブロック５２の開始アドレス”１０３”のオフセットである”３（＝１０３−１００）”の加算を行っている。さらに、第５の加算器７４において、第１のブロック５０の開始アドレス”１００”との加算を行うことによって、第２のブロック５２のアドレス２が生成されることとなる。
【００６０】
また、第３のブロック５４のアドレス３を求めるために、まず、第３の加算器７０において、第１のブロック５０のサイズである”３”と、第２のブロック５２のサイズである”２”とを加算する。さらに、第２の加算器６８において、第３の加算器７０の演算結果である”５”と、第３の剰余器６４の剰余結果との加算を行う。さらに、第６の加算器７６において、第１のブロック５０の開始アドレス”１００”との加算を行うことによって、第３のブロック５４のアドレス３が生成されることとなる。
【００６１】
上記において、６つの加算器を用いて各ブロックのアドレスを生成したが、それぞれのアドレスの生成に対し１つの加算器を設けてもよい。その場合は、各々の剰余結果と、各ブロックの開始アドレスを加算すれば、上記と同様に各々のアドレスを生成することができる。また、ブロックの数が多くなった場合も、剰余器、加算器を増加することによって、同様にアドレスを生成することができる。
【００６２】
図７は、図６のアドレス生成部３８の入出力結果７００を示す図である。入出力結果７００は、図６におけるカウンタを”０”から”４”まで進めたときに、生成されるアドレス１、アドレス２、アドレス３をそれぞれ示した図となっている。
【００６３】
ここで、例として、下記に示す入力データを、プロセッサ２２から入力メモリ１２に格納する場合について説明する。
【００６４】
入力データ：｛ｄ１、ｄ２、ｄ３、ｄ４、ｄ５｝
【００６５】
この場合、まず、進行制御部３６は、カウンタの初期値を”０”とし、順に”４”まで増加させていく。このとき、カウンタが”０”の状態でｄ１が入力メモリ１２に格納され、また、カウンタが”１”の状態でｄ２が入力メモリ１２に格納され、以後、同様にカウンタが”４”の状態まで進み、順に入力データが入力メモリ１２に格納されていく。
【００６６】
入力メモリ１２にデータが格納される際には、アドレッシング部３０が各データの格納先のアドレスを生成する。具体的には、図７で示したようなアドレスが生成される。このとき、カウンタの値が増加するにつれ、各データは順に、入力メモリ１２内に図８に示すように格納されていく。
【００６７】
図８は、カウンタの値ごとの、入力メモリ１２内の格納されたデータを示す図である。カウンタの値が増加するにつれ、順にデータが格納されていく様子が見てとれる。ここで、カウンタの値が”３”のときのアドレス”１００”に格納されているデータは、ｄ４となっている。この領域は、カウンタの値が”２”であったときには、ｄ１が格納されていたものの、カウンタの値が”３”の状態になったときに、ｄ４が上書きされたことを示している。ここでは、カウンタが”３”になる前に、ｄ１は、選択部１４に出力されているので、損失することはない。なお、上書きされる前に、他の領域にｄ１を待避することによってデータの損失を防いでもよい。
【００６８】
次に、本発明の実施例の変形例を示す。変形例は、所定のデータを受信する受信部と、受信部から出力されたデータの信号処理を行い、かつ、所定の送信データの信号処理を行って所望の信号を出力する信号処理装置１０と、信号処理装置１０から出力された所望の信号を送信する送信部と、受信部と送信部と信号処理装置を制御するプロセッサ２２と、を有することを特徴とする通信機器である。
【００６９】
マイクロスケジューラ２０を備えた信号処理装置１０を通信機器に備えることによって、マイクロスケジューラ２０の自律動作機能によりプロセッサの負荷を軽減できるので、通信機器を小型化することができる。
【００７０】
次に、本発明の実施例の別の変形例を示す。図９は、連続するデータ列のデシメーション処理を行う３つのＦＩＲフィルタの演算を実行する場合のタイミングチャート９００を示す図である。図９において、ＳＣＨ１、ＳＣＨ３，ＳＣＨ５，ＳＣＨ６および処理１０１は、３つのＦＩＲフィルタのうち、最初のＦＩＲフィルタの処理を指す。また、ＳＣＨ０，ＳＣＨ４および処理１は、３つのＦＩＲフィルタのうち、２番目のＦＩＲフィルタの処理を指す。また、ＳＣＨ２および処理１０２は、３つのＦＩＲフィルタのうち、最後のＦＩＲフィルタの処理を指す。
【００７１】
図９に示すように、各処理は、各演算の段階において均一の回数だけ行われるわけではない。ＦＩＲフィルタ演算の処理タイミングやデータの取り込みタイミングは、信号処理装置１０を含む通信機器等の装置全体におけるタイミングに左右されることとなるからである。
【００７２】
次に、本発明の実施例の別の変形例を示す。図１０は、図５のメモリ領域を４ブロックとした場合の構成を示す図である。図１０において各ブロックは、ＦＩＦＯの構成をとっているため、各ブロックの最初のアドレスには最新のデータが格納され、また、最後のアドレスには最古のデータが格納されることとなる。さらに、カウントアップ信号の増加にともなって、各ＦＩＦＯカウンタが増加する。このとき、各ブロックの領域の外側にデータが書き込まれないようにするために、ＦＩＦＯカウンタを各ブロックのサイズで剰余演算を行っている。
【００７３】
次に、本発明の実施例の別の変形例を示す。図１１は、図５のメモリ領域を１２ブロックとした場合の、図２のアドレス生成部３８の構成を示す図である。アドレス生成部３８は、しきい値判定部８０、セレクタ８２、第１の加算器８４、第２の加算器８６、剰余器８８、合成器９０を含む。図１１においては、まず、プロセッサ２２、または内部の回路である信号処理装置１０が指定するアクセスアドレスを用いて、しきい値判定部８０にてしきい値判定を行ってどのブロックの処理であるかを判定し、また、判定されたブロックの先頭アドレスと最終アドレスを生成する。次に、セレクタ８２はカウンタ値とブロック番号を用いて対応するＦＩＦＯカウンタ値を出力する。さらに、第１の加算器８４において、指定されたアクセスアドレスおよびＦＩＦＯカウンタ値を加算する。さらに、加算された値と当該ブロックの最終アドレスと、第２の加算器によって先頭アドレスと最終アドレスを加算した結果とに基づき、剰余器８８にて剰余演算を行う。最後に、第１の加算器８４の出力と剰余器８８の出力を合成して、メモリにアクセスする実体アドレスを生成する。
【００７４】
本実施例によれば、演算途中にプロセッサ２２が介入することがないので、高速に演算を実行することができる。また、演算途中にプロセッサバスを使わないので、他の回路がプロセッサバスを占有することができる。また、プロセッサ２２の負荷が少ないので、プロセッサ２２は、演算中に他の処理を行うことができ、システム全体の効率を改善できる。また、予めマイクロスケジューラ２０に演算の種類を設定することによって、さまざまな演算を行わせることができる。また、メモリをサイクリックバッファとして使用することによって、効率的にメモリを使用することができる。また、剰余演算を用いることによって、サイクリックバッファへのアドレッシングを簡易な構成で行うことができる。また、サイクリックバッファが多数のブロックからなる場合であっても、カウンタを１つ備えるだけでアドレス生成を行うことができる。また、演算器にさまざまな演算を行わせることで、汎用性をもった信号処理回路を実現することができる。また、信号処理回路が汎用性をもつことで、システム全体の回路規模を低減することができる。また、システム全体の回路規模を低減したことで、信号処理装置１０を含む通信機器全体の軽量化を図ることができる。また、通信機器全体を軽量化したことで、安価に機器を製造することができる。
【００７５】
本発明の実施例において、各設定情報（４２，４４，４６）における終了タイミングは、各処理の演算時間として説明した。しかしながらこれに限らず、各処理における演算する数としてもよい。また、各設定情報（４２，４４，４６）の１つとして、「全処理数」が設定されるとして説明した。しかしながらこれに限らず、各設定情報（４２，４４，４６）の各々に、各設定情報が有効か否かを示すイネーブルを設定し、さらに、全処理数の代わりに、有効なイネーブルの総数を設定してもよい。また、アドレス生成部３８は、各処理において使用されるメモリにアクセスするアドレスを生成する際に、カウンタの増加にともなってアドレスを１づつ増加するのではなく、２以上の値で増加させてもよい。この場合、各設定情報（４２，４４，４６）の各々に、カウンタの増加に伴うアドレスを増加させる値として、その増加する値を追加して設定すればよい。また、各設定情報（４２，４４，４６）に、さらに、各処理のスケジュール起動時間を設定してもよい。この場合は、進行制御部３６が、カウンタと各処理のスケジュール起動時間が一致した場合に、各処理を開始する制御を行う。
【００７６】
本発明の実施例において、進行制御部３６は、１つのカウンタを制御するとして説明した。しかしながらこれに限らず、各処理において別個にカウンタを制御するために、処理数分だけカウンタを備えていてもよい。この場合、演算対象となるデータのレートが異なっている場合にも対応することのできる信号処理装置となる。
【００７７】
本発明の実施例において、信号処理装置１０の行う演算は、直列接続された２つのフィルタ演算として説明した。しかしながらこれに限らず、相関演算としてもよい。その場合は、相関係数がマイクロスケジューラ２０に設定されることとなる。また、同一の入力データに対して、複数の相関演算を行う場合は、相関演算の個数分の相関係数をマイクロスケジューラ２０に設定すればよい。この場合、演算部１６は１つで構成されていてもよく、複数で構成されていてもよい。いずれの場合も、マイクロスケジューラ２０に設定されるタイミングによって制御することができる。
【００７８】
本発明の実施例において、信号処理装置１０は、演算部１６を１つ有するとして説明したが、複数有していてもよい。また、演算部１６は、単なる四則演算、入力をそのまま出力する、ビット反転などの演算を行うことができてもよい。また、複数のタップ数を有するフィルタ全体として説明したが、１タップごとの処理でもよい。また、各ＦＩＲフィルタの各タップにおける係数をマイクロスケジューラ２０を介して演算部１６に与えるとして説明したが、別途、係数メモリを備えさせ、プロセッサ２２によって、プロセッサバス２６経由にて与えてもよい。その場合は、アドレッシング部３０が、係数メモリに対しアドレッシングすることによって入出力制御をすることができる。また、係数メモリを複数備えてもよい。その場合は、例えば、１つの入力データ系列に対し、複数の相関演算を並列に実行することができる。
【００７９】
本発明の実施例において、入力メモリ１２をサイクリックバッファとして使用すると説明したが、出力メモリ１８もサイクリックバッファとして使用してもよい。
【００８０】
本発明の実施例において、終了タイミングは、動作開始からの絶対タイミングとしたが、相対タイミングとしてもよい。その場合は、１つ前の処理単位が終了するタイミングを０として進行制御部３６が制御すればよい。
【００８１】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施の形態に係る信号処理装置とプロセッサの構成を示す図である。
【図２】図１のマイクロスケジューラの構成を示す図である。
【図３】図１のマイクロスケジューラに設定される設定内容を示す図である。
【図４】図１の信号処理装置とプロセッサのフローチャートを示す図である。
【図５】図１の入力メモリがブロック化されたときの構成を示す図である。
【図６】図２のアドレス生成部の構成を示す図である。
【図７】図６のアドレス生成部の入出力結果を示す図である。
【図８】図５の入力メモリ内に格納されたデータを示す図である。
【図９】本発明の実施の形態に係るタイミングチャートを示す図である。
【図１０】図５のメモリ領域を４ブロックとした場合の構成を示す図である。
【図１１】図２のアドレス生成部の構成を示す図である。
【符号の説明】
【００８３】
１０ 信号処理装置、１２  入力メモリ、１４  選択部、１６  演算部、１８  出力メモリ、２０  マイクロスケジューラ、２２  プロセッサ、２４  専用バス、２６  プロセッサバス、２８  選択制御部、３０  アドレッシング部、３２  演算設定部、３４  検知部、３６  進行制御部、３８  アドレス生成部、４０  全処理数、４２  第１の設定情報、４４  第２の設定情報、４６  第Ｎの設定情報、５０  第１のブロック、５２  第２のブロック、５４  第３のブロック、６０  第１の剰余器、６２  第２の剰余器、６４  第３の剰余器、６６  第１の加算器、６８  第２の加算器、７０  第３の加算器、７２  第４の加算器、７４  第５の加算器、７６  第６の加算器、８０  しきい値判定部、８２  セレクタ、８４  第１の加算器、８６  第２の加算器、８８  剰余器、９０  合成器、３００  設定内容、４００  フローチャート、５００  サイクリックバッファ、７００  入出力結果、９００  タイミングチャート。
【図１】
2006260411.tif 000003
【図２】
2006260411.tif 000004
【図３】
2006260411.tif 000005
【図４】
2006260411.tif 000006
【図５】
2006260411.tif 000007
【図６】
2006260411.tif 000008
【図７】
2006260411.tif 000009
【図８】
2006260411.tif 000010
【図９】
2006260411.tif 000011
【図１０】
2006260411.tif 000012
【図１１】
2006260411.tif 000013