特許第5764114号(P5764114)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ レノボ・シンガポール・プライベート・リミテッドの特許一覧

特許5764114携帯式コンピュータを省電力状態からレジュームさせる方法、パワー・ステートの制御方法および携帯式コンピュータ
<>
  • 特許5764114-携帯式コンピュータを省電力状態からレジュームさせる方法、パワー・ステートの制御方法および携帯式コンピュータ 図000003
  • 特許5764114-携帯式コンピュータを省電力状態からレジュームさせる方法、パワー・ステートの制御方法および携帯式コンピュータ 図000004
  • 特許5764114-携帯式コンピュータを省電力状態からレジュームさせる方法、パワー・ステートの制御方法および携帯式コンピュータ 図000005
  • 特許5764114-携帯式コンピュータを省電力状態からレジュームさせる方法、パワー・ステートの制御方法および携帯式コンピュータ 図000006
  • 特許5764114-携帯式コンピュータを省電力状態からレジュームさせる方法、パワー・ステートの制御方法および携帯式コンピュータ 図000007
  • 特許5764114-携帯式コンピュータを省電力状態からレジュームさせる方法、パワー・ステートの制御方法および携帯式コンピュータ 図000008
  • 特許5764114-携帯式コンピュータを省電力状態からレジュームさせる方法、パワー・ステートの制御方法および携帯式コンピュータ 図000009
  • 特許5764114-携帯式コンピュータを省電力状態からレジュームさせる方法、パワー・ステートの制御方法および携帯式コンピュータ 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5764114
(24)【登録日】2015年6月19日
(45)【発行日】2015年8月12日
(54)【発明の名称】携帯式コンピュータを省電力状態からレジュームさせる方法、パワー・ステートの制御方法および携帯式コンピュータ
(51)【国際特許分類】
   G06F 1/32 20060101AFI20150723BHJP
   G06F 1/30 20060101ALI20150723BHJP
   G06F 1/00 20060101ALI20150723BHJP
   G06F 3/06 20060101ALI20150723BHJP
   G06F 3/08 20060101ALI20150723BHJP
【FI】
   G06F1/32 Z
   G06F1/30 A
   G06F1/00 370B
   G06F3/06
   G06F3/08 H
   G06F3/06 301Z
【請求項の数】17
【全頁数】23
(21)【出願番号】特願2012-272783(P2012-272783)
(22)【出願日】2012年12月13日
(65)【公開番号】特開2014-119832(P2014-119832A)
(43)【公開日】2014年6月30日
【審査請求日】2014年1月17日
(73)【特許権者】
【識別番号】505205731
【氏名又は名称】レノボ・シンガポール・プライベート・リミテッド
(74)【代理人】
【識別番号】100106699
【弁理士】
【氏名又は名称】渡部 弘道
(74)【代理人】
【識別番号】100132595
【弁理士】
【氏名又は名称】袴田 眞志
(72)【発明者】
【氏名】荒木 直幸
(72)【発明者】
【氏名】佐々木 健
(72)【発明者】
【氏名】重松 友一
(72)【発明者】
【氏名】宮口 康宏
【審査官】 片岡 利延
(56)【参考文献】
【文献】 特開2008−090436(JP,A)
【文献】 特開2008−090435(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 1/32
G06F 1/00
G06F 1/30
G06F 3/06
G06F 3/08
(57)【特許請求の範囲】
【請求項1】
初期化データを記憶する回転式のディスクとリセット時に前記ディスクの回転を停止させて起動する回転抑止機能を備える記憶装置を搭載する携帯式コンピュータが省電力状態からレジュームする方法であって、
前記ディスクから読み取った前記初期化データを記憶する前記省電力状態で記憶保持が可能な不揮発性メモリを提供するステップと、
前記回転抑止機能をイネーブルに設定して前記省電力状態に移行するステップと、
電源の投入により前記携帯式コンピュータが起動を開始するステップと、
前記不揮発性メモリから前記初期化データを読み取ってレジューム処理を実行するステップと、
前記記憶装置に前記ディスクを回転させるコマンドを送るステップと
を有する方法。
【請求項2】
前記コマンドを送るステップを、前記初期化データを読み取るステップの前に実行する請求項1に記載の方法。
【請求項3】
前記コマンドを受信した前記記憶装置からレディ信号を受信するステップと、
前記レディ信号を受信した後にオペレーティング・システムによるレジューム処理に移行するステップと
を有する請求項1または請求項2に記載の方法。
【請求項4】
前記携帯式コンピュータに発生する加速度を検出するステップと、
前記加速度が所定値未満になるまで前記コマンドの送信を停止するステップと
を有する請求項1または請求項2に記載の方法。
【請求項5】
前記記憶装置が前記携帯式コンピュータから取り外されたことを検出するステップと、
前記記憶装置がレディ信号を生成した後に前記ディスクから前記初期化データを読み取るステップを有する請求項1または請求項2に記載の方法。
【請求項6】
前記ディスクから読み取った初期化データで前記不揮発性メモリを更新するステップを有する請求項5に記載の方法。
【請求項7】
初期化データを記憶する回転式のディスクとリセット時に前記ディスクの回転を停止させて起動する回転抑止機能を備える記憶装置と、オペレーティング・システム上で動作するプログラムと加速度センサが協働して構成する衝撃対応システムを搭載する携帯式コンピュータが省電力状態からレジュームする方法であって、
前記ディスクから読み取った前記初期化データを記憶する不揮発性メモリを提供するステップと、
前記回転抑止機能をイネーブルに設定して前記省電力状態に移行するステップと、
電源の投入により前記携帯式コンピュータが起動を開始するステップと、
前記不揮発性メモリから前記初期化データを読み取るステップと、
前記初期化データを読み取るステップの後に前記記憶装置に前記ディスクを回転させるコマンドを送るステップと
を有する方法。
【請求項8】
初期化データを記憶する回転式のディスクとリセット時に前記ディスクの回転を停止させて起動する回転抑止機能を備える記憶装置と、パワー・オン状態で生成されたシステム・コンテキストを省電力状態の間に記憶するフラッシュ・メモリを搭載する携帯式コンピュータが省電力状態からレジュームする方法であって、
前記ディスクから読み取った前記初期化データを記憶する不揮発性メモリを提供するステップと、
前記回転抑止機能をイネーブルに設定して前記省電力状態に移行するステップと、
電源の投入により前記携帯式コンピュータが起動を開始するステップと、
ユーザ・イベントにより電源が投入されたときに前記記憶装置に前記ディスクを回転させるコマンドを送って前記不揮発性メモリから前記初期化データを読み取るステップと
システム・イベントにより電源が投入されたときに前記ディスクを回転させないで前記不揮発性メモリから前記初期化データを読み取るステップと
を有する方法。
【請求項9】
初期化データを記憶する回転式のディスクとリセット時に前記ディスクの回転を停止させて起動する回転抑止機能を備える記憶装置を搭載する携帯式コンピュータのパワー・ステートを制御する方法であって、
前記ディスクから読み取った初期化データを記憶する不揮発性メモリを提供するステップと、
前記携帯式コンピュータをパワー・オン状態で動作させるステップと、
前記回転抑止機能をイネーブルに設定して前記パワー・オン状態からサスペンド状態に移行させるステップと、
前記サスペンド状態に移行してからの経過時間を計測して生成したシステム・イベントにより前記携帯式コンピュータに電源を投入するステップと、
前記不揮発性メモリから前記初期化データを読み取った後にファームウェアが前記携帯式コンピュータに前記回転抑止機能をディスエーブルに設定してからハイバネーション状態に移行させる機能を実現させるステップと、
前記ハイバネーション状態の間に生成されたユーザ・イベントにより前記携帯式コンピュータに電源を投入するステップと、
前記ディスクから前記初期化データを読み取って前記パワー・オン状態に移行させるステップと
を有する方法。
【請求項10】
前記サスペンド状態の間にユーザ・イベントにより前記携帯式コンピュータに電源を投入するステップと、
前記記憶装置に前記ディスクを回転させるコマンドを送るステップと、
前記不揮発性メモリから前記初期化データを読み取って前記パワー・オン状態に移行させるステップと、
前記記憶装置からレディ信号を受信した後にオペレーティング・システムによるレジューム処理に移行するステップと
を有する請求項9に記載の方法。
【請求項11】
初期化データを記憶する回転式のディスクとリセット時に前記ディスクの回転を停止させて起動する回転抑止機能を備える記憶装置を搭載する携帯式コンピュータのパワー・ステートを制御する方法であって、
前記ディスクから読み取った初期化データを記憶する不揮発性メモリを提供するステップと、
前記携帯式コンピュータをパワー・オン状態で動作させるステップと、
第1の時刻で生成されたスリープ・イベントにより前記回転抑止機能をイネーブルに設定して前記パワー・オン状態からサスペンド状態に移行させるステップと、
第2の時刻で生成されたシステム・イベントにより前記携帯式コンピュータに電源を投入するステップと、
前記不揮発性メモリから前記初期化データを読み取るステップと、
前記記憶装置に前記ディスクを回転させるコマンドを送るステップと、
前記記憶装置からレディ信号を受信した後に前記パワー・オン状態に移行させるステップと
を有する方法。
【請求項12】
前記サスペンド状態に移行している間に生成されたユーザ・イベントにより前記携帯式コンピュータに電源を投入するステップと、
前記不揮発性メモリから前記初期化データを読み取って前記パワー・オン状態に移行させるステップと
を有する請求項11に記載の方法。
【請求項13】
第3の時刻で生成されたスリープ・イベントにより前記回転抑止機能をディスエーブルに設定して前記パワー・オン状態からサスペンド状態に移行させるステップと、
第4の時刻で生成されたシステム・イベントにより前記携帯式コンピュータに電源を投入するステップと、
前記ディスクから前記初期化データを読み取って前記パワー・オン状態に移行させるステップと
を有する請求項12に記載の方法。
【請求項14】
パワーアップ・イン・スタンバイ機能を備えるハードディスク・ドライブと、
前記ハードディスク・ドライブの磁気ディスクから読み取った初期化データを記憶する省電力状態で記憶保持が可能な第1の不揮発性メモリと、
ウェイク・イベントを生成するイベント生成部とを有し、
前記パワーアップ・イン・スタンバイ機能をイネーブルに設定して前記省電力状態に移行している間に生成された前記ウェイク・イベントに応答して電源が投入されたときにファームウェアが前記ハードディスク・ドライブにスピンアップ・コマンドを送る機能と、前記第1の不揮発性メモリから前記初期化データを読み取る機能をコンピュータに実現させる携帯式コンピュータ。
【請求項15】
ハイバネーション・データを記憶する第2の不揮発性メモリを有し、前記ファームウェアは前記ハードディスク・ドライブに前記スピンアップ・コマンドを送らないで前記初期化データを読み取る機能を前記コンピュータに実現させる請求項14に記載の携帯式コンピュータ。
【請求項16】
前記スピンアップ・コマンドを送る機能を、前記初期化データを読み取る機能の前に実現させる請求項14に記載の携帯式コンピュータ。
【請求項17】
パワーアップ・イン・スタンバイ機能を備えるハードディスク・ドライブを搭載する携帯式コンピュータであって
磁気ディスクから読み取った初期化データを記憶する不揮発性メモリと、
ウェイク・イベントを生成するイベント生成部と、
前記ハードディスク・ドライブが前記携帯式コンピュータから取り外されたことを検出するタンパ回路とを有し、
前記パワーアップ・イン・スタンバイ機能をイネーブルに設定して省電力状態に移行している間に生成された前記ウェイク・イベントに応答して電源が投入されたときに、ファームウェアが前記携帯式コンピュータに、前記不揮発性メモリから前記初期化データを読み取る機能を実現させ、前記ハードディスク・ドライブが取り外されたことを検出したときに前記ハードディスク・ドライブにスピンアップ・コマンドを送って回転させた前記磁気ディスクから読み取った前記初期化データで前記不揮発性メモリを更新する機能を実現させる携帯式コンピュータ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、回転式のディスクを備える記憶装置を搭載する携帯式コンピュータを省電力状態からレジュームさせる技術に関し、さらにはレジュームの際に記憶装置の損傷防止とPOST時間の短縮を図る技術に関する。
【背景技術】
【0002】
ノートブック型パーソナル・コンピュータ(ノートPC)は、バッテリィによる動作時間を確保するために、使用しないときはユーザの操作またはシステムの制御によりパワー・オフ状態よりも復帰時間の短いサスペンド状態またはハイバネーション状態などの省電力状態に遷移する。サスペンド状態では、電源が停止するデバイスのシステム・コンテキストを揮発性のメイン・メモリに格納してから、メイン・メモリの記憶を維持する必要のないデバイスの電力を停止する。
【0003】
ハイバネーション状態では、パワー・オン状態での各デバイスのシステム・コンテキストおよびメイン・メモリの記憶内容(以下、ハイバネーション・データという。)をハードディスク・ドライブ(HDD)やソリッド・ステート・ドライブ(SSD)に格納してからほとんどのデバイスの電源を停止する。サスペンド状態またはハイバネーション状態からパワー・オン状態に復帰する際にBIOSまたはオペレーティング・システム(OS)が行う処理をレジューム処理ということにする。
【0004】
これに対し、パワー・オン状態から省電力状態に移行するときのBIOSまたはOSの処理をスリープ処理ということにする。レジュームする際には、原則としてそれまで停止していたすべてのデバイスに電源を投入する。BIOSは、システムの安全性の検証や、電源が停止していたデバイスに対するPOST(Power On Self Test)などのレジューム処理を実行する。以下では、BIOSが行うレジューム処理を必要に応じてPOSTということにする。POSTでは、BIOSがノートPCに装着されているデバイスを検出して初期化を行い、さらに電源が投入されてリセットされたデバイスが自主検査を行う。
【0005】
各デバイスは、自主検査が終わってシステムによる利用が可能な状態になるとBIOSにレディ信号を送る。BIOSおよびOSはレディ信号を受け取るまで当該デバイスを使用することができない。すべてのデバイスからレディ信号を受け取るとBIOSはPOSTを終了してレジューム処理をOSに引き継ぐ。OSはハイバネーション・データのロードおよびシステム・コンテキストの復帰処理を行う。OSのレジューム処理が終了するとシステムはパワー・オン状態に移行する。
【0006】
BIOSはデバイスから所定の時間が経過してもレディ信号を受け取ることができないときは、当該デバイスの初期化をスキップしてOSに制御を渡すこともあるが、多くのBIOSはレジューム後に使用する可能性の高いHDDやSSDなどからはレディ信号を受け取らない限りPOSTを終了することができない。特にHDDがブート・ディスクである場合には、ブート・ファイルやハイバネーション・データを記憶しているために、レジュームの際にBIOSは必ずレディ信号を受け取る必要がある。
【0007】
特許文献1は、HDDの起動時間を短縮することが可能なコンピュータ・システムを開示する。この発明では、HDDに設けられたフラッシュ・メモリにOS起動プログラムを格納しておく。電源が印加されてから駆動モータが定常速度になる前に、フラッシュ・メモリからOS起動プログラムを読み出すことで、コンピュータ・システムの起動時間を短縮する。
【0008】
特許文献2は、ディスク装置を搭載するノートPCの起動時間の短縮を図る発明を開示する。この発明では、電源を切断する際にHDDに記憶されている起動情報を不揮発性メモリに書き込んで、不揮発性メモリにHDDと同じ起動情報が記憶されていることを示すフラグを設定する。電源を投入した際には、不揮発性メモリにフラグが設定されているときは不揮発性メモリから起動情報を読み出してノートPCを起動する。
【0009】
特許文献3は、ユーザがコンピュータを使用する予想使用時刻を過去の時刻とパワー・ステートに関する使用パターンから予測して、待機状態において、予想使用時刻よりも先により浅いパワー・ステートに遷移させてパワー・オン状態まで短時間で復帰できるようにする発明を開示する。この発明では、待機電力の小さいS5ステートと復帰時間が短いS1ステートを利用して、復帰時間の短縮と待機電力の低減の両立を図っている。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2003−216435号公報
【特許文献2】特開2008−40948号公報
【特許文献3】米国特許第6654895号明細書
【発明の概要】
【発明が解決しようとする課題】
【0011】
レジュームの際に電源が投入されたHDDは、内部のCPUがパワー・オン・リセットしてスピンドル・モータが動作し磁気ディスクを回転させる。このHDDの動作をスピンアップという。パワー・オン状態のHDDはホスト装置からのコマンドまたは独自のアルゴリズムで、アクティブ、アイドル、スタンバイ、またはスリープなどのパワー・マネジメント動作を実行して消費電力の低減を図る。スタンバイとスリープではスピンドル・モータが停止して磁気ディスクの回転が停止する。このHDDの動作をスピンダウンという。スピンダウンの間はヘッドがランプ機構に退避しているためHDDの耐衝撃性は向上する。
【0012】
磁気ディスクには、定格容量、メーカ名、型式、パーティション情報、回転式であることを示す情報、以下に説明するパワーアップ・イン・スタンバイ(Power Up in Standby:PUIS)のサポートの有無などのHDDを特定する固有のデータ(以後、HDDデータ)が記憶されている。HDDデータはスピンアップしたHDDの磁気ディスクからBIOSが読み取る必要があるデータに相当する。BIOSはHDDのPOSTを完了するために磁気ディスクからHDDデータを読み取る必要がある。HDDはPOST時に、BIOSにレディ信号を送る前にスピンアップして自主検査をする必要がある。BIOSはスピンアップしたHDDからレディ信号を受け取ればその後HDDデータを読み取ることができる。
【0013】
ノートPCでは、ユーザが使用したいときには迅速にパワー・オン状態に移行し、使用する可能性が低いときには消費電力を低減するためのさまざまな方式のパワー・マネジメントを採用している。省電力状態の深度を深くするほど待機電力は低減するがレジューム時間は長くなる。パワー・マネジメントでは、状況に応じて省電力状態の深度を変化させてユーザが使用するときのレジューム時間と待機電力のバランスをとっている。
【0014】
一例として第1のパワー・マネジメントでは、ユーザがサスペンド状態に移行させてから所定の時間が経過したときにシステムが自動的にハイバネーション状態に移行させる。また、第2のパワー・マネジメントでは使用者の生活パターンを追跡したシステムが、ユーザが使用する可能性が高いと判断した時間帯に入る前にサスペンド状態に移行させ、使用する可能性が低い時間帯に入ったときにハイバネーション状態に移行させる。
【0015】
HDDがスピンアップしている間にノートPCに衝撃が加えられるとHDDが損傷する可能性がある。したがって、ある種のノートPCには加速度センサが検出した加速度をOS上で動作するプログラムが処理して、衝撃の可能性を予知したときにヘッドをランプ機構に退避させる衝撃対応システムを搭載する。第1のパワー・マネジメントまたは第2のパワー・マネジメントのいずれにおいてもパワー・ステートが遷移するときは、HDDの電源が起動してスピンアップする。
【0016】
レジュームの際にOSが実行される前は衝撃対応システムが機能しないため、特に移動中にレジュームするときにHDDが損傷する可能性が高まる。電源が投入されたHDDにスピンダウンを維持させる方法として、ATAではPUISという動作モードを規定する。BIOSまたはOSがPUISをイネーブルに設定すると、電源が投入されたりリセットされたりしたときにHDDはスピンダウンを維持する。イネーブルに設定されたPUISは、HDDがその後ディスエーブルに設定するコマンドを受け取らない限りディスエーブルに戻らない。
【0017】
PUISをイネーブルに設定すれば衝撃対応システムが機能しない間にスピンダウンを維持してHDDの損傷を防ぐことはできる。しかし、POSTを終了するにはBIOSがHDDにコマンドを送ってスピンアップさせレディ信号を受け取った後にHDDデータを読み取る必要がある。この手順はPOST時間の延長をもたらすため上記のパワー・マネジメントでは受け入れがたい。また、ユーザがノートPCを利用するためにレジュームさせるときは、できるだけ短時間でPOSTを終了する必要がある。このようにHDDを搭載するノートPCでパワー・マネジメントを実現するには、各レジュームのタイミングでHDDの損傷防止とレジューム時間の短縮のバランスを考慮する必要がある。
【0018】
そこで本発明の目的は、回転式のディスクを備える記憶装置を搭載する携帯式コンピュータの損傷を防止する方法を提供することにある。さらに本発明の目的は、そのような携帯式コンピュータのレジューム時間を短縮する方法を提供することにある。さらに本発明の目的は、そのような携帯式コンピュータの消費電力を低減する方法を提供することにある。さらに本発明の目的は、そのような携帯式コンピュータのパワー・ステートを制御する方法を提供することにある。さらに本発明の目的は、そのような方法を実現するコンピュータ・プログラムおよび携帯式コンピュータを提供することにある。
【課題を解決するための手段】
【0019】
本発明は、初期化データを記憶する回転式のディスクとリセット時にディスクの回転を停止させて起動する回転抑止機能を備える記憶装置を搭載する携帯式コンピュータを省電力状態からレジュームさせる方法を提供する。レジューム処理は、携帯式コンピュータを構成するCPU、メイン・メモリ、およびファームウェアなどの協働した動作により構成されるシステムが行う。初期化データは、システムがPOSTの間に必要とする記憶装置の情報に相当する。
【0020】
不揮発性メモリは、あらかじめディスクから読み取った初期化データを記憶する。不揮発性メモリは、レジューム中にシステムがアクセスできるいずれかの位置に配置することができる。回転抑止機能をイネーブルに設定して省電力状態に移行させると、レジュームの際に記憶装置に電源を投入してもディスクは回転しない。したがって、移動中にレジュームしても記憶装置の損傷を防止することができる。
【0021】
他方で、回転抑止機能をイネーブルに設定するとシステムはディスクから初期化データを読み取ることはできないため、本発明では不揮発性メモリから読み取る。システムは、レジューム処理を終了するために記憶装置からレディ信号を受け取る必要がある場合がある。そのために、システムは回転抑止機能がイネーブルに設定された記憶装置にディスクを回転させるコマンドを送ることができる。
【0022】
システムはこのコマンドを、不揮発性メモリから初期化データを読み取る前に送ることができる。この場合、初期化データの読み取りとディスクが回転したあとの記憶装置の自主検査を並行して行うことができるため、レディ信号を短時間で受け取ってPOST時間を短縮することができる。この方法は、回転抑止機能をイネーブルに設定し、衝撃の可能性が低いユーザ・ウェイクをするときに適している。
【0023】
携帯式コンピュータは、オペレーティング・システム上で動作するプログラムと加速度センサが協働して構成する衝撃対応システムを備えることができる。この場合、システムが初期化データを読み取った後にコマンドを送るようにすれば、衝撃対応システムが機能しない間にディスクが回転する時間を低減することができる。この方法は、レジュームの間にスピンアップさせる必要がある場合でもより安全性を向上できるため、衝撃の可能性が高くPOST時間の短縮を図る必要のないシステム・ウェイクに適している。
【0024】
記憶装置はディスクが回転すると自主検査をしたあとにシステムにレディ信号を送信することができる。その結果、システムがレディ信号を要求する場合にレディ信号を受信してからオペレーティング・システムによるレジューム処理に移行することができる。携帯式コンピュータに発生する加速度を検出し、加速度が所定値未満になるまでコマンドの送信を停止するようにすれば、より確実に記憶装置の損傷を防止することができる。
【0025】
記憶装置が携帯式コンピュータから取り外されたときは、不揮発性メモリが記憶する初期化データが正しく記憶装置を記述しなくなる。この場合システムは取り外しを検出して、コマンドを受け取った記憶装置がレディ信号を生成した後にディスクから正しい初期化データを読み取ることができる。そして、ディスクから読み取った初期化データで不揮発性メモリを更新することで、それ以降は不揮発性メモリの初期化データを利用したPOSTをすることができるようになる。
【0026】
システムは、携帯式コンピュータがパワー・オン状態で生成されたシステム・コンテキストを省電力状態の間に記憶するフラッシュ・メモリを有する場合には、ディスクを回転させないで不揮発性メモリから初期化データを読み取ることができる。この方法は、システム・イベントにより省電力状態の間でパワー・ステートを遷移させるために電源を投入する場合のように記憶装置を使用しないときのPOSTに適している。
【発明の効果】
【0027】
本発明により、回転式のディスクを備える記憶装置を搭載する携帯式コンピュータの損傷を防止する方法を提供することができた。さらに本発明により、そのような携帯式コンピュータのレジューム時間を短縮する方法を提供することができた。さらに本発明により、そのような携帯式コンピュータの消費電力を低減する方法を提供することができた。さらに本発明により、そのような携帯式コンピュータのパワー・ステートを制御する方法を提供することができた。さらに本発明により、そのような方法を実現するコンピュータ・プログラムおよび携帯式コンピュータを提供することができた。
【図面の簡単な説明】
【0028】
図1】ノートPCのハードウェア構成の一例を説明するための機能ブロック図である。
図2】第1のHDD_POSTの実行手順を示すフローチャートである。
図3】第2のHDD_POSTの実行手順を示すフローチャートである。
図4】第3のHDD_POSTの実行手順を示すフローチャートである。
図5】第4のHDD_POSTの実行手順を示すフローチャートである。
図6】第1のパワー・マネジメントを実行するときのパワー・ステートの遷移を説明する図である。
図7】第1のパワー・マネジメントの実行手順を示すフローチャートである。
図8】第2のパワー・マネジメントを実行するときのパワー・ステートの遷移を説明する図である。
【発明を実施するための形態】
【0029】
[ノートPCの構成]
図1は、ノートPC10のハードウェア構成の一例を説明するための機能ブロック図である。多くのハードウェアの構成は周知であるため、ここでは本発明の理解に必要な範囲で説明する。最初にノートPC10のパワー・ステートについて説明する。ノートPC10は、ACPI(Advanced Configuration and Power Interface)の省電力機能に対応している。ACPIでは、S1ステートからS4ステートまでの4つのスリーピング・ステート(省電力状態)、S0ステート(パワー・オン状態)、およびS5ステート(パワー・オフ状態)を定義している。
【0030】
ACPIのスリーピング・ステートのなかでノートPC10は、一例としてS3ステートとS4ステートだけを定義しているが他のスリーピング・ステートを定義してもよい。また、S5ステートは独立して定義しないでS4ステートの中に含めるようにしてもよい。S3ステート、S4ステートおよびS5ステートを総称するときはSxステートと記述する。
【0031】
スリーピング・ステートのときはCPU11およびHDD23の電源は必ず停止する。S3ステート(サスペンド状態)では、メイン・メモリ13の記憶を保持し、メイン・メモリ13の記憶保持とノートPC10の電源を起動するのに必要なデバイス以外のデバイスに対する電力を停止する。サスペンド状態に入る際にOSは、電源が停止するデバイスが保持していたシステム・コンテキストをメイン・メモリ13に退避し、パワー・オン状態に戻ったときにそれを各デバイスにリストアする。
【0032】
S4ステート(ハイバネーション状態)は、ACPIでサポートされるスリーピング・ステートの中で最も起動までの時間が長く、かつ消費電力が少ない状態である。ノートPC10がパワー・オン状態からハイバネーション状態に遷移する際には、OSがHDD23またはフラッシュ・メモリ19のハイバネーション領域などにメイン・メモリ13が記憶するハイバネーション・データを格納してからパワー・コントローラ33などの電源の起動に必要なデバイス以外のデバイスに対する電力を停止する。
【0033】
S5ステートはいわゆるソフト・オフともいわれ、OSがハイバネーション・データをHDD23などに格納しない点を除いては基本的に電力を供給するデバイスの範囲はS4ステートと同じである。なお、本発明におけるS4ステートには、OSがS3ステートに遷移させてから所定の時間が経過したときにBIOSが自動的にS4ステートに遷移させる状態も含む。この場合は、OSはシステムがS3ステートに遷移していると認識するが、実際のパワー・ステートはS4ステートとなる。
【0034】
チップ・セットとして構成されるプラットフォーム・コントロール・ハブ(PCH)17にはCPU11、フラッシュ・メモリ19、HDD23、ファームウェアROM25およびエンベデッド・コントローラ(EC)27が接続されている。PCH17に代えて、ICHとMCHで構成したりIOHとICHで構成したりすることができる。CPU11にはメイン・メモリ13およびLCD15が接続されている。PCH17は、さまざまな規格のインターフェース機能を備えており、図1では代表的にmSATAコントローラにフラッシュ・メモリ19が接続され、SATAコントローラにHDD23が接続され、SPIにファームウェアROM25が接続され、LPCにEC27が接続されている。
【0035】
フラッシュ・メモリ19は、HDD23のキャッシュとして利用するキャッシュ領域とS4ステートに遷移させるときのハイバネーション・データ記憶するハイバネーション領域の2つのパーティションで区切られている。フラッシュ・メモリ19に代えてハイバネーション・データを記憶する専用のフラッシュ・メモリを備えるようにしてもよい。また、フラッシュ・メモリ19がハイバネーション領域を含まない場合は、HDD23がハイバネーション・データを記憶することができる。
【0036】
HDD23はOS、デバイス・ドライバ、アプリケーション・プログラム、およびユーザ・データなどを記憶する磁気ディスク24を含む。HDD23はブート・ディスク・ドライブでノートPC10が起動するときにロードされるブート・ファイルを格納している。HDD23は内部に、UEFI(Unified Extensible Firmware Interface)ファームウェア(以後、UEFIという。)がPUISの設定をするフラッシュ・メモリを含む。UEFIは、HDD23のインターフェースを初期化した後は、HDD23のフラッシュ・メモリにアクセスしてPUISの設定および設定状態の確認をすることができる。
【0037】
ファームウェアROM25は、不揮発性で記憶内容の電気的な書き替えが可能なメモリでコード領域とデータ領域を含む。コード領域は複数のコード群で構成されたUEFIを格納する。UEFIはUEFIフォーラムが策定したBIOSに代わってまたはBIOSに加えて使用する新しい仕様のシステム・ファームウェアである。UEFIは、ノートPC10がSxステートからS0ステートにレジュームする際に、CPU11がパワー・オン・リセットされると必ず最初に実行される。
【0038】
UEFIは、レジュームする際に自身のコードに対する改変の有無を検査したり、パスワード認証をしたりデバイスを初期化したりするいわゆるPOSTを実行する。UEFIはシステムがレジュームするときの遷移元のパワー・ステートに応じてPOSTの内容を変えることができる。たとえば、S5ステートからレジュームする際には、すべてのデバイスからパラメータを取得してインターフェースに設定する完全なPOSTを実行し、S4ステートからレジュームする際には一部のデバイスのPOSTをOSに委ねたり以前に設定していたパラメータをインターフェースにリストアしたりしてPOST時間を短縮する。S3ステートからレジュームするときは短時間で終了できるようにより簡素なPOSTを実行する。
【0039】
データ領域は、本実施の形態においてレジュームする際にUEFIが使用するHDDデータを格納する。HDDデータは、SxステートからS0ステートにレジュームする際に、HDD23のPOSTをするために、従来はUEFIが磁気ディスク24から読み取っていたデータである。UEFIは、HDD23のPOSTを終了してレジュームの間またはレジューム後にHDD23を使用するためにHDDデータを必要とする。
【0040】
本実施の形態でUEFIは、PUISをイネーブルに設定したときにデータ領域からHDDデータを読み取る。なお、UEFIがHDDデータを格納する領域は、ファームウェアROM25に限定する必要はなく、UEFIがPOST中にアクセスできるフラッシュ・メモリ19のハイバネーション領域やHDD23に収納されたフラッシュ・メモリなどのような他の不揮発性メモリとすることもできる。
【0041】
PCH17は、RTC(Real Time Clock)50とRTCメモリ51を含んでいる。RTC50およびRTCメモリ51は、AC/DCアダプタ39および電池パック41の電力が停止して、PCH17にDC/DCコンバータ37から電力が供給されないときにボタン電池から電力の供給を受けることができる。RTCメモリ51は、UEFIがデバイスに設定するセット・アップ・データおよびRTC50が生成した時間情報などを記憶する揮発性メモリである。RTCメモリ51は、S3ステートまたはS4ステートからS0ステートに遷移する際にUEFIが参照するS34フラグおよびS34時間を記憶する。RTCメモリ51へのS34フラグおよびS34時間の設定は、UEFIファームウェアのセット・アップ・コードを通じてユーザがファームウェアROM25のデータ領域へS34イネーブルを設定する際に行う。
【0042】
S34フラグは、OSがノートPC10をS3ステートに遷移させてから所定の時間が経過したときに、UEFIにS4ステートに遷移する処理をするように指示するための情報である。S34時間は、OSがシステムをS3ステートに遷移させてからUEFIが自動的にS34ステートに遷移させるまでの時間をいう。一例としてS34時間は3時間とする。PCH17は、レジスタ56、57、58を含む。レジスタ56はSxステートの間も電力が供給される。
【0043】
レジスタ56は、ACPIに規定するSLP_TYPレジスタおよびSLP_ENレジスタに相当する。レジスタ56はS0ステートからSxステートに遷移する際にOSにより設定される。OSは、システムがSxステートに遷移する準備が完了したときにレジスタ56に遷移先のパワー・ステートを設定する。レジスタ56に遷移先のパワー・ステートが設定されるとPCH17はEC27を通じてノートPC10を設定されたパワー・ステートに遷移させる。
【0044】
UEFIはSxステートからレジュームする際にレジスタ56を参照し、遷移元のパワー・ステートに応じてPOSTの実行パスを決定する。UEFIが選択するPOSTの実行パスでは、遷移元のパワー・ステートがS5ステートのときにPOST時間が最大になり、S3ステートのときに最小になる。レジスタ57には、S3ステートに遷移してからの経過時間がS34時間に到達したときにRTC50がタイム・アップ・ビットを設定する。タイム・アップ・ビットが設定されるとPCH17はEC27を通じてノートPC10をレジュームさせる。
【0045】
Sxステートのときにユーザによるパワー・ボタン35の押下またはリッド・センサ36の動作によりパワー・オン状態に移行するように電源を起動することをユーザ・ウェイクといい、そのときに生成されるイベントをユーザ・イベントということにする。また、システムが同様のことを行う場合をシステム・ウェイクおよびシステム・イベントということにする。タイム・アップ・ビットはシステム・イベントに相当する。
【0046】
レジスタ58には、加速度ビットが設定される。EC27は加速度センサ29から取得した加速度が所定値を越えたときに加速度ビットを設定する。EC27は所定の時間、加速度が閾値より低下したときに加速度ビットをリセットする。PCH17は、フラッシュ・メモリ19をHDD23のキャッシュとして機能させるためのキャッシュ・コントローラ53を含む。キャッシュ・コントローラ53は、CPU11が実行するプログラムがHDD23に書き込むデータをライトバック・キャッシングまたはライトスルー・キャッシングでフラッシュ・メモリ19のキャッシュ領域およびHDD23の磁気ディスク24に書き込む。
【0047】
EC27には、加速度センサ29およびパワー・コントローラ33が接続されている。EC27は、CPU、ROM、RAMなどで構成されたマイクロ・コンピュータである。EC27は、ノートPC10の内部の動作環境の管理にかかるプログラムをCPU11とは独立して実行することができる。EC27は、パワー・コントローラ33を通じてDC/DCコンバータ37の動作を制御する。
【0048】
加速度センサ29は、ノートPC10に発生する加速度をEC27に出力する。加速度センサ29とOS上で動作するプログラムは衝撃対応システムを構成する。衝撃対応システムは、所定のアルゴリズムでヘッドを退避する必要のある衝撃の予兆を検出したときに、HDD23のヘッドをランプ機構に退避させる。衝撃対応システムの一例が特開2004−146036号公報に開示されている。
【0049】
SxステートからS0ステートに遷移する際には、OSが実行されないため衝撃対応システムは機能しない。ただし、EC27および加速度センサ29に電源が投入されるとEC27は加速度の大きさは検出することができる。本実施の形態ではレジュームの間に、EC27が所定値以上の大きさの加速度を検出したときにHDD23をスピンアップさせないようにして損傷を防止することができる。
【0050】
パワー・コントローラ33には、パワー・ボタン35、リッド・センサ36およびDC/DCコンバータ37の制御回路が接続されている。パワー・コントローラ33は、EC27からの指示に基づいてDC/DCコンバータ35を制御するワイヤード・ロジックのディジタル制御回路(ASIC)である。パワー・コントローラ33は、タンパ・ビットを設定するレジスタ59、パワー・ビットを設定するレジスタ61、ウェイク・ビットを設定するレジスタ62およびタイマ63を備えている。
【0051】
パワー・コントローラ33は、ノートPC10をレジュームさせるためにSxステートでも電力が維持される。パワー・コントローラ33の電力が停止すると、レジスタ59、61、62のビットはリセットされて0を示す。パワー・コントローラ33は、タンパ検出ライン67でHDD23に接続されている。タンパ検出ライン67は、パワー・コントローラ33と同じ電源でプルアップされている。HDD23はノートPC10に装着されている間、タンパ検出ライン67の電位をグランド・レベルに維持している。HDD23がノートPC10から取り外されるとタンパ検出ライン67の電位が上昇する。
【0052】
パワー・コントローラ33の論理回路は、タンパ検出ライン67の電位が上昇するときのリーディング・エッジを検出するとレジスタ59を論理値1に設定する。UEFIは、パスワード認証が成功したときにパワー・コントローラ33に電力が供給されていることを前提としてレジスタ61を論理値1に設定する。レジスタ61が1を示すときは、UEFIが設定したあとにパワー・コントローラ33の電力が停止していないことを示す。
【0053】
レジスタ59、61はタンパ機能を構成し、パワー・コントローラ33の電源が停止したときにともにリセットされて論理値0に設定される。UEFIは、レジスタ59が0でレジスタ61が1のとき以外はHDD23の取り外しがあったと判断する。タイマ63は、レジュームのためのシステム・イベントを生成するためにSxステートの間計時動作をする。
【0054】
ウェイク・ビット62は、パワー・ボタン35の押下またはリッド・センサ36の動作があったときにパワー・コントローラ33の論理回路が設定する。ウェイク・ビットはユーザ・イベントに相当する。本実施の形態では消費電力を低減するためにSxステートでは、RTC50およびレジスタ57がシステム・イベントを生成するためのPCH17の機能を停止するため、Sxステートの間はタイマ63で時間をラフに計時し、システム・イベントを生成する予定の時刻の直前にPCH17に電力を供給してRTC50が正確な時刻でレジスタ57にタイム・アップ・ビットを設定する。
【0055】
システム・イベントを生成したPCH17はEC27を通じて電源を起動する。RTC50とタイマ63の協働によるシステム・ウェイクの方法は本発明の出願人に譲渡された特開2012−226677号公報が開示している。ただし、本発明ではSxステートのときにシステム・イベントを生成する方法はこれに限定する必要はない。たとえば、SxステートでもPCH17のRTC50に関連する部分に電力を供給したり、Sxステートで電源がバックアップされる専用の計時装置を設けたりしてシステム・イベントを生成するようにしてもよい。
【0056】
AC/DCアダプタ39および電池パック41は、ノートPC10の電力源である。DC/DCコンバータ37は、AC/DCアダプタ39または電池パック41から供給される直流電圧を、ノートPC10を動作させるために必要な複数の電圧に変換し、さらにパワー・ステートに応じて定義された電力供給区分に基づいて各々のデバイスに電力を供給する。
【0057】
[HDDのPOST]
本実施の形態では、第1のパワー・マネジメントおよび第2のパワー・マネジメントにおいて、各レジュームのタイミングでHDD23に関する4種類のPOST(HDD_POST)のいずれかを行う。各パワー・マネジメントは、HDD23の損傷防止とPOST時間の短縮のいずれかを重視しながら適切なHDD_POSTを選択して、全体としては両者を両立させるように構成されている。
【0058】
本実施の形態では、ユーザ・イベントはユーザがノートPC10を使用する際に生成されるため、ユーザ・ウェイクでレジュームするときに起動と同時にスピンアップしてもHDD23が損傷する可能性は低いと想定する。またシステム・イベントはユーザがノートPC10を持ち運んでいる際に生成されることがあるため、レジュームのときに起動と同時にスピンアップするとHDD23が損傷する可能性が高いと想定する。
【0059】
ユーザ・イベントでレジュームするときは、ユーザの利便性を考慮するとPOST時間の短縮が重要になるが、システム・イベントでレジュームするときはPOST時間の短縮はほとんど問題にならずむしろHDD23の損傷防止が重要になる。PUISをディスエーブルに設定する従来の方法では、起動と同時にHDD23のスピンアップを行うためPOST時間は問題にしないが、損傷防止が問題になる。
【0060】
PUISをイネーブルに設定すると、HDD23が起動と同時にはスピンアップしないためシステム・イベントでレジュームするときでも損傷を防止することができる。UEFIがPOSTを終了するためにスピンアップしたHDD23からレディ信号を受け取る必要がある場合は、イネーブルに設定されていてもHDD23にスピンアップ・コマンドを送ってスピンアップさせることができる。この場合であっても、HDD23が起動と同時にはスピンアップせず、衝撃対応システムが機能しない間にスピンアップしている時間を低減して衝撃に対する安全を向上させることができる。
【0061】
ハイバネーション・データを格納するフラッシュ・メモリ19が存在し、レジューム処理の間またはレジュームが終了したあとにHDD23を使用する必要がない場合は、レジュームのときにスピンダウンを維持できる場合がある。レジュームのときにフラッシュ・メモリ19を利用してスピンダウンを維持できれば、消費電力の低減、POST時間の短縮およびHDD23の損傷防止を最も確実に行うことができる。
【0062】
表1はこれらの要求に対応するために、UEFIが選択するHDD_POSTの種類を示す。UEFIはパワー・マネジメントを実行する際に、PUISの設定状態、ウェイクの種類、およびフラッシュ・メモリ19のようなHDDに代わってハイバネーション・データを記憶するフラッシュ・メモリ19の有無の3つの要素を判断していずれかのHDD_POSTを選択する。以下で簡単に各HDD_POSTの特徴を説明したあとに、その手順を詳しく説明する。
【0063】
【表1】
【0064】
第1のHDD_POSTから第3のHDD_POSTまでは、ハイバネーション・データを格納するフラッシュ・メモリ19またはそれに相当する不揮発性の半導体メモリの存否にかかわらず適用する。第1のHDD_POSTは、PUISをディスエーブルに設定する従来の方法で、HDD23のPOST時間は問題にしない。第1のHDD_POSTは、HDD23の損傷を考慮する必要がないユーザ・ウェイクによるPOSTに適している。
【0065】
第2のHDD_POSTから第4のHDD_POSTまでは、PUISをイネーブルに設定し、UEFIがウェイクの種類とフラッシュ・メモリ19の有無によりいずれかを選択する。第2のHDD_POSTから第4のHDD_POSTまでは、システム・ウェイクが発生することを予想してPUISをイネーブルに設定しHDD23の損傷防止を図る。さらに、不意にユーザ・ウェイクが発生した場合にはできるだけ短時間でPOSTを終了できるようにしている。第2のHDD_POSTから第4のHDD_POSTまでは、通常のようにレディ信号を受け取ったあとにHDDデータを磁気ディスク24から読み取ることはしないで、レディ信号を受け取る前にまたはレディ信号を受け取らないでファームウェアROM25のデータ領域に格納したHDDデータを利用してPOSTを実行する。
【0066】
第2のHDD_POSTは、PUISがイネーブルに設定されているためPOST時間が第1のHDD_POSTより長くなるが、起動と同時にスピンアップしないためHDD23の損傷を防止することができる。UEFIがファームウェアROM25からHDDデータを読み取ることで、磁気ディスク24からHDDデータを読み取る従来の方法よりもPOST時間を短縮することができるため、ユーザ・ウェイクによるPOSTに適している。
【0067】
第3のHDD_POSTは、第2のHDD_POSTに比べてウェイクの種類がシステム・ウェイクである点で異なる。システム・ウェイクの場合はPOST時間の延長を問題にしない代わりにHDD23が損傷する可能性が高いので、第3のHDD_POSTでは、第2のHDD_POSTに比べて一層HDD23の損傷を防止できるようにスピンアップ・コマンドを送るタイミングを遅らせている。第4のHDD_POSTは、ハイバネーション・データを格納するフラッシュ・メモリ19が存在する場合でかつレジューム中およびレジューム後にHDD23を使用する可能性がないシステム・ウェイクの場合に適用する。
【0068】
[第1のHDD_POST]
図2は、第1のHDD_POSTの実行手順を示すフローチャートである。ブロック101〜109はUEFIの実行手順を示し、ブロック151〜157はHDD23の動作手順を示している。ブロック101、151では、Sxステートに遷移しているときにユーザ・イベントによりそれまで停止していたデバイスに電力が供給される。このときHDD23はPUISがディスエーブルに設定されている。
【0069】
ブロック153で、HDD23は内部のCPUがリセット動作を開始し、同時に磁気ディスク24がスピンアップする。スピンアップを開始したHDD23はブロック155でヘッドを駆動するアクチュエータや磁気ディスク24を回転させるスピンドル・モータなどのサーボ系の自主検査を行う。このサーボ系の検査は電子回路系の検査に比べて時間がかかる。
【0070】
UEFIは、CPU11およびメイン・メモリ13などのPOSTの実行開始に最低限必要な基本的なデバイスを初期化し、さらにプラットフォームの一貫性を検証する。ブロック103でUEFIは、PCH17、フラッシュ・メモリ19、およびHDD23のインターフェースを検査してから、それらにRTCメモリ51に格納しておいたパラメータを設定して初期化する。同時に他の周辺デバイスも初期化する。その後UEFIファームウェアはHDD23を含む各デバイスからのレディ信号を待つ。
【0071】
サーボ系の検査が終了するとブロック157でHDD23はUEFIにレディ信号を送る。サーボ系を備えるHDD23は、電子デバイスだけで構成される他のデバイスより通常はレディ信号を送るまでの時間が長い。ブロック104でUEFIは、HDD23にコマンドを送ってPUISの設定状態を確認する。さらにUEFIはフラッシュ・メモリ19の装着状態、ウェイク・イベントの種類を確認して、4種類のHDD_POSTのなかから第1のHDD_POSTの実行パスを選択する。UEFIはウェイク・イベントの種類をRTCメモリ51のS34フラグ、およびレジスタ57、62を参照して確認する。
【0072】
ブロック105でUEFIは、HDD23からレディ信号を受け取る。レディ信号を受け取ったUEFIは、HDD23がアクセスできる状態になったことを認識してブロック107でHDD23にコマンドを送って磁気ディスク24からHDDデータを読み取る。ブロック109で予定したすべてのデバイスからレディ信号を受け取ると、UEFIファームウェアはPOSTを終了してOSにレジューム処理を移行する。
【0073】
第1のHDD_POSTでは、PUISがディスエーブルに設定されリセットと同時にスピンアップを開始して、ブロック101から105までの手順とブロック151から157までの手順が並行して行われるため、UEFIは比較的短い時間で磁気ディスク24からHDDデータを読み取ってHDD_POSTを終了することができる。ただし、ブロック101からブロック109までの衝撃対応システムが機能しない間にHDD23はスピンアップしているので耐衝撃能力は低い。
【0074】
[第2のHDD_POST]
図3は、第2のHDD_POSTの実行手順を示すフローチャートである。ブロック101〜237はUEFIの実行手順を示し、ブロック251〜157はHDD23の動作手順を示している。図3では、図2と同一の手順について同一参照番号を付して説明を省略する。ブロック251では、PUISがイネーブルに設定されたHDD23がパワー・オン・リセットされ、ブロック253でCPUはリセットされるが磁気ディスク24はスピンダウンを維持する。磁気ディスク24は、UEFIからのコマンドを受け取ることができる状態になるとUEFIにレディ信号を送る。ブロック201でUEFIは、HDD23にコマンドを送ってPUISがイネーブルに設定されていることを確認し、第2のHDD_POSTの実行パスを選択する。
【0075】
さらにUEFIは、レジスタ58の加速度ビットを確認し、加速度ビットが設定されている間はHDD23のスピンダウンを維持する。ブロック203でUEFIがHDD23にスピンアップ・コマンドを送ると、ブロック255でHDD23はスピンアップする。ブロック205でUEFIは、レジスタ59、61を参照して、HDD23が取り外された否かを判断する。取り外されていないと判断したときは、ブロック207に移行して、UEFIはファームウェアROM25のデータ領域からHDDデータを読み取る。UEFIはHDDデータを読み取ったデータを利用してPOSTを行いブロック105に移行する。第2のHDD_POSTでは、UEFIがレディ信号を受け取る前にHDDデータを取得することができる。
【0076】
ブロック205でHDD23が取り外されたと判断したときは、ファームウェアROM25に格納されたHDDデータは現在装着されているHDDを記述していないためブロック231に移行する。ブロック231ではHDD23からのレディ信号を受け取ったUEFIは、ブロック233でHDD23にリード・コマンドを送って交換されたHDDの磁気ディスクからHDDデータを読み取る。その後、ブロック235でUEFIは読み取ったHDDデータでファームウェアROM25を更新する。ブロック237でレジスタ59、61のタンパ機能をリセットしてブロック103に戻る。その後は更新したHDDデータをファームウェアROM25から読み取ってブロック207でHDDおよびその他のデバイスのPOSTを終了する。
【0077】
第2のHDD_POSTでは、PUISがイネーブルに設定されているため、ブロック203でスピンアップ・コマンドを送ってスピンアップする。ブロック101からブロック203まではUFIはさまざまな処理をするため所定の時間を費やすがコマンドを送ることが可能になった時点でただちにコマンドを送っている。また、ブロック105でレディ信号を受け取った後に磁気ディスク24からHDDデータを読み取るのではなく、ブロック155のサーボ系の検査とブロック207のファームウェアROM25からのHDDデータの読み取りを並行して行っているため、POST時間を短縮することができる。さらに、ブロック101からブロック203まではスピンアップしないため、衝撃対応システムが機能しない時間帯でのスピンアップの時間を低減して安全性を向上することができる。
【0078】
[第3のHDD_POST]
図4は、第3のHDD_POSTの実行手順を示すフローチャートである。図4は、図2および図3と同一の手順については同一参照番号を付して説明を省略する。図4の手順が図3と異なるのは、UEFIがブロック301でスピンアップ・コマンドを送るタイミングが、ブロック205およびブロック207の後になっている点と、それに関連してHDD23が取り外されたと判断したときにブロック303でスピンアップ・コマンドを送る点だけである。
【0079】
第3のHDD_POSTは、システム・ウェイクを契機として実行するためPOST時間を考慮することはないが、システム・イベントは移動中に生成されることがあるため第2のHDD_POSTよりもHDD23の損傷防止を一層工夫する必要がでてくる。第3のHDD_POSTでは第2のHDD_POSTよりもスピンアップ・コマンドを送るタイミングを遅らせて、衝撃対応システムが機能しない時間帯でのスピンアップの時間を低減している。
【0080】
[第4のHDD_POST]
図5は、第4のHDD_POSTの実行手順を示すフローチャートである。図5は、図2図4と同一の手順については同一参照番号を付して説明を省略する。第4のHDD_POSTはハイバネーション・データを格納することができるフラッシュ・メモリ19が搭載されているノートPC10において実行する。図5の手順が図3図4と異なる点は、図3のブロック203または図4のブロック301のようにスピンアップ・コマンドを送らないで、レディ信号を受け取ることなくブロック401でPOSTを終了する点である。
【0081】
第4のHDD_POSTは、HDD23が自主検査をしないでPOSTを終了しているため、POSTが終わってもHDD23を使用することはできない。したがって、POST後にHDD23を使用する必要がないシステム・ウェイクで実行できる。ただし、図4の手順と同じようにHDD23が取り外されたと判断したときはスピンアップする。第4のHDD_POSTは、レジュームの際にHDD23がスピンダウンを維持するため、HDD23の損傷を防止しかつ消費電力の低減を図ることができる。また、フラッシュ・メモリ19からハイバネーション・データをロードするためPOST時間を短縮することができる。
【0082】
[第1のパワー・マネジメント]
図6は、ノートPC10が第1のパワー・マネジメントを実行するときのパワー・ステートの遷移を説明する図で、図7はそれに対応する手順を示すフローチャートである。図6(A)は、時刻t1ではスリープ・イベントでS0ステートからS3ステートに遷移し、時刻t3ではシステム・イベントでS3ステートからS4ステートに遷移し、時刻t5ではユーザ・イベントでS4ステートからS0ステートに遷移する様子を示す。図6(B)は、時刻t1でスリープ・イベントによりS0ステートからS3ステートに遷移し、時刻t2でユーザ・イベントによりS3ステートからS0ステートに遷移する様子を示す。
【0083】
第1のパワー・マネジメントおよびつぎに説明する第2のパワー・マネジメントを実行する上でUEFIは、HDD_POSTの種類およびOSにレジューム処理を渡す前のPOSTの内容を以下のように判断する。UEFIは、いずれのHDD_POSTを実行する場合にもHDD23にコマンドを送ってPUISの設定状態を確認する。さらにブロック103のインターフェースの初期化の段階でハイバネーション領域を備えるフラッシュ・メモリ19の有無を確認する。さらにレジスタ57、62を参照してウェイク・アップの種類を確認すると表1に基づいてHDD_POSTの種類を決定して実行パスを選択する。
【0084】
またS4ステートからの遷移のときは、レジスタ56、57とRTCメモリ51のS34フラグを参照して、S34フラグが設定され、かつS34時間が経過していれば、フラッシュ・メモリ19のハイバネーション領域からハイバネーション・データをメイン・メモリ13にロードしてS3ステートに遷移させてからOSにレジューム処理を渡す。OSは、S3ステートからS0ステートへのレジューム処理を行う。S34フラグが設定されていないときは、Sxステートからの遷移の際にUEFIはPOSTが終了した時点でOSにレジューム処理を渡す。このときS4ステートからのレジュームのときはOSがフラッシュ・メモリ19のハイバネーション領域からハイバネーション・データをロードする。
【0085】
ブロック501ではノートPC10がS0ステートで動作している(時刻t0)。このときPUISはディスエーブルに設定されている。また、RTCメモリ51にS34フラグとS34時間も設定されている。ブロック503でユーザがパワー・ボタン35の押下、リッド・センサ36の動作、またはGUIのアイコンを通じた操作などによりスリープ・イベントを生成する。
【0086】
スリープ・イベントに応じて移行するSxステートは、あらかじめパワー・マネジメント・システムに設定されている。ここでは、S3ステートに遷移するように設定されているものとする。OSは、各デバイスおよび実行中のアプリケーション・プログラムのS3ステートに遷移するための準備が完了すると、電源が停止するデバイスのシステム・コンテキストをメイン・メモリ13に書き込みレジスタ56にS3ステートへの遷移を設定する。
【0087】
このときOSはHDD23にコマンドを送ってPUISをイネーブルに設定する。レジスタ56が設定されると、PCH17はEC27を経由して電源をS3ステートに遷移させるように指示し、システムはブロック505でS3ステートに遷移する。RTC50はタイマ63と協働してS3ステートに遷移してからS34時間が経過するまでの時間を計時する。S34時間は、ユーザがノートPC10の使用をそれ以後も使用しないためハイバネーション状態に遷移させて省電力を図ることを優先させるべきとシステムが判断する時間である。
【0088】
ブロック507で、RTC50による計時時間がS34時間に到達したときは、PCH17はレジスタ57にタイム・アップ・ビットを設定してシステム・イベントを生成しEC27にそれまで停止していたデバイスに電力を供給するように指示してブロック509に移行する(時刻t3)。このときシステムは、電源の状態はS0ステートであるが、ソフトウェア上はS0ステートに至っていない状態である。システム・イベントが生成されないときはブロック551に移行する。
【0089】
ブロック509でUEFIはシステム・イベントに応じて、図5に示した第4のHDD_POSTを実行する。このときPUISはイネーブルに設定されており、かつ、UEFIはスピンアップ・コマンドを送らないためレジューム処理の間HDD23はスピンダウンを維持するため移動中にレジューム処理をしてもHDD23が損傷することはない。また、スピンアップに伴うHDD23の消費電力を削減できる。
【0090】
なお、ノートPC10がフラッシュ・メモリ19を実装していない場合は、ハイバネーション・データの退避先がHDD23になるため、HDD23の使用を前提とする第3のHDD_POSTを実行する。HDD23およびその他のデバイスのPOSTが終了すると、ブロック511に移行する。ブロック511でUEFIは、RTCメモリ51のS34フラグ、レジスタ56、57を参照して今回のレジュームがS4ステートに遷移させる目的であることを認識すると、OSにレジューム処理を渡さないでただちにS4ステートに遷移する処理をする。
【0091】
UEFIはS4ステートで電源が停止するデバイスのシステム・コンテキストをメイン・メモリ13に書き込んで生成したハイバネーション・データをフラッシュ・メモリ19のハイバネーション領域に書き込む。このときUEFIは、HDD23にコマンドを送ってPUISをディスエーブルに設定する。ブロック507、509、511の手順はOSが認識していない状態で行う。この時点でシステムはS4ステートに遷移しているが、OSは時刻t1でS3ステートに遷移したときの認識を維持している。
【0092】
S4ステートの間にブロック513でユーザ・ウェイクが発生するとパワー・コントローラ33は停止していたデバイスに電力を供給するとともにレジスタ62にウェイク・ビットを設定する。ブロック515でUEFIは図2に示した第1のHDD_POSTを実行する(時刻t5)。PUISはディスエーブルに設定されているため、UEFIは第1のHDD_POSTを実行して短時間でS0ステートに遷移させる。また、ユーザ・ウェイクであるため、ノートPC10の姿勢は安定していると想定できるためHDD23が損傷する可能性は低い。
【0093】
UEFIは、フラッシュROM19のハイバネーション領域からメイン・メモリ101にハイバネーション・データをロードする。ブロック517でUEFIからレジューム処理を引き継いだOSは、レジスタ56を参照してS3ステートからのレジュームであると認識してハイバネーション・データが含むシステム・コンテキストを各デバイスにリストアする、その後システムは、電源の状態だけでなくソフトウェア上も完全にS0ステートに遷移する。
【0094】
ブロック551では、S3ステートの間にユーザ・ウェイクが発生するとパワー・コントローラ33は停止していたデバイスに電力を供給するとともにレジスタ62にウェイク・ビットを設定する。ブロック553でUEFIは図3に示した第2のHDD_POSTを実行する(時刻t2)。ブロック555でHDD23およびその他のデバイスのPOSTが終了すると、OSはメイン・メモリ13が記憶するシステム・コンテキストを各デバイスに復帰してシステムをS0ステートに遷移させる。
【0095】
第1のパワー・マネジメントではS34時間の間はユーザ・ウェイクが発生しないと想定し、かつ移動中にシステム・ウェイクが発生してもHDD23が損傷しないように時刻t1でPUISをイネーブルに設定する。そして予期しない時刻t2でのユーザ・ウェイクに対しては第2のHDD_POSTを実行して比較的短い時間でHDD23のPOSTを終了するようにしている。
【0096】
[第2のパワー・マネジメント]
図8は、第2のパワー・マネジメントを実行するときのパワー・ステートの遷移を説明する図である。第2のパワー・マネジメントは、ユーザの生活パターンを学習してユーザが使用する可能性が高い時間帯に入る直前にS3ステートに遷移させておくと、ユーザがユーザ・ウェイクにより短時間でレジュームして使用できるようになる。また、ユーザが使用しない可能性が高い時間帯に入るとS4ステートに遷移させて待機電力を最小にする。第2のパワー・マネジメントはOSの管理下で行うため、第1のパワー・マネジメントのように、UEFIがS3ステートからS4ステートに遷移させることはない。
【0097】
図8(A)は、システム・ウェイクだけでレジュームする状態を示し、図8(B)はS3ステートまたはS4ステートでユーザ・ウェイクが発生した状態を示している。ここでは、ハイバネーション領域を備えるフラッシュ・メモリ19が存在しないものとして説明する。したがって、レジュームの際にUEFIはHDD23をスピンアップさせてレディ信号を受け取る必要があるためシステム・ウェイクが発生したときは第4のHDD_POSTに代えて第3のHDD_POSTを実行する。
【0098】
S0ステートからSxステートへのパワー・ステートの遷移はOS上で動作するパワー・マネージメント・ユーティリティが制御する。また、Sxステートにおけるシステム・イベントは、RTC50とタイマ63が協働して生成する。図8(A)では、時刻tx1でS3ステートに遷移し、時刻tx2でS0ステートに遷移してしばらくすると時刻tx3でS4ステートに遷移する。その後時刻tx4でS0ステートに遷移してしばらくすると時刻ts5でS3ステートに遷移し、さらに時刻tx6で時刻tx2と同様にS0ステートに遷移している。
【0099】
一例としてPUISは、S0ステートではディスエーブルに設定しS3ステートおよびS4ステートではイネーブルに設定する。そして時刻tx2、tx4、tx6のシステム・ウェイクでは図4の第3のHDD_POSTを実行する。したがって、スピンアップ・コマンドを第2のHDD_POSTよりも遅いタイミングで送って、衝撃対応システムが機能していない時間帯でのスピンアップの時間をできるだけ短縮する。このときシステム・ウェイクであるため、レジューム時間は問題にならない。
【0100】
他の例では、時刻tx5でS3ステートに遷移する際にはPUISをディスエーブルに設定するようにしてもよい。その場合はユーザが朝ユーザ・ウェイクにより使用を開始する際に、第1のHDD_POSTを実行してより短時間でS0ステートに遷移することができる。その後システムがS3ステートに遷移する際にPUISをディスエーブルに設定すると時刻tx1以降のS3ステートに戻る。
【0101】
図8(B)では、S3ステートに遷移している間に時刻t2でユーザ・ウェイクが発生し、S4ステートに遷移している間に時刻t3でユーザ・ウェイクが発生している。UEFIはPUISがイネーブルに設定されているため、第2のHDD_POSTを実行する。本発明では、第2のパワー・マネジメントにおけるHDD_POSTの選択を、上記で説明したものに限定する必要はない。POST時間の短縮、HDD損傷の防止、省電力などをウェイク・アップの種類に応じて判断し、ユーザの利用価値に沿った適切なHDD_POSTを選択することができる。また、フラッシュ・メモリ19が存在する場合はシステム・ウェイクに対して第4のHDD_POSTを選択することができる。
【0102】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【0103】
10 ノートPC
17 チップ・セット(PCH)
19 フラッシュ・メモリ
23 HDD
24 磁気ディスク
25 ファームウェアROM
33 パワー・コントローラ
図1
図2
図3
図4
図5
図6
図7
図8