(57)【要約】【課題】性能を低下させずに低消費電力化可能なシステムＬＳＩを提供する。【解決手段】専用データ処理ユニット（ＶＵ）１と汎用データ処理ユニット（ＰＵ）２とを有するデータ処理装置（ＶＵＰＵ）１０において、ＰＵ２の動作クロック信号ＭＣＬＫをＶＵ１から供給されるウェイト信号ＶＵＷＡＩＴＣにより停止することにより、ＰＵ２を休止状態にする。ＰＵ２を、プログラムにより休止状態にしなくても、ＰＵ２を含めてＶＵＰＵの動作状態を把握可能なＶＵ１の側からＰＵ２のクロックを制御することにより、適切なタイミングで適切な期間だけＰＵ２を休止させ、性能を低下させずに消費電力を低減できる。【選択図】        図３
2004199630.tif 000002
【特許請求の範囲】
【請求項１】
プログラム中の命令をフェッチおよびデコードし、その命令または制御信号を発行する命令発行ユニット、および前記プログラム中の汎用命令またはそれがデコードされた前記制御信号により汎用処理を実行する実行ユニットを備えた汎用データ処理ユニットと、
特定のデータ処理用のデータパス部を備え、前記プログラム中の専用命令またはそれがデコードされた前記制御信号により前記特定のデータ処理を実行する専用データ処理ユニットと、
前記専用データ処理ユニットが発行する、前記汎用データ処理ユニットが前記専用データ処理ユニットの処理待ちであることを示すウェイト信号に基づき、前記汎用データ処理ユニットの、割込み信号またはリセット信号を感知する割込み・リセット機能部を除いた部分に対する第１のクロック信号を停止する第１のクロック供給手段とを有するデータ処理装置。
【請求項２】
請求項１において、前記汎用データ処理ユニットは、前記汎用命令により前記第１のクロック供給手段に対して前記第１のクロック信号の停止を許可する第１のクロック管理機能部を備えており、この第１のクロック管理機能部へ前記専用データ処理ユニットからのウェイト信号が供給されているデータ処理装置。
【請求項３】
請求項２において、前記専用データ処理ユニットから前記第１のクロック管理機能部に供給されるウェイト信号は、前記第１のクロック信号の停止を許可する第１のウェイト信号と、前記第１のクロック信号の停止を許可しない第２のウェイト信号とを含んでいるデータ処理装置。
【請求項４】
請求項１において、前記専用データ処理ユニットに対し作動用の第２のクロック信号を供給する第２のクロック供給手段を有し、
前記汎用データ処理ユニットは、前記専用データ処理ユニットに対し前記専用命令またはそれをデコードした前記制御信号が供給される際に前記第２のクロック供給手段に前記第２のクロック信号の供給を許可する第２のクロック管理機能部を備えているデータ処理装置。
【請求項５】
請求項４において、前記ウェイト信号が前記第２のクロック管理機能部にも供給されており、前記ウェイト信号に基づき前記第２のクロック供給手段に対して前記第２のクロック信号の停止を許可するデータ処理装置。
【請求項６】
請求項１において、前記プログラムおよび／または前記汎用データ処理ユニットの処理対象となるデータを格納するメモリユニットと、
前記汎用データ処理ユニットが前記メモリユニットにアクセスすることを示すメモリ選択信号により前記メモリユニットに対し作動用の第３のクロック信号を供給する第３のクロック供給手段とを有するデータ処理装置。
【請求項７】
請求項６において、前記メモリユニットは複数のメモリブロックを備えており、前記第３のクロック供給手段は、前記汎用データ処理ユニットから出力されたアドレスにより選択された前記メモリブロックに前記第３のクロック信号を供給するデータ処理装置。
【請求項８】
請求項１において、前記プログラムを格納するメモリユニットと、
このメモリユニットに対する外部メモリからのダウンロードを制御するダウンロード制御ユニットと、
外部からのダウンロード開始信号により前記ダウンロード制御ユニットに対し作動用の第４のクロック信号を供給する第４のクロック供給手段とを有するデータ処理装置。
【請求項９】
請求項８において、前記汎用データ処理ユニットは、前記ダウンロード制御ユニットが動作するときにのみ稼動するダウンロード機能部を備えており、このダウンロード機能部には前記第４のクロック信号が供給されるデータ処理装置。
【請求項１０】
請求項１において、前記汎用データ処理ユニットおよび／または前記専用データ処理ユニットで処理中のデータを監視可能なデバッグユニットと、
外部からのデバッグ信号により前記デバッグユニットに対し作動用の第５のクロック信号を供給する第５のクロック供給手段とを有するデータ処理装置。
【請求項１１】
請求項１０において、前記汎用データ処理ユニットは、前記デバッグユニットが動作するときにのみ稼動するデバッグ機能部を備えており、このデバッグ機能部には前記第５のクロック信号が供給されるデータ処理装置。
【請求項１２】
プログラム中の命令をフェッチおよびデコードし、前記プログラム中の命令が汎用命令であると、その汎用命令またはその命令がデコードされた制御信号を汎用データ処理ユニットの実行ユニットに供給する工程と、
前記プログラム中の命令が専用命令であると、その専用命令またはその専用命令がデコードされた制御信号を特定のデータ処理用のデータパス部を備えた専用データ処理ユニットに供給する工程と、
前記専用データ処理ユニットが発行する、前記汎用データ処理ユニットが前記専用データ処理ユニットの処理待ちであることを示すウェイト信号に基づき、前記汎用データ処理ユニットの、割込み信号またはリセット信号を感知する割込み・リセット機能部を除いた部分に対する第１のクロック信号を停止する工程とを有するデータ処理装置の制御方法。
【請求項１３】
請求項１２において、前記ウェイト信号は、前記第１のクロック信号の停止を許可する第１のウェイト信号と、前記第１のクロック信号の停止を許可しない第２のウェイト信号とを含んでいるデータ処理装置の制御方法。
【請求項１４】
請求項１２において、前記専用データ処理ユニットに対し前記専用命令またはそれをデコードした前記制御信号が供給される際に、前記専用データ処理ユニットに対し作動用の第２のクロック信号を供給する工程を有するデータ処理装置の制御方法。
【請求項１５】
請求項１４において、前記ウェイト信号に基づき前記第２のクロック信号の停止を許可するデータ処理装置の制御方法。
【請求項１６】
請求項１２において、前記プログラムおよび／または前記汎用データ処理ユニットの処理対象となるデータを格納するメモリユニットに対し、前記汎用データ処理ユニットが前記メモリユニットにアクセスすることを示すメモリ選択信号により、作動用の第３のクロック信号を供給するメモリクロック制御工程を有するデータ処理装置の制御方法。
【請求項１７】
請求項１６において、前記メモリクロック制御工程では、前記メモリユニットは複数のメモリブロックを備えており、前記汎用データ処理ユニットから出力されたアドレスにより選択された前記メモリブロックに前記第３のクロック信号を供給するデータ処理装置の制御方法。
【請求項１８】
請求項１２において、前記プログラムを格納するメモリユニットへ外部メモリからのダウンロードを制御するダウンロード制御ユニットに対し、外部からのダウンロード開始信号により、作動用の第４のクロック信号を供給する工程を有するデータ処理装置の制御方法。
【請求項１９】
請求項１２において、前記汎用データ処理ユニットおよび／または前記専用データ処理ユニットで処理中のデータを監視可能なデバッグユニットに対し、外部からのデバッグ信号により、作動用の第５のクロック信号を供給する工程を有するデータ処理装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＲＡＭあるいはＲＯＭといったメモリユニットを搭載したデータ処理装置に関するものである。
【０００２】
【従来の技術】
携帯電話、携帯端末などのモバイル機器の性能は、情報・通信・ネットワークの進展に伴い飛躍的に伸長している。このモバイル機器は電池による動作が前提であるため、そのシステムを構成する中心となるＬＳＩに対しては低消費電力で動作することが極めて強い要求となっている。特開２０００−１１２５８５号公報には、１つまたは複数のハードウェアモジュールと、これらの動作をプログラムに従って制御するＣＰＵとを備えたシステムＬＳＩにおいて、ＣＰＵに対するクロック供給の停止を行うためのスリープ命令を実行することにより低消費電力化することが記載されている。
【０００３】
【特許文献１】
特開２０００−１１２５８５号公報
【０００４】
【発明が解決しようとする課題】
オフチップのキャパシタンスは、オンチップのキャパシタンスよりも非常に大きいので、複数のチップに分散されていた機能を１つのチップに集積させてシステムＬＳＩ化することは消費電力を低減する上でメリットの多い解決策である。さらに、システムＬＳＩ化された複数の機能をブロックに分け、それらに供給されるクロック信号を、プロセッサコアであるＣＰＵを含めて機能ブロック毎に制御することにより、さらに消費電力を低減することができる。しかしながら、プロセッサコアを無駄に休止させるとシステムＬＳＩの大幅な性能低下を招き、逆に、休止させなければ消費電力の削減効果は減ってしまう。ハードウェア制御によりプロセッサコアの条件を選択して休止状態を実現しようとすると、そのハードウェアを構成するために面積が占有され、消費電力が増加することが考えられる。一方、ソフトウェアのみで制御しようとすると、プロセッサコアを休止可能な期間の見積もりが容易ではないという問題がある。
【０００５】
特開２０００−１１２５８５号公報では、スリープ命令によりＣＰＵに対するクロック供給を停止し、ハードウェアモジュールの処理の終了を受けてＣＰＵに対するクロック供給を再開することにより、上記の問題を解決しようとしている。しかしながら、ＣＰＵに対するクロック供給を停止するためにはスリープ命令をプログラム中に配置する必要があり、適切なタイミングでＣＰＵに対するクロック供給を停止するためにはプログラム開発者は、ＣＰＵの動作を、すなわちＬＳＩの動作をすべて検証することが要求される。その中には、条件分岐や、割り込み処理なども含まれており、適切なタイミングで適切な期間だけＣＰＵを停止させるプログラムの開発には非常に多大な時間とコストが要求される。さらに、システムＬＳＩの開発においては、仕様変更やバージョンアップに伴う変更が常に発生する。したがって、そのような変更に対応してＣＰＵを適切に停止するようなプログラムの開発は至難の業であると言える。さらに、仕様の異なるＬＳＩを開発する度に、ＣＰＵを適切に停止するようなプログラムを開発することはＬＳＩの開発期間を延長する要因となり、短期間に市場に供給することが要求されている現在のシステムＬＳＩの開発環境にマッチしているものではない。したがって、現実に、プロセッサコアであるＣＰＵのクロックを停止して消費電力を低減できるようなシステムＬＳＩを提供できるような技術は開示されていないといえる。
【０００６】
そこで、本発明においては、短期間に開発が終了でき、適切にプロセッサコアのクロックを停止することができるシステムＬＳＩのアーキテクチャおよび制御方法を提供することを目的としている。さらに、プロセッサコアのクロックを制御する機能をプラットフォームアーキテクチャとして供給可能とし、アプリケーションや仕様の異なるＬＳＩの開発においても汎用的に適用できるようにすることを本発明の目的としている。
【０００７】
【課題を解決するための手段】
ＲＩＳＣプロセッサと同等の構成を備えた汎用なデータ処理ユニット（以降ではＰＵと称することがある）をプラットフォームとして、特定のデータ処理用のデータパス部を備えた専用データ処理ユニット（以降ではＶＵと称することがある）を搭載することにより専用回路を備えたシステムＬＳＩを開発することができる。そして、プログラム中の命令をデコードして実行ユニットに制御信号を発行する命令発行ユニットの機能を用いて、プログラム中の専用命令がデコードされた制御信号により専用データ処理ユニットを制御することにより、専用回路のメリットとプログラム制御のメリットとを両立させることができる。
【０００８】
このＰＵとＶＵとを備えた構成（ＶＵＰＵアーキテクチャ）は、専用回路を備えた高速処理が可能なシステムＬＳＩの開発期間を短縮し、さらに、開発中や開発後の仕様変更に対しても極めて柔軟に対応することができる。それと共に、ＰＵとＶＵとが並列に処理を実行することも可能であるが、多くのケースではＶＵにおいて専用回路を用いてデータ処理を実行している間は、エラー処理などが要求されないかぎりＰＵはＶＵの処理の終了を待つ状態が発生する。そして、ＶＵは専用化されているので、ＰＵがＶＵの処理の終了を待つ状態であるか否かの判断が可能である。したがって、ＶＵ側から、ＰＵがＶＵの処理待ちであることを示すウェイト信号を出力し、それによりＰＵに対する第１のクロック信号の供給を制御することによりプロセッサコアであるＰＵを適切なタイミングで適切に停止することが可能であり、ＰＵにおける消費電力を、システムＬＳＩであるデータ処理装置の性能を低下させることなく低減することができる。
【０００９】
さらに、ＰＵの内、割込み信号またはリセット信号を感知する割込み・リセット機能部はクロック信号の供給を継続し、休止させないことにより、ＰＵが休止状態であっても、ＶＵにおける処理が終了したり、他の条件からＰＵの休止を解除する必要が生じたときはいつでもＰＵを復帰させることができる。したがって、プログラムの開発段階において、命令によりＰＵのクロックを停止することも可能であるが、ＶＵ命令を記述するだけで、そのＶＵ命令の機能に適したタイミングでＰＵのクロックを適切に制御することができる。このため、プロセッサコアに対するクロックの停止機能を含んだプログラム開発に必要な時間とコストを大幅に低減できる。さらに、仕様変更などに伴いプログラムの変更が要求される場合においても、ＶＵ命令に関連するクロック停止機能は影響を受けず、プログラムの変更あるいは更新においてクロック制御がネックとなることも無い。
【００１０】
このようなＰＵおよびＶＵを備えたシステムＬＳＩを提供するアーキテクチャ（ＶＵＰＵ）においては、ＰＵのクロックを制御する機能をＶＵ側において実現することになり、ＰＵに依存しない。したがって、ＰＵをプラットフォームとするすべてのシステムＬＳＩに対して本発明を適用することが可能である。そして、ユーザロジックを含むＶＵの機能は、いったん開発されれば、それを資産として次のシステムＬＳＩの開発に十分に活かすことができ、そのＶＵの機能にＰＵのクロック制御の機能が加わることになる。したがって、既存のＶＵを含む新たなシステムＬＳＩを開発する段階で、ＰＵのクロック制御は自動的に取り込まれる。このため、短期間に開発が終了でき、適切にプロセッサコアのクロックを停止することができるシステムＬＳＩを提供できる。
【００１１】
すなわち、本発明のデータ処理装置は、プログラム中の命令をフェッチおよびデコードし、その命令または制御信号を発行する命令発行ユニット、およびプログラム中の汎用命令またはそれがデコードされた制御信号により汎用処理を実行する実行ユニットを備えた汎用データ処理ユニット（ＰＵ）と、特定のデータ処理用のデータパス部を備え、プログラム中の専用命令またはそれがデコードされた制御信号により特定のデータ処理を実行する専用データ処理ユニット（ＶＵ）と、専用データ処理ユニットが発行する、汎用データ処理ユニットが専用データ処理ユニットの処理待ちであることを示すウェイト信号に基づき、汎用データ処理ユニットの、割込み信号またはリセット信号を感知する割込み・リセット機能部を除いた部分に対する第１のクロック信号を停止する第１のクロック供給手段とを有する。
【００１２】
また、本発明のデータ処理装置の制御方法は、プログラム中の命令をフェッチおよびデコードし、プログラム中の命令が汎用命令（ＰＵ命令）であると、その汎用命令または汎用命令がデコードされた制御信号（本明細書では、制御信号も含めてＰＵ命令と記述される）を汎用データ処理ユニット（ＰＵ）の実行ユニットに供給する工程と、プログラム中の命令が専用命令（ＶＵ命令）であると、その専用命令または専用命令がデコードされた制御信号（本明細書では、制御信号も含めてＶＵ命令と記述される）を特定のデータ処理用のデータパス部を備えた専用データ処理ユニット（ＶＵ）に供給する工程と、専用データ処理ユニット（ＶＵ）が発行する、汎用データ処理ユニットが専用データ処理ユニットの処理待ちであることを示すウェイト信号に基づき、汎用データ処理ユニットの、割込み信号またはリセット信号を感知する割込み・リセット機能部を除いた部分に対する第１のクロック信号を停止する工程とを有する。
【００１３】
プログラムによりクロック信号が制御できるように、ＰＵは、ＰＵ命令により第１のクロック供給手段に対して第１のクロック信号の停止を許可する第１のクロック管理機能部を備えていることが望ましい。そして、この第１のクロック管理機能部へＶＵからウェイト信号を供給することにより、ＰＵから第１のクロック供給手段を統一して制御することが可能となり、第１のクロック供給手段をＰＵと共にプラットフォーム化することが容易となる。
【００１４】
また、ＶＵからＰＵの第１のクロック管理機能部に供給されるウェイト信号は、第１のクロック信号の停止を許可する第１のウェイト信号と、第１のクロック信号の停止を許可しない第２のウェイト信号とを含んでいることが望ましい。ＶＵでは、ＶＵにおける処理にどの程度のクロックを消費するかを予測することが可能であり、ＶＵにおける処理が数クロック程度を消費する処理であればＰＵのクロックを停止することはむしろＰＵの処理速度を低下する要因となり好ましくない。したがって、第２のウェイト信号を出力することにより、第１のクロックを停止しないことが望ましい。
【００１５】
さらに、ＶＵＰＵアーキテクチャによるシステムＬＳＩにおいては、ＶＵ命令はＶＵで実行されるので、ＰＵはＶＵ命令の内容を把握する必要はなく、その点でもＰＵは汎用的でありプラットフォームとして適した構成になっている。その一方で、ＰＵは、ＶＵ命令の内容を把握しなくてもＶＵ命令がＶＵに供給されるタイミングは判断できる。したがって、ＶＵに対し作動用の第２のクロック信号を供給する第２のクロック供給手段を設け、ＶＵに対しＶＵ命令が供給される際に第２のクロック供給手段に第２のクロック信号の供給を許可する第２のクロック管理機能部をＰＵに設けることにより、ＶＵの消費電力を低減する機能もプラットフォーム化することができる。また、第２のクロック管理機能部は、ＶＵから出力されるウェイト信号に基づき第２のクロック供給手段に対して第２のクロック信号の停止を許可できる。したがって、ＶＵに対しＶＵ命令が供給される際に、ＶＵに対し作動用の第２のクロック信号を供給し、ＶＵから出力されるウェイト信号に基づき第２のクロック信号を停止できる。
【００１６】
このようにＶＵＰＵアーキテクチャによるシステムＬＳＩにおいては、ＰＵがＶＵの処理の終了を待つ状況があり、その間、ＰＵは、命令をフェッチすることもなく、データＲＡＭにアクセスが発生することもない。このため、システムＬＳＩの能力を低下させることなく、メモリユニットに対するクロック信号の供給を停止し、消費電力を削減することが可能となる。プログラムおよび／または汎用データ処理ユニットの処理対象となるデータを格納するメモリユニットとを有するＶＵＰＵにおいては、さらに、ＰＵがメモリユニットにアクセスすることを示すメモリ選択信号によりメモリユニットに対し作動用の第３のクロック信号を供給する第３のクロック供給手段を設けることが望ましい。
【００１７】
ＶＵにおける処理が数クロックで終了すると予想されるために、ＰＵがウェイト状態であってもＰＵに対する第１のクロック信号が停止されない状態が発生する。その間はＰＵが稼動中であってもメモリ選択信号が出力されないので、メモリユニットに対し第３のクロック信号を停止することによりメモリユニットにおける消費電力を低減することが望ましい。また、その期間が数クロックあるいはそれ以上にわたるので、メモリユニットに対するアクセス速度よりも消費電力を低減できる効果が大きくなる。さらに、このＶＵＰＵアーキテクチャで、ＰＵはＶＵの制御を主な処理内容としていることが多く、ＶＵにおける処理比率が多いので、メモリユニットに対するアクセス速度の低下はシステムＬＳＩの性能の劣化に繋がらない。
【００１８】
メモリ選択信号により作動用の第３のクロック信号を供給するメモリクロック制御工程において、さらに、メモリユニットが複数のメモリブロックを備えている場合は、第３のクロック供給手段は、汎用データ処理ユニットから出力されたアドレスにより選択されたメモリブロックにクロック信号を供給することが望ましい。選択されたメモリブロックに限ってクロック信号を供給することにより、メモリユニット全体を稼動させなくて良いので、さらに消費電力を低減することができる。
【００１９】
また、プログラムを格納するメモリユニットに対して、外部メモリからプログラムをダウンロードする処理が初期に発生する。この制御するダウンロード制御ユニットはシステムＬＳＩとして必要であるが、常時稼動する必要はない。したがって、外部からのダウンロード開始信号によりダウンロード制御ユニットに対し作動用の第４のクロック信号を供給する第４のクロック供給手段を設け、ダウンロード制御ユニットには、外部からのダウンロード開始信号により、作動用の第４のクロック信号を供給することが望ましい。ＰＵが、ダウンロード制御ユニットが動作するときにのみ稼動するダウンロード機能部を備えている場合は、このダウンロード機能部に第４のクロック信号が供給されることが望ましい。
【００２０】
また、ＰＵおよび／またはＶＵで処理中のデータを監視可能なデバッグユニットもシステムＬＳＩとしては必要であるが、常時稼動する必要はない。したがって、外部からのデバッグ信号によりデバッグユニットに対し作動用の第５のクロック信号を供給する第５のクロック供給手段を設け、デバッグユニットには、外部からのデバッグ信号により、作動用の第５のクロック信号を供給することが望ましい。ＰＵが、デバッグユニットが動作するときにのみ稼動するデバッグ機能部を備えている場合は、このデバッグ機能部には第５のクロック信号が供給されることが望ましい。
【００２１】
このように、汎用データ処理ユニットと専用データ処理ユニットとを備えたＶＵＰＵアーキテクチャによるプロセッサは、アプリケーションに特化した専用命令を装着できるプロセッサであり、携帯機器のアプリケーションに応じた専用プロセッサを構築できる。それと共に、汎用データ処理ユニットおよび専用データ処理ユニット、さらにはメモリユニットなどに供給されるクロック信号を個別に制御することにより、低電力下での仕事効率を高めることが可能であり、低消費電力でパフォーマンスも高いプロセッサを提供することができる。
【００２２】
【発明の実施の形態】
以下に図面を参照しながら本発明についてさらに説明する。図１に示した本例のデータ処理装置１０は、特定の処理に特化した専用データ処理ユニット（専用命令実行ユニット、以降ではＶＵ）１と、詳細な機能は異なるが一般的なプロセッサユニットと類似の構成となる汎用的なデータ処理ユニット（汎用命令実行ユニットあるいはプロセスユニット、以降ではＰＵ）２とを備えている。したがって、このデータ処理装置１０は専用回路を備えたプログラマブルなプロセッサとなっている。
【００２３】
ＰＵ２は、フェッチユニット（以降ではＦＵ）５と、汎用レジスタ、フラグレジスタおよび演算ユニット（ＡＬＵ）などから構成される汎用性の高い実行ユニット（以降ではＥＵ）１１とを備えている。ＦＵ５は、実行形式の制御プログラム（プログラムコード、マイクロプログラムコード）３を内蔵したコードＲＡＭ４から命令をフェッチし、ＥＵ１１とＶＵ１とに、フェッチした命令または、その命令をデコードした制御信号を提供する。ＥＵ１１は、データＲＡＭ１５を一時的な記憶領域としてデータを入出力しながら汎用処理を実行する。さらに、ＰＵ２は、割込み信号φｉやリセット信号を検出するための割込み・リセット検出回路１２を備えている。
【００２４】
ＦＵ５は、命令発行ユニットであり、前の命令あるいはステートレジスタ６の状態、割込み信号φｉなどによって決まる、コードＲＡＭ４の所定のアドレスから命令をフェッチするフェッチ部７と、フェッチされた専用命令（ＶＵ命令）あるいは汎用命令（一般命令、ＰＵ命令）をデコードするデコード部８とを備えている。デコード部８は、専用命令をデコードした制御信号（デコーデド・コントロール・シグナル；Ｄｅｃｏｄｅｄ  Ｃｏｎｔｒｏｌ  Ｓｉｇｎａｌ）φｖおよび汎用命令をデコードした制御信号（デコーデド・コントロール・シグナル；Ｄｅｃｏｄｅｄ  Ｃｏｎｔｒｏｌ  Ｓｉｇｎａｌ）φｐを、ＰＵ２の実行ユニット１１およびＶＵ１にそれぞれ供給する。さらに、実行ユニット１１からは実行状態を示すステータス信号（Ｅｘｅｃ  ｕｎｉｔ  Ｓｔａｔｕｓ  Ｓｉｇｎａｌ）φｓが返えされ、実行ユニット１１およびＶＵ１の状態がステートレジスタ（状態レジスタ）６に反映される。
【００２５】
したがって、ＦＵ５においては、ＰＵ２の実行ユニット１１とＶＵ１とが同じ階層の処理ユニットであり、本例のＶＵＰＵアーキテクチャを、ＦＵ５を実行ユニット１１とＶＵ１に共通した命令発行ユニットとし、実行ユニット１１をＰＵとしてＶＵと並列させたアーキテクチャであると捉えることも可能である。また、本明細書中では、簡易に表現するために、ＦＵ５から実行ユニット１１に供給される汎用命令（ＰＵ命令）をデコードした制御信号φｐをＰＵ命令と呼び、ＦＵ５からＶＵ１に供給される専用命令（ＶＵ命令）をデコードした制御信号φｖをＶＵ命令と称する。
【００２６】
ＦＵ５からのＶＵ命令φｖを実行する専用データ処理ユニット（ＶＵ）１は、自己のユニット宛てのＶＵ命令φｖを選択してデコードするユニット２２と、予め特定のデータ処理を行うように制御信号をハードウェア的に出力するシーケンサ（ＦＳＭ（Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ）、ファイナイトステートマシン）２１と、このシーケンサ２１からの制御信号に従って特定のデータ処理を行うようにデザインされたデータパス部２０を備えている。また、ＶＵ１は、ＰＵ２からアクセス可能なレジスタ２３を備えており、ＰＵ２は、データパス部２０の処理に必要なデータをインターフェイスレジスタ２３を介して制御できる。また、ＰＵ２は、ＶＵ１の内部状態をレジスタ２３を介して参照できる。また、データパス部２０で処理された結果はＰＵ２に供給され、ＰＵ２ではその結果を利用した処理を実行できる。
【００２７】
さらに、ＶＵ１とＰＵ２との間では各々の状態などをコマンドレベルと割込み信号で交換することが可能である。ＶＵＣＭＤφｃ１は、ＶＵ１に対して、ＰＵ２の実行ステージであるＥＵ１１から発行される命令コマンドであり、ＶＵ１への処理依頼内容が述べられている。例えば、ＶＵＣＭＤφｃ１の内容が「ＷＡＩＴＶ」は、専用命令であるＶＵ命令φｖを実行している間はＰＵ２が割込み待ち状態、すなわち、割込み信号φｉが供給されるまで休止状態（ＨＡＬＴ）になるかどうかを問い合わせるコマンドである。これに対し、ＶＵ１からもコマンドあるいは信号φｃ２がＰＵ２に返される。たとえば、ＶＵ１がＶＵＷＡＩＴ信号φｃ２をアサートすると、ＶＵ１の実行が終わるまでＰＵ２は待ち状態とせよとの応答となる。したがって、ＰＵ２は割込み信号φｉを検出するまで休止状態となる。
【００２８】
コードＲＡＭ４には、汎用命令（ＰＵ命令）および専用命令（ＶＵ命令）を含んだプログラム３が記憶されており、それがフェッチユニット５でフェッチされ、ＶＵ１およびＰＵ２にそれぞれ供給される。本例のＶＵＰＵ１０においては、ＶＵ１には、ＰＵ命令およびＶＵ命令（またはそれらがデコードされた制御信号）が供給され、自己を起動する専用命令が供給されるとＶＵ命令デコーダ２２がそれを選択して動作する。一方、ＰＵ２では、ＰＵ命令またはそれをデコードした制御信号φｐだけがＥＵ１１に供給され、ＶＵ命令はＥＵ１１には発行されず、代わりに、実行を伴わないｎｏｐ命令を示す制御信号が発行される。したがって、ＥＵ１１は、ユーザによりカスタマイズ可能な命令であるＶＵ命令を解釈する必要がないので、ＰＵ２の構成は変えることなく、新たな、あるいは様々なＶＵ命令を含んだプログラム３を実行可能なＶＵＰＵ１０を提供できる。しかしながら、実行ユニット１１において、ＶＵ命令を解釈する必要がなくても、ＶＵ命令φｖをＶＵ１に供給するタイミングを知ることは可能であり、本例のＶＵＰＵ１０においては、ＶＵ命令φｖをＶＵ１に供給するタイミングでＶＵ用のクロック信号（第２のクロック信号、ＶＣＬＫ）を制御する。
【００２９】
このような構成はＶＵＰＵ１０の大きなメリットである。すなわち、ＶＵ１は、アプリケーションなどによって変更されるものであり、ＶＵ１に指示を出す専用命令（ＶＵ命令）もアプリケーションによって変わることが多い。ＶＵ１は、アプリケーションに特化した専用回路であり、特化したＶＵ命令をデコードした制御信号を解釈するように設計することは容易である。一方、ＰＵ２は、ｎｏｐ命令が出力されることにより、ＶＵ１用に特化した命令に対処する必要がなく、基本命令あるいは汎用命令であるＰＵ命令を解釈して実行できる機能があればよい。したがって、このアーキテクチャ（本明細書中のＶＵＰＵアーキテクチャ）により、汎用プロセッサであるＰＵ２の汎用性を犠牲にすることなく、ＰＵ２を様々なアプリケーションに対応したＶＵ１と共存させることができ、ＶＵ１を制御したり、その演算結果を用いて処理を行うことができプラットフォームとして使用することができる。
【００３０】
したがって、図１に示したデータ処理装置１０は、リアルタイム応答などの特殊な演算が要求される処理を実現できる専用回路を備えたＶＵ１と、汎用性があるＰＵ２とが共存したシステムＬＳＩであり、本明細書においては、このシステムＬＳＩをＶＵＰＵ１０として参照している。ＶＵＰＵ１０は、リアルタイム応答性を犠牲にすることなく、設計および開発期間を短縮でき、さらに、その後の変更や修正にも柔軟に対処できるものである。また、ＶＵ１は、１つに限定されることはなく、アプリケーションで要求される専用処理を処理できるように複数のＶＵ１を用意し、それぞれのＶＵ１を稼動する複数の専用命令をプログラムコードに含めることが可能である。
【００３１】
ＶＵＰＵ１０は、ＶＵ１、ＰＵ２およびメモリユニットであるコードＲＡＭ４およびデータＲＡＭ１５に加え、このコードＲＡＭ４に対する外部メモリからのダウンロードを制御するダウンロード制御ユニット４０と、ＰＵ２および／またはＶＵ１で処理中のデータを監視可能なデバッグユニット４５を備えている。このため、ＰＵ２は、ダウンロード制御ユニット４０が動作するときにのみ稼動して、ダウンロード制御ユニット４０との間のインターフェイスを実現するダウンロードインターフェイス部１８と、デバッグユニット４５が動作するときにのみ稼動して、デバッグユニット４５との間のインターフェイスを実現するデバッグインターフェイス部１９を備えている。
【００３２】
さらに、ＶＵＰＵ１０は、これらのユニットに対して供給されるクロック信号の開始および停止を制御するクロック制御ユニット３０、３１および３２を備えている。クロック制御ユニット３０は、ＶＵ１、ＰＵ２、ダウンロード制御ユニット４０およびデバッグユニット４５に供給されるクロック信号を制御するユニットである。このため、ＰＵ２に供給される第１のクロック信号（ＭＣＬＫ）を制御するＭＣＬＫ供給回路と、ＶＵ１に供給される第２のクロック信号（ＶＣＬＫ）を制御するＶＣＬＫ供給回路と、ダウンロード制御ユニット４０に供給される第４のクロック信号（ＤＣＬＫ）を制御するＤＣＬＫ供給回路と、デバッグユニット４５に供給される第５のクロック信号（ＧＣＬＫ）を制御するＧＣＬＫ供給回路とを備えている。クロック制御ユニット３１および３２はＲＡＭ４および５に供給される第３のクロック信号を制御する。
【００３３】
図２に、本例のＶＵＰＵ１０におけるクロック信号ＭＣＬＫおよびＶＣＬＫの制御系統を示してある。クロック信号ＰＣＬＫは、ＶＵＰＵ１０に供給されるマスタークロック信号であり、常に動作しているクロック信号である。ＶＵＰＵ１０では、ＰＣＬＫはＰＵ２の割込み・リセット検出回路１２と、ダウンロード制御ユニット４０のダウンロード状態管理回路４１とにのみ供給される。他の機能ユニットに対しては、クロック制御部３０により、機能毎にオンオフを制御可能なクロック信号が供給される。クロック信号ＭＣＬＫは、第１のクロック信号であり、ＰＵ２の割込み検出回路１２を除く部分に供給されるクロック信号である。したがって、クロック信号ＭＣＬＫをオフにすることにより、割込み検出回路１２に供給されているクロック信号ＰＣＬＫのみがアクティブになるので、ＰＵ２の割込み検出回路１２のみが動作している低消費電力の状態を生成できる。
【００３４】
クロック信号ＶＣＬＫは第２のクロック信号であり、ＶＵ１に供給されるクロック信号である。ＶＵ命令φｖを発行させる直前にＰＵ２からＩＯ命令（入出力命令あるいはＩ／Ｏ・Ｉ／Ｆ信号、アイオーインターフェイス命令）によりクロック制御部３０に通知され、クロック信号ＶＣＬＫが、クロック信号ＰＣＬＫからＶＵ１を活性化するクロック信号として生成させ、供給される。そして、ＶＵ命令φｖの実行が終了すると、ＰＵ２からクロック制御部３０に再びＩ／Ｏ・Ｉ／Ｆ信号によりＶＵ１の処理が終了したことが伝達され、クロック信号ＶＣＬＫは停止される。
【００３５】
クロック信号ＭＣＬＫを生成するＭＣＬＫ供給回路３５の一例が図２に示されている。このＭＣＬＫ供給回路３５には、ＰＣＬＫ信号と、ＰＵ２から出力されるクロック停止を許可するＣＬＫＳＴＰ信号と、ＶＵ１から出力されるクロック停止を許可するＶＵＷＡＩＴ信号とが供給される。ＭＣＬＫ供給回路３５は、ＣＬＫＳＴＰ信号と、ＶＵＷＡＩＴ信号とのＮＡＮＤを演算するゲート回路３５ａと、その出力をラッチするラッチ回路３５ｂと、ＣＬＫＳＴＰ信号またはＶＵＷＡＩＴ信号の両方が高レベルでないときにＰＣＬＫ信号からＭＣＬＫ信号を生成してＰＵ２に供給するゲート回路３５ｃとを備えている。ラッチ回路３５ｂはフリップフロップでも良いが、回路的にＤ入力セットアップ時間にマージンがとれ、かつゲートサイズの小さいラッチ回路が望ましい。また、クロック入力をＰＣＬＫの反転として、ＭＣＬＫの停止・再開の遅延サイクル（オーバーヘッド）をなくし、かつ、両クロック停止時のクロックノイズ（ヒゲ）の発生防止、および再開時のクロック立ち上がりエッジの欠落を防ぐようにしている。以下に示す他のクロック供給回路においても同様である。
【００３６】
したがって、ＭＣＬＫ供給回路３５からは、ＣＬＫＳＴＰ信号またはＶＵＷＡＩＴ信号のいずれか一方が高レベルになると、ＭＣＬＫ信号は出力されず、プロセッサコアであるＰＵ２では、割り込みとリセット信号のみを感知する回路（割り込み・リセット回路）１２のみにＰＣＬＫ信号が供給された休止状態となり、ＰＵ２の消費される電力を低減できる。
【００３７】
ＣＬＫＳＴＰ信号は、クロック信号を止めることを容認する信号であり、ＰＵ２に対するＨＡＬＴ命令によりオンとなる信号である。ＥＵ１１（ＰＵ２）は、ＦＵ５がプログラム３からフェッチして供給するＨＡＬＴ命令を解釈するＨＡＬＴ状態管理回路（第１のクロック管理機能部）１１ａを備えており、ＨＡＬＴ命令を認識するとＣＬＫＳＴＰ信号が出力される。したがって、プログラマが、ＰＵ２が動作せず割り込みを待っている状態になることを認める場合は、プログラム中にＨＡＬＴ命令を入れることによりＣＬＫＳＴＰ信号をオンにしてＰＵ２を休止状態にすることができ、その間のＰＵ２の消費電力を抑えることができる。
【００３８】
なお、ＰＵ２の休止状態は、割り込み・リセット信号φｉにより解除でき、割り込み・リセット回路１２はＰＣＬＫ信号により常にアクティブである。したがって、ＨＡＬＴ命令によりソフトウェア上でＣＬＫＳＴＰ信号をオンにしてＭＣＬＫを止めてＰＵ２の大半を停止させておき、その後、割り込み・リセット信号φｉを発行することにより、ＨＡＬＴ状態管理回路１１ａを通じてＣＬＫＳＴＰ信号をオフし、ＭＣＬＫ供給回路３５でＭＣＬＫ信号を活性化させてＰＵ２を通常の動作モードとすることが可能である。
【００３９】
ＶＵＷＡＩＴ信号は、ＶＵ１が実行状態であることを示す信号である。ＶＵ命令φｖが発行された後、ＰＵ２がＶＵ１の処理結果を待つときに、ＰＵ２がＶＵ１の動作停止を待っている旨のコマンドＷＡＩＴＶに対して、ＶＵ１のＶＵＷＡＩＴ制御回路２９が応答し、ＶＵ１が実行状態であるときに継続して出力される。したがって、ＰＵ２がＶＵ１の動作待ちで、ＶＵ１が稼動中の場合は、ＶＵＷＡＩＴ信号がオンになってことにより判断できる。このため、ＭＣＬＫ供給回路３５は、ＶＵＷＡＩＴ信号がオンのときに、ＭＣＬＫ信号を停止してＰＵ２における消費電力を低減する。一方、ＶＵ１の動作が停止するとＶＵＷＡＩＴ信号が解除されるので、ＭＣＬＫ供給回路３５からＰＵ２にＭＣＬＫ信号が供給されてＰＵ２が活性化される。
【００４０】
したがって、本例のＶＵＰＵ１０においては、ＰＵ２が何らかの条件でＨＡＬＴ状態にできるとプログラマが判断したときにソフトウェアでＰＵ２の消費電力を低減することができる。また、ＶＵ命令φｖを発行した後にＰＵ２がＶＵ１の処理結果を待つときも自動的にＰＵ２の動作を停止して消費電力を低減できる。ＶＵ１は専用化されているので、ＰＵ２がＶＵ１の処理の終了を待つ状態であるか否かの判断が可能である。したがって、ＶＵ１から出力される、ＰＵ２がＶＵ１の処理待ちであることを示すウェイト信号（ＶＵＷＡＩＴ）によりＰＵ２に対するＭＣＬＫ信号の供給を制御することによりＰＵ２を適切なタイミングで適切に停止できる。さらに、このＶＵＷＡＩＴ信号によりＰＵ２が休止状態になる制御においては、ＰＵ２をプログラムにより積極的に制御する必要はない。
【００４１】
このため、ＶＵＰＵ１０においては、プログラムの開発段階において、命令によりＰＵ２のクロックを停止することも可能であるが、ＶＵ命令を記述するだけで、そのＶＵ命令の機能に適したタイミングでＰＵ２のクロックを適切に制御できる。このため、ＰＵ２に対するクロックの停止機能を含んだプログラム開発に必要な時間とコストを大幅に低減できる。さらに、仕様変更などに伴いプログラムの変更が要求される場合においても、ＶＵ１の機能、すなわちＶＵ命令の内容に変更がなければ、それに関連するＶＵＷＡＩＴ制御機能は影響を受けない。したがって、プログラムの開発段階のみならず、プログラムを変更あるいは更新する段階においても、クロック制御のためにプログラムを作成したり変更したりする負荷はほとんどない。その一方で、ＶＵ命令でＶＵ１を起動することにより、ＶＵＷＡＩＴ制御機能により適切にＰＵ２のクロックを制御し、ＶＵＰＵ１０の性能を低下させずにＰＵ２の消費電力を低減できる。
【００４２】
さらに、ＶＵ１の側から信号によりＰＵ２の消費電力を制御できるということは、ＰＵ２の汎用性を失わせずに、さまざまなアプリケーションに即してＰＵ２のクロックを極めて容易に制御できることを意味し、ＰＵ２をプラットフォームとするすべてのシステムＬＳＩ、すなわちＶＵＰＵ１０に対して本発明を適用することが可能である。そして、ユーザロジックを含むＶＵ１の機能は、いったん開発されれば、それを資産として次のＶＵＰＵ１０の開発に十分に活かすことができ、そのＶＵ１の資産にＰＵ２のクロック制御の機能が加わることになる。したがって、既存のＶＵ１を含む新たなシステムＬＳＩを開発する段階で、ＰＵ２のクロック制御は自動的に取り込まれることになる。このため、短期間に、プロセッサコアのクロック制御を含んだシステムＬＳＩの開発が終了できる。
【００４３】
ＰＵ２に対するＭＣＬＫ信号を停止させる場合、クロックの停止および開始に数クロックのオーバーヘッドが生じる。しかしながら、ＶＵ１に割り当てられた特定の処理機能が動作している期間が比較的長い場合は、クロック信号をオンオフすることによる処理の遅延はほとんど問題にならない。たとえば、ＶＵ１の専用機能としては、画像処理のためにビットストリームから特定のコードを検索したり、ネットワーク処理のためにアドレスを検索するなどの処理が割り当てられているので、ＶＵ１でのみ処理が行われている期間は比較的長くなり、クロック信号をオンオフする処理のために数クロックを費やしたとしても、ＶＵＰＵ１０のパフォーマンスへの影響はほとんどない。したがって、パフォーマンスを低下させることなく消費電力を低減できる。
【００４４】
一方、ＶＵ命令によりＶＵ１により実行される処理の実行サイクル数が少ない場合は、クロックの停止および開始の数クロックのオーバーヘッドが問題になり、ＶＵＰＵ１０の実質的な実行サイクルが増加し、さらに、低消費電力化にはあまり寄与しない可能性がある。しかしながら、ＶＵ１の側からのウェイト信号によりＰＵ２のクロックを制御する本発明においては、このような問題も容易に解決できる。すなわち、実際に処理を行うＶＵ１の側では、ＶＵ１における処理にどの程度のクロックを消費するか予測することが可能であり、それにより、異なるウェイト信号を出力することができる。
【００４５】
図３に、ＭＣＬＫ供給回路３５を含むクロック制御ユニット３０の異なる例を示してある。本例においては、ＶＵ１からＰＵ２への入力信号φｃ２に２種類の信号を用意する。２種類の信号のひとつがＶＵＷＡＩＴ信号はＰＵ２がウェイト状態にあることを示すが、ＭＣＬＫ信号の停止を許可しない。したがって、本例ではＶＵＷＡＩＴ信号は第２のウェイト信号に対応し、数クロックでＰＵ２が再稼動する可能性があることを示す。一方、ＶＵＷＡＩＴＣ信号は、ＰＵ２の停止を許可し、そのためにＭＣＬＫ信号の停止を許可する。したがって、本例ではＶＵＷＡＩＴＣ信号が第１のウェイト信号であり、ＶＵ１における処理時間が十分に長く、クロックの停止・開始に伴うオーバーヘッドよりもクロック停止による消費電力を低減することが効果的であることを示す。
【００４６】
このため、ＰＵ２のＥＵ１１は、２種類のＶＵＷＡＩＴ信号を判別するＶＵＷＡＩＴ状態管理回路部１１ｃを備えている。さらに、ＶＵＷＡＩＴ信号の判定ＥＵ１１で行うために、ＨＡＬＴ状態管理回路１１ａは、ＨＡＬＴ状態を判定する機能１１ｄに加えて、ウェイト信号（本例ではＶＵＷＡＩＴＣ信号）によるＭＣＬＫ信号の停止要求との論理和を演算するゲート１１ｅを備えている。この構成により、クロック制御ユニット３０のＭＣＬＫ供給回路３５は、ＰＵ２から供給されるＣＬＫＳＴＰ信号だけにより制御することが可能となり、ＶＵ１からウェイト信号の供給が不要となる。したがって、より汎用的な構成のクロック制御ユニット３０を実現できる。本例では、ＭＣＬＫ信号の供給再開をＶＵＷＡＩＴＣ信号を解除することにより行うことができる。
【００４７】
したがって、図３に示したＶＵＰＵ１０においては、ＶＵ１からＶＵＷＡＩＴ信号が出力され、この信号がアサートされるとＰＵ２は実行を停止するが、ＭＣＬＫの停止要求は出さないためＣＬＫＳＴＰ信号は変化せず、ＭＣＬＫはそのまま動作する。他方、ＶＵＷＡＩＴＣ信号がアサートされた場合、ＰＵ２は実行を停止し、同時にＭＣＬＫの停止要求も出されるため、ＰＵ２からの出力信号ＣＬＫＳＴＰがアサートされ、クロック制御部３０にてＭＣＬＫを停止することができる。
【００４８】
図２および図３に示したＶＣＬＫ供給回路３６は、逆にＶＵ１が動作していない時にはＶＣＬＫ信号の供給を停止する。本例のＶＵＰＵ１０では、ソフトウェアでＶＵ１の動きを止めることも可能である。このため、プログラマがＶＵ１の動作を停止できると判断してＰＵ命令φｐとしてＶＵ１を止める命令を記述したり、上述したＶＵＷＡＩＴ信号（後の例ではＶＵＷＡＩＴＣ信号も含めて）がオフ（解除）になったことをＰＵ２が判断すると、ＰＵ２のＥＵ１１のＶＵクロック管理回路（第２のクロック管理機能部）１１ｂはＶＣＬＫ信号を停止するＶＵＩＮＳＴＥＮ信号を作る。一方、ＶＵ命令を供給する際には、ＶＣＬＫ信号の供給を開始するＶＵＩＮＳＴＥＮ信号を作る。
【００４９】
そして、データバスＩＯＷＤＡＴＡおよびＩＯＲＤＡＴＡ、アドレスバスＩＯＡＤＤＲ、さらには入出力制御信号ＩＯＳＥＬ、ＩＯＥＮＡＢＬＥおよびＩＯＷＲＩＴＥを入出力信号（Ｉ／Ｏ信号）としてＶＣＬＫ供給回路３６に設けられたＶＣＬＫ制御レジスタ３６ａに書き込む。このＶＵＩＮＳＴＥＮ信号により、ＶＣＬＫ制御レジスタ３６ａはＶＵ命令を実行する前に「１」にセットされ、ＶＵ命令実行後に「０」にセットされる。したがって、このレジスタ３６ａの値をラッチ回路３６ｂでラッチし、その出力とＰＣＬＫ信号の論理積をゲート回路３６ｃにより演算することによりＶＵ命令を実行するときにＶＵ１に対してゲート回路３６ｃからＶＣＬＫ信号をＶＵ１に供給することができる。このため、入出力命令（Ｉ／Ｏ命令）と常時動作するクロック信号（ＰＣＬＫ信号）を組み合わせることにより、ＶＵ１をＶＵ命令により起動するときにのみＶＵ１にクロック信号ＶＣＬＫを提供できる。
【００５０】
さらに、ＥＵ１１においては、ＶＵクロック管理回路１１ｂにおいて、ＶＵ命令が供給されることが判断されれば良く、ＶＵ命令の内容を解釈する必要がない。したがって、ＰＵ２の汎用性を犠牲にすることなく、ＶＵクロックを管理することが可能であり、ＰＵ２は、プラットフォームとしての機能を損なわずにＶＵ１のクロックを制御することができる。
【００５１】
このように、本例のＶＵＰＵ１０においては、クロック制御部３０のＭＣＬＫ供給回路３５およびＶＣＬＫ供給回路３６の機能により、ＶＵ命令φｖを実行している間はＰＵ２へのクロック信号ＭＣＬＫを止めてＰＵ２を休止させ、ＶＵ命令φｖを実行しないときはＶＵ１へのクロック信号ＶＣＬＫを止めてＶＵ１を休止させることにより消費電力を低減できる。そして、ＶＵ１のウェイト信号によりＭＣＬＫ信号を停止し、そのウェイト信号が解除されたことによりＶＣＬＫ信号を停止することにより、ＶＵ１の側にクロックのオンオフを制御する実質的な機能を搭載することが可能となる。このため、ＰＵ２のプログラミングの負荷を増やさずにクロックを制御し、消費電力を低減できる。
【００５２】
複数のＶＵ（ＶＵａからＶＵｎ）が装着されたＶＵＰＵ１０においては、それぞれのＶＵのＶＵＷＡＩＴ制御回路２９からＶＵＷＡＩＴ信号またはＶＵＷＡＩＴＣ信号が出力される。どのＶＵ命令に対するＷＡＩＴＶ命令かの情報がＶＵＣＭＤ信号φｃ１に含まれているため、この情報を使ってセレクタ１ｓで、１本のＶＵＷＡＩＴｎまたはＶＵＷＡＩＴＣｎ信号を選択し、ＰＵ２へ出力することが可能である。したがって、ＶＣＬＫ信号を停止する対象のＶＵ１を特定することが可能であり、そのＶＵ１へのクロック（ＶＣＬＫｎ）を適切に停止または非停止にできる。
【００５３】
ＶＵ１に対してＶＣＬＫの供給を開始する際に、数クロックのオーバヘッドが発生する可能性がある。しかしながら、ＶＵ１に割り当てられた特定の処理機能が動作している期間が比較的長い場合は、クロック信号をオンオフすることによる処理の遅延はほとんど問題にならないことはＭＣＬＫと同様である。ＦＵ５の回路規模は若干大きくなるが、命令をプリフェッチしてデコードするなどの方法によりＶＵ命令φｖが発行される充分前にＶＵ１を稼動させることも可能であり、クロック信号のオンオフによるディレイを除くことも可能である。
【００５４】
図４に、メモリクロック制御部３１および３２の概略構成を示してある。この制御部３１および３２は、コードＲＡＭ４およびデータＲＡＭ１５に対し、クロック信号ＭＣＬＫをさらにオンオフ制御したクロック信号を供給する。コードＲＡＭ４のクロック信号を制御するクロック制御部３１には、クロック信号ＭＣＬＫに加え、ＰＵ２からコードＲＡＭ４を選択する信号ＰＣＳＥＬ＿Ｘが入力される。また、データＲＡＭ１５のクロック信号を制御するクロック制御部３２には、クロック信号ＭＣＬＫに加え、ＰＵ２からデータＲＡＭ１５を選択する信号ＰＤＳＥＬ＿Ｘが入力される。コードＲＡＭ４およびデータＲＡＭ１５は、ワード方向に２つに分割され、各々のクロック制御部３１および３２は、分割された個々のＲＡＭ（以降ではＲＡＭブロックあるいはメモリブロックと呼ぶ）に対応したクロック供給回路３１ａ、３１ｂ、３２ａおよび３２ｂを備えている。したがって、指定されたアドレスを持つＲＡＭのみにクロック信号を供給して活性化できる。各々のクロック供給回路３１ａ〜３２ｂは、アドレスの先頭ビットをデコードし、活性化されるメモリブロックのみにクロック信号を供給する。
【００５５】
ＶＵＰＵ１０のようなプロセッサコア（ＰＵ）２とＶＵ１のような専用回路とを１チップに組み込んだ組み込み型プロセッサでは、プロセッサコア２のみならずＲＡＭもすべて同一シリコン上に搭載してシステムＬＳＩ化される。このため、選択されたＲＡＭのみ、さらには、システムＬＳＩの構成上の理由などによりＲＡＭがワード方向に分解されて保有される場合には、その分解されたＲＡＭブロックのみを活性化する本手法は冗長電力の排除に極めて有効である。
【００５６】
図５に、データＲＡＭ１５に対してクロック信号を供給する制御回路３２の構成の詳細を示してある。コードＲＡＭ４にクロック信号を供給する制御回路３１も全く同様の構成でクロック信号を制御できる。データＲＡＭ１５の制御はＥＵ１１のデータＲＡＭインターフェイス回路１３で行われる。このため、ＲＡＭインターフェイス回路１３は、アドレス信号を出力するアドレスバスＰＤＡＤＤＲ、データを書き込むバスＰＤＷＤＡＴＡ、データを読み込むバスＰＤＲＤＡＴＡを制御する機能と、ＲＡＭ１５を制御するＰＤＷＲＩＴＥ＿Ｘ信号を出力する機能を備えている。さらに、データＲＡＭ１５にアクセスする場合には選択信号ＰＤＳＥＬ＿ＸがデータＲＡＭインターフェイス回路１３で生成され、出力される。
【００５７】
データＲＡＭ１５は、１６ビットアドレスで深さ６４ｋワードのＲＡＭ領域が３２ｋワード単位に２個のＲＡＭブロック１５ａおよび１５ｂに分解されている。これら２つのＲＡＭブロック１５ａおよび１５ｂの選択信号としては、ＲＡＭ１５に出力される１６ビットのアドレス信号ＰＤＡＤＤＲ［１５：０］の先頭ビットＰＤＡＤＤＲ［１５］を利用することができる。したがって、ＰＤＡＤＤＲ［１５］が、これら２つのＲＡＭブロック１５ａおよび１５ｂからの読み出しデータを選択するセレクタ１５ｓの選択信号として用いられる。その際、２つのデータＲＡＭ１５ａおよび１５ｂのリードデータを選択するセレクタ１５ｓのセレクト信号は、本来ＲＡＭリードデータの出力タイミングに同期していなければならない。このため、ＲＡＭアドレス信号ＰＤＡＤＤＲ［１５］に対し、フリップフロップ１５ｃで１クロック分遅延させた信号をセレクタ１５ｓに供給している。
【００５８】
メモリクロック制御部３２は、各々のＲＡＭブロック１５ａおよび１５ｂに対応したクロック供給回路３２ａおよび３２ｂを備えており、ＲＡＭブロック１５ａおよび１５ｂに対し、個別のクロック信号ＰＤ０＿ＭＣＬＫおよびＰＤ１＿ＭＣＬＫを供給する。これらが上述した第３のクロック信号に相当し、メモリクロック制御部３１および３２が第３のクロック供給手段に対応する。各々のクロック供給回路３２ａおよび３２ｂには、メモリ選択信号ＰＤＳＥＬ＿Ｘと、アドレスデータの先頭ビットＰＤＡＤＤＲ［１５］が入力されている。一方のクロック供給回路３２ａでは、メモリ選択信号ＰＤＳＥＬ＿ＸおよびＰＤＡＤＤＲ［１５］がＮＡＮＤ回路３２ｘで演算され、その出力がラッチ回路３２ｙによりラッチされる。そして、メモリ選択信号ＰＤＳＥＬ＿Ｘと、ＰＤＡＤＤＲ［１５］の両方がオン（高レベル）のときにゲート回路３２ｚからＭＣＬＫ信号がＰＤ０＿ＭＣＬＫ信号として出力される。したがって、メモリ選択信号ＰＤＳＥＬ＿Ｘと、ＰＤＡＤＤＲ［１５］のいずれかがオフ（低レベル）のときにはクロック信号ＰＤ０＿ＭＣＬＫは出力されず、ＲＡＭブロック１５ａは作動しない。このため、クロック信号ＰＤ０＿ＭＣＬＫはクロック信号とＲＡＭブロック１５ａの選択信号とを兼ねた信号となっている。
【００５９】
他方のクロック供給回路３２ｂの構成も上記のクロック供給回路３２ａと同様であるが、ＰＤＡＤＤＲ［１５］を反転した信号がゲート回路３２ｘに入力されている。このため、アドレスデータの先頭ビットＰＤＡＤＤＲ［１５］が上記と異なるときにＲＡＭブロック１５ｂに対してクロック信号と選択信号を兼ねたＰＤ１＿ＭＣＬＫ信号が供給され、ＲＡＭブロック１５ｂが選択される。
【００６０】
コードＲＡＭ４に対してクロック信号を供給するクロック制御部３１の構成も上記とほぼ同様である。コードＲＡＭ４も２つのブロック４ａおよび４ｂに分かれているので、それぞれに対応するクロック供給回路３１ａおよび３１ｂからクロック信号ＰＣ０＿ＭＣＬＫおよびＰＣ１＿ＭＣＬＫが供給される。コードＲＡＭ４の制御はフェッチ制御回路７のコードＲＡＭインターフェイス回路部７ａにより行われるので、メモリ選択信号ＰＣＳＥＬ＿Ｘに加えて、そのインターフェイス回路部７ａから提供されるアドレスデータＰＣＡＤＤＲ［１５：０］の先頭ビットＰＣＡＤＤＲ［１５］がクロック供給回路３１ａおよび３１ｂの制御信号となり、いずれかのＲＡＭブロック４ａまたは４ｂが選択されたときに、ＭＣＬＫ信号からＰＣ０＿ＭＣＬＫ信号またはＰＣ１＿ＭＣＬＫ信号が出力される。
【００６１】
本例ではＲＡＭが２つのブロックに分かれている例を説明しているが、３つ以上のブロックに分かれている場合もデコードするアドレスデータの先頭ビットの数を増やすことで対応することが可能であり、上記と同様の構成のクロック供給回路により対応することができる。
【００６２】
このように、本例のＶＵＰＵ１０においては、コードＲＡＭ４およびデータＲＡＭ１５に対して、それらが選択されたときにのみＭＣＬＫ信号からクロック信号を生成および供給してアクセスの対象となっているＲＡＭあるいはＲＡＭブロックのみを活性化している。ＶＵ１が稼動中で、その処理の終了をＰＵ２が待っている状況ではＰＵ２の動作は停止しているが、ＭＣＬＫ信号を停止することがオーバーヘッドになる可能性があることは上述した通りである。そのとき、ＭＣＬＫ信号は動作しているが、ＰＵ２は停止状態であり、メモリユニットに対するアクセスは発生しない。したがって、ＰＵ２が動作状態となり、かつ、データＲＡＭ１５あるいはコードＲＡＭ４が書き込みや読み出しといったアクセスの対象として選択されたときにのみ活性化させることにより、メモリユニットで消費される電力を削減できる。
【００６３】
さらに、本例では、それぞれのＲＡＭ領域がワード方向に分割させた複数のブロックで構成されているときに、アクセス要求のあるアドレスを持つＲＡＭブロックのみを活性化させることができる。したがって、ＲＡＭ４および１５を常時稼動させることがなく、ＲＡＭ４および１５により消費される電力を低減することができる。
【００６４】
図６に、ダウンロード制御ユニット４０に対し第４のクロック信号であるＤＣＬＫ信号を供給するＤＣＬＫ供給回路３７と、デバックユニット４５に対し第５のクロック信号であるＧＣＬＫ信号を供給するＧＣＬＫ供給回路３８とを示してある。ＶＵＰＵ１０は、オンチップで搭載されるコードＲＡＭ４やデータＲＡＭ１５に対し、外部の不揮発性メモリ５０などから命令コードやデータのダウンロードを行うためのダウンロード機能を備えている。通常、少なくともコードＲＡＭ４に対しては、電源投入時などのリセット後に必ずダウンロードを実行し、各ＲＡＭ４にプログラムコード３をロードし、初期化する。このダウンロード機能を実現するために用意されているダウンロード制御ユニット４０およびＰＵ２のダウンロード回路１８は、一度、ダウンロードによりＲＡＭ４を初期化し、ＶＵＰＵ１０が通常の命令動作処理を開始すると、動作の必要は無い。したがって、これらの回路に供給するクロック信号ＤＣＬＫをＤＣＬＫ供給回路３７から供給し、他のクロック（ＰＣＬＫ、ＭＣＬＫ、ＶＣＬＫなど）と分離して停止可能とすることにより、ＶＵＰＵを搭載したシステムＬＳＩの通常動作時における無駄な消費電力を削減する。
【００６５】
この例では、ＶＵＰＵ１０が処理する処理ＡおよびＢのプログラム５１ａおよび５１ｂが外部メモリ５０に記録されている。そして、限られたサイズのコードＲＡＭ４に、システムリセットでの初期化をせずに、ダイナミックにダウンロードし、処理Ａと処理Ｂを切り替えながら実行する。そのため、ダウンロード制御部４０は、外部メモリ５０に格納された各処理のプログラムコードを、ＰＵ２のダウンロード部１８のダウンロード専用レジスタ１８ｒに逐次書き込み、フェッチ部７のコードＲＡＭインターフェイス回路部７ａを経由し、コードＲＡＭ４へ書込む。さらに、ダウンロード回路１８の機能としては、書き込んだデータを自動的に読み出して、期待値と比較する機能（ベリファイ機能）なども備えている。
【００６６】
ダウンロード制御ユニット４０は、ＶＵＰＵ１０の外部からダウンロードを指示する信号ＤＬ＿ＲＥＱを検出するダウンロード状態管理回路４１を備えている。ダウンロード状態管理回路４１においては、信号ＤＬ＿ＲＥＱによりフリップフロップ４２がセットされ、ダウンロード制御ユニット４０およびダウンロード回路１８に供給するクロックＤＣＬＫを作動させるための許可信号ＤＬ＿ＥＮＡＢＬＥをアサートする。したがって、ダウンロード制御部内のダウンロード状態管理回路４１へは、常にダウンロード開始要求信号ＤＬ＿ＲＥＱを受け付けるため、常に作動するクロックＰＣＬＫが供給される。
【００６７】
クロック制御ユニット３０は、許可信号ＤＬ＿ＥＮＡＢＬＥとＰＣＬＫ信号を入力信号とするＤＣＬＫ供給回路３７を備えている。許可信号ＤＬ＿ＥＮＡＢＬＥはラッチ回路３７ｂによりラッチされ、そのラッチ回路３７ｂの出力によりアンドゲート回路３７ｃがオープンしＰＣＬＫ信号がＤＣＬＫ信号として出力される。ＤＣＬＫ信号は、ダウンロード制御ユニット４０およびＰＵ２のダウンロード回路１８に供給される。したがって、ダウンロード制御ユニット４０の他の機能およびダウンロード回路１８が稼動状態となり、外部メモリ５０からの内部メモリ４へのダウンロードが実行される。
【００６８】
ダウンロード制御部４０に入ったＤＬ＿ＲＥＱ信号は、さらに、ＰＵ２に対し、ダウンロードの処理実行の開始を要求する割り込み信号ＤＬ＿ＳＴＡＲＴとして供給される。このため、ＰＵ２は割り込みを受け付け、休止状態であってもＭＣＬＫクロックを作動させて復帰し、対象のダウンロード処理を特定し、外部メモリからのリード開始アドレス、ダウンロードコードのワード数、ＰＵコードＲＡＭへのダウンロード先開始アドレスなどの情報を、ダウンロード制御部４０のレジスタにＰＵのＩ／Ｏ命令を使い書き込む。ダウンロードに関する詳しい処理は、図８を参照してさらに詳しく説明する。
【００６９】
ＶＵＰＵ１０は、さらに、デバッグユニット４５を備えている。デバッグユニット４５を装着することで、ＰＵ２のデバッグユニットインタフェース部１９と、デバッグユニットインタフェース信号φｇを使ってＰＵ２およびＶＵ１の情報をデバッグユニット４５にセットし、必要であれば、その情報をモニタできる。これにより、ＶＵＰＵ１０で、実行するプログラム処理のデバッグを行うことが可能となる。さらに、デバッグの効率を上げるために、システムＬＳＩの外部のパーソナルコンピュータなどにデバッグモニタソフトを用意し、デバッグユニット４５と通信することで、外部のコンピュータ上からのデバッグを実現することができる。
【００７０】
通常、このデバッグ処理は、システムの開発段階またはシステムの障害などが発生した場合に必要となるが、システムの通常動作をしている間は不要な処理、または回路である。ただし、デバッグ処理用の回路はシステムＬＳＩ上に備えておかなければならない。しかしながら、消費電力という面からすると、クロックを必要なときにのみ作動させ、通常は停止させられるよう、あらかじめ専用のクロックＧＣＬＫとして分けておくのが効果的である。システムＬＳＩ上のＶＵＰＵ１０をデバッグする場合、ハードウェアからのスイッチや上位のＣＰＵなどがデバッグのモードに入ることを知らせる必要があり、そのための信号ＤＢＧ＿ＯＮがＶＵＰＵ１０に供給される。
【００７１】
したがって、クロック制御ユニット３０は、デバッグ信号ＤＢＧ＿ＯＮとＰＣＬＫ信号を入力信号とするＧＣＬＫ供給回路３８を備えている。デバッグ信号ＤＢＧ＿ＯＮはラッチ回路３８ｂによりラッチされ、そのラッチ回路３８ｂの出力によりアンドゲート回路３８ｃがオープンしＰＣＬＫ信号がＧＣＬＫ信号として出力される。ＧＣＬＫ信号は、デバッグ制御ユニット４５およびＰＵ２のデバッグインターフェイス回路１９に供給される。したがって、デバッグユニット４５およびデバッグインターフェイス回路１９が稼動状態となり、デバッグモードでＶＵＰＵ１０が動作する。
【００７２】
デバッグモード状態で起動されたシステム（ＶＵＰＵ）は、通常、外部のコンピュータ上のデバッグモニタソフトによって、外部モニタインタフェース信号を経由しデバッグユニット４５の各種レジスタに、実行ブレークの条件などが設定される。その後、ＶＵＰＵ１０では、プログラムが実行される。デバッグユニット４５は、ＰＵ２のデバッグユニットインタフェース部１９からのデバッグユニットインタフェース信号φｇを使って、ＰＵ２の実行アドレスやデータ情報などをモニタすることができる。また、デバッグユニット４５は、設定されたブレーク条件に一致した場合、ＰＵ２のプログラム処理動作を停止するデバッグモード遷移のためのハンドシェイクを行うことができる。さらに、デバッグユニット４５は、停止中のＰＵおよびＶＵのレジスタ、データＲＡＭ、フラグなどの情報を得たり、ＰＵに対し外部からの命令を強制的に与え、実行させたりすることを行うことが可能である。
【００７３】
これら一連のデバッグのための回路は、通常処理では一切動作の必要はないため、他のクロック（ＰＣＬＫ、ＭＣＬＫ、ＶＣＬＫ、ＤＣＬＫ）と分離した専用クロックＧＣＬＫを、デバッグユニット４５やデバッグユニットインタフェース部１９にのみ供給し、デバッグ状態でのシステムＬＳＩ動作を示すＤＢＧ＿ＯＮ信号により、作動させることで、デバッグユニット４５をシステムＬＳＩ上に必要不可欠な回路として搭載はしても、ＬＳＩの消費電力を低減させることが可能である。
【００７４】
図７に、ＶＵＰＵ１０のクロック制御に関する一連の処理をフローチャートにより示してある。ステップ６１において、ＶＵＰＵ１０が通常の動作を行うために次の処理を行うことが選択されると、ステップ６２においてＦＵ５が次の命令をフェッチする。ステップ６３において、フェッチされた命令がＶＵ命令であると、ステップ６４において、ＶＣＬＫ供給回路３６によりＶＣＬＫ信号をＶＵ１に供給してＶＵ１を稼動させる。ステップ６５において、ＰＵ２からのＷＡＩＴＶ信号に対してＶＵ１からＶＵＷＡＩＴＣ信号が返されると、ＰＵ２のＶＵＷＡＩＴ状態管理機能１１ｃはＶＵＷＡＩＴＣ信号を識別し、ステップ６６において、ＭＣＬＫ供給回路３５に対してＣＬＫＳＴＰ信号を供給してＭＣＬＫ信号を停止する。これにより、ＰＵ２を休止状態にする。また、ステップ６７において、ＶＵＷＡＩＴＣ信号がオフになり、またはステップ６８において、ＶＵＷＡＩＴ信号がオフになると、ステップ６９において、ＶＣＬＫ供給回路３６からのＶＣＬＫ信号の供給を停止し、ＶＵ１を休止状態にする。
【００７５】
一方、ステップ６３において、フェッチされた命令がＰＵ命令であると、ステップ７０において、ＰＵ２のＨＡＬＴ状態管理回路１１ａがＨＡＬＴ命令であるか否かを判断する。ＨＡＬＴ命令であれば、ステップ７１において、ＭＣＬＫ供給回路３５によりＭＣＬＫ信号を停止してＰＵ２を休止状態にする。割り込み信号が入ると、ＭＣＬＫ信号の供給は再開される。ＰＵ命令がメモリアクセスを伴う命令であるとステップ７２で判断されると、ステップ７３において、メモリクロック制御回路３１または３２が動作し、アクセス対象のメモリブロックに対してＭＣＬＫ信号が供給され、メモリブロックが活性化される。他のＰＵ命令がフェッチされた場合は、ステップ７４においてＥＵ１１がその命令に基づく処理を行う。
【００７６】
通常の動作ではなく、ステップ７５において、ダウンロードを指示する信号ＤＬ＿ＲＥＱが検出された場合は、ステップ８０において、ＤＣＬＫ供給回路３７によりＤＣＬＫ信号が出力される。また、ステップ７６において、デバッグモードを指示する信号ＤＢＧ＿ＯＮが検出された場合は、ステップ７７において、ＧＣＬＫ供給回路によりＧＣＬＫ信号が出力される。
【００７７】
図８に、ダウンロード処理をさらに詳しく示してある。ステップ８１において、システム上のハードウェアからダウンロード処理開始を要求する信号ＤＬ＿ＲＥＱを検出すると、ステップ８２において、ダウンロード状態管理回路４１から許可信号ＤＬ＿ＥＮＡＢＬＥがＤＣＬＫ供給回路３７に出力され、ＤＣＬＫ信号が出力される。これにより、ダウンロード制御ユニット４０およびダウンロード回路１８がアクティブとなり、ダウンロード処理が開始される。
【００７８】
ダウンロード制御部４０に入ったＤＬ＿ＲＥＱ信号は、ダウンロードの処理実行の開始を要求する信号ＤＬ＿ＳＴＡＲＴとして、ＰＵ２の割込み入力となり、ステップ８３において、ＭＣＬＫ信号がオンとなりＰＵ２がＨＡＬＴ状態から復帰する。そして、ＰＵ２がダウンロードの前処理を行う。前処理においては、ＰＵ２が指定された割込み処理からダウンロード処理が開始されたことを判断し、ダウンロード状態管理回路４１のシステム状態（ダウンロード要求状態）を示すステータスレジスタからＰＵのＩ／Ｏインターフェイスを使い情報を読み取り、対象となるダウンロード処理を判断する。対象のダウンロード処理を特定したところで、ダウンロードの対象となる処理プログラムから、ダウンロード時の外部メモリからのリード開始アドレス、ダウンロードコードのワード数、ＰＵコードＲＡＭへのダウンロード先開始アドレスなどの情報を、ダウンロード制御部４０のレジスタにＰＵのＩ／Ｏ命令を使い、書き込む。さらに、ＰＵ２より、ダウンロード制御部４０のダウンロード開始を示すレジスタにＩ／Ｏ命令で書き込み、ダウンロード開始を指示する。
【００７９】
これによりダウンロードが開始されるので、ステップ８４において、ＨＡＬＴ命令がＰＵ２に供給されて、ＰＵ２は休止状態となる。しかしながら、ＰＵ２のダウンロード回路１８はＤＣＬＫが供給されているので、稼動状態のままとなり、ステップ８５でダウンロード処理が進行する。
【００８０】
ダウンロード処理では、まずダウンロード制御ユニット４０のステートマシンにより、ＰＵ２が設定したＰＵコードＲＡＭ４へのダウンロード先開始アドレスをＰＵ２のダウンロード回路１８のダウンロード専用レジスタ１８ｒに書き込む。続いて、同じくＰＵ２が設定した外部メモリリード開始アドレスを使い、外部メモリ５０から外部メモリインタフェース信号を使い、データを読み込む。このダウンロード制御ユニット４０に読み込んだデータを、ダウンロードインターフェイス信号φｄを使いＰＵ２内のダウンロード回路１８のダウンロード専用レジスタ１８ｒに書き込む。ＰＵ２のダウンロード回路１８では規定の３ワード分（４８ビット）の専用レジスタにデータが書き込まれるとコードＲＡＭ４に自動的に書き込む。したがって、ダウンロード制御ユニット４０において、この外部メモリ５０から読み込み、そして、ダウンロード回路１８へ書き込む一連のシーケンスを、ＰＵ２が設定したダウンロードのワード数分繰り返すことで、ダウンロード処理が完了する。ＶＵＰＵ１０より上位階層のプロセッサ、いわゆるＣＰＵが存在するシステムでは、このダウンロード制御ユニット４０でのシーケンス処理をＣＰＵに実行させること可能である。これにより、ダウンロード制御ユニット４０は不要となるか、または極めて小さな回路ブロックで賄うことが可能である。
【００８１】
このダウンロード処理実行の間、ＰＵ２はＨＡＬＴ状態に遷移しており、ＭＣＬＫ信号は停止しているので、電力消費は最小になっている。ステップ８６でダウンロード処理が完了すると、ダウンロード制御ユニット４０においては、その完了を示す信号ＤＬ＿ＥＮＤにより、ダウンロード状態管理回路４１のフリップフロップ４２がリセットされる。ステップ８７において、ＤＬ＿ＥＮＡＢＬＥ信号がデアサートされることでダウンロード回路に供給するクロックＤＣＬＫの作動が停止する。それと、同時に、ステップ８８において、ＤＬ＿ＥＮＤ信号がＰＵ２の割込み・リセット回路１２に入力されることで、ダウンロード完了がＰＵ２に伝えられる。これにより、ＰＵ２はＨＡＬＴ状態から通常状態へ遷移し、ダウンロード状態管理回路４１のダウンロード正常終了を確認後、コードＲＡＭ４にダウンロードされた処理Ｂのプログラム５１ｂによる処理を開始する。
【００８２】
【発明の効果】
以上に説明したように、本発明の、専用データ処理ユニット（ＶＵ）と汎用データ処理ユニット（ＰＵ）とを有するデータ処理装置（ＶＵＰＵ）においては、ＰＵ２の割り込み・リセット回路に供給されるクロック信号ＰＣＬＫ、ＰＵ２に供給されるクロック信号ＭＣＬＫ、ＶＵ１に供給されるクロック信号ＶＣＬＫ、ダウンロード処理系に供給されるクロック信号ＤＣＬＫ、さらに、デバッグ処理系に供給されるクロック信号ＧＣＬＫを分離し、これらのクロック信号が不要なケースでは停止することができる。したがって、ＶＵＰＵを搭載したシステムＬＳＩの通常動作時における消費電力の浪費を防止できる。
【００８３】
ＶＵＰＵは、繰り返し計算の多い処理などを機能単位で抽出してＶＵとして実現し、高速処理化を可能とすると共に、他の処理は汎用プロセッサであるＰＵで処理できる。したがって、ハードウェア化に伴うコストアップや設計期間の長期化を抑制し、さらに、仕様変更や、開発のあらゆる段階の変更にも柔軟に対処できるというメリットも備えている。本発明は、１つには、そのようなＶＵＰＵの動作に着目しメモリユニットの動作を停止可能としている。すなわち、ＶＵＰＵの処理は単純にプログラムカウンタを進めるだけではなく、ＶＵにおける処理中は必ずしもプログラムカウンタを進めなくて良い。したがって、その間、コードＲＡＭあるいはデータＲＡＭといったメモリユニットの動作も停止できることを利用し、ＶＵＰＵの実行速度などのパフォーマンスに大きな影響を与えずにメモリユニットの消費電力を大幅に低減している。
【００８４】
また、ＶＵあるいはＰＵが独自で処理を進める機会も多いので、本発明では、ＶＵあるいはＰＵに対するクロック信号の供給を停止することが消費電力の低減に非常に効果的であることを示している。さらに、そのようなクロック信号の制御を行うことにより、ＶＵＰＵにおいては、実行速度はほとんど影響をうけない。さらに、ＶＵのウェイト信号に基づきＰＵのＭＣＬＫ信号を停止することにより、システムＬＳＩとして与えられた仕様の内、ハードウェア化するのに適した機能を適当な単位で抽出したＶＵ側にＰＵのクロック制御を内在させることが可能となり、きわめて簡単に、ＰＵを適切なタイミングで、適切な期間だけ休止し、ＶＵＰＵのパフォーマンスを低下させずに、消費電力の低減が図れる。したがって、本発明のＶＵＰＵは、設計上のフレキシビリティのある、実行速度の速いハードウェアおよび設計手法であると共に、低消費電力化にも好適なハードウェアおよび設計手法であるということができる。
【図面の簡単な説明】
【図１】本発明に係るＰＵおよびＶＵを備えたデータ処理装置（ＶＵＰＵ）の概要を示す図である。
【図２】ＭＣＬＫ信号およびＶＣＬＫ信号の供給回路を示すブロック図である。
【図３】ＭＣＬＫ信号およびＶＣＬＫ信号の異なる供給回路を示すブロック図である。
【図４】メモリユニットのクロック供給回路を示すブロック図である。
【図５】データＲＡＭに対するクロック供給回路を示すブロック図である。
【図６】ＤＣＬＫ信号およびＧＣＬＫ信号の供給回路を示すブロック図である。
【図７】ＶＵＰＵにおけるクロック制御の概要を示すフローチャートである。
【図８】ダウンロード処理に関するクロック制御の概要を示すフローチャートである。
【符号の説明】
１    専用データ処理ユニットＶＵ
２    汎用データ処理ユニットＰＵ
４    コードＲＡＭ
５    フェッチユニットＦＵ
１０    データ処理装置（ＶＵＰＵ）
１１    実行ユニット
３０、３１、３２    クロック制御ユニット
３５、３６、３１ａ、３１ｂ、３２ａ、３２ｂ    クロック供給回路
【図１】
2004199630.tif 000003
【図２】
2004199630.tif 000004
【図３】
2004199630.tif 000005
【図４】
2004199630.tif 000006
【図５】
2004199630.tif 000007
【図６】
2004199630.tif 000008
【図７】
2004199630.tif 000009
【図８】
2004199630.tif 000010