(57)【要約】【課題】低消費電力動作時において、消費電力をさらに低減する。【解決手段】外部との間でデータの授受を行うインターフェースブロック１５０を有するプロセッサへ供給されるクロックを制御する本発明のプロセッサのクロック制御方法は、プロセッサの通常動作時のクロックＣＬＫ１０１にもとづいて、これよりも低い周波数のクロックを生成し、プロセッサの通常動作時において、インターフェースブロック１５０に対して通常動作時のクロックＣＬＫ１０１を供給し、プロセッサの低消費電力動作時において、インターフェースブロック１５０に対して生成された低い周波数のクロックを供給する。【選択図】　　図１
2004110450.tif 000002
【特許請求の範囲】
【請求項１】
外部との間でデータの授受を行うインターフェース部を有するプロセッサへ供給されるクロックを制御するプロセッサのクロック制御方法であって、
前記プロセッサの通常動作時のクロックにもとづいて、これよりも低い周波数のクロックを生成し、
前記プロセッサの通常動作時において、前記インターフェース部に対して前記通常動作時のクロックを供給し、
前記プロセッサの低消費電力動作時において、前記インターフェース部に対して前記生成された低い周波数のクロックを供給する
ことを特徴とするプロセッサのクロック制御方法。
【請求項２】
請求項１に記載のプロセッサのクロック制御方法において、
前記プロセッサの通常動作時において、前記プロセッサのうちの前記インターフェース部以外の部分に対して、前記通常動作時のクロックを供給し、
前記プロセッサの低消費電力動作時において、前記プロセッサのうちの前記インターフェース部以外の部分に対して、前記通常動作時のクロックの供給を停止する
ことを特徴とするプロセッサのクロック制御方法。
【請求項３】
請求項１に記載のプロセッサのクロック制御方法において、
前記プロセッサの動作が、前記通常動作から前記低消費電力動作へ遷移する際または前記低消費電力動作から前記通常動作へ遷移する際には、前記プロセッサにＮＯＰ命令を実行させる
ことを特徴とするプロセッサのクロック制御方法。
【請求項４】
外部との間でデータの授受を行うインターフェース部を有するプロセッサが低消費電力動作を開始するためのスリープ開始命令の実行を示すスリープ指示信号を受けると、スリープ信号をアクティブにして出力するスリープ制御部と、
クロックを所定の比率で分周して出力する分周器と、
前記スリープ信号に応じて、前記クロックと前記分周器が出力する分周されたクロックとのうちのいずれかを選択し、前記インターフェース部に出力する第１のマルチプレクサと、
前記スリープ信号に応じて、前記クロックと所定の固定値とのうちのいずれかを選択し、前記プロセッサのうちの前記インターフェース部以外の部分に出力する第２のマルチプレクサとを備え、
前記第１のマルチプレクサは、前記スリープ信号がアクティブのときに、前記分周器が出力する分周されたクロックを選択するものであり、
前記第２のマルチプレクサは、前記スリープ信号がアクティブのときに、前記所定の固定値を選択するものである
ことを特徴とするプロセッサのクロック制御装置。
【請求項５】
請求項４に記載のプロセッサのクロック制御装置において、
前記プロセッサは、前記プロセッサが実行すべき命令を記憶し、実行するデコーダ部をさらに備えており、
前記スリープ制御部は、
前記プロセッサがスリープ開始命令の実行を示す前記スリープ指示信号を受けると、前記プロセッサのパイプライン段数に対応した数の前記クロックの周期の間、ストール信号をアクティブにして出力するものであり、
前記デコーダ部は、前記アクティブのストール信号を受けると、ＮＯＰ命令を出力するものである
ことを特徴とするプロセッサのクロック制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プロセッサへ供給されるクロックを制御するプロセッサのクロック制御方法および装置に関する。
【０００２】
【従来の技術】
近年、携帯端末に求められるアプリケーションは多種多様であり、多種多様のアプリケーションを実現するためには、高性能、高機能なプロセッサがますます必要となってきている。さらに、携帯端末はバッテリ駆動であることから、携帯端末に含まれる各デバイスには低消費電力動作が強く求められている。
【０００３】
デバイスにとって最も低消費電力を実現できる状態は動作をさせないことである。一方、デバイスに動作をさせるとすると、同一デバイスおよび同一電位である場合は、動作周波数を下げれば、その周波数に比例して低消費電力化を実現することができる。
【０００４】
携帯端末では、ある処理タイミングごとにトリガがかかり、そのトリガごとに受け取ったデータに応じて処理を開始する。その処理が終われば次のトリガがかかるまでは処理を行うことがないので、この期間でどれだけ低消費電力化を実現できるかが鍵となる。
【０００５】
完全にプロセッサの動作を止めてしまう場合は、次にプロセッサを立ち上げてから動作を開始するまでの時間が大きなペナルティとなるため、実際的にそのような使用はできない。したがって、プロセッサの動作を完全には止めないまでも何らかの対応が必要となってくる。
【０００６】
最も初歩的には、何もしない命令としてのＮＯＰ（Ｎｏ−ｏｐｅｒａｔｉｏｎＩｎｓｔｒｕｃｔｉｏｎ）命令を無限ループで繰り返し、トリガを受けることによってそのループを抜け出すという対応がある。ＮＯＰ命令はクロックラインで電力を消費するだけで何の動作も生じないので、ＡＤＤ命令やＭＵＬ命令等を実行するよりは低消費電力化を実現することができる。
【０００７】
さらに消費電力を低減するために、一般に、次のような構成および命令が採用されている。
【０００８】
図５は、従来のプロセッサの構成例を示すブロック図である。
【０００９】
図５に示すプロセッサは、高速クロックＣＬＫ２１０を出力するＰＬＬ２００、プロセッサの外部とデータの授受を行うインターフェースブロック２２０、高速クロックＣＬＫ２１０と固定値“１”とのいずれかを選択して出力するマルチプレクサ２３０、およびインターフェースブロック２２０以外のプロセッサ内のブロック２４０を備えている。マルチプレクサ２３０は、スリープ信号Ｓ１０を入力し、スリープ信号Ｓ１０がアクティブ（“１”）のときは固定値“１”を選択し出力し、スリープ信号Ｓ１０がノンアクティブ（“０”）のときは高速クロックＣＬＫ２１０を選択し出力する。
【００１０】
次に、図５に示したプロセッサの動作を説明する。
【００１１】
図５に示したプロセッサにおいて、低消費電力動作を実行するための命令（スリープ命令）が実行されると、スリープ信号Ｓ１０がアクティブ（“１”）となり、アクティブ（“１”）のスリープ信号Ｓ１０を受けたマルチプレクサ２３０は、ブロック２４０に対して高速クロックＣＬＫ２１０の代わりに固定値“１”を供給する。これにより、ブロック２４０は全く動作しないので消費電力は最小となる。
【００１２】
また、インターフェースブロック２２０は高速クロックＣＬＫ２１０の供給を受け続ける。これは、信号処理の必要がなくてもこれまでの処理結果データを出力する必要があるために、または次のトリガによって信号処理を開始する場合に使用するデータを入力するために、インターフェースブロック２２０は常に動作している必要があるからである。
【００１３】
すなわち、信号処理が終わるとすぐにこのスリープ命令を実行すれば、ＮＯＰ命令を繰り返すよりもずっと低消費電力化を実現することができる。また、インターフェースブロック２２０のための高速クロックＣＬＫ２１０は供給されているので、必要なブロックに関してのみクロックが供給されていることになる。このようにして、消費電力を削減している。（例えば、非特許文献１参照）
【００１４】
【特許文献１】
特開平１０−１４５４４６号公報
【非特許文献１】
ＴＭＳ３２０Ｃ５Ｘ　ユーザーズマニュアル　ｐ．４−９１／９２、　日本ＴＩ　命令名はＩＤＬＥ命令
【００１５】
【発明が解決しようとする課題】
上記のように、低消費電力の動作を行っているときでも、高速なクロックはインターフェースとしてのブロックに供給され続けられている。
【００１６】
プロセッサは２００ＭＨｚを超える程度の動作を行うことと、外部とのインターフェースにはせいぜい数１０ＭＨｚ程度の速度があれば十分であることとを考えると、インターフェース機能のみに対してそのような高速なクロックを供給し続けることは、電力を非常に無駄に消費していることになる。
【００１７】
そこで、本発明の目的は、低消費電力の動作時において、さらに低消費電力化を可能とするプロセッサのクロック制御方法および装置を提供することである。
【００１８】
【課題を解決するための手段】
上記課題を解決するために、第１に、本発明に係るプロセッサのクロック制御方法は、外部との間でデータの授受を行うインターフェース部を有するプロセッサへ供給されるクロックを制御するプロセッサのクロック制御方法であって、前記プロセッサの通常動作時のクロックにもとづいて、これよりも低い周波数のクロックを生成し、前記プロセッサの通常動作時において、前記インターフェース部に対して前記通常動作時のクロックを供給し、前記プロセッサの低消費電力動作時において、前記インターフェース部に対して前記生成された低い周波数のクロックを供給するものである。
【００１９】
本発明によると、低消費電力動作時において、インターフェース部に対して、通常動作時のクロックの周波数よりも低い周波数のクロックを供給する。そのため、低消費電力動作時における消費電力をさらに低減することができる。
【００２０】
また、請求項２の発明は、請求項１に記載のプロセッサのクロック制御方法において、前記プロセッサの通常動作時において、前記プロセッサのうちの前記インターフェース部以外の部分に対して、前記通常動作時のクロックを供給し、前記プロセッサの低消費電力動作時において、前記プロセッサのうちの前記インターフェース部以外の部分に対して、前記通常動作時のクロックの供給を停止するものとする。
【００２１】
本発明によると、低消費電力動作時において、インターフェース部以外の部分に対して、クロックの供給を停止するため、低消費電力動作時における消費電力をさらに低減することができる。
【００２２】
また、請求項３の発明は、請求項１に記載のプロセッサのクロック制御方法において、前記プロセッサの動作が、前記通常動作から前記低消費電力動作へ遷移する際または前記低消費電力動作から前記通常動作へ遷移する際には、前記プロセッサにＮＯＰ命令を実行させるものとする。
【００２３】
本発明によると、クロックラインに不要なパルスが生じた場合でも、プロセッサに誤動作が発生することを防ぐことができる。
【００２４】
また、上記課題を解決するために、第２に、本発明に係るプロセッサのクロック制御装置は、外部との間でデータの授受を行うインターフェース部を有するプロセッサが低消費電力動作を開始するためのスリープ開始命令の実行を示すスリープ指示信号を受けると、スリープ信号をアクティブにして出力するスリープ制御部と、クロックを所定の比率で分周して出力する分周器と、前記スリープ信号に応じて、前記クロックと前記分周器が出力する分周されたクロックとのうちのいずれかを選択し、前記インターフェース部に出力する第１のマルチプレクサと、前記スリープ信号に応じて、前記クロックと所定の固定値とのうちのいずれかを選択し、前記プロセッサのうちの前記インターフェース部以外の部分に出力する第２のマルチプレクサとを備え、前記第１のマルチプレクサは、前記スリープ信号がアクティブのときに、前記分周器が出力する分周されたクロックを選択するものであり、前記第２のマルチプレクサは、前記スリープ信号がアクティブのときに、前記所定の固定値を選択するものである。
【００２５】
本発明によると、低消費電力動作時において、インターフェース部に対しては分周されたクロックを供給し、インターフェース部以外の部分に対してはクロックの供給を停止する。そのため、低消費電力動作時における消費電力をさらに低減することができる。
【００２６】
また、請求項５の発明は、請求項４に記載のプロセッサのクロック制御装置において、前記プロセッサは、前記プロセッサが実行すべき命令を記憶し、実行するデコーダ部をさらに備えており、前記スリープ制御部は、前記プロセッサがスリープ開始命令の実行を示す前記スリープ指示信号を受けると、前記プロセッサのパイプライン段数に対応した数の前記クロックの周期の間、ストール信号をアクティブにして出力するものであり、前記デコーダ部は、前記アクティブのストール信号を受けると、ＮＯＰ命令を出力するものであるものとする。
【００２７】
本発明によると、クロックラインに不要なパルスが生じた場合でも、プロセッサに誤動作が発生することを防ぐことができる。
【００２８】
【発明の実施の形態】
以下、本発明の一実施形態について図面を参照しながら説明する。
【００２９】
図１は本発明の一実施形態に係るプロセッサの構成例を示すブロック図である。
【００３０】
図１に示すプロセッサは、ＰＬＬ１００、分周器１１０、マルチプレクサ１２０（第１のマルチプレクサに対応する）、スリープ制御ブロック１３０（スリープ制御部に対応する）、マルチプレクサ１４０（第２のマルチプレクサに対応する）、インターフェースブロック１５０（インターフェース部に対応する）、インターフェースブロック１５０以外のブロック１７０（インターフェース部以外の部分に対応する）とを備えている。ブロック１７０は、デコーダブロック１６０（デコーダ部に対応する）を含んでいる。
【００３１】
ＰＬＬ１００は、プロセッサの外部から与えられた低速クロック（図示せず）を逓倍し、分周し、高速クロックＣＬＫ１０１を出力する。
【００３２】
スリープ制御ブロック１３０は、後述するスリープ指示信号Ｓ４を入力すると、アクティブ（“１”）のスリープ信号Ｓ１を分周器１１０とマルチプレクサ１２０とマルチプレクサ１４０とに出力し、また、アクティブ（“１”）のストール信号Ｓ２をデコーダブロック１６０に出力する。さらに、スリープ制御ブロック１３０は、外部から割り込み要求（スリープ解除要求）信号Ｓ３を入力すると、スリープ信号Ｓ１をノンアクティブ（“０”）にする。
【００３３】
分周器１１０は、スリープ制御ブロック１３０から入力されるスリープ信号Ｓ１がアクティブ（“１”）のときは、後述の設定レジスタ１１５の内容により決定される所定の比率で、高速クロックＣＬＫ１０１を分周し、分周したクロックを出力する。なお、設定レジスタ１１５は、転送バス１１８経由で、読み出し書き込み自由なレジスタである。
【００３４】
マルチプレクサ１２０は、スリープ制御ブロック１３０からのスリープ信号Ｓ１がアクティブ（“１”）のときは分周器１１０からの出力を選択し、スリープ信号Ｓ１がノンアクティブ（“０”）のときはＰＬＬ１００からの高速クロックＣＬＫ１０１を選択する。マルチプレクサ１２０から出力されるクロックＣＬＫ１２５は、インターフェースブロック１５０およびスリープ制御ブロック１３０に供給される。
【００３５】
インターフェースブロック１５０は、プロセッサの外部とのデータの授受を行うブロックである。
【００３６】
図２は、分周器１１０とマルチプレクサ１２０との動作の概要を説明するためのタイミングチャートである。
【００３７】
ここで、本実施形態では、分周器１１０は高速クロックＣＬＫ１０１を１／４に分周する場合で、分周器１１０の内部カウンタの最上位ビットを分周後のクロックとして出力する場合を想定している。また、分周器１１０の内部カウンタの初期値を常に“３”に設定し、分周器１１０からの出力を“１”に固定する。
【００３８】
図示するように、分周器１１０に入力されるスリープ信号Ｓ１がアクティブ（“１”）になると（時刻ｔ３）、分周器１１０の内部カウンタのプリセットが解除され、分周器１１０内でダウンカウントが開始される（時刻ｔ３〜ｔ５）。また、マルチプレクサ１２０からの出力は、図示するように、スリープ信号Ｓ１に応じて、ＰＬＬ１００と分周器１１０とからの出力を選択し、クロックＣＬＫ１２５として出力する。すなわち、マルチプレクサ１２０は、スリープ信号Ｓ１がアクティブ（“１”）の間（時刻ｔ３〜ｔ５）、分周器１１０から上記１／４に分周されたクロックをクロックＣＬＫ１２５として出力する。また、スリープ信号Ｓ１がノンアクティブ（“０”）の間（時刻ｔ３以前、時刻ｔ５以降）、高速クロックＣＬＫ１０１をクロックＣＬＫ１２５として出力する。
【００３９】
マルチプレクサ１４０は、スリープ制御ブロック１３０からのスリープ信号Ｓ１がアクティブ（“１”）のときは固定値“１”を選択し、スリープ信号Ｓ１がノンアクティブ（“０”）のときはＰＬＬ１００からの高速クロックＣＬＫ１０１を選択し、クロックＣＬＫ１４５として出力する。また、マルチプレクサ１４０から出力されるこのクロックＣＬＫ１４５は、デコーダブロック１６０に供給される。
【００４０】
デコーダブロック１６０は、命令を格納する命令メモリブロック１６５と命令をデコードする命令デコーダブロック１６６とを有している。
【００４１】
命令メモリブロック１６５は、スリープ開始命令を命令デコーダブロック１６６に出力する。また、命令メモリブロック１６５は、スリープ制御ブロック１３０から受けるストール信号Ｓ２がアクティブ（“１”）である場合は、ＮＯＰ命令を出力する。
【００４２】
命令デコーダブロック１６６は、スリープ指示信号Ｓ４を出力するが、命令メモリブロック１６５からスリープ開始命令を受けた場合のみ、スリープ指示信号１６７をアクティブ（“１”）にする。
【００４３】
図３は、スリープ制御ブロック１３０の動作の概要を説明するための図である。
【００４４】
まず、スリープ制御ブロック１３０は、命令デコーダブロック１６６からアクティブ（“１”）のスリープ指示信号１６７を受けると（時刻ｔ１）、ストール信号１３６をパイプライン段数分（時刻ｔ２〜ｔ３）だけアクティブ（“１”）にして出力する（本実施形態におけるプロセッサのパイプライン段数は３であるとする）。そして、時刻ｔ３でストール信号Ｓ２がノンアクティブ（“０”）になると、スリープ信号Ｓ１をアクティブ（“１”）にする（時刻ｔ５）。それ以後は、上記図２で説明した通りであり、スリープ制御ブロック１３０に供給される動作クロックは、マルチプレクサ１２０からの分周されたクロックのクロックＣＬＫ１２５である。
【００４５】
また、スリープ制御ブロック１３０では、時刻ｔ４においてスリープ解除要求信号Ｓ３を受けると、動作クロックであるクロックＣＬＫ１２５の立ち上がりエッジで（時刻ｔ３）スリープ解除要求信号Ｓ３をポーリングする。そして、スリープ解除要求信号Ｓ３がアクティブ（“１”）であれば、そのタイミングで（時刻ｔ３）、スリープ解除要求信号Ｓ３をノンアクティブ（“０”）にする。
【００４６】
最後に、以上で説明した本実施形態に係るプロセッサの一連の動作について概説する。
【００４７】
図４は、本実施形態に係るプロセッサの一連の動作を説明するためのタイミングチャートである。
【００４８】
＜時刻ｔ１＞
まず、命令メモリブロック１６５からスリープ開始命令が命令デコーダブロック１６６に出され、命令デコーダブロック１６６からのスリープ指示信号Ｓ４はアクティブ（“１”）になる。
【００４９】
＜時刻ｔ２〜ｔ３＞
次に、アクティブ（“１”）のスリープ指示信号Ｓ４を受けたスリープ制御ブロック１３０からのストール信号Ｓ２はパイプライン段数分である３サイクルの間、アクティブ（“１”）になる。
【００５０】
また、スリープ制御ブロック１３０からアクティブ（“１”）のストール信号Ｓ２を受けている間、命令メモリブロック１６５からＮＯＰ命令が出力され続ける。そのため、スリープ指示信号Ｓ４は、その間、ノンアクティブ（“０”）となる。
【００５１】
また、後述するように、ＮＯＰ命令はパイプライン段数分以降についても出力され続けるので、この時刻ｔ２〜ｔ３間、プロセッサの内部は動作しない状態になる。（なお、この間クロックは供給され続ける）
＜時刻ｔ３＞
次に、ストール信号Ｓ２がノンアクティブになると、スリープ制御ブロック１３０からのスリープ信号Ｓ１はアクティブ（“１”）になる。このアクティブ（“１”）のスリープ信号Ｓ１がマルチプレクサ１２０およびマルチプレクサ１４０に供給されるため、マルチプレクサ１２０およびマルチプレクサ１４０において選択される信号が変わる。すなわち、マルチプレクサ１２０では、１／４に分周されたクロックが選択され、マルチプレクサ１４０では、“１”に固定されたクロックが選択される。したがって、インターフェースブロック１５０は低速のクロック（クロックＣＬＫ１２５）で動作し、デコーダブロック１６０を含むブロック１７０は動作を停止する。なお、クロックＣＬＫ１２５は、分周器１１０の内部カウンタの動作に同期している。
【００５２】
ここで、上記状態は、インターフェースブロック１５０とスリープ制御ブロック１３０のみが１／４に分周された低速のクロック（クロックＣＬＫ１２５）で動作している状態である。したがって、設定レジスタ１１５において分周率を適切に設定することによって、インターフェースブロック１５０に必要な最低限のクロックを設定でき、低消費電力の動作時に消費電力を極限まで下げることができる。
【００５３】
＜時刻ｔ４〜ｔ５＞
次に、外部からの割り込み要求信号であるスリープ解除要求信号Ｓ３を受けると（時刻ｔ４）、スリープ制御ブロック１３０は、クロックＣＬＫ１２５の立ち上がりエッジで検出する（時刻ｔ５）。そのため、スリープ制御ブロック１３０からのスリープ信号Ｓ１はノンアクティブ（“０”）となる。このノンアクティブ（“０”）のスリープ信号Ｓ１がマルチプレクサ１２０およびマルチプレクサ１４０に供給されるため、マルチプレクサ１２０およびマルチプレクサ１４０において選択される信号が変わる。すなわち、マルチプレクサ１２０およびマルチプレクサ１４０では、高速クロックＣＬＫ１０１が選択される。
【００５４】
＜ｔ５〜＞
このようにして、プロセッサは低消費電力の動作から復帰し、通常の動作を行う。
【００５５】
なお、上記時刻ｔ３またはｔ５において、クロックのラインに制御が入り、クロックパルスが発生する可能性がある。しかしながら、プロセッサの状態はＮＯＰ命令状態であるので誤動作は起こり得ない制御となっている。すなわち、上述したように、時刻ｔ２でストール信号Ｓ２がアクティブ（“１”）になって、命令メモリブロック１６５はＮＯＰ命令を出力している状態になる。この状態で、クロックＣＬＫ１４５は、図４に示すように、時刻ｔ３で停止するため、ＮＯＰ命令に対応する信号を出力し続けることになる。したがって、時刻ｔ５においてもＮＯＰ命令状態となるので、誤動作は生じないのである。
【００５６】
以上のように、本実施形態によると、低消費電力動作時において、インターフェースブロック１５０に対して、通常動作時のクロックＣＬＫ１０１の周波数よりも低い周波数のクロックをクロックＣＬＫ１２５として供給する。そのため、低消費電力動作時における消費電力をさらに低減することができる。
【００５７】
【発明の効果】
上述の通り、本発明によると、低消費電力動作時において、インターフェース部に対して、通常動作時のクロックの周波数よりも低い周波数のクロックを供給する。そのため、低消費電力動作時における消費電力をさらに低減することができる。
【図面の簡単な説明】
【図１】本発明の一実施形態におけるプロセッサの構成例を示すブロック図である。
【図２】分周器とマルチプレクサの動作の概要を説明するためのタイミングチャートである。
【図３】スリープ制御ブロック１３０の動作の概要を説明するためのタイミングチャートである。
【図４】本発明の一実施形態におけるプロセッサの一連の動作を説明するためのタイミングチャートである。
【図５】従来のプロセッサの構成例を示すブロック図である。
【符号の説明】
１００　ＰＬＬ
１１０　分周器
１１５　設定レジスタ
１１６　転送バス
１２０　マルチプレクサ（第１のマルチプレクサ）
１３０　スリープ制御ブロック
１４０　マルチプレクサ（第２のマルチプレクサ）
１５０　インターフェースブロック
１６０　デコーダブロック
１６５　命令メモリブロック
１６６　命令デコーダブロック
１７０　インターフェースブロック以外のブロック
ＣＬＫ１０１　高速クロック
ＣＬＫ１２５、ＣＬＫ１４５　クロック
Ｓ１　スリープ信号
Ｓ２　ストール信号
Ｓ３　スリープ解除要求信号（割り込み要求信号）
Ｓ４　スリープ指示信号
【図１】
2004110450.tif 000003
【図２】
2004110450.tif 000004
【図３】
2004110450.tif 000005
【図４】
2004110450.tif 000006
【図５】
2004110450.tif 000007