説明

コンピュータがウエイク・アップする方法およびコンピュータ

【課題】待機電力を抑制しながら短時間でウエイク・アップする方法を提供する。
【解決手段】コンピュータはタイマと、RTCを含みRTCウエイク・アップを実行するRTC機能ブロックを備える。S3ステートでウエイク・アップ時刻t1を設定する。S3ステートでRTCから取得した現在の時刻からウエイク・アップ時刻の前までの時間に相当する満了時間値h4をタイマに設定する。タイマに計時動作をさせRTC機能ブロックの電力を停止して通常S4ステートに遷移する。通常S4ステートでタイマが計時した経過時間が満了時間値に到達した時刻t2でRTC機能ブロックに電力を供給する。RTC機能ブロックは、RTCウエイク・アップの機能によりカレンダ時刻に基づいてウエイク・アップ時刻でウエイク・アップさせる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータの待機電力を低減する技術に関し、さらに詳細には、復帰時間の短縮を図りながら待機電力を低減する技術に関する。
【背景技術】
【0002】
近年、ノートブック型またはタブレット型の携帯式コンピュータの用途が拡大し、さまざまな場所で必要なときに短時間で起動できることが求められている。一方、携帯式コンピュータは電池を電力源にするために、待機中は消費電力(待機電力)が小さいことが求められる。一般的に電子機器は待機電力を低減するほど起動時間または復帰時間(latency)が長くなる。特に筐体が薄いタブレット型の携帯式コンピュータでは、十分な容量の電池を搭載することが困難であるため、起動時間の短縮と待機電力の低減を両立することが一層重要な課題になってきている。
【0003】
ACPIの規格に適合するコンピュータは、パワー・オン状態のS0ステート、スリーピング・ステート、S5ステート(ソフト・オフ状態ともいう。)およびG3メカニカル・オフ・ステートを有する。ここに、スリーピング・ステートは、S1ステートからS4ステートまで定義されているが、順番に待機電力が小さくなる。スリーピング・ステート(S1ステート〜S4ステート)とS5ステートはプロセッサが動作しないためこれを待機状態ということにする。また、S4ステートとS5ステートは待機電力がともに最小であり、これをパワー・オフ状態ということにする。なお、G3ステートでは待機電力を消費しない。
【0004】
S3ステートはサスペンド状態といわれ、S4ステートはハイバネーション状態といわれている。本明細書においては、待機状態のパワー・ステートであるS1ステートからS5ステートまでの各ステートについて、番号の大きいパワー・ステートを深いパワー・ステートといい番号の小さいパワー・ステートを浅いパワー・ステートということにする。この定義によれば、パワー・ステートが浅いほど待機電力は大きくかつ起動時間は短くなる。
【0005】
コンピュータがS5ステートからS0ステートに復帰するときには、BIOSがPOSTという作業を行って各デバイスの試験および初期化をするために一定の時間が必要になる。これに対して、コンピュータをS3ステートからS0ステートに復帰させるときにはPOSTを省略できるので短時間で起動することができる。最近ではさまざまな工夫によりS3ステートの待機電力が低減してきたこともあり、ユーザは使用が終わるとS3ステートで待機させる傾向が増加してきている。しかし、携帯式コンピュータを常にS3ステートで待機させると依然として電池容量を十分に確保できないという問題が残る。
【0006】
特許文献1は、ユーザがコンピュータを使用する予想使用時刻を過去の使用履歴から予測して、待機状態において、予想使用時刻よりも先により浅いパワー・ステートに遷移させて短時間で復帰できるようにする発明を開示する。この発明によれば、たとえば待機電力の小さいS5ステートと復帰時間が短いS1ステートを利用して、復帰時間と待機電力の両立を図ることができる。同文献にはアプリケーションの動作が停止するS5ステートにおいてS1ステートに遷移させる時刻を認識するために、時刻情報をRTCから取得することが記載されている。
【0007】
特許文献2は、バッテリィを備えたコンピュータ装置が、AC電源が存在しかつシャットダウンしているときの待機電力を削減する発明を開示する。この発明によればパワー・オフ中に充電機能を維持するために必要なM電源系統をオフにすることで待機電力を低減するとともに、自然放電によるバッテリィの充電の要否を判断するために、ゲート・アレイ回路に設けたタイマで計測した所定の時間後にM電源系統をオンにする。特許文献3は、CPUに内蔵されアクセス・スピードの速いRTCと、CPUの外部に設けられ精度の高いRTC−ICとを備えた情報処理装置において、内蔵するRTCとRTC−ICが協働して動作することで低消費電力と性能低下の抑制を図る技術を開示する。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】米国特許第6654895号公報
【特許文献2】特開2004−192350号公報
【特許文献3】特開2003−271263号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
ところで、コンピュータはユーザが起動ボタンを押下することで起動したり、システムが生成した信号または外部から受け取った信号に応じて自動的にパワー・オフ状態からパワー・オン状態に復帰したりする。本明細書では、後者による復帰をウエイク・アップという。ウエイク・アップには、ネットワークからの信号を利用するLANウエイク・アップおよびコンピュータの時計を利用するRTCウエイク・アップなどがある。
【0010】
RTCウエイク・アップにはコンピュータに実装されたRTCチップとRTCメモリが利用される。RTCチップは、システムにカレンダ時刻を提供するRTC(Real Time Clock)といわれる半導体チップである。RTCチップはコンピュータの時刻情報を生成するためいかなるパワー・ステートのときにも動作する必要がある。したがって、RTCチップには、システム・デバイスに電力を供給する電力源とは異なる専用のバックアップ電池から電力が供給される。
【0011】
バックアップ電池としては通常マザーボードに実装されたボタン電池が使用される。RTCメモリはRTCチップと組になって動作して、カレンダ時刻を記憶したりアラームを設定したりする役割を果たす。RTCメモリは電力を停止するだけで記憶内容を消去できるなどの理由で通常はSRAMのような揮発性のメモリで構成され、RTCチップと同じバックアップ電池から電力の供給を受けて動作する。従来は、このバックアップ電池から、BIOSの設定情報を記憶するCMOSメモリにも電力を供給していた。
【0012】
特許文献1に記載された発明では、待機状態において予想使用時刻の前に深いパワー・ステートからより浅いパワー・ステートに遷移させるためには、深いパワー・ステートにおいてカレンダ時刻を取得するために、RTCチップから時刻情報を取得する必要がある。近年の携帯式コンピュータでは、RTCチップおよびRTCメモリがシステムのさまざまな機能を含むチップ・セットに組み込まれるようになり、また、RTCメモリにはBIOSの設定情報なども記憶されるようになってきた。
【0013】
その理由は、チップ・セットは、微細なシリコン・プロセスで製作されるためダイの余分なスペースにRTCを容易に組み込むことができ、かつ、微細プロセスであるため消費電力が少なくボタン電池の消耗を抑えることができる点にある。また、RTCメモリは、時刻情報だけでなくシステムの設定情報も記憶するようになってきているため、RTCを同じチップ・セットに設けた方が、BIOSやME(Management Engine)などからのアクセスを容易にできるとう理由もある。
【0014】
RTCチップをチップ・セットに組み込むと、待機状態においてパワー・ステートを遷移させてRTCウエイク・アップを実現するために、少なくともチップ・セットの一部に電力を供給する必要があり、チップ・セットのRTCに関係のない機能ブロックおよびその電力源としてのDC/DCコンバータの損失が待機電力として消費される。特許文献2では、待機状態のときにICHに組み込まれたRTCではなくゲート・アレイ回路に組み込まれたタイマがM電源系統をオンにするために時間を計測しているが、RTCウエイク・アップには時刻情報が必要になるためタイマだけではRTCウエイク・アップに対応できない。
【0015】
コンピュータに待機状態で動作させる専用のRTCチップを設けて、待機状態で所定の時刻にパワー・ステートの遷移をさせる方法もあるが、精度の高い発振子を含むRTCチップを追加的に設けることはコスト面およびスペース面で得策ではない。また、ゲート・アレイ回路やその他の待機状態で動作するデバイスに精度の高いRTCを組み込むことも同様の理由で得策ではない。ここに、待機電力の低減と復帰時間の短縮というパワー・ステートに対する相反する課題を解決する必要が生じてくる。
【0016】
そこで本発明の目的は、待機電力の低減とウエイク・アップ時間の短縮を図ることが可能なコンピュータを提供することにある。さらに本発明の目的はそのようなコンピュータにおけるウエイク・アップの方法を提供することにある。
【課題を解決するための手段】
【0017】
所定のカレンダ時刻でコンピュータがより浅いパワー・ステートにウエイク・アップするには、深いパワー・ステートにおいて当該カレンダ時刻にウエイク・イベントを生成する必要がある。ウエイク・イベントの生成には、リアル・タイム・クロック(RTC)が生成するカレンダ時刻を利用することが通常であるが、RTCの利用には比較的大きな待機電力を消費する。本発明では、浅いパワー・ステートにおいてRTCと計時回路の連携動作または計時回路の動作だけでウエイク・イベントを生成することで待機電力の低減を図る。
【0018】
本発明の第1の態様は、カレンダ時刻を計時するRTCと経過時間を計時する計時回路を備える。コンピュータには、第1のパワー・ステートから第2のパワー・ステートにウエイク・アップする時刻に相当するウエイク・アップ時刻が設定される。ウエイク・アップは、第1のパワー・ステートから第2のパワー・ステートに遷移する動作である。第1のパワー・ステートは待機電力が小さくパワー・オン状態までの復帰時間が長い深いパワー・ステートとすることができる。あるいは、第1のパワー・ステートはパワー・オフ状態とすることができる。さらに、パワー・オフ状態はハイバネーション状態とすることができる。
【0019】
第2のパワー・ステートは待機電力が大きくパワー・オン状態までの復帰時間が短い浅いパワー・ステートとすることができる。あるいは第2のパワー・ステートはサスペンド状態とすることができる。第1のパワー・ステートからサスペンド状態に遷移する際には一時的にパワー・オン状態を経由して遷移する。さらに第2のパワー・ステートはパワー・オン状態とすることができる。
【0020】
計時回路には、第1のパワー・ステートに遷移する前にRTCから取得した現在の時刻からウエイク・アップ時刻の前までの時間に相当する第1の満了時間値が設定される。そして計時回路に供給する電力を維持しながら第1のパワー・ステートに遷移する。計時回路はRTCのカレンダ時刻に関連付けられた経過時間を計時するために、ウエイク・アップ時刻の前に第1の満了時間値に到達する。第1のパワー・ステートで計時回路が計時した経過時間が第1の満了時間値に到達したときにリアル・タイム・クロックが生成するカレンダ時刻が計時したウエイク・アップ時刻でウエイク・アップする。
【0021】
本発明によれば、パワー・オフ状態の大部分の時間帯では計時回路が動作し、RTCを利用してウエイク・アップを実現する回路はウエイク・アップ時刻の直前の短い時間帯で動作させることができる。計時回路に大きな誤差があるとしてもウエイク・アップ時刻の前に第1の満了時間値に到達させてウエイク・アップを実現する回路を動作させればカレンダ時刻に基づいてウエイク・アップさせることができる。計時回路が動作している間にRTCが計時動作をしていてもウエイク・アップを実現する回路に電力を供給する必要がないため待機電力を低減できる。
【0022】
計時回路の誤差は、第1の満了時間値に対応する時刻とウエイク・アップ時刻の差の時間として現れる。その差の時間ではウエイク・アップを実現する回路に電力を供給することになるが、計時回路を利用することで大部分の時間帯では当該回路の電力を停止できる。したがって、計時回路にはある程度の誤差を許容できるため消費電力の小さいハードウエアで構成することができる。ただし、計時回路の誤差が少ないほどウエイク・アップを実現する回路に電力を供給する時間を短くできるので、第1の満了時間値を設定する直前に計時回路を校正することが望ましい。
【0023】
計時回路の校正は、RTCまたはクロック・ジェネレータのクロックを利用して短時間で行うことができる。計時回路は、リング発振器を使用したハードウエアで校正することができる。リング発振器を使用した計時回路の精度は温度依存性が高い。この場合、校正をサスペンド状態で実行すると、実際の計時動作をする温度環境に近い状態で校正できるため計時回路の精度をより向上することができる。
【0024】
RTCは、RTCを利用したRTCウエイク・アップ機能を実現するRTC機能ブロック備えるチップ・セットに組み込み、第1のパワー・ステートでRTC機能ブロックの電力を停止することができる。RTC機能ブロックがRTCウエイク・アップをする際には、計時回路が計時した経過時間がウエイク・アップ時刻の前に第1の満了時間値に到達したことに応答してRTC機能ブロックに電力を供給する。そしてRTC機能ブロックは、RTCが生成する現在の時刻がウエイク・アップ時刻に到達したときにコンピュータをウエイク・アップさせることができる。
【0025】
計時回路の誤差を小さくするために、計時回路の校正と満了時間値の設定を複数回繰り返すことができる。具体的には、第1のパワー・ステートにおいて計時回路が所定の経過時間を計時したことに応答して、RTC機能ブロックに電力を供給する。RTC機能ブロックに電力が供給されたときに計時回路を校正し、校正された計時回路にRTCから取得した校正直後の時刻からウエイク・アップ時刻の前までの時間に相当する第2の満了時間値を設定しその後RTC機能ブロックの電力を停止する。計時回路は第2の満了時間値までの計時動作を開始する。第1のパワー・ステートで計時回路が計時した経過時間が第2の満了時間値に到達したときにRTC機能ブロックに電力を供給する。電力が供給されたRTC機能ブロックは、現在の時刻がウエイク・アップ時刻に到達したときにコンピュータをウエイク・アップさせることができる。
【0026】
本発明の第2の態様では、現在時刻のウエイク・アップ時刻への到達をRTCではなく計時回路が判断する。計時回路が計時した経過時間が満了時間値に到達したときにウエイク・アップさせる。この場合満了時間値としては、リアル・タイム・クロックから取得した現在の時刻からウエイク・アップ時刻までの時間に相当する時間を設定する。この場合でも、パワー・オフ状態に遷移する前に計時回路を校正して精度を向上させることで、設定したウエイク・アップ時刻に対する満了時間値までの経過時間の誤差を抑えることができる。
【発明の効果】
【0027】
本発明により、待機電力の低減とウエイク・アップ時間の短縮を図ることが可能なコンピュータを提供することができた。さらに本発明によりそのようなコンピュータにおけるウエイク・アップの方法を提供することができた。
【図面の簡単な説明】
【0028】
【図1】本実施の形態にかかるノートPCの主要な構成を示す概略の機能ブロック図である。
【図2】パワー・ステートとDC/DCコンバータの動作関係を示す図である。
【図3】SSMウエイク・アップの実行に伴うパワー・ステートの遷移を示す全体図である。
【図4】SSMウエイク・アップの実行に伴うパワー・ステートの遷移を示す詳細図である。
【図5】SSMウエイク・アップの実行手順を示すフローチャートである。
【図6】SSMウエイク・アップの実行に伴うパワー・ステートの他の遷移を示す詳細図である。
【図7】SSMウエイク・アップにおける消費電力の変化を説明する図である。
【発明を実施するための形態】
【0029】
[ノートPCの構成]
図1は、ノートブック型パーソナル・コンピュータ(以下、ノートPCという。)10の主要な構成を示す概略の機能ブロック図である。中央制御部11は、CPU13、メモリ・コントローラ・ハブ(MCH)14、およびメイン・メモリ15などのハードウエアと、メイン・メモリ15に読み出されてCPU13で実行される、OS16、BIOS17およびスリープ・ステート・マネジメント(SSM)プログラム18などのソフトウエアで構成される。ここに、SSMとは、待機状態におけるノートPC10のパワー・ステートを制御する技術をいう。
【0030】
ノートPC10は、ACPIの規格に適合しており、G0ステート、G1ステート、G2ステート、およびG3ステートの4つのグローバル・システム・ステートに遷移することができる。G0ステートはパワー・ステートとしてのS0ステートに相当し、CPU11はアプリケーション・プログラムを実行できる状態となり、周辺デバイスは電力が供給されるが独自の機能に基づいて省電力動作をする。本明細書ではこの状態をパワー・オン状態という。G1ステートはスリーピング・ステートともいわれ、パワー・ステートとしてのS1ステートからS4ステートに相当する。このなかでノートPC10にはS3ステートとS4ステートが定義されている。
【0031】
S3ステートはサスペンド状態ともいわれ、メイン・メモリ15の記憶を保持するために必要なデバイスの電源を除いてほとんどのデバイスの電源が停止する。S4ステートは、ハイバネーション状態ともいわれ、システムのコンテキストがHDD22に記憶されてほとんどのデバイスの電源が停止する。G2ステートはソフト・オフともいわれるパワー・ステートとしてのS5ステートに相当し、システムのコンテキストをHDD22に記憶しないでほとんどのデバイスの電源が停止する。G3ステートは、メカニカル・オフ・ステートともいわれ、ボタン電池25を除いてノートPC10の一切の電源は停止する。
【0032】
ノートPC10がS3ステート、S4ステート、またはS5ステートに遷移している状態は待機状態に相当する。待機状態では待機電力を消費する。S3ステートはS0ステートまで遷移する時間が短いが待機電力は大きい。これに比べてS4ステートは遷移する時間は長いが待機電力は小さい。S5ステートは待機電力が最も小さいが起動するときに最初からブートが実行されS5ステートに遷移する前のS0ステートの状態に復帰することはできない。
【0033】
短時間でS0ステートに遷移できる利便性に着目すると、待機状態としてS3ステートを利用することが望ましい。SSMプログラム18は、コンピュータ10がユーザの利用態様に応じてS3ステートとS0ステートを遷移するときの履歴を所定期間記録して、比較的長い時間S3ステートに遷移している曜日ごとの平均的な時間帯を計算する。そのような時間帯を長スリープ時間帯(LST)ということにする。LSTは、ユーザがその生活のリズムの中でノートPC10を使用する可能性が低い時間帯に相当する。
【0034】
LSTはたとえば、月曜日から木曜日では毎日21:00に開始し、翌日の9:00に終了する時間帯であったり、金曜日では21:00に開始して翌週の月曜日の9:00に終了する時間帯であったりする。本明細書ではLSTの開始時刻をLST開始時刻といい、LSTが終了する時刻をLST終了時刻といい、両者を含めてLST時刻ということにする。SSMプログラム18は、ユーザがLST時刻を設定するための画面をLCD19に表示する。ユーザはSSMプログラム18を通じてLST時刻を設定することができる。
【0035】
ICH21は、周辺入出力デバイスに関するデータ転送を処理する。ICH21は、USB(Universal Serial Bus)、SATA(Serial AT Attachment)、SPI (Serial Peripheral Interface)バス、 PCI(Peripheral Component Interconnect)バス、PCI−Express(PCIe)バス、およびLPC(Low Pin Count)バスなどのインターフェースを備え、それらに対応したデバイスを接続することができる。
【0036】
図1では、SATAポートに接続されたHDD22とLPCポートに接続されたエンベデッド・コントローラ(EC)31を示している。ICH21はさらに、RTC23、RTCメモリ24およびクロック・ジェネレータ27を含んでいる。RTC23はシステムが使用するカレンダ時刻を生成するための計時動作をする。カレンダ時刻とは、年、月、日、時、分、秒というようなカレンダ上のある1点の時刻を示す情報をいう。
【0037】
RTCメモリ24はRTC23の計時動作に基づいて生成されたカレンダ時刻を記憶する。OS16は、ネットワークを通じて取得した標準時刻で定期的にRTCメモリ24が記憶するカレンダ時刻を補正することができる。RTCメモリ24に記憶されたカレンダ時刻はシステムに提供され、ファイルのタイム・スタンプやスケジュール管理などに利用される。RTCメモリ24には、BIOS17またはOS16が設定したハードウエアの設定情報およびパスワードならびにインテル社のAMT(Active Management Technology )に関する設定情報などのデータも格納する。
【0038】
RTC23およびRTCメモリ24はICH21に電力が供給されるときはその電力で動作するが、ICH21に電力が供給されないときはボタン電池25から供給された電力で動作するため、ノートPC10がいかなるパワー・ステートに遷移していてもカレンダ時刻の生成が停止することはない。ICH21は、周知のRTCウエイク・アップ機能を備えている。
【0039】
RTCウエイク・アップ機能は、ICH21がRTCメモリ24のカレンダ時刻を利用してRTCメモリ24に設定されたLST終了時刻でパワー・ステートをS3ステートからS0ステートに遷移させたり、S4ステートからS3ステートまたはS0ステートに遷移させたりすることをいう。ICH21のRTCウエイク・アップ機能を利用してこれまでの方法でS4ステートからS3ステートまたはS0ステートに遷移させるためには、S4ステートにおいてRTCウエイク・アップを行うために必要なICH21の機能ブロック(以下、RTC機能ブロック26という。)に電力を供給する必要がある。この場合、S4ステートでRTC機能ブロック26に電力を供給すると待機電力が増加する。本実施の形態では後に説明するように、S4ステートでRTC機能ブロック26に電力を供給しないでウエイク・アップを行う。
【0040】
クロック・ジェネレータ27は、一例として精度の高い32K水晶振動子と発振回路で構成され、コンピュータ10のデバイスが使用するシステム・クロックを生成する。クロック・ジェネレータ27は、タイマ36を校正するためのシステム・クロックをEC31に供給する。クロック・ジェネレータ27がEC31にシステム・クロックを供給するために動作するICH21の機能ブロックをクロック機能ブロック28という。ICH21は、機能ブロックごとに電力を供給することができる。他の例ではクロック・ジェネレータ27は、ICH21から独立した半導体チップで形成し、電力をICH21から独立して供給するようにしてもよい。HDD22は、OS16、BIOS17、およびSSMプログラム18を格納する。
【0041】
EC31は、CPU、ROM、EEPROM、DMAコントローラ、割り込みコントローラ、およびタイマなどで構成されたマイクロ・コンピュータであり、さらにA/D入力端子、D/A出力端子、SMバス・ポート、SPIバス・ポート、およびディジタル入出力端子を備えている。EC31はCPU11からは独立して動作し、ノートPC10に実装されるデバイスに供給する電力をパワー・ステートに応じて制御したり、システム筐体の内部の温度を管理したりする。
【0042】
EC31のEEPROM32には、EC31のCPUが実行するプログラムが格納されている。そのプログラムは後に説明する本発明のSSMウエイク・アップを実現するコードを含む。EEPROM32には、SSMビット、遷移ビット、原因ビット、LST時刻、LSTビット、ウエイク・ビット、およびACビットが記憶される。
【0043】
SSMビットは、SSMウエイク・アップをイネーブルに設定するためにSSMプログラム18が提供するインターフェースを通じてユーザが設定する。SSMビットが設定されたときは、SSMウエイク・アップによりS4ステートからS0ステートまたはS4ステートから一時的にS0ステートを経由してS3ステートに遷移し、SSMビットが設定されていないときはRTC機能ブロック26によるRTCウエイク・アップによりS3ステートからS0ステートへ遷移する。SSMビットが設定されたときの本実施の形態にかかるウエイク・アップをRTCウエイク・アップと区別するためにSSMウエイク・アップということにする。
【0044】
遷移ビットはパワー・ステートがS0ステートに遷移するときの遷移元のパワー・ステートを示しS5ステート、S4ステート、またはS3ステートを区別するビットとして記憶される、遷移ビットはS0ステートに遷移する際にCPU13が参照する。EC31は、システムが待機状態に遷移する際に遷移先のパワー・ステートの情報を中央制御部11またはPMC回路33から受け取ってEEPROM32に遷移ビットとして記憶し、S0ステートに遷移したときに当該ビットをリセットする。
【0045】
原因ビットは、パワー・ステートが遷移するときの原因を示す情報で、LANウエイク・アップの実行に関するビット、RTCウエイク・アップの実行に関するビット、SSMウエイク・アップの実行に関するビット、パワー・ボタン51の押下を示すビットおよびリッド・センサ53の動作を示すビットを区別する。LST時刻は、SSMプログラム18によって設定される。LSTビットは、現在のカレンダ時刻がLSTに入っているときにICH21によって設定される。ウエイク・ビットは、タイマ36がカウント終了信号を出力したときにPMC回路33の制御回路35により設定されSSMウエイク・アップのイベントとして使用される。ACビットは、AC/DCアダプタ43が接続されてノートPC10がAC供給の状態であることを示す。
【0046】
CPU13は、待機状態のときに電力が供給されて動作を開始する際に、EEPROM32を参照して、それらの状態に応じたプログラムを実行する。EC31は、PMC回路33に組み込まれたタイマ36をクロック・ジェネレータ27のシステム・クロックを基準にして校正する。EC31は、EEPROM32に設定されたLST時刻に基づいて、タイマ36を利用してSSMウエイク・アップを行う。EC31は、SMバスで電池パック49に接続され、SPIバスでPMC回路33に接続されている。
【0047】
AC/DCアダプタ43は、一次側が商用電源のアウトレットに接続され、二次側がノートPC10の筐体に接続される。AC/DCアダプタ43は交流電圧を直流電圧に変換してDC/DCコンバータ71〜77に電力を供給し、さらに充電器45に電力を供給して電池パック49を充電することができる。AC/DCアダプタ43の出力には電圧検出器47が接続されている。電圧検出器47は、AC/DCアダプタ43の出力に所定の範囲の電圧が発生していることを示す電圧検出信号をPMC回路33に出力する。
【0048】
電池パック49は、AC/DCアダプタ43が接続されていないときにDC/DCコンバータ71〜77に電力を供給するノートPC10の電力源となる。DC/DCコンバータ71〜77に対する電力源がAC/DCアダプタ43の場合をAC供給といい、電池パック49の場合をDC供給ということにする。電池パック49はAC供給のときに、AC/DCアダプタ43が供給する電力で充電器45により充電される。
【0049】
PMC回路33はNAND回路およびNOR回路などの論理回路、単体のトランジスタ、および抵抗やコンデンサのような受動素子などで構成されたASIC(Application Specific Integrated Circuit)で製作され、制御回路35、タイマ36、レジスタ37〜40を含んでいる。PMC回路33は、ハードウエア回路だけで構成されプロセッサは含まないため消費電力は極わずかである。PMC回路33には、電圧検出器47、EC31、DC/DCコンバータ73〜77の制御回路、筐体に設けられユーザがノートPC10を起動するために押下するパワー・ボタン51、および筐体の蓋の開閉を検知するリッド・センサ53が接続されている。
【0050】
制御回路35は、EC31からの指示、パワー・ボタン51の押下信号、またはリッド・センサ53の動作信号に基づいてDC/DCコンバータ73〜77の動作を制御したり、電力源をAC/DCアダプタ43と電池パック49との間で切り換えたりする。制御回路35はタイマ36からSSMウエイク・アップを実行するためのカウント終了信号を受け取るとEEPROM32のウエイク・ビットを設定する。タイマ36はEC31により設定されたカウント設定値に基づいて待機状態で計時動作をしてSSMウエイク・アップを実行するためのカウント終了信号を出力する。タイマ36は、リング発振器と計算回路で構成されているため、PMC回路33は、タイマ36を組み込んでも消費電力がほとんど増加しない。
【0051】
リング発振器は奇数個のインバータをリング状に接続して構成され、インバータの段数で決定される発振周波数のパルス信号を生成する。計算回路はリング発振器が生成したパルス信号をカウントするカウンタ、EC31がカウンタのカウント設定値を設定する設定回路、キャリー・ビットを処理するキャリー・ビット回路、および設定回路に設定されたカウント数がカウントされたときに制御回路35にカウント終了信号を出力する出力回路を含む。
【0052】
タイマ36は、設定回路にカウント設定値が設定されるとカウンタが動作を開始し、カウント値がカウント設定値に到達したときに出力回路がカウント終了信号を出力する。リング発振器は、インバータの遅延時間が浮遊容量、負荷容量、および抵抗などの個体の特質や温度により変化するために精度が低い。たとえば、10KHzの発振周波数のときに誤差は±50%程度にまで達することがある。
【0053】
したがって、タイマ36だけではSSMウエイク・アップの利用に必要な精度の時間を計測することができない場合があるため、本実施の形態ではEC31がタイマ36を動作させる直前にシステム・クロックで校正する。レジスタ37には、EC31がEEPROM32に記憶した遷移元のパワー・ステートを記憶する。制御回路35は、パワー・ボタン51の押下があったときまたはリッド・センサ53が動作したときにレジスタ37を参照してDC/DCコンバータ73〜77の動作を制御する。
【0054】
レジスタ38は、パワー・ボタン51の押下またはリッド・センサ53の動作があったときにその起動原因を示すビットを記憶する。EC31は、S0ステートに遷移する際にレジスタ38を参照してEEPROM32にレジスタ38の起動原因を記憶する。レジスタ39には、タイマ36からカウント終了信号を受け取った制御回路35がウエイク・ビットを設定する。EC31は、DC/DCコンバータ73から電力が供給されたときに、レジスタ39にウエイク・ビットが設定されていることを検知したときは、SSMウエイク・アップに関する所定の処理を行う。レジスタ40には、電圧検出器47から電圧検出信号を受け取った制御回路35が、現在AC供給であることを示すACビットを設定する。制御回路35は、ACビットをEEPROM32にも設定する。
【0055】
DC/DCコンバータ71、73、75、77は、AC/DCアダプタ43または電池パック49のいずれかを電力源とし、パワー・ステートに応じてPMC回路33に制御されてノートPC10のさまざまなデバイスに電力を供給する。図1の各構成要素には、#1〜#4の記号でDC/DCコンバータ71〜77のいずれが電力源であるかを示している。たとえば、ICH21は、機能ブロックごとに電力が供給できるように構成されており、各機能要素には、パワー・ステートに応じてDC/DCコンバータ73、75、77から電力が供給される。EC31には、DC/DCコンバータ73から電力が供給される。PMC33には、DC/DCコンバータ71から電力が供給される。
【0056】
DC/DCコンバータ71は、構成が簡単で軽負荷時の効率に優れたリニア・レギュレータで構成されている。リニア・レギュレータは可変抵抗素子の抵抗値を制御して出力電圧を所定の範囲に維持するが、入力電圧と出力電圧の差は熱として放熱する必要があり、負荷が大きくなると効率が低下するので小さい負荷の電力源に適している。DC/DCコンバータ71は、AC/DCアダプタ43または電池パック49がシステムに電力を供給するときには常にPMC回路33に電力を供給する。
【0057】
DC/DCコンバータ73、75、77は、構成は複雑であるが高負荷時の効率に優れたスイッチング・レギュレータで構成されている。スイッチング・レギュレータは、スイッチング素子のデューティ比を制御して出力電圧を所定の範囲に維持する。スイッチング・レギュレータは、軽負荷時にもスイッチング損失が発生するので、DC/DCコンバータ71のような小さい負荷に対してはリニア・レギュレータよりも効率が低い。
【0058】
[パワー・ステートと電源系統の関係]
図2は、パワー・ステートとDC/DCコンバータの動作関係を示す図である。図2(A)はSSMウエイク・アップを導入していないコンピュータにおける従来のパワー・ステートまたはSSMウエイク・アップは導入されているがEEPROM32のSSMビットがディスエーブルに設定されているときのパワー・ステートを示す。図2(B)はSSMが導入され、かつSSMビットがイネーブルに設定されているときのパワー・ステートを示す。
【0059】
本実施の形態では、S4ステートとS5ステートはそれぞれにおいて、AC供給とDC供給で動作するDC/DCコンバータが異なる。さらに図2(B)に示すように、SSMウエイク・アップを実現するためにDC供給のときのS4ステートに、従来の定義によるS4ステート(以後、これを通常S4ステートという。)に加えて新たにRTC−S4ステートを定義する。通常S4ステートではDC/DCコンバータ73が動作しないためにEC31とICH21には電力が供給されないが、RTC−S4ステートではDC/DCコンバータ73が動作してICH21のRTC機能ブロック26、クロック機能ブロック28およびEC31に電力を供給する。
【0060】
なお、RTC−S4ステートでは、通常S4ステートと同じようにシステムのコンテキストがHDD22に記憶される。RTC−S4ステートは、通常S4ステートおよびS5ステートとともにパワー・オフ状態である。RTC−S4ステートでは、EC31はクロック・ジェネレータ27が生成したシステム・クロックを取得してタイマ36を校正することができる。他の例では、RTC−S4ステートでEC31は、RTC23からクロックを取得してタイマ36を校正することができる。
【0061】
図2(B)においてDC/DCコンバータ71は、G3ステートを除くすべてのパワー・ステート(S5、S4、S3、S0)で動作し、PMC回路33、電池パック49の状態を表示するLED(図示せず。)、およびリッド・センサ53などのパワー・オフ中の状態表示および起動に関連する最低限のデバイスに電力を供給する。DC/DCコンバータ73は、G3ステート、S5ステート(DC供給)および通常S4ステート(DC供給)で動作を停止し、その他のパワー・ステートで動作してICH21の一部とEC31に電力を供給する。
【0062】
DC/DCコンバータ73から電力が供給されるICH21の一部にはICH21のRTC機能ブロック26およびクロック機能ブロック28を含む。DC/DCコンバータ75は、S0ステートおよびS3ステートで動作し、ICH17の一部、MCH13およびメイン・メモリ15などのメイン・メモリ15の記憶を維持するために必要な回路に電力を供給する。DC/DCコンバータ77はS0ステートで動作し、ICH21の一部、CPU13およびHDD22などの残りのデバイスに電力を供給する。AC供給のときは常にDC/DCコンバータ73が動作するのでSSMウエイク・アップを行なわないで従来のRTCウエイク・アップを行うことができる。
【0063】
〔RTC−S4ステートを経由するSSMウエイク・アップの実行手順〕
図3、図4は、SSMウエイク・アップの実行に伴うパワー・ステートの遷移を示す図で、図5は、SSMの実行手順を示すフローチャートである。図7(A)は、SSMの実行に伴う消費電力の変化を説明する図である。図3では、S5ステート、RTC−S4ステートまたは通常S4ステートとS3ステート間の遷移はS0ステートを経由して行うことを示している。また、S5ステート、通常S4ステートまたはS3ステートとS0ステートの間の遷移は、従来から行われていたステート遷移でもある。図7(A)は、縦方向が電力軸で横方向が時間軸であるが縮尺は無視している。また、図7(A)の番号は図4のノード番号に対応する。
【0064】
最初にSSMウエイク・アップの概要を説明する。SSMウエイク・アップは主として、PMC回路33のタイマ36、ICH21のRTC機能ブロック26、クロック機能ブロック28およびEC31の連携動作により実行される。SSMウエイク・アップでは通常S4ステートでRTC機能ブロック26の電力を停止し、LST終了時刻の前にRTC−S4ステートに遷移してRTC−S4ステートからS0ステートを経由してS3ステートに遷移する。
【0065】
具体的に図7(A)で説明すると、ノートPC10のパワー・ステートを、LST開始時刻t0を基準にして通常S4ステートに遷移し、LSTの間に強制的に起動されない限り時刻t2でRTC−S4ステートに遷移し、LST終了時刻t1でS3ステートに遷移する。したがって、SSMウエイク・アップは、待機状態においてS3ステートに遷移させておくことの利便性を確保しながら待機状態の電力を従来のRTCウエイク・アップよりも低減することができる。その結果、ユーザはLST終了時刻以降にノートPC10を使用したいときには、S3ステートから短時間で起動することができる。
【0066】
図5のブロック201では、SSMプログラム18がノートPC10の使用履歴に基づいて、または、SSMプログラム18が提供するインターフェースを通じてユーザがRTCメモリ24とEEPROM32にLST時刻t0、t1を設定する。さらにユーザはEEPROM32にSSMビットを設定する。ノートPC10には、AC/DCアダプタ43が接続されておらずレジスタ40およびえEPROM32にはACビットは設定されていない。この状態でのパワー・ステートは図2(B)のとおりRTC−S4ステートを含むことになる。
【0067】
ブロック203では、ユーザがノートPC10を使用したり終了したりしている。ユーザはノートPC10の利用を終了するためにOS16のインターフェースを通じて終了の指示をしたり、または、筐体の蓋を閉じたりする。このときノートPC10は、リッド・センサ53の動作または中央制御部11の指示によりS3ステートに遷移する。EC31は中央制御部11から使用終了の指示を受け取ったとき、またはPMC33からリッド・センサ53の動作を示す信号を受け取ったときに、遷移先のパワー・ステートをEEPROM32に設定してS3ステートに遷移するイベントをICH21に通知する。
【0068】
ICH21は中央制御部11にS3ステートに遷移する準備をするように指示する。中央制御部11から準備完了の通知を受け取ったICH21は、EC31にS3ステートへ遷移するように要求する。EC31は、PMC33に指示してDC/DCコンバータ77の動作を停止させる。このときDC/DCコンバータ75は動作しているためメイン・メモリ15には電力が供給されている。
【0069】
ユーザがパワー・ボタン51を押下したり筐体を開いたりすると、PMC回路33はDC/DCコンバータ77を動作させる。電源が供給されたCPU13はリセット動作をするとEEPROM32の遷移元のパワー・ステートを確認してS3ステートに遷移する前の状態で動作を再開する。ここまでの手順は従来から行われていたもので、図4のノード1からノード2のパスとして示している。
【0070】
ブロック205でEC31は、現在ノートPC10がS0ステートからS3ステートに遷移する過渡的な状態か否かを判断する。EC31はPMC回路33またはICH21からイベントを受け取ってS3ステートに遷移する状態であると判断したときにはブロック207に移行する。本発明では通常の使用状態を妨げないようにしながらSSMウエイク・アップを実行するため、ユーザの利用状態によってノートPC10はLST開始時刻t0の前または後にS3ステートに遷移する。ブロック207でEC31は、DC/DCコンバータ77の動作を停止してS3ステートに遷移してから定期的にRTCメモリ24から取得した現在のカレンダ時刻がLST開始時刻t0に到達したか否かを判断する。
【0071】
S3ステートに遷移した際にLST開始時刻t0に到達していないと判断したEC31は、ブロック209で、その後LST開始時刻t0に到達しかつLST開始時刻t0から1時間〜3時間といった所定の時間h1(図7(A)参照)が経過したか否かを判断する。この所定の時間h1は、ユーザがそれ以降ノートPC10を使用しないことを推定するための時間で安定してLSTに入ったことを確認する意義がある。現在のカレンダ時刻がLST開始時刻t0に入ったと判断したときにEC31はEEPROM32にLSTビットを設定する。
【0072】
所定の時間h1が経過したと判断したときは、EC31はEEPROM32にSSMウエイク・アップの実行に関する原因ビットを設定する。EC31はブロック213でタイマ36に校正のためのカウント値を設定しタイマがカウント値までのカウントを終了したときに制御回路35からカウント終了信号を受け取る。EC31はタイマがカウントしている時間と同じ時間にクロック・ジェネレータ27からシステム・クロックを受け取って、リング発振器のクロック周期またはタイマ36の1カウントの時間を計算しタイマ36を校正する。リング発振器の発振周波数は温度依存性が高い。タイマ36はSSMウエイク・アップを実行する際に、消費電力が小さく筐体内部の温度が低い通常S4ステートで動作するために、タイマ36の校正は通常S4ステートに近い温度で行うことが望ましい。
【0073】
S3ステートでの筐体温度は通常S4ステートに近いので、S0ステートから遷移してから一定の時間が経過してから校正することが望ましい。この視点では、ブロック209の所定の時間h1は、より正確な校正作業をするための温度安定期間という意義も有する。ここまでの手順はS3ステートでLSTに入った場合に相当し、図4のノード2からノード4へのパスとして示している。
【0074】
ブロック207で、S3ステートに遷移する際にLST開始時刻t0に到達していると判断した場合には、ブロック211に移行し、S3ステートに遷移した時刻から1〜3時間といった所定の時間h2が経過したか否かを判断する。所定の時間h2が経過したと判断した場合は、EC31はEEPROM32にLSTビットとSSMウエイク・アップの実行に関する原因ビットを設定してからブロック213に移行する。ここまでの手順はLSTに入ってからS3ステートに遷移した場合に相当し、図4のノード3からノード4へのパスとして示している。
【0075】
ブロック215でEC31は、RTCメモリ24から現在のカレンダ時刻を取得してタイマ36に所定のカウント設定値(満了時間値)を設定する。所定のカウント設定値は、現在のカレンダ時刻からLST終了時刻t1より所定の時間h3だけ前の時刻t2までの時間h4に相当する値でかつブロック213で校正された値である。カウント設定値が設定されたタイマ36は、カウント動作を開始する。
【0076】
所定の時間h4は、校正後のタイマ36の精度を考慮して設定する。SSMウエイク・アップでは、ノートPC10を正確にLST終了時刻t1でウエイク・アップさせる。所定の時間h4は、誤差が最大になったとしてもタイマ36がLST終了時刻t1を経過する前に制御回路35にカウント終了信号を出力できるように設定する。所定の時間h4が長いほどRTC−S4ステートで動作する時間を短くしあるいは通常S4ステートで動作する時間を長くして待機電力の低減を図ることができる。ブロック213で、タイマ36を動作させる直前にシステム・クロックを使用して校正しているので、校正しない場合に比べて所定の時間h4を長くすることができる。
【0077】
カウント設定値の設定が終了したEC31はブロック217で、S3ステートから通常S4ステートに遷移させる。S3ステートから通常S4ステートに遷移するためには、CPU13、メイン・メモリ15およびその他のコントローラなどのS0ステートでのシステムのコンテキストをHDD22に記憶するために、一旦S0ステートに遷移する必要がある。
【0078】
カウント設定を設定したEC31は、PMC回路33にSSMウエイク・アップに入るためにそれまで停止していたDC/DCコンバータ77を動作させるように指示する。CPU13は電力が供給されるとリセットしてS3ステートに遷移する直前のS0ステートの状態で動作する。このときCPU13は、EEPROM32に記憶されたSSMビット、原因ビットおよびLSTビットを参照して今回の遷移は使用を目的とする永続的なS0ステートへの遷移ではなく、通常S4ステートへ遷移するための一時的な遷移であることを認識する。
【0079】
したがって、中央制御部11は、通常S4ステートへの遷移に必要のないLCD19のバックライトを消灯したり、無線モジュールの動作を停止したりしてS0ステートでの無駄な電力の消費を抑制することもできる。中央制御部11は、CPU13、メイン・メモリ15およびコントローラなどのシステムのコンテキストをHDD22に記憶する。中央制御部11はHDD22へのコンテキストの記憶が終了すると、ICH21に通知する。
【0080】
ICH21は、EC31にDC/DCコンバータ73、75、77を停止して通常S4ステートに遷移させるように指示する。EC31は、PMC回路33に指示してDC/DCコンバータ73、75、77の動作を停止させて、通常S4ステートに遷移させる。EC31はEEPROM32とレジスタ37に遷移先となる通常S4ステートの遷移ビットを設定する。ここまでの手順は図4にノード4からノード5までのパスとして示している。
【0081】
他の例では、ブロック213でのタイマ36の校正とブロック215の設定値の設定をRTC−S4ステートで行うこともできる。この場合は、S3ステートからS0ステートを経由して一旦RTC−S4ステートに遷移し、タイマ36の校正とカウント設定値の設定が終了した後にRTC−S4ステートから通常S4ステートに遷移する。RTC−S4ステートではS3ステートよりも通常S4ステートに近い温度条件でタイマ36の校正をすることができる。なお、S3ステートからRTC−S4ステートへの遷移は、S3ステートから通常S4ステートに遷移した後に、DC/DCコンバータ73を動作させてICH21のRTC機能ブロック26およびクロック機能ブロック28とEC31に電力を供給するようにしてもよい。
【0082】
通常S4ステートに遷移している間もPMC回路33にはDC/DCコンバータ71から電力が供給されているのでタイマ36は設定されたカウント設定値までカウント動作を継続する。また、RTC23とRTCメモリ24は、ボタン電池25から電力が供給されているのでカレンダ時刻を生成し続ける。ブロック219では、カウント値がカウント設定値に到達するとタイマ36は、時刻t2でカウント終了信号を制御回路35に出力する。ここまでの手順は図4においてノード5からノード6へのパスで示している。
【0083】
ブロック221では、カウント終了信号を受け取った制御回路35が、DC/DCコンバータ73を動作させ、パワー・ステートをRTC−S4ステートに遷移させる。タイマ36はブロック213で校正されているため、LST終了時刻t1の直前にRTC−S4ステートに遷移させることができる。制御回路35はさらにレジスタ38とEEPROM32にウエイク・ビットおよび原因ビットを設定する。電力が供給されたICH21のRTC機能ブロック26は、ブロック223で現在のカレンダ時刻がLST終了時刻t1に到達したと認識するとブロック225に移行する。
【0084】
他の例ではRTC機能ブロック26のRTCウエイク・アップ機能を使用しないで、RTC−S4ステートのときにEC31がRTCメモリ24から現在のカレンダ時刻を取得し、LST終了時刻t1に到達したか否かを判断することができる。ブロック225では、LST終了時刻t1に到達したと判断したRTC機能ブロック26はパワー・ステートをS3ステートに遷移させるためにDC/DCコンバータ75、77を動作させるようにEC31に指示する。指示を受けたEC31はDC/DCコンバータ75、77を動作させる。電力の供給を受けたCPU13は、HDD22に記憶されていたコンテキストを復帰し、ノートPC10をブロック205でS3ステートに入る前の状態で動作させる。
【0085】
電力の供給を受けたCPU13は、EEPROM32のSSMビット、ウエイク・ビットおよび原因ビットを参照して、今回のS0ステートへの遷移がS3ステートへの一時的な遷移であると認識する。CPU13は、S0ステートに復帰するとただちにS3ステートに遷移するようにICH21に通知する。このときもCPU13は、LCD19のバックライトを消灯したり無線モジュールを動作させないようにしたりしてS3ステートへの遷移に無関係なデバイスの動作を停止することができる。
【0086】
ICH21は、中央制御部11からS3ステートへ遷移する通知を受け取ると、EC31にDC/DCコンバータ77を停止するように指示する。EC31はこのときEEPROM32に遷移先としてS3ステートを示す遷移ビットを設定する。ここまでの手順は図4においてノード6からノード13のパスで示している。
【0087】
ブロック227では、LST終了時刻t1が経過して、筐体が開かれてリッド・センサ53が動作したりユーザがパワー・ボタン51を押下したりしてS0ステートに遷移する操作が行われ、それに応じて制御回路35はレジスタ38とEEPROM32に原因ビットを設定する。電力が供給されたCPU13は、EEPROM32を参照して起動原因がパワー・ボタン51またはリッド・センサ53であると認識すると、今回のステート遷移は永続的な遷移であると認識する。
【0088】
ノートPC10は、すでにS3ステートに遷移しているため、LST終了時刻t1以降は短時間で起動することができる。以後、次回のLST開始時刻t0に入る前は、使用が終了するとノートPC10はS3ステートで待機する。ここまでの手順は図4において、ノード14からノード16までのパスとして示している。
【0089】
他の例では、LSTの間に通常S4ステートとRTC−S4ステートとの間を遷移して、EC31が複数回タイマ36を校正することができる。たとえば、EC31は、ブロック215でカウント設定値を設定する際に、タイマ36に現在のカレンダ時刻から時間h4よりも十分に短い時間に相当するカウント設定値を設定する。タイマ36がカウント終了信号を出力してRTC−S4ステートに遷移したときに、EC31は短時間の間システム・クロックでタイマ36を校正し、さらにそのときのカレンダ時刻からLST終了時刻t1より短い時刻に対応する時間に相当するカウント設定値を設定する。
【0090】
このように追加的に1回または複数回の校正を行うことで精度が向上したタイマ36は、カウント終了信号をLST終了時刻t1により近い時刻で出力することができるようになる。EC31は最終のカウント設定値を設定する際に制御回路35がカウント終了信号を受け取るように設定することができる。制御回路35はタイマ36が最終のカウント値をカウントしたときにレジスタ38とEEPROM32にウエイク・ビットを設定する。
【0091】
このとき、EC31が設定するカウント値は校正を繰り返すたびに徐々に小さい値にすることができる。より小さなカウント値を設定する場合は、リング発振器が同じ誤差で動作してもカウント設定値に対応する満了時間と実際に経過した時間の差は少なくなるので、校正とカウント値の設定を繰り返すことで最終的にはよりLST終了時刻t1に近い時刻でカウント終了信号を出力できるようになる。この手順は、図4のノード5、7、8、9、10、6のパスとして示している。図4では追加的な校正が1回だけ行われることを示しているが、このパスは複数回繰り返すことができる。
【0092】
他の例では、ユーザが使用を開始する前にS3ステートで待機させないで、LST終了時刻t1が経過したときにRST−S4ステートからS0ステートに直接遷移させることもできる。この場合、ブロック225の手順では、電力の供給を受けた中央制御部11は、EEPROM32にウエイク・ビットが設定されていることを認識すると、今回のS0ステートへの遷移が永続的なS0ステートへの遷移であると認識して、SSMビットが設定されていないときに通常S4ステートからS0ステートに遷移する場合と同じ手順で復帰することができる。この手順は図4のノード12からノード15へのパスとして示している。
【0093】
従来のRTCウエイク・アップでは、S4ステートのすべての時間帯でRTC機能ブロック26に電力を供給する必要があった。図4、図5、図7(A)に示したSSMウエイク・アップの手順によれば、LSTの間はほとんどの時間を通常S4ステートに遷移させておくことができる。通常S4ステートでは、消費電力は小さいが精度の低いタイマ36が経過時間を計測し、S3ステートまたはS0ステートに遷移する前にRTC−S4ステートに遷移する。その後RTC23を利用して正確な時刻にウエイク・イベントを生成してSSMウエイク・アップをする。図4、図5、図7(A)の手順では、待機状態のときに大部分の時間を通常S4ステートに遷移させたが、他の例では、通常S4ステートに代えてS5ステートを使用することもできる。
【0094】
〔RTC−S4ステートを経由しないSSMウエイク・アップの手順〕
本発明では、タイマ36を1回あるいは複数回校正することにより、RST−S4ステートに遷移しないでタイマ36がカウント終了信号を出力したタイミングでSSMウエイク・アップをさせることもできる。図6は、SSMウエイク・アップの他の例を示す状態遷移図である。図7(B)は図6に対応する。図6が図4と異なる点は、ノード6からノード13へのパスで示すように、通常S4ステートからS0ステートを経由してS3ステートに遷移したり、ノード6からノード15のパスで示すように、通常S4ステートからS0ステートに遷移したりする点である。
【0095】
この方法では、タイマ36の精度が低いとLST終了時刻t1と実際にウエイク・アップする時刻の差が大きくなるので、LSTの間に通常S4ステートとRTC−S4ステートの間の遷移を1回ないし数回繰り返して校正と新しいカウント設定値の設定を繰り返すことが望ましい。図7(B)では、時刻t3、t4でRTC−S4ステートに遷移して、DC/DCコンバータ73が動作してRTC機能ブロック26、クロック機能ブロック28およびEC31に電力を供給する。EC31は、RTC−S4ステートに遷移するたびに、システム・クロックでタイマ36を校正し、新たなカウント設定値を設定してから通常S4ステートに遷移する。その結果、タイマ36の精度が向上してほぼLST終了時刻t1に近い時刻t4、t5でSSMウエイク・アップをすることができる。
【0096】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【0097】
10…ノートPC
11…中央制御部
21…ICH
26…RTC機能ブロック
28…クロック機能ブロック
31…エンベデッド・コントローラ(EC)
33…PMC回路

【特許請求の範囲】
【請求項1】
カレンダ時刻を計時するリアル・タイム・クロック(RTC)と経過時間を計時する計時回路を備えるコンピュータがウエイク・アップする方法であって、
第1のパワー・ステートから第2のパワー・ステートにウエイク・アップする時刻に相当するウエイク・アップ時刻を設定するステップと、
前記第1のパワー・ステートに遷移する前に前記計時回路に前記リアル・タイム・クロックから取得した現在の時刻から前記ウエイク・アップ時刻の前までの時間に相当する第1の満了時間値を設定するステップと、
前記計時回路に供給する電力を維持しながら前記第1のパワー・ステートに遷移するステップと、
前記第1のパワー・ステートで前記計時回路が計時した経過時間が前記第1の満了時間値に到達したときに前記リアル・タイム・クロックが計時した前記ウエイク・アップ時刻でウエイク・アップするステップと
を有する方法。
【請求項2】
前記第1のパワー・ステートがパワー・オフ状態で前記第2のパワー・ステートがパワー・オン状態またはサスペンド状態である請求項1に記載の方法。
【請求項3】
前記パワー・オフ状態がハイバネーション状態である請求項2に記載の方法。
【請求項4】
前記第1の満了時間値を設定するステップの直前に前記計時回路を校正するステップを有する請求項1から請求項3のいずれかに記載の方法。
【請求項5】
前記校正するステップをサスペンド状態で実行する請求項4に記載の方法。
【請求項6】
前記リアル・タイム・クロックが前記リアル・タイム・クロックを利用したRTCウエイク・アップ機能を実現するRTC機能ブロック備えるチップ・セットに組み込まれており、
前記第1のパワー・ステートで前記RTC機能ブロックの電力を停止するステップを有する請求項1から請求項5のいずれかに記載の方法。
【請求項7】
前記ウエイク・アップするステップが、
前記計時回路が計時した経過時間が前記ウエイク・アップ時刻の前に前記第1の満了時間値に到達したことに応答して前記RTC機能ブロックに電力を供給するステップと、
前記RTC機能ブロックは前記リアル・タイム・クロックが生成する現在の時刻が前記ウエイク・アップ時刻に到達したときに前記コンピュータをウエイク・アップさせるステップと
を有する請求項6に記載の方法。
【請求項8】
前記第1のパワー・ステートにおいて前記計時回路が所定の経過時間を計時したことに応答して前記RTC機能ブロックに電力を供給するステップと、
前記RTC機能ブロックに電力が供給されたときに前記計時回路を校正し、前記校正された計時回路に前記RTC機能ブロックから取得した前記校正直後の時刻から前記ウエイク・アップ時刻の前までの時間に相当する第2の満了時間値を設定するステップと、
前記RTC機能ブロックの電力を停止するステップと、
前記計時回路が前記第2の満了時間値までの計時動作を開始するステップと、
前記第1のパワー・ステートで前記計時回路が計時した経過時間が前記第2の満了時間値に到達したことに応答して前記RTC機能ブロックに電力を供給するステップと、
前記RTC機能ブロックは前記リアル・タイム・クロックが生成する現在の時刻が前記ウエイク・アップ時刻に到達したときに前記コンピュータをウエイク・アップさせるステップと
を有する請求項6または請求項7に記載の方法。
【請求項9】
カレンダ時刻を計時するリアル・タイム・クロック(RTC)と経過時間を計時する計時回路を備えるコンピュータがウエイク・アップする方法であって、
パワー・オン状態と、サスペンド状態と、前記計時回路の電力を維持する第1のハイバネーション状態と、前記サスペンド状態よりも消費電力が小さく前記第1のハイバネーション状態より消費電力が大きい第2のハイバネーション状態を定義するステップと、
前記第1のハイバネーション状態に遷移する前に前記リアル・タイム・クロックから取得した現在の時刻から前記ウエイク・アップ時刻の前までの時間に相当する満了時間値を前記計時回路に設定するステップと、
前記第1のハイバネーション状態に遷移するステップと、
前記第1のハイバネーション状態で前記計時回路が計時した経過時間が前記満了時間値に到達したときに前記第2のハイバネーション状態に遷移するステップと、
前記第2のハイバネーション状態で前記リアル・タイム・クロックが計時した前記ウエイク・アップ時刻でウエイク・アップするステップと
を有する方法。
【請求項10】
カレンダ時刻を計時するリアル・タイム・クロック(RTC)と経過時間を計時する計時回路を備えるコンピュータがウエイク・アップする方法であって、
第1のパワー・ステートから第2のパワー・ステートにウエイク・アップする時刻に相当するウエイク・アップ時刻を設定するステップと、
前記第1のパワー・ステートに遷移する前に前記計時回路を校正し、前記リアル・タイム・クロックから取得した現在の時刻から前記ウエイク・アップ時刻までの時間に相当する満了時間値を前記計時回路に設定するステップと、
前記計時回路に供給する電力を維持しながら前記第1のパワー・ステートに遷移するステップと、
前記第1のパワー・ステートで前記計時回路が計時した経過時間が前記満了時間値に到達したときにウエイク・アップするステップと
を有する方法。
【請求項11】
前記第1のパワー・ステートで一時的に基準クロックを取得して前記計時回路を校正するステップと、
前記校正された計時回路に前記リアル・タイム・クロックから取得した校正直後の時刻から前記ウエイク・アップ時刻までの時間に相当する新たな満了時間値を設定するステップと
を有する請求項10に記載の方法。
【請求項12】
カレンダ時刻を計時するリアル・タイム・クロック(RTC)と経過時間を計時する計時回路を備えるコンピュータがウエイク・アップする方法であって、
パワー・オン状態と、サスペンド状態と、ハイバネーション状態を定義するステップと、
前記ハイバネーション状態に遷移する前に前記リアル・タイム・クロックから取得した現在の時刻から前記ウエイク・アップ時刻までの時間に相当する満了時間値を前記計時回路に設定するステップと、
前記ハイバネーション状態に遷移するステップと、
前記ハイバネーション状態で前記計時回路が計時した経過時間が前記満了時間値に到達したときにウエイク・アップするステップと
を有する方法。
【請求項13】
所定の時刻にウエイク・アップするコンピュータであって、
プロセッサとメイン・メモリを含みパワー・ステートが遷移する際のシステム・コンテキストを処理する中央制御部と、
リアル・タイム・クロック(RTC)を利用したRTCウエイク・アップを実行するRTC機能ブロックと、
システム・クロックを生成するクロック・ジェネレータと、
経過時間を計時するタイマと、
パワー・オフ状態に遷移する前に前記タイマに前記リアル・タイム・クロックから取得した現在の時刻から前記所定の時刻より前までの時間に相当する第1の満了時間値を設定してから前記RTC機能ブロックの電力を停止してパワー・オフ状態に遷移させ、前記パワー・オフ状態で前記タイマが計時した経過時間が前記第1の満了時間値に到達したことに応答して前記RTC機能ブロックに電力を供給するウエイク・アップ制御回路とを有し、
前記電力が供給されたRTC機能ブロックは現在の時刻が前記所定の時刻に到達したと判断したときに前記中央制御部と前記ウエイク・アップ制御回路に連絡して前記コンピュータをウエイク・アップさせるコンピュータ。
【請求項14】
前記タイマを動作させる電力が前記RTC機能ブロックを動作させる電力よりも小さく、かつ、前記タイマの精度が前記リアル・タイム・クロックよりも低い請求項13に記載のコンピュータ。
【請求項15】
前記タイマがリング発振器を含む請求項13または請求項14に記載のコンピュータ。
【請求項16】
前記ウエイク・アップ制御回路は、前記第1の満了時間値を設定する直前に前記リアル・タイム・クロックまたは前記クロック・ジェネレータを基準器として前記タイマを校正する請求項13から請求項15のいずれかに記載のコンピュータ。
【請求項17】
前記ウエイク・アップ制御回路は前記プロセッサの電力が停止した状態で前記タイマを校正する請求項16に記載のコンピュータ。
【請求項18】
前記パワー・オフ状態がハイバネーション状態で、前記ウエイク・アップがパワー・オン状態に遷移する動作またはサスペンド状態に遷移する動作である請求項13から請求項17のいずれかに記載のコンピュータ。
【請求項19】
所定の時刻にウエイク・アップすることが可能なコンピュータであって、
プロセッサとメイン・メモリを含みパワー・ステートを遷移する際のシステム・コンテキストを処理する中央制御部と、
リアル・タイム・クロック(RTC)と、
経過時間を計時するタイマと、
パワー・オフ状態に遷移する前に前記タイマを校正し前記タイマに前記リアル・タイム・クロックから取得した現在の時刻から前記所定の時刻までの時間に相当する満了時間値を設定してから前記パワー・オフ状態に遷移させ、前記パワー・オフ状態で前記タイマが計時した経過時間が前記満了時間値に到達したときにウエイク・アップさせるウエイク・アップ制御回路と
を有するコンピュータ。
【請求項20】
前記ウエイク・アップ制御回路は、パワー・オフ状態で一時的に前記RTC機能ブロックに電力を供給して前記タイマを校正し、前記校正された計時回路に前記リアル・タイム・クロックから取得した校正直後の時刻から前記所定の時刻までの時間に相当する新たな満了時間値を設定する請求項19に記載のコンピュータ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−226677(P2012−226677A)
【公開日】平成24年11月15日(2012.11.15)
【国際特許分類】
【出願番号】特願2011−95739(P2011−95739)
【出願日】平成23年4月22日(2011.4.22)
【出願人】(505205731)レノボ・シンガポール・プライベート・リミテッド (292)
【復代理人】
【識別番号】100106699
【弁理士】
【氏名又は名称】渡部 弘道
【復代理人】
【識別番号】100077584
【弁理士】
【氏名又は名称】守谷 一雄
【Fターム(参考)】