(57)【特許請求の範囲】
【請求項１】
ＣＰＵの処理速度を可変制御可能なコンピュータシステムにおいて、
前記ＣＰＵの処理速度の加速および減速をユーザに指示させるためのユーザインタフェースを用いて、ユーザからの加速指示または減速指示を受け取る手段と、
前記受け取った加速指示または減速指示に応じて現在のＣＰＵ処理速度を変更する手段と、
変更後の前記ＣＰＵ処理速度をグラフによって表示する手段と、
前記ＣＰＵ処理速度が変更された場合、変更されたＣＰＵ処理速度を前記コンピュータシステムで実行中のソフトウェアと対応させて記録することにより、ソフトウェア毎にそれを実行するときのＣＰＵ処理速度を示す速度管理情報を定義する手段と、
前記速度管理情報にＣＰＵ処理速度が記録されているソフトウェアが実行された場合、現在のＣＰＵ処理速度を、前記速度管理情報に記録されている、前記実行されたソフトウェアに対応するＣＰＵ処理速度に設定する手段とを具備することを特徴とするコンピュータシステム。
【請求項２】
前記コンピュータシステムで使用されるキーボード上の所定キーには、前記加速指示を発行するための第１ホットキーと前記減速指示を発行するための第２ホットキーとが割り当てられており、
前記ユーザからの加速指示または減速指示を受け取る手段は、前記第１および第２ホットキーの押下操作に応じて前記加速指示または減速指示を受け取ることを特徴とする請求項１記載のコンピュータシステム。
【請求項３】
前記ユーザからの加速指示または減速指示を受け取る手段は前記加速および減速を指示するための画面を表示し、この画面上の操作に応じて、ユーザからの加速指示または減速指示を受け取ることを特徴とする請求項１記載のコンピュータシステム。
【請求項４】
前記ＣＰＵは、分岐予測機構を用いて分岐先を予測し、予測が当たる場合と外れる場合の両方を並列に処理する予測並列処理機能を有しており、
前記ＣＰＵ処理速度を変更する手段は、前記分岐予測機構の動作／非動作を制御することを特徴とする請求項１記載のコンピュータシステム。
【請求項５】
ＣＰＵの処理速度を可変制御可能なコンピュータシステムに適用される処理速度制御方法であって、
ユーザからの加速指示または減速指示に応じて現在のＣＰＵ処理速度を変更し、
変更後の前記ＣＰＵ処理速度をグラフによって表示し、
前記ＣＰＵ処理速度が変更された場合、変更されたＣＰＵ処理速度を前記コンピュータシステムで実行中のソフトウェアと対応させて記録することにより、ソフトウェア毎にそれを実行するときのＣＰＵ処理速度を示す速度管理情報を構築し、
前記速度管理情報にＣＰＵ処理速度が記録されているソフトウェアが実行された場合、現在のＣＰＵ処理速度を、前記速度管理情報に記録されている、前記実行されたソフトウェアに対応するＣＰＵ処理速度に設定することを特徴とするコンピュータシステムの処理速度制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はコンピュータシステムおよびその処理速度制御方法に関し、特にパワーマネージメント機能の実現のためにＣＰＵ処理速度を可変制御できるように構成されたコンピュータシステムおよびそのシステムで使用されるＣＰＵ処理速度の制御方法に関する。
【０００２】
【従来の技術】
近年、携行が容易でバッテリにより動作可能なノートブックタイプのパーソナルコンピュータが種々開発されている。このようなパーソナルコンピュータに於いては、各種のパワーセーブ機能が設けられている。このパワーセーブ機能は、バッテリの消耗を減らして動作時間を延ばすことを主な目的とするものであり、消費電力の節約のためにＣＰＵ処理速度を下げられるようにしている。
【０００３】
また、近年マイクロプロセサが高性能化するに伴いその消費電力が大きくなり、ポータブルコンピュータにおいては、マイクロプロセサの放熱対策も難しい問題になっている。このため、ＣＰＵ処理速度を低下させて消費電力を減らすことは、マイクロプロセサなどの温度が上がり過ぎを防止する対策としても重要となっている。
【０００４】
従来から用いられているＣＰＵ処理速度の制御技術としては、ＣＰＵまたは周辺ユニットが意味のある処理をすることがなくなりイベント待ちになったときに、クロック速度を落したり電源供給を断ったりして消費電力を減らすというものである。このような技術は、以下に例示するように数多く知られている。
【０００５】
（１）ＵＳＰ４，１３７，５６３号公報：待ち状態にあるユニットを動かすのに必要な最小限のクロックパルスを間欠的に出して熱放散を押える技術が開示されている。
【０００６】
（２）ＵＳＰ４，３８１，５５２号公報：携帯電子機器のＣＰＵとメモリのクロックを非動作時に止める技術が記載されている。
（３）ＵＳＰ４，８５１，９８７号公報：キー入力待ちまたは割込待ちになったらＣＰＵクロックを止める。Ｉ／Ｏのクロックは止めない。プロセッサは多くの時間をアイドル・ループで待つのが普通であるので、これによりプロセッサの消費電力が減り、電池の動作時間を大幅に延ばすことができる旨が記載されている。
【０００７】
（４）ＵＳＰ５，１４２，６８４号公報：低速小電力の第２のＣＰＵをもち、これで非動作時の状態監視をし、高速ＣＰＵは非動作時には電源を絶つ。この高速ＣＰＵは、実行するタスクに応じてクロック速度を選択する。
【０００８】
（５）ＵＳＰ５，２２２，２３９号公報：システム性能が重要でない場合にＣＰＵのクロック周波数を下げる。
（６）ＵＳＰ５，４５２，４０１号公報：一つのチップ上にある複数のユニットの動作状況に応じて、そのユニットのクロックを非常に速くｏｎ／ｏｆｆして、省電力し発熱を押える。
（７）ＵＳＰ５，５６０，０１７号公報：イベント待ちの間、システム・クロックの周波数をＢＩＯＳソフトウェアが下げる。
【０００９】
【発明が解決しようとする課題】
しかし、これら技術はいずれもシステム状況に応じて自動的に処理速度を落とすだけのものであり、ユーザの期待、意志を反映する仕組は有してない。
すなわち、ユーザがコンピュータを使用して作業を行っている最中に動的にユーザの希望でＣＰＵ処理速度を変化させることはできず、現在実行中の作業内容によってはパワーセーブよりも処理速度を優先させたい、あるいは、反対に、特定の作業以外はＣＰＵ処理速度を落としてバッテリ動作時間を延ばしたいといったユーザの要望に答えることはできなかった。
【００１０】
また、従来のようにクロック速度を下げてＣＰＵの動作速度を下げるという技術は、バッテリ動作時間を延ばすことには役立つものの、ある仕事を実行するのに必要なエネルギーを低減するものではないことに注意すべきである。
【００１１】
すなわち、ＣＰＵのクロック速度を下げても、ある仕事を実行するのに必要な時間とエネルギーをトレードオフにすることはできない。ＣＭＯＳロジック回路で消費される電力を考えると、ＣＭＯＳロジック回路の消費するエネルギーは、第１次近似としては、実行クロック・サイクル数に比例する。実行時間に比例するわけではない。したがって、クロック速度を変えても、ある仕事を完成させるのに必要なクロック数が同じである限り、その仕事を完成させるのに必要なエネルギー量は変らない。
【００１２】
この発明はこのような点に鑑みてなされたものであり、ユーザの意志を反映したＣＰＵ処理速度の制御を実現できるようにし、消費電力を少なくする必要と快適な実行速度を求めるユーザの希望との間の調和を図ることが可能なコンピュータシステムおよびその処理速度制御方法を提供することを目的とする。
【００１３】
また、この発明は、ある仕事を実行するのに必要な時間とエネルギーとをトレードオフにすることができるコンピュータシステムおよびその処理速度制御方法を提供することを目的とする。
【００１４】
【課題を解決するための手段】
この発明は、ＣＰＵの処理速度を可変制御可能なコンピュータシステムにおいて、前記ＣＰＵの処理速度の加速および減速をユーザに指示させるためのユーザインタフェースを用いて、ユーザからの加速指示または減速指示を受け取る手段と、前記受け取った加速指示または減速指示に応じて現在のＣＰＵ処理速度を変更する手段と、変更後の前記ＣＰＵ処理速度をグラフによって表示する手段と、前記ＣＰＵ処理速度が変更された場合、変更されたＣＰＵ処理速度を前記コンピュータシステムで実行中のソフトウェアと対応させて記録することにより、ソフトウェア毎にそれを実行するときのＣＰＵ処理速度を示す速度管理情報を定義する手段と、前記速度管理情報にＣＰＵ処理速度が記録されているソフトウェアが実行された場合、現在のＣＰＵ処理速度を、前記速度管理情報に記録されている、前記実行されたソフトウェアに対応するＣＰＵ処理速度に設定する手段とを具備することを特徴とする。
【００１５】
このコンピュータシステムにおいては、例えばホットキーや表示画面上のボタン操作などのインターフェースを介してユーザからＣＰＵ処理速度の加速または減速が指示されると、それに応じてＣＰＵ処理速度の変更が動的に行われる。従って、ユーザは作業中にホットキー操作やボタン操作を行うことによって現在のＣＰＵ処理速度を動的に変更することが可能となり、作業内容などに応じてその処理速度を自由に変更することが可能となる。さらに、この変更結果はその時実行中のアプリケーションプログラムなどのソフトウェア名と対応させて速度管理情報に記録される。このようにして、ユーザがＣＰＵ処理速度の加速または減速を指示する度に速度管理情報が構築されていくので、その速度管理情報を用いることによりソフトウェア毎にそれを実行するときのＣＰＵ処理速度を制御することが可能となる。よって、ある特定の幾つかのソフトウェアを実行する場合にはＣＰＵ処理速度を高め、それ以外のソフトウェアについては節電などのためにＣＰＵ処理速度を落とすといった制御をユーザの意志に基づいて行えるようになり、消費電力を少なくする必要と快適な実行速度を求めるユーザの希望との間の調和を図ることが可能となる。
【００１６】
また、ユーザからのＣＰＵ処理速度の加速・減速指示を受けるためのユーザインタフェースとしては、加速を指示するためのキーまたはボタンと、減速を指示するためのキーまたはボタンの２つを用意することが好ましい。これにより、ユーザは、自動車のアクセルとブレーキと同じ使い方で容易にＣＰＵ処理速度の加速・減速を指示することが可能となる。
【００２０】
【発明の実施の形態】
以下、図面を参照してこの発明の実施形態を説明する。
図１には、この発明の一実施形態に係わるコンピュータシステム全体の構成が示されている。このコンピュータシステムはバッテリ駆動可能なノートブックタイプのパーソナルコンピュータであり、ここには、東芝、インテル、マイクロソフトの３社によって策定された電力管理のためのアーキテクチャであるＡＣＰＩ（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）が実装されている。ＡＣＰＩでは、マザーボード上の各種ハードウェア１１の電力管理は全てオペレーティングシステム（ＯＳ）１２によって直接管理および制御される。このような仕組みはＯＳＰＭ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ  Ｄｉｒｅｃｔｅｄ  Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ）と称されている。
【００２１】
オペレーティングシステム（ＯＳ）１２は、図示のように、カーネル１２１、デバイスドライバ１２２、ＡＣＰＩドライバ１２３、および電力管理システムソフトウェア１２４を備えている。デバイスドライバ１２２は電力管理のための標準インターフエースであり、各デバイス管理用のドライバ（クラスドライバ）、バス（ＰＣＩバス、ＵＳＢなど）を管理するためのドライバ（バスドライバ）、ＷＤＭ（Ｗｉｎｄｏｗｓ  Ｄｒｉｖｅｒ  Ｍｏｄｅｌ）に準拠したデバイス用のドライバなどを含む。ＡＣＰＩドライバ１２３は、ＡＣＰＩ対応ＢＩＯＳ１５、ＡＣＰＩテーブル１６、およびＡＣＰＩ用レジスタ１１２を用いて、ハードウェアのパワー制御を行う。ＡＣＰＩテーブル１６には、各ハードウェアの特性が記述される。実際のハードウェアのパワーマネージメントは、そのデバイスに対応するＡＣＰＩ用レジスタ１１２を用いて行われる。図１では、ＡＣＰＩ用レジスタ１１２は、ＣＰＵとして機能するマイクロプロセッサ１１１に対応するものである。
【００２２】
電力管理システムソフトウェア１２４はＯＳＰＭシステムコードから構成されており、電力管理のためのタスクを実行する。本実施形態では、ここに、新たに速度制御ＭＭＩ（ＭＭＩ：マンマシンインターフェース）１００が設けられている。この速度制御ＭＭＩ１００は、ユーザの意志を反映したＣＰＵ処理速度の制御を実現するために用いられる。すなわち、この速度制御ＭＭＩ１００は、ユーザからＣＰＵ処理速度の加速指示・減速指示を受けるためのインターフェースを提供し、このインターフェースを介してユーザからＣＰＵ処理速度の加速または減速が指示されたとき、電力管理用システム・ソフトウェア１２４、ＡＣＰＩドライバ１２３、ＡＣＰＩ用レジスタ１１２を用いてＣＰＵ処理速度を変更する。この変更結果は、速度管理データベース１２５にその時実行中のアプリケーションソフトウェア１３の名前と対応して記録される。以降、ソフトウェア速度管理データベース１２で管理される速度情報を基に、各ソフトウェア毎にＣＰＵ処理速度が決定される。
【００２３】
速度制御ＭＭＩ１００によって提供されるユーザインタフェースは、ホットキーまたは速度制御ウインドを用いて実現されている。
ホットキーによるユーザインタフェースを使用する場合には、コンピュータシステムで使用されるキーボード上の所定キーに加速指示を発行するための「アクセル」ホットキーと減速指示を発行するための「ブレーキ」ホットキーとが割り当てられる。すなわち、ユーザがパーソナルコンピュータを使用中にもっと処理速度を上げたいと思ったときは、「アクセル」ホットキーを押すことによって、自分の意志を伝える。また、ユーザがパーソナルコンピュータを使用中に処理速度をもっと落すことによってバッテリを長くもたせたいと思ったときは、「ブレーキ」ホットキーを押すことによって、自分の意志を伝える。
【００２４】
ここで、ホットキーとは、実行中のソフトウェア環境に影響を与えることなく、所定の機能を、ＳＭＩなどの割り込みによってＣＰＵに実行させるために用意された特定のキーをいう。本実施形態では、ＦｎキーとＦ９キーの同時操作（Ｆｎ＋Ｆ９）を「アクセル」ホットキーに、またＦｎキーとＦ８キーの同時操作（Ｆｎ＋Ｆ８）を「ブレーキ」に割当てている。このキー割当ては、「ブレーキ」キーが「アクセル」キーのすぐ左にあるようにするためである。このように自動車のアクセルペダル、ブレーキペダルと対応させることにより、ユーザが操作しやすくなる。ユーザの設定によって、ホットキーを押したことによる効果を画面上で確認できるようにすることも、その画面表示を省略することもできる。
【００２５】
ホットキーが押された後の動作は、以下説明する「アクセル」ボタン、「ブレーキ」ボタンの場合と同じである。
速度制御ウインドウを表示させ、その中のボタンを操作すると、上記のホットキーを押すのと同じ効果を得られる。図２に、その速度制御ウインドウの拡大図を示す。速度制御ウインドウは通常は他の常駐プログラムなどと同様にタスクバー上に表示される。この速度制御ウインドウを開くと、図２の画面が表示される。速度制御ウインドウ上には「アクセル」ボタンと「ブレーキ」ボタンが定義されており、「アクセル」ボタンをマウス操作によってクリックすることにより、ユーザは処理速度をもっと高速にしたいという希望を通知することができる。また、「ブレーキ」ボタンをクリックすることにより、ユーザは、処理速度を遅くしてもよいからバッテリでもっと長く使いたいという希望を通知することができる。
【００２６】
次に、速度管理データベース１２５の利用方法について説明する。
速度管理データベース１２５は、ユーザからの指定で変更された処理速度をその時実行中のアプリケーションとリンクづけるために用いられる。
【００２７】
すなわち、例えばアプリケーションＡを実行しているときにユーザがアクセル・キーを押したとする。これよって、変更された処理速度はアプリケーションＡの名前と一緒に速度管理データベース１２５に記録される。ユーザがそのアプリＡの実行を終えてアプリＢを使い始めたときは、ＣＰＵ処理速度は自動的に速度管理データベース１２５に以前に記録されたアプリＢ用の速度に切り替えられる。また、アプリＢが速度管理データベース１２５に登録されてない場合には、標準速度に切り替えられる。ユーザがアプリＡの処理を一時的に止めてアプリＢの処理に移った（マイクロソフト社のＷｉｎｄｏｗｓにおいては、フォーカスがアプリＡのウインドウからアプリＢのウインドウに移り、アプリＢがアクティブウインドウとなる）ときも同様である。あるいは、後述する理由から、登録されてない場合には、直前の処理速度を継承するするのがより望ましい場合もある。
【００２８】
パーソナルコンピュータのユーザは固定した一人であることが多いので、アプリＡに対するユーザの速度設定を記憶しておくことにより、たとえば翌日にユーザがアプリＡを再び実行したときに前日の速度設定が自動的に適用されるといった運用を行うことが可能となる。また、たとえば、テキスト・エディタを低速で使ったユーザは、翌日そのテキスト・エディタを使う場合も低速を選択することが多い。これを実現するために、前述の速度管理データベース１２が用いられ、実行するソフトウェアに対応した処理速度が選択される。
【００２９】
図４には、速度管理データベース１２の構造が示されている。
この速度管理データベース１２は、例えばＷｉｎｄｏｗｓのレジストリを用いて実現されている。レジストリは、ＯＳがデバイスドライバやアプリケーションプログラムに関する設定環境を集中管理するためのデータベースであり、ここに速度制御用の階層を追加することによって図３のようにアプリケーション（プロセス）名をキーとし、速度情報を値として保持する速度管理データベース１２が実現される。実用的には数段階の速度制御ができればよいので、速度情報の値は１バイトの整数値で十分である。また、より高度な速度制御を実現する場合には、図示のように、クロック速度、予測並列処理のオン／オフ、キャッシュサイズなどの情報の組み合わせを速度情報の値として利用することが望ましい。
【００３０】
次に、図５のフローチャートを参照して、図２の速度制御ウインドを介してユーザからの速度制御指示を受けた場合に実行される速度制御動作について説明する。
【００３１】
まず、ユーザが「アクセル」ボタンや「ブレーキ」ボタンを操作すると、そのイベントが図１の速度制御ＭＭＩ１００に通知される（ステップＳ１０１）。速度制御ＭＭＩ１００は、このイベントによってユーザの希望を知り、電力管理用システム・ソフトウェア１２４にＣＰＵ処理速度の変更を指示する（ステップＳ１０２）。
【００３２】
電力管理用システム・ソフトウェア１２４はそれが電力管理上許容範囲内にあれば、ＡＣＰＩドライバ１２３、ＡＣＰＩ用レジスタ１１２を用いてＣＰＵ処理速度を変更してそのように設定し、その結果を速度制御ＭＭＩ１００に知らせる（ステップＳ１０３，Ｓ１０４）。ＣＰＵ処理速度の制御は、ＣＰＵクロック速度を変化させたり、あるいは後述するＣＰＵの予測並列処理機能のイネーブル・ディスエーブルなどによって行われる。また、許容できないのであればその旨を電力管理用システム・ソフトウェア１２４が速度制御ＭＭＩ１００に知らせる。それに従って、速度制御ＭＭＩ１００は、変更されたＣＰＵ処理速度を実行中のソフトウェア名と対応づけて速度管理データベース１２５に記録する（ステップＳ１０５）。次いで、速度制御ＭＭＩ１００は、図２のウインドウ上の棒グラフ（矢印）を更新する（ステップＳ１０６，Ｓ１０７）。この棒グラフ（矢印）は、自動車のスピードメータに見立てたものであり、現在の処理速度の設定を示す。最高速度の場合は棒グラフが右端まで伸び、１００％の速度を示す。この表示は、「ブレーキ」ボタンを押すことにより１段階ずつ左に移動し、また、「アクセル」ボタンを押すことにより１段階ずつ右に移動する。
【００３３】
図２の棒グラフの更新は速度変更結果をユーザに提示するために行われるものであり、ホットキー操作によって図５の処理が起動された場合には棒グラフの更新処理は省略してもよい。
【００３４】
速度制御ウインドウの他の例を図３に示す。この例では、速度表示がより自動車のスピード・メータ直接連想させる表示になっている。また、図２と同じく速度を上げるボタンが、速度を下げるボタンの右側に設けられている。
【００３５】
速度制御ホットキーが押された場合の動作は、「アクセル」ボタン、「ブレーキ」ボタンが押された場合の動作と全く同じである。
以上のように、本実施形態の速度制御処理によれば、「アクセル」ボタン、「ブレーキ」ボタンなどによってユーザからＣＰＵ処理速度の加速または減速が指示されると、それに応じてＣＰＵ処理速度の変更が動的に行われる。さらに、この変更結果はその時実行中のアプリケーションプログラムなどのソフトウェア名と対応させて速度管理データベース１２５に記録される。このようにして、ユーザがＣＰＵ処理速度の加速または減速を指示する度に速度管理データベース１２５の速度管理情報が構築されていくので、その速度管理情報を用いることによりソフトウェア毎にそれを実行するときのＣＰＵ処理速度を動的に制御することが可能となる。
【００３６】
よって、ある特定の幾つかのソフトウェアを実行する場合にはＣＰＵ処理速度を高め、それ以外のソフトウェアについては節電などのためにＣＰＵ処理速度を落としたり、標準速度のまま使用するといった制御をユーザの意志に基づいて行えるようになり、消費電力を少なくする必要と快適な実行速度を求めるユーザの希望との間の調和を図ることが可能となる。
【００３７】
なお、例えばファイル操作用のプログラムのように小さなソフトウェアがアクティブになる度に、いちいち速度変更が生じるのは、後で説明するように速度変更のためのオーバーヘッドが大きいので、好ましくない。したがって、予め指定されているプログラム（プロセス）については速度変更の対象とせず、そのようなプロセスがアクティブウインドウとなっても処理速度を直前の状態のまま変更せずに維持するようにする事が望ましい。具体的には、レジストリの速度制御用の階層の下の階層などに、速度変更をしないプロセスを定義しておけばよい。
【００３８】
この場合、例えばアクティブウインドウの切り替えが行われる度に、図６の処理が実行されることになる。
すなわち、まず、アクティブウインドウとなったプロセスの速度情報がレジストリに存在するか否かが調べられる（ステップＳ２０１）。存在する場合には、その速度情報が読み出され、その速度情報で指定された速度に設定するように電力管理用システム・ソフトウェア１２４に指示される（ステップＳ２０２，Ｓ２０５）。
【００３９】
一方、アクティブウインドウとなったプロセスの速度情報がレジストリに存在しない場合には、レジストリに速度変更しないプロセスとして登録されているプロセスであるか否かが判断される（ステップＳ２０３）。速度変更しないプロセスとして指定されているものであれば、その時点で処理は終了する。速度変更しないプロセスとして指定されたものでない場合には、標準速度に設定するように電力管理用システム・ソフトウェア１２４に指示される（ステップＳ２０４，Ｓ２０５）。
【００４０】
次に、予測並列処理のオン／オフ制御について説明する。
図１のマイクロプロセサ１１１は、スーパスカラー方式のプロセッサであり、分岐予測機構を用いて予測並列処理を行うように構成されている。分岐予測機構を用いて予測並列処理を行うＣＰＵは、プログラムが条件分岐命令で分岐する場合としない場合の両方向で命令語を先取りして解読しておき、条件が確定した段階で一方を捨てるように構成されている。両方向での命令語の先取り、および解読を行うことにより処理速度の向上を図ることができるが、一方向のみの場合に比べ電力消費が増えることになる。予測が当たる場合と外れる場合の両方に対応した回路を動かし、その結果の一部が不要となるからである。このような予測並列処理を行わず、確定的に必要な仕事だけ行うようにすれば、処理速度の低下と引き換えに、その消費エネルギーを本質的に低減することが可能となる。予測並列処理のオン／オフ制御はこのために用いられる。
【００４１】
すなわち、ユーザからの減速指示に応じて分岐予測機構を構成するロジックに対する電源またはクロックの供給のオン／オフを切り替えることにより、分岐予測機構の動作／非動作を制御する。これにより、ある仕事を実行するのに必要な時間とエネルギーとの間の真のトレードオフを実現することができる。
【００４２】
以下、図１のマイクロプロセッサ１１１の構成を例にとって具体的な予測並列処理のオン／オフ制御を説明する。
マイクロプロセッサ１１１の標準処理回路１１３の中にはパイプラインを一つしかもたないが、予測並列処理回路１１４の中にはパイプラインを３列持ち、これと併せると４個までの命令を同時に発行できる。分岐予測ユニットはもちろん予測並列処理回路１１４に含まれる。キャッシュは、全体として８セットのセット・アソシアティブ・キャッシュになっているが、そのうち２セットが標準処理回路１１３に含まれ、残り６セットは予測並列処理回路１１４に含まれる。この例では、例えば、ユーザが減速ボタンを何度も押した場合など、省電力が要求される状況においては、予測並列処理回路１１４の動作がディスエーブルにされる。これは、分岐予測ユニットに対する電源電圧の供給とクロックの供給の両者または一方を止めることによって、あるいは予測並列処理回路１１４全体に対する電源電圧の供給とクロックの供給の両者を同時に止めることによって行われる。必要なことは、予測処理に基づく命令の先読み、解読のためにのみ使用されるロジックを動作停止させることである。電源とクロックの供給／遮断の制御は、ＡＣＰＩ用レジスタ１１２の値に基づいて制御回路１１５が行う。
【００４３】
電力管理用システム・ソフトウェア１２４が、予測並列処理回路のＯＮ／ＯＦＦを切替える必要があると判断すると、ＡＣＰＩ用レジスタ１１２の中にこのために新たに設けられたＣＰＵ構成変更レジスタ（図７）のビット０をオンにする。このビット０がオンになると、システム管理割込み要求信号ＳＭＩがマイクロプロセサ１１１へ送られる。ＣＰＵ構成変更レジスタのビット１は、予測並列処理回路１１４のＯＮ／ＯＦＦ要求を示すものであり、同じく電力管理用システム・ソフトウェア１２４がセットする。このビットは、後で述べるようにＣＰＵのマイクロプログラムによって読取られる。
【００４４】
ＳＭＩの割込みが受付けられると、図８のフローチャートに示す手順が実行される。
すなわち、ＣＰＵ内の状態がハードウェアで整理され記憶された後、割込み処理のマイクロプログラムが実行され、そこで、割込みの原因が判別される（ステップＳ３０１，Ｓ３０２）。上記構成変更レジスタによる割込みである場合は、シャッシュ・フラッシュを行い、キャッシュ再構成の準備をする（ステップＳ３０３）。そしてＡＣＰＩ用レジスタ１１２中のＣＰＵ構成変更レジスタのビット１の状態を読取り、マイクロプロセサ１１１内の制御回路１１５にセットする（ステップＳ３０４）。その後で、マイクロプロセサ１１１は、自分自身のクロックを止める（ステップＳ３０５）。これは、従来の電力管理のためのクロック停止と同じようにして実現される。その場合にタイマだけは動作するのと同様に、図１の制御回路１１５も動作を続ける。制御回路１１５は、上記のようにしてセットされたＣＰＵ構成制御レジスタのビット１の値に基づき、自身の順序回路の制御の下に、まず予測並列処理回路１１４に対するクロック供給を許可または禁止するための設定を行い、次に予測並列処理回路１１４へリセット信号を送り、予測並列処理回路１１４へ供給する電源をＯＮまたはＯＦＦにする（ステップＳ３０６，Ｓ３０７，Ｓ３０８）。
【００４５】
そして、十分時間をとってから制御回路１１５は、リセット信号をＯＦＦにする。これにより、マイクロプロセッサ１１１が再始動する。この際、制御回路１１は、マイクロプログラムの制御回路へ制御信号を送って、ブート・スタートではなく、ＣＰＵ構成変更割込みのマイクロプログラムを再開させる。これは、従来のリジューム・リセットと同じ動作である。
【００４６】
このようにして、予測並列処理回路１１４のＯＮ／ＯＦＦの切替えが行われる。
また、このような予測並列処理回路１１４のＯＮ／ＯＦＦによる２段階の速度制御を、前述したクロック速度制御などの他の要素と組み合わせて使用することにより、多段階の速度制御を実現できる。
【００４７】
【発明の効果】
以上説明したように、この発明によれば、ユーザは作業中に加速・減速キーまたは加速・減速ボタンを操作することによって現在のＣＰＵ処理速度を動的に変更することが可能となり、作業内容などに応じてＣＰＵ処理速度を自由に変更することが可能となる。特に、ＣＰＵ処理速度の変更結果を実行中のソフトウェアと対応づけて記録することにより、ソフトウェア毎にＣＰＵ処理速度を設定・変更することが可能となる。よって、ある特定の幾つかのソフトウェアを実行する場合にはＣＰＵ処理速度を高め、それ以外のソフトウェアについては節電などのためにＣＰＵ処理速度を落とすといった制御をユーザの意志に基づいて行えるようになり、消費電力を少なくする必要と快適な実行速度を求めるユーザの希望との間の調和を図ることが可能となる。
【００４８】
さらに、予測並列処理機能を有するＣＰＵを使用する場合には、その分岐先の予測および処理にのみ使用されるロジックに対する電源供給またはクロック供給のオン／オフをユーザからの処理速度変更要求に応じて切り替えることにより、同一の仕事を完了するために必要な消費エネルギーを可変設定できるようになり、ある仕事を実行するのに必要な時間とエネルギーとの間の真のトレードオフを実現することが可能となる。
【図面の簡単な説明】
【図１】この発明の一実施形態に係るコンピュータシステム全体の構成を示すブロック図。
【図２】同実施形態のコンピュータシステムに適用される速度制御ウインドウの一例を示す図。
【図３】同実施形態のコンピュータシステムに適用される速度制御ウインドウの他の例を示す図。
【図４】同実施形態のコンピュータシステムで使用される速度管理データベースの構造を示す図。
【図５】同実施形態のコンピュータシステムにおけるＣＰＵ処理速度の加速・減速処理手順を示すフローチャート。
【図６】同実施形態のコンピュータシステムにおいてアクティブプロセスの切り替わりに連動して実行されるＣＰＵ処理速度の変更処理手順を示すフローチャート。
【図７】同実施形態のコンピュータシステムで使用されるＣＰＵ構成変更レジスタの構成を示す図。
【図８】同実施形態のコンピュータシステムで使用されるＣＰＵの予測並列処理機能のイネーブル・ディスエーブル切り替え処理の手順を示すフローチャート。
【符号の説明】
１１…ハードウェア
１２…オペレーティングシステム
１３…アプリケーションソフトウェア
１００…速度制御ＭＭＩ
１１１…マイクロプロセッサ
１１２…ＡＣＰＩ用レジスタ
１１３…標準処理回路
１１４…予測並列処理回路
１１５…制御回路
１２３…ＡＣＰＩドライバ
１２４…電力管理システムソフトウェア
１２５…速度管理データベース
【図１】
0003961619.tif 000002
【図２】
0003961619.tif 000003
【図３】
0003961619.tif 000004
【図４】
0003961619.tif 000005
【図５】
0003961619.tif 000006
【図６】
0003961619.tif 000007
【図７】
0003961619.tif 000008
【図８】
0003961619.tif 000009