(57)【特許請求の範囲】
【請求項１】
ＣＰＵと、
前記ＣＰＵの処理速度を制御するＣＰＵ速度制御手段と、
オペレーティングシステムのブートストラップシーケンス処理を含むコンピュータシステムの起動処理の期間中は、ユーザによって指定されるＣＰＵ性能に関係なく、前記ＣＰＵ速度制御手段を用いて前記ＣＰＵをその最高性能で動作させ、前記オペレーティングシステムのブートストラップシーケンス処理の終了が検出されたとき、前記ＣＰＵ速度制御手段を用いて前記ＣＰＵの性能を、前記ＣＰＵの最高性能から最低性能までの複数レベルの性能の内でユーザによって指定されたＣＰＵ性能に合わせるシステム制御手段とを具備し、
前記システム制御手段は、前記オペレーティングシステムのブートストラップシーケンス処理によってロードされた所定のデバイスドライバが特定のハードウェアをアクセスしたときに、前記オペレーティングシステムのブートストラップシーケンス処理が終了したと判断することを特徴とするコンピュータシステム。
【請求項２】
ＣＰＵと、
前記ＣＰＵの処理速度を制御するＣＰＵ速度制御手段と、
オペレーティングシステムのブートストラップシーケンス処理を含むコンピュータシステムの起動処理の期間中は、ユーザによって指定されるＣＰＵ性能に関係なく、前記ＣＰＵ速度制御手段を用いて前記ＣＰＵをその最高性能で動作させ、前記オペレーティングシステムのブートストラップシーケンス処理の終了が検出されたとき、前記ＣＰＵ速度制御手段を用いて前記ＣＰＵの性能を、前記ＣＰＵの最高性能から最低性能までの複数レベルの性能の内でユーザによって指定されたＣＰＵ性能に合わせるシステム制御手段とを具備し、
前記システム制御手段は、前記コンピュータシステムの起動処理が開始されてから所定時間経過したときに、前記オペレーティングシステムのブートストラップシーケンス処理が終了したと判断することを特徴とするコンピュータシステム。
【請求項３】
ＣＰＵと、
前記ＣＰＵの処理速度を制御するＣＰＵ速度制御手段と、
オペレーティングシステムのブートストラップシーケンス処理を含むコンピュータシステムの起動処理の期間中は、ユーザによって指定されるＣＰＵ性能に関係なく、前記ＣＰＵ速度制御手段を用いて前記ＣＰＵをその最高性能で動作させ、前記オペレーティングシステムのブートストラップシーケンス処理の終了が検出されたとき、前記ＣＰＵ速度制御手段を用いて前記ＣＰＵの性能を、前記ＣＰＵの最高性能から最低性能までの複数レベルの性能の内でユーザによって指定されたＣＰＵ性能に合わせるシステム制御手段とを具備し、
前記システム制御手段は、ユーザからの所定の入力イベントを受けたときに、前記オペレーティングシステムのブートストラップシーケンス処理が終了したと判断することを特徴とするコンピュータシステム。
【請求項４】
ＣＰＵと、
前記ＣＰＵの処理速度を制御するＣＰＵ速度制御手段と、
コンピュータシステムの起動処理の開始から、オペレーティングシステムのブートストラップシーケンス処理によってロードされる所定のデバイスドライバが特定のハードウェアをアクセスするまでを、前記コンピュータシステムの起動処理の期間と判断し、前記コンピュータシステムの起動処理の期間中は、前記ＣＰＵ速度制御手段を用いて前記ＣＰＵをその最高性能で動作させるシステム制御手段とを具備することを特徴とするコンピュータシステム。
【請求項５】
ＣＰＵと、
前記ＣＰＵの処理速度を制御するＣＰＵ速度制御手段と、
コンピュータシステムの起動処理の開始から、ユーザからの所定の入力イベントを受けるまでを、前記コンピュータシステムの起動処理の期間と判断し、前記コンピュータシステムの起動処理の期間中は、前記ＣＰＵ速度制御手段を用いて前記ＣＰＵをその最高性能で動作させるシステム制御手段とを具備することを特徴とするコンピュータシステム。
【請求項６】
ＣＰＵと、前記ＣＰＵの処理速度を制御するＣＰＵ速度制御手段とを含み、ＣＰＵ性能を切り替えることが可能なコンピュータシステムであって、
前記コンピュータシステムの起動処理の期間中は前記ＣＰＵがその最高性能で動作するように、前記コンピュータシステムの起動時に、前記ＣＰＵ速度制御手段を用いて前記ＣＰＵの性能を最高性能に設定するシステム制御手段と、
前記ＣＰＵの温度上昇またはＡＣアダプタ電源の取り外しを要因とする警告イベントの発生に応答して、前記ＣＰＵ速度制御手段を用いて前記ＣＰＵの性能を強制的に低下させるＣＰＵ性能低下手段と、
前記コンピュータシステムの起動処理期間中に発生した前記警告イベントによって、前記コンピュータシステムの起動処理が終了する前にＣＰＵ性能が低下された場合には、以降、ＣＰＵ性能を上昇させるためのＣＰＵ性能切り替え処理の実行を禁止する禁止手段とを具備することを特徴とするコンピュータシステム。
【請求項７】
前記禁止手段は、起動中のオペレーティングシステムが、ＣＰＵ性能が起動時のＣＰＵ性能よりも上回る性能に動作中に切り替わることに対応できないものである場合には、以降、ＣＰＵ性能を上昇させるためのＣＰＵ性能切り替え処理の実行を禁止することを特徴とする請求項６記載のコンピュータシステム。
【請求項８】
前記警告イベントが前記コンピュータシステムの起動処理期間中に発生した場合には、前記警告イベントの発生要因が前記ＣＰＵの温度上昇およびＡＣアダプタ電源の取り外しのどちらであるかを判別する手段と、
前記警告イベントの発生要因がＡＣアダプタ電源の取り外しであった場合には、前記コンピュータシステムの起動処理が終了するまでは前記ＣＰＵ性能を最高性能に維持できるように、前記ＣＰＵ性能低下手段によるＣＰＵ性能低下処理の実行を禁止する手段とをさらに具備することを特徴とする請求項６記載のコンピュータシステム。
【請求項９】
ＣＰＵと、前記ＣＰＵの処理速度を制御するＣＰＵ速度制御手段とを含み、ＣＰＵ性能を切り替えることが可能なコンピュータシステムに適用されるＣＰＵ性能制御方法であって、
前記コンピュータシステムの起動処理の期間中は前記ＣＰＵがその最高性能で動作するように、前記コンピュータシステムの起動時に、前記ＣＰＵの性能を最高性能に設定し、
前記ＣＰＵの温度上昇またはＡＣアダプタ電源の取り外しを要因とする警告イベントが発生した場合には、前記ＣＰＵの性能を強制的に低下させ、
前記コンピュータシステムの起動処理期間中に発生した前記警告イベントによって、前記コンピュータシステムの起動処理が終了する前にＣＰＵ性能が低下された場合には、以降、ＣＰＵ性能を上昇させるためのＣＰＵ性能切り替え処理の実行を禁止することを特徴とするＣＰＵ性能制御方法。
【請求項１０】
起動中のオペレーティングシステムが、ＣＰＵ性能が起動時のＣＰＵ性能よりも上回る性能に動作中に切り替わることに対応できないものである場合には、以降、ＣＰＵ性能を上昇させるためのＣＰＵ性能切り替え処理の実行を禁止することを特徴とする請求項９記載のＣＰＵ性能制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はバッテリ駆動可能なパーソナルコンピュータなどのコンピュータシステムに関し、特にＣＰＵ性能を切り替えることがコンピュータシステムおよびそのコンピュータシステムにおけるＣＰＵ性能制御方法に関する。
【０００２】
【従来の技術】
近年、携行が容易でバッテリにより動作可能なラップトップタイプまたはノートブックタイプのパーソナルコンピュータ（ＰＣ）が種々開発されている。この種のＰＣに於いては、ＣＰＵの高性能化が進められており、これによってユーザは快適な使用環境を容易に手にすることが可能になってきている。
【０００３】
ところが、ＣＰＵの高性能化に伴い、ＣＰＵの消費電力も大きくなり、これによりＰＣ全体の電力消費量の増大およびバッテリ動作時間の低下などの問題が生じている。
【０００４】
そこで、最近では、ＣＰＵ処理速度を制御することによってＣＰＵ性能を必要に応じて切り替える技術が開発されている。ＣＰＵ性能は、例えば所定の周期でＣＰＵを間欠動作させたり、あるいはそのＣＰＵの動作周波数や電圧を切り替えることなどによって、最高性能レベルから最低性能レベルまでの複数のレベルの内の１つに設定することができる。どのレベルの性能を使用するかは、ユーザの指定またはその他予め定義されている要因によって決定される。
【０００５】
通常は、ユーザがＢＩＯＳセットアップや専用の省電力ユーティリティを用いてＣＰＵ性能を指定するのが一般的である。指定されたＣＰＵ性能のレベルはシステム設定情報としてシステム内に保存されるので、一旦ＣＰＵ性能のレベルが指定された後は、ＣＰＵは常にその指定されたＣＰＵ性能で動作する。
【０００６】
【発明が解決しようとする課題】
しかし、例えばユーザがバッテリ動作時間の延長等の目的で、最高ではないＣＰＵ性能を指定して作業している状態でシステムをシャットダウン／スタンバイした場合には、次のシステム起動処理の時点からＣＰＵはその指定された低性能のレベルで動作してしまう。これは、電源を投入してからオペレーティングシステムのブートストラップシーケンスが終了するまでに要する処理時間を無用に長引かせる大きな要因となる。システム起動処理のみならず、シャットダウン／スタンバイ処理についても同様にして多くの時間が必要とされる。
【０００７】
また、システム起動処理中にＣＰＵが低性能で動作した後に、ユーザの指定またはその他予め定義されている要因によってＣＰＵ性能が最高性能に切り替えられた場合には、オペレーティングシステムやドライバによってはその正常動作が保証できなくなる危険がある。これは、オペレーティングシステムやドライバの多くは、デバイスの応答待ちなどに必要な絶対時間をソフトウェアループカウンタを使用してソフトウェア的に得ているからである。
【０００８】
すなわち、オペレーティングシステムやドライバは、ある特定の命令をＮ回繰り返し実行するのに要する時間をシステム起動処理時に算出および登録し、実際にデバイスをアクセスする場合には、その登録情報を用いて、デバイスの応答待ち時間に必要な命令の繰り返し実回数を決定する。したがって、もしＣＰＵ性能がシステム起動処理時の例えば２倍に高速化されてしまうと、ある特定の命令を同じ回数だけ繰り返し実行した場合であっても、実際の待ち時間は期待値の半分になってしまう。デバイスを正常動作させるためには、少なくとも、そのデバイスによって規定された待ち時間以上の待ち時間を保証する必要がある。よって、最高でないＣＰＵ性能によってシステム起動処理が実行されてしまった場合には、もし後にＣＰＵ性能がユーザの指定や他の予め決められた要因によって上昇されると、デバイス動作に支障を来たし、場合によっては命令やデータを正しく読み込むことが出来ないなどの重大なエラーが発生する。
【０００９】
本発明は上述の事情に鑑みてなされたものであり、ＣＰＵ性能の切り替えが可能なシステムの動作の信頼性の向上およびシステム起動処理の高速化を図ることが可能なコンピュータシステムおよびそのＣＰＵ性能制御方法を提供することを目的とする。
【００１０】
【課題を解決するための手段】
上述の課題を解決するため、本発明は、ＣＰＵと、前記ＣＰＵの処理速度を制御するＣＰＵ速度制御手段と、オペレーティングシステムのブートストラップシーケンス処理を含むコンピュータシステムの起動処理の期間中は、ユーザによって指定されるＣＰＵ性能に関係なく、前記ＣＰＵ速度制御手段を用いて前記ＣＰＵをその最高性能で動作させ、前記オペレーティングシステムのブートストラップシーケンス処理の終了が検出されたとき、前記ＣＰＵ速度制御手段を用いて前記ＣＰＵの性能を、前記ＣＰＵの最高性能から最低性能までの複数レベルの性能の内でユーザによって指定されたＣＰＵ性能に合わせるシステム制御手段とを具備することを特徴とする。
【００１１】
このコンピュータシステムにおいては、ハードウェアチェックのためのいわゆるＰＯＳＴ処理やオペレーティングシステムのブートストラップシーケンスといったコンピュータシステムの起動処理の期間中は、ＣＰＵを最高性能で動作させているので、たとえコンピュータシステムの起動処理後にユーザの指定またはその他予め定義されている要因によってＣＰＵ性能が切り替えられても、それによって、ＣＰＵ性能がシステム起動期間中よりも低下されることはあっても、上昇されることはない。このため、前述したようなソフトウェアループカウンタがオペレーティングシステムやドライバによって使用された場合でも、デバイスによって規定された待ち時間以上の待ち時間を常に得ることが可能となる。デバイスは、そのデバイスが要する待ち時間以上の待ち時間が保証されさえすれば、正常に動作する。よって、システムの動作の信頼性の向上およびシステム起動処理の高速化を図ることが可能となる。
【００１２】
また、コンピュータシステムの起動処理が終了したことが検出された時点で、ＣＰＵの性能をユーザによって指定されたＣＰＵ性能に合わせることにより、コンピュータシステムの低消費電力化も実現できる。
【００１３】
また、コンピュータシステムの起動処理が終了したか否かの検出方法としては、予めブートストラップシーケンスの最後の方にロードされることが経験的に判明している特定のプログラムなどがオペレーティングシステムのブートストラップシーケンス処理によってロードされるまでをコンピュータシステムの起動処理の期間として判断することや、ループカウンタを使用することが判明しているドライバなどが特定のハードウェアをアクセスするまでを、コンピュータシステムの起動処理の期間として判断すること、などによって実現することが好ましい。
【００１４】
また、コンピュータシステムの起動処理期間中にＣＰＵの温度上昇やＡＣアダプタ電源の取り外しなどに起因する警告イベントの発生によって、ＣＰＵ性能を最高性能に維持することができなかった場合には、動作するオペレーティングシステムの種類によっては、以降のＣＰＵ性能を上昇させるためのＣＰＵ性能切り替え処理の実行については禁止することが好ましい。これにより、システム動作の信頼性を維持することができる。また、コンピュータシステムの起動処理期間中においては、緊急性が必要とされるＣＰＵ温度の上昇についてのみ警告イベントとして扱い、警告イベントの発生要因がＡＣアダプタ電源の取り外しであった場合には、コンピュータシステムの起動処理が終了するまではＣＰＵ性能を最高性能に維持できるように、ＣＰＵ性能低下手段によるＣＰＵ性能低下処理の実行を禁止することが好ましい。
【００１５】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
【００１６】
図１には、本発明の一実施例に係わるコンピュータシステムの構成が示されている。このコンピュータシステムはバッテリ駆動可能なノートブックタイプのパーソナルコンピュータ（ＰＣ）であり、ＡＣアダプタ１８１を介して外部電源が供給されている場合にはその外部電源によって動作すると共に、バッテリ１８２の充電が行われる。一方、モバイル環境で使用される場合など、ＰＣ本体にＡＣアダプタ１８１が接続されてない状態においては、ＰＣはバッテリ１８２からの電源によって動作する。
【００１７】
このＰＣ本体には、図示のように、プロセッサバス１、ＰＣＩバス２、ＩＳＡバス３、ＣＰＵ１１、ホスト−ＰＣＩブリッジ１２、主メモリ１３、表示コントローラ１４、ＰＣＩ−ＩＳＡブリッジ１５、Ｉ／Ｏコントローラ１６、ＢＩＯＳ−ＲＯＭ１７、電源コントローラ１８、キーボードコントローラ（ＫＢＣ）１９、ＣＭＯＳメモリ２０などが設けられている。
【００１８】
ＣＰＵ１１はＰＣ１１全体の動作を制御するためのものであり、ＢＩＯＳ−ＲＯＭ１７のシステムＢＩＯＳ、主メモリ１３にロードされるオペレーティングシステム及び他のプログラムを実行する。本実施形態のシステムにおいては、ＣＰＵ１１の性能（処理速度）を多段階（複数レベル）で制御することができる。ＣＰＵ性能の制御には、後述する“ＣＰＵスロットリング機能”または“ガイザビル（ＧＥＹＳＥＶＩＬＬＥ）機能”が使用される。使用するＣＰＵ性能のレベルはユーザ指定または予め定義された他の要因によって決定されるが、本実施形態のシステムにおいては、システム起動処理期間中は、ユーザ指定または予め定義された他の要因によって決定されたレベルには関係なく、ＣＰＵ１１を最高性能で動作させるというシステム性能制御が行われる。このシステム性能制御の具体的な方法は、以降の説明で明らかにする。
【００１９】
また、図１のＣＰＵ１１は、次のようなシステム管理機能を備えている。
すなわち、ＣＰＵ１１は、アプリケーションプログラムやＯＳなどのプログラムを実行するためのリアルモード、プロテクトモード、仮想８６モードの他、システム管理モード（ＳＭＭ；Ｓｙｓｔｅｍ  Ｍａｎａｇｅｍｅｎｔ  ｍｏｄｅ）と称されるシステム管理プログラムを実行するための動作モードを有している。
【００２０】
リアルモードは、最大で１Ｍバイトのメモリ空間をアクセスできるモードであり、セグメントレジスタで表されるベースアドレスからのオフセット値で物理アドレスが決定される。プロテクトモードは１タスク当たり最大６Ｔバイトのメモリ空間をアクセスできるモードであり、ディスクプリタテーブルと称されるアドレスマッピングテーブルを用いてリニアアドレスが決定される。このリニアアドレスレスは、ページングによって最終的に物理アドレスに変換される。仮想８６モードは、リアルモードで動作するように構成されたプログラムをプロテクトモードで動作させるためのモードであり、リアルモードのプログラムはプロテクトモードにおける１つのタスクとして扱われる。
【００２１】
システム管理モード（ＳＭＭ）は疑似リアルモードであり、このモードでは、ディスクプリタテーブルは参照されず、ページングも実行されない。システム管理割込み（ＳＭＩ；Ｓystem   Ｍanagement Ｉnterrupt）がＣＰＵ１１に発行された時、ＣＰＵ１１の動作モードは、リアルモード、プロテクトモード、または仮想８６モードから、ＳＭＭにスイッチされる。ＳＭＭでは、システム管理プログラムが実行される。
【００２２】
ＳＭＩはマスク不能割込みＮＭＩの一種であるが、通常のＮＭＩやマスク可能割込みＩＮＴＲよりも優先度の高い、最優先度の割り込みである。このＳＭＩを発行することによって、システム管理プログラムとして用意された種々のＳＭＩサービスルーチンを、実行中のアプリケーションプログラムやＯＳ環境に依存せずに起動することができる。
【００２３】
ホスト−ＰＣＩブリッジ１２は、ＣＰＵバス１ＰＣＩバス２を双方向で接続するブリッジ装置であり、ここには主メモリ１３をアクセス制御するためのメモリコントロール機能も内蔵されている。
【００２４】
主メモリ１３は、オペレーティングシステム、処理対象のアプリケーションプログラム／ユーティリティ、およびアプリケーションプログラム／ユーティレティによって作成されたユーザデータ等を格納する。ＣＰＵ１１がＳＭＭに移行する時には、ＣＰＵステータス、つまりＳＭＩが発生された時のＣＰＵ１１のレジスタ等が、主メモリ１３の所定のアドレス空間にマッピングされたＳＭＲＡＭにスタック形式でセーブされる。このＳＭＲＡＭには、ＢＩＯＳ−ＲＯＭ１７のシステム管理プログラムを呼び出すための命令が格納されている。この命令は、ＣＰＵ１１がＳＭＭに入った時に最初に実行される命令であり、この命令実行によってシステム管理プログラムに制御が移る。
【００２５】
表示コントローラ１４は、画像メモリ（ＶＲＡＭ）１４１に描画された表示データを本ＰＣ本体に設けられたＬＣＤ１４２および外部ＣＲＴ１４３の一方、あるいは双方に表示する。この表示コントローラ１４はＰＣＩバス２のバスマスタとして動作するすることができる。
【００２６】
ＰＣＩ−ＩＳＡブリッジ１５は、ＰＣＩバス２とＩＳＡバス３とをつなぐブリッジであり、ＰＣＩバス２のバスマスタとして動作することができる。このＰＣＩ−ＩＳＡブリッジ１５には、ＳＭＩ発生回路１５１、ＣＰＵ速度制御回路１５２などが設けられている。
【００２７】
ＳＭＩ発生回路１５１はＣＰＵ１１にＳＭＩ信号を発生する。ＳＭＩ信号の発生要因には、ソフトウェアＳＭＩ、Ｉ／ＯトラップＳＭＩ、特定のハードウェアイベントによるＳＭＩなどがある。ソフトウェアＳＭＩは、ソフトウェアによってアクセス可能なレジスタやダウンカウンタなどを利用して発生される。つまり、ソフトウェアがＳＭＩ発生回路１５１内のレジスタにデータを書き込むと、ＳＭＩ信号が発生される。また、ＳＭＩ信号発生までの時間に相当する値をＳＭＩ発生回路１５１内のダウンカウンタにセットすると、タイムアウト時にＳＭＩ信号が発生される。Ｉ／ＯトラップＳＭＩは、予め決められたＩ／Ｏアドレスを用いてＩＮまたはＯＵＴ命令をソフトウェアが実行することによって引き起こされるＳＭＩである。Ｉ／ＯトラップＳＭＩを引き起こしたい監視対象のＩ／Ｏアドレス値をＳＭＩ発生回路１５１に設定しておくことにより、そのＩ／Ｏアドレスへのアクセスが発生したときにＩ／ＯトラップＳＭＩを発生することができる。特定のハードウェアイベントによるＳＭＩは、ＣＰＵ温度やＡＣアダプタ１８１の抜き挿しなどのシステム管理に必要なイベントが発生したときにハードウェアによって発生される。
【００２８】
ＣＰＵ速度制御回路１５２はＣＰＵ１１の処理速度を制御するためのものであり、前述の“ＣＰＵスロットリング機能”を用いてＣＰＵ性能を切り替えるためのスロットリング制御部と、前述の“ガイザビル（ＧＥＹＳＥＶＩＬＬＥ）機能”を用いてＣＰＵ性能を切り替えるための周波数／電圧制御部を有している。
【００２９】
１）“ＣＰＵスロットリング機能”
ここで、“ＣＰＵスロットリング機能”とは、ＣＰＵ１１を一定間隔で動作／停止させるという間欠動作を行うことによって、平均的なＣＰＵ処理速度を切り替える機能であり、インターバルストップクロック機能あるいは間欠動作機能と称されることもある。“ＣＰＵスロットリング機能”がＤｉｓａｂｌｅになっている状態、つまりＣＰＵ１１が常に動作している状態がＣＰＵ１１の最高性能に相当し、“ＣＰＵスロットリング”が任意％（動作状態に対する停止状態の割合）でＥｎａｂｌｅされている状態が最高性能ではない状態に相当する。動作状態に対する停止状態の割合を変化させることにより、ＣＰＵ性能を多段階で制御することができる。ＣＰＵ１１の動作停止状態としては、ストップグラントステート（Ｓｔｏｐ  Ｇｒａｎｔ  Ｓｔａｔｅ）を利用することが好ましい。ストップグラントステートはＩＮＴＥＬ社製ＣＰＵの４８６ＳＬやＰｅｎｔｉｕｍ等によってサポートされているクロックステートである。
【００３０】
２）“ガイザビル（ＧＥＹＳＥＶＩＬＬＥ）機能”
“ガイザビル（ＧＥＹＳＥＶＩＬＬＥ）機能”とは、ＩＮＴＥＬ社製ＣＰＵのＭｏｂｉｌｅＰｅｎｔｉｕｍ３が持つ機能であり、ＣＰＵの動作周波数と電圧をダイナミックに切り替える機能を言う。そのＣＰＵがサポートする高位の動作周波数・電圧になっている状態がＣＰＵの最高性能に相当し、低位の動作周波数・電圧になっている状態が最高性能ではない状態に相当する。
【００３１】
１）、２）のどちらの機能を使用する場合にも、ＣＰＵ速度制御回路１５２内のレジスタに必要なデータを書き込むことにより、ＣＰＵ性能を切り替えることができる。
【００３２】
また、ＰＣＩ−ＩＳＡブリッジ１５は、温度センサ２１およびそのドライブ回路２２を用いてＣＰＵ温度を監視する機能、および電源コントローラ１８を通じてＡＣアダプタの抜き差しを監視する機能を有している。ＣＰＵ温度が予め決められた一定温度以上に達した場合またはＡＣアダプタが抜かれてＡＣアダプタ電源がオフされた場合には、ＰＣＩ−ＩＳＡブリッジ１５は、システム動作の安全性に影響を与える警告イベントが発生したことを、ＳＭＩによってシステムに通知する。この場合、システムＢＩＯＳやオペレーティングシステム等の制御により、ＣＰＵ性能を低下させる処理が行われる。また、ＣＰＵ温度が安全温度にまで低下した場合や、ＡＣアダプタが接続された場合には、ＰＣＩ−ＩＳＡブリッジ１５は、ＣＰＵ性能アップイベントが発生したことをＳＭＩによって通知する。この場合、システムＢＩＯＳやオペレーティングシステム等の制御により、ＣＰＵ性能を上昇させる処理が行われる。
【００３３】
Ｉ／Ｏコントローラ１６は、ＨＤＤ１６１などのＩＤＥデバイスを制御するためのバスマスタＩＤＥコントローラを内蔵している。バスマスタＩＤＥコントローラは、ＨＤＤ１６１と主メモリ１３との間のデータ転送のためにバスマスタとして動作することができる。また、Ｉ／Ｏコントローラ１６は、ＤＶＤドライブやＣＤ−ＲＯＭドライブを制御することもできる。
【００３４】
ＢＩＯＳ−ＲＯＭ１７は、システムＢＩＯＳ（Ｂasic  Ｉ／Ｏ  Ｓystem ）を記憶するためのものであり、プログラムの書き替えが可能なようにフラッシュメモリによって構成されている。システムＢＩＯＳは、リアルモードで動作するように構成されている。このシステムＢＩＯＳには、システムのパワーオン時や再起動時に実行されるＰＯＳＴ（ＰｏｗｅｒＯＮ  Ｓｅｌｆ  Ｔｅｓｔ）ルーチンと、各種Ｉ／Ｏデバイスを制御するためのデバイスドライバと、システム環境を設定するためのＢＩＯＳセットアップルーチンと、各種ＳＭＩ処理を実行するためのシステム管理プログラム（ランタイム）が含まれている。ＰＯＳＴルーチンには、通常のハードウェアチェックおよび初期化のためのルーチンに加え、ＣＰＵ速度制御回路１５２を用いてＣＰＵ性能を最高性能に設定する機能が含まれている。ＢＩＯＳセットアップルーチンは、ＣＰＵ性能の設定を初めとする各種設定項目を含むセットアップ画面をユーザに呈示することにより、システムをユーザによって指定された環境に設定する。ＣＰＵ性能の指定は、ＢＩＯＳセットアップルーチンの他、オペレーティングシステムの実行環境下で動作する省電力ユーティリティーや、ユーザからの所定のキー入力操作（ホットキー）によって行うこともできる。
【００３５】
電源コントローラ１８は、本ＰＣのパワーオン／オフを制御するためのものであり、電源スイッチ１８３のオン／オフ、バッテリ１８２の残存容量、ＡＣアダプタ１８１の抜き差し、ディスプレイパネル開閉検出スイッチのオン／オフなどの状態監視機能を有している。キーボードコントローラ（ＫＢＣ）１９は、キーボードおよびマウスの制御を行う。ＣＭＯＳメモリ２０は各種システム設定情報を保持するためのメモリであり、独自の電池によってバックアップされている。ユーザ指定のＣＰＵ性能情報はＣＭＯＳメモリ２０に保存される。
【００３６】
（システム制御方法の原理）
次に、図２を参照して、本実施形態で用いられるシステム制御方法の原理について説明する。
システム起動処理は、図示のように、システムＢＩＯＳのＰＯＳＴ処理と、それに後続して実行されるＯＳブート処理からなる。システム起動のためのイベント（パワーオン、リセット、再起動時など）が発生すると、最初にＰＯＳＴ処理が実行される。このＰＯＳＴ処理においては、ハードウェアチェック及び初期化処理が行われるが、この段階で、ＣＰＵ速度制御回路１５２を制御することにより、ＣＰＵ性能が最高性能（フルパワー）に設定される。そして、システムＢＩＯＳがＨＤＤ１６１のＭＢＲ上のＩＰＬを実行し、このＩＰＬがＯＳのブートローダを起動することによって、ＯＳブート処理（ＯＳブートストラップシーケンス）が開始される。ＯＳブート処理では、カーネル部のロード、カーネルに組み込むことが必要な各種ドライバ／ユーティリティのロードなどが予め決められた順序で順次実行される。通常は、デバイスの動作を直接制御するドライバ類からロードが開始され、デバイス動作には直接関係しないようなものほどＯＳブート処理の最後の方にロードされる。デバイスを直接操作するＯＳ／ドライバについては、そのロード時に、前述のソフトウェアループカウンタの設定のための処理が行われる。ＣＰＵ１１は、ＯＳブート処理が終了するまでは、最高のＣＰＵ性能で動作する。ＯＳブート処理が終了すると、システムＢＩＯＳの制御の下、ＣＰＵ性能をＣＭＯＳメモリ２０に記録されているユーザ指定のＣＰＵ性能に戻す処理が行われ、ＣＰＵ１１はユーザ指定の性能で動作する。
【００３７】
このように、本実施形態では、ユーザからの指定やその他予め決められた要因に関わらず、ＯＳがブートし終わる迄は最高のＣＰＵ性能で動作させるようにしており、これによりその後ＣＰＵ性能の切り替えが発生しても、それによって、ＣＰＵ性能がＯＳブート処理期間中よりも上昇されることはない。このため、前述したようなソフトウェアループカウンタがＯＳやドライバによって使用された場合でも、デバイスによって規定された待ち時間以上の待ち時間を常に得ることが可能となる。デバイスは、そのデバイスが要する待ち時間以上の待ち時間が保証されさえすれば、正常に動作する。よって、システムの動作の信頼性の向上およびシステム起動処理の高速化を図ることが可能となる。
【００３８】
また、ＯＳブート処理中に熱上昇等に起因する前述の警告イベントが発生した場合には、システムＢＩＯＳのＳＭＩ処理によって、ＣＰＵ性能を強制的に低下させる処理が実行される。この場合、ＯＳがブートし終わる迄は最高のＣＰＵ性能を維持するというシステム性能制御を行うことができなかったことになるので、以降は、ＣＰＵ性能を上昇させるためのＣＰＵ性能切り替え処理の実行については禁止する。これにより、ソフトウェアループカウンタを使用するＯＳやドライバの正常動作を保証することができる。
【００３９】
（ソフトウェアループカウンタの設定処理）
次に、図３を参照して、ＯＳやドライバがそのロード時に実行するソフトウェアループカウンタの設定処理について説明する。
【００４０】
ＯＳやドライバは、まず、ＣＰＵ１１内のタイムスタンプカウンタ（ＴＳＣ）の現在の値（Ｔ１）をリードした後（ステップＳ１１）、ある特定の命令、例えばジャンプ命令（ＪＭＰ＄）をＮ回繰り返し実行し（ステップＳ１２）、その実行後、ＣＰＵ１１内のタイムスタンプカウンタ（ＴＳＣ）の現在の値（Ｔ２）を再びリードする（ステップＳ１３）。そして、ＯＳやドライバは、Ｎ回のジャンプ命令に要した時間から１命令当たりの所用時間Ｔ（Ｔ＝（Ｔ２−Ｔ１）／Ｎ）を算出し（ステップＳ１４）、それを待ち時間カウントのための基準値としてメモリに保存する（ステップＳ１５）。
【００４１】
（システム制御方法の手順１）
図４には、本システム制御方法を実現するための第１の例が示されている。これは、ＯＳのブート処理が終了したかどうかの判断を、ＯＳに組み込んで使用する専用のユーティリティ（またはドライバ）のインストールが終了したことをそのユーティリティから知らせて貰うことによって行う場合の例である。専用のユーティリティとしては、ＣＰＵ性能の切り替え機能をユーザに提供するための省電力ユーティリティなどが利用される。省電力ユーティリティにはシステムＢＩＯＳとのインターフェイスを用意しておき、省電力ユーティリティがロードされたときに、そのことをシステムＢＩＯＳに通知できるようにしておく。省電力ユーティリティは、予めＯＳブート処理の最後の方にロードされることが経験的に判明しているユーティリティーである。
【００４２】
システム起動のためのイベント（パワーオン、リセット、再起動時など）が発生すると、システムＢＩＯＳのＰＯＳＴ処理ルーチンは、ハードウェアチェック及び初期化処理を行うが、その時に、ＣＰＵ速度制御回路１５２を用いてＣＰＵ１１の性能を最高性能に設定する（ステップＳ１０１）。ＰＯＳＴ処理が終了すると、ＯＳブート処理（ＯＳブートストラップシーケンス）が開始され（ステップＳ１０２）、カーネル部のロード、カーネルに組み込むことが必要な各種ドライバ／ユーティリティのロードなどが順次行われながら、ＯＳブート処理が進められていく（ステップＳ１０３）。そして、このＯＳブート処理の中で省電力ユーティリティがＯＳによってロード（インストール）されると（ステップＳ１０４）、省電力ユーティリティは、ＳＭＩ発生回路１５１を用いてソフトウェアＳＭＩを発生する。
【００４３】
このソフトウェアＳＭＩにより、システムＢＩＯＳのＳＭＩ処理ルーチン（＃１）が呼び出される。システムＢＩＯＳは、この時点で、ＯＳブート処理が終了したものと判断する。ＳＭＩ処理ルーチン（＃１）は、まず、ＣＭＯＳメモリ２０を参照してユーザ指定のＣＰＵ性能をチェックし、最高性能が指定されているか否かを判断する（ステップＳ１０５，Ｓ１０６）。最高性能以外の性能が指定されていた場合には、ＳＭＩ処理ルーチン（＃１）は、ＣＰＵ速度制御回路１５２を用いてＣＰＵ１１の性能をユーザ指定の性能に切り替える（ステップＳ１０８）。これにより、以降、ＣＰＵ１１はユーザ指定性能で動作する。
【００４４】
一方、ユーザ指定のＣＰＵ性能が最高性能であった場合には、ＳＭＩ処理ルーチン（＃１）は、基本的には、現在のＣＰＵ性能が既に最高性能であるので、ステップＳ１０８のＣＰＵ性能切り替え処理は行わない。しかし、この時点で、警告イベントがもし発生した場合には（ステップＳ１０７のＹ）、ＣＰＵ性能を安全な性能にまで低下させるために、ステップＳ１０８のＣＰＵ性能切り替え処理を実行する。なお、警告イベントは、ＯＳブート処理が終了する前、つまり省電力ユーティリティからの通知が来る前に、発生する場合もある。この場合の処理については、図９で後述する。
【００４５】
ＳＭＩ処理ルーチン（＃１）が終了すると、ＯＳに制御が戻される。この後、ＯＳ動作中に、例えばユーザがホットキーによって現在のユーザ指定性能（ローパワー）をフルパワーに上げることを指示した場合や、警告イベント発生後にＣＰＵ温度が安全な温度までに低下したりＡＣアダプタが接続された場合には、性能アップイベントが発生する。
【００４６】
この場合、ＳＭＩ発生回路１５１からのＳＭＩによって、システムＢＩＯＳのＳＭＩ処理ルーチン（＃２）が呼び出される。ＳＭＩ処理ルーチン（＃２）は、まず、動作中のオペレーティングシステムをチェックし、ダイナミックなＣＰＵ性能切り上げに対応しているＯＳであるか否かを調べる（ステップＳ１０９）。
システム起動時のＣＰＵ性能を上回るＣＰＵ性能へのダイナミックな切り上げに対応していないＯＳであれば、ステップＳ１１０，Ｓ１１１をスキップし、ＣＰＵ性能アップ処理をこの時点で禁止する。一方、対応しているＯＳであれば、タイムアウトにならなかったか否かを判断する（ステップＳ１１０）。
【００４７】
ここで、タイムアウトとは、ＯＳブート処理が終了する前、つまり省電力ユーティリティからの通知が来る前に警告イベントが発生することによって、ＯＳブート処理が終了するまでの間、ＣＰＵ性能を最高性能に維持することができなかったことを意味する。タイムアウトにならなかった場合、つまりＯＳブート処理の終了までＣＰＵ性能を最高性能に維持することができた場合には（ステップＳ１１０のＹ）、ＳＭＩ処理ルーチン（＃２）は、ＣＰＵ性能を上げてもＯＳブート処理中のＣＰＵ性能よりもＣＰＵ性能が高くなることはないので、ＣＰＵ速度制御回路１５２を用いてＣＰＵ１１の性能を上げる（ステップＳ１１０）。一方、タイムアウトが発生していた場合には（ステップＳ１０９のＮ）、ＯＳブート処理中のＣＰＵ性能よりもＣＰＵ性能が高くなる危険があるので、ステップＳ１１０の処理の実行を禁止する。
【００４８】
（システム制御方法の手順２）
図５には、本システム制御方法を実現するための第２の例が示されている。これは、特定のデバイスで問題が発生する可能性が高い場合に有効な方法であり、そのデバイスのドライバがインストール（ロード）されて実際に動作するまでをＯＳのブート処理とする。特定のドライバとしては、実際のＯＳ動作時のＣＰＵ性能がブート処理中のＣＰＵ性能よりも高いと問題が生じる可能性が高いことが経験的に知られているドライバ、たとえばＳＣＳＩドライバなどである。ＳＣＳＩドライバはＳＣＳＩデバイス毎に異なるので、省電力ユーティリティのようにシステムＢＩＯＳとのインターフェイスを用意することは困難である。このため、本例では、ＳＣＳＩドライバがＳＣＳＩデバイスのアクセスしたときに、Ｉ／ＯトラップＳＭＩが発生するようにＳＭＩ発生回路１５１を設定しておき、Ｉ／ＯトラップＳＭＩの発生をもってＯＳのブート処理が終了したと判断する。
【００４９】
すなわち、システム起動のためのイベント（パワーオン、リセット、再起動時など）が発生すると、システムＢＩＯＳのＰＯＳＴ処理ルーチンは、ハードウェアチェック及び初期化処理を行うが、その時に、ＣＰＵ速度制御回路１５２を用いてＣＰＵ１１の性能を最高性能に設定する（ステップＳ１０１）。ＰＯＳＴ処理が終了すると、ＯＳブート処理（ＯＳブートストラップシーケンス）が開始され（ステップＳ１０２）、カーネル部のロード、カーネルに組み込むことが必要な各種ドライバ／ユーティリティのロードなどが順次行われながら、ＯＳブート処理が進められていく（ステップＳ１０３）。そして、このＯＳブート処理の中でＳＣＳＩドライバがＯＳによってロード（インストール）され、且つそのＳＣＳＩドライバが実際にデバイスをアクセスすると（ステップＳ２０１）、ＳＭＩ発生回路１５１からＩ／ＯトラップＳＭＩが発生される。このソフトウェアＳＭＩにより、システムＢＩＯＳのＳＭＩ処理ルーチン（＃１）が呼び出される。以降の処理は全て図４と同じである。
【００５０】
このように、問題を起こす可能性が高いドライバがインストール（ロード）されて実際に動作するまでをＯＳのブート処理とすることにより、たとえＯＳブート処理が完全には終了されていない状態でＣＰＵ性能をユーザ指定のローパワーに切り替えたとしても、正常動作を高い確率で保証することが可能となる。
【００５１】
（システム制御方法の手順３）
図６には、本システム制御方法を実現するための第３の例が示されている。これは、ＯＳのブート処理が終了したかどうかの判断を、ユーザからの特定のキー入力によって行うものであり、他の点はすべて図４と同じである。
【００５２】
ユーザはＯＳブート処理が終了したことを画面上で知ることができるので、ＯＳブート処理が終了したときに押下すべきキーまたはキーの組み合わせをユーザに予め知らせておくことにより、ＯＳのブート処理が終了したかどうかを正しく判断することができる。ＯＳブート処理が終了したときに押下すべきキーまたはその組み合わせをホットキーとして割り当ておけば、そのキー操作時には、ＳＭＩ発生回路１５１からＳＭＩが発生される。このＳＭＩによって、システムＢＩＯＳのＳＭＩ処理ルーチン（＃１）を呼び出せばよい。
【００５３】
また、ＯＳブート処理中にはユーザが押すことのないようなキー、例えばパスワード入力やログイン名の入力などに使用しないキーやその組み合わせを用いて、ＯＳブート処理が終了したか否かを判断するようにしてもよい。キー入力のみならず、マウス操作などの他の各種ユーザからの特定の入力イベントを利用することができる。
【００５４】
（システム制御方法の手順４）
図７には、本システム制御方法を実現するための第４の例が示されている。これは、第１の例と同様に省電力ユーティリティーなどの専用のユーティリティ（ドライバ）のインストールをもってＯＳブート処理の終了と判断するものであるが、システムＢＩＯＳのＳＭＩ処理ルーチンではなく、ロードされた専用のユーティリティ自体が自分でユーザ指定性能に切り替える処理などを行うようにしたものである。
【００５５】
すなわち、システム起動のためのイベント（パワーオン、リセット、再起動時など）が発生すると、システムＢＩＯＳのＰＯＳＴ処理ルーチンは、ハードウェアチェック及び初期化処理を行うが、その時に、ＣＰＵ速度制御回路１５２を用いてＣＰＵ１１の性能を最高性能に設定する（ステップＳ１０１）。ＰＯＳＴ処理が終了すると、ＯＳブート処理（ＯＳブートストラップシーケンス）が開始され（ステップＳ１０２）、カーネル部のロード、カーネルに組み込むことが必要な各種ドライバ／ユーティリティのロードなどが順次行われながら、ＯＳブート処理が進められていく（ステップＳ１０３）。そして、このＯＳブート処理の中で省電力ユーティリティがＯＳによってロード（インストール）されると（ステップＳ３０１）、省電力ユーティリティは、ＯＳブート処理が終了したと判断し、前述のＳＭＩ処理ルーチン（＃１）と同じ処理を実行する（ステップＳ１０５〜Ｓ１０８）。また、性能アップイベントが発生した場合にも、ＳＭＩ処理ルーチン（＃２）に代わって、省電力ユーティリティがステップＳ１０９，Ｓ１１０の処理を行うようにしてもよい。
【００５６】
（システム制御方法の手順５）
図８には、本システム制御方法を実現するための第５の例が示されている。本例では、ＣＰＵ性能制御のための処理がすべてオペレーティングシステムによって実行される。
【００５７】
すなわち、システム起動のためのイベント（パワーオン、リセット、再起動時など）が発生すると、システムＢＩＯＳのＰＯＳＴ処理ルーチンは、ハードウェアチェック及び初期化処理を行う（ステップＳ４０１）。ＰＯＳＴ処理が終了すると、ＯＳブート処理（ＯＳブートストラップシーケンス）が開始され（ステップＳ４０２）、カーネル部のロード、カーネルに組み込むことが必要な各種ドライバ／ユーティリティのロードなどが順次行われながら、ＯＳブート処理が進められていく（ステップＳ４０３）。
【００５８】
そして、このＯＳブート処理が終了すると、ＯＳは、ＣＭＯＳメモリ２０を参照してユーザ指定のＣＰＵ性能をチェックし、最高性能が指定されているか否かを判断する（ステップＳ４０５，Ｓ４０６）。最高性能以外の性能が指定されていた場合には、ＯＳは、ＣＰＵ速度制御回路１５２を用いてＣＰＵ１１の性能をユーザ指定の性能に切り替える（ステップＳ４０８）。これにより、以降、ＣＰＵ１１はユーザ指定性能で動作する。一方、ユーザ指定のＣＰＵ性能が最高性能であった場合には、ＯＳは、基本的には、現在のＣＰＵ性能が既に最高性能であるので、ステップＳ４０８のＣＰＵ性能切り替え処理は行わない。しかし、この時点で、警告イベントがもし発生した場合には（ステップＳ４０７のＹ）、ＣＰＵ性能を安全な性能にまで低下させるために、ステップＳ４０８のＣＰＵ性能切り替え処理を実行する。なお、警告イベントは、ＯＳブート処理が終了する前に発生する場合もある。この場合の処理については図９で後述する。
【００５９】
この後、ＯＳ動作中に、例えばユーザがホットキーによって現在のユーザ指定性能（ローパワー）をフルパワーに上げることを指示した場合や、警告イベント発生後にＣＰＵ温度が安全な温度までに低下したりＡＣアダプタが接続された場合には、性能アップイベントが発生するが、この性能アップイベントに対する処理もＯＳ自体が行うようにしても良い。この場合、ＯＳは、まず、自身がＣＰＵ性能切り上げに対応しているＯＳであるか否かを調べる（ステップＳ４０９）。
システム起動時のＣＰＵ性能を上回るＣＰＵ性能へのダイナミックな切り上げに対応していないＯＳであれば、ステップＳ４１０，Ｓ４１１をスキップし、ＣＰＵ性能アップ処理をこの時点で禁止する。一方、対応しているＯＳであれば、タイムアウトにならなかったか否かを判断する（ステップＳ４１０）。タイムアウトにならなかった場合、つまりＯＳブート処理の終了までＣＰＵ性能を最高性能に維持することができた場合には（ステップＳ４１０のＹ）、ＯＳは、ＣＰＵ性能を上げてもＯＳブート処理中のＣＰＵ性能よりもＣＰＵ性能が高くなることはないので、ＣＰＵ速度制御回路１５２を用いてＣＰＵ１１の性能を上げる（ステップＳ４１１）。一方、タイムアウトが発生していた場合には（ステップＳ４１０のＮ）、ＯＳブート処理中のＣＰＵ性能よりもＣＰＵ性能が高くなる危険があるので、ステップＳ４１１の処理の実行を禁止する。
【００６０】
なお、このシステム制御方法では、ＰＯＳＴ処理中はＣＰＵ性能はユーザ指定性能となり、最高性能で動作するのはＯＳブート処理のみとなる。システム起動速度をすこしでも早めたい場合には、ＣＰＵ性能を最高性能に設定する処理をＰＯＳＴ処理の中で行えばよい。
【００６１】
（警告イベントＳＭＩ処理）
図９には、警告イベント発生時にシステムＢＩＯＳ（またはＯＳ）によって実行される処理の手順が示されている。ここでは、システムＢＩＯＳおよびＯＳのどちらの場合でも警告イベントに対する処理の内容は同じであるので、以下では、システムＢＩＯＳのＳＭＩ処理ルーチンが警告イベントに対する処理を行う場合を例示して説明する。
【００６２】
警告イベントが発生すると、システムＢＩＯＳのＳＭＩ処理（警告イベントＳＭＩ処理）が実行される。このＳＭＩ処理ルーチンは、まず、前述の各例のいずれかを用いて、ＯＳブート処理が終了しているか否かを判断する（ステップＳ２１）。ＯＳブート処理が終了していれば、ＳＭＩ処理ルーチンは、無条件にＣＰＵ性能を低下させる処理を実行する（ステップＳ２２）。一方、ＯＳブート処理が終了していない場合、つまりＯＳブート処理中に警告イベントが発生した場合には、ＳＭＩ処理ルーチンは、ＳＭＩ発生回路１５１内の要因レジスタを参照することなどによって、警告イベントの発生要因がＣＰＵの熱上昇によるものであるか、ＡＣアダプタ１８１の取り外し（ＡＣアダプタ電源オフ）によるものであるかを調べる（ステップＳ２３）。熱による警告イベントの発生であれば、ＳＭＩ処理ルーチンは、そのまま放置すると重大なシステムエラーが生じる危険があるため、ＣＰＵ速度制御回路１５２を用いてＣＰＵ性能を低下させた後（ステップＳ２４）、タイムアウトが発生した旨を示すタイムアウトフラグをＯＮする（ステップＳ２５）。このタイムアウトフラグは、性能アップイベントに応答して実行されるＳＭＩ処理ルーチンが、タイムアウトが発生しなかったか否かを判断する時に利用することができる。
【００６３】
一方、ＡＣアダプタ電源オフによる警告イベントの発生であれば、ＳＭＩ処理ルーチンは、ＯＳブート処理が終了するまではＣＰＵ性能を最高性能に維持できるように、ステップＳ２４のＣＰＵ性能低下処理は行わない。この場合、ＯＳブート処理の終了時に実行されるＳＭＩ処理ルーチンで、ＣＰＵ性能の低下処理を行えばよい。
【００６４】
（シャットダウン処理の制御）
次に、シャットダウン／スタンバイ処理中に実行されるＣＰＵ性能制御について説明する。コンピュータシステムをシャットダウン／スタンバイするためのイベント（例えば、電源オフ、シャットダウンコマンドの入力、リセットなど）が発生すると、システムＢＩＯＳとＯＳとの連携処理によって、ＯＳのシャットダウンシーケンス（スタンバイシーケンスも同じ）と、それに後続して、システムＢＩＯＳのパワーオフシーケンスが実行される。シャットダウン／スタンバイ処理の最初で、システムＢＩＯＳまたはＯＳは、ＣＰＵ速度制御回路１５２を用いてＣＰＵ性能を最高性能に設定する。これにより、以降、システムが実際にパワーオフされるまでの間、ＣＰＵ１１は最高性能で動作する。
【００６５】
なお、システム起動処理、シャットダウン処理のみならず、システムをスリープ状態に設定するためのサスペンド／ハイバネーション処理などにおいても、その処理中はＣＰＵ１１を最高性能で動作させるようにすることができる。
【００６６】
以上のように、本実施形態においては、ユーザからの指定やその他予め決められた要因に関わらず、ＯＳブート処理が終わる迄は最高のＣＰＵ１１を最高性能で動作させることにより、システムの動作の信頼性の向上およびシステム起動処理の高速化を図ることが可能となる。また、ＯＳのブート処理が終了したことが検出された時点で、ＣＰＵ１１の性能をユーザによって指定されたＣＰＵ性能に戻すことにより、コンピュータシステムの低消費電力化も実現できる。さらに、警告イベントの発生によってＯＳブート処理が終了するまでＣＰＵ性能を最高性能に維持することができなかった場合には、以降のＣＰＵ性能を上昇させるためのＣＰＵ性能切り替え処理の実行については禁止しているので、システム動作の信頼性を維持することができる。
【００６７】
なお、ブート後にＣＰＵ性能が上昇しても問題が発生しないことが保証されているＯＳの場合には、ブート処理を開始したＯＳが該ＯＳであると判断できた時点でユーザ指定の本来のＣＰＵ性能に戻しても良い。また、ＰＯＳＴ処理でＯＳの種類を判別し、ブート後にＣＰＵ性能が上昇しても問題が発生しないことが保証されているＯＳの場合にはユーザ指定の本来のＣＰＵ性能で動作させ、それ以外のＯＳの場合にはブート終了までＣＰＵを最高性能で動作させるように制御することも可能である。
【００６８】
【発明の効果】
以上説明したように、本発明によれば、ユーザからの指定やその他予め決められた要因に関わらず、システム起動処理が終わる迄は最高のＣＰＵ性能で動作させることにより、ＣＰＵ性能の切り替えが可能なシステムの動作の信頼性の向上およびシステム起動処理の高速化を図ることが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るコンピュータシステムの構成を示すブロック図。
【図２】同実施形態のコンピュータシステムのシステム制御方法の原理を説明するための図。
【図３】同実施形態で使用されるＯＳやドライバがそのロード時に実行するソフトウェアループカウンタの設定処理の一例を示すフローチャート。
【図４】同実施形態のシステム制御方法を実現するための第１の例を示すフローチャート。
【図５】同実施形態のシステム制御方法を実現するための第２の例を示すフローチャート。
【図６】同実施形態のシステム制御方法を実現するための第３の例を示すフローチャート。
【図７】同実施形態のシステム制御方法を実現するための第４の例を示すフローチャート。
【図８】同実施形態のシステム制御方法を実現するための第５の例を示すフローチャート。
【図９】同実施形態で用いられる警告イベントＳＭＩ処理の手順を示すフローチャート。
【図１０】同実施形態のシャットダウン処理中のＣＰＵ性能制御の様子を示す図。
【符号の説明】
１１…ＣＰＵ
１２…ホスト−ＰＣＩブリッジ
１３…主メモリ
１５…ＰＣＩ−ＩＳＡブリッジ
１６…Ｉ／Ｏコントローラ
１７…ＢＩＯＳ−ＲＯＭ
２０…ＣＭＯＳメモリ
２１…温度センサ
１５１…ＳＭＩ発生回路
１５２…ＣＰＵ速度制御回路
１８１…ＡＣアダプタ
【図１】
0003943764.tif 000002
【図２】
0003943764.tif 000003
【図３】
0003943764.tif 000004
【図４】
0003943764.tif 000005
【図５】
0003943764.tif 000006
【図６】
0003943764.tif 000007
【図７】
0003943764.tif 000008
【図８】
0003943764.tif 000009
【図９】
0003943764.tif 000010
【図１０】
0003943764.tif 000011