(57)【特許請求の範囲】
【請求項１】
ホストプロセッサーと、
サブプロセッサーと、
ホストプロセッサー用プログラム及びサブプロセッサー用プログラムが格納されるメモリーと、前記ホストプロセッサーと、前記サブプロセッサーとの間のバス制御を行うバスコントローラーと、
クロック生成回路と、
を含み、
前記サブプロセッサーは、
前記サブプロセッサー用プログラム命令をフェッチする命令フェッチ部と、
レジスター部と、
前記サブプロセッサープログラム命令をデコードする命令デコード部と、
前記命令デコード部の出力に基づいて命令の実行処理を行う演算部と、
前記バスコントローラーとの間のインターフェイス処理を行うバスコントローラーインターフェイスと、
を含み、
前記ホストプロセッサーは、
前記サブプロセッサー用プログラムの格納先を示すプログラムカウンター値及びサブプロセッサーの処理開始コマンドを前記レジスター部に設定し、
前記クロック生成回路は、
前記処理開始コマンドが発行された後に前記ホストプロセッサーへのクロック供給を停止することで、前記ホストプロセッサーを休止状態に設定し、
前記サブプロセッサーの前記命令フェッチ部は、
前記プログラムカウンター値で指定される第１命令をフェッチし、
前記サブプロセッサーの前記命令デコード部は、
前記第１命令をデコードし、
前記サブプロセッサーの前記演算部は、
前記第１命令の実行処理を行い、
前記サブプロセッサーは、
前記サブプロセッサー用プログラムの処理終了命令が前記命令デコード部によりデコードされた場合に、前記クロック生成回路に対して処理完了信号を出力し、
前記クロック生成回路は、
前記処理完了信号を受けた場合に、前記ホストプロセッサーへのクロック供給を再開することで、前記ホストプロセッサーの動作を再開させることを特徴とする集積回路装置。
【請求項２】
請求項１において、
前記ホストプロセッサーは、
前記処理開始コマンドを発行した後にホルト命令を発行することで、前記クロック生成回路からのクロック供給を停止させることを特徴とする集積回路装置。
【請求項３】
請求項１又は２において、
前記バスコントローラーインターフェイスは、
前記ホストプロセッサーとの間のインターフェイス処理を行うホストインターフェイスと、
命令の実行のためのデータの読み出し又は書き込みを行うためのデータインターフェイスと、
を含むことを特徴とする集積回路装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記レジスター部は、データレジスターを有し、
前記演算部は、
前記バスコントローラーインターフェイスを介して前記データレジスターに書き込まれたデータと前記命令デコード部の出力とに基づいて、命令の実行処理を行うことを特徴とする集積回路装置。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記レジスター部は、前記バスコントローラーインターフェイスを介して読み出される又は書き込まれるデータのアドレス情報を格納するアドレスレジスターを有し、
前記アドレスレジスターのアドレス情報は、前記バスコントローラーインターフェイスを介して前記ホストプロセッサーにより書き込まれることを特徴とする集積回路装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記レジスター部は、前記サブプロセッサーが処理中であることを示すランビットを含む制御レジスターを有し、
前記処理完了信号が出力される際に前記ランビットがクリアされることを特徴とする集積回路装置。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記レジスター部は、オペレーションパラメーターレジスターを有し、
前記演算部は、
前記ホストプロセッサーにより前記オペレーションパラメーターレジスターにオペレーションパラメーターが書き込まれた場合に、
前記オペレーションパラメーターにより設定される内容の演算処理を行うことを特徴とする集積回路装置。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記レジスター部は、オペレーションパラメーターレジスターを有し、
前記演算部は、
前記サブプロセッサー用プログラムのオペレーションパラメーター設定命令により前記オペレーションパラメーターレジスターにオペレーションパラメーターが書き込まれた場合に、
前記オペレーションパラメーターにより設定される内容の演算処理を行うことを特徴とする集積回路装置。
【請求項９】
請求項１乃至８のいずれかに記載の集積回路装置を含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路装置及び電子機器等に関する。
【背景技術】
【０００２】
近年デジタル信号処理の分野では、高速でかつ低消費電力のデータ処理装置に対する要求が高まっている。特にセンサーを搭載した携帯機器（脈拍計、デジタルカメラ等）では、センサーの出力信号をリアルタイムにかつ低消費電力で処理する必要がある。この課題に対して、積和演算などデジタル信号処理に多用される演算処理を効率的に実行するための専用プロセッサー（サブプロセッサー）が開発されている。【０００３】
例えば特許文献１には、演算処理を行う専用データ処理ユニットと汎用処理を行う汎用データ処理ユニットとからなるデータ処理装置が開示されている。しかしながらこの手法では、これら２つのユニットで命令フェッチ部及びデータインターフェイスが共用されているために、協調動作の制約が大きいなどの課題があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−１４９４０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の幾つかの態様によれば、効率的にデータ処理を行うサブプロセッサー、集積回路装置及び電子機器等を提供できる。
【課題を解決するための手段】
【０００６】
本発明の一態様は、バスコントローラーを介してホストプロセッサーに接続されるサブプロセッサーであって、サブプロセッサー用プログラムの命令をフェッチするための命令フェッチ部と、レジスター部と、フェッチされた命令をデコードする命令デコード部と、デコード結果に基づいて命令の実行処理を行う演算部とを含み、前記ホストプロセッサーは、前記サブプロセッサー用プログラムの格納先を示すプログラムカウンター値及びサブプロセッサーの処理開始コマンドを前記バスコントローラーを介して前記レジスター部に設定し、前記命令フェッチ部は、前記プログラムカウンター値で指定される命令をフェッチし、前記命令デコード部は、前記命令をデコードし、前記演算部は、前記命令の実行処理を行うことを特徴とするサブプロセッサーに関係する。【０００７】
本発明の一態様によれば、サブプロセッサーは、バスコントローラーを介して命令をフェッチする命令フェッチ部を有するから、ホストプロセッサーを介することなく自立的にプログラムをロードして、命令の実行処理をすることができる。【０００８】
また本発明の一態様では、前記バスコントローラーとの間のインターフェイス処理を行うバスコントローラーインターフェイスを含んでもよい。【０００９】
このようにすれば、サブプロセッサーは、バスコントローラーインターフェイスを介して、自立的にサブプロセッサー用プログラムの命令をフェッチしたり、自立的に命令の実行のためのデータの読み出し又は書き込みを行うことができる。【００１０】
また本発明の一態様では、前記バスコントローラーインターフェイスは、前記ホストプロセッサーとの間のインターフェイス処理を行うホストインターフェイスを含んでもよい。【００１１】
このようにすれば、ホストプロセッサーは、ホストインターフェイスを介して、サブプロセッサーのレジスター部にアクセスすることができる。【００１２】
また本発明の一態様では、前記バスコントローラーインターフェイスは、命令の実行のためのデータの読み出し又は書き込みを行うためのデータインターフェイスを含んでもよい。【００１３】
このようにすれば、サブプロセッサーは、ホストプロセッサーを介さずに自立的にデータの読み出し又は書き込みをすることができる。【００１４】
また本発明の一態様では、前記レジスター部は、データレジスターを有し、前記演算部は、前記バスコントローラーインターフェイスを介して前記データレジスターに書き込まれたデータとデコード結果に基づく命令とに基づいて、命令の実行処理を行ってもよい。【００１５】
このようにすれば、サブプロセッサーの実行処理の開始前に、ホストプロセッサーが必要なデータをデータレジスターに書き込むことができる。【００１６】
また本発明の一態様では、前記レジスター部は、前記バスコントローラーインターフェイスを介して読み出される又は書き込まれるデータのアドレス情報を格納するアドレスレジスターを有し、前記アドレスレジスターのアドレス情報は、前記バスコントローラーインターフェイスを介して前記ホストプロセッサーにより書き込まれてもよい。【００１７】
このようにすれば、アドレスレジスターに格納されたアドレス情報に基づいて必要なデータの読み出し又は書き込みをすることができる。また、サブプロセッサーの実行処理の開始前に、ホストプロセッサーによりアドレス情報を書き込むことができる。【００１８】
また本発明の一態様では、前記サブプロセッサー用プログラムの処理終了命令がデコードされた場合に、処理完了信号を出力してもよい。【００１９】
このようにすれば、サブプロセッサーの実行処理が終了したことをホストプロセッサーに通知することができる。また、サブプロセッサーの実行処理中にホストプロセッサーへのクロック供給を停止していた場合には、処理完了信号によりクロック供給を再開することができる。【００２０】
また本発明の一態様では、前記レジスター部は、前記サブプロセッサーが処理中であることを示すランビットを含む制御レジスターを有し、前記処理完了信号が出力される際に前記ランビットがクリアされてもよい。【００２１】
このようにすれば、制御レジスターのランビットに１がセットされている場合には、サブプロセッサーが実行処理中であることを示し、ランビットが０にセットされている場合には、サブプロセッサーが実行処理を終了したことを示すことができる。【００２２】
また本発明の一態様では、前記レジスター部は、オペレーションパラメーターレジスターを有し、前記演算部は、前記ホストプロセッサーにより前記オペレーションパラメーターレジスターにオペレーションパラメーターが書き込まれた場合に、前記オペレーションパラメーターにより設定される内容の演算処理を行ってもよい。【００２３】
このようにすれば、サブプロセッサーの実行処理の開始前に、ホストプロセッサーがオペレーションパラメーターを書き込むことにより、算術右シフト制御などの演算処理に関するオプション制御の初期値を設定することができる。【００２４】
また本発明の一態様では、前記レジスター部は、オペレーションパラメーターレジスターを有し、前記演算部は、前記サブプロセッサー用プログラムのオペレーションパラメーター設定命令により前記オペレーションパラメーターレジスターにオペレーションパラメーターが書き込まれた場合に、前記オペレーションパラメーターにより設定される内容の演算処理を行ってもよい。【００２５】
このようにすれば、サブプロセッサー用プログラムに記述される命令によって、オペレーションパラメーターを書き込むことにより、算術右シフト制御などの演算処理に関するオプション制御をフレキシブルに実行することができる。【００２６】
本発明の他の態様は、上記に記載のサブプロセッサーと、前記サブプロセッサー及び前記ホストプロセッサーに接続される前記バスコントローラーとを含み、前記バスコントローラーは、前記ホストプロセッサー用プログラム及び前記サブプロセッサー用プログラムが格納されるメモリーと、前記ホストプロセッサーと、前記サブプロセッサーとの間のバス制御を行うことを特徴とする集積回路装置に関係する。【００２７】
本発明の他の態様によれば、サブプロセッサーが自立的にターゲットとするデータ処理を実行することができるから、サブプロセッサーの実行処理中に、ホストプロセッサーが上記処理とは直接依存関係のない処理を並行して行うことができる。その結果、データ処理を高速に実行することができる。【００２８】
また本発明の他の態様では、前記ホストプロセッサーを含んでもよい。【００２９】
また本発明の他の態様では、クロック生成回路を含み、前記クロック生成回路は、処理開始コマンドが実行された後に前記ホストプロセッサーへのクロック供給を停止し、前記サブプロセッサーの処理完了後に前記ホストプロセッサーへのクロック供給を再開してもよい。【００３０】
このようにすれば、サブプロセッサーの処理実行中は、ホストプロセッサーは動作しなくてもよいため、ホストプロセッサーの動作を休止することができるから、データ処理装置（集積回路装置）の消費電力を低減することができる。【００３１】
本発明の他の態様は、上記に記載の集積回路装置を含むことを特徴とする電子機器に関係する。
【図面の簡単な説明】
【００３２】
【図１】データ処理装置の基本的な構成例。
【図２】サブプロセッサーの構成例。
【図３】サブプロセッサーの基本的な動作のフローチャート。
【図４】サブプロセッサーの動作を説明する図。
【図５】サブプロセッサーの動作を説明する図。
【図６】サブプロセッサーの動作を説明する図。
【図７】命令コードの一例。
【図８】図８（Ａ）、図８（Ｂ）はレジスターのビット構成の一例。
【図９】データ処理装置の変形例。
【図１０】電子機器の一例。
【発明を実施するための形態】
【００３３】
以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００３４】
１．データ処理装置の基本的な構成例
図１は本実施形態のデータ処理装置（集積回路装置）の基本的な構成例を示す。図１に示すデータ処理装置（集積回路装置）２００は、ホストプロセッサー２１０とサブプロセッサー１００とが協調してデータ処理を行うシステムであって、サブプロセッサー１００、ホストプロセッサー２１０、バスコントローラー２２０及びメモリー２３０を含む。なお、データ処理装置２００は図１の構成に限定されず、その構成要素の一部を省略したり、他の構成要素に置き換えたり、他の構成要素を追加するなどの種々の変形実施が可能である。例えば、データ処理装置（集積回路装置）２００にホストプロセッサー２１０を含めないで、ホストプロセッサー２１０を外部の集積回路装置としてもよい。
【００３５】
サブプロセッサー１００（コプロセッサー）は、メモリー２３０に格納されたサブプロセッサー用プログラム２５０から命令をフェッチし、フェッチされた命令をデコードして、ターゲットとするデータ処理を行う。サブプロセッサー用プログラム２５０には、ターゲットとするデータ処理のための命令が記述されている。バスコントローラー２２０は、サブプロセッサー１００及びホストプロセッサー２１０に接続され、メモリー２３０と、ホストプロセッサー２１０と、サブプロセッサー１００との間のバス制御を行う。
【００３６】
図１に示すデータ処理装置によれば、サブプロセッサー１００が、ホストプロセッサー２１０から処理開始コマンドを受け取った場合には、サブプロセッサー１００は、ホストプロセッサー２１０を介することなく自立的にデータ処理を実行することができる。すなわち、サブプロセッサー１００は、バスコントローラー２２０を介してサブプロセッサー用プログラム２５０から命令をフェッチし、フェッチされた命令をデコードしてターゲットとするデータ処理を行う。サブプロセッサー１００は、バスコントローラー２２０を介してメモリー２３０から処理に必要なデータを読み出し、演算結果をメモリー２３０に書き込むことができる。自立的な実行処理が可能であるのは、後述するようにサブプロセッサー１００がバスコントローラーインターフェイス１５０を有するからである。
【００３７】
以上説明したように、本実施形態のデータ処理装置（集積回路装置）２００によれば、サブプロセッサー１００が自立的にターゲットとするデータ処理を実行することができるから、サブプロセッサー１００の実行処理中に、ホストプロセッサー２１０が上記処理とは直接依存関係のない処理を並行して行うことができる。その結果、データ処理を高速に実行することができる。また、サブプロセッサー１００の実行処理中に、ホストプロセッサー２１０の処理が不要となる場合には、ホストプロセッサー２１０の動作を休止することができるから、データ処理装置（集積回路装置）２００の消費電力を低減することができる。
【００３８】
なお、図１ではメモリー２３０はデータ処理装置（集積回路装置）２００に含まれているが、メモリー２３０をデータ処理装置（集積回路装置）２００の内部に設けることは必須ではない。メモリー２３０はデータ処理装置（集積回路装置）２００の外部にあってもよい。
【００３９】
２．サブプロセッサーの構成例
図２に本実施形態のサブプロセッサー１００の構成例を示す。図２に示すサブプロセッサー１００は、バスコントローラーインターフェイス１５０、レジスター部１３０、命令デコード部１４０及び演算部１６０を含む。さらにバスコントローラーインターフェイス１５０は、ホストインターフェイス１１０、命令フェッチ部１２０及びデータインターフェイスを含む。データインターフェイスは、Ｘバスリード部１７０、Ｙバスリード部１８０、Ｚバスライト部１９０を含む。なお、演算部１６０、Ｘバスリード部１７０、Ｙバスリード部１８０及びＺバスライト部１９０は、演算パイプライン部を構成する。
【００４０】
なお、本実施形態のサブプロセッサー１００は図２の構成に限定されず、その構成要素の一部を省略したり、他の構成要素に置き換えたり、他の構成要素を追加するなどの種々の変形実施が可能である。例えば、図２のようにバスコントローラーインターフェイス１５０が、ホストインターフェイス１１０、命令フェッチ部１２０、Ｘバスリード部１７０、Ｙバスリード部１８０及びＺバスライト部１９０から構成されることは必須の要件ではない。独立したホストインターフェイス１１０を設けずに、その代りにホストインターフェイスの機能を他の４つの構成要素のいずれかに持たせてもよい。
【００４１】
バスコントローラーインターフェイス１５０は、バスコントローラー２２０との間のインターフェイス処理を行う。具体的には、サブプロセッサー１００とバスコントローラー２２０を接続するためのインターフェイス処理を行う。バスコントローラーインターフェイス１５０は、ホストプロセッサー２１０との間のインターフェイス処理を行うホストインターフェイス１１０を含む。具体的には、ホストインターフェイス１１０は、ホストプロセッサー２１０がレジスター部１３０にレジスター値を書き込み又は読み出すためのインターフェイス処理を行う。またバスコントローラーインターフェイス１５０は、命令の実行のためのデータの読み出し又は書き込みを行うためのデータインターフェイスを含む。具体的には、データインターフェイスは、Ｘバスリード部１７０、Ｙバスリード部１８０、Ｚバスライト部１９０を含み、Ｘバスリード部１７０及びＹバスリード部１８０はデータの読み出しを行い、Ｚバスライト部１９０はデータの書き込みを行う。
【００４２】
命令フェッチ部１２０（プログラムインターフェイス）はサブプロセッサー用プログラム２５０の命令をフェッチし、命令デコード部１４０はフェッチされた命令をデコードする。演算部１６０は、デコード結果に基づいて命令の実行処理を行う。
【００４３】
レジスター部１３０は、制御レジスターＣＴＬ、プログラムカウンターＰＣ、アドレスレジスターＡ０〜Ａ３、データレジスターＤ０、Ｄ１、アキュムレーターレジスターＡＣＣ及びオペレーションパラメーターレジスターＯＰＲを含む。なおレジスター部１３０のレジスター構成はこれに限定されるものではない。
【００４４】
制御レジスターＣＴＬは、サブプロセッサー１００の実行処理の開始、停止及び割り込み信号の送出等の制御に関係するビットを有する。プログラムカウンターＰＣは、サブプロセッサー用プログラム２５０が格納されるアドレス（プログラムカウンター値）を格納する。アドレスレジスターＡ０〜Ａ３は、データインターフェイスを介して読み出される又は書き込まれるデータのアドレス情報を格納する。データレジスターＤ０、Ｄ１には、処理に必要なデータがホストインターフェイス１１０（広義にはバスコントローラーインターフェイス１５０）を介して書き込まれる。アキュムレーターレジスターＡＣＣは、演算部１６０における演算の途中結果を一時的に格納するためのものである。オペレーションパラメーターレジスターＯＰＲは、演算処理における種々のオプション制御をするためのオペレーションパラメーターを格納する。
【００４５】
図３は、サブプロセッサー１００の基本的な動作を説明するフローチャートである。また、図４〜図６は、サブプロセッサー１００の基本的な動作を説明するブロック図である。以下に、図３〜図６を用いて、サブプロセッサー１００の動作の各ステップＳ１〜Ｓ７について説明する。
【００４６】
まず、ステップＳ１では、図４のＢ１に示すように、ホストプロセッサー２１０が、サブプロセッサー用プログラム２５０の格納先を示すアドレス（プログラムカウンター値）を、ホストインターフェイス１１０（広義にはバスコントローラーインターフェイス１５０）を介して、プログラムカウンターＰＣにセットする。具体的には、ホストプロセッサー２１０が、書き込み制御信号と共に、プログラムカウンターＰＣのレジスターアドレス及びプログラムカウンター値をホストインターフェイス１１０に供給し、ホストインターフェイス１１０がプログラムカウンターＰＣに上記プログラムカウンター値をセットする。
【００４７】
次に、ステップＳ２では、図４のＢ２に示すように、ホストプロセッサー２１０が、ホストインターフェイス１１０（広義にはバスコントローラーインターフェイス１５０）を介して、アドレスレジスターＡ０〜Ａ３に必要なアドレス情報をセットする。このアドレス情報は、サブプロセッサー１００が処理する入力データの所在を示すアドレス及び出力データの格納先を示すアドレスである。さらに必要に応じて、ホストプロセッサー２１０は、サブプロセッサー１００が行うデータ処理に必要なデータを、データレジスターＤ０、Ｄ１にセットする。
【００４８】
次に、ステップＳ３では、図４のＢ３に示すように、ホストプロセッサー２１０が処理開始コマンドを発行する。具体的には、ホストプロセッサー２１０が、ホストインターフェイス１１０（広義にはバスコントローラーインターフェイス１５０）を介して、制御レジスターＣＴＬのランビット（Ｒｕｎビット）に１を書き込む。
【００４９】
次に、ステップＳ４では、図５のＢ４に示すように、サブプロセッサー１００が、サブプロセッサー用プログラム２５０の命令をフェッチし、フェッチされた命令をデコードして実行処理を開始する。具体的には、命令フェッチ部１２０がプログラムカウンター値を命令アドレスとしてバスコントローラー２２０に出力し、バスコントローラー２２０から命令コードを受け取りフェッチする。同時に、プログラムカウンター値を次の命令アドレスに更新する。さらに命令デコード部１４０は、命令コードをデコードし、必要な制御信号を生成し、演算部１６０を制御する。
【００５０】
演算パイプライン部は例えば以下のように演算処理を行う。Ｘバスリード部１７０及びＹバスリード部１８０は、命令デコード部１４０から供給される制御信号に基づき、命令コードで指定されたアドレスレジスターＡ０〜Ａ３が示すアドレス（メモリー２３０上の番地）からデータを読み出し、演算部１６０に供給する。演算部１６０は命令コードに基づく演算を行って、Ｚバスライト部１９０に結果を出力する。Ｚバスライト部１９０は、命令コードで指定されたアドレスレジスターＡ０〜Ａ３が示すアドレス（メモリー２３０上の番地）へ演算結果を書き込む。
【００５１】
サブプロセッサー１００が処理を実行している期間は、制御レジスターＣＴＬのランビット（Ｒｕｎビット）に１がセットされている。すなわち、ランビット（Ｒｕｎビット）にセットされた１は、サブプロセッサー１００が実行処理中であることを示す。
【００５２】
次に、ステップＳ５では、図６のＢ５に示すように、サブプロセッサー１００が処理終了命令をフェッチし、デコードする。処理終了命令は、例えばＥＸＩＴ命令等であって、図６のＢ６に示すように、サブプロセッサー用プログラム２５０に記述されている命令（例えばサブプロセッサー用プログラム２５０のプログラム処理終了のステップに記述されている命令）である。この命令をフェッチすると、サブプロセッサー１００は演算処理を終了する。
【００５３】
次に、ステップＳ６では、図６のＢ７に示すように、サブプロセッサー１００が制御レジスターＣＴＬの所定のビット（ランビット）をクリアする、すなわち、０を書き込む。
【００５４】
次に、ステップＳ７では、図６のＢ８に示すように、サブプロセッサー１００が処理完了信号を出力する。具体的には、サブプロセッサー１００が処理終了命令をフェッチすると、制御レジスターＣＴＬのＩＲＱビット（割り込み要求ビット）に１をセットする。ＩＲＱビットに１がセットされると、処理完了信号が出力される。
【００５５】
このように命令フェッチ部１２０（広義にはバスコントローラーインターフェイス１５０）及びデータインターフェイス（広義にはバスコントローラーインターフェイス１５０）を有することにより、サブプロセッサー１００は自立的にデータ処理を実行することができる。
【００５６】
以上説明したように、本実施形態では、バスコントローラー２２０等を介してホストプロセッサー２１０とのインターフェイス処理を行うためのホストインターフェイス１１０（広義にはバスコントローラーインターフェイス１５０）が設けられている。即ち、通常はこの種のサブプロセッサーには設けられていないホストインターフェイス１１０を設けている。そしてこのホストインターフェイス１１０を介して、サブプロセッサー用プログラムの格納先を示すプログラムカウンター値やサブプロセッサーの処理開始コマンドがレジスター部１３０に書き込まれる。従って、サブプロセッサー１００は、ホストプロセッサー２１０が処理開始コマンドを発行した後は、プログラムカウンターＰＣが指示するアドレス（プログラムカウンター値）から自立的にサブプロセッサー用プログラム２５０をロードし、ターゲットとするデータ処理を実行することができる。また、命令コードで指定されたアドレスレジスターが示すアドレスからデータを自立的に読み出し、書き込むことができる。
【００５７】
このように、本実施形態のサブプロセッサー１００は、ホストプロセッサー２１０を介することなしに、自立的にターゲットとするデータ処理を実行することができるから、サブプロセッサー１００の実行処理中に、ホストプロセッサー２１０が上記処理とは直接依存関係のない処理を行うことができる。その結果、データ処理を高速に実行することができる。また、サブプロセッサー１００の実行処理中に、ホストプロセッサー２１０の処理が不要となる場合には、ホストプロセッサー２１０の動作を休止することができるから、データ処理装置（集積回路装置）２００の消費電力を低減することができる。即ち、本実施形態では、バスコントローラーインターフェイス１５０をサブプロセッサー１００に設けることで、サブプロセッサー１００による自立的なデータ処理や低消費電力化等の実現を可能にしている。
【００５８】
３．命令コードの構成例
図７に、本実施形態のサブプロセッサー１００の命令コードの一例を示す。例えば、加算、減算、乗算などの演算命令コードは図７に示す構成を有する。
【００５９】
オペコードＯＰＣは演算の種類を示し、オペランドはデータの入出力方法を示す。オペランドは、さらに図７に示すように、データの入出力のためのアドレスレジスターを指定するフィールドＸＳ、ＹＳ、ＺＳ及びアクセス後に上記アドレスレジスターを更新するためのディスプレースメントを指定するフィールドＸＤＰ、ＹＤＰ、ＺＤＰから構成される。
【００６０】
具体的には、フィールドＸＳ、ＹＳは、それぞれＸバスリード部１７０及びＹバスリード部１８０がメモリー２３０からデータを読み込む際のメモリー上のアドレスを格納しているアドレスレジスターＡ０〜Ａ３を指定する。フィールドＺＳは、Ｚバスライト部１９０が演算結果を書き込む先のメモリー上のアドレスを格納しているアドレスレジスターＡ０〜Ａ３を指定する。また、オペランドフィールドは、メモリー２３０からデータを入出力するだけでなく、即値として入力データを指定したり、レジスター部１３０のデータレジスターＤ０、Ｄ１を指定することもできる。
【００６１】
４．レジスターの構成例
図８（Ａ）、図８（Ｂ）に本実施形態のサブプロセッサー１００のレジスターのビット構成の一例を示す。図８（Ａ）は制御レジスターＣＴＬの構成を示し、図８（Ｂ）はオペレーションパラメーターレジスターＯＰＲの構成を示す。
【００６２】
制御レジスターＣＴＬは、図８（Ａ）に示すように、ランビット（Ｒｕｎビット）及びＩＲＱビット（割り込み要求ビット）を含む。上述したように、ホストプロセッサー２１０が、ホストインターフェイス１１０を介して、制御レジスターＣＴＬのランビット（Ｒｕｎビット）に１を書き込むことによって、サブプロセッサー１００の実行処理が開始される。そして処理実行中はランビット（Ｒｕｎビット）に１がセットされる。また、サブプロセッサー１００が処理終了命令をフェッチすると、ＩＲＱビット（割り込み要求ビット）に１をセットする。ＩＲＱビットに１がセットされると、処理完了信号が出力される。
【００６３】
オペレーションパラメーターレジスターＯＰＲは、図８（Ｂ）に示すように、演算処理における種々のオプション制御をするためのオペレーションパラメーターを格納する。例えば、算術右シフト制御は、演算結果をメモリーに書き込む際の算術右シフトを制御する。飽和処理制御は演算結果をメモリーに書き込む際の飽和処理（クリッピング）を制御する。条件付きメモリー書き込み制御は、条件判定を伴うメモリー書き込みを制御する。
【００６４】
これらのオペレーションパラメーターは、ホストプロセッサー２１０により例えばホストインターフェイス１１０（広義にはバスコントローラーインターフェイス１５０）を介して書き込まれる。或いはサブプロセッサー用プログラム２５０のオペレーションパラメーター設定命令により書き込まれる。即ちサブプロセッサー用プログラム２５０に記述されるオペレーションパラメーター設定命令により、オペレーションパラメーターの内容を変更できる。
【００６５】
以上説明したように、本実施形態のサブプロセッサー１００では、ホストインターフェイス１１０を設けているから、このホストインターフェイス１１０を介してオペレーションパラメーターの例えば初期値等を設定できる。そしてサブプロセッサー用プログラム２５０に記述されるオペレーションパラメーター設定命令により、オペレーションパラメーターの内容を随時変更することができる。これによりオペレーションパラメーターによるフレキシブルなオプション制御を実現できる。
【００６６】
５．データ処理装置の変形例
図９は本実施形態のデータ処理装置（集積回路装置）の変形例を示す。図９のデータ処理装置（集積回路装置）２００は、図１に示した構成要素に加えてクロック生成回路２６０を含む。
【００６７】
上述したように、本実施形態のサブプロセッサー１００は、ホストプロセッサー２１０を介することなしに自立的にターゲットとするデータ処理を実行することができる。したがって、サブプロセッサー１００がデータ処理を実行している期間には、ホストプロセッサー２１０は動作を休止することができる。そしてサブプロセッサー１００の処理完了後に、ホストプロセッサー２１０は動作を再開すればよい。
【００６８】
具体的には、ホストプロセッサー２１０が処理開始コマンドをホストインターフェイス１１０（広義にはバスコントローラーインターフェイス１５０）を介してサブプロセッサー１００に発行した後は、サブプロセッサー１００が自立的に動作してデータ処理を実行する。従って、このサブプロセッサー１００のデータ処理期間では、ホストプロセッサー２１０の動作が必要でない場合に、ホストプロセッサー２１０はホルト命令（ＨＡＬＴ命令）等を発行して、クロック生成回路２６０からのクロック供給を停止させることで、ホストプロセッサー２１０は自らの動作を休止させることができる。こうすることで、データ処理期間では、ホストプロセッサー２１０が休止し、サブプロセッサー１００だけが動作するため、無駄な電力がホストプロセッサー２１０で消費されてしまう事態を防止できる。
【００６９】
一方、データ処理の完了後には、ホストプロセッサー２１０は休止状態であるため、サブプロセッサー１００からの処理完了信号を受け付けることができない。そこでサブプロセッサー１００が、ホストプロセッサー２１０ではなくクロック生成回路２６０に対して処理完了信号を出力し、これを受けたクロック生成回路２６０がホストプロセッサー２１０へのクロック供給を再開する。こうすることで、クロック供給が再開されたホストプロセッサー２１０は、再び動作を開始することが可能になり、例えばサブプロセッサー１００のデータ処理の結果を利用した演算処理等を実行できる。
【００７０】
このようにすれば、サブプロセッサー１００の処理実行中にホストプロセッサー２１０の動作を休止することができるから、データ処理装置（集積回路装置）２００の消費電力を低減することができる。
【００７１】
６．電子機器
図１０は本実施形態のデータ処理装置（集積回路装置）を含む電子機器の一例を示す。図１０の電子機器４００は、センサー３１０、検出回路３２０、Ａ／Ｄ変換器３３０及び処理部３４０を含む。処理部３４０は、本実施形態のデータ処理装置である集積回路装置２００により実現される。なお、検出回路３２０やＡ／Ｄ変換器３３０を、集積回路装置２００に組み込んで、１チップ構成にしてもよい。
【００７２】
電子機器４００は、例えば脈拍計、歩数計、デジタルカメラ等である。センサー３１０は、ジャイロセンサー、加速度センサー、フォトセンサー、圧力センサー等であって、電子機器４００の用途に応じたセンサーが用いられる。検出回路３２０はセンサー３１０からの出力信号（センサー信号）を増幅し、フィルターによりノイズを除去する。Ａ／Ｄ変換器３３０は増幅された信号をデジタル信号に変換して処理部３４０へ出力する。
【００７３】
処理部３４０は、Ａ／Ｄ変換器３３０からのデジタル信号に対して必要なデジタル信号処理を実行する。また検出回路３２０のゲイン制御等を行ってもよい。ここで、処理部３４０で行われるデジタル信号処理としては、例えばフーリエ変換等の処理を想定できる。
【００７４】
センサー３１０からのセンサー信号は一般的に微少振幅の信号であるため、センサー信号から所望信号を抽出するためには、検出回路３２０は、ノイズの少ない環境で所望信号の検出動作を行う必要がある。一方、微少振幅のセンサー信号から所望信号を抽出するためには、例えば高速フーリエ変換等の処理負荷が高いデータ処理が必要になる。
【００７５】
この点、本実施形態では、微少振幅のセンサー信号から所望信号を抽出するための処理負荷が高いデータ処理を、演算処理能力が高いサブプロセッサー１００により高速に実行できる。そして、この際に図９に示すようにホストプロセッサー２１０を休止状態にすることで、ホストプロセッサー２１０からのノイズが検出回路３２０に悪影響を及ぼすことも防止できる。
【００７６】
また、脈拍計、歩数計等の電子機器４００が、電池からの電源だけで、長時間動作するためには、無駄な電力の消費を抑える必要がある。この点、本実施形態では、サブプロセッサー１００の動作中にはホストプロセッサー２１０を休止状態にしたり、或いは逆にホストプロセッサー２１０の動作中にはサブプロセッサー１００を休止状態にすることができるため、無駄な電力の消費を抑えることができ、電池駆動の電子機器４００を長時間動作させることが可能になる。
【００７７】
なお、以上のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。またサブプロセッサー、集積回路装置及び電子機器の構成、動作も本実施形態で説明したものに限定されず、種々の変形実施が可能である。
【符号の説明】
【００７８】
１００  サブプロセッサー、１１０  ホストインターフェイス、１２０  命令フェッチ部、１３０  レジスター部、１４０  命令デコード部、１５０  バスコントローラーインターフェイス、１６０  演算部、１７０  Ｘバスリード部、１８０  Ｙバスリード部、１９０  Ｚバスライト部、２００  データ処理装置（集積回路装置）、２１０  ホストプロセッサー、２２０  バスコントローラー、２３０  メモリー、２４０  ホストプロセッサー用プログラム、２５０  サブプロセッサー用プログラム、２６０  クロック生成回路、２７０  データ、３１０  センサー、３２０  検出回路、３３０  Ａ／Ｄ変換器、３４０  処理部、４００  電子機器。
【図１】
0005549670.tif 000002
【図２】
0005549670.tif 000003
【図３】
0005549670.tif 000004
【図４】
0005549670.tif 000005
【図５】
0005549670.tif 000006
【図６】
0005549670.tif 000007
【図７】
0005549670.tif 000008
【図８】
0005549670.tif 000009
【図９】
0005549670.tif 000010
【図１０】
0005549670.tif 000011