(57)【特許請求の範囲】
【請求項１】
通信ポートを備え、この通信ポートを介して外部装置との間でデータの送受信を行うコンピュータシステムにおいて、
前記コンピュータシステムのＣＰＵの動作を制御して前記コンピュータシステムのシステム状態を動作モードから省電力モードに移行する省電力制御手段と、
オペレーティングシステムが前記コンピュータシステムのアイドル状態を検出したときに前記オペレーティングシステムから発行されるシステムアイドル通知に応答して、前記通信ポートを介して実行されている現在の通信モードが相手装置の認識又は接続制御のための制御用モードと、データ通信のためのデータ通信用モードのいずれのモードであるかを判別する判別手段と、
この判別手段が前記制御用モードであると判断した場合に前記省電力制御手段による前記省電力モードへの移行を許可し、前記判別手段が前記通信用モードであると判断した場合に前記省電力制御手段による前記省電力モードへの移行を禁止する手段とを具備することを特徴とするコンピュータシステム。
【請求項２】
前記判別手段は、前記制御用モードと前記データ通信用モードとを含む通信プロトコルにて前記通信ポートを制御するための通信プロトコル制御プログラムに対して現在の通信モードを問い合わせ、その問い合わせに対する応答に基づいて現在の通信モードを判別することを特徴とする請求項１記載のコンピュータシステム。
【請求項３】
前記判別手段は、前記通信ポートを制御する通信コントローラに対して現在の通信モードを指定するための制御情報が設定されるレジスタを参照することにより、現在の通信モードを判別することを特徴とする請求項１記載のコンピュータシステム。
【請求項４】
通信ポートを備え、この通信ポートを介して外部装置との間でデータの送受信を行うコンピュータシステムにおいて、
前記コンピュータシステムのＣＰＵの動作を制御して前記コンピュータシステムのシステム状態を動作モードから省電力モードに移行する省電力制御手段と、
オペレーティングシステムが前記コンピュータシステムのアイドル状態を検出したときに前記オペレーティングシステムから発行されるシステムアイドル通知に応答して、前記通信ポートを介して実行されている現在の通信速度が、相手装置の認識又は接続制御のための制御用の通信速度と、データ通信のための通信速度のどちらの通信速度であるかを判別する判別手段と、
この判別手段が前記制御用の通信速度であると判断した場合に前記省電力制御手段による前記省電力モードへの移行を許可し、前記判別手段が前記データ通信のための通信速度であると判断した場合に前記省電力制御手段による前記省電力モードへの移行を禁止する手段とを具備することを特徴とするコンピュータシステム。
【請求項５】
前記判別手段は、データ通信時に、相手装置の認識又は接続制御時の通信速度よりも高速の通信速度で前記通信ポートを制御するための通信プロトコル制御プログラムに対して現在の通信速度を問い合わせ、その問い合わせに対する応答に基づいて現在の通信速度を判別することを特徴とする請求項４記載のコンピュータシステム。
【請求項６】
前記判別手段は、前記通信ポートを制御する通信コントローラに対して現在の通信速度を指定するための制御情報が設定されるレジスタを参照することにより、現在の通信速度を判別することを特徴とする請求項４記載のコンピュータシステム。
【請求項７】
通信ポートを備え、この通信ポートを介して外部装置との間でデータの送受信を行うコンピュータシステムにおいて、
前記コンピュータシステムのＣＰＵの動作を制御して前記コンピュータシステムのシステム状態を動作モードから省電力モードに移行する省電力制御手段と、
オペレーティングシステムが前記コンピュータシステムのアイドル状態を検出したときに前記オペレーティングシステムから発行されるシステムアイドル通知に応答して、前記通信ポートを介して実行されている現在のデータ通信モードが、リアルタイム性を要求するモードと、それ以外の他のモードのどちらのモードであるかを判別する判別手段と、
この判別手段が前記リアルタイム性を要求するモードであると判断した場合に前記省電力制御手段による前記省電力モードへの移行を禁止し、前記判別手段が前記リアルタイム性を要求するモード以外のモードであると判断した場合に前記省電力制御手段による前記省電力モードへの移行を許可する手段とを具備することを特徴とするコンピュータシステム。
【請求項８】
外部装置と通信するための通信ポートと、ＣＰＵの動作を制御してシステム状態を動作モードから省電力モードに移行する省電力制御手段とを有するコンピュータシステムの省電力制御方法であって、
オペレーティングシステムが前記コンピュータシステムのアイドル状態を検出したときに前記オペレーティングシステムから発行されるシステムアイドル通知に応答して、前記通信ポートを介して実行されている現在の通信モードが相手装置の認識又は接続制御のための制御用モードと、データ通信のためのデータ通信用モードのいずれのモードであるかを判別し、
前記制御用モードであると判断した場合に前記省電力制御手段による前記省電力モードへの移行を許可し、
前記通信用モードであると判断した場合に前記省電力モードへの移行を禁止することを特徴とする省電力制御方法。
【請求項９】
外部装置と通信するための通信ポートと、ＣＰＵの動作を制御してシステム状態を動作モードから省電力モードに移行する省電力制御手段とを有するコンピュータシステムの省電力制御方法であって、
オペレーティングシステムが前記コンピュータシステムのアイドル状態を検出したときに前記オペレーティングシステムから発行されるシステムアイドル通知に応答して、前記通信ポートを介して実行されている現在の通信速度が、相手装置の認識又は接続制御のための制御用の通信速度と、データ通信のための通信速度のどちらの通信速度であるかを判別し、
前記制御用の通信速度であると判断した場合に前記省電力制御手段による前記省電力モードへの移行を許可し、
前記データ通信のための通信速度であると判断した場合に前記省電力制御手段による前記省電力モードへの移行を禁止することを特徴とする省電力制御方法。
【請求項１０】
外部装置と通信するための通信ポートと、ＣＰＵの動作を制御してシステム状態を動作モードから省電力モードに移行する省電力制御手段とを有するコンピュータシステムの省電力制御方法であって、
オペレーティングシステムが前記コンピュータシステムのアイドル状態を検出したときに前記オペレーティングシステムから発行されるシステムアイドル通知に応答して、前記通信ポートを介して実行されている現在のデータ通信モードが、リアルタイム性を要求するモードと、それ以外の他のモードのどちらのモードであるかを判別し、
前記リアルタイム性を要求するモードであると判断した場合に前記省電力制御手段による前記省電力モードへの移行を禁止し、
前記リアルタイム性を要求するモード以外のモードであると判断した場合に前記省電力制御手段による前記省電力モードへの移行を許可することを特徴とする省電力制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はコンピュータシステムおよびその省電力制御方法に関し、特に通信ポートを備え、この通信ポートを介して外部の周辺装置との間でデータの送受信を行うコンピュータシステムおよびその省電力制御方法に関する。
【０００２】
【従来の技術】
近年、携帯可能なノートブックタイプまたはサブノートタイプのパーソナルコンピュータや、携帯情報端末などのポケットコンピュータが種々開発されている。
【０００３】
この種のポータブルコンピュータは、バッテリ駆動可能な時間を延ばすために、コンピュータシステムの電力を節約するための種々の省電力機能が設けられている。
【０００４】
すなわち、オペレーティングシステム（ＯＳ）は実行すべきタスクが無くなるなどの要因に応じてシステムアイドル状態であることを検出すると、アイドル命令をコールしてシステムＢＩＯＳなどの制御プログラムに対してシステムアイドルを通知する。ＯＳからシステムアイドルの通知を受けたシステムＢＩＯＳは、ＣＰＵを停止させたり、あるいはその動作速度を低下させるなどして、システム状態を通常の動作モードからそれよりも低消費電力の省電力モードに設定する。省電力モードにおいデバイスからの割り込み信号などのイベントが発生すると、それに応答してシステム状態は通常の動作モードに復帰される。
【０００５】
【発明が解決しようとする課題】
しかし、通信デバイスが搭載されたポータブルＰＣにおいては、その通信デバイスが動作中であっても、ＯＳがシステムアイドルであると判断し、アイドル命令をコールすることがある。これは、通信デバイスを制御するソフトウェアは、通常、タイマ割り込みなどを利用して動作しており、相手装置からの応答待ちの時間などは実行待ち状態となってキューから外されることなどによるものである。
【０００６】
このアイドル命令がコールされると、前述したようにＣＰＵは動作停止されたり、あるいは動作速度が低下されてしまうため、通信パフォーマンスが著しく低下してしまうことになる。
【０００７】
本発明はこのような点に鑑みてなされたものであり、通信パフォーマンスを低下させることなく、十分な省電力を実現することが可能なコンピュータシステムおよびその省電力制御方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上述の課題を解決するため、本発明は、通信ポートを備え、この通信ポートを介して外部装置との間でデータの送受信を行うコンピュータシステムにおいて、前記コンピュータシステムのＣＰＵの動作を制御して前記コンピュータシステムのシステム状態を動作モードから省電力モードに移行する省電力制御手段と、オペレーティングシステムが前記コンピュータシステムのアイドル状態を検出したときに前記オペレーティングシステムから発行されるシステムアイドル通知に応答して、前記通信ポートを介して実行されている現在の通信モードが相手装置の認識又は接続制御のための制御用モードと、データ通信のためのデータ通信用モードのいずれのモードであるかを判別する判別手段と、この判別手段が前記制御用モードであると判断した場合に前記省電力制御手段による前記省電力モードへの移行を許可し、前記判別手段が前記通信用モードであると判断した場合に前記省電力制御手段による前記省電力モードへの移行を禁止する手段とを具備することを特徴とする。
【０００９】
このコンピュータシステムにおいては、ＯＳからシステムアイドル通知が発行されると、まず、通信ポートを介して実行されている現在の通信モードが調べられ、現在の通信モードが相手装置の認識又は接続制御のための制御用モードと、データ通信のためのデータ通信用モードのいずれのモードであるかが判別される。そして、データ通信用モードであれば省電力モードへの移行を禁止し、制御用モードであれば省電力モードへの移行を許可するといった制御が行われる。
【００１０】
通信パフォーマンスの低下のみを防止するのであれば、通信ポートがオープン状態であるかクローズ状態であるか、つまり通信ポートが使用されているか否かを判断、オープン状態ならば省電力モードへの移行を禁止するという制御も可能である。しかし、このようにすると、たとえ現在の通信モードが相手装置の認識又は接続制御のための制御用モードである場合などのように、通信パフォーマンスに影響のない状態であってもシステムアイドルのコールが取り消されてしまうことになり、省電力効果が薄れてしまう。したがって、本発明のように、通信ポートがオープン状態か否かの判別ではなく、通信モードの判別結果に基づいて省電力モードへの移行を許可または禁止するという通信プロトコルの特徴に促した制御を行うことにより、通信パフォーマンスに影響を与える状態である場合にのみ、システムアイドルのコールを取り消すことが可能となる。よって、通信パフォーマンスを低下させることなく、十分な省電力を実現できる。
【００１１】
特に、赤外線通信などのような半二重方式の無線通信においては、通信相手の装置との間の送受信は同時には実行できないので、相手装置の認識又は接続制御のための制御用モードでは相手からの応答待ち時間として比較的長い時間が設定される。したがって、このような待ち時間に省電力モードに移行しても、通信パフォーマンスには何ら影響を与えることはない。
【００１２】
また、通信モードを判別する代わりに、現在設定されている通信速度を判別し、その判別結果に基づいて、前記省電力モードへの移行を許可または禁止するようにしてもよい。通常、赤外線通信などのような無線通信においては、制御用モード時ではある一定の通信速度での通信が行われ、実際のデータ通信時にはそれよりも高速の通信速度が用いられる。よって、現在の通信速度を調べることにより、現在の通信モードが制御用モードであるか、データ通信用モードであるかを判別することが可能となる。
【００１３】
また、本発明は、通信ポートを備え、この通信ポートを介して外部装置との間でデータの送受信を行うコンピュータシステムにおいて、前記コンピュータシステムのＣＰＵの動作を制御して前記コンピュータシステムのシステム状態を動作モードから省電力モードに移行する省電力制御手段と、オペレーティングシステムが前記コンピュータシステムのアイドル状態を検出したときに前記オペレーティングシステムから発行されるシステムアイドル通知に応答して、前記通信ポートを介して実行されている現在のデータ通信モードが、リアルタイム性を要求するモードと、それ以外の他のモードのどちらのモードであるかを判別する判別手段と、この判別手段が前記リアルタイム性を要求するモードであると判断した場合に前記省電力制御手段による前記省電力モードへの移行を許可し、前記判別手段が前記リアルタイム性を要求するモード以外のモードであると判断した場合に前記省電力制御手段による前記省電力モードへの移行を禁止する手段とを具備する特徴とする。
【００１４】
このコンピュータシステムにおいては、例えば相手装置との通信のためのネゴシエーション（折衝）にて交わされる通信パラメータなどによって、現在のデータ通信モードが、リアルタイム性を要求されるモードであるか否かが判別される。そして、リアルタイム性を要求されるモードの場合、つまり、現在通信中の相手装置がリアルタイム性を要求するデバイスの場合にのみ、省電力モードへの移行が禁止される。これにより、リアルタイム性が必要な通信を行っている場合にはその通信パフォーマンスを優先し、それ以外の場合は省電力性を優先するという制御が実現され、効率的に省電力を行うと同時にスループットの低下を防ぐことが可能となる。
【００１５】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。
図１には、本発明の一実施形態に係るコンピュータシステムの構成が示されている。このコンピュータシステムはバッテリ駆動可能なポータブルパーソナルコンピュータ（ＰＣ）であり、ＣＰＵ１１、ＣＰＵバスブリッジ１２、ストップクロック制御回路１３、主メモリ１４、ＢＩＯＳ−ＲＯＭ１７、通信コントローラ１８、および赤外線ポート１９を備えている。
【００１６】
ＣＰＵ１１としては、例えば、米インテル社により製造販売されているマイクロプロセッサ“Ｐｅｎｔｉｕｍ”などが使用される。このＣＰＵ１１は電力消費の異なる３つの動作ステート、つまり、ノーマルステート（Ｎｏｒｍａｌ  Ｓｔａｔｅ）、ストップグラントステート（Ｓｔｏｐ  Ｇｒａｎｔ  Ｓｔａｔｅ）、およびストップクロックステート（ＳＴＯＰ  Ｃｌｏｃｋ  Ｓｔａｔｅ）を有している。ノーマルステートはＣＰＵ１１の通常の動作ステートであり、命令はこのノーマルステートにおいて実行される。ノーマルステートは電力消費の最も多いステートであり、その消費電流は〜７００ｍＡ程度である。
【００１７】
最も電力消費の少ないのはストップクロックステートであり、その消費電流は〜３０μＡ程度である。このストップクロックステートにおいては、命令の実行が停止されるだけでなく、ＣＰＵ１１の内部クロックＣＬＫも停止されている。
【００１８】
ストップグラントステートは、ノーマルステートとストップクロックステートの中間の動作ステートであり、その消費電流は２０〜５５ｍＡ程度と比較的少ない。ストップグラントステートにおいては、命令は実行されない。また、外部クロックおよび内部クロックは共にランニング状態であるが、ＣＰＵ内部ロジック（ＣＰＵコア）への内部クロックの供給は禁止される。このストップグラントステートは外部クロックの停止可能なステートであり、このストップグラントステートにおいて外部クロックＣＬＫを停止すると、ＣＰＵ１１はストップグラントステートからストップクロックステートに移行する。
【００１９】
ノーマルステートとストップグラントステート間の遷移は、ストップクロック（ＳＴＰＣＬＫ＃）信号によって高速に行うことができる。
すなわち、ノーマルステートにおいてＣＰＵ１１に供給されるＳＴＰＣＬＫ＃信号がイネーブルつまりアクティブステートに設定されると、ＣＰＵ１１は、現在実行中の命令が完了後、次の命令を実行すること無く、内部のパイプラインをすべて空にしてから、ストップグラントサイクルを実行して、ノーマルステートからストップグラントステートに移行する。一方、ストップグラントステートにおいてＳＴＰＣＬＫ＃信号がディスエーブルつまりインアクティブステートに設定されると、ＣＰＵ１１は、ストップグラントステートからノーマルステートに移行し、次の命令の実行を再開する。
【００２０】
以上のように、ストップグラントステートは、ノーマルステートに比べ非常にローパワーであり、且つＳＴＰＣＬＫ＃信号によってノーマルステート、つまり命令実行状態に高速に復帰できるという特徴を持っている。このため、本システムでは、ＣＰＵ動作速度を低下させるための機能としてストップグラントステートを利用している。
【００２１】
ＣＰＵバスブリッジ１２はＣＰＵ１１とシステムバス１０間をつなぐブリッジＬＳＩであり、ここには、主メモリ１４や他の各種Ｉ／Ｏを制御するためのロジックや、ストップクロック制御回路１３が内蔵されている。ストップクロック制御回路１３は、前述のＳＴＰＣＬＫ＃信号を制御するためのハードウェアであり、システムＢＩＯＳによって省電力モードへの移行のための設定処理が行われると、ＣＰＵ１１がストップグラントステートとノーマルステートとをある時間間隔で交互に繰り返すようにＳＴＰＣＬＫ＃信号を制御する。これにより、ＣＰＵ１１の平均動作速度が低下される。そして、デバイスからの割り込み信号などのイベントが発生すると、システムＢＩＯＳによるストップクロック制御回路１３の制御は終了され、システム状態は通常動作状態に復帰する。この場合、ＣＰＵ１１はノーマルステートである。そしてシステムＢＩＯＳからＯＳに制御が戻される。
【００２２】
主メモリ１４は、オペレーティングシステム（ＯＳ）１５、各種ドライバ群１６、処理対象のアプリケーションプログラム、およびアプリケーションプログラムによって作成されたユーザデータ等を格納する。ＯＳ１５は、実行すべきタスクが無くなるなどの要因に応じてシステムアイドル状態を検出する機能を有しており、システムアイドル状態であることを検出すると、アイドル命令をコールしてシステムＢＩＯＳに対してシステムアイドルを通知する。
【００２３】
ＢＩＯＳ−ＲＯＭ１７は、システムＢＩＯＳ（Ｂasic  Ｉ／Ｏ  Ｓystem ）を記憶するためのものであり、プログラム書き替えが可能なようにフラッシュメモリによって構成されている。システムＢＩＯＳは、ハードウェア制御のためのルーチンを体系化したものであり、ここには、前述したようにストップクロック制御ロジック１３を制御してシステム状態を省電力モードに移行させるための機能などが設けられている。この省電力モードへの移行制御は、ＯＳ１５からのパワーセーブ要求（システムアイドル通知）に応答して実行される。
【００２４】
通信コントローラ１８は、赤外線ポート１９を用いて他のＰＣや各種周辺装置などの外部装置と通信するための通信デバイスである。赤外線ポート１９を介した外部装置との通信は、相手装置の認識又は接続制御のための制御用モードとデータ通信のためのデータ通信用モードとを含む通信プロトコルに従って実行される。通信コントローラ１８には、ＣＰＵ１１によってリード・ライトアクセス可能なＩ／Ｏレジスタ２０が設けられており、このＩ／Ｏレジスタ２０へのコマンドおよびパラメタ設定によって赤外線ポート１９を利用した通信制御が実行される。Ｉ／Ｏレジスタ２０には。現在の通信モード（制御用モード、データ通信用モード）を設定するための通信モードレジスタ２１と、現在の通信速度を設定するための速度設定レジスタ２２などが含まれている。
【００２５】
赤外線データ通信の標準化団体であるＩｒＤＡで規定されているプロトコルでは、ＮＲＭ（Ｎｏｒｍａｌ  Ｒｅｓｐｏｎｓｅ  Ｍｏｄｅ）とＮＤＭ（Ｎｏｒｍａｌ  Ｄｉｓｃｏｎｎｅｃｔ  Ｍｏｄｅ）という２つのモード（状態）を定義している。
【００２６】
ＮＤＭは９６００ｂｐｓという一定速度で相手局を探したり、あるいはリンク設定／切断などの接続制御を行うための状態であり、ユーザーが使用する通信アプリケーションにとって有効なデータの通信を行っているわけではない。
【００２７】
一方、ＮＲＭは実際に有効なデータ通信を行っているモードであり、ＩｒＤＡを利用するアプリケーションが起動すると、ＮＤＭで通信パラメータの折衝を行い、その後折衝で決定した速度（〜４Ｍｂｐｓ）に上げて、ＮＲＭに移行する。
【００２８】
上述したＩｒＤＡプロトコルの特徴を考慮し、本実施形態では、ＯＳ１５からのシステムアイドル通知をフックし、現在の通信モードがＮＤＭであればシステムアイドルのコールバックを取り消すことなくそのままシステムＢＩＯＳに流し、ＮＲＭであればシステムアイドルを取り消す、という通信モードに応じた省電力モードへの移行の許可／禁止の制御が行われる。
【００２９】
図２には、赤外線ポート１９の制御に関するドライバの構成例が示されている。
赤外線ポート制御に関するドライバとしては、ＩｒＤＡのプロトコルを制御する通信プロトコルドライバ１０１、およびＩｒＤＡ通信デバイスである通信コントローラ１８を動かすためのデバイスドライバ１０１に加え、赤外線通信の状態に応じて省電力モードへの移行を制御するための省電力ドライバ１０３が設けられている。この省電力ドライバ１０３は、ＯＳ１５からのシステムアイドル通知をフックし、通信モードモニタードライバ１０４を用いて、現在の通信デバイスの状態（ＮＲＭ／ＮＤＭ）を調べる。現在の通信デバイスの状態は、例えば、通信モードレジスタ２１のモード設定情報を参照したり、あるいは速度設定レジスタ２２の速度情報を参照することによって判別される。そして、省電力ドライバ１０３は、現在の通信デバイスの状態に応じて、省電力モードへの移行を許可又は禁止する。
【００３０】
ＯＳからのシステムアイドル通知のフックは、例えば、あらかじめシステムアイドルのコールバックをＯＳに対して登録しておくことによって実現できる。すなわち、システムアイドルを検出した際に省電力ドライバ１０３を呼び出すための所定の関数をＯＳに組み込んでおくことにより、システムＢＩＯＳへの通知に先立って、システムアイドルが省電力ドライバ１０３に通知される。
【００３１】
図３には、ＯＳ、省電力ドライバ１０３、システムＢＩＯＳの関係が模式的に示されている。
省電力ドライバは基本的には各デバイス毎に用意されており、システムアイドルのコールバックをＯＳ１５に対して登録してある省電力ドライバそれぞれに対して、ＯＳ１５からシステムアイドルがコールバックされる。
【００３２】
ここでは、赤外線通信制御用の省電力ドライバ１０３の動きを中心に説明する。
ＯＳ１５は、システムアイドルを検知すると、システムアイドルをコールする。このコールバックを受けた省電力ドライバ１０３は、通信モードモニタードライバ１０４を用いて、通信モードレジスタ２１をリードする。この時のモードがＮＲＭであった場合、省電力ドライバ１０３はシステムアイドルをキャンセルするための戻り値をＯＳ１５に返し、またＮＤＭであれば、システムアイドルをそのまま有効に維持するための戻り値をＯＳ１５に返す。
【００３３】
省電力ドライバ１０３からの戻り値によってシステムアイドルがキャンセルされると、ＯＳ１５からシステムＢＩＯＳへのパワーセーブ要求（システムアイドル通知）は発行されず、システムＢＩＯＳによるＣＰＵ１１の省電力制御は実行されない。一方、省電力ドライバ１０３を含む全ての省電力ドライバによってシステムアイドルがキャンセルされなかった場合には、ＯＳ１５からシステムＢＩＯＳへパワーセーブ要求（システムアイドル通知）が発行される。この場合、システムＢＩＯＳは、ストップクロック制御ロジック１３を用いてＣＰＵ１１の動作速度を低下させ、システム状態を省電力モードへ移行させる。
【００３４】
図４には、赤外線ポートを介した通信状態と省電力モードの許可／禁止制御との関係が示されている。
前述したように、９６００ｂｐｓで相手局発見および認識のためのポーリングや接続制御などを行っているＮＤＭの期間は、システムアイドルはキャンセルされず、ＯＳ１５によるシステムアイドル状態の検出に応じてシステム状態は省電力モードに移行する。一方、折衝によって決められた、９６００ｂｐｓよりも高速の通信速度で実際のデータ通信を行っているＮＲＭの期間は、システムアイドルはキャンセルされ、ＯＳ１５によってシステムアイドル状態が検出されても、省電力モードへの移行は禁止される。
【００３５】
次に、図５のフローチャートを参照して、省電力ドライバ１０３による省電力制御処理の流れを説明する。
前述したように、ＯＳ１５がシステムアイドルを検出すると（ステップＳ１０１）、システムアイドルのコールバックによって省電力ドライバ１０３が呼び出される。省電力ドライバ１０３は、まず、通信モードモニタードライバ１０４を用いて通信モードレジスタ２１をリードし、現在の通信モードがＮＲＭであるか否かを判別する（ステップＳ２０１，Ｓ２０２）。ＮＲＭであれば、もし省電力モードに移行すると実行中の通信パフォーマンスに影響を与えると判断し、省電力ドライバ１０３は、システムアイドルをキャンセルするための戻り値をＣＰＵのステータスレジスタなどにセットし（ステップＳ２０３）、そしてＯＳにリターンする。一方、ＮＤＭであれば、ステップＳ２０３を実行せずに、ＯＳにリターンする。
【００３６】
なお、現在の通信モードの判別は、図６に示すように、通信プロトコルドライバ１０１に現在の通信モードを問い合わせ（ステップＳ２１１）、それに対する応答を用いて判別することもできる（ステップＳ２１２）。この場合も、ＮＲＭであれば、システムアイドルをキャンセルするための戻り値がＣＰＵのステータスレジスタなどにセットされ（ステップＳ２１３）、省電力モードへの移行が禁止される。また、システムアイドルを受けた時に問合わせるのではなく、通信モードが変る毎にそれを通信モードモニタードライバに通知されるようにし、これを保持しておくことも可能である。
【００３７】
次に、図７のフローチャートを参照して、省電力ドライバ１０３による省電力制御処理の第２の例を説明する。
ＯＳ１５からのシステムアイドルのコールバックを受けると、省電力ドライバ１０３、まず、通信モードモニタードライバ１０４を用いて速度設定レジスタ２２をリードし（ステップＳ２２１）、デバイスドライバ１０２などによって折衝によって決められた現在の通信速度の値を速度設定レジスタ２２から検出する。そして、その通信速度がＮＤＭ用の９６００ｂｐｓであるか否かを判別し（ステップＳ２２２）、９６００ｂｐｓよりも現在の通信速度の設定が高速であった場合には、省電力ドライバ１０３は、実際のデータ通信が実行されている状態（ＮＲＭ）であると認識し、システムアイドルをキャンセルするための戻り値をＣＰＵのステータスレジスタなどにセットし（ステップＳ２２３）、そしてＯＳにリターンする。一方、現在の通信速度が９６００ｂｐｓであった場合には、ステップＳ２２３を実行せずに、ＯＳにリターンする。
【００３８】
なお、現在の通信速度の判別は、図８に示すように、通信プロトコルドライバ１０１に現在の通信速度を問い合わせ（ステップＳ２３１）、それに対する応答を用いて判別することもできる（ステップＳ２３２）。この場合も、ＮＲＭであれば、システムアイドルをキャンセルするための戻り値がＣＰＵのステータスレジスタなどにセットされ（ステップＳ２３３）、省電力モードへの移行が禁止される。また、システムアイドルを受けた時に問合わせるのではなく、通信速度が変わる毎に通信速度モニタードライバにそれが通知されるようにし、これを保持しておくことも可能である。
【００３９】
次に、図９を参照して、省電力ドライバ１０３による省電力制御処理の第３の例を説明する。
ここでは、赤外線ポート１９を介してＰＣ本体と赤外線通信を行う周辺装置として、ジョイスティック１０１、マウス１０２、デジタルビデオ／スチルカメラ１０３、およびリモコンユニット１０４が例示されている。ジョイスティック１０１、マウス１０２、デジタルビデオ／スチルカメラ１０３は、リアルタイム性が要求されるデータ通信をＰＣ本体との間で行うデバイスであり、ＰＣ本体との折衝で受け渡すパラメータによって決めたリアルタイム転送のための所定の通信手順あるいは転送速度で、ＰＣ本体にデータを送信する。これに対し、リモコンユニット１０４は、ＰＣの電源オン／オフや特定のキー操作などに対応するコマンド送信などのＰＣ操作用の制御データを送信するためのものであり、そのデータ通信にはリアルタイム性は要求されない。
【００４０】
本実施形態では、図１０（ａ）に示されているように、ジョイスティック１０１、マウス１０２、デジタルビデオ／スチルカメラ１０３などのデバイスとの間でリアルタイム性が要求されるモードでデータ通信を行っている期間中は、システムアイドルはキャンセルされ、ＯＳ１５によってシステムアイドル状態が検出されても、省電力モードへの移行は禁止される。また、図１０（ｂ）に示されているように、リモコンユニット１０４などのデバイスとの間でリアルタイム性が要求されないモードでデータ通信を行っている期間中は、システムアイドルはキャンセルされず、ＯＳ１５によるシステムアイドル状態の検出に応じてシステム状態は省電力モードに移行する。
【００４１】
次に、図１１のフローチャートを参照して、省電力ドライバ１０３による省電力制御処理の流れを説明する。
前述したように、ＯＳ１５がシステムアイドルを検出すると（ステップＳ１０１）、システムアイドルのコールバックによって省電力ドライバ１０３が呼び出される。省電力ドライバ１０３は、まず、Ｉ／Ｏレジスタ２０にデバイスドライバなどによって設定されているパラメタをリードしたり、あるいは通信プロトコルドライバに問い合わせることにより、現在実行中のデータ通信がリアルタイム性が要求されるリアルタイム転送モードであるか否かを判別する。なお、この判別は、例えばリアルタイム性が要求されるデバイス一覧を予め用意しておき、ＯＳなどから現在通信中のデバイス名を取得し、そのデバイスがデバイス一覧にあるか否かを調べることによっても行うことができる。
【００４２】
このようにして、現在実行中のデータ通信がリアルタイム性が要求されるリアルタイム転送モードであること、言い換えればリアルタイム性が要求されるデバイスとの通信中であることが検出されると（ステップＳ２４１，Ｓ２４２のＹＥＳ）、省電力ドライバ１０３は、システムアイドルをキャンセルするための戻り値をＣＰＵのステータスレジスタなどにセットし（ステップＳ２４３）、そしてＯＳにリターンする。これにより、省電力モードへの移行は禁止される。一方、現在実行中のデータ通信がリアルタイム性が要求されるリアルタイム転送モード以外の他のモードであること、言い換えればリアルタイム性が要求されないデバイスとの通信中であれば、ステップＳ２４２を実行せずに、ＯＳにリターンする。
【００４３】
これにより、実際にデータ通信が行われている期間中であっても、リアルタイム性が要求されないデータ通信モードにおいては省電力モードに移行できるようになり、省電力性を高めることができる。
【００４４】
なお、以上の説明では、ＩｒＤＡによる赤外線通信を例示して説明したが、各種無線通信のように帯域を共有のため等の理由で制御用の手順（コントロール）と実際のデータ通信用手順（データ）とが時分割で行われる通信プロトコルや、制御用の手順での通信速度よりも高速の通信速度でデータ通信が行われる通信プロトコルを用いたもの、あるいはリアルタイム転送用の非同期転送モードと通常の同期転送モードを持つ通信プロトコルを用いたものであれば、他の各種無線通信や有線通信にも適用することができる。
【００４５】
また、省電力モード時のＣＰＵ１１の動作制御としては、前述したストップクロック制御の代わりに、ＣＰＵに動作停止（ＨＡＬＴ）命令を実行させたり、あるいはＣＰＵ１１の電源をオフするなどの制御を行っても良い。
【００４６】
また、省電力ドライバ１０３として機能するコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録しておき、そのコンピュータプログラムを記録媒体を通じて通常のＰＣに導入すれば、それだけで本実施形態と同様の効果を得ることが可能になる。なお、省電力ドライバ１０３は通信コントローラ１８のデバイスドライバの一部として実現したり、あるいはＯＳの拡張モジュールの一部として実現するなど、様々な形態で実現できる。
【００４７】
【発明の効果】
以上のように、本発明によれば、通信プロトコルの特徴に準拠した制御を行うことにより、効率的に省電力を行うと同時にスループットの低下を防ぐことが可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係るコンピュータシステムの構成を示すブロック図。
【図２】同実施形態で用いられる赤外線ポートの制御に関するドライバの構成例を示す図。
【図３】同実施形態で用いられるＯＳ、省電力ドライバ、およびシステムＢＩＯＳの関係を模式的に示す図。
【図４】同実施形態における赤外線ポートを介した通信状態と省電力モードの許可／禁止制御との関係を示す図。
【図５】同実施形態における省電力制御処理の第１の手順を説明するためのフローチャート。
【図６】同実施形態における省電力制御処理の第１の手順の他の例を説明するためのフローチャート。
【図７】同実施形態における省電力制御処理の第２の手順を説明するためのフローチャート。
【図８】同実施形態における省電力制御処理の第２の手順の他の例を説明するためのフローチャート。
【図９】同実施形態に係るコンピュータシステムと通信する外部装置の種類を説明するための図。
【図１０】同実施形態におけるリアルタイム通信モードとそれ以外の通信モードそれぞれにおける省電力制御の様子を示す図。
【図１１】同実施形態における省電力制御処理の第３の手順を説明するためのフローチャート。
【符号の説明】
１１…ＣＰＵ
１２…ＣＰＵバスブリッジ
１３…ストップクロック制御ロジック
１４…主メモリ
１５…ＯＳ
１６…ドライバ
１７…ＢＩＯＳ−ＲＯＭ
１８…通信コントローラ
１９…赤外線通信ポート
２０…Ｉ／Ｏレジスタ群
２１…通信モードレジスタ
２２…速度設定レジスタ
１０１…通信プロトコルドライバ
１０２…デバイスドライバ
１０３…省電力ドライバ
１０４…通信モードモニタドライバ
【図１】
0004037529.tif 000002
【図２】
0004037529.tif 000003
【図３】
0004037529.tif 000004
【図４】
0004037529.tif 000005
【図５】
0004037529.tif 000006
【図６】
0004037529.tif 000007
【図７】
0004037529.tif 000008
【図８】
0004037529.tif 000009
【図９】
0004037529.tif 000010
【図１０】
0004037529.tif 000011
【図１１】
0004037529.tif 000012