(57)【特許請求の範囲】
【請求項１】
１または複数のプロセッサ、専用論理を持つ１または複数の機能ブロックのいずれか１方あるいは両方を備える情報処理装置において、
前記プロセッサ、機能ブロックのそれぞれの動作周波数を独立に変更する手段と、電源電圧を変更する手段と、制御手段とを備え、
前記制御手段は、情報処理装置上で動作する１または複数のアプリケーションのそれぞれが要求するプロセッサ、機能ブロックのそれぞれに必要な動作周波数を決める所定の周波数に乗ずるパラメータ値の情報に基づいて、前記プロセッサ、機能ブロックの動作周波数を決定し、前記動作周波数を変更する手段を制御し、かつ、現在動作している１または複数のアプリケーションが必要としている動作周波数を決めた前記パラメータ値のプロセッサ、機能ブロック毎の総和の最大値で、前記プロセッサ、機能ブロックが動作することができるような電圧を、前記プロセッサ、機能ブロックに共通に印加するように前記電源電圧を変更する手段を制御することを特徴とする情報処理装置。
【請求項２】
前記制御手段は、アプリケーションが開始されたとき、現在の情報処理装置の動作状況を管理している管理手段から動作状況を取得し、開始するアプリケーションに必要な処理能力をプロセッサ、機能ブロックに割り振り、前記プロセッサ、機能ブロックの動作周波数を変更することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記制御手段は、アプリケーションが終了されたとき、現在の情報処理装置の動作状況を管理している管理手段から動作状況を取得し、終了するアプリケーションに割り当てられていた処理能力をプロセッサ、機能ブロックから削除して、前記プロセッサ、機能ブロックの動作周波数を変更することを特徴とする請求項１記載の情報処理装置。
【請求項４】
バッテリ等の主電源と、その電圧を測定する測定手段とをさらに備え、前記制御手段は、前記プロセッサ、機能ブロックの動作周波数を、前記測定手段で測定された電源電圧で動作可能な周波数に設定することを特徴とする請求項１、２または３記載の情報処理装置。
【請求項５】
外部からのフォーマットされたデータ入力を受け付ける手段さらに備え、前記制御手段は、前記プロセッサ、機能ブロックの動作周波数を、前記データ入力のデータフォーマットに応じて、このデータフォーマットに適した動作周波数に設定することを特徴とする請求項１ないし４のうちいずれか１記載の情報処理装置。
【請求項６】
１または複数のプロセッサ、専用論理を持つ１または複数の機能ブロックのいずれか１方あるいは両方を備える情報処理装置の制御方法において、
情報処理装置上で動作する１または複数のアプリケーションのそれぞれが要求するプロセッサ、機能ブロックのそれぞれに必要な動作周波数を決める所定の周波数に乗ずるパラメータ値の情報に基づいて、前記プロセッサ、機能ブロックの動作周波数を決定し、前記プロセッサ、機能ブロックのそれぞれの動作周波数を独立に変更し、かつ、現在動作している１または複数のアプリケーションが必要としている動作周波数を決めた前記パラメータ値のプロセッサ、機能ブロック毎の総和の最大値で、前記プロセッサ、機能ブロックが動作することができるような電圧を、前記プロセッサ、機能ブロックに共通に印加するように前記電源電圧を変更することを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置及び情報処理装置の制御方法に係り、特に、動作周波数を変更可能とした情報処理装置及び情報処理装置の制御方法に関する。
【０００２】
【従来の技術】
近年、信号処理やメディア処理等の分野において、プロセッサや専用ハードウェアを使用した処理が行われるようになってきた。これらの処理は、その演算量が非常に大きく、また、一定時間内での処理終了が必須となるリアルタイム性が要求される。このため、これらの処理を実現する情報処理装置は、非常に高い処理性能が要求され、これを実現するために高い動作周波数が要求されている。
【０００３】
一般に、プロセッサ等のＣＭＯＳトランジスタで構成されている半導体回路は、その動作周波数に比例して消費電力が増加する。これらの消費電力は、情報処理装置を構成する際の障害となるため、消費電力を低減するための種々の方法が提案されている。
【０００４】
例えば、マルチプロセッサシステム等における消費電力の低減を図ることを可能にする従来技術として、例えば、特開平８−２０２４６８号公報等に記載された技術が知られている。この従来技術は、マルチプロセッサ構成のシステムにおいて、各プロセッサについて処理状態を検出し、使用していないかまたは負荷の軽いプロセッサを低消費電力モードに移行させ、システム全体の消費電力を押さえるというものである。
【０００５】
また、他の従来技術として、例えば、特開２０００−６６７７６号公報等に記載された技術が知られている。この従来技術は、システムのサブ回路の電力消費を制御する方法に関するもので、プロセッサに割り当てられた負荷に見合う動作周波数を割り出し、この周波数でプロセッサが動作することができる電源電圧を検出し、この電源電圧をプロセッサに印加することによって、その負荷を処理できる最小電力でプロセッサを動作させることを可能とするものである。
【０００６】
前述したように、従来からマルチプロセッサシステムのような大規模な情報処理装置を構成するために、全体の消費電力を減らすという試みがなされてきた。
【０００７】
一方、半導体回路の集積度が年々上がってきており、この結果、以前では複数の部品で構成されていた情報処理装置を１つの半導体回路に集積して構成することが可能となってきた。これによって、より小さな情報処理装置の開発が可能となり、様々な小型機器への応用が行われている。特に、バッテリ等の電力供給源を使用することによって、携帯可能な情報処理装置の作成が可能となっている。従来、このような用途で半導体回路が使用される場合、電力供給源の容量に見合った最大消費電力を持つものを開発または選択してきたが、この方法は、前述したメディア処理等の高負荷の処理を行う情報処理装置を実現することが難しい。
【０００８】
【発明が解決しようとする課題】
前述したように、情報処理装置は、処理能力の増加が要求される一方で、バッテリ動作が可能である等の省電力化が要求されている。このため、情報処理装置には、これらの２つの要求を満たすために、ある情報処理装置が処理すべき対象であるアプリケーションに対して十分な処理能力を有し、かつ、その処理能力が実現できる最小の消費電力で動作することが要求されている。
【０００９】
しかし、前述した従来技術による情報処理装置は、前述したような２つの要求を同時に、かつ、充分に満足させることができるものではないという問題点を有している。
【００１０】
本発明の目的は、アプリケーションに対して充分な処理能力が実現できる最小の消費電力で動作できるように、動作周波数、動作電圧を変更することのできる高い処理能力を持ち、低消費電力化を図った情報処理装置及び情報処理装置の制御方法を提供することにある。
【００１１】
【課題を解決するための手段】
本発明によれば前記目的は、１または複数のプロセッサ、専用論理を持つ１または複数の機能ブロックのいずれか１方あるいは両方を備える情報処理装置において、
前記プロセッサ、機能ブロックのそれぞれの動作周波数を独立に変更する手段と、電源電圧を変更する手段と、制御手段とを備え、
前記制御手段は、情報処理装置上で動作する１または複数のアプリケーションのそれぞれが要求するプロセッサ、機能ブロックのそれぞれに必要な動作周波数を決める所定の周波数に乗ずるパラメータ値の情報に基づいて、前記プロセッサ、機能ブロックの動作周波数を決定し、前記動作周波数を変更する手段を制御し、かつ、現在動作している１または複数のアプリケーションが必要としている動作周波数を決めた前記パラメータ値のプロセッサ、機能ブロック毎の総和の最大値で、前記プロセッサ、機能ブロックが動作することができるような電圧を、前記プロセッサ、機能ブロックに共通に印加するように前記電源電圧を変更する手段を制御することにより達成される。
【００１２】
また、前記目的は、１または複数のプロセッサ、専用論理を持つ１または複数の機能ブロックのいずれか１方あるいは両方を備える情報処理装置の制御方法において、
情報処理装置上で動作する１または複数のアプリケーションのそれぞれが要求するプロセッサ、機能ブロックのそれぞれに必要な動作周波数を決める所定の周波数に乗ずるパラメータ値の情報に基づいて、前記プロセッサ、機能ブロックの動作周波数を決定し、前記プロセッサ、機能ブロックのそれぞれの動作周波数を独立に変更し、かつ、現在動作している１または複数のアプリケーションが必要としている動作周波数を決めた前記パラメータ値のプロセッサ、機能ブロック毎の総和の最大値で、前記プロセッサ、機能ブロックが動作することができるような電圧を、前記プロセッサ、機能ブロックに共通に印加するように前記電源電圧を変更することにより達成される。
【００１３】
【発明の実施の形態】
以下、本発明による情報処理装置の実施形態を図面により詳細に説明する。
【００１４】
図１は本発明の第１の実施形態による情報処理装置のハードウェア構成を示すブロック図、図２はアプリケーションプログラムの追加して起動したときに使用するプログラムの処理動作を説明するフローチャート、図３はアプリケーションプログラム終了時に使用するプログラムの処理動作を説明するフローチャート、図４は図２の処理で使用するクロックテーブルについて説明する図、図５は図２の処理でアプリケーションが追加起動された後のクロックテーブルの状態を説明する図、図６は図３処理でアプリケーションが終了させられた後のクロックテーブルの状態を説明する図であり、以下、これらの図を参照して本発明の第１の実施形態について説明する。
【００１５】
図１において、１０１、１０２は第１、第２のマイクロプロセッサユニット（以下、ＭＰＵという）、１０３は外部メモリ制御ユニット、１０４は外部メモリ、１０５はシステムバス、１０６は機能ブロック、１０７はデジタル−アナログコンバータ（以下、ＤＡＣという）、１０８、１１８は第１、第２のフェイズロックドループ（以下、ＰＬＬという）、１０９、１１９は第１、第２のＰＬＬ用リファレンスクロック、１１０は第１のＰＬＬの発振クロック、１１１、１１３、１１５、１２０は第１〜第４の分周器、１１２、１１４は第１、第２のＭＰＵ用ローカルクロック、１１６はメモリ制御ユニット用ローカルクロック、１１７、１２２は第１、第２のコントロールレジスタ、１２１は機能ブロック及びＤＡＣ用ローカルクロックである。
【００１６】
図１に示す本発明の第１の実施形態において、第１のＰＬＬ１０８は、第１のコントロールレジスタ１１７の値を元にリファレンスクロック１０９を逓倍化して発振クロック１１０を作成する。この発振クロック１１０は、第１〜第３の分周器１１１、１１３、１１５を通して、第１のＭＰＵ１０１、第２のＭＰＵ１０２及びメモリ制御ユニット１０３を駆動するためのローカルクロック１１２、１１４、１１６の生成のために使用される。分周器１１１、１１３、１１５のそれぞれは、第１のコントロールレジスタ１１７から値に基づいて独立に制御され、発振クロック１１０を分周して１／ｎの周波数に落とす。分周器１１１、１１３、１１５を、第１、第２のＭＰＵ１０１、１０２及びメモリ制御ユニット１０３の各ユニット毎に備えることより、各ユニットは、その動作周波数を発振クロック１１０の必要な１／ｎ倍（ｎの値は分周器毎に異なってよい）に設定された周波数として受けることが可能となり、必要とする周波数で動作することができる。
【００１７】
第１、第２のＭＰＵ１０１、１０２は、外部メモリ１０４からプログラム及びデータを読み込み、演算を行い、また、システムバス１０５を通して機能ブロック１０６、第１、第２のコントロールレジスタ１１７、１２２を制御することが可能である。メモリ制御ユニット１０３は、第１、第２のＭＰＵ１０１、１０２、機能ブロック１０６のからの要求をシステムバス１０５を通して受けると、外部メモリ１０４を制御してデータの読み書きを行い、必要に応じて結果を要求元へ返信する。システムバス１０５は、これに接続されている全てのユニットに対し、要求元から要求先へ要求を伝え、結果を要求先から要求元へ返す。
【００１８】
説明している本発明の実施形態は、便宜上、システムバス１０５及びこれに接続されている各ユニット（１０１、１０２、１０３、１０６、１１７、１２２）の中でシステムバス１０５を制御している部分の全てが、メモリ制御ユニット１０３用のローカルクロック１１６で動作しているものとする。しかし、本発明は、システムバス１０５を、他のユニットのローカルクロックで動作させるようにしても、あるいは、システムバス専用のローカルクロックを新たに作成して動作させるようにしてもよい。
【００１９】
第２のＰＬＬ１１８は、第１のＰＬＬ１０８と同様の動作を行う。すなわち、第２のＰＬＬ１１８は、第２のコントロールレジスタ１２２の値を使用し、リファレンスクロック１１９を逓倍化して第４の分周器１２０に出力する。第４の分周器１２０は、第２のコントロールレジスタ１２２の値を使用して第４の分周器１２０からの逓倍化されクロックを分周し、ローカルクロック１２１を作成し、機能ブロック１０６及びＤＡＣ１０７に供給する。機能ブロック１０６は、第１、第２のＭＰＵ１０１、１０２では処理しきれない計算を行う処理に特化した専用論理により構成されている。そして、機能ブロック１０６は、第１のＭＰＵ１０１または第２のＭＰＵ１０２によって制御され、デジタルビデオ画像やデジタル音声のフィルタ処理、改ざん防止のためにソフトウェアでの実装が不可能な暗号処理等を行う。
【００２０】
前述した本発明の第１の実施形態は、第１、第２のＭＰＵ１０１、１０２に後述するプログラムを動作させ、コントロールレジスタ１１７、１２２を制御し、第１、第２のＭＰＵ１０１、１０２、メモリ制御ユニット１０３、機能ブロック１０６の動作周波数を変更することによって、システム全体の消費電力を押さえるように動作する。
【００２１】
なお、前述した図１に示す情報処理装置の例は、２台のＭＰＵと１台の機能ブロックとを備えるとしているが、ＭＰＵと機能ブロックとは、それぞれ１または複数が設けられてよく、また、ＭＰＵ、機能ブロックの一方だけが設けられてもよい。
【００２２】
次に、図２、図３を参照して、第１、第２のＭＰＵ１０１、１０２で使用するプログラムの動作を説明するが、これらのプログラムは、図１に示す外部メモリ１０４に格納され、必要に応じてＭＰＵに読み込まれて処理される。また、これらのプログラムは、後述する図４〜図６に示すクロックテーブルを使用するが、このテーブルも外部メモリ１０４に格納されていて、必要に応じてＭＰＵに読み込まれて処理される。
【００２３】
図４に示すクロックテーブルは、アプリケーション番号の項目４０１、第１のＭＰＵのクロック項目４０２、第２のＭＰＵのクロック項目４０３、メモリ制御ブロックのクロック項目４０４、機能ブロック、ＤＡＣ、ディスプレイのクロック項目４０５をパラメータとして持ち、これらが、システムのパラメータ欄４０６、第１のアプリケーションのパラメータ欄４０７、第２のアプリケーションのパラメータ欄４０８、総和値のパラメータ欄４０９、最大許容量のパラメータ欄４１０に格納されて構成される。また、このテーブルには、各パラメータの判定欄４１１が設けられる。
【００２４】
パラメータ欄４０６〜４０８のクロック項目４０２〜４０５の数値は、図１に示すリファレンスクロック１０９または１１９と、ローカルクロック１１２、１１４、１１６、１２１との比を示す値、すなわち、第１のＰＬＬによる逓倍値と第１〜第３の分周器の分周値との積に相当する値、及び、第２のＰＬＬによる逓倍値と第４の分周器の分周値との積に相当する値であり、リファレンスクロック１０９または１１９の周波数にこれらの値を乗じたものが、システム及び第１、第２のアプリケーションが必要とする第１、第２のＭＰＵ、メモリ制御ユニット、ＤＡＣでのクロック周波数を示している。ここで、クロック周波数を示す値が０の場合、対応するアプリケーションが、そのクロック項目のＭＰＵ等を使用しないことを意味する。
【００２５】
また、総和値のパラメータ欄４０９の各クロック項目の値は、この値にリファレンスクロック１０９または１１９の周波数を乗じた値が、システム及び第１、第２のアプリケーションが同時に動作する場合の第１、第２のＭＰＵ、メモリ制御ユニット、ＤＡＣでの必要なクロック周波数となることを示している。さらに、最大許容量のパラメータ欄４１０の各値は、この値にリファレンスクロック１０９または１１９の周波数を乗じた値が、第１、第２のＭＰＵ、メモリ制御ユニット、ＤＡＣが動作可能な最大のクロック周波数を示すことになり、判定欄４１１には、テーブルの状態で第１、第２のＭＰＵ、メモリ制御ユニット、ＤＡＣが動作可能か否か示される。
【００２６】
そして、図２により後述する処理が実行され新たに第３のアプリケーションが追加して起動されると、図５に示すように、図４のテーブルに第３のアプリケーションに対するパラメータ欄５０１が設けられると共に、総和値のパラメータ欄４０９がアプリケーションの追加により変更され、パラメータ欄５０２に変更される。また、図３により後述する処理が実行され第２のアプリケーション終了されると、図６に示すように、図５に示すテーブルから第２のアプリケーションに対するパラメータ欄４０８が削除されると共に、総和値のパラメータ欄がパラメータ欄６０１のように変更される。
【００２７】
なお、第１、第２のアプリケーションが必要とする第１、第２のＭＰＵ、メモリ制御ユニット、ＤＡＣでのクロック周波数を決める値は、各アプリケーションが、その内部にそれぞれ有している。
【００２８】
まず、図２に示すフローを参照して、本発明の実施形態において、アプリケーションプログラムを新たに追加して起動させる場合に使用するプログラムの処理動作を説明する。
【００２９】
（１）この処理プログラムは、ユーザ等によりプログラムの起動要求が発生した場合にスタートし、まず、新たに起動するアプリケーション用にアプリケーション番号を取得する（ステップ２０１）。
【００３０】
（２）次に、２０２で外部メモリ１０４に格納されている図４に示すクロックテーブルに新しい欄を作成し、新アプリケーション番号及びアプリケーションが持つ固有のパラメータ４０２、４０３、４０４、４０５を格納してクロックテーブルを更新する。図５に示すパラメータ欄５０１が新たに作成された新アプリケーション用の欄である（ステップ２０２）。
【００３１】
（３）ステップ２０２で更新されたクロックテーブルについて、パラメータ４０２〜４０５の各パラメータの総和を求め、総和値のパラメータ欄４０９を更新してパラメータ欄５０２とする（ステップ２０３）。
【００３２】
（４）ステップ２０３の処理で更新したパラメータ欄５０２の各パラメータの全てが最大許容量欄４１０内の値を超えていないか否かを判定し、１つでも超えている場合、ステップ２０２で作成したクロックテーブルの新しい欄５０１を削除し、パラメータ値の総和の欄４０９を元の値に戻してここでの処理を終了する。この場合、起動要求があったアプリケーションは、現システム状態では動作が不可能と判定し起動しない（ステップ２０４、２０５）。
【００３３】
（５）ステップ２０４の判定で、更新したパラメータ欄５０２の各パラメータの全てが最大許容量欄４１０内の値を超えていなかった場合、新たな各パラメータ総和値をテーブルに格納して、総和値パラメータ５０２に更新する（ステップ２０６）。
【００３４】
（６）次に、ステップ２０６で更新された各パラメータの総和値に基づいて、各ＰＬＬ、分周器に対するコントロールレジスタの値を変更し、各ローカルクロック１１２、１１４、１１６、１２１の周波数を設定する。この後、新しいアプリケーション本体を起動する（ステップ２０７、２０８）。
【００３５】
前述した処理の例は、２つのアプリケーションが動作している状態で、クロックテーブルが図４に示すような状態の場合に、もう１つのアプリケーションを追加して起動するとして説明したが、前述の説明から判るように、システムの立ち上げ時におけるクロックテーブルは、システムのパラメータ欄４０６、総和値のパラメータ欄４０９、最大許容量のパラメータ欄４１０、各パラメータの判定欄４１１だけが設けられる構成であり、アプリケーションが立ち上げられる度に、それらのアプリケーションに対応するパラメータ欄が追加されていく。
【００３６】
次に、図３に示すフローを参照して、本発明の実施形態において、アプリケーションプログラムを終了させる場合に使用するプログラムの処理動作を説明する。ここでの処理は、図２により説明した処理の後に、第２のアプリケーションを終了させるものとした場合の例である。
【００３７】
（１）この処理プログラムは、ユーザ等によって終了するアプリケーションが指定されると起動され、まず、終了するアプリケーションを使用し図５のクロックテーブルから該当するパラメータ欄を探し出し、次に、そのパラメータ欄をクロックテーブルから削除する（ステップ３０１、３０２）。
【００３８】
（２）その後、パラメータ４０２〜４０５の各パラメータの総和値を再計算して求め、総和値のパラメータ欄５０２を更新してパラメータ欄６０１とする（ステップ３０３）。
【００３９】
（３）次に、指定されたアプリケーションプログラムを終了させ、各パラメータの総和値欄６０１から各ＰＬＬ、分周器に対するコントロールレジスタの値を更新し、各ローカルクロック１１２、１１４、１１６、１２１の周波数を所定の周波数に設定して処理を終了する（ステップ３０４、３０５）。
【００４０】
前述した本発明の第１の実施形態によれば、各ＭＰＵ、ハードウェア機能ブロックを適正な動作周波数で動作することができるように設定することができ、かつ、システム全体の消費電力を押さえることが可能となる。
【００４１】
図７は本発明の第２の実施形態による情報処理装置のハードウェア構成を示すブロック図、図８はストリームデータの処理を開始するときに使用するプログラムの処理動作を説明するフローチャート、図９は図８の処理でストリームデータの処理が開始された後のクロックテーブルの状態を説明する図であり、以下、これらの図を参照して本発明の第２の実施形態について説明する。図７において、７０１はストリームデータ入力ブロックであり、他の符号は図１の場合と同一である。
【００４２】
図７に示す本発明の第２の実施形態は、図１に示す第１の実施形態による情報処理装置にストリームデータ入力ブロック７０１をシステムバス１０５に接続して加えて構成し、ストリームデータの処理を可能としたもので、その他の構成は、図１の場合と同一である。第２の実施形態で加えたストリームデータ入力ブロック７０１は、外部からのデジタル映像、音声等のデータ入力を随時受け付け、これをシステムバス１０５を経由して外部メモリ１０４に送付する処理を行うものである。
【００４３】
外部からのデジタル映像、音声等のデータとしては、例えば、システム外部のデジタルＴＶチューナー、ラジオチューナ等が考えられる。これらのデータを以下ではストリームデータと呼ぶが、このようなストリームデータを処理する場合、発信側でストリームデータを作成したときに使用した形式に沿って処理を行う必要がある。これらの形式は、主にデータ量、発信側の都合等により選択されている。受信側を複数の形式に対応できるように構成した場合、このストリームがどの形式に対応するかを判定することができるように構成する必要がある。一般的に、この複数の形式は、形式毎に必要とする処理能力が異なる。
【００４４】
本発明の第２の実施形態は、図８により説明する処理を実行するプログラムを使用することによって、ストリームの形式を変更する度に適切な動作周波数を設定することを可能としたものであり、次に、図８に示すフローを参照して、外部ストリームの処理が開始されたときの処理を説明する。この処理においても、図４により説明したクロックテーブルが使用されるものとし、また、このクロックテーブルの第１のアプリケーションに対するパラメータ欄が、この処理でのストリームデータ処理プログラムに相当するものとする。
【００４５】
（１）この処理プログラムは、ストリームデータ処理プログラムと同時に起動され、まず、入力ストリーム形式が変更されたか否かの判定を行い、変更されていない場合、一定期間を置いて繰り返し判定を行う（ステップ８０１）。
【００４６】
（２）ステップ８０１の判定で、入力ストリーム形式が変更されていた場合、該当アプリケーションの欄に新しい入力ストリーム形式のパラメータを格納する。この処理によって、図４の４０７に示した第１のアプリケーションのパラメータ欄は、図９に９０１として示すアプリケーション１ａのパラメータ欄のように変更してテーブルを更新する（ステップ８０２）。
【００４７】
（３）次に、ステップ８０２で更新されたクロックテーブルについて、パラメータ４０２〜４０５の各パラメータの総和を求め、総和値のパラメータ欄４０９を更新してパラメータ欄９０２とする（ステップ８０３）。
【００４８】
（４）ステップ８０３の処理で更新したパラメータ欄９０２の各パラメータの全てが最大許容量欄４１０内の値を超えていないか否かを判定し、１つでも超えている場合、ステップ８０２で更新したクロックテーブルの更新した欄９０１を削除し、パラメータ値の総和の欄９０２の各パラメータの総和値をもう１度求め直して、クロックテーブル総和値の欄９０２を更新し、ここでの処理を終了する（ステップ８０４、８０５）。
【００４９】
（５）ステップ８０４の判定で、全てのパラメータが最大許容量を超えていなかった場合、ステップ８０３で更新された総和値に基づいて、各ＰＬＬ、分周器に対するコントロールレジスタの値を変更し、各ローカルクロック１１２、１１４、１１６、１２１の周波数を所定の値に設定する。この後、新しいストリーム形式での処理動作を開始し、ステップ８０１からの処理に戻る（ステップ８０６、８０７）。
【００５０】
前述した本発明の第２の実施形態によれば、第１の実施形態の効果に加え、さらに外部からの入力データのフォーマット変化に対応して動作周波数を変更することが可能となり、システム全体の消費電力を押さえることができる。
【００５１】
図１０は本発明の第３の実施形態による情報処理装置のハードウェア構成を示すブロック図、図１１は電源電圧が変動したときに動作周波数を変更するために使用するプログラムの処理動作を説明するフローチャート、図１２は図１１の処理で動作周波数が変更された後のクロックテーブルの状態を説明する図であり、以下、これらの図を参照して本発明の第３の実施形態について説明する。図１０において、１００１はバッテリ、１００２は電圧計、１００３は電源モニタレジスタ、１００４は電圧保存レジスタであり、他の符号は図１の場合と同一である。
【００５２】
図１０に示す本発明の第３の実施形態は、電源電圧が低下したときに処理装置全体の動作周波数を低下させて消費電力の低減を図ることを可能にしたもので、バッテリ１００１の電圧を測定する電圧計１００２と、電圧計１００２でのバッテリの測定電圧をモニタしてその信号をシステムバス１０５を介してシステムに与える電源モニタレジスタと、前回のクロックテーブルの更新時におけるバッテリの電圧値を保存している電圧保存レジスタ１００４とが、図１により説明した本発明の第１の実施形態に加えられて構成されており、その他の構成は、図１の場合と同一である。
【００５３】
通常、バッテリ１００１は、電力を消費していくと、電圧が低下していく。電圧計１００２は、この電圧の低下を検知し、電源モニタレジスタ１００３に随時反映する。このレジスタ１００３は、システムバス１０５を経由し、第１、第２のＭＰＵ１０１、１０２から参照可能である。
【００５４】
次に、図１１に示すフローを参照して、電源電圧が変動したときに動作周波数を変更する処理について説明する。なお、この処理においても、図４により説明したクロックテーブルが参照される。また、電圧保存レジスタ１００４には、前回のクロックテーブルの更新時、すなわち、クロックテーブルが図４に示す状態とされたときのバッテリの電圧値が保存されている。
【００５５】
（１）この処理プログラムは、システムの起動時に起動され、起動されると、まず、電圧モニタレジスタ１００３の値を読み出し、電圧モニタレジスタの値が更新されたか否かを判定する。電圧モニタレジスタ１００３には、バッテリ１００１の電圧変化が常時反映されていて、変化がない場合、一定間隔で更新されたか否かの判定を続ける（ステップ１１０１、１１０２）。
【００５６】
（２）ステップ１１０２での判定で、電圧モニタレジスタの値が更新されていた場合、前回のクロックテーブルの更新時のバッテリの電圧値を保存している電圧保存レジスタ１００４の値と、更新されている電圧モニタレジスタの値とを比較し、電圧モニタレジスタの値が電圧保存レジスタの値より一定以上大きいか否かを判定する（ステップ１１０３）。
【００５７】
（３）ステップ１１０３での判定で、電圧モニタレジスタの値が電圧保存レジスタの値より一定以上大きくなかった場合、電圧モニタレジスタの値が電圧保存レジスタの値より一定以上小さいか否かを判定し、一定以上小さくなかった場合、すなわち、差が一定値未満の場合、電圧の変化はクロックテーブルの設定値の変更を行うほど大きくなかったと判定し、何も変更せずに、ステップ１１０１からの処理に戻って処理を続ける（ステップ１１０７）。
【００５８】
（４）ステップ１１０７での判定で、電圧モニタレジスタの値が電圧保存レジスタの値より一定以上小さかった場合、クロックテーブルの変更可能な各パラメータの値の２の商を求め、現在の値と置き換える。この結果、図４に示すクロックテーブルは、図１２に示すような状態となる。この場合、システムのパラメータ欄４０６の値、及び、ディスプレイのクロック項目４０５の値は変更不可能な値であり、第１、第２のアプリケーションのパラメータ欄の値が１２０１、１２０２に示すように変更され、最大許容量のパラメータ欄１２０４の値が２の商に変更され、総和値の欄１２０３が再計算されている（ステップ１１０８）。
【００５９】
（５）この後、ステップ１１０８で再計算されたパラメータ値のうち、１つでも０があるか否かを判定し、ある場合、アプリケーションが必要としているＭＰＵのクロック項目の値の和が０、または、メモリ制御ブロックのクロック項目４０４の値が０であった場合、そのアプリケーションが動作不可能となったと判定して、そのアプリケーションを終了してここでの処理を終了する（ステップ１１０９、１１１０）。
【００６０】
（６）ステップ１１０９の判定で値が０となったパラメータがなかった場合、ＰＬＬ、分周器に対するコントロールレジスタの値を更新してセットし、現在の電圧モニタレジスタの値を電圧保存レジスタ１００４に記憶し、その後、ステップ１１０１からの処理に戻って処理を続ける（ステップ１１１１）。
【００６１】
（７）ステップ１１０３での判定で、電圧モニタレジスタの値が電圧保存レジスタの値より一定以上大きかった場合、電圧モニタレジスタの値が最大値となっているか否かを判定する（ステップ１１０４）。
【００６２】
一般に、情報処理装置がバッテリ駆動されている場合、バッテリの電圧は、時間と共に低下していくので、前述までに説明したフローに従った処理が行われることになる。このため、ステップ１１０３での判定で、電圧モニタレジスタの値が電圧保存レジスタの値より一定以上大きかったという結果が得られる場合というのは、バッテリの交換が行われたとき、あるいは、バッテリが交流電源からフローティングされるようになったときである。
【００６３】
（８）ステップ１１０４の判定で、電圧モニタレジスタの値が最大値となっていなかった場合、低下していた電圧の回復が図られたことになるので、クロックテーブル内の変更可能なパラメータ値を２倍にして現在値に置き換え、ステップ１１１１からの処理を続ける。この場合、前述したステップ１１０８の処理でパラメータ値が少なくとも１／２とされているので、ここでの処理で２倍としても問題を生じることはない（ステップ１１０６）。
【００６４】
（９）ステップ１１０４の判定で、電圧モニタレジスタの値が最大値となっていた場合、クロックテーブルの各パラメータを初期値に戻し、ステップ１１１１からの処理を続ける（ステップ１１０５）。
【００６５】
前述した本発明の第３の実施形態によれば、第１の実施形態の効果に加え、さらに外部電源の電圧変化に対して動作周波数を変更することが可能となり、システム全体の消費電力を押さえ、動作時間の延長を図ることができる。
【００６６】
図１３は本発明の第４の実施形態による情報処理装置のハードウェア構成を示すブロック図、図１４は必要とされるクロック周波数により電源電圧を変更するプログラムの処理動作を説明するフローチャート、図１５は図１４の処理で使用するクロック−電圧テーブルの構成を説明する図であり、以下、これらの図を参照して本発明の第４の実施形態について説明する。図１３において、１３０１はＤＣ−ＤＣコンバータ、１３０２は電圧設定レジスタであり、他の符号は図１の場合と同一である。
【００６７】
図１３に示す本発明の第４の実施形態は、前述までに説明したクロックテーブル内の総和値のパラメータ欄の値に基づいて処理装置を構成する各ブロックに供給する電圧を変更することにより、処理装置の消費電力の低減を図ることを可能にしたもので、図１により説明した本発明の第１の実施形態に、ＤＣ−ＤＣコンバータ１３０１と、電圧設定レジスタ１３０２とを設けて構成されている。ＤＣ−ＤＣコンバータ１３０１は、電圧設定レジスタ１３０２の設定値を使用して電源電圧を決定し、図１３に示している全ブロックへこの電圧を持つ電源を供給している。電圧設定レジスタ１３０２は、システムバス１０５を介して第１、第２のＭＰＵ１０１、１０２からアクセスが可能とされ、これらのＭＰＵから制御可能とされている。
【００６８】
次に、図１４に示すフローを参照して、必要とされるクロック周波数により電源電圧を変更するプログラムの処理動作を説明する。この処理では、図１５に示すクロック−電圧テーブルを使用する。図１５において、１５０１はクロックテーブル内の総和値のパラメータ欄内の最大値、１５０２は対応する電圧設定レジスタ値である。
【００６９】
（１）この処理プログラムは、システムの起動時に起動され、起動されると、まず、図４により説明したクロックテーブルが更新されたか否かを判定し、更新が行われるまで、クロックテーブルが更新されたか否かの判定を繰り返す（ステップ１４０１）。
【００７０】
（２）その後、クロックテーブル内の総和値のパラメータ欄４０９の中から最大値を選択する。このパラメータ欄４０９の中での最大値は１６であり、次に、図１５に示すクロック−電圧テーブルから前記最大値に対する電圧値を求める。この場合、図１５で最大値１６を超える総和値最大値１５０１の最小値が２０となっているので、これに対応する電圧設定レジスタ値１５０２から得られる電圧レジスタ設定値は１９となる（ステップ１４０２、１４０３）。
【００７１】
（３）次に、ステップ１４０３で得た値が現在の電圧レジスタ設定値と同一であるか否かを判定し、同一の場合、ステップ１４０１の処理に戻って前述した処理を繰り返し、また、異なる場合、電圧設定レジスタに新しい値をセットする（ステップ１４０５）。
【００７２】
前述した本発明の第４の実施形態によれば、第１の実施形態の効果に加え、さらに動作周波数にあわせて電源電圧を変更することが可能となり、更なるシステム全体の消費電力を押さえることができる。
【００７３】
前述までに本発明の第１〜第４の実施形態について説明したが、本発明は、これらの第１〜第４の実施形態の複数を組み合わせて構成することもできる。
【００７４】
【発明の効果】
以上説明したように本発明によれば、動作するアプリケーションに対して充分な処理能力を実現でき、最小の消費電力で動作できるように、ＭＰＵ等の機能ブロックを適正な周波数、作動電圧によって動作させることができ、情報処理装置の低消費電力化を図ることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態による情報処理装置のハードウェア構成を示すブロック図である。
【図２】アプリケーションプログラムの追加して起動したときに使用するプログラムの処理動作を説明するフローチャートである。
【図３】アプリケーションプログラム終了時に使用するプログラムの処理動作を説明するフローチャートである。
【図４】図２の処理で使用するクロックテーブルについて説明する図である。
【図５】図２の処理でアプリケーションが追加起動された後のクロックテーブルの状態を説明する図である。
【図６】図３処理でアプリケーションが終了させられた後のクロックテーブルの状態を説明する図である。
【図７】本発明の第２の実施形態による情報処理装置のハードウェア構成を示すブロック図である。
【図８】ストリームデータの処理を開始するときに使用するプログラムの処理動作を説明するフローチャートである。
【図９】図８の処理でストリームデータの処理が開始された後のクロックテーブルの状態を説明する図である。
【図１０】本発明の第３の実施形態による情報処理装置のハードウェア構成を示すブロック図である。
【図１１】電源電圧が変動したときに動作周波数を変更するために使用するプログラムの処理動作を説明するフローチャートである。
【図１２】図１１の処理で動作周波数が変更された後のクロックテーブルの状態を説明する図である。
【図１３】本発明の第４の実施形態による情報処理装置のハードウェア構成を示すブロック図である。
【図１４】必要とされるクロック周波数により電源電圧を変更するプログラムの処理動作を説明するフローチャートである。
【図１５】図１４の処理で使用するクロック−電圧テーブルの構成を説明する図である。
【符号の説明】
１０１、１０２  第１、第２のマイクロプロセッサユニット（ＭＰＵ）
１０３  外部メモリ制御ユニット
１０４  外部メモリ
１０５  システムバス
１０６  機能ブロック
１０７  デジタル−アナログコンバータ（ＤＡＣ）
１０８、１１８  第１、第２のフェイズロックドループ（ＰＬＬ）
１１１、１１３、１１５、１２０  第１〜第４の分周器
１１７、１２２  第１、第２のコントロールレジスタ
７０１  ストリームデータ入力ブロック
１００１  バッテリ
１００２  電圧計
１００３  電源モニタレジスタ
１００４  電圧保存レジスタ
１３０１  ＤＣ−ＤＣコンバータ
１３０２  電圧設定レジスタ
【図１】
0004050027.tif 000002
【図２】
0004050027.tif 000003
【図３】
0004050027.tif 000004
【図４】
0004050027.tif 000005
【図５】
0004050027.tif 000006
【図６】
0004050027.tif 000007
【図７】
0004050027.tif 000008
【図８】
0004050027.tif 000009
【図９】
0004050027.tif 000010
【図１０】
0004050027.tif 000011
【図１１】
0004050027.tif 000012
【図１２】
0004050027.tif 000013
【図１３】
0004050027.tif 000014
【図１４】
0004050027.tif 000015
【図１５】
0004050027.tif 000016