(57)【要約】【課題】携帯式コンピュータを省電力状態からレジュームさせる方法を提供する。【解決手段】ＨＤＤ２３はパワーアップ・イン・スタンバイ機能（ＰＵＩＳ）を備える。フラッシュ・メモリ１９のハイバネーション領域は、磁気ディスク２４から読み取ったＨＤＤデータを記憶する。ファームウェアＲＯＭ２５はコード領域にＵＥＦＩを格納しデータ領域にＨＤＤデータを格納する。ＰＵＩＳをイネーブルに設定して省電力状態に移行している間にウェイク・イベントで電源が起動したときにＵＥＦＩはファームウェアＲＯＭからＨＤＤデータを読み取る。ＵＥＦＩはレジュームの際に電源の起動と同時にスピンアップさせないでＨＤＤの損傷を防止するとともに、短時間でＨＤＤデータを読み取ってＰＯＳＴ時間を短縮することができる。【選択図】図１
2014119832.tif 000002
【特許請求の範囲】
【請求項１】
初期化データを記憶する回転式のディスクとリセット時に前記ディスクの回転を停止させて起動する回転抑止機能を備える記憶装置を搭載する携帯式コンピュータを省電力状態からレジュームさせる方法であって、
前記ディスクから読み取った前記初期化データを記憶する不揮発性メモリを提供するステップと、
前記回転抑止機能をイネーブルに設定して前記省電力状態に移行させるステップと、
前記携帯式コンピュータに電源を投入するステップと、
前記不揮発性メモリから前記初期化データを読み取るステップと
を有する方法。
【請求項２】
前記初期化データを読み取るステップの前に前記記憶装置に前記ディスクを回転させるコマンドを送るステップを有する請求項１に記載の方法。
【請求項３】
前記携帯式コンピュータがオペレーティング・システム上で動作するプログラムと加速度センサが協働して構成する衝撃対応システムを備え、
前記初期化データを読み取るステップの後に前記記憶装置に前記ディスクを回転させるコマンドを送るステップを有する請求項１に記載の方法。
【請求項４】
前記コマンドを受信した前記記憶装置からレディ信号を受信するステップと、
前記レディ信号を受信した後にオペレーティング・システムによるレジューム処理に移行するステップと
を有する請求項２または請求項３に記載の方法。
【請求項５】
前記携帯式コンピュータに発生する加速度を検出するステップと、
前記加速度が所定値未満になるまで前記コマンドの送信を停止するステップと
を有する請求項２から請求項４のいずれかに記載の方法。
【請求項６】
前記記憶装置が前記携帯式コンピュータから取り外されたことを検出するステップと、
前記記憶装置がレディ信号を生成した後に前記ディスクから前記初期化データを読み取るステップを有する請求項２から請求項５のいずれかに記載の方法。
【請求項７】
前記ディスクから読み取った初期化データで前記不揮発性メモリを更新するステップを有する請求項６に記載の方法。
【請求項８】
前記携帯式コンピュータがパワー・オン状態で生成されたシステム・コンテキストを省電力状態の間に記憶するフラッシュ・メモリを備え、
システム・イベントにより電源が投入されたときに、前記ディスクを回転させないで前記初期化データを読み取るステップを実行する請求項１に記載の方法。
【請求項９】
初期化データを記憶する回転式のディスクとリセット時に前記ディスクの回転を停止させて起動する回転抑止機能を備える記憶装置を搭載する携帯式コンピュータのパワー・ステートを制御する方法であって、
前記ディスクから読み取った初期化データを記憶する不揮発性メモリを提供するステップと、
前記携帯式コンピュータをパワー・オン状態で動作させるステップと、
前記回転抑止機能をイネーブルに設定して前記パワー・オン状態からサスペンド状態に移行させるステップと、
前記サスペンド状態に移行してからの経過時間を計測して生成したシステム・イベントにより前記携帯式コンピュータに電源を投入するステップと、
前記不揮発性メモリから前記初期化データを読み取った後にファームウェアが前記コンピュータにハイバネーション状態に移行させる機能を実現させるステップと
を有する方法。
【請求項１０】
前記ハイバネーション状態に移行させるステップにおいて前記回転抑止機能をディスエーブルに設定するステップと、
前記ハイバネーション状態の間に生成されたユーザ・イベントにより前記携帯式コンピュータに電源を投入するステップと、
前記ディスクから前記初期化データを読み取って前記パワー・オン状態に移行させるステップと
を有する請求項９に記載の方法。
【請求項１１】
前記サスペンド状態の間にユーザ・イベントにより前記携帯式コンピュータに電源を投入するステップと、
前記記憶装置に前記ディスクを回転させるコマンドを送るステップと、
前記不揮発性メモリから前記初期化データを読み取って前記パワー・オン状態に移行させるステップと、
前記記憶装置からレディ信号を受信した後にオペレーティング・システムによるレジューム処理に移行するステップと
を有する請求項９または請求項１０に記載の方法。
【請求項１２】
初期化データを記憶する回転式のディスクとリセット時に前記ディスクの回転を停止させて起動する回転抑止機能を備える記憶装置を搭載する携帯式コンピュータのパワー・ステートを制御する方法であって、
前記ディスクから読み取った初期化データを記憶する不揮発性メモリを提供するステップと、
前記携帯式コンピュータをパワー・オン状態で動作させるステップと、
第１の時刻で生成されたスリープ・イベントにより前記回転抑止機能をイネーブルに設定して前記パワー・オン状態からサスペンド状態に移行させるステップと、
第２の時刻で生成されたシステム・イベントにより前記携帯式コンピュータに電源を投入するステップと、
前記不揮発性メモリから前記初期化データを読み取るステップと、
前記記憶装置に前記ディスクを回転させるコマンドを送るステップと、
前記記憶装置からレディ信号を受信した後に前記パワー・オン状態に移行させるステップと
を有する方法。
【請求項１３】
前記サスペンド状態に移行している間に生成されたユーザ・イベントにより前記携帯式コンピュータに電源を投入するステップと、
前記不揮発性メモリから前記ディスク・データを読み取って前記パワー・オン状態に移行させるステップと
を有する請求項１２に記載の方法。
【請求項１４】
第３の時刻で生成されたスリープ・イベントにより前記回転抑止機能をディスエーブルに設定して前記パワー・オン状態からサスペンド状態に移行させるステップと、
第４の時刻で生成されたシステム・イベントにより前記携帯式コンピュータに電源を投入するステップと、
前記ディスクから前記初期化データを読み取って前記パワー・オン状態に移行させるステップと
を有する請求項１３に記載の方法。
【請求項１５】
パワーアップ・イン・スタンバイ機能を備えるハードディスク・ドライブと、
磁気ディスクから読み取った初期化データを記憶する第１の不揮発性メモリと、
ウェイク・イベントを生成するイベント生成部とを有し、
前記パワーアップ・イン・スタンバイ機能をイネーブルに設定して省電力状態に移行している間に生成された前記ウェイク・イベントに応答して電源が投入されたときにファームウェアが前記第１の不揮発性メモリから前記初期化データを読み取る機能を前記コンピュータに実現させる携帯式コンピュータ。
【請求項１６】
前記ファームウェアは前記ハードディスク・ドライブにスピンアップ・コマンドを送って前記磁気ディスクを回転させて前記初期化データを読み取る機能を前記コンピュータに実現させる請求項１５に記載の携帯式コンピュータ。
【請求項１７】
ハイバネーション・データを記憶する第２の不揮発性メモリを有し、前記ファームウェアは前記ハードディスク・ドライブにスピンアップ・コマンドを送らないで前記初期化データを読み取る機能を前記コンピュータに実現させる請求項１６に記載の携帯式コンピュータ。
【請求項１８】
前記ハードディスク・ドライブが前記携帯式コンピュータから取り外されたことを検出するタンパ回路を有し、
前記ファームウェアは前記ハードディスク・ドライブが取り外されたことを検出したときに前記ハードディスク・ドライブにスピンアップ・コマンドを送って前記磁気ディスクを回転させて前記初期化データを読み取り、読み取った前記初期化データで前記第１の不揮発性メモリを更新する機能を前記コンピュータに実現させる請求項１５から請求項１７のいずれかに記載の携帯式コンピュータ。
【請求項１９】
初期化データを記憶する回転式のディスクとリセット時に前記ディスクの回転を停止させて起動する回転抑止機能を備える記憶装置を搭載するコンピュータに、
前記ディスクから読み取った初期化データを記憶する不揮発性メモリにアクセスする機能と、
前記回転抑止機能をイネーブルに設定して省電力状態に移行する機能と、
前記省電力状態に移行している間にシステム・イベントが生成されたときに前記ディスクを回転させないで前記不揮発性メモリから前記初期化データを読み取ってレジュームする機能と、
を実現させるコンピュータ・プログラム。
【請求項２０】
前記省電力状態に移行している間にユーザ・イベントが生成されたときに前記ディスクを回転させ前記記憶装置からレディ信号を受け取る前に前記不揮発性メモリから前記初期化データを読み取ってレジュームする機能を実現させる請求項１９に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回転式のディスクを備える記憶装置を搭載する携帯式コンピュータを省電力状態からレジュームさせる技術に関し、さらにはレジュームの際に記憶装置の損傷防止とＰＯＳＴ時間の短縮を図る技術に関する。
【背景技術】
【０００２】
ノートブック型パーソナル・コンピュータ（ノートＰＣ）は、バッテリィによる動作時間を確保するために、使用しないときはユーザの操作またはシステムの制御によりパワー・オフ状態よりも復帰時間の短いサスペンド状態またはハイバネーション状態などの省電力状態に遷移する。サスペンド状態では、電源が停止するデバイスのシステム・コンテキストを揮発性のメイン・メモリに格納してから、メイン・メモリの記憶を維持する必要のないデバイスの電力を停止する。
【０００３】
ハイバネーション状態では、パワー・オン状態での各デバイスのシステム・コンテキストおよびメイン・メモリの記憶内容（以下、ハイバネーション・データという。）をハードディスク・ドライブ（ＨＤＤ）やソリッド・ステート・ドライブ（ＳＳＤ）に格納してからほとんどのデバイスの電源を停止する。サスペンド状態またはハイバネーション状態からパワー・オン状態に復帰する際にＢＩＯＳまたはオペレーティング・システム（ＯＳ）が行う処理をレジューム処理ということにする。
【０００４】
これに対し、パワー・オン状態から省電力状態に移行するときのＢＩＯＳまたはＯＳの処理をスリープ処理ということにする。レジュームする際には、原則としてそれまで停止していたすべてのデバイスに電源を投入する。ＢＩＯＳは、システムの安全性の検証や、電源が停止していたデバイスに対するＰＯＳＴ（Power On Self Test）などのレジューム処理を実行する。以下では、ＢＩＯＳが行うレジューム処理を必要に応じてＰＯＳＴということにする。ＰＯＳＴでは、ＢＩＯＳがノートＰＣに装着されているデバイスを検出して初期化を行い、さらに電源が投入されてリセットされたデバイスが自主検査を行う。
【０００５】
各デバイスは、自主検査が終わってシステムによる利用が可能な状態になるとＢＩＯＳにレディ信号を送る。ＢＩＯＳおよびＯＳはレディ信号を受け取るまで当該デバイスを使用することができない。すべてのデバイスからレディ信号を受け取るとＢＩＯＳはＰＯＳＴを終了してレジューム処理をＯＳに引き継ぐ。ＯＳはハイバネーション・データのロードおよびシステム・コンテキストの復帰処理を行う。ＯＳのレジューム処理が終了するとシステムはパワー・オン状態に移行する。
【０００６】
ＢＩＯＳはデバイスから所定の時間が経過してもレディ信号を受け取ることができないときは、当該デバイスの初期化をスキップしてＯＳに制御を渡すこともあるが、多くのＢＩＯＳはレジューム後に使用する可能性の高いＨＤＤやＳＳＤなどからはレディ信号を受け取らない限りＰＯＳＴを終了することができない。特にＨＤＤがブート・ディスクである場合には、ブート・ファイルやハイバネーション・データを記憶しているために、レジュームの際にＢＩＯＳは必ずレディ信号を受け取る必要がある。
【０００７】
特許文献１は、ＨＤＤの起動時間を短縮することが可能なコンピュータ・システムを開示する。この発明では、ＨＤＤに設けられたフラッシュ・メモリにＯＳ起動プログラムを格納しておく。電源が印加されてから駆動モータが定常速度になる前に、フラッシュ・メモリからＯＳ起動プログラムを読み出すことで、コンピュータ・システムの起動時間を短縮する。
【０００８】
特許文献２は、ディスク装置を搭載するノートＰＣの起動時間の短縮を図る発明を開示する。この発明では、電源を切断する際にＨＤＤに記憶されている起動情報を不揮発性メモリに書き込んで、不揮発性メモリにＨＤＤと同じ起動情報が記憶されていることを示すフラグを設定する。電源を投入した際には、不揮発性メモリにフラグが設定されているときは不揮発性メモリから起動情報を読み出してノートＰＣを起動する。
【０００９】
特許文献３は、ユーザがコンピュータを使用する予想使用時刻を過去の時刻とパワー・ステートに関する使用パターンから予測して、待機状態において、予想使用時刻よりも先により浅いパワー・ステートに遷移させてパワー・オン状態まで短時間で復帰できるようにする発明を開示する。この発明では、待機電力の小さいＳ５ステートと復帰時間が短いＳ１ステートを利用して、復帰時間の短縮と待機電力の低減の両立を図っている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００３−２１６４３５号公報
【特許文献２】特開２００８−４０９４８号公報
【特許文献３】米国特許第６６５４８９５号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１１】
レジュームの際に電源が投入されたＨＤＤは、内部のＣＰＵがパワー・オン・リセットしてスピンドル・モータが動作し磁気ディスクを回転させる。このＨＤＤの動作をスピンアップという。パワー・オン状態のＨＤＤはホスト装置からのコマンドまたは独自のアルゴリズムで、アクティブ、アイドル、スタンバイ、またはスリープなどのパワー・マネジメント動作を実行して消費電力の低減を図る。スタンバイとスリープではスピンドル・モータが停止して磁気ディスクの回転が停止する。このＨＤＤの動作をスピンダウンという。スピンダウンの間はヘッドがランプ機構に退避しているためＨＤＤの耐衝撃性は向上する。
【００１２】
磁気ディスクには、定格容量、メーカ名、型式、パーティション情報、回転式であることを示す情報、以下に説明するパワーアップ・イン・スタンバイ（Power Up in Standby：ＰＵＩＳ）のサポートの有無などのＨＤＤを特定する固有のデータ（以後、ＨＤＤデータ）が記憶されている。ＨＤＤデータはスピンアップしたＨＤＤの磁気ディスクからＢＩＯＳが読み取る必要があるデータに相当する。ＢＩＯＳはＨＤＤのＰＯＳＴを完了するために磁気ディスクからＨＤＤデータを読み取る必要がある。ＨＤＤはＰＯＳＴ時に、ＢＩＯＳにレディ信号を送る前にスピンアップして自主検査をする必要がある。ＢＩＯＳはスピンアップしたＨＤＤからレディ信号を受け取ればその後ＨＤＤデータを読み取ることができる。
【００１３】
ノートＰＣでは、ユーザが使用したいときには迅速にパワー・オン状態に移行し、使用する可能性が低いときには消費電力を低減するためのさまざまな方式のパワー・マネジメントを採用している。省電力状態の深度を深くするほど待機電力は低減するがレジューム時間は長くなる。パワー・マネジメントでは、状況に応じて省電力状態の深度を変化させてユーザが使用するときのレジューム時間と待機電力のバランスをとっている。
【００１４】
一例として第１のパワー・マネジメントでは、ユーザがサスペンド状態に移行させてから所定の時間が経過したときにシステムが自動的にハイバネーション状態に移行させる。また、第２のパワー・マネジメントでは使用者の生活パターンを追跡したシステムが、ユーザが使用する可能性が高いと判断した時間帯に入る前にサスペンド状態に移行させ、使用する可能性が低い時間帯に入ったときにハイバネーション状態に移行させる。
【００１５】
ＨＤＤがスピンアップしている間にノートＰＣに衝撃が加えられるとＨＤＤが損傷する可能性がある。したがって、ある種のノートＰＣには加速度センサが検出した加速度をＯＳ上で動作するプログラムが処理して、衝撃の可能性を予知したときにヘッドをランプ機構に退避させる衝撃対応システムを搭載する。第１のパワー・マネジメントまたは第２のパワー・マネジメントのいずれにおいてもパワー・ステートが遷移するときは、ＨＤＤの電源が起動してスピンアップする。
【００１６】
レジュームの際にＯＳが実行される前は衝撃対応システムが機能しないため、特に移動中にレジュームするときにＨＤＤが損傷する可能性が高まる。電源が投入されたＨＤＤにスピンダウンを維持させる方法として、ＡＴＡではＰＵＩＳという動作モードを規定する。ＢＩＯＳまたはＯＳがＰＵＩＳをイネーブルに設定すると、電源が投入されたりリセットされたりしたときにＨＤＤはスピンダウンを維持する。イネーブルに設定されたＰＵＩＳは、ＨＤＤがその後ディスエーブルに設定するコマンドを受け取らない限りディスエーブルに戻らない。
【００１７】
ＰＵＩＳをイネーブルに設定すれば衝撃対応システムが機能しない間にスピンダウンを維持してＨＤＤの損傷を防ぐことはできる。しかし、ＰＯＳＴを終了するにはＢＩＯＳがＨＤＤにコマンドを送ってスピンアップさせレディ信号を受け取った後にＨＤＤデータを読み取る必要がある。この手順はＰＯＳＴ時間の延長をもたらすため上記のパワー・マネジメントでは受け入れがたい。また、ユーザがノートＰＣを利用するためにレジュームさせるときは、できるだけ短時間でＰＯＳＴを終了する必要がある。このようにＨＤＤを搭載するノートＰＣでパワー・マネジメントを実現するには、各レジュームのタイミングでＨＤＤの損傷防止とレジューム時間の短縮のバランスを考慮する必要がある。
【００１８】
そこで本発明の目的は、回転式のディスクを備える記憶装置を搭載する携帯式コンピュータの損傷を防止する方法を提供することにある。さらに本発明の目的は、そのような携帯式コンピュータのレジューム時間を短縮する方法を提供することにある。さらに本発明の目的は、そのような携帯式コンピュータの消費電力を低減する方法を提供することにある。さらに本発明の目的は、そのような携帯式コンピュータのパワー・ステートを制御する方法を提供することにある。さらに本発明の目的は、そのような方法を実現するコンピュータ・プログラムおよび携帯式コンピュータを提供することにある。
【課題を解決するための手段】
【００１９】
本発明は、初期化データを記憶する回転式のディスクとリセット時にディスクの回転を停止させて起動する回転抑止機能を備える記憶装置を搭載する携帯式コンピュータを省電力状態からレジュームさせる方法を提供する。レジューム処理は、携帯式コンピュータを構成するＣＰＵ、メイン・メモリ、およびファームウェアなどの協働した動作により構成されるシステムが行う。初期化データは、システムがＰＯＳＴの間に必要とする記憶装置の情報に相当する。
【００２０】
不揮発性メモリは、あらかじめディスクから読み取った初期化データを記憶する。不揮発性メモリは、レジューム中にシステムがアクセスできるいずれかの位置に配置することができる。回転抑止機能をイネーブルに設定して省電力状態に移行させると、レジュームの際に記憶装置に電源を投入してもディスクは回転しない。したがって、移動中にレジュームしても記憶装置の損傷を防止することができる。
【００２１】
他方で、回転抑止機能をイネーブルに設定するとシステムはディスクから初期化データを読み取ることはできないため、本発明では不揮発性メモリから読み取る。システムは、レジューム処理を終了するために記憶装置からレディ信号を受け取る必要がある場合がある。そのために、システムは回転抑止機能がイネーブルに設定された記憶装置にディスクを回転させるコマンドを送ることができる。
【００２２】
システムはこのコマンドを、不揮発性メモリから初期化データを読み取る前に送ることができる。この場合、初期化データの読み取りとディスクが回転したあとの記憶装置の自主検査を並行して行うことができるため、レディ信号を短時間で受け取ってＰＯＳＴ時間を短縮することができる。この方法は、回転抑止機能をイネーブルに設定し、衝撃の可能性が低いユーザ・ウェイクをするときに適している。
【００２３】
携帯式コンピュータは、オペレーティング・システム上で動作するプログラムと加速度センサが協働して構成する衝撃対応システムを備えることができる。この場合、システムが初期化データを読み取った後にコマンドを送るようにすれば、衝撃対応システムが機能しない間にディスクが回転する時間を低減することができる。この方法は、レジュームの間にスピンアップさせる必要がある場合でもより安全性を向上できるため、衝撃の可能性が高くＰＯＳＴ時間の短縮を図る必要のないシステム・ウェイクに適している。
【００２４】
記憶装置はディスクが回転すると自主検査をしたあとにシステムにレディ信号を送信することができる。その結果、システムがレディ信号を要求する場合にレディ信号を受信してからオペレーティング・システムによるレジューム処理に移行することができる。携帯式コンピュータに発生する加速度を検出し、加速度が所定値未満になるまでコマンドの送信を停止するようにすれば、より確実に記憶装置の損傷を防止することができる。
【００２５】
記憶装置が携帯式コンピュータから取り外されたときは、不揮発性メモリが記憶する初期化データが正しく記憶装置を記述しなくなる。この場合システムは取り外しを検出して、コマンドを受け取った記憶装置がレディ信号を生成した後にディスクから正しい初期化データを読み取ることができる。そして、ディスクから読み取った初期化データで不揮発性メモリを更新することで、それ以降は不揮発性メモリの初期化データを利用したＰＯＳＴをすることができるようになる。
【００２６】
システムは、携帯式コンピュータがパワー・オン状態で生成されたシステム・コンテキストを省電力状態の間に記憶するフラッシュ・メモリを有する場合には、ディスクを回転させないで不揮発性メモリから初期化データを読み取ることができる。この方法は、システム・イベントにより省電力状態の間でパワー・ステートを遷移させるために電源を投入する場合のように記憶装置を使用しないときのＰＯＳＴに適している。
【発明の効果】
【００２７】
本発明により、回転式のディスクを備える記憶装置を搭載する携帯式コンピュータの損傷を防止する方法を提供することができた。さらに本発明により、そのような携帯式コンピュータのレジューム時間を短縮する方法を提供することができた。さらに本発明により、そのような携帯式コンピュータの消費電力を低減する方法を提供することができた。さらに本発明により、そのような携帯式コンピュータのパワー・ステートを制御する方法を提供することができた。さらに本発明により、そのような方法を実現するコンピュータ・プログラムおよび携帯式コンピュータを提供することができた。
【図面の簡単な説明】
【００２８】
【図１】ノートＰＣのハードウェア構成の一例を説明するための機能ブロック図である。
【図２】第１のＨＤＤ＿ＰＯＳＴの実行手順を示すフローチャートである。
【図３】第２のＨＤＤ＿ＰＯＳＴの実行手順を示すフローチャートである。
【図４】第３のＨＤＤ＿ＰＯＳＴの実行手順を示すフローチャートである。
【図５】第４のＨＤＤ＿ＰＯＳＴの実行手順を示すフローチャートである。
【図６】第１のパワー・マネジメントを実行するときのパワー・ステートの遷移を説明する図である。
【図７】第１のパワー・マネジメントの実行手順を示すフローチャートである。
【図８】第２のパワー・マネジメントを実行するときのパワー・ステートの遷移を説明する図である。
【発明を実施するための形態】
【００２９】
［ノートＰＣの構成］
図１は、ノートＰＣ１０のハードウェア構成の一例を説明するための機能ブロック図である。多くのハードウェアの構成は周知であるため、ここでは本発明の理解に必要な範囲で説明する。最初にノートＰＣ１０のパワー・ステートについて説明する。ノートＰＣ１０は、ＡＣＰＩ（Advanced Configuration and Power Interface）の省電力機能に対応している。ＡＣＰＩでは、Ｓ１ステートからＳ４ステートまでの４つのスリーピング・ステート（省電力状態）、Ｓ０ステート（パワー・オン状態）、およびＳ５ステート（パワー・オフ状態）を定義している。
【００３０】
ＡＣＰＩのスリーピング・ステートのなかでノートＰＣ１０は、一例としてＳ３ステートとＳ４ステートだけを定義しているが他のスリーピング・ステートを定義してもよい。また、Ｓ５ステートは独立して定義しないでＳ４ステートの中に含めるようにしてもよい。Ｓ３ステート、Ｓ４ステートおよびＳ５ステートを総称するときはＳｘステートと記述する。
【００３１】
スリーピング・ステートのときはＣＰＵ１１およびＨＤＤ２３の電源は必ず停止する。Ｓ３ステート（サスペンド状態）では、メイン・メモリ１３の記憶を保持し、メイン・メモリ１３の記憶保持とノートＰＣ１０の電源を起動するのに必要なデバイス以外のデバイスに対する電力を停止する。サスペンド状態に入る際にＯＳは、電源が停止するデバイスが保持していたシステム・コンテキストをメイン・メモリ１３に退避し、パワー・オン状態に戻ったときにそれを各デバイスにリストアする。
【００３２】
Ｓ４ステート（ハイバネーション状態）は、ＡＣＰＩでサポートされるスリーピング・ステートの中で最も起動までの時間が長く、かつ消費電力が少ない状態である。ノートＰＣ１０がパワー・オン状態からハイバネーション状態に遷移する際には、ＯＳがＨＤＤ２３またはフラッシュ・メモリ１９のハイバネーション領域などにメイン・メモリ１３が記憶するハイバネーション・データを格納してからパワー・コントローラ３３などの電源の起動に必要なデバイス以外のデバイスに対する電力を停止する。
【００３３】
Ｓ５ステートはいわゆるソフト・オフともいわれ、ＯＳがハイバネーション・データをＨＤＤ２３などに格納しない点を除いては基本的に電力を供給するデバイスの範囲はＳ４ステートと同じである。なお、本発明におけるＳ４ステートには、ＯＳがＳ３ステートに遷移させてから所定の時間が経過したときにＢＩＯＳが自動的にＳ４ステートに遷移させる状態も含む。この場合は、ＯＳはシステムがＳ３ステートに遷移していると認識するが、実際のパワー・ステートはＳ４ステートとなる。
【００３４】
チップ・セットとして構成されるプラットフォーム・コントロール・ハブ（ＰＣＨ）１７にはＣＰＵ１１、フラッシュ・メモリ１９、ＨＤＤ２３、ファームウェアＲＯＭ２５およびエンベデッド・コントローラ（ＥＣ）２７が接続されている。ＰＣＨ１７に代えて、ＩＣＨとＭＣＨで構成したりＩＯＨとＩＣＨで構成したりすることができる。ＣＰＵ１１にはメイン・メモリ１３およびＬＣＤ１５が接続されている。ＰＣＨ１７は、さまざまな規格のインターフェース機能を備えており、図１では代表的にｍＳＡＴＡコントローラにフラッシュ・メモリ１９が接続され、ＳＡＴＡコントローラにＨＤＤ２３が接続され、ＳＰＩにファームウェアＲＯＭ２５が接続され、ＬＰＣにＥＣ２７が接続されている。
【００３５】
フラッシュ・メモリ１９は、ＨＤＤ２３のキャッシュとして利用するキャッシュ領域とＳ４ステートに遷移させるときのハイバネーション・データ記憶するハイバネーション領域の２つのパーティションで区切られている。フラッシュ・メモリ１９に代えてハイバネーション・データを記憶する専用のフラッシュ・メモリを備えるようにしてもよい。また、フラッシュ・メモリ１９がハイバネーション領域を含まない場合は、ＨＤＤ２３がハイバネーション・データを記憶することができる。
【００３６】
ＨＤＤ２３はＯＳ、デバイス・ドライバ、アプリケーション・プログラム、およびユーザ・データなどを記憶する磁気ディスク２４を含む。ＨＤＤ２３はブート・ディスク・ドライブでノートＰＣ１０が起動するときにロードされるブート・ファイルを格納している。ＨＤＤ２３は内部に、ＵＥＦＩ（Unified Extensible Firmware Interface）ファームウェア（以後、ＵＥＦＩという。）がＰＵＩＳの設定をするフラッシュ・メモリを含む。ＵＥＦＩは、ＨＤＤ２３のインターフェースを初期化した後は、ＨＤＤ２３のフラッシュ・メモリにアクセスしてＰＵＩＳの設定および設定状態の確認をすることができる。
【００３７】
ファームウェアＲＯＭ２５は、不揮発性で記憶内容の電気的な書き替えが可能なメモリでコード領域とデータ領域を含む。コード領域は複数のコード群で構成されたＵＥＦＩを格納する。ＵＥＦＩはＵＥＦＩフォーラムが策定したＢＩＯＳに代わってまたはＢＩＯＳに加えて使用する新しい仕様のシステム・ファームウェアである。ＵＥＦＩは、ノートＰＣ１０がＳｘステートからＳ０ステートにレジュームする際に、ＣＰＵ１１がパワー・オン・リセットされると必ず最初に実行される。
【００３８】
ＵＥＦＩは、レジュームする際に自身のコードに対する改変の有無を検査したり、パスワード認証をしたりデバイスを初期化したりするいわゆるＰＯＳＴを実行する。ＵＥＦＩはシステムがレジュームするときの遷移元のパワー・ステートに応じてＰＯＳＴの内容を変えることができる。たとえば、Ｓ５ステートからレジュームする際には、すべてのデバイスからパラメータを取得してインターフェースに設定する完全なＰＯＳＴを実行し、Ｓ４ステートからレジュームする際には一部のデバイスのＰＯＳＴをＯＳに委ねたり以前に設定していたパラメータをインターフェースにリストアしたりしてＰＯＳＴ時間を短縮する。Ｓ３ステートからレジュームするときは短時間で終了できるようにより簡素なＰＯＳＴを実行する。
【００３９】
データ領域は、本実施の形態においてレジュームする際にＵＥＦＩが使用するＨＤＤデータを格納する。ＨＤＤデータは、ＳｘステートからＳ０ステートにレジュームする際に、ＨＤＤ２３のＰＯＳＴをするために、従来はＵＥＦＩが磁気ディスク２４から読み取っていたデータである。ＵＥＦＩは、ＨＤＤ２３のＰＯＳＴを終了してレジュームの間またはレジューム後にＨＤＤ２３を使用するためにＨＤＤデータを必要とする。
【００４０】
本実施の形態でＵＥＦＩは、ＰＵＩＳをイネーブルに設定したときにデータ領域からＨＤＤデータを読み取る。なお、ＵＥＦＩがＨＤＤデータを格納する領域は、ファームウェアＲＯＭ２５に限定する必要はなく、ＵＥＦＩがＰＯＳＴ中にアクセスできるフラッシュ・メモリ１９のハイバネーション領域やＨＤＤ２３に収納されたフラッシュ・メモリなどのような他の不揮発性メモリとすることもできる。
【００４１】
ＰＣＨ１７は、ＲＴＣ（Real Time Clock）５０とＲＴＣメモリ５１を含んでいる。ＲＴＣ５０およびＲＴＣメモリ５１は、ＡＣ／ＤＣアダプタ３９および電池パック４１の電力が停止して、ＰＣＨ１７にＤＣ／ＤＣコンバータ３７から電力が供給されないときにボタン電池から電力の供給を受けることができる。ＲＴＣメモリ５１は、ＵＥＦＩがデバイスに設定するセット・アップ・データおよびＲＴＣ５０が生成した時間情報などを記憶する揮発性メモリである。ＲＴＣメモリ５１は、Ｓ３ステートまたはＳ４ステートからＳ０ステートに遷移する際にＵＥＦＩが参照するＳ３４フラグおよびＳ３４時間を記憶する。ＲＴＣメモリ５１へのＳ３４フラグおよびＳ３４時間の設定は、ＵＥＦＩファームウェアのセット・アップ・コードを通じてユーザがファームウェアＲＯＭ２５のデータ領域へＳ３４イネーブルを設定する際に行う。
【００４２】
Ｓ３４フラグは、ＯＳがノートＰＣ１０をＳ３ステートに遷移させてから所定の時間が経過したときに、ＵＥＦＩにＳ４ステートに遷移する処理をするように指示するための情報である。Ｓ３４時間は、ＯＳがシステムをＳ３ステートに遷移させてからＵＥＦＩが自動的にＳ３４ステートに遷移させるまでの時間をいう。一例としてＳ３４時間は３時間とする。ＰＣＨ１７は、レジスタ５６、５７、５８を含む。レジスタ５６はＳｘステートの間も電力が供給される。
【００４３】
レジスタ５６は、ＡＣＰＩに規定するＳＬＰ＿ＴＹＰレジスタおよびＳＬＰ＿ＥＮレジスタに相当する。レジスタ５６はＳ０ステートからＳｘステートに遷移する際にＯＳにより設定される。ＯＳは、システムがＳｘステートに遷移する準備が完了したときにレジスタ５６に遷移先のパワー・ステートを設定する。レジスタ５６に遷移先のパワー・ステートが設定されるとＰＣＨ１７はＥＣ２７を通じてノートＰＣ１０を設定されたパワー・ステートに遷移させる。
【００４４】
ＵＥＦＩはＳｘステートからレジュームする際にレジスタ５６を参照し、遷移元のパワー・ステートに応じてＰＯＳＴの実行パスを決定する。ＵＥＦＩが選択するＰＯＳＴの実行パスでは、遷移元のパワー・ステートがＳ５ステートのときにＰＯＳＴ時間が最大になり、Ｓ３ステートのときに最小になる。レジスタ５７には、Ｓ３ステートに遷移してからの経過時間がＳ３４時間に到達したときにＲＴＣ５０がタイム・アップ・ビットを設定する。タイム・アップ・ビットが設定されるとＰＣＨ１７はＥＣ２７を通じてノートＰＣ１０をレジュームさせる。
【００４５】
Ｓｘステートのときにユーザによるパワー・ボタン３５の押下またはリッド・センサ３６の動作によりパワー・オン状態に移行するように電源を起動することをユーザ・ウェイクといい、そのときに生成されるイベントをユーザ・イベントということにする。また、システムが同様のことを行う場合をシステム・ウェイクおよびシステム・イベントということにする。タイム・アップ・ビットはシステム・イベントに相当する。
【００４６】
レジスタ５８には、加速度ビットが設定される。ＥＣ２７は加速度センサ２９から取得した加速度が所定値を越えたときに加速度ビットを設定する。ＥＣ２７は所定の時間、加速度が閾値より低下したときに加速度ビットをリセットする。ＰＣＨ１７は、フラッシュ・メモリ１９をＨＤＤ２３のキャッシュとして機能させるためのキャッシュ・コントローラ５３を含む。キャッシュ・コントローラ５３は、ＣＰＵ１１が実行するプログラムがＨＤＤ２３に書き込むデータをライトバック・キャッシングまたはライトスルー・キャッシングでフラッシュ・メモリ１９のキャッシュ領域およびＨＤＤ２３の磁気ディスク２４に書き込む。
【００４７】
ＥＣ２７には、加速度センサ２９およびパワー・コントローラ３３が接続されている。ＥＣ２７は、ＣＰＵ、ＲＯＭ、ＲＡＭなどで構成されたマイクロ・コンピュータである。ＥＣ２７は、ノートＰＣ１０の内部の動作環境の管理にかかるプログラムをＣＰＵ１１とは独立して実行することができる。ＥＣ２７は、パワー・コントローラ３３を通じてＤＣ／ＤＣコンバータ３７の動作を制御する。
【００４８】
加速度センサ２９は、ノートＰＣ１０に発生する加速度をＥＣ２７に出力する。加速度センサ２９とＯＳ上で動作するプログラムは衝撃対応システムを構成する。衝撃対応システムは、所定のアルゴリズムでヘッドを退避する必要のある衝撃の予兆を検出したときに、ＨＤＤ２３のヘッドをランプ機構に退避させる。衝撃対応システムの一例が特開２００４−１４６０３６号公報に開示されている。
【００４９】
ＳｘステートからＳ０ステートに遷移する際には、ＯＳが実行されないため衝撃対応システムは機能しない。ただし、ＥＣ２７および加速度センサ２９に電源が投入されるとＥＣ２７は加速度の大きさは検出することができる。本実施の形態ではレジュームの間に、ＥＣ２７が所定値以上の大きさの加速度を検出したときにＨＤＤ２３をスピンアップさせないようにして損傷を防止することができる。
【００５０】
パワー・コントローラ３３には、パワー・ボタン３５、リッド・センサ３６およびＤＣ／ＤＣコンバータ３７の制御回路が接続されている。パワー・コントローラ３３は、ＥＣ２７からの指示に基づいてＤＣ／ＤＣコンバータ３５を制御するワイヤード・ロジックのディジタル制御回路（ＡＳＩＣ）である。パワー・コントローラ３３は、タンパ・ビットを設定するレジスタ５９、パワー・ビットを設定するレジスタ６１、ウェイク・ビットを設定するレジスタ６２およびタイマ６３を備えている。
【００５１】
パワー・コントローラ３３は、ノートＰＣ１０をレジュームさせるためにＳｘステートでも電力が維持される。パワー・コントローラ３３の電力が停止すると、レジスタ５９、６１、６２のビットはリセットされて０を示す。パワー・コントローラ３３は、タンパ検出ライン６７でＨＤＤ２３に接続されている。タンパ検出ライン６７は、パワー・コントローラ３３と同じ電源でプルアップされている。ＨＤＤ２３はノートＰＣ１０に装着されている間、タンパ検出ライン６７の電位をグランド・レベルに維持している。ＨＤＤ２３がノートＰＣ１０から取り外されるとタンパ検出ライン６７の電位が上昇する。
【００５２】
パワー・コントローラ３３の論理回路は、タンパ検出ライン６７の電位が上昇するときのリーディング・エッジを検出するとレジスタ５９を論理値１に設定する。ＵＥＦＩは、パスワード認証が成功したときにパワー・コントローラ３３に電力が供給されていることを前提としてレジスタ６１を論理値１に設定する。レジスタ６１が１を示すときは、ＵＥＦＩが設定したあとにパワー・コントローラ３３の電力が停止していないことを示す。
【００５３】
レジスタ５９、６１はタンパ機能を構成し、パワー・コントローラ３３の電源が停止したときにともにリセットされて論理値０に設定される。ＵＥＦＩは、レジスタ５９が０でレジスタ６１が１のとき以外はＨＤＤ２３の取り外しがあったと判断する。タイマ６３は、レジュームのためのシステム・イベントを生成するためにＳｘステートの間計時動作をする。
【００５４】
ウェイク・ビット６２は、パワー・ボタン３５の押下またはリッド・センサ３６の動作があったときにパワー・コントローラ３３の論理回路が設定する。ウェイク・ビットはユーザ・イベントに相当する。本実施の形態では消費電力を低減するためにＳｘステートでは、ＲＴＣ５０およびレジスタ５７がシステム・イベントを生成するためのＰＣＨ１７の機能を停止するため、Ｓｘステートの間はタイマ６３で時間をラフに計時し、システム・イベントを生成する予定の時刻の直前にＰＣＨ１７に電力を供給してＲＴＣ５０が正確な時刻でレジスタ５７にタイム・アップ・ビットを設定する。
【００５５】
システム・イベントを生成したＰＣＨ１７はＥＣ２７を通じて電源を起動する。ＲＴＣ５０とタイマ６３の協働によるシステム・ウェイクの方法は本発明の出願人に譲渡された特開２０１２−２２６６７７号公報が開示している。ただし、本発明ではＳｘステートのときにシステム・イベントを生成する方法はこれに限定する必要はない。たとえば、ＳｘステートでもＰＣＨ１７のＲＴＣ５０に関連する部分に電力を供給したり、Ｓｘステートで電源がバックアップされる専用の計時装置を設けたりしてシステム・イベントを生成するようにしてもよい。
【００５６】
ＡＣ／ＤＣアダプタ３９および電池パック４１は、ノートＰＣ１０の電力源である。ＤＣ／ＤＣコンバータ３７は、ＡＣ／ＤＣアダプタ３９または電池パック４１から供給される直流電圧を、ノートＰＣ１０を動作させるために必要な複数の電圧に変換し、さらにパワー・ステートに応じて定義された電力供給区分に基づいて各々のデバイスに電力を供給する。
【００５７】
［ＨＤＤのＰＯＳＴ］
本実施の形態では、第１のパワー・マネジメントおよび第２のパワー・マネジメントにおいて、各レジュームのタイミングでＨＤＤ２３に関する４種類のＰＯＳＴ（ＨＤＤ＿ＰＯＳＴ）のいずれかを行う。各パワー・マネジメントは、ＨＤＤ２３の損傷防止とＰＯＳＴ時間の短縮のいずれかを重視しながら適切なＨＤＤ＿ＰＯＳＴを選択して、全体としては両者を両立させるように構成されている。
【００５８】
本実施の形態では、ユーザ・イベントはユーザがノートＰＣ１０を使用する際に生成されるため、ユーザ・ウェイクでレジュームするときに起動と同時にスピンアップしてもＨＤＤ２３が損傷する可能性は低いと想定する。またシステム・イベントはユーザがノートＰＣ１０を持ち運んでいる際に生成されることがあるため、レジュームのときに起動と同時にスピンアップするとＨＤＤ２３が損傷する可能性が高いと想定する。
【００５９】
ユーザ・イベントでレジュームするときは、ユーザの利便性を考慮するとＰＯＳＴ時間の短縮が重要になるが、システム・イベントでレジュームするときはＰＯＳＴ時間の短縮はほとんど問題にならずむしろＨＤＤ２３の損傷防止が重要になる。ＰＵＩＳをディスエーブルに設定する従来の方法では、起動と同時にＨＤＤ２３のスピンアップを行うためＰＯＳＴ時間は問題にしないが、損傷防止が問題になる。
【００６０】
ＰＵＩＳをイネーブルに設定すると、ＨＤＤ２３が起動と同時にはスピンアップしないためシステム・イベントでレジュームするときでも損傷を防止することができる。ＵＥＦＩがＰＯＳＴを終了するためにスピンアップしたＨＤＤ２３からレディ信号を受け取る必要がある場合は、イネーブルに設定されていてもＨＤＤ２３にスピンアップ・コマンドを送ってスピンアップさせることができる。この場合であっても、ＨＤＤ２３が起動と同時にはスピンアップせず、衝撃対応システムが機能しない間にスピンアップしている時間を低減して衝撃に対する安全を向上させることができる。
【００６１】
ハイバネーション・データを格納するフラッシュ・メモリ１９が存在し、レジューム処理の間またはレジュームが終了したあとにＨＤＤ２３を使用する必要がない場合は、レジュームのときにスピンダウンを維持できる場合がある。レジュームのときにフラッシュ・メモリ１９を利用してスピンダウンを維持できれば、消費電力の低減、ＰＯＳＴ時間の短縮およびＨＤＤ２３の損傷防止を最も確実に行うことができる。
【００６２】
表１はこれらの要求に対応するために、ＵＥＦＩが選択するＨＤＤ＿ＰＯＳＴの種類を示す。ＵＥＦＩはパワー・マネジメントを実行する際に、ＰＵＩＳの設定状態、ウェイクの種類、およびフラッシュ・メモリ１９のようなＨＤＤに代わってハイバネーション・データを記憶するフラッシュ・メモリ１９の有無の３つの要素を判断していずれかのＨＤＤ＿ＰＯＳＴを選択する。以下で簡単に各ＨＤＤ＿ＰＯＳＴの特徴を説明したあとに、その手順を詳しく説明する。
【００６３】
【表１】
2014119832.tif 000003
【００６４】
第１のＨＤＤ＿ＰＯＳＴから第３のＨＤＤ＿ＰＯＳＴまでは、ハイバネーション・データを格納するフラッシュ・メモリ１９またはそれに相当する不揮発性の半導体メモリの存否にかかわらず適用する。第１のＨＤＤ＿ＰＯＳＴは、ＰＵＩＳをディスエーブルに設定する従来の方法で、ＨＤＤ２３のＰＯＳＴ時間は問題にしない。第１のＨＤＤ＿ＰＯＳＴは、ＨＤＤ２３の損傷を考慮する必要がないユーザ・ウェイクによるＰＯＳＴに適している。
【００６５】
第２のＨＤＤ＿ＰＯＳＴから第４のＨＤＤ＿ＰＯＳＴまでは、ＰＵＩＳをイネーブルに設定し、ＵＥＦＩがウェイクの種類とフラッシュ・メモリ１９の有無によりいずれかを選択する。第２のＨＤＤ＿ＰＯＳＴから第４のＨＤＤ＿ＰＯＳＴまでは、システム・ウェイクが発生することを予想してＰＵＩＳをイネーブルに設定しＨＤＤ２３の損傷防止を図る。さらに、不意にユーザ・ウェイクが発生した場合にはできるだけ短時間でＰＯＳＴを終了できるようにしている。第２のＨＤＤ＿ＰＯＳＴから第４のＨＤＤ＿ＰＯＳＴまでは、通常のようにレディ信号を受け取ったあとにＨＤＤデータを磁気ディスク２４から読み取ることはしないで、レディ信号を受け取る前にまたはレディ信号を受け取らないでファームウェアＲＯＭ２５のデータ領域に格納したＨＤＤデータを利用してＰＯＳＴを実行する。
【００６６】
第２のＨＤＤ＿ＰＯＳＴは、ＰＵＩＳがイネーブルに設定されているためＰＯＳＴ時間が第１のＨＤＤ＿ＰＯＳＴより長くなるが、起動と同時にスピンアップしないためＨＤＤ２３の損傷を防止することができる。ＵＥＦＩがファームウェアＲＯＭ２５からＨＤＤデータを読み取ることで、磁気ディスク２４からＨＤＤデータを読み取る従来の方法よりもＰＯＳＴ時間を短縮することができるため、ユーザ・ウェイクによるＰＯＳＴに適している。
【００６７】
第３のＨＤＤ＿ＰＯＳＴは、第２のＨＤＤ＿ＰＯＳＴに比べてウェイクの種類がシステム・ウェイクである点で異なる。システム・ウェイクの場合はＰＯＳＴ時間の延長を問題にしない代わりにＨＤＤ２３が損傷する可能性が高いので、第３のＨＤＤ＿ＰＯＳＴでは、第２のＨＤＤ＿ＰＯＳＴに比べて一層ＨＤＤ２３の損傷を防止できるようにスピンアップ・コマンドを送るタイミングを遅らせている。第４のＨＤＤ＿ＰＯＳＴは、ハイバネーション・データを格納するフラッシュ・メモリ１９が存在する場合でかつレジューム中およびレジューム後にＨＤＤ２３を使用する可能性がないシステム・ウェイクの場合に適用する。
【００６８】
［第１のＨＤＤ＿ＰＯＳＴ］
図２は、第１のＨＤＤ＿ＰＯＳＴの実行手順を示すフローチャートである。ブロック１０１〜１０９はＵＥＦＩの実行手順を示し、ブロック１５１〜１５７はＨＤＤ２３の動作手順を示している。ブロック１０１、１５１では、Ｓｘステートに遷移しているときにユーザ・イベントによりそれまで停止していたデバイスに電力が供給される。このときＨＤＤ２３はＰＵＩＳがディスエーブルに設定されている。
【００６９】
ブロック１５３で、ＨＤＤ２３は内部のＣＰＵがリセット動作を開始し、同時に磁気ディスク２４がスピンアップする。スピンアップを開始したＨＤＤ２３はブロック１５５でヘッドを駆動するアクチュエータや磁気ディスク２４を回転させるスピンドル・モータなどのサーボ系の自主検査を行う。このサーボ系の検査は電子回路系の検査に比べて時間がかかる。
【００７０】
ＵＥＦＩは、ＣＰＵ１１およびメイン・メモリ１３などのＰＯＳＴの実行開始に最低限必要な基本的なデバイスを初期化し、さらにプラットフォームの一貫性を検証する。ブロック１０３でＵＥＦＩは、ＰＣＨ１７、フラッシュ・メモリ１９、およびＨＤＤ２３のインターフェースを検査してから、それらにＲＴＣメモリ５１に格納しておいたパラメータを設定して初期化する。同時に他の周辺デバイスも初期化する。その後ＵＥＦＩファームウェアはＨＤＤ２３を含む各デバイスからのレディ信号を待つ。
【００７１】
サーボ系の検査が終了するとブロック１５７でＨＤＤ２３はＵＥＦＩにレディ信号を送る。サーボ系を備えるＨＤＤ２３は、電子デバイスだけで構成される他のデバイスより通常はレディ信号を送るまでの時間が長い。ブロック１０４でＵＥＦＩは、ＨＤＤ２３にコマンドを送ってＰＵＩＳの設定状態を確認する。さらにＵＥＦＩはフラッシュ・メモリ１９の装着状態、ウェイク・イベントの種類を確認して、４種類のＨＤＤ＿ＰＯＳＴのなかから第１のＨＤＤ＿ＰＯＳＴの実行パスを選択する。ＵＥＦＩはウェイク・イベントの種類をＲＴＣメモリ５１のＳ３４フラグ、およびレジスタ５７、６２を参照して確認する。
【００７２】
ブロック１０５でＵＥＦＩは、ＨＤＤ２３からレディ信号を受け取る。レディ信号を受け取ったＵＥＦＩは、ＨＤＤ２３がアクセスできる状態になったことを認識してブロック１０７でＨＤＤ２３にコマンドを送って磁気ディスク２４からＨＤＤデータを読み取る。ブロック１０９で予定したすべてのデバイスからレディ信号を受け取ると、ＵＥＦＩファームウェアはＰＯＳＴを終了してＯＳにレジューム処理を移行する。
【００７３】
第１のＨＤＤ＿ＰＯＳＴでは、ＰＵＩＳがディスエーブルに設定されリセットと同時にスピンアップを開始して、ブロック１０１から１０５までの手順とブロック１５１から１５７までの手順が並行して行われるため、ＵＥＦＩは比較的短い時間で磁気ディスク２４からＨＤＤデータを読み取ってＨＤＤ＿ＰＯＳＴを終了することができる。ただし、ブロック１０１からブロック１０９までの衝撃対応システムが機能しない間にＨＤＤ２３はスピンアップしているので耐衝撃能力は低い。
【００７４】
［第２のＨＤＤ＿ＰＯＳＴ］
図３は、第２のＨＤＤ＿ＰＯＳＴの実行手順を示すフローチャートである。ブロック１０１〜２３７はＵＥＦＩの実行手順を示し、ブロック２５１〜１５７はＨＤＤ２３の動作手順を示している。図３では、図２と同一の手順について同一参照番号を付して説明を省略する。ブロック２５１では、ＰＵＩＳがイネーブルに設定されたＨＤＤ２３がパワー・オン・リセットされ、ブロック２５３でＣＰＵはリセットされるが磁気ディスク２４はスピンダウンを維持する。磁気ディスク２４は、ＵＥＦＩからのコマンドを受け取ることができる状態になるとＵＥＦＩにレディ信号を送る。ブロック２０１でＵＥＦＩは、ＨＤＤ２３にコマンドを送ってＰＵＩＳがイネーブルに設定されていることを確認し、第２のＨＤＤ＿ＰＯＳＴの実行パスを選択する。
【００７５】
さらにＵＥＦＩは、レジスタ５８の加速度ビットを確認し、加速度ビットが設定されている間はＨＤＤ２３のスピンダウンを維持する。ブロック２０３でＵＥＦＩがＨＤＤ２３にスピンアップ・コマンドを送ると、ブロック２５５でＨＤＤ２３はスピンアップする。ブロック２０５でＵＥＦＩは、レジスタ５９、６１を参照して、ＨＤＤ２３が取り外された否かを判断する。取り外されていないと判断したときは、ブロック２０７に移行して、ＵＥＦＩはファームウェアＲＯＭ２５のデータ領域からＨＤＤデータを読み取る。ＵＥＦＩはＨＤＤデータを読み取ったデータを利用してＰＯＳＴを行いブロック１０５に移行する。第２のＨＤＤ＿ＰＯＳＴでは、ＵＥＦＩがレディ信号を受け取る前にＨＤＤデータを取得することができる。
【００７６】
ブロック２０５でＨＤＤ２３が取り外されたと判断したときは、ファームウェアＲＯＭ２５に格納されたＨＤＤデータは現在装着されているＨＤＤを記述していないためブロック２３１に移行する。ブロック２３１ではＨＤＤ２３からのレディ信号を受け取ったＵＥＦＩは、ブロック２３３でＨＤＤ２３にリード・コマンドを送って交換されたＨＤＤの磁気ディスクからＨＤＤデータを読み取る。その後、ブロック２３５でＵＥＦＩは読み取ったＨＤＤデータでファームウェアＲＯＭ２５を更新する。ブロック２３７でレジスタ５９、６１のタンパ機能をリセットしてブロック１０３に戻る。その後は更新したＨＤＤデータをファームウェアＲＯＭ２５から読み取ってブロック２０７でＨＤＤおよびその他のデバイスのＰＯＳＴを終了する。
【００７７】
第２のＨＤＤ＿ＰＯＳＴでは、ＰＵＩＳがイネーブルに設定されているため、ブロック２０３でスピンアップ・コマンドを送ってスピンアップする。ブロック１０１からブロック２０３まではＵＦＩはさまざまな処理をするため所定の時間を費やすがコマンドを送ることが可能になった時点でただちにコマンドを送っている。また、ブロック１０５でレディ信号を受け取った後に磁気ディスク２４からＨＤＤデータを読み取るのではなく、ブロック１５５のサーボ系の検査とブロック２０７のファームウェアＲＯＭ２５からのＨＤＤデータの読み取りを並行して行っているため、ＰＯＳＴ時間を短縮することができる。さらに、ブロック１０１からブロック２０３まではスピンアップしないため、衝撃対応システムが機能しない時間帯でのスピンアップの時間を低減して安全性を向上することができる。
【００７８】
［第３のＨＤＤ＿ＰＯＳＴ］
図４は、第３のＨＤＤ＿ＰＯＳＴの実行手順を示すフローチャートである。図４は、図２および図３と同一の手順については同一参照番号を付して説明を省略する。図４の手順が図３と異なるのは、ＵＥＦＩがブロック３０１でスピンアップ・コマンドを送るタイミングが、ブロック２０５およびブロック２０７の後になっている点と、それに関連してＨＤＤ２３が取り外されたと判断したときにブロック３０３でスピンアップ・コマンドを送る点だけである。
【００７９】
第３のＨＤＤ＿ＰＯＳＴは、システム・ウェイクを契機として実行するためＰＯＳＴ時間を考慮することはないが、システム・イベントは移動中に生成されることがあるため第２のＨＤＤ＿ＰＯＳＴよりもＨＤＤ２３の損傷防止を一層工夫する必要がでてくる。第３のＨＤＤ＿ＰＯＳＴでは第２のＨＤＤ＿ＰＯＳＴよりもスピンアップ・コマンドを送るタイミングを遅らせて、衝撃対応システムが機能しない時間帯でのスピンアップの時間を低減している。
【００８０】
［第４のＨＤＤ＿ＰＯＳＴ］
図５は、第４のＨＤＤ＿ＰＯＳＴの実行手順を示すフローチャートである。図５は、図２〜図４と同一の手順については同一参照番号を付して説明を省略する。第４のＨＤＤ＿ＰＯＳＴはハイバネーション・データを格納することができるフラッシュ・メモリ１９が搭載されているノートＰＣ１０において実行する。図５の手順が図３、図４と異なる点は、図３のブロック２０３または図４のブロック３０１のようにスピンアップ・コマンドを送らないで、レディ信号を受け取ることなくブロック４０１でＰＯＳＴを終了する点である。
【００８１】
第４のＨＤＤ＿ＰＯＳＴは、ＨＤＤ２３が自主検査をしないでＰＯＳＴを終了しているため、ＰＯＳＴが終わってもＨＤＤ２３を使用することはできない。したがって、ＰＯＳＴ後にＨＤＤ２３を使用する必要がないシステム・ウェイクで実行できる。ただし、図４の手順と同じようにＨＤＤ２３が取り外されたと判断したときはスピンアップする。第４のＨＤＤ＿ＰＯＳＴは、レジュームの際にＨＤＤ２３がスピンダウンを維持するため、ＨＤＤ２３の損傷を防止しかつ消費電力の低減を図ることができる。また、フラッシュ・メモリ１９からハイバネーション・データをロードするためＰＯＳＴ時間を短縮することができる。
【００８２】
［第１のパワー・マネジメント］
図６は、ノートＰＣ１０が第１のパワー・マネジメントを実行するときのパワー・ステートの遷移を説明する図で、図７はそれに対応する手順を示すフローチャートである。図６（Ａ）は、時刻ｔ１ではスリープ・イベントでＳ０ステートからＳ３ステートに遷移し、時刻ｔ３ではシステム・イベントでＳ３ステートからＳ４ステートに遷移し、時刻ｔ５ではユーザ・イベントでＳ４ステートからＳ０ステートに遷移する様子を示す。図６（Ｂ）は、時刻ｔ１でスリープ・イベントによりＳ０ステートからＳ３ステートに遷移し、時刻ｔ２でユーザ・イベントによりＳ３ステートからＳ０ステートに遷移する様子を示す。
【００８３】
第１のパワー・マネジメントおよびつぎに説明する第２のパワー・マネジメントを実行する上でＵＥＦＩは、ＨＤＤ＿ＰＯＳＴの種類およびＯＳにレジューム処理を渡す前のＰＯＳＴの内容を以下のように判断する。ＵＥＦＩは、いずれのＨＤＤ＿ＰＯＳＴを実行する場合にもＨＤＤ２３にコマンドを送ってＰＵＩＳの設定状態を確認する。さらにブロック１０３のインターフェースの初期化の段階でハイバネーション領域を備えるフラッシュ・メモリ１９の有無を確認する。さらにレジスタ５７、６２を参照してウェイク・アップの種類を確認すると表１に基づいてＨＤＤ＿ＰＯＳＴの種類を決定して実行パスを選択する。
【００８４】
またＳ４ステートからの遷移のときは、レジスタ５６、５７とＲＴＣメモリ５１のＳ３４フラグを参照して、Ｓ３４フラグが設定され、かつＳ３４時間が経過していれば、フラッシュ・メモリ１９のハイバネーション領域からハイバネーション・データをメイン・メモリ１３にロードしてＳ３ステートに遷移させてからＯＳにレジューム処理を渡す。ＯＳは、Ｓ３ステートからＳ０ステートへのレジューム処理を行う。Ｓ３４フラグが設定されていないときは、Ｓｘステートからの遷移の際にＵＥＦＩはＰＯＳＴが終了した時点でＯＳにレジューム処理を渡す。このときＳ４ステートからのレジュームのときはＯＳがフラッシュ・メモリ１９のハイバネーション領域からハイバネーション・データをロードする。
【００８５】
ブロック５０１ではノートＰＣ１０がＳ０ステートで動作している（時刻ｔ０）。このときＰＵＩＳはディスエーブルに設定されている。また、ＲＴＣメモリ５１にＳ３４フラグとＳ３４時間も設定されている。ブロック５０３でユーザがパワー・ボタン３５の押下、リッド・センサ３６の動作、またはＧＵＩのアイコンを通じた操作などによりスリープ・イベントを生成する。
【００８６】
スリープ・イベントに応じて移行するＳｘステートは、あらかじめパワー・マネジメント・システムに設定されている。ここでは、Ｓ３ステートに遷移するように設定されているものとする。ＯＳは、各デバイスおよび実行中のアプリケーション・プログラムのＳ３ステートに遷移するための準備が完了すると、電源が停止するデバイスのシステム・コンテキストをメイン・メモリ１３に書き込みレジスタ５６にＳ３ステートへの遷移を設定する。
【００８７】
このときＯＳはＨＤＤ２３にコマンドを送ってＰＵＩＳをイネーブルに設定する。レジスタ５６が設定されると、ＰＣＨ１７はＥＣ２７を経由して電源をＳ３ステートに遷移させるように指示し、システムはブロック５０５でＳ３ステートに遷移する。ＲＴＣ５０はタイマ６３と協働してＳ３ステートに遷移してからＳ３４時間が経過するまでの時間を計時する。Ｓ３４時間は、ユーザがノートＰＣ１０の使用をそれ以後も使用しないためハイバネーション状態に遷移させて省電力を図ることを優先させるべきとシステムが判断する時間である。
【００８８】
ブロック５０７で、ＲＴＣ５０による計時時間がＳ３４時間に到達したときは、ＰＣＨ１７はレジスタ５７にタイム・アップ・ビットを設定してシステム・イベントを生成しＥＣ２７にそれまで停止していたデバイスに電力を供給するように指示してブロック５０９に移行する（時刻ｔ３）。このときシステムは、電源の状態はＳ０ステートであるが、ソフトウェア上はＳ０ステートに至っていない状態である。システム・イベントが生成されないときはブロック５５１に移行する。
【００８９】
ブロック５０９でＵＥＦＩはシステム・イベントに応じて、図５に示した第４のＨＤＤ＿ＰＯＳＴを実行する。このときＰＵＩＳはイネーブルに設定されており、かつ、ＵＥＦＩはスピンアップ・コマンドを送らないためレジューム処理の間ＨＤＤ２３はスピンダウンを維持するため移動中にレジューム処理をしてもＨＤＤ２３が損傷することはない。また、スピンアップに伴うＨＤＤ２３の消費電力を削減できる。
【００９０】
なお、ノートＰＣ１０がフラッシュ・メモリ１９を実装していない場合は、ハイバネーション・データの退避先がＨＤＤ２３になるため、ＨＤＤ２３の使用を前提とする第３のＨＤＤ＿ＰＯＳＴを実行する。ＨＤＤ２３およびその他のデバイスのＰＯＳＴが終了すると、ブロック５１１に移行する。ブロック５１１でＵＥＦＩは、ＲＴＣメモリ５１のＳ３４フラグ、レジスタ５６、５７を参照して今回のレジュームがＳ４ステートに遷移させる目的であることを認識すると、ＯＳにレジューム処理を渡さないでただちにＳ４ステートに遷移する処理をする。
【００９１】
ＵＥＦＩはＳ４ステートで電源が停止するデバイスのシステム・コンテキストをメイン・メモリ１３に書き込んで生成したハイバネーション・データをフラッシュ・メモリ１９のハイバネーション領域に書き込む。このときＵＥＦＩは、ＨＤＤ２３にコマンドを送ってＰＵＩＳをディスエーブルに設定する。ブロック５０７、５０９、５１１の手順はＯＳが認識していない状態で行う。この時点でシステムはＳ４ステートに遷移しているが、ＯＳは時刻ｔ１でＳ３ステートに遷移したときの認識を維持している。
【００９２】
Ｓ４ステートの間にブロック５１３でユーザ・ウェイクが発生するとパワー・コントローラ３３は停止していたデバイスに電力を供給するとともにレジスタ６２にウェイク・ビットを設定する。ブロック５１５でＵＥＦＩは図２に示した第１のＨＤＤ＿ＰＯＳＴを実行する（時刻ｔ５）。ＰＵＩＳはディスエーブルに設定されているため、ＵＥＦＩは第１のＨＤＤ＿ＰＯＳＴを実行して短時間でＳ０ステートに遷移させる。また、ユーザ・ウェイクであるため、ノートＰＣ１０の姿勢は安定していると想定できるためＨＤＤ２３が損傷する可能性は低い。
【００９３】
ＵＥＦＩは、フラッシュＲＯＭ１９のハイバネーション領域からメイン・メモリ１０１にハイバネーション・データをロードする。ブロック５１７でＵＥＦＩからレジューム処理を引き継いだＯＳは、レジスタ５６を参照してＳ３ステートからのレジュームであると認識してハイバネーション・データが含むシステム・コンテキストを各デバイスにリストアする、その後システムは、電源の状態だけでなくソフトウェア上も完全にＳ０ステートに遷移する。
【００９４】
ブロック５５１では、Ｓ３ステートの間にユーザ・ウェイクが発生するとパワー・コントローラ３３は停止していたデバイスに電力を供給するとともにレジスタ６２にウェイク・ビットを設定する。ブロック５５３でＵＥＦＩは図３に示した第２のＨＤＤ＿ＰＯＳＴを実行する（時刻ｔ２）。ブロック５５５でＨＤＤ２３およびその他のデバイスのＰＯＳＴが終了すると、ＯＳはメイン・メモリ１３が記憶するシステム・コンテキストを各デバイスに復帰してシステムをＳ０ステートに遷移させる。
【００９５】
第１のパワー・マネジメントではＳ３４時間の間はユーザ・ウェイクが発生しないと想定し、かつ移動中にシステム・ウェイクが発生してもＨＤＤ２３が損傷しないように時刻ｔ１でＰＵＩＳをイネーブルに設定する。そして予期しない時刻ｔ２でのユーザ・ウェイクに対しては第２のＨＤＤ＿ＰＯＳＴを実行して比較的短い時間でＨＤＤ２３のＰＯＳＴを終了するようにしている。
【００９６】
［第２のパワー・マネジメント］
図８は、第２のパワー・マネジメントを実行するときのパワー・ステートの遷移を説明する図である。第２のパワー・マネジメントは、ユーザの生活パターンを学習してユーザが使用する可能性が高い時間帯に入る直前にＳ３ステートに遷移させておくと、ユーザがユーザ・ウェイクにより短時間でレジュームして使用できるようになる。また、ユーザが使用しない可能性が高い時間帯に入るとＳ４ステートに遷移させて待機電力を最小にする。第２のパワー・マネジメントはＯＳの管理下で行うため、第１のパワー・マネジメントのように、ＵＥＦＩがＳ３ステートからＳ４ステートに遷移させることはない。
【００９７】
図８（Ａ）は、システム・ウェイクだけでレジュームする状態を示し、図８（Ｂ）はＳ３ステートまたはＳ４ステートでユーザ・ウェイクが発生した状態を示している。ここでは、ハイバネーション領域を備えるフラッシュ・メモリ１９が存在しないものとして説明する。したがって、レジュームの際にＵＥＦＩはＨＤＤ２３をスピンアップさせてレディ信号を受け取る必要があるためシステム・ウェイクが発生したときは第４のＨＤＤ＿ＰＯＳＴに代えて第３のＨＤＤ＿ＰＯＳＴを実行する。
【００９８】
Ｓ０ステートからＳｘステートへのパワー・ステートの遷移はＯＳ上で動作するパワー・マネージメント・ユーティリティが制御する。また、Ｓｘステートにおけるシステム・イベントは、ＲＴＣ５０とタイマ６３が協働して生成する。図８（Ａ）では、時刻ｔｘ１でＳ３ステートに遷移し、時刻ｔｘ２でＳ０ステートに遷移してしばらくすると時刻ｔｘ３でＳ４ステートに遷移する。その後時刻ｔｘ４でＳ０ステートに遷移してしばらくすると時刻ｔｓ５でＳ３ステートに遷移し、さらに時刻ｔｘ６で時刻ｔｘ２と同様にＳ０ステートに遷移している。
【００９９】
一例としてＰＵＩＳは、Ｓ０ステートではディスエーブルに設定しＳ３ステートおよびＳ４ステートではイネーブルに設定する。そして時刻ｔｘ２、ｔｘ４、ｔｘ６のシステム・ウェイクでは図４の第３のＨＤＤ＿ＰＯＳＴを実行する。したがって、スピンアップ・コマンドを第２のＨＤＤ＿ＰＯＳＴよりも遅いタイミングで送って、衝撃対応システムが機能していない時間帯でのスピンアップの時間をできるだけ短縮する。このときシステム・ウェイクであるため、レジューム時間は問題にならない。
【０１００】
他の例では、時刻ｔｘ５でＳ３ステートに遷移する際にはＰＵＩＳをディスエーブルに設定するようにしてもよい。その場合はユーザが朝ユーザ・ウェイクにより使用を開始する際に、第１のＨＤＤ＿ＰＯＳＴを実行してより短時間でＳ０ステートに遷移することができる。その後システムがＳ３ステートに遷移する際にＰＵＩＳをディスエーブルに設定すると時刻ｔｘ１以降のＳ３ステートに戻る。
【０１０１】
図８（Ｂ）では、Ｓ３ステートに遷移している間に時刻ｔ２でユーザ・ウェイクが発生し、Ｓ４ステートに遷移している間に時刻ｔ３でユーザ・ウェイクが発生している。ＵＥＦＩはＰＵＩＳがイネーブルに設定されているため、第２のＨＤＤ＿ＰＯＳＴを実行する。本発明では、第２のパワー・マネジメントにおけるＨＤＤ＿ＰＯＳＴの選択を、上記で説明したものに限定する必要はない。ＰＯＳＴ時間の短縮、ＨＤＤ損傷の防止、省電力などをウェイク・アップの種類に応じて判断し、ユーザの利用価値に沿った適切なＨＤＤ＿ＰＯＳＴを選択することができる。また、フラッシュ・メモリ１９が存在する場合はシステム・ウェイクに対して第４のＨＤＤ＿ＰＯＳＴを選択することができる。
【０１０２】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【０１０３】
１０  ノートＰＣ
１７  チップ・セット（ＰＣＨ）
１９  フラッシュ・メモリ
２３  ＨＤＤ
２４  磁気ディスク
２５  ファームウェアＲＯＭ
３３  パワー・コントローラ
【図１】
2014119832.tif 000004
【図２】
2014119832.tif 000005
【図３】
2014119832.tif 000006
【図４】
2014119832.tif 000007
【図５】
2014119832.tif 000008
【図６】
2014119832.tif 000009
【図７】
2014119832.tif 000010
【図８】
2014119832.tif 000011