(57)【特許請求の範囲】
【請求項１】
カレンダ時刻を計時するリアル・タイム・クロック（ＲＴＣ）と経過時間を計時する計時回路を備えるコンピュータがウエイク・アップする方法であって、
第１のパワー・ステートから第２のパワー・ステートにウエイク・アップする時刻に相当するウエイク・アップ時刻を設定するステップと、
前記第１のパワー・ステートに遷移する前に前記計時回路に前記リアル・タイム・クロックから取得した現在の時刻から前記ウエイク・アップ時刻の前までの時間に相当する第１の満了時間値を設定するステップと、
前記計時回路に供給する電力を維持し前記リアル・タイム・クロックが計時した時刻でウエイク・アップする機能を実現するＲＴＣ回路の電力を停止して前記第１のパワー・ステートに遷移するステップと、
前記第１のパワー・ステートで前記計時回路が計時した経過時間が前記第１の満了時間値に到達したことに応答して前記ＲＴＣ回路に電力を供給し、前記ＲＴＣ回路が前記リアル・タイム・クロックが計時した前記ウエイク・アップ時刻で前記コンピュータをウエイク・アップさせるステップと
を有する方法。
【請求項２】
前記第１のパワー・ステートがパワー・オフ状態で前記第２のパワー・ステートがパワー・オン状態またはサスペンド状態である請求項１に記載の方法。
【請求項３】
前記パワー・オフ状態がハイバネーション状態である請求項２に記載の方法。
【請求項４】
前記第１の満了時間値を設定するステップの直前に前記計時回路を校正するステップを有する請求項１から請求項３のいずれかに記載の方法。
【請求項５】
前記校正するステップをサスペンド状態で実行する請求項４に記載の方法。
【請求項６】
前記ＲＴＣ回路がチップ・セットに組み込まれている請求項１から請求項５のいずれかに記載の方法。
【請求項７】
前記第１のパワー・ステートにおいて前記計時回路が所定の経過時間を計時したことに応答して前記ＲＴＣ回路に電力を供給するステップと、
前記ＲＴＣ回路に電力が供給されたときに前記計時回路を校正し、前記校正された計時回路に前記ＲＴＣ回路から取得した前記校正直後の時刻から前記ウエイク・アップ時刻の前までの時間に相当する第２の満了時間値を設定するステップと、
前記ＲＴＣ回路の電力を停止するステップと、
前記計時回路が前記第２の満了時間値までの計時動作を開始するステップと、
前記第１のパワー・ステートで前記計時回路が計時した経過時間が前記第２の満了時間値に到達したことに応答して前記ＲＴＣ回路に電力を供給するステップと、
前記ＲＴＣ回路が前記リアル・タイム・クロックが生成する現在の時刻が前記ウエイク・アップ時刻に到達したときに前記コンピュータをウエイク・アップさせるステップと
を有する請求項１から請求項６のいずれかに記載の方法。
【請求項８】
カレンダ時刻を計時するリアル・タイム・クロック（ＲＴＣ）と経過時間を計時する計時回路を備えるコンピュータがウエイク・アップする方法であって、
パワー・オン状態と、サスペンド状態と、前記計時回路の電力を維持する第１のハイバネーション状態と、前記サスペンド状態よりも消費電力が小さく前記第１のハイバネーション状態より消費電力が大きい第２のハイバネーション状態を定義するステップと、
前記第１のハイバネーション状態に遷移する前に前記リアル・タイム・クロックから取得した現在の時刻から前記ウエイク・アップ時刻の前までの時間に相当する満了時間値を前記計時回路に設定するステップと、
前記第１のハイバネーション状態に遷移するステップと、
前記第１のハイバネーション状態で前記計時回路が計時した経過時間が前記満了時間値に到達したときに前記第２のハイバネーション状態に遷移するステップと、
前記第２のハイバネーション状態で前記リアル・タイム・クロックが計時した前記ウエイク・アップ時刻でウエイク・アップするステップと
を有する方法。
【請求項９】
カレンダ時刻を計時するリアル・タイム・クロック（ＲＴＣ）と経過時間を計時する計時回路を備えるコンピュータがウエイク・アップする方法であって、
第１のパワー・ステートから第２のパワー・ステートにウエイク・アップする時刻に相当するウエイク・アップ時刻を設定するステップと、
前記第１のパワー・ステートに遷移する前に前記計時回路を校正し、前記リアル・タイム・クロックから取得した現在の時刻から前記ウエイク・アップ時刻までの時間に相当する満了時間値を前記計時回路に設定するステップと、
前記計時回路に供給する電力を維持し前記リアル・タイム・クロックが計時した時刻でウエイク・アップする機能を実現するＲＴＣ回路の電力を停止して前記第１のパワー・ステートに遷移するステップと、
前記第１のパワー・ステートで前記計時回路が計時した経過時間が前記満了時間値に到達したときにウエイク・アップするステップと
を有する方法。
【請求項１０】
前記第１のパワー・ステートで一時的に基準クロックを取得して前記計時回路を校正するステップと、
前記校正された計時回路に前記リアル・タイム・クロックから取得した校正直後の時刻から前記ウエイク・アップ時刻までの時間に相当する新たな満了時間値を設定するステップと
を有する請求項９に記載の方法。
【請求項１１】
所定の時刻にウエイク・アップするコンピュータであって、
プロセッサとメイン・メモリを含みパワー・ステートが遷移する際のシステム・コンテキストを処理する中央制御部と、
リアル・タイム・クロック（ＲＴＣ）が計時した時刻でウエイク・アップする機能を実現するＲＴＣ回路と、
システム・クロックを生成するクロック・ジェネレータと、
経過時間を計時するタイマと、
パワー・オフ状態に遷移する前に前記タイマに前記リアル・タイム・クロックから取得した現在の時刻から前記所定の時刻より前までの時間に相当する満了時間値を設定してから前記ＲＴＣ回路の電力を停止してパワー・オフ状態に遷移させ、前記パワー・オフ状態で前記タイマが計時した経過時間が前記満了時間値に到達したことに応答して前記ＲＴＣ回路に電力を供給するウエイク・アップ制御回路とを有し、
前記電力が供給されたＲＴＣ回路は現在の時刻が前記所定の時刻に到達したと判断したときに前記中央制御部と前記ウエイク・アップ制御回路に指示して前記コンピュータをウエイク・アップさせるコンピュータ。
【請求項１２】
前記タイマを動作させる電力が前記ＲＴＣ回路を動作させる電力よりも小さく、かつ、前記タイマの精度が前記リアル・タイム・クロックよりも低い請求項１１に記載のコンピュータ。
【請求項１３】
前記タイマがリング発振器を含む請求項１１または請求項１２に記載のコンピュータ。
【請求項１４】
前記ウエイク・アップ制御回路は、前記満了時間値を設定する直前に前記リアル・タイム・クロックまたは前記クロック・ジェネレータを基準器として前記タイマを校正する請求項１１から請求項１３のいずれかに記載のコンピュータ。
【請求項１５】
前記ウエイク・アップ制御回路は前記プロセッサの電力が停止した状態で前記タイマを校正する請求項１４に記載のコンピュータ。
【請求項１６】
前記パワー・オフ状態がハイバネーション状態で、前記ウエイク・アップがパワー・オン状態に遷移する動作またはサスペンド状態に遷移する動作である請求項１１から請求項１５のいずれかに記載のコンピュータ。
【請求項１７】
所定の時刻にウエイク・アップすることが可能なコンピュータであって、
プロセッサとメイン・メモリを含みパワー・ステートを遷移する際のシステム・コンテキストを処理する中央制御部と、
リアル・タイム・クロック（ＲＴＣ）が計時した時刻でウエイク・アップする機能を実現するＲＴＣ回路と
経過時間を計時するタイマと、
パワー・オフ状態に遷移する前に前記タイマを校正し前記タイマに前記ＲＴＣ回路から取得した現在の時刻から前記所定の時刻までの時間に相当する満了時間値を設定してから前記ＲＴＣ回路の電力を停止して前記パワー・オフ状態に遷移させ、前記パワー・オフ状態で前記タイマが計時した経過時間が前記満了時間値に到達したときに前記コンピュータをウエイク・アップさせるウエイク・アップ制御回路と
を有するコンピュータ。
【請求項１８】
前記ウエイク・アップ制御回路は、パワー・オフ状態で一時的に前記ＲＴＣ回路に電力を供給して前記タイマを校正し、前記校正されたタイマに前記リアル・タイム・クロックから取得した校正直後の時刻から前記所定の時刻までの時間に相当する新たな満了時間値を設定する請求項１７に記載のコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータの待機電力を低減する技術に関し、さらに詳細には、復帰時間の短縮を図りながら待機電力を低減する技術に関する。
【背景技術】
【０００２】
近年、ノートブック型またはタブレット型の携帯式コンピュータの用途が拡大し、さまざまな場所で必要なときに短時間で起動できることが求められている。一方、携帯式コンピュータは電池を電力源にするために、待機中は消費電力（待機電力）が小さいことが求められる。一般的に電子機器は待機電力を低減するほど起動時間または復帰時間（latency）が長くなる。特に筐体が薄いタブレット型の携帯式コンピュータでは、十分な容量の電池を搭載することが困難であるため、起動時間の短縮と待機電力の低減を両立することが一層重要な課題になってきている。
【０００３】
ＡＣＰＩの規格に適合するコンピュータは、パワー・オン状態のＳ０ステート、スリーピング・ステート、Ｓ５ステート（ソフト・オフ状態ともいう。）およびＧ３メカニカル・オフ・ステートを有する。ここに、スリーピング・ステートは、Ｓ１ステートからＳ４ステートまで定義されているが、順番に待機電力が小さくなる。スリーピング・ステート（Ｓ１ステート〜Ｓ４ステート）とＳ５ステートはプロセッサが動作しないためこれを待機状態ということにする。また、Ｓ４ステートとＳ５ステートは待機電力がともに最小であり、これをパワー・オフ状態ということにする。なお、Ｇ３ステートでは待機電力を消費しない。
【０００４】
Ｓ３ステートはサスペンド状態といわれ、Ｓ４ステートはハイバネーション状態といわれている。本明細書においては、待機状態のパワー・ステートであるＳ１ステートからＳ５ステートまでの各ステートについて、番号の大きいパワー・ステートを深いパワー・ステートといい番号の小さいパワー・ステートを浅いパワー・ステートということにする。この定義によれば、パワー・ステートが浅いほど待機電力は大きくかつ起動時間は短くなる。
【０００５】
コンピュータがＳ５ステートからＳ０ステートに復帰するときには、ＢＩＯＳがＰＯＳＴという作業を行って各デバイスの試験および初期化をするために一定の時間が必要になる。これに対して、コンピュータをＳ３ステートからＳ０ステートに復帰させるときにはＰＯＳＴを省略できるので短時間で起動することができる。最近ではさまざまな工夫によりＳ３ステートの待機電力が低減してきたこともあり、ユーザは使用が終わるとＳ３ステートで待機させる傾向が増加してきている。しかし、携帯式コンピュータを常にＳ３ステートで待機させると依然として電池容量を十分に確保できないという問題が残る。
【０００６】
特許文献１は、ユーザがコンピュータを使用する予想使用時刻を過去の使用履歴から予測して、待機状態において、予想使用時刻よりも先により浅いパワー・ステートに遷移させて短時間で復帰できるようにする発明を開示する。この発明によれば、たとえば待機電力の小さいＳ５ステートと復帰時間が短いＳ１ステートを利用して、復帰時間と待機電力の両立を図ることができる。同文献にはアプリケーションの動作が停止するＳ５ステートにおいてＳ１ステートに遷移させる時刻を認識するために、時刻情報をＲＴＣから取得することが記載されている。
【０００７】
特許文献２は、バッテリィを備えたコンピュータ装置が、ＡＣ電源が存在しかつシャットダウンしているときの待機電力を削減する発明を開示する。この発明によればパワー・オフ中に充電機能を維持するために必要なＭ電源系統をオフにすることで待機電力を低減するとともに、自然放電によるバッテリィの充電の要否を判断するために、ゲート・アレイ回路に設けたタイマで計測した所定の時間後にＭ電源系統をオンにする。特許文献３は、ＣＰＵに内蔵されアクセス・スピードの速いＲＴＣと、ＣＰＵの外部に設けられ精度の高いＲＴＣ−ＩＣとを備えた情報処理装置において、内蔵するＲＴＣとＲＴＣ−ＩＣが協働して動作することで低消費電力と性能低下の抑制を図る技術を開示する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許第６６５４８９５号公報
【特許文献２】特開２００４−１９２３５０号公報
【特許文献３】特開２００３−２７１２６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところで、コンピュータはユーザが起動ボタンを押下することで起動したり、システムが生成した信号または外部から受け取った信号に応じて自動的にパワー・オフ状態からパワー・オン状態に復帰したりする。本明細書では、後者による復帰をウエイク・アップという。ウエイク・アップには、ネットワークからの信号を利用するＬＡＮウエイク・アップおよびコンピュータの時計を利用するＲＴＣウエイク・アップなどがある。
【００１０】
ＲＴＣウエイク・アップにはコンピュータに実装されたＲＴＣチップとＲＴＣメモリが利用される。ＲＴＣチップは、システムにカレンダ時刻を提供するＲＴＣ（Real Time Clock）といわれる半導体チップである。ＲＴＣチップはコンピュータの時刻情報を生成するためいかなるパワー・ステートのときにも動作する必要がある。したがって、ＲＴＣチップには、システム・デバイスに電力を供給する電力源とは異なる専用のバックアップ電池から電力が供給される。
【００１１】
バックアップ電池としては通常マザーボードに実装されたボタン電池が使用される。ＲＴＣメモリはＲＴＣチップと組になって動作して、カレンダ時刻を記憶したりアラームを設定したりする役割を果たす。ＲＴＣメモリは電力を停止するだけで記憶内容を消去できるなどの理由で通常はＳＲＡＭのような揮発性のメモリで構成され、ＲＴＣチップと同じバックアップ電池から電力の供給を受けて動作する。従来は、このバックアップ電池から、ＢＩＯＳの設定情報を記憶するＣＭＯＳメモリにも電力を供給していた。
【００１２】
特許文献１に記載された発明では、待機状態において予想使用時刻の前に深いパワー・ステートからより浅いパワー・ステートに遷移させるためには、深いパワー・ステートにおいてカレンダ時刻を取得するために、ＲＴＣチップから時刻情報を取得する必要がある。近年の携帯式コンピュータでは、ＲＴＣチップおよびＲＴＣメモリがシステムのさまざまな機能を含むチップ・セットに組み込まれるようになり、また、ＲＴＣメモリにはＢＩＯＳの設定情報なども記憶されるようになってきた。
【００１３】
その理由は、チップ・セットは、微細なシリコン・プロセスで製作されるためダイの余分なスペースにＲＴＣを容易に組み込むことができ、かつ、微細プロセスであるため消費電力が少なくボタン電池の消耗を抑えることができる点にある。また、ＲＴＣメモリは、時刻情報だけでなくシステムの設定情報も記憶するようになってきているため、ＲＴＣを同じチップ・セットに設けた方が、ＢＩＯＳやＭＥ（Management Engine）などからのアクセスを容易にできるとう理由もある。
【００１４】
ＲＴＣチップをチップ・セットに組み込むと、待機状態においてパワー・ステートを遷移させてＲＴＣウエイク・アップを実現するために、少なくともチップ・セットの一部に電力を供給する必要があり、チップ・セットのＲＴＣに関係のない機能ブロックおよびその電力源としてのＤＣ／ＤＣコンバータの損失が待機電力として消費される。特許文献２では、待機状態のときにＩＣＨに組み込まれたＲＴＣではなくゲート・アレイ回路に組み込まれたタイマがＭ電源系統をオンにするために時間を計測しているが、ＲＴＣウエイク・アップには時刻情報が必要になるためタイマだけではＲＴＣウエイク・アップに対応できない。
【００１５】
コンピュータに待機状態で動作させる専用のＲＴＣチップを設けて、待機状態で所定の時刻にパワー・ステートの遷移をさせる方法もあるが、精度の高い発振子を含むＲＴＣチップを追加的に設けることはコスト面およびスペース面で得策ではない。また、ゲート・アレイ回路やその他の待機状態で動作するデバイスに精度の高いＲＴＣを組み込むことも同様の理由で得策ではない。ここに、待機電力の低減と復帰時間の短縮というパワー・ステートに対する相反する課題を解決する必要が生じてくる。
【００１６】
そこで本発明の目的は、待機電力の低減とウエイク・アップ時間の短縮を図ることが可能なコンピュータを提供することにある。さらに本発明の目的はそのようなコンピュータにおけるウエイク・アップの方法を提供することにある。
【課題を解決するための手段】
【００１７】
所定のカレンダ時刻でコンピュータがより浅いパワー・ステートにウエイク・アップするには、深いパワー・ステートにおいて当該カレンダ時刻にウエイク・イベントを生成する必要がある。ウエイク・イベントの生成には、リアル・タイム・クロック（ＲＴＣ）が生成するカレンダ時刻を利用することが通常であるが、ＲＴＣの利用には比較的大きな待機電力を消費する。本発明では、浅いパワー・ステートにおいてＲＴＣと計時回路の連携動作または計時回路の動作だけでウエイク・イベントを生成することで待機電力の低減を図る。
【００１８】
本発明の第１の態様は、カレンダ時刻を計時するＲＴＣと経過時間を計時する計時回路を備える。コンピュータには、第１のパワー・ステートから第２のパワー・ステートにウエイク・アップする時刻に相当するウエイク・アップ時刻が設定される。ウエイク・アップは、第１のパワー・ステートから第２のパワー・ステートに遷移する動作である。第１のパワー・ステートは待機電力が小さくパワー・オン状態までの復帰時間が長い深いパワー・ステートとすることができる。あるいは、第１のパワー・ステートはパワー・オフ状態とすることができる。さらに、パワー・オフ状態はハイバネーション状態とすることができる。
【００１９】
第２のパワー・ステートは待機電力が大きくパワー・オン状態までの復帰時間が短い浅いパワー・ステートとすることができる。あるいは第２のパワー・ステートはサスペンド状態とすることができる。第１のパワー・ステートからサスペンド状態に遷移する際には一時的にパワー・オン状態を経由して遷移する。さらに第２のパワー・ステートはパワー・オン状態とすることができる。
【００２０】
計時回路には、第１のパワー・ステートに遷移する前にＲＴＣから取得した現在の時刻からウエイク・アップ時刻の前までの時間に相当する第１の満了時間値が設定される。そして計時回路に供給する電力を維持しながら第１のパワー・ステートに遷移する。計時回路はＲＴＣのカレンダ時刻に関連付けられた経過時間を計時するために、ウエイク・アップ時刻の前に第１の満了時間値に到達する。第１のパワー・ステートで計時回路が計時した経過時間が第１の満了時間値に到達したときにリアル・タイム・クロックが生成するカレンダ時刻が計時したウエイク・アップ時刻でウエイク・アップする。
【００２１】
本発明によれば、パワー・オフ状態の大部分の時間帯では計時回路が動作し、ＲＴＣを利用してウエイク・アップを実現する回路はウエイク・アップ時刻の直前の短い時間帯で動作させることができる。計時回路に大きな誤差があるとしてもウエイク・アップ時刻の前に第１の満了時間値に到達させてウエイク・アップを実現する回路を動作させればカレンダ時刻に基づいてウエイク・アップさせることができる。計時回路が動作している間にＲＴＣが計時動作をしていてもウエイク・アップを実現する回路に電力を供給する必要がないため待機電力を低減できる。
【００２２】
計時回路の誤差は、第１の満了時間値に対応する時刻とウエイク・アップ時刻の差の時間として現れる。その差の時間ではウエイク・アップを実現する回路に電力を供給することになるが、計時回路を利用することで大部分の時間帯では当該回路の電力を停止できる。したがって、計時回路にはある程度の誤差を許容できるため消費電力の小さいハードウエアで構成することができる。ただし、計時回路の誤差が少ないほどウエイク・アップを実現する回路に電力を供給する時間を短くできるので、第１の満了時間値を設定する直前に計時回路を校正することが望ましい。
【００２３】
計時回路の校正は、ＲＴＣまたはクロック・ジェネレータのクロックを利用して短時間で行うことができる。計時回路は、リング発振器を使用したハードウエアで校正することができる。リング発振器を使用した計時回路の精度は温度依存性が高い。この場合、校正をサスペンド状態で実行すると、実際の計時動作をする温度環境に近い状態で校正できるため計時回路の精度をより向上することができる。
【００２４】
ＲＴＣは、ＲＴＣを利用したＲＴＣウエイク・アップ機能を実現するＲＴＣ機能ブロック備えるチップ・セットに組み込み、第１のパワー・ステートでＲＴＣ機能ブロックの電力を停止することができる。ＲＴＣ機能ブロックがＲＴＣウエイク・アップをする際には、計時回路が計時した経過時間がウエイク・アップ時刻の前に第１の満了時間値に到達したことに応答してＲＴＣ機能ブロックに電力を供給する。そしてＲＴＣ機能ブロックは、ＲＴＣが生成する現在の時刻がウエイク・アップ時刻に到達したときにコンピュータをウエイク・アップさせることができる。
【００２５】
計時回路の誤差を小さくするために、計時回路の校正と満了時間値の設定を複数回繰り返すことができる。具体的には、第１のパワー・ステートにおいて計時回路が所定の経過時間を計時したことに応答して、ＲＴＣ機能ブロックに電力を供給する。ＲＴＣ機能ブロックに電力が供給されたときに計時回路を校正し、校正された計時回路にＲＴＣから取得した校正直後の時刻からウエイク・アップ時刻の前までの時間に相当する第２の満了時間値を設定しその後ＲＴＣ機能ブロックの電力を停止する。計時回路は第２の満了時間値までの計時動作を開始する。第１のパワー・ステートで計時回路が計時した経過時間が第２の満了時間値に到達したときにＲＴＣ機能ブロックに電力を供給する。電力が供給されたＲＴＣ機能ブロックは、現在の時刻がウエイク・アップ時刻に到達したときにコンピュータをウエイク・アップさせることができる。
【００２６】
本発明の第２の態様では、現在時刻のウエイク・アップ時刻への到達をＲＴＣではなく計時回路が判断する。計時回路が計時した経過時間が満了時間値に到達したときにウエイク・アップさせる。この場合満了時間値としては、リアル・タイム・クロックから取得した現在の時刻からウエイク・アップ時刻までの時間に相当する時間を設定する。この場合でも、パワー・オフ状態に遷移する前に計時回路を校正して精度を向上させることで、設定したウエイク・アップ時刻に対する満了時間値までの経過時間の誤差を抑えることができる。
【発明の効果】
【００２７】
本発明により、待機電力の低減とウエイク・アップ時間の短縮を図ることが可能なコンピュータを提供することができた。さらに本発明によりそのようなコンピュータにおけるウエイク・アップの方法を提供することができた。
【図面の簡単な説明】
【００２８】
【図１】本実施の形態にかかるノートＰＣの主要な構成を示す概略の機能ブロック図である。
【図２】パワー・ステートとＤＣ／ＤＣコンバータの動作関係を示す図である。
【図３】ＳＳＭウエイク・アップの実行に伴うパワー・ステートの遷移を示す全体図である。
【図４】ＳＳＭウエイク・アップの実行に伴うパワー・ステートの遷移を示す詳細図である。
【図５】ＳＳＭウエイク・アップの実行手順を示すフローチャートである。
【図６】ＳＳＭウエイク・アップの実行に伴うパワー・ステートの他の遷移を示す詳細図である。
【図７】ＳＳＭウエイク・アップにおける消費電力の変化を説明する図である。
【発明を実施するための形態】
【００２９】
［ノートＰＣの構成］
図１は、ノートブック型パーソナル・コンピュータ（以下、ノートＰＣという。）１０の主要な構成を示す概略の機能ブロック図である。中央制御部１１は、ＣＰＵ１３、メモリ・コントローラ・ハブ（ＭＣＨ）１４、およびメイン・メモリ１５などのハードウエアと、メイン・メモリ１５に読み出されてＣＰＵ１３で実行される、ＯＳ１６、ＢＩＯＳ１７およびスリープ・ステート・マネジメント（ＳＳＭ）プログラム１８などのソフトウエアで構成される。ここに、ＳＳＭとは、待機状態におけるノートＰＣ１０のパワー・ステートを制御する技術をいう。
【００３０】
ノートＰＣ１０は、ＡＣＰＩの規格に適合しており、Ｇ０ステート、Ｇ１ステート、Ｇ２ステート、およびＧ３ステートの４つのグローバル・システム・ステートに遷移することができる。Ｇ０ステートはパワー・ステートとしてのＳ０ステートに相当し、ＣＰＵ１１はアプリケーション・プログラムを実行できる状態となり、周辺デバイスは電力が供給されるが独自の機能に基づいて省電力動作をする。本明細書ではこの状態をパワー・オン状態という。Ｇ１ステートはスリーピング・ステートともいわれ、パワー・ステートとしてのＳ１ステートからＳ４ステートに相当する。このなかでノートＰＣ１０にはＳ３ステートとＳ４ステートが定義されている。
【００３１】
Ｓ３ステートはサスペンド状態ともいわれ、メイン・メモリ１５の記憶を保持するために必要なデバイスの電源を除いてほとんどのデバイスの電源が停止する。Ｓ４ステートは、ハイバネーション状態ともいわれ、システムのコンテキストがＨＤＤ２２に記憶されてほとんどのデバイスの電源が停止する。Ｇ２ステートはソフト・オフともいわれるパワー・ステートとしてのＳ５ステートに相当し、システムのコンテキストをＨＤＤ２２に記憶しないでほとんどのデバイスの電源が停止する。Ｇ３ステートは、メカニカル・オフ・ステートともいわれ、ボタン電池２５を除いてノートＰＣ１０の一切の電源は停止する。
【００３２】
ノートＰＣ１０がＳ３ステート、Ｓ４ステート、またはＳ５ステートに遷移している状態は待機状態に相当する。待機状態では待機電力を消費する。Ｓ３ステートはＳ０ステートまで遷移する時間が短いが待機電力は大きい。これに比べてＳ４ステートは遷移する時間は長いが待機電力は小さい。Ｓ５ステートは待機電力が最も小さいが起動するときに最初からブートが実行されＳ５ステートに遷移する前のＳ０ステートの状態に復帰することはできない。
【００３３】
短時間でＳ０ステートに遷移できる利便性に着目すると、待機状態としてＳ３ステートを利用することが望ましい。ＳＳＭプログラム１８は、コンピュータ１０がユーザの利用態様に応じてＳ３ステートとＳ０ステートを遷移するときの履歴を所定期間記録して、比較的長い時間Ｓ３ステートに遷移している曜日ごとの平均的な時間帯を計算する。そのような時間帯を長スリープ時間帯（ＬＳＴ）ということにする。ＬＳＴは、ユーザがその生活のリズムの中でノートＰＣ１０を使用する可能性が低い時間帯に相当する。
【００３４】
ＬＳＴはたとえば、月曜日から木曜日では毎日２１：００に開始し、翌日の９：００に終了する時間帯であったり、金曜日では２１：００に開始して翌週の月曜日の９：００に終了する時間帯であったりする。本明細書ではＬＳＴの開始時刻をＬＳＴ開始時刻といい、ＬＳＴが終了する時刻をＬＳＴ終了時刻といい、両者を含めてＬＳＴ時刻ということにする。ＳＳＭプログラム１８は、ユーザがＬＳＴ時刻を設定するための画面をＬＣＤ１９に表示する。ユーザはＳＳＭプログラム１８を通じてＬＳＴ時刻を設定することができる。
【００３５】
ＩＣＨ２１は、周辺入出力デバイスに関するデータ転送を処理する。ＩＣＨ２１は、ＵＳＢ（Universal Serial Bus）、ＳＡＴＡ（Serial AT Attachment）、ＳＰＩ (Serial Peripheral Interface)バス、 ＰＣＩ（Peripheral Component Interconnect）バス、ＰＣＩ−Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バス、およびＬＰＣ（Low Pin Count）バスなどのインターフェースを備え、それらに対応したデバイスを接続することができる。
【００３６】
図１では、ＳＡＴＡポートに接続されたＨＤＤ２２とＬＰＣポートに接続されたエンベデッド・コントローラ（ＥＣ）３１を示している。ＩＣＨ２１はさらに、ＲＴＣ２３、ＲＴＣメモリ２４およびクロック・ジェネレータ２７を含んでいる。ＲＴＣ２３はシステムが使用するカレンダ時刻を生成するための計時動作をする。カレンダ時刻とは、年、月、日、時、分、秒というようなカレンダ上のある１点の時刻を示す情報をいう。
【００３７】
ＲＴＣメモリ２４はＲＴＣ２３の計時動作に基づいて生成されたカレンダ時刻を記憶する。ＯＳ１６は、ネットワークを通じて取得した標準時刻で定期的にＲＴＣメモリ２４が記憶するカレンダ時刻を補正することができる。ＲＴＣメモリ２４に記憶されたカレンダ時刻はシステムに提供され、ファイルのタイム・スタンプやスケジュール管理などに利用される。ＲＴＣメモリ２４には、ＢＩＯＳ１７またはＯＳ１６が設定したハードウエアの設定情報およびパスワードならびにインテル社のＡＭＴ（Active Management Technology ）に関する設定情報などのデータも格納する。
【００３８】
ＲＴＣ２３およびＲＴＣメモリ２４はＩＣＨ２１に電力が供給されるときはその電力で動作するが、ＩＣＨ２１に電力が供給されないときはボタン電池２５から供給された電力で動作するため、ノートＰＣ１０がいかなるパワー・ステートに遷移していてもカレンダ時刻の生成が停止することはない。ＩＣＨ２１は、周知のＲＴＣウエイク・アップ機能を備えている。
【００３９】
ＲＴＣウエイク・アップ機能は、ＩＣＨ２１がＲＴＣメモリ２４のカレンダ時刻を利用してＲＴＣメモリ２４に設定されたＬＳＴ終了時刻でパワー・ステートをＳ３ステートからＳ０ステートに遷移させたり、Ｓ４ステートからＳ３ステートまたはＳ０ステートに遷移させたりすることをいう。ＩＣＨ２１のＲＴＣウエイク・アップ機能を利用してこれまでの方法でＳ４ステートからＳ３ステートまたはＳ０ステートに遷移させるためには、Ｓ４ステートにおいてＲＴＣウエイク・アップを行うために必要なＩＣＨ２１の機能ブロック（以下、ＲＴＣ機能ブロック２６という。）に電力を供給する必要がある。この場合、Ｓ４ステートでＲＴＣ機能ブロック２６に電力を供給すると待機電力が増加する。本実施の形態では後に説明するように、Ｓ４ステートでＲＴＣ機能ブロック２６に電力を供給しないでウエイク・アップを行う。
【００４０】
クロック・ジェネレータ２７は、一例として精度の高い３２Ｋ水晶振動子と発振回路で構成され、コンピュータ１０のデバイスが使用するシステム・クロックを生成する。クロック・ジェネレータ２７は、タイマ３６を校正するためのシステム・クロックをＥＣ３１に供給する。クロック・ジェネレータ２７がＥＣ３１にシステム・クロックを供給するために動作するＩＣＨ２１の機能ブロックをクロック機能ブロック２８という。ＩＣＨ２１は、機能ブロックごとに電力を供給することができる。他の例ではクロック・ジェネレータ２７は、ＩＣＨ２１から独立した半導体チップで形成し、電力をＩＣＨ２１から独立して供給するようにしてもよい。ＨＤＤ２２は、ＯＳ１６、ＢＩＯＳ１７、およびＳＳＭプログラム１８を格納する。
【００４１】
ＥＣ３１は、ＣＰＵ、ＲＯＭ、ＥＥＰＲＯＭ、ＤＭＡコントローラ、割り込みコントローラ、およびタイマなどで構成されたマイクロ・コンピュータであり、さらにＡ／Ｄ入力端子、Ｄ／Ａ出力端子、ＳＭバス・ポート、ＳＰＩバス・ポート、およびディジタル入出力端子を備えている。ＥＣ３１はＣＰＵ１１からは独立して動作し、ノートＰＣ１０に実装されるデバイスに供給する電力をパワー・ステートに応じて制御したり、システム筐体の内部の温度を管理したりする。
【００４２】
ＥＣ３１のＥＥＰＲＯＭ３２には、ＥＣ３１のＣＰＵが実行するプログラムが格納されている。そのプログラムは後に説明する本発明のＳＳＭウエイク・アップを実現するコードを含む。ＥＥＰＲＯＭ３２には、ＳＳＭビット、遷移ビット、原因ビット、ＬＳＴ時刻、ＬＳＴビット、ウエイク・ビット、およびＡＣビットが記憶される。
【００４３】
ＳＳＭビットは、ＳＳＭウエイク・アップをイネーブルに設定するためにＳＳＭプログラム１８が提供するインターフェースを通じてユーザが設定する。ＳＳＭビットが設定されたときは、ＳＳＭウエイク・アップによりＳ４ステートからＳ０ステートまたはＳ４ステートから一時的にＳ０ステートを経由してＳ３ステートに遷移し、ＳＳＭビットが設定されていないときはＲＴＣ機能ブロック２６によるＲＴＣウエイク・アップによりＳ３ステートからＳ０ステートへ遷移する。ＳＳＭビットが設定されたときの本実施の形態にかかるウエイク・アップをＲＴＣウエイク・アップと区別するためにＳＳＭウエイク・アップということにする。
【００４４】
遷移ビットはパワー・ステートがＳ０ステートに遷移するときの遷移元のパワー・ステートを示しＳ５ステート、Ｓ４ステート、またはＳ３ステートを区別するビットとして記憶される、遷移ビットはＳ０ステートに遷移する際にＣＰＵ１３が参照する。ＥＣ３１は、システムが待機状態に遷移する際に遷移先のパワー・ステートの情報を中央制御部１１またはＰＭＣ回路３３から受け取ってＥＥＰＲＯＭ３２に遷移ビットとして記憶し、Ｓ０ステートに遷移したときに当該ビットをリセットする。
【００４５】
原因ビットは、パワー・ステートが遷移するときの原因を示す情報で、ＬＡＮウエイク・アップの実行に関するビット、ＲＴＣウエイク・アップの実行に関するビット、ＳＳＭウエイク・アップの実行に関するビット、パワー・ボタン５１の押下を示すビットおよびリッド・センサ５３の動作を示すビットを区別する。ＬＳＴ時刻は、ＳＳＭプログラム１８によって設定される。ＬＳＴビットは、現在のカレンダ時刻がＬＳＴに入っているときにＩＣＨ２１によって設定される。ウエイク・ビットは、タイマ３６がカウント終了信号を出力したときにＰＭＣ回路３３の制御回路３５により設定されＳＳＭウエイク・アップのイベントとして使用される。ＡＣビットは、ＡＣ／ＤＣアダプタ４３が接続されてノートＰＣ１０がＡＣ供給の状態であることを示す。
【００４６】
ＣＰＵ１３は、待機状態のときに電力が供給されて動作を開始する際に、ＥＥＰＲＯＭ３２を参照して、それらの状態に応じたプログラムを実行する。ＥＣ３１は、ＰＭＣ回路３３に組み込まれたタイマ３６をクロック・ジェネレータ２７のシステム・クロックを基準にして校正する。ＥＣ３１は、ＥＥＰＲＯＭ３２に設定されたＬＳＴ時刻に基づいて、タイマ３６を利用してＳＳＭウエイク・アップを行う。ＥＣ３１は、ＳＭバスで電池パック４９に接続され、ＳＰＩバスでＰＭＣ回路３３に接続されている。
【００４７】
ＡＣ／ＤＣアダプタ４３は、一次側が商用電源のアウトレットに接続され、二次側がノートＰＣ１０の筐体に接続される。ＡＣ／ＤＣアダプタ４３は交流電圧を直流電圧に変換してＤＣ／ＤＣコンバータ７１〜７７に電力を供給し、さらに充電器４５に電力を供給して電池パック４９を充電することができる。ＡＣ／ＤＣアダプタ４３の出力には電圧検出器４７が接続されている。電圧検出器４７は、ＡＣ／ＤＣアダプタ４３の出力に所定の範囲の電圧が発生していることを示す電圧検出信号をＰＭＣ回路３３に出力する。
【００４８】
電池パック４９は、ＡＣ／ＤＣアダプタ４３が接続されていないときにＤＣ／ＤＣコンバータ７１〜７７に電力を供給するノートＰＣ１０の電力源となる。ＤＣ／ＤＣコンバータ７１〜７７に対する電力源がＡＣ／ＤＣアダプタ４３の場合をＡＣ供給といい、電池パック４９の場合をＤＣ供給ということにする。電池パック４９はＡＣ供給のときに、ＡＣ／ＤＣアダプタ４３が供給する電力で充電器４５により充電される。
【００４９】
ＰＭＣ回路３３はＮＡＮＤ回路およびＮＯＲ回路などの論理回路、単体のトランジスタ、および抵抗やコンデンサのような受動素子などで構成されたＡＳＩＣ（Application Specific Integrated Circuit）で製作され、制御回路３５、タイマ３６、レジスタ３７〜４０を含んでいる。ＰＭＣ回路３３は、ハードウエア回路だけで構成されプロセッサは含まないため消費電力は極わずかである。ＰＭＣ回路３３には、電圧検出器４７、ＥＣ３１、ＤＣ／ＤＣコンバータ７３〜７７の制御回路、筐体に設けられユーザがノートＰＣ１０を起動するために押下するパワー・ボタン５１、および筐体の蓋の開閉を検知するリッド・センサ５３が接続されている。
【００５０】
制御回路３５は、ＥＣ３１からの指示、パワー・ボタン５１の押下信号、またはリッド・センサ５３の動作信号に基づいてＤＣ／ＤＣコンバータ７３〜７７の動作を制御したり、電力源をＡＣ／ＤＣアダプタ４３と電池パック４９との間で切り換えたりする。制御回路３５はタイマ３６からＳＳＭウエイク・アップを実行するためのカウント終了信号を受け取るとＥＥＰＲＯＭ３２のウエイク・ビットを設定する。タイマ３６はＥＣ３１により設定されたカウント設定値に基づいて待機状態で計時動作をしてＳＳＭウエイク・アップを実行するためのカウント終了信号を出力する。タイマ３６は、リング発振器と計算回路で構成されているため、ＰＭＣ回路３３は、タイマ３６を組み込んでも消費電力がほとんど増加しない。
【００５１】
リング発振器は奇数個のインバータをリング状に接続して構成され、インバータの段数で決定される発振周波数のパルス信号を生成する。計算回路はリング発振器が生成したパルス信号をカウントするカウンタ、ＥＣ３１がカウンタのカウント設定値を設定する設定回路、キャリー・ビットを処理するキャリー・ビット回路、および設定回路に設定されたカウント数がカウントされたときに制御回路３５にカウント終了信号を出力する出力回路を含む。
【００５２】
タイマ３６は、設定回路にカウント設定値が設定されるとカウンタが動作を開始し、カウント値がカウント設定値に到達したときに出力回路がカウント終了信号を出力する。リング発振器は、インバータの遅延時間が浮遊容量、負荷容量、および抵抗などの個体の特質や温度により変化するために精度が低い。たとえば、１０ＫＨｚの発振周波数のときに誤差は±５０％程度にまで達することがある。
【００５３】
したがって、タイマ３６だけではＳＳＭウエイク・アップの利用に必要な精度の時間を計測することができない場合があるため、本実施の形態ではＥＣ３１がタイマ３６を動作させる直前にシステム・クロックで校正する。レジスタ３７には、ＥＣ３１がＥＥＰＲＯＭ３２に記憶した遷移元のパワー・ステートを記憶する。制御回路３５は、パワー・ボタン５１の押下があったときまたはリッド・センサ５３が動作したときにレジスタ３７を参照してＤＣ／ＤＣコンバータ７３〜７７の動作を制御する。
【００５４】
レジスタ３８は、パワー・ボタン５１の押下またはリッド・センサ５３の動作があったときにその起動原因を示すビットを記憶する。ＥＣ３１は、Ｓ０ステートに遷移する際にレジスタ３８を参照してＥＥＰＲＯＭ３２にレジスタ３８の起動原因を記憶する。レジスタ３９には、タイマ３６からカウント終了信号を受け取った制御回路３５がウエイク・ビットを設定する。ＥＣ３１は、ＤＣ／ＤＣコンバータ７３から電力が供給されたときに、レジスタ３９にウエイク・ビットが設定されていることを検知したときは、ＳＳＭウエイク・アップに関する所定の処理を行う。レジスタ４０には、電圧検出器４７から電圧検出信号を受け取った制御回路３５が、現在ＡＣ供給であることを示すＡＣビットを設定する。制御回路３５は、ＡＣビットをＥＥＰＲＯＭ３２にも設定する。
【００５５】
ＤＣ／ＤＣコンバータ７１、７３、７５、７７は、ＡＣ／ＤＣアダプタ４３または電池パック４９のいずれかを電力源とし、パワー・ステートに応じてＰＭＣ回路３３に制御されてノートＰＣ１０のさまざまなデバイスに電力を供給する。図１の各構成要素には、＃１〜＃４の記号でＤＣ／ＤＣコンバータ７１〜７７のいずれが電力源であるかを示している。たとえば、ＩＣＨ２１は、機能ブロックごとに電力が供給できるように構成されており、各機能要素には、パワー・ステートに応じてＤＣ／ＤＣコンバータ７３、７５、７７から電力が供給される。ＥＣ３１には、ＤＣ／ＤＣコンバータ７３から電力が供給される。ＰＭＣ３３には、ＤＣ／ＤＣコンバータ７１から電力が供給される。
【００５６】
ＤＣ／ＤＣコンバータ７１は、構成が簡単で軽負荷時の効率に優れたリニア・レギュレータで構成されている。リニア・レギュレータは可変抵抗素子の抵抗値を制御して出力電圧を所定の範囲に維持するが、入力電圧と出力電圧の差は熱として放熱する必要があり、負荷が大きくなると効率が低下するので小さい負荷の電力源に適している。ＤＣ／ＤＣコンバータ７１は、ＡＣ／ＤＣアダプタ４３または電池パック４９がシステムに電力を供給するときには常にＰＭＣ回路３３に電力を供給する。
【００５７】
ＤＣ／ＤＣコンバータ７３、７５、７７は、構成は複雑であるが高負荷時の効率に優れたスイッチング・レギュレータで構成されている。スイッチング・レギュレータは、スイッチング素子のデューティ比を制御して出力電圧を所定の範囲に維持する。スイッチング・レギュレータは、軽負荷時にもスイッチング損失が発生するので、ＤＣ／ＤＣコンバータ７１のような小さい負荷に対してはリニア・レギュレータよりも効率が低い。
【００５８】
［パワー・ステートと電源系統の関係］
図２は、パワー・ステートとＤＣ／ＤＣコンバータの動作関係を示す図である。図２（Ａ）はＳＳＭウエイク・アップを導入していないコンピュータにおける従来のパワー・ステートまたはＳＳＭウエイク・アップは導入されているがＥＥＰＲＯＭ３２のＳＳＭビットがディスエーブルに設定されているときのパワー・ステートを示す。図２（Ｂ）はＳＳＭが導入され、かつＳＳＭビットがイネーブルに設定されているときのパワー・ステートを示す。
【００５９】
本実施の形態では、Ｓ４ステートとＳ５ステートはそれぞれにおいて、ＡＣ供給とＤＣ供給で動作するＤＣ／ＤＣコンバータが異なる。さらに図２（Ｂ）に示すように、ＳＳＭウエイク・アップを実現するためにＤＣ供給のときのＳ４ステートに、従来の定義によるＳ４ステート（以後、これを通常Ｓ４ステートという。）に加えて新たにＲＴＣ−Ｓ４ステートを定義する。通常Ｓ４ステートではＤＣ／ＤＣコンバータ７３が動作しないためにＥＣ３１とＩＣＨ２１には電力が供給されないが、ＲＴＣ−Ｓ４ステートではＤＣ／ＤＣコンバータ７３が動作してＩＣＨ２１のＲＴＣ機能ブロック２６、クロック機能ブロック２８およびＥＣ３１に電力を供給する。
【００６０】
なお、ＲＴＣ−Ｓ４ステートでは、通常Ｓ４ステートと同じようにシステムのコンテキストがＨＤＤ２２に記憶される。ＲＴＣ−Ｓ４ステートは、通常Ｓ４ステートおよびＳ５ステートとともにパワー・オフ状態である。ＲＴＣ−Ｓ４ステートでは、ＥＣ３１はクロック・ジェネレータ２７が生成したシステム・クロックを取得してタイマ３６を校正することができる。他の例では、ＲＴＣ−Ｓ４ステートでＥＣ３１は、ＲＴＣ２３からクロックを取得してタイマ３６を校正することができる。
【００６１】
図２（Ｂ）においてＤＣ／ＤＣコンバータ７１は、Ｇ３ステートを除くすべてのパワー・ステート（Ｓ５、Ｓ４、Ｓ３、Ｓ０）で動作し、ＰＭＣ回路３３、電池パック４９の状態を表示するＬＥＤ（図示せず。）、およびリッド・センサ５３などのパワー・オフ中の状態表示および起動に関連する最低限のデバイスに電力を供給する。ＤＣ／ＤＣコンバータ７３は、Ｇ３ステート、Ｓ５ステート（ＤＣ供給）および通常Ｓ４ステート（ＤＣ供給）で動作を停止し、その他のパワー・ステートで動作してＩＣＨ２１の一部とＥＣ３１に電力を供給する。
【００６２】
ＤＣ／ＤＣコンバータ７３から電力が供給されるＩＣＨ２１の一部にはＩＣＨ２１のＲＴＣ機能ブロック２６およびクロック機能ブロック２８を含む。ＤＣ／ＤＣコンバータ７５は、Ｓ０ステートおよびＳ３ステートで動作し、ＩＣＨ１７の一部、ＭＣＨ１３およびメイン・メモリ１５などのメイン・メモリ１５の記憶を維持するために必要な回路に電力を供給する。ＤＣ／ＤＣコンバータ７７はＳ０ステートで動作し、ＩＣＨ２１の一部、ＣＰＵ１３およびＨＤＤ２２などの残りのデバイスに電力を供給する。ＡＣ供給のときは常にＤＣ／ＤＣコンバータ７３が動作するのでＳＳＭウエイク・アップを行なわないで従来のＲＴＣウエイク・アップを行うことができる。
【００６３】
〔ＲＴＣ−Ｓ４ステートを経由するＳＳＭウエイク・アップの実行手順〕
図３、図４は、ＳＳＭウエイク・アップの実行に伴うパワー・ステートの遷移を示す図で、図５は、ＳＳＭの実行手順を示すフローチャートである。図７（Ａ）は、ＳＳＭの実行に伴う消費電力の変化を説明する図である。図３では、Ｓ５ステート、ＲＴＣ−Ｓ４ステートまたは通常Ｓ４ステートとＳ３ステート間の遷移はＳ０ステートを経由して行うことを示している。また、Ｓ５ステート、通常Ｓ４ステートまたはＳ３ステートとＳ０ステートの間の遷移は、従来から行われていたステート遷移でもある。図７（Ａ）は、縦方向が電力軸で横方向が時間軸であるが縮尺は無視している。また、図７（Ａ）の番号は図４のノード番号に対応する。
【００６４】
最初にＳＳＭウエイク・アップの概要を説明する。ＳＳＭウエイク・アップは主として、ＰＭＣ回路３３のタイマ３６、ＩＣＨ２１のＲＴＣ機能ブロック２６、クロック機能ブロック２８およびＥＣ３１の連携動作により実行される。ＳＳＭウエイク・アップでは通常Ｓ４ステートでＲＴＣ機能ブロック２６の電力を停止し、ＬＳＴ終了時刻の前にＲＴＣ−Ｓ４ステートに遷移してＲＴＣ−Ｓ４ステートからＳ０ステートを経由してＳ３ステートに遷移する。
【００６５】
具体的に図７（Ａ）で説明すると、ノートＰＣ１０のパワー・ステートを、ＬＳＴ開始時刻ｔ０を基準にして通常Ｓ４ステートに遷移し、ＬＳＴの間に強制的に起動されない限り時刻ｔ２でＲＴＣ−Ｓ４ステートに遷移し、ＬＳＴ終了時刻ｔ１でＳ３ステートに遷移する。したがって、ＳＳＭウエイク・アップは、待機状態においてＳ３ステートに遷移させておくことの利便性を確保しながら待機状態の電力を従来のＲＴＣウエイク・アップよりも低減することができる。その結果、ユーザはＬＳＴ終了時刻以降にノートＰＣ１０を使用したいときには、Ｓ３ステートから短時間で起動することができる。
【００６６】
図５のブロック２０１では、ＳＳＭプログラム１８がノートＰＣ１０の使用履歴に基づいて、または、ＳＳＭプログラム１８が提供するインターフェースを通じてユーザがＲＴＣメモリ２４とＥＥＰＲＯＭ３２にＬＳＴ時刻ｔ０、ｔ１を設定する。さらにユーザはＥＥＰＲＯＭ３２にＳＳＭビットを設定する。ノートＰＣ１０には、ＡＣ／ＤＣアダプタ４３が接続されておらずレジスタ４０およびえＥＰＲＯＭ３２にはＡＣビットは設定されていない。この状態でのパワー・ステートは図２（Ｂ）のとおりＲＴＣ−Ｓ４ステートを含むことになる。
【００６７】
ブロック２０３では、ユーザがノートＰＣ１０を使用したり終了したりしている。ユーザはノートＰＣ１０の利用を終了するためにＯＳ１６のインターフェースを通じて終了の指示をしたり、または、筐体の蓋を閉じたりする。このときノートＰＣ１０は、リッド・センサ５３の動作または中央制御部１１の指示によりＳ３ステートに遷移する。ＥＣ３１は中央制御部１１から使用終了の指示を受け取ったとき、またはＰＭＣ３３からリッド・センサ５３の動作を示す信号を受け取ったときに、遷移先のパワー・ステートをＥＥＰＲＯＭ３２に設定してＳ３ステートに遷移するイベントをＩＣＨ２１に通知する。
【００６８】
ＩＣＨ２１は中央制御部１１にＳ３ステートに遷移する準備をするように指示する。中央制御部１１から準備完了の通知を受け取ったＩＣＨ２１は、ＥＣ３１にＳ３ステートへ遷移するように要求する。ＥＣ３１は、ＰＭＣ３３に指示してＤＣ／ＤＣコンバータ７７の動作を停止させる。このときＤＣ／ＤＣコンバータ７５は動作しているためメイン・メモリ１５には電力が供給されている。
【００６９】
ユーザがパワー・ボタン５１を押下したり筐体を開いたりすると、ＰＭＣ回路３３はＤＣ／ＤＣコンバータ７７を動作させる。電源が供給されたＣＰＵ１３はリセット動作をするとＥＥＰＲＯＭ３２の遷移元のパワー・ステートを確認してＳ３ステートに遷移する前の状態で動作を再開する。ここまでの手順は従来から行われていたもので、図４のノード１からノード２のパスとして示している。
【００７０】
ブロック２０５でＥＣ３１は、現在ノートＰＣ１０がＳ０ステートからＳ３ステートに遷移する過渡的な状態か否かを判断する。ＥＣ３１はＰＭＣ回路３３またはＩＣＨ２１からイベントを受け取ってＳ３ステートに遷移する状態であると判断したときにはブロック２０７に移行する。本発明では通常の使用状態を妨げないようにしながらＳＳＭウエイク・アップを実行するため、ユーザの利用状態によってノートＰＣ１０はＬＳＴ開始時刻ｔ０の前または後にＳ３ステートに遷移する。ブロック２０７でＥＣ３１は、ＤＣ／ＤＣコンバータ７７の動作を停止してＳ３ステートに遷移してから定期的にＲＴＣメモリ２４から取得した現在のカレンダ時刻がＬＳＴ開始時刻ｔ０に到達したか否かを判断する。
【００７１】
Ｓ３ステートに遷移した際にＬＳＴ開始時刻ｔ０に到達していないと判断したＥＣ３１は、ブロック２０９で、その後ＬＳＴ開始時刻ｔ０に到達しかつＬＳＴ開始時刻ｔ０から１時間〜３時間といった所定の時間ｈ１（図７（Ａ）参照）が経過したか否かを判断する。この所定の時間ｈ１は、ユーザがそれ以降ノートＰＣ１０を使用しないことを推定するための時間で安定してＬＳＴに入ったことを確認する意義がある。現在のカレンダ時刻がＬＳＴ開始時刻ｔ０に入ったと判断したときにＥＣ３１はＥＥＰＲＯＭ３２にＬＳＴビットを設定する。
【００７２】
所定の時間ｈ１が経過したと判断したときは、ＥＣ３１はＥＥＰＲＯＭ３２にＳＳＭウエイク・アップの実行に関する原因ビットを設定する。ＥＣ３１はブロック２１３でタイマ３６に校正のためのカウント値を設定しタイマがカウント値までのカウントを終了したときに制御回路３５からカウント終了信号を受け取る。ＥＣ３１はタイマがカウントしている時間と同じ時間にクロック・ジェネレータ２７からシステム・クロックを受け取って、リング発振器のクロック周期またはタイマ３６の１カウントの時間を計算しタイマ３６を校正する。リング発振器の発振周波数は温度依存性が高い。タイマ３６はＳＳＭウエイク・アップを実行する際に、消費電力が小さく筐体内部の温度が低い通常Ｓ４ステートで動作するために、タイマ３６の校正は通常Ｓ４ステートに近い温度で行うことが望ましい。
【００７３】
Ｓ３ステートでの筐体温度は通常Ｓ４ステートに近いので、Ｓ０ステートから遷移してから一定の時間が経過してから校正することが望ましい。この視点では、ブロック２０９の所定の時間ｈ１は、より正確な校正作業をするための温度安定期間という意義も有する。ここまでの手順はＳ３ステートでＬＳＴに入った場合に相当し、図４のノード２からノード４へのパスとして示している。
【００７４】
ブロック２０７で、Ｓ３ステートに遷移する際にＬＳＴ開始時刻ｔ０に到達していると判断した場合には、ブロック２１１に移行し、Ｓ３ステートに遷移した時刻から１〜３時間といった所定の時間ｈ２が経過したか否かを判断する。所定の時間ｈ２が経過したと判断した場合は、ＥＣ３１はＥＥＰＲＯＭ３２にＬＳＴビットとＳＳＭウエイク・アップの実行に関する原因ビットを設定してからブロック２１３に移行する。ここまでの手順はＬＳＴに入ってからＳ３ステートに遷移した場合に相当し、図４のノード３からノード４へのパスとして示している。
【００７５】
ブロック２１５でＥＣ３１は、ＲＴＣメモリ２４から現在のカレンダ時刻を取得してタイマ３６に所定のカウント設定値（満了時間値）を設定する。所定のカウント設定値は、現在のカレンダ時刻からＬＳＴ終了時刻ｔ１より所定の時間ｈ３だけ前の時刻ｔ２までの時間ｈ４に相当する値でかつブロック２１３で校正された値である。カウント設定値が設定されたタイマ３６は、カウント動作を開始する。
【００７６】
所定の時間ｈ４は、校正後のタイマ３６の精度を考慮して設定する。ＳＳＭウエイク・アップでは、ノートＰＣ１０を正確にＬＳＴ終了時刻ｔ１でウエイク・アップさせる。所定の時間ｈ４は、誤差が最大になったとしてもタイマ３６がＬＳＴ終了時刻ｔ１を経過する前に制御回路３５にカウント終了信号を出力できるように設定する。所定の時間ｈ４が長いほどＲＴＣ−Ｓ４ステートで動作する時間を短くしあるいは通常Ｓ４ステートで動作する時間を長くして待機電力の低減を図ることができる。ブロック２１３で、タイマ３６を動作させる直前にシステム・クロックを使用して校正しているので、校正しない場合に比べて所定の時間ｈ４を長くすることができる。
【００７７】
カウント設定値の設定が終了したＥＣ３１はブロック２１７で、Ｓ３ステートから通常Ｓ４ステートに遷移させる。Ｓ３ステートから通常Ｓ４ステートに遷移するためには、ＣＰＵ１３、メイン・メモリ１５およびその他のコントローラなどのＳ０ステートでのシステムのコンテキストをＨＤＤ２２に記憶するために、一旦Ｓ０ステートに遷移する必要がある。
【００７８】
カウント設定を設定したＥＣ３１は、ＰＭＣ回路３３にＳＳＭウエイク・アップに入るためにそれまで停止していたＤＣ／ＤＣコンバータ７７を動作させるように指示する。ＣＰＵ１３は電力が供給されるとリセットしてＳ３ステートに遷移する直前のＳ０ステートの状態で動作する。このときＣＰＵ１３は、ＥＥＰＲＯＭ３２に記憶されたＳＳＭビット、原因ビットおよびＬＳＴビットを参照して今回の遷移は使用を目的とする永続的なＳ０ステートへの遷移ではなく、通常Ｓ４ステートへ遷移するための一時的な遷移であることを認識する。
【００７９】
したがって、中央制御部１１は、通常Ｓ４ステートへの遷移に必要のないＬＣＤ１９のバックライトを消灯したり、無線モジュールの動作を停止したりしてＳ０ステートでの無駄な電力の消費を抑制することもできる。中央制御部１１は、ＣＰＵ１３、メイン・メモリ１５およびコントローラなどのシステムのコンテキストをＨＤＤ２２に記憶する。中央制御部１１はＨＤＤ２２へのコンテキストの記憶が終了すると、ＩＣＨ２１に通知する。
【００８０】
ＩＣＨ２１は、ＥＣ３１にＤＣ／ＤＣコンバータ７３、７５、７７を停止して通常Ｓ４ステートに遷移させるように指示する。ＥＣ３１は、ＰＭＣ回路３３に指示してＤＣ／ＤＣコンバータ７３、７５、７７の動作を停止させて、通常Ｓ４ステートに遷移させる。ＥＣ３１はＥＥＰＲＯＭ３２とレジスタ３７に遷移先となる通常Ｓ４ステートの遷移ビットを設定する。ここまでの手順は図４にノード４からノード５までのパスとして示している。
【００８１】
他の例では、ブロック２１３でのタイマ３６の校正とブロック２１５の設定値の設定をＲＴＣ−Ｓ４ステートで行うこともできる。この場合は、Ｓ３ステートからＳ０ステートを経由して一旦ＲＴＣ−Ｓ４ステートに遷移し、タイマ３６の校正とカウント設定値の設定が終了した後にＲＴＣ−Ｓ４ステートから通常Ｓ４ステートに遷移する。ＲＴＣ−Ｓ４ステートではＳ３ステートよりも通常Ｓ４ステートに近い温度条件でタイマ３６の校正をすることができる。なお、Ｓ３ステートからＲＴＣ−Ｓ４ステートへの遷移は、Ｓ３ステートから通常Ｓ４ステートに遷移した後に、ＤＣ／ＤＣコンバータ７３を動作させてＩＣＨ２１のＲＴＣ機能ブロック２６およびクロック機能ブロック２８とＥＣ３１に電力を供給するようにしてもよい。
【００８２】
通常Ｓ４ステートに遷移している間もＰＭＣ回路３３にはＤＣ／ＤＣコンバータ７１から電力が供給されているのでタイマ３６は設定されたカウント設定値までカウント動作を継続する。また、ＲＴＣ２３とＲＴＣメモリ２４は、ボタン電池２５から電力が供給されているのでカレンダ時刻を生成し続ける。ブロック２１９では、カウント値がカウント設定値に到達するとタイマ３６は、時刻ｔ２でカウント終了信号を制御回路３５に出力する。ここまでの手順は図４においてノード５からノード６へのパスで示している。
【００８３】
ブロック２２１では、カウント終了信号を受け取った制御回路３５が、ＤＣ／ＤＣコンバータ７３を動作させ、パワー・ステートをＲＴＣ−Ｓ４ステートに遷移させる。タイマ３６はブロック２１３で校正されているため、ＬＳＴ終了時刻ｔ１の直前にＲＴＣ−Ｓ４ステートに遷移させることができる。制御回路３５はさらにレジスタ３８とＥＥＰＲＯＭ３２にウエイク・ビットおよび原因ビットを設定する。電力が供給されたＩＣＨ２１のＲＴＣ機能ブロック２６は、ブロック２２３で現在のカレンダ時刻がＬＳＴ終了時刻ｔ１に到達したと認識するとブロック２２５に移行する。
【００８４】
他の例ではＲＴＣ機能ブロック２６のＲＴＣウエイク・アップ機能を使用しないで、ＲＴＣ−Ｓ４ステートのときにＥＣ３１がＲＴＣメモリ２４から現在のカレンダ時刻を取得し、ＬＳＴ終了時刻ｔ１に到達したか否かを判断することができる。ブロック２２５では、ＬＳＴ終了時刻ｔ１に到達したと判断したＲＴＣ機能ブロック２６はパワー・ステートをＳ３ステートに遷移させるためにＤＣ／ＤＣコンバータ７５、７７を動作させるようにＥＣ３１に指示する。指示を受けたＥＣ３１はＤＣ／ＤＣコンバータ７５、７７を動作させる。電力の供給を受けたＣＰＵ１３は、ＨＤＤ２２に記憶されていたコンテキストを復帰し、ノートＰＣ１０をブロック２０５でＳ３ステートに入る前の状態で動作させる。
【００８５】
電力の供給を受けたＣＰＵ１３は、ＥＥＰＲＯＭ３２のＳＳＭビット、ウエイク・ビットおよび原因ビットを参照して、今回のＳ０ステートへの遷移がＳ３ステートへの一時的な遷移であると認識する。ＣＰＵ１３は、Ｓ０ステートに復帰するとただちにＳ３ステートに遷移するようにＩＣＨ２１に通知する。このときもＣＰＵ１３は、ＬＣＤ１９のバックライトを消灯したり無線モジュールを動作させないようにしたりしてＳ３ステートへの遷移に無関係なデバイスの動作を停止することができる。
【００８６】
ＩＣＨ２１は、中央制御部１１からＳ３ステートへ遷移する通知を受け取ると、ＥＣ３１にＤＣ／ＤＣコンバータ７７を停止するように指示する。ＥＣ３１はこのときＥＥＰＲＯＭ３２に遷移先としてＳ３ステートを示す遷移ビットを設定する。ここまでの手順は図４においてノード６からノード１３のパスで示している。
【００８７】
ブロック２２７では、ＬＳＴ終了時刻ｔ１が経過して、筐体が開かれてリッド・センサ５３が動作したりユーザがパワー・ボタン５１を押下したりしてＳ０ステートに遷移する操作が行われ、それに応じて制御回路３５はレジスタ３８とＥＥＰＲＯＭ３２に原因ビットを設定する。電力が供給されたＣＰＵ１３は、ＥＥＰＲＯＭ３２を参照して起動原因がパワー・ボタン５１またはリッド・センサ５３であると認識すると、今回のステート遷移は永続的な遷移であると認識する。
【００８８】
ノートＰＣ１０は、すでにＳ３ステートに遷移しているため、ＬＳＴ終了時刻ｔ１以降は短時間で起動することができる。以後、次回のＬＳＴ開始時刻ｔ０に入る前は、使用が終了するとノートＰＣ１０はＳ３ステートで待機する。ここまでの手順は図４において、ノード１４からノード１６までのパスとして示している。
【００８９】
他の例では、ＬＳＴの間に通常Ｓ４ステートとＲＴＣ−Ｓ４ステートとの間を遷移して、ＥＣ３１が複数回タイマ３６を校正することができる。たとえば、ＥＣ３１は、ブロック２１５でカウント設定値を設定する際に、タイマ３６に現在のカレンダ時刻から時間ｈ４よりも十分に短い時間に相当するカウント設定値を設定する。タイマ３６がカウント終了信号を出力してＲＴＣ−Ｓ４ステートに遷移したときに、ＥＣ３１は短時間の間システム・クロックでタイマ３６を校正し、さらにそのときのカレンダ時刻からＬＳＴ終了時刻ｔ１より短い時刻に対応する時間に相当するカウント設定値を設定する。
【００９０】
このように追加的に１回または複数回の校正を行うことで精度が向上したタイマ３６は、カウント終了信号をＬＳＴ終了時刻ｔ１により近い時刻で出力することができるようになる。ＥＣ３１は最終のカウント設定値を設定する際に制御回路３５がカウント終了信号を受け取るように設定することができる。制御回路３５はタイマ３６が最終のカウント値をカウントしたときにレジスタ３８とＥＥＰＲＯＭ３２にウエイク・ビットを設定する。
【００９１】
このとき、ＥＣ３１が設定するカウント値は校正を繰り返すたびに徐々に小さい値にすることができる。より小さなカウント値を設定する場合は、リング発振器が同じ誤差で動作してもカウント設定値に対応する満了時間と実際に経過した時間の差は少なくなるので、校正とカウント値の設定を繰り返すことで最終的にはよりＬＳＴ終了時刻ｔ１に近い時刻でカウント終了信号を出力できるようになる。この手順は、図４のノード５、７、８、９、１０、６のパスとして示している。図４では追加的な校正が１回だけ行われることを示しているが、このパスは複数回繰り返すことができる。
【００９２】
他の例では、ユーザが使用を開始する前にＳ３ステートで待機させないで、ＬＳＴ終了時刻ｔ１が経過したときにＲＳＴ−Ｓ４ステートからＳ０ステートに直接遷移させることもできる。この場合、ブロック２２５の手順では、電力の供給を受けた中央制御部１１は、ＥＥＰＲＯＭ３２にウエイク・ビットが設定されていることを認識すると、今回のＳ０ステートへの遷移が永続的なＳ０ステートへの遷移であると認識して、ＳＳＭビットが設定されていないときに通常Ｓ４ステートからＳ０ステートに遷移する場合と同じ手順で復帰することができる。この手順は図４のノード１２からノード１５へのパスとして示している。
【００９３】
従来のＲＴＣウエイク・アップでは、Ｓ４ステートのすべての時間帯でＲＴＣ機能ブロック２６に電力を供給する必要があった。図４、図５、図７（Ａ）に示したＳＳＭウエイク・アップの手順によれば、ＬＳＴの間はほとんどの時間を通常Ｓ４ステートに遷移させておくことができる。通常Ｓ４ステートでは、消費電力は小さいが精度の低いタイマ３６が経過時間を計測し、Ｓ３ステートまたはＳ０ステートに遷移する前にＲＴＣ−Ｓ４ステートに遷移する。その後ＲＴＣ２３を利用して正確な時刻にウエイク・イベントを生成してＳＳＭウエイク・アップをする。図４、図５、図７（Ａ）の手順では、待機状態のときに大部分の時間を通常Ｓ４ステートに遷移させたが、他の例では、通常Ｓ４ステートに代えてＳ５ステートを使用することもできる。
【００９４】
〔ＲＴＣ−Ｓ４ステートを経由しないＳＳＭウエイク・アップの手順〕
本発明では、タイマ３６を１回あるいは複数回校正することにより、ＲＳＴ−Ｓ４ステートに遷移しないでタイマ３６がカウント終了信号を出力したタイミングでＳＳＭウエイク・アップをさせることもできる。図６は、ＳＳＭウエイク・アップの他の例を示す状態遷移図である。図７（Ｂ）は図６に対応する。図６が図４と異なる点は、ノード６からノード１３へのパスで示すように、通常Ｓ４ステートからＳ０ステートを経由してＳ３ステートに遷移したり、ノード６からノード１５のパスで示すように、通常Ｓ４ステートからＳ０ステートに遷移したりする点である。
【００９５】
この方法では、タイマ３６の精度が低いとＬＳＴ終了時刻ｔ１と実際にウエイク・アップする時刻の差が大きくなるので、ＬＳＴの間に通常Ｓ４ステートとＲＴＣ−Ｓ４ステートの間の遷移を１回ないし数回繰り返して校正と新しいカウント設定値の設定を繰り返すことが望ましい。図７（Ｂ）では、時刻ｔ３、ｔ４でＲＴＣ−Ｓ４ステートに遷移して、ＤＣ／ＤＣコンバータ７３が動作してＲＴＣ機能ブロック２６、クロック機能ブロック２８およびＥＣ３１に電力を供給する。ＥＣ３１は、ＲＴＣ−Ｓ４ステートに遷移するたびに、システム・クロックでタイマ３６を校正し、新たなカウント設定値を設定してから通常Ｓ４ステートに遷移する。その結果、タイマ３６の精度が向上してほぼＬＳＴ終了時刻ｔ１に近い時刻ｔ４、ｔ５でＳＳＭウエイク・アップをすることができる。
【００９６】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【００９７】
１０…ノートＰＣ
１１…中央制御部
２１…ＩＣＨ
２６…ＲＴＣ機能ブロック
２８…クロック機能ブロック
３１…エンベデッド・コントローラ（ＥＣ）
３３…ＰＭＣ回路
【図１】
0005330448.tif 000002
【図２】
0005330448.tif 000003
【図３】
0005330448.tif 000004
【図４】
0005330448.tif 000005
【図５】
0005330448.tif 000006
【図６】
0005330448.tif 000007
【図７】
0005330448.tif 000008