(57)【特許請求の範囲】
【請求項１】
パスワードの設定が可能な不揮発性メモリを備えるコンピュータにおいて、前記パスワードを保護する方法であって、
前記不揮発性メモリにパスワードを設定するステップと、
メイン・メモリが記憶するデータを前記不揮発性メモリに退避して省電力状態に移行するステップと、
前記省電力状態の間に発生した前記不揮発性メモリに対する不正アクセスを前記省電力状態から復帰する際に前記コンピュータが検出するステップと、
前記不正アクセスを検出したことに応答してパスワードの入力を要求するステップと、
入力された前記パスワードの認証が成功したことに応答して前記省電力状態からパワー・オン状態に復帰するステップと、
前記不正アクセスを検出しないことに応答して前記パスワードの入力を要求しないでシステムが前記不揮発性メモリに前記パスワードを送付するステップと
を有する方法。
【請求項２】
前記パワー・オン状態に復帰するステップが、前記不揮発性メモリに退避していたデータを前記メイン・メモリに復帰してからシステム・コンテキストをリセットされたデバイスに復帰するステップを有する請求項１に記載の方法。
【請求項３】
前記パワー・オン状態に復帰するステップが、パワー・オフ状態から復帰する際に初期化するデバイスに含まれる少なくとも一部のデバイスの初期化を省略するＢＩＯＳコードを実行するステップを有する請求項１に記載の方法。
【請求項４】
前記パスワードの入力を要求するステップが、前記パワー・オフ状態から復帰する際に実行するＢＩＯＳコードを実行するステップを有する請求項３に記載の方法。
【請求項５】
プロセッサをリセットすることにより、前記パスワードの入力を要求するステップから前記パワー・オン状態に復帰するステップに移行する請求項１に記載の方法。
【請求項６】
前記不正アクセスを前記省電力状態から復帰する際に前記コンピュータが検出するステップが、前記不揮発性メモリが前記コンピュータから電気的に切断されたことを検出するステップを含む請求項１に記載の方法。
【請求項７】
前記不正アクセスを前記省電力状態から復帰する際に前記コンピュータが検出するステップが、前記コンピュータを起動するために必要な電源が停止したことを検出するステップを含む請求項１に記載の方法。
【請求項８】
パスワードの設定が可能な不揮発性メモリを備えるコンピュータにおいて、前記パスワードを保護する方法であって、
前記不揮発性メモリにパスワードを設定するステップと、
メイン・メモリにシステム・コンテキストを退避して、前記メイン・メモリの記憶保持に必要な電源以外の電源を停止した第１の省電力状態に移行するステップと、
前記メイン・メモリに記憶されたデータを前記不揮発性メモリに退避して前記メイン・メモリの電源を停止した第２の省電力状態に移行するステップと、
前記第２の省電力状態の間に発生した前記不揮発性メモリに対する不正アクセスを前記第２の省電力状態から復帰する際に前記コンピュータが検出するステップと、
前記不正アクセスを検出したことに応答してパスワードの入力を要求するステップと、
入力された前記パスワードの認証が成功したことに応答して前記不揮発性メモリに退避したデータを前記メイン・メモリに転送するステップと、
前記システム・コンテキストを復帰して前記第２の省電力状態からパワー・オン状態に復帰するステップと、
前記不正アクセスを検出しないことに応答して前記パスワードの入力を要求しないでシステムが前記不揮発性メモリに前記パスワードを送付するステップと
を有する方法。
【請求項９】
前記第２の省電力状態はオペレーティング・システムがパワー・オン状態から前記第１の省電力状態に遷移させ、その後自動的にＢＩＯＳコードが前記第１の省電力状態からハイバネーション状態に遷移させるように前記コンピュータを機能させた状態である請求項８に記載の方法。
【請求項１０】
前記メイン・メモリに転送するステップが、パワー・オフ状態からパワー・オン状態にブートする際に実行する第１のＢＩＯＳコードよりも短時間で完了する第２のＢＩＯＳコードを実行するステップを含む請求項８に記載の方法。
【請求項１１】
前記パスワードの入力を要求するステップが、プロセッサをリセットして前記第１のＢＩＯＳコードを実行するステップを含む請求項１０に記載の方法。
【請求項１２】
パスワードの設定が可能な不揮発性メモリを備えるコンピュータであって、
パワー・オフ状態から復帰する際に前記パスワードの入力を要求して認証が成功したときに復帰処理をする第１の復帰回路と、
前記パスワードが設定された前記不揮発性メモリにメイン・メモリのデータを退避する省電力状態から復帰する際に前記パスワードの入力を要求しないで復帰処理をする第２の復帰回路と、
前記省電力状態の間に発生した前記不揮発性メモリに対する不正アクセスを前記省電力状態から復帰する際に検出する検出回路とを有し、
前記省電力状態から復帰する際に前記検出回路が不正アクセスを検出したことに応答して前記第１の復帰回路が前記パスワードの入力を要求し、前記検出回路が不正アクセスを検出しないことに応答して前記第２の復帰回路が前記不揮発性メモリに前記パスワードを送って復帰処理をするコンピュータ。
【請求項１３】
前記検出回路は、前記コンピュータと前記不揮発性メモリとの電気的な接続が切断された状態または前記検出回路の電源が停止した状態を不正アクセスとして検出する請求項１２に記載のコンピュータ。
【請求項１４】
パスワードの設定が可能な不揮発性メモリを備え、パワー・オフ状態とメイン・メモリの記憶を維持する第１の省電力状態と前記不揮発性メモリに前記メイン・メモリのデータを退避する第２の省電力状態で動作することが可能なコンピュータであって、
前記パワー・オフ状態から復帰する際にパスワードの入力を要求して復帰処理をする第１の復帰回路と、
前記第２の省電力状態から前記第１の省電力状態に復帰する際に、パスワードの入力を要求しないで復帰処理をする第２の復帰回路と、
前記第２の省電力状態の間に発生した前記不揮発性メモリに対する不正アクセスを前記第２の省電力状態から復帰する際に検出する検出回路とを有し、
前記検出回路が前記不正アクセスを検出したことに応答する前記第１の復帰回路の要求で入力されたパスワードの認証が成功したときに前記第２の復帰回路が復帰処理をし、前記検出回路が前記不正アクセスを検出しないことに応答して前記第２の復帰回路が前記不揮発性メモリに前記パスワードを送付するコンピュータ。
【請求項１５】
前記第２の復帰回路は、前記第１の復帰回路よりも短時間で復帰処理を終了する請求項１４に記載のコンピュータ。
【請求項１６】
パスワードが設定された不揮発性メモリを備えるコンピュータに、
ハイバネーション状態からパワー・オン状態に復帰する際に要求するパスワードを前記不揮発性メモリに設定するステップと、
前記パワー・オン状態から前記ハイバネーション状態に移行するステップと、
前記ハイバネーション状態の間に発生した前記不揮発性メモリに対する不正アクセスを前記ハイバネーション状態から復帰する際に検出するステップと、
前記不正アクセスを検出したことに応答してパスワードの入力を要求するステップと、
入力された前記パスワードの認証が成功したことに応答して前記不揮発性メモリに退避していたデータをメイン・メモリに転送するステップと、
前記不正アクセスを検出しないことに応答して前記パスワードの入力を要求しないでシステムが前記不揮発性メモリに前記パスワードを送付するステップと
を有する処理を実行させるコンピュータ・プログラム。
【請求項１７】
パスワードが設定された不揮発性メモリを備えるコンピュータに、
サスペンド状態からパワー・オン状態に復帰する際に要求するパスワードを前記不揮発性メモリに設定するステップと、
前記パワー・オン状態から前記サスペンド状態に移行するステップと、
前記サスペンド状態でメイン・メモリが記憶するデータを前記不揮発性メモリに退避して前記メイン・メモリの電源を停止するステップと、
前記メイン・メモリの電源が停止している間に発生した前記不揮発性メモリに対する不正アクセスを前記パワー・オン状態に復帰する際に検出するステップと、
前記不正アクセスを検出したことに応答してパスワードの入力を要求するステップと、
入力された前記パスワードの認証が成功したことに応答して前記不揮発性メモリに退避していたデータを前記メイン・メモリに転送して前記パワー・オン状態に移行するステップと、
前記不正アクセスを検出しないことに応答して前記パスワードの入力を要求しないでシステムが前記不揮発性メモリに前記パスワードを送付するステップと
を有する処理を実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータに搭載された不揮発性メモリのパスワードを保護する技術に関する。
【背景技術】
【０００２】
コンピュータには、ハードディスク・ドライブ（ＨＤＤ）やソリッド・ステート・ドライブ（ＳＳＤ）などのディスク・ドライブが搭載されている。ディスク・ドライブは、コンピュータ本体にコネクタで接続されているため容易に取り外すことができる。ＡＴＡ規格は、ディスク・ドライブに対するパスワードの設定について規定している。
【０００３】
パスワードは、通常ユーザがＢＩＯＳ（Basic Input Output System）のセット・アップ画面で設定する。設定されたパスワードは、ディスク上のユーザがアクセスできないシステム領域に記憶される。パスワードが設定されるとユーザのデータを記憶するディスク上のユーザ領域には、ＢＩＯＳがパスワードとロック解除コマンドを送らない限りアクセスできない。たとえ、コンピュータが盗難に遭遇したとしても、パスワードを知らない限りディスク・ドライブからデータを盗み取ることはできない。したがって、ディスク・ドライブにパスワードを設定することはデータを保護する上で重要なことである。
【０００４】
コンピュータは、パワー・オフ状態または省電力状態とパワー・オン状態の間を遷移する。そして、パワー・オフ状態や省電力状態のときにディスク・ドライブの電力は停止する。ロックされたディスク・ドライブに対して正しいパスワードを入力して一旦ロックを解除しても、省電力状態やパワー・オフ状態に移行してディスク・ドライブの電源が停止するとリセットされて再びロックされるため再度のパスワードの送付が必要になる。
【０００５】
現実には、ディスク・ドライブにパスワードが設定された状態で、パワー・オフ状態から復帰するときは、必ずパスワード入力を求めてデータを保護するようにしている。パスワードの入力は一方でユーザに煩わしさを与え操作性を損なうという側面も備えている。したがって、サスペンド状態またはハイバネーション状態から復帰するときは、ユーザビリティも考慮してパスワード入力を要求するかどうかを決定しているのが現状である。
【０００６】
多くの場合には、サスペンド状態から復帰する際に、ＢＩＯＳはユーザビリティの向上のためにパスワード入力を要求しないようにしている。この場合、ディスク・ドライブのロックを解除するために、ＢＩＯＳがユーザに代わってセキュアな領域に格納していたパスワードを自動的にディスク・ドライブに送る。このとき、ディスク・ドライブのインターフェース回路に盗聴装置を装着するとサスペンド状態から復帰させるときにＢＩＯＳがディスク・ドライブに送るパスワードを盗聴することが可能になる。
【０００７】
第３者がコンピュータからディスク・ドライブを取り外し、同一のコンピュータに接続した盗聴装置にディスク・ドライブを接続すれば、ＢＩＯＳが送るパスワードを盗聴できる。ユーザが入力したパスワードのハッシュ値をＢＩＯＳが送るようにしておけば、平文のパスワードは盗まれることはない。しかし、ＢＩＯＳに代わってディスク・ドライブに盗聴したハッシュ値を送るとディスク・ドライブにアクセスできるようになる。
【０００８】
これを防止するために従来のＢＩＯＳはサスペンド状態からレジュームする際に、ディスク・ドライブが本体から離脱したことを検出すると、自動的なパスワードの送出を停止してユーザにパスワード入力を要求し、正しいパスワードが入力されたときに限ってロックを解除していた。またＢＩＯＳに代わるＵＥＦＩ（Unified Extensible Firmware Interface）ファームウェアは、サスペンド状態からの復帰時にディスク・ドライブの離脱を検出しても、アーキテクチャの制限によりユーザにパスワード入力を要求することができないため、パワー・オン状態への復帰を取り消して強制的にパワー・オフ状態に移行させてパスワードの漏洩を防いでいた。
【０００９】
特許文献１は、ハード・ドライブとは別に用意したＮＶＲＡＭにデータをハイバネートするファースト・ハイバネートについて開示する。ＯＳは現在の状態をＤＲＡＭのハイバネート領域に書き込むと、エンベデッド・プロセッサ（ＥＰ）がＣＰＵのコアをシャットダウンする。その後ＥＰは、ハイバネート領域をＮＶＲＡＭにコピーして、ウェイクさせるのに必要な回路にだけ電力を供給する。レジュームするときは、ＥＰがＮＶＲＡＮからＤＲＡＭにコンテキストを復帰し、さらにＤＲＡＭのコンテキストに対してＯＳが復帰処理をする。また同文献にかかる発明の譲受人であるインテル社では、スリープに移行すると一定時間後に休止状態に移行し、休止状態から短時間でパワー・オン状態まで復帰することができるラピッド・スタート・テクノロジー（ＲＳＴ）を公開している。
【００１０】
特許文献２は、ＰＯＳＴを短時間で終了するためのファースト・スタートアップの方法について開示する。今回のスタートアップがイネーブルに設定されたあとの最初のスタートアップのときはノーマル・スタートアップを実行しそのときに設定したコンテンツをＢＩＯＳチップに格納する。最初のスタートアップでない場合は、ＢＩＯＳチップに格納されたパラメータをコントローラのレジスタに設定することでＰＯＳＴ時間を短縮する。特許文献３は、磁気ディスク装置にＨＤＤパスワードを設定する技術を開示する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】米国特許７９７１０８１号公報
【特許文献２】米国特許第７２１３１３９号公報
【特許文献３】特開２００８−５２７０４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
これまでハイバネーション状態から復帰する際の盗聴装置の挿入によるパスワードの盗聴の問題は検討されてこなかった。その理由はハイバネーション状態から復帰するときはパワー・オフ状態から復帰するときと同じように、従来からディスク・ドライブの着脱の有無にかかわらずパスワードを要求していたことが挙げられる。近年、省電力状態から短時間で復帰させるさまざまなＢＩＯＳが導入され、それらの中にはハイバネーション状態またはそれに近い状態から復帰する場合に、パスワード入力を要求しないでＢＩＯＳが自動的にディスク・ドライブにパスワードを送るものが存在する。
【００１３】
これらのＢＩＯＳは、ハイバネーション状態またはそれに近い状態から復帰するときに、通常のルーチンよりも簡略化したルーチンを実行して短時間でブートを終了するようにしている。この場合、パスワード入力を要求すると短時間で復帰することができなくなるので、簡略化したルーチンは、パスワードの入力プロンプトを表示しないで、ユーザに代わってＢＩＯＳがディスク・ドライブにパスワードを自動的に送付することを前提にして構成されている。したがって、このようなＢＩＯＳを採用するとパスワードの盗聴の問題が生ずることになる。
【００１４】
ハイバネーション状態から復帰する際にも、サスペンド状態から復帰する場合と同じようにディスク・ドライブの離脱を検出したときに限ってパスワード入力を要求できればユーザビリティを低下させないようにしながらパスワードの保護ができるので都合がよい。しかし、ハイバネーション状態から復帰するこれまでのルーチンでパスワードを要求するようにすることは、復帰に時間がかかることになるため簡略化したルーチンにより短時間での復帰を図る目的と相容れないことになる。
【００１５】
また、サスペンド状態から復帰するときは、メイン・メモリにパスワードの入力プロンプトを表示するコードが維持されているため、ディスク・ドライブの離脱を検出したときにパスワード入力を要求することができたが、ハイバネーション状態のときは、メイン・メモリのコードが消失しているので同様の方法でパスワード入力を要求することもできない。
【００１６】
また、ＵＥＦＩファームウェアがサスペンド状態から復帰するときに行っているようにハイバネーション状態から復帰するときに強制的にパワー・オフ状態に移行させると、ハイバネーション状態が解除されて離脱前の編集中のデータを取得することができなくなる。たとえば、第３者がハイバネーション中のディスク・ドライブを一時的に取り外して盗聴装置を介在した上で同一のコンピュータに装着したような場合に強制的にパワー・オフ状態に移行させると、正規のユーザがパワー・オン状態に復帰させたときにそれまで編集していた編集中のデータをメイン・メモリに復帰させることができない。
【００１７】
そこで本発明の目的は、メイン・メモリのデータを不揮発性メモリに退避して省電力状態に移行している間に、不揮発性メモリに対する不正アクセスがあったときにパスワードを保護する方法を提供することにある。さらに本発明の目的は、省電力状態から復帰する際に、省電力状態に移行する前にメイン・メモリに存在していたデータを維持しながらパスワードを保護する方法を提供することにある。さらに本発明の目的は、短時間で完了するパスワード入力を要求しないブートを実行しながらパスワードを保護する方法を提供することにある。さらに本発明の目的は、そのような方法を実現するコンピュータおよびコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【００１８】
本発明は不揮発性メモリに設定されたパスワードを保護する方法を提供する。本発明の第１の態様では、不揮発性メモリにパスワードを設定する。不揮発性メモリは、ブート・ディスク・ドライブとすることができる。つぎに、メイン・メモリが記憶するデータを不揮発性メモリに退避して省電力状態に移行する。このような省電力状態はＡＣＰＩが規定するハイバネーション状態を含む。つぎにコンピュータが省電力状態の間に発生した不揮発性メモリに対する不正アクセスを検出する。つぎに、不正アクセスを検出したことに応答してパスワードの入力を要求する。入力されたパスワードの認証が成功したことに応答して省電力状態からパワー・オン状態に復帰する。
【００１９】
したがって、不正アクセスを検出したときには正しいパスワードを入力しない限り不揮発性メモリにアクセスすることができないため、不揮発性メモリに記憶されたデータは保護される。入力を要求するパスワードは、不正アクセスを検出したときにコンピュータへのアクセスを制限できればよいので、不揮発性メモリに設定するパスワードだけでなくパワー・オン・パスワードまたはスーパーバイザ・パスワードのような他のＢＩＯＳパスワードであってもよい。
【００２０】
不正アクセスを検出しないことに応答してパスワード入力を要求しないでシステムが不揮発性メモリにパスワードを送付することができる。不正アクセスが検出されないときは、システムが自動的にパスワードを送付してもパスワードが盗聴される危険性はなく、かつ、短時間で復帰するというユーザのニーズに対応できる。不揮発性メモリに退避していたデータは、メイン・メモリに復帰することができる。
【００２１】
その結果、不正アクセスがあったあとでも、当該コンピュータのオーナーは省電力状態に遷移する前にメイン・メモリに存在していた編集中のデータを失うことはない。パワー・オン状態に復帰する際には、パワー・オフ状態から復帰する際に初期化するデバイスに含まれる一部のデバイスの初期化を省略する第１のＢＩＯＳコードを実行してもよい。
【００２２】
またパスワード入力を要求する際には、不揮発性メモリにメイン・メモリのデータを退避しないパワー・オフ状態から復帰する際に実行する第２のＢＩＯＳコードを実行してもよい。そして、プロセッサをリセットしてパスワード入力を要求するステップからパワー・オン状態に復帰するステップに移行することができる。不正アクセスは、不揮発性メモリがコンピュータから電気的に切断されたことで検出したり、コンピュータを起動するために必要な電源が停止したことで検出したりすることができる。
【００２３】
本発明の第２の態様では、メイン・メモリにシステム・コンテキストを退避して、メイン・メモリの記憶保持に必要な電源以外の電源を停止した第１の省電力状態に移行する。第１の省電力状態はＡＣＰＩが規定するサスペンド状態を含む。つづいて、メイン・メモリに記憶されたデータを不揮発性メモリに退避してメイン・メモリの電源を停止した第２の省電力状態に移行する。第２の省電力状態は、ＡＣＰＩが規定するハイバネーション状態またはそれに近い状態を含む。
【００２４】
つづいて、コンピュータが第２の省電力状態の間に発生した不揮発性メモリに対する不正アクセスを検出する。不正アクセスを検出したことに応答してパスワードの入力を要求する。入力されたパスワードの認証が成功したことに応答して不揮発性メモリに退避したデータをメイン・メモリに転送する。その後、システム・コンテキストを復帰して第２の省電力状態からパワー・オン状態に復帰する。
【００２５】
第２の省電力状態はオペレーティング・システムが第１の省電力状態からの復帰処理をする状態とすることができる。第２の省電力状態に移行する際には、ＢＩＯＳコードを実行してメイン・メモリが記憶するデータを不揮発性メモリに退避することができる。第１の省電力状態に移行する際には、パワー・オフ状態からパワー・オン状態にブートする際に実行する第１のＢＩＯＳコードよりも短時間で完了する第２のＢＩＯＳコードを実行することができる。パスワード入力を要求するときは、プロセッサをリセットして第１のＢＩＯＳコードを実行することができる。
【発明の効果】
【００２６】
本発明により、メイン・メモリのデータを不揮発性メモリに退避して省電力状態に移行している間に、不揮発性メモリに対する不正アクセスがあったときにパスワードを保護する方法を提供することができた。さらに本発明により、省電力状態から復帰する際に、省電力状態に移行する前にメイン・メモリに存在していたデータを維持しながらパスワードを保護する方法を提供することができた。さらに本発明により、短時間で完了するパスワード入力を要求しないブートを実行しながらパスワードを保護する方法を提供することができた。さらに本発明により、そのような方法を実現するコンピュータおよびコンピュータ・プログラムを提供することができた。
【図面の簡単な説明】
【００２７】
【図１】本実施の形態にかかるノートＰＣ１０の主要な構成を示す機能ブロック図である。
【図２】ＢＩＯＳ＿ＲＯＭ２５のデータ構造を示す図である。
【図３】Ｓ０ステートのときのメイン・メモリ１５のデータ構造を説明する図である。
【図４】パスワード保護の全体の手順を示すマスター・フローチャートである。
【図５】パスワード保護の詳細な手順を示すフローチャートである。
【図６】パスワード保護の詳細な手順を示すフローチャートである。
【図７】パスワード保護の詳細な手順を示すフローチャートである。
【図８】パスワード保護の詳細な手順を示すフローチャートである。
【図９】Ｓ３４ステートに関するパワー・ステートを示す図である。
【図１０】ＰＯＳＴ選択コード１０５がＢＩＯＳの実行パスを決定する論理値表である。
【発明を実施するための形態】
【００２８】
［パワー・ステート］
図１は、ノートブック型パーソナル・コンピュータ（ノートＰＣ）１０のハードウェアの構成を示す機能ブロック図である。多くのハードウェアの構成は周知であるため、ここでは本発明に必要な範囲で説明する。メモリ・コントロール・ハブ（ＭＣＨ）１３には、ＣＰＵ１１、メイン・メモリ１５、ビデオ・コントローラ１７およびアイオー・コントロール・ハブ（ＩＣＨ）２１が接続されている。ビデオ・コントローラ１７には、ＬＣＤ１９が接続されている。
【００２９】
ＩＣＨ２１はさまざまな規格のインターフェース機能を備え、図１には代表的にＳＡＴＡにＳＳＤ２３が接続され、ＳＰＩにＢＩＯＳ＿ＲＯＭ２５が接続され、ＬＰＣにエンベデッド・コントローラ（ＥＣ）２７およびＮＶＲＡＭ３１が接続されている。ＥＣ２７には、キーボード２９およびパワー・コントローラ３３が接続されている。パワー・コントローラ３３には、パワー・ボタン３７およびＤＣ／ＤＣコンバータ３５が接続されている。パワー・コントローラ３３は、タンパー検出ライン６７でＳＳＤ２３に接続されている。
【００３０】
ノートＰＣ１０は、ＡＣＰＩ（Advanced Configuration and Power Interface）の省電力機能およびプラグ・アンド・プレイに対応している。ＡＣＰＩでは、Ｓ１ステートからＳ４ステートまでの４つのスリーピング・ステート（省電力状態）、Ｓ０ステート（パワー・オン状態）、Ｓ５ステート（パワー・オフ状態）を定義している。スリーピング・ステートについてノートＰＣ１０は、Ｓ３ステートとＳ４ステートだけを定義している。
【００３１】
Ｓ３ステートはいわゆるサスペンド状態といわれ、メイン・メモリ１５の記憶は保持され、メイン・メモリ１５の記憶保持に必要のない電源は停止する。Ｓ３ステートに入る際にオペレーティング・システム（ＯＳ）は電源が停止するデバイスが保持していたシステム・コンテキストをメイン・メモリ１５に退避し、電源が復帰したときに各デバイスに復帰する。
【００３２】
Ｓ４ステートはＡＣＰＩでサポートされるスリーピング・ステートの中で最も起動までの時間が長いパワー・ステートでハイバネーション状態といわれる。ノートＰＣ１０がＳ０ステートからＳ４ステートに遷移する際には、ＯＳがＳＳＤ２３にメイン・メモリ１５の記憶内容を含むノートＰＣ１０の直前のシステム・コンテキストを格納してからパワー・コントローラ３３などの電源の起動に最小限必要なデバイス以外のデバイスに対する電源をオフにする。
【００３３】
Ｓ５ステートはいわゆるソフト・オフといわれるパワー・ステートで、ＯＳがコンテキストをＳＳＤ２３に退避しない点を除いては基本的に電力を供給するデバイスの範囲はＳ４ステートと同じである。以下においては、Ｓ３ステート、Ｓ４ステート、およびＳ５ステートを総称するときはＳｘステートと表示する。Ｓｘステートに対してＳ０ステートは原則としてノートＰＣ１０が動作するために必要なすべてのデバイスに電力が供給された状態である。
【００３４】
本発明においては、Ｓｘステートを電源状態とデータ状態の両面から捕らえる必要がある。電源状態だけが適合するＳｘステートをハードウェア的なＳｘステートといい、これをＨＷ＿Ｓｘステートとして表す。また、Ｓ０ステートについてもすべてのデバイスに電力が供給された状態をＨＷ＿Ｓ０ステートとして表す。ＨＷ＿Ｓ０ステートは、Ｓｘステートから完全にＳ０ステートに遷移するまでの途中の状態を含む。
【００３５】
ＨＷ＿ＳｘステートまたはＨＷ＿Ｓ０ステートと各パワー・ステートでのデータ状態の両方が適合するときにＡＣＰＩに規定するＳｘステートまたはＳ０ステートといえることになる。たとえば、Ｓ４ステートからＳ０ステートに遷移する過渡的な状態のときに、電源はパワー・オン状態に復帰しているがＳＳＤ２３に退避したメモリ・イメージがメイン・メモリ１５に復帰する前の状態は、ＨＷ＿Ｓ０ステートとはいえるが全体としてはＳ０ステートおよびＳ４ステートのいずれともいえない。
【００３６】
本発明においてはさらにパワー・ステートを遷移させる際のソフトウェア上の実行主体がＯＳとＢＩＯＳのいずれであるかという視点に基づいてＳ３４ステートを定義する。Ｓ３４ステートは、ＯＳがＳ０ステートからＳ３ステートに遷移させ、その後自動的にＢＩＯＳがＳ３ステートからＳ４ステートに遷移させた状態である。Ｓ０ステートからＳｘステートへ移行させる処理はＯＳが行うため、ＯＳが認識しているパワー・ステートと実際のパワー・ステートは一致するのが原則である。これに対してＳ３４ステートでは、ＯＳは遷移先がＳ３ステートであると認識しているが、電源状態とデータ状態は実質的にはＳ４ステートに相当する。
【００３７】
ＯＳはＳ３ステートに遷移するときに、システム・コンテキストにＳ３ステートからＳ０ステートに復帰するコードを含めているため、Ｓ３４ステートからＳ０ステートに直接復帰させることはできない。Ｓ３４ステートからＳ０ステートに復帰するときは、ＢＩＯＳが一旦システムをＳ３４ステートからＳ３ステートに復帰させた後にＢＩＯＳから制御権を引き継いだＯＳがＳ３ステートからＳ０ステートに復帰させる必要がある。
【００３８】
これに対しＳ４ステートに遷移するときは、ＯＳがシステム・コンテキストをメイン・メモリ１５に書き込んだ後に、メイン・メモリ１５が記憶するデータをＯＳがＳＳＤ２３に退避する。ＯＳは、システム・コンテキストにＳ４ステートからＳ０ステートに復帰するコードを含めているため、システムをＳ４ステートからＳ０ステートに直接復帰させることができる。またＳ３４ステートとＳ４ステートでは、ＳＳＤ２３に退避したデータの構造が多少異なる場合がある。
【００３９】
ＢＩＯＳは、メイン・メモリ１５が記憶する有効なデータの領域（アドレスとデータ長）を認識していない。ＯＳがノートＰＣ１０をＳ０ステートからＳ３４ステートに遷移させるときに、ＢＩＯＳは通常メイン・メモリ１５のデータが記憶されていないアドレスの記憶領域も維持した状態をそっくりＳＳＤ２３にコピーしてＳ３ステートからＳ３４ステートに遷移させる。これに対してＯＳがシステムをＳ０ステートからＳ４ステートに遷移させるときには、ＯＳがメイン・メモリ１５のデータ構造を認識しているため、記憶している有効なデータの領域だけをＳＳＤ２３に退避することができる。
【００４０】
Ｓ４ステートまたはＳ５ステートからＳ０ステートに復帰することをブートといい、Ｓ３ステートからＳ０ステートに復帰することをレジュームということにする。ブートおよびレジュームは、ＢＩＯＳが行う処理とＯＳが行う処理で構成される。Ｓ３４ステートからＳ０ステートに遷移するときは、Ｓ３４ステートからＳ３ステートに復帰することをブートといい、Ｓ３ステートからＳ０ステートに復帰することをレジュームということにする。Ｓ０ステートからＳ３４ステートに遷移する際に、Ｓ３ステートに留まっている時間をＳ３４時間ということにする。
【００４１】
ＳｘステートからＳ０ステートに復帰する際には、リセットされたデバイスに対してＰＯＳＴ（Power On Self Test）を実行する。ＰＯＳＴは、ＣＰＵ１１にリセット信号が供給されてから、ＯＳのロードを開始するまでの間に、ＢＩＯＳ＿ＲＯＭ２５に格納されたコードがチップ・セットのコントローラや周辺デバイスにパラメータを設定して使用できる状態にする作業をいう。ＰＯＳＴは、ＣＰＵ１１がリセットされてからＯＳがロードを開始するまでにＢＩＯＳコードが行うすべての処理であったり、あるいはその中からＣＰＵ１１およびメイン・メモリ１５などの基本的なデバイスに対する初期化以外の処理を除いた処理であったりしてよい。
【００４２】
［主要なハードウェア］
図１に戻って、ＩＣＨ２１は、図示しないＲＴＣ（Real Time Clock）とＲＴＣメモリ５１を含んでいる。ＲＴＣおよびＲＴＣメモリ５１は、ＡＣ／ＤＣアダプタおよび電池パックの電力が停止して、ＩＣＨ２１がＤＣ／ＤＣコンバータ３５から電力が供給されないときにボタン電池から電力の供給を受けることができる。ＲＴＣメモリ５１は、ＢＩＯＳのセット・アップ・データおよびＲＴＣが生成した時間情報などを記憶する揮発性メモリである。ＲＴＣメモリ５１は、Ｓ３ステートに遷移する際にＢＩＯＳが参照するＳ３４フラグおよびＳ３４時間を記憶する。ＲＴＣメモリ５１へのＳ３４フラグおよびＳ３４時間の設定は、ＢＩＯＳセット・アップ・コード１１９（図２参照）がＢＩＯＳ＿ＲＯＭ２５のデータ領域８３へＳ３４イネーブルを設定する際に行う。
【００４３】
Ｓ３４フラグは、ＯＳがノートＰＣ１０をＳ３ステートに遷移させたときに、Ｓ３４ステートに遷移する処理をするようにＢＩＯＳに指示したり、ＢＩＯＳがＳＳＤ２３に対する不正アクセスを検出して実行パスを決定したりするための情報である。Ｓ３４時間は、ＯＳがシステムをＳ３ステートに遷移させてからＢＩＯＳが自動的にＳ３４ステートに遷移させるまでの時間をいう。ＩＣＨ２１は、Ｓ５ステートで電源が維持されるＡＣＰＩレジスタ５７とレジスタ５８を含む。ＡＣＰＩレジスタ５７とレジスタ５８は、不揮発性のメモリで構成してもよい。ＡＣＰＩレジスタ５７は、ＡＣＰＩに規定するＳＬＰ＿ＴＹＰレジスタおよびＳＬＰ＿ＥＮレジスタに相当する。ＡＣＰＩレジスタ５７はＳ０ステートからＳｘステートに遷移する際にＯＳにより設定される。レジスタ５８には、Ｓ３ステートに遷移してからＳ３４時間が経過したときにＲＴＣによりタイム・アップ・ビットが設定される。
【００４４】
ＳＳＤ２３はＯＳ、デバイス・ドライバ、アプリケーション・プログラム、およびユーザ・データなどを記憶するフラッシュ・メモリで構成された記憶領域を備える大容量の記憶装置である。ＳＳＤ２３はブート・ディスク・ドライブでノートＰＣ１０が起動するときにロードされるブート・イメージを格納している。記憶領域はシステム領域とユーザ領域に区分されている。システム領域はＳＳＤ２３のファームウェアを記憶し、ユーザによるデータの書き込みや読み出しのためのアクセスを禁止している領域である。ＢＩＯＳがＳＳＤ２３にＳＳＤパスワードとロック・コマンドを送ると、ファームウェアがＳＳＤパスワードを設定して、設定したＳＳＤパスワードをシステム領域に記憶する。
【００４５】
ＳＳＤパスワードが設定されたＳＳＤ２３に、ＢＩＯＳがＳＳＤパスワードとロック解除コマンドを送ると、ファームウェアが認証してロックを解除し、システムからユーザ領域へのアクセスを許可する。ユーザ領域には、ユーザ・データおよびプログラムを記憶する領域とは別にＳ４ステートまたはＳ３４ステートに遷移するときにメイン・メモリ１５に展開されているプログラムおよびデータを退避する退避領域が定義されている。
【００４６】
ＥＣ２７は、ＣＰＵ、ＲＯＭ、ＲＡＭなどで構成されたマイクロ・コンピュータであり、さらに複数チャネルのＡ／Ｄ入力端子、Ｄ／Ａ出力端子、タイマー、およびディジタル入出力端子を備えている。ＥＣ２７は、ノートＰＣ１０の内部の動作環境の管理にかかるプログラムをＣＰＵ１１とは独立して実行することができる。ＥＣ２７は、キーボード・コントローラを含んでいる。
【００４７】
パワー・コントローラ３３は、ＥＣ２７からの指示に基づいてＤＣ／ＤＣコンバータ３５を制御するワイヤード・ロジックのディジタル制御回路（ＡＳＩＣ）である。ＤＣ／ＤＣコンバータ３５は、図示しないＡＣ／ＤＣアダプタまたは電池パックから供給される直流電圧を、ノートＰＣ１０を動作させるために必要な複数の電圧に変換し、さらにパワー・ステートに応じて定義された電力供給区分に基づいて各々のデバイスに電力を供給する。パワー・ボタン３７が押下されて起動イベントが生成されると、パワー・コントローラ３３はノートＰＣ１０のすべてのデバイスに電力を供給して、システムをＨＷ＿Ｓ０ステートに遷移させる。
【００４８】
パワー・コントローラ３３は、タンパー検出ライン６７でＳＳＤ２３に接続されている。タンパー検出ライン６７は、パワー・コントローラ３３と同じ電源でプルアップされている。ＳＳＤ２３はノートＰＣ１０に装着されている間、タンパー検出ライン６７の電位をグランド・レベルに維持している。ＳＳＤ２３がノートＰＣ１０から取り外されるとタンパー検出ライン６７の電位が上昇する。パワー・コントローラ３３は、タンパー・ビットを設定するレジスタ５９とパワー・ビットを設定するレジスタ６１を備えている。
【００４９】
パワー・コントローラ３３の論理回路は、タンパー・ビット検出ライン６７の電位が上昇するときのリーディング・エッジを検出するとレジスタ５９を論理値１に設定する。ＢＩＯＳは、パスワード認証が成功したときにレジスタ６１を論理値１に設定する。レジスタ５９、６１は、パワー・コントローラ３３の電源が停止したときに解除されて論理値０に設定される。
【００５０】
パワー・ボタン３７は、起動イベントを生成するデバイスの例示である。他の起動イベントを生成するデバイスには、リッド・センサ、指紋認証装置、またはＷＯＬのマジック・パケットを受け取るネットワーク・カードなどがある。
【００５１】
〔ＢＩＯＳ＿ＲＯＭの構成〕
図２はＢＩＯＳ＿ＲＯＭ２５のデータ構造を示す図である。ＢＩＯＳ＿ＲＯＭ２５に格納されたＢＩＯＳコードは、ＵＥＦＩファームウェアで構成している。ＢＩＯＳ＿ＲＯＭ２５は、ＢＩＯＳコードを格納するＢＩＯＳ領域８１とＢＩＯＳコードが利用するデータ領域８３を含む。ＢＩＯＳ＿ＲＯＭ２５はＢＩＯＳコードの書き換えに伴うリスクを軽減するためにブート・ブロック方式を採用している。ＢＩＯＳ領域８１はブート・ブロック８５とシステム・ブロック８７に分かれている。ブート・ブロック８５は書き込み保護がされている記憶領域でここに格納されたプログラムまたはコードはＴＰＭ（Trusted Platform Module ）の仕様書に規定するＣＲＴＭ(Core Root of Trust for Measurement）として扱われ特別な権限がないと書き換えができないようになっている。
【００５２】
ブート・ブロック８５には基本デバイス初期化コード１０１、一貫性認証コード１０３、ＰＯＳＴ選択コード１０５および退避コード１１３がＣＲＴＭとして格納されている。ＣＲＴＭは、ＢＩＯＳコードの中で一貫性のある部分として構成され、ノートＰＣ１０がブートするときに必ず最初に実行される。ノートＰＣ１０のプラットフォームに関するすべての一貫性の計測は一貫性認証コード１０３により行われる。基本デバイス初期化コード１０１は、ノートＰＣ１０が起動してＳｘステートからＳ０ステートに復帰する際に、メイン・メモリ１５にＢＩＯＳコードをロードして実行を開始するまでの処理に必要なＣＰＵ１１、メイン・メモリ１５およびその他の基本的なデバイスの検出、検査および初期化を最低限の範囲で行う。
【００５３】
ＰＯＳＴ選択コード１０５は、ＩＣＨ２１のレジスタ５７、５８、ＲＴＣメモリ５１のＳ３４フラグ、パワー・コントローラ３３のレジスタ５９、６１を参照して、基本ＰＯＳＴコード１０７、簡易ＰＯＳＴコード１１１またはＳ３ＰＯＳＴコード１１５のいずれを実行するかを判断したり、ＳＳＤ２３に対する不正アクセスの発生を検出したりしてＢＩＯＳコードの実行パスを制御する。退避コード１１３は、Ｓ０ステートからＳ３４ステートに遷移する際に、Ｓ３ステートにおけるメイン・メモリ１５の状態をＳＳＤ２３に転送する。退避コード１１３は、ＯＳとは異なってメイン・メモリ１５の記憶領域のデータ構造を認識していないため、原則として記憶領域の開始アドレスから最終アドレスまでのメイン・メモリ１５のアドレス全体の記憶状態をそっくりＳＳＤ２３にコピーする。
【００５４】
基本ＰＯＳＴコード１０７はＳ４ステートまたはＳ５ステートからブートをするために、すべての内部デバイスを対象にして検出、検査、および初期化といった完全なＰＯＳＴ処理を行う。基本ＰＯＳＴコード１０７は、所定のデバイスが検出できないときおよび検査の結果デバイスが正常に動作しないと判断したときにビープ音や画面表示によるエラーを出力する。基本ＰＯＳＴコード１０７は、ＭＣＨ１３およびＩＣＨ２１に接続されている周辺デバイスからパラメータを取得して現在のシステムにおいて最適なパラメータを選択しＭＣＨ１３およびＩＣＨ２１が含むコントローラに設定する。
【００５５】
このように内部デバイスを検査してそこから取得した情報に基づいて選択した最適なパラメータをコントローラに設定することを初期化といい、いずれかの場所に保存しておいた過去に設定したパラメータを対応するコントローラに設定することをリストアということにする。リストアは、内部デバイスの検出、検査および最適パラメータの選択のための処理を省略するので初期化に比べて短時間で完了することができる。
【００５６】
認証コード１０９は、パワー・オン・パスワード、ＳＳＤパスワード、および管理者パスワードなどのＢＩＯＳパスワードの設定のためのプロンプトをＬＣＤ１９に表示したり、入力されたパスワードを認証しまたはＳＳＤ２３に送ってロックを解除したりする。いずれかのＢＩＯＳパスワードが設定されているときに、認証コード１０９は、基本ＰＯＳＴコード１０７の実行の途中または終了したときに必ず実行される。いずれのＢＩＯＳパスワードも設定されていないときは制御権が移っても認証コード１０９は実行されない。認証コード１０９は、ユーザが入力したパスワードをハッシュしてシステムまたはＳＳＤ２３に送ることができる。
【００５７】
簡易ＰＯＳＴコード１１１は、Ｓ４ステートまたはＳ５ステートからＳ０ステートに復帰する際に、一部のデバイスの検出、検査、および最適なパラメータの選択などのＰＯＳＴ処理を省略して基本ＰＯＳＴコード１０７よりも短時間でブートを完了する。ＰＯＳＴ処理を省略するデバイスの対象としては、ＳＳＤ２３、ＵＳＢデバイス、および無線モジュールなどのような応答時間が長いために初期化に多くの時間を費やすデバイスや、動作のタイミングからＯＳが初期化をしても問題がないようなデバイスなどを選定することができる。
【００５８】
簡易ＰＯＳＴコード１１１は、Ｓ４ステートまたはＳ５ステートからブートするときに実行した基本ＰＯＳＴコード１０７が設定した最適なパラメータやそのときのデバイスの情報など（以下、パラメータという。）をＢＩＯＳ＿ＲＯＭ２５のデータ領域８３またはＮＶＲＡＭ３１に格納しておき、ブートするときに基本的なデバイスを除いて格納しておいたパラメータをリストアすることでＰＯＳＴ時間を短縮するように構成することができる。
【００５９】
簡易ＰＯＳＴコード１１１は、復帰時間を短縮するように構成されているため、ＳＳＤパスワードが設定されているときに、ユーザにＳＳＤパスワードの入力を要求しない。簡易ＰＯＳＴコード１１１はＳＳＤパスワードが設定されているＳＳＤ２３に対して、ユーザに代わってユーザが入力したＳＳＤパスワードのハッシュ値を送付してロックを解除する。
【００６０】
Ｓ３ＰＯＳＴコード１１５は、Ｓ３ステートからレジュームする際に簡易ＰＯＳＴコード１１１よりも短時間でＰＯＳＴ処理を完了する。Ｓ４ステートまたはＳ５ステートからブートする際に基本ＰＯＳＴコード１０７が設定したパラメータは、Ｓ０ステートにおいてメイン・メモリ１５に記憶される。Ｓ０ステートからＳ３ステートにサスペンドするときには、メイン・メモリ１５に記憶されたパラメータおよびＳ３ＰＯＳＴコード１１５の記憶が維持される。Ｓ３ＰＯＳＴコード１１５は、メイン・メモリ１５に記憶されたパラメータをリストアすることで短時間にコントローラの設定を完了することができる。Ｓ３ＰＯＳＴコード１１５はＳＳＤパスワードが設定されているときに、Ｓ３ステートからＳ０ステートに遷移する際にユーザに代わってユーザが入力したＳＳＤパスワードのハッシュ値をＳＳＤ２３に自動的に送付してロックを解除する。
【００６１】
Ｉ／Ｏコード１１７は、ＣＰＵ１１がリアル・モードで動作する際に周辺デバイスにアクセスするための入出力のインターフェースを提供する。ＢＩＯＳセット・アップ・コード１１９は、ブート・ドライブの選択、各デバイスの機能のイネーブル／ディスエーブル、セキュリティのイネーブル／ディスエーブルなどのような内部デバイスに対する設定をユーザがカスタマイズするためのインターフェースを提供する。ブートする際に、ＯＳがロードされる前に所定のキーを操作するとＢＩＯＳセット・アップ・コード１１９が実行されて、ＬＣＤ１９にＢＩＯＳセット・アップ画面が表示される。
【００６２】
ユーザが設定したセット・アップ・データの多くは、ＩＣＨ２１内のＲＴＣメモリ５１に記憶される。ＣＰＵ１１は基本ＰＯＳＴコード１０７、簡易ＰＯＳＴコード１１１、またはＳ３ＰＯＳＴコード１１５を実行する際にＲＴＣメモリ５１に記憶されたセット・アップ・データを参照する。ユーザは、ＢＩＯＳセット・アップ画面を通じて、Ｓ３４ステートの利用をイネーブルまたはディスエーブルに設定することができる。さらにＳ３４ステートの利用をイネーブルに設定する際には、Ｓ３４時間を設定することもできる。設定さえたＳ３４イネーブル・フラグとＳ３４時間は、データ領域８３に格納される。ＢＩＯＳセット・アップ・コード１１９は、Ｓ３４ステートをイネーブルに設定したときは、同時にＲＴＣメモリ５１にＳ３４フラグとＳ３４時間を設定する。環境ユーティリティ・コード１２１は、ノートＰＣ１０の温度および電力を制御する。各ＢＩＯＳコードは、図２に示したように独立したコードで構成する必要はなく、コードの一部を共通化してそれぞれの機能を果たすように実行パスを制御するように構成してもよい。本発明はブート・ブロック方式を採用しないＢＩＯＳ＿ＲＯＭ、あるいは、ＢＩＯＳ領域の全体をブート・ブロックにしたＢＩＯＳ＿ＲＯＭに適用することもできる。
【００６３】
［メイン・メモリのデータ構造］
図３は、Ｓ０ステートのときのメイン・メモリ１５のデータ構造を説明する図である。メイン・メモリ１５には、一般領域２０１とＳＭＲＡＭ領域２０３が定義されている。一般領域２０１には、ベクタ・テーブル２０５、ＯＳ、デバイス・ドライバ、アプリケーションなどのプログラム２０７、および編集中のユーザ・データ２０９が記憶されている。ベクタ・テーブル２０５は、それぞれセグメント・アドレスとオフセット・アドレスの４バイトで構成される２５６個のベクタ・アドレスを格納する。ベクタ・テーブル２０５は、ＣＰＵ１１に割り込みが発生したときに、それを処理するプログラムのアドレスを格納する。
【００６４】
一般領域２０１にはさらにリセット時にＣＰＵ１１のキャッシュで実行されるブート・ブロック８５に格納されたコードを除いたＢＩＯＳコード２１１とシステム・コンテキスト２１３が格納されている。システム・コンテキスト２１３は、ＯＳやデバイス・ドライバにより各デバイスのレジスタに設定されるハードウェア・コンテキストや、ＯＳやデバイス・ドライバがＣＰＵ１１およびその他のデバイスのキャッシュに記憶する制御データなどのソフトウェア・コンテキストを含む。
【００６５】
ＯＳは、Ｓ０ステートからＳ３ステートまたはＳ４ステートに遷移する際にメイン・メモリ１５にシステム・コンテキスト２１３を書き込み、Ｓ３ステートからＳ０ステートに復帰する際にはシステム・コンテキスト２１３を元のデバイスに戻してシステムをＳ０ステートの状態に復帰させる。システム・コンテキスト２１３は、Ｓ３ステートまたはＳ４ステートから遷移する際にＯＳが処理をするコードのベクタも含む。
【００６６】
ＳＭＲＡＭ領域２０３には、ＳＭＩハンドラ２１５、Ｓ３ＰＯＳＴコード１１５がロードされ、さらにＳＳＭ（State Save Map）２１９という領域が確保される。Ｓ３ＰＯＳＴコード１１５は、Ｓ３ステートからＳ０ステートに遷移する際に、ＳＭＩハンドラ２１５により呼び出されて実行される。なお、メイン・メモリ１５上でＢＩＯＳコード２１１が含む基本ＰＯＳＴコード１０７、認証コード１０９、および簡易ＰＯＳＴコード１１１はＳ４ステートまたはＳ５ステートからＳ０ステートに遷移する際に実行される。
【００６７】
さらに認証コード１０９は、Ｓ３４ステートから復帰する際に、ＳＳＤ２３に対する不正アクセスが検出されて一時的に基本ＰＯＳＴコードに制御を移したときに実行される。ＳＭＲＡＭ領域２０３のコードはＳ０ステートとＳ３ステートの間を遷移するときに繰り返し実行されるためＳ４ステートまたはＳ５ステートに遷移するまで維持されるが、ＢＩＯＳコード２１１はＳ０ステートに復帰したあとは使用する必要がないため、それを記憶するメイン・メモリ１５の領域は他のデータが上書きできるように設定される。
【００６８】
［パスワード保護の手順］
つぎに、ノートＰＣ１０で実現しているパスワード保護の手順を、図４〜図１０を参照して説明する。図４は、全体の手順を示すマスター・フローチャートで、図５〜図８は詳細のフローチャートである。図９（Ａ）は、図４〜図８のＳ３４ステートに関するハードウェア的なパワー・ステートを示す図で、図９（Ｂ）はそれに対応してデータ状態を含めたＡＣＰＩのパワー・ステートを示す図である。図１０は、ＰＯＳＴ選択コード１０５がＢＩＯＳコードの実行パスを決定する論理値表である。図１０において、レジスタ６１が論理値０のときは、レジスタ５９の値にかかわらず不正アクセスがあったと判定する。レジスタ６１が論理値１のときは、同時にレジスタ５９が０のときは不正アクセスがなかったと判定し、レジスタ５９が１のときは不正アクセスがあったと判定する。
【００６９】
図４のブロック２５１ではノートＰＣ１０がＳｘステートに遷移しており、ブロック２５３でパワー・ボタン３７が押下される。ブロック２５５でＢＩＯＳは、ＳＳＤ２３に対してＳＳＤパスワードが設定されているか否かを判断する。ＳＳＤパスワードが設定されていないときは、ブロック２５７でＢＩＯＳは遷移元がいずれのＳｘステートであってもユーザにパスワード入力を要求しないでシステムをＳ０ステートに復帰させる（図６のブロック４１７）。
【００７０】
ＳＳＤパスワードが設定されているときはブロック２５９でＢＩＯＳは、遷移元がＳ３４ステートであるか否かを判断する。遷移元がＳ３４ステートであると判断したときは、ブロック２６３に移行し、それ以外のＳ３、Ｓ４、Ｓ５ステートであると判断したときはブロック２６１に移行する。ブロック２６１でＢＩＯＳは、遷移元がＳ３ステートであると判断したときはブロック２６３に移行し、それ以外のＳ４ステートまたはＳ５ステートであると判断したときはブロック２６９に移行する。
【００７１】
ブロック２６９でＢＩＯＳは、ユーザにパスワード入力を要求してシステムをＳ０ステートに遷移させる（図７のブロック５０５）。ブロック２６３でＢＩＯＳは、ＳＳＤ２３に対する不正アクセスを検出したときはブロック２６５に移行し、検出しないときはブロック２６７に移行する。ブロック２６５でＢＩＯＳは、遷移元がＳ３ステートまたはＳ３４ステートのいずれであるかを判断する。Ｓ３ステートであると判断したときはブロック２６９に移行しＳ３４ステートであると判断したときはブロック２７１に移行する。ブロック２６９でＢＩＯＳはシステムを強制的にシャットダウンさせる(図７のブロック５５５)。ブロック２７１でＢＩＯＳは、ユーザにパスワード入力を要求してシステムをＳ０ステートに復帰させる（図８のブロック６１３、６５９）。ブロック２６７でＢＩＯＳは、ユーザにパスワード入力を要求しないでシステムをＳ０ステートに遷移させる（図７のブロック５１１、図８のブロック６５９）。
【００７２】
ブロック２６７、２７１によればＳ３４ステートから復帰する際には、ＳＳＤ２３に対する不正アクセスが検出されたときに限りパスワード入力を要求する。そしてＳ３４ステートから復帰する際にＢＩＯＳはＳＳＤ２３に対する不正アクセスを検出しない限りパスワード入力を要求しないでブート処理を短時間で終了させることができる。またＢＩＯＳは不正アクセスを検出したときに、ユーザからのパスワード入力を省略してＳＳＤ２３に自動的にパスワードを送出したり、強制的にＳ５ステートに遷移させたりしないので、パスワードを保護しかつＳＳＤ２３に退避していたデータを復帰させることができる。
【００７３】
図５のブロック３０１で、ノートＰＣ１０は最初にＳ５ステートに遷移しておりＡＣＰＩレジスタ５７はＳ５ステートに設定されている。また、レジスタ５８、５９およびＲＴＣメモリ５１のＳ３４フラグはクリアされて論理値０を示してり、レジスタ６１はパワー・ビットが設定されて論理値１を示している。パワー・ボタン３７を操作して起動イベントを生成しノートＰＣ１０の電源を起動すると、パワー・コントローラ３３がＤＣ／ＤＣコンバータ３５を動作させてノートＰＣ１０をＨＷ＿Ｓ０ステートに遷移させる。ＥＣ２７から起動イベントを受け取ったＩＣＨ２１は、ＣＰＵ１１にリセット信号を送ってパワー・オン・リセットする。リセットされたＣＰＵ１１は、ブート・ブロック８５に格納された基本デバイス初期化コード１０１から実行するように構成されている。
【００７４】
ブロック３０３でリセット信号を受け取ったＣＰＵ１１は、電圧が安定すると内部のキャッシュおよびレジスタを初期化する。ＣＰＵ１１はその後あらかじめ定められたＢＩＯＳ＿ＲＯＭ２５のアドレス（リセット・ベクタ）にアクセスしてインストラクションをフェッチする。ＭＣＨ１３はＣＰＵ１１のアクセス先であるリセット・ベクタをＢＩＯＳ＿ＲＯＭ２５の基本デバイス初期化コード１０１のアドレスに切り換える。
【００７５】
ＣＰＵ１１はブート・ブロック８５に格納されたＢＩＯＳコードをキャッシュに読み出して、メイン・メモリ１５およびＭＣＨ１３などのＢＩＯＳコードを実行するのに必要な基本的なデバイスの検出、検査および初期化をする。基本デバイス初期化コード１０１は、初期化するためにコントローラに設定したパラメータをデータ領域８３および必要に応じて他の不揮発性メモリに書き込む。つづいて、基本デバイス初期化コード１０１は、メイン・メモリ１５が利用できるようになると、システム・ブロック８７に格納されているＢＩＯＳコードおよびデータ領域８３のパラメータをメイン・メモリ１５にロードして、メイン・メモリ１５をシャドウＲＡＭとして利用できるようにする。ＣＰＵ１１は、以下で説明するブート・ブロック８５に格納された一貫性認証コード１０３およびＰＯＳＴ選択コード１０５の実行が終了すると、メイン・メモリ１５にアクセスしてロードしたＢＩＯＳコードを実行する。
【００７６】
つぎに、一貫性認証コード１０３は、システム・ブロック８７に格納されたＢＩＯＳコードの改変に関する検証を行う。検証が終了するとＣＰＵ１１はＰＯＳＴ選択コード１０５を実行する。ＰＯＳＴ選択コード１０５は最初にＲＴＣメモリ５１のＳ３４フラグを参照する。ＰＯＳＴ選択コード１０５は、Ｓ３４フラグが設定されていないことを確認するとＡＣＰＩレジスタ５７を参照する。ＰＯＳＴ選択コード１０５は図１０の論理値表を含んでいる。ＰＯＳＴ選択コード１０５は、ＡＣＰＩレジスタ５７にＳ５ビットが設定されていることを確認すると、図１０の実行パス＃６に従って制御を基本ＰＯＳＴコード１０７に移す。なお、以下の手順においては、ＣＰＵ１１がリセットされるたびに、図１０の論理値表を参照して同様の手順でＰＯＳＴ選択コード１０５が実行される。
【００７７】
ここではＢＩＯＳパスワードは設定されていないので、基本ＰＯＳＴコード１０７から認証コード１０９に制御が移ってもパスワード入力は要求されない。ブロック３０５では基本ＰＯＳＴコード１０７が実行されている初期の段階で、ユーザがキーボード２９の所定のファンクション・キーを押下するとＢＩＯＳセット・アップ・コード１１９が呼び出されてＬＣＤ１９にセット・アップ画面を表示する。
【００７８】
本発明との関連では、セット・アップ画面を通じてユーザがＳＳＤパスワードの設定、ＢＩＯＳ＿ＲＯＭ２５のデータ領域８３に対するＳ３４フラグの設定およびＳ３４時間の設定を行う。ユーザは、Ｓ３ステートの利便性と省電力の重要性を考慮して０時間から所定の時間の範囲の間にＳ３４時間を設定することができる。ＢＩＯＳセット・アップ・コード１１９は入力されたＳＳＤパスワードをハッシュしてセキュアな不揮発性メモリに格納し、その他のセット・アップ・データをＲＴＣメモリ５１に記憶する。ＢＩＯＳセット・アップ・コード１１９は、パスワード設定コマンドと一緒にＳＳＤ２３にＳＳＤパスワードのハッシュ値を送る。
【００７９】
ブロック３０６でＳＳＤ２３のファームウェアは、受け取ったパスワード設定コマンドを処理してＳＳＤパスワードを設定する。設定されたＳＳＤパスワードは、これ以降においてＳＳＤ２３がリセットされるたびに有効になる。ユーザがＢＩＯＳセット・アップ・コード１１９を終了すると、中断していた基本ＰＯＳＴコード１０７が実行される。基本ＰＯＳＴコード１０７は基本デバイス初期化コード１０１で処理されていない残りのすべてのデバイスの検出、検査および初期化を行う。
【００８０】
基本ＰＯＳＴコード１０７は、初期化するためにコントローラや周辺デバイスに設定したパラメータをデータ領域８３および必要に応じて他の不揮発性メモリに書き込む。ＢＩＯＳのブート処理が終了するとブロック３０７で制御がＯＳのブート処理に移る。ＯＳ、デバイス・ドライバ、およびアプリケーションなどのプログラムがメイン・メモリ１５にロードされて実行される。その後ＯＳは、ＢＩＯＳ２１１がロードされたメイン・メモリ１５の記憶領域を、Ｓ３ステートからＳ０ステートにレジュームする際に必要なコードを除いて一般のプログラムのために開放しＳ０ステートに遷移させる。
【００８１】
ブロック３０９でユーザはパワー・ボタン３７の押下、ＯＳのインターフェースを通じた操作またはパワー・マネジメントの実行などによりノートＰＣ１０をＳ０ステートからＳｘステートに遷移させる操作をする。Ｓ３４ステートに遷移させる操作をしたときはブロック３１１に移行し、Ｓ３ステートに遷移させる操作をしたときは図６のブロック４０６に移行し、Ｓ４ステートまたはＳ５ステートに遷移させる操作をしたときは図６のブロック４０７に移行する。Ｓ３ステートに移行させる操作とＳ３４ステートに移行させるユーザの操作またはパワー・マネジメントの動作は同一であるが、ＢＩＯＳコードは、ＢＩＯＳ＿ＲＯＭ２５に設定されたＳ３４ステートがイネーブルかディスエーブルかでいずれであるかを判断する。ブロック３１１で操作イベントを検出したＩＣＨ２１がＣＰＵ１１に割り込みをかけると、ＯＳは動作中のプログラムにＳ３ステートに遷移するための処理をするように指示し、Ｓ３ステートで消失するシステム・コンテキスト２１３をメイン・メモリ１５に記憶する。
【００８２】
ＯＳおよび必要に応じてデバイス・ドライバおよびＢＩＯＳがシステム・コンテキストをメイン・メモリ１５に退避する。ＯＳは各プログラムからＳ３ステートへ遷移する準備が完了したことの通知を受け取ると、ＡＣＰＩレジスタ５７に対してＳ３ステートへの遷移がイネーブルになるように設定する。ＳＭＩハンドラ２１５は、ＡＣＰＩレジスタ５７への設定をトラップして、ＢＩＯＳ＿ＲＯＭ２５にＳ３４フラグが設定されていることを確認すると、ＲＴＣメモリ５１にＳ３４フラグとＳ３４時間を設定する。ＡＣＰＩレジスタ５７がイネーブルに設定されると、ＩＣＨ２１はＥＣ２７に指示してメイン・メモリ１５の記憶を維持するために必要な電源以外の電源を停止し、ＲＴＣのアラーム機構（RTC Resume）を動作させる。ブロック３１３でノートＰＣ１０はＳ３ステートに遷移する（時刻ｔ１）。
【００８３】
ブロック３１５でＲＴＣが計時した時間がＲＴＣメモリ５１に設定したＳ３４時間に到達するとブロック３１７に移行する。ブロック３１７でＲＴＣはレジスタ５８にタイム・アウト・ビットを設定し、さらにＥＣ２７に指示してＨＷ＿Ｓ０ステートに遷移させる（時刻ｔ２）。ＳＳＤ２３は電源が投入されるとレジスタが初期化されてリセットされる。それまでロックが解除された状態のＳＳＤ２３は、リセットされたことによりロックされて、これ以降ＳＳＤ２３はロック解除コマンドとユーザが入力したＳＳＤパスワード、またはＰＯＳＴ選択コード１０５、簡易ＰＯＳＴコード１１１またはＳ３ＰＯＳＴコードが自動送付のために管理するＳＳＤパスワードを受け取らない限りシステムによるユーザ領域へのアクセスを拒否する。
【００８４】
ブロック３１９でリセットされたＣＰＵ１１はＰＯＳＴ選択コード１０５を実行して図６のブロック４０１に移行する。ブロック４０１でＰＯＳＴ選択コード１０５は、レジスタ５８、５９、６１とＲＴＣメモリ５１を参照してＳＳＤ２３に対する不正アクセスを検出しない場合は図１０の実行パス＃３を選択し不正アクセスを検出した場合は実行パス＃７を選択してレジスタ５８のタイム・アップ・ビットを解除する。本手順ではこの時点では、不正アクセスがないことを想定しているため、ＰＯＳＴ選択コード１０５は実行パス＃３を選択する。ＰＯＳＴ選択コード１０５が実行パス＃７を選択した場合は、システムを強制的にシャットダウンする。すでにブロック３１７でＳＳＤ２３はロックされているので、ＰＯＳＴ選択コード１０５は管理しているＳＳＤパスワードを自動的に送ってＳＳＤ２３のロックを解除してから退避コード１１３に制御権を渡す。ブロック４０３で退避コード１１３は、メイン・メモリ１５の記憶状態をＳＳＤ２３に転送し、ブロック４０５でＥＣ２７を通じて起動に必要なパワー・コントローラ３３の電源以外の電源を停止してノートＰＣ１０をＨＷ＿Ｓ４ステートに遷移させる。結果としてノートＰＣ１０は、ＯＳはシステムがＳ３ステートに遷移していると認識するが電源状態およびデータ状態はＳ４ステートであるＳ３４ステートに遷移する（時刻ｔ３）。
【００８５】
ブロック４０６でＰＯＳＴ選択コード１０５は、ＢＩＯＳ＿ＲＯＭ２５がＳ３４ディスエーブルに設定されていることを確認してＲＴＣメモリ５１に対するＳ３４フラグの設定を省略する。ＯＳが、ＡＣＰＩレジスタ５７にＳ３ステートへの遷移がイネーブルになるように設定すると、ＩＣＨ２１はＥＣ２７にシステムをＨＷ＿Ｓ３ステートに遷移させるように指示する。ブロック４０７でＯＳは、ＡＣＰＩレジスタ５７にＳ４ステートまたはＳ５ステートへの遷移がイネーブルになるように設定すると、ＩＣＨ２１はＥＣ２７にＨＷ＿Ｓ４ステートまたはＨＷ＿Ｓ５ステートに遷移させるように指示する。
【００８６】
ブロック４０９では、Ｓｘステートの間にもしＳＳＤ２３がノートＰＣ１０から外されて再装着されると、タンパー検出ライン６７の電位が一旦上昇してからゼロになる（時刻ｔ４）。パワー・コントローラ３３の論理回路は、タンパー検出ライン６７の電位のリーディング・エッジを検出してレジスタ５９のタンパー・ビットを論理値１に設定する。Ｓｘステートの間に、もし、パワー・コントローラ３３の電源が停止した場合には、レジスタ５９のタンパー・ビットはクリアされて論理値０になるが同時にレジスタ６１のパワー・ビットもクリアされて論理値０になる。このような状態は、ＳＳＤ２３とＩＣＨ２１の間に盗聴装置を挿入するような場合にも発生するためＳＳＤ２３に対する不正アクセスが発生したと想定する。
【００８７】
ブロック４１１で任意の時刻にパワー・ボタン３７が押下されると起動イベントが生成されて、パワー・コントローラ３３がＤＣ／ＤＣコンバータ３５を動作させシステムをＨＷ＿Ｓ０ステートに遷移させる。ブロック４１３でＣＰＵ１１はＰＯＳＴ選択コード１０５を実行する（時刻ｔ５）。ブロック４１５では、ＰＯＳＴ選択コード１０５がＳＳＤ２３にＳＳＤパスワードが設定されているか否かを判断する。
【００８８】
図５のブロック３０６でＳＳＤパスワードが設定されているときは図７のブロック５０１に移行し、設定されていないときはブロック４１７に移行する。ブロック４１７では、遷移元のパワー・ステートがいずれであってもユーザにパスワード入力を要求しないでシステムはＳ０ステートに復帰し図５のブロック３０７に戻る。
【００８９】
ブロック５０１でＰＯＳＴ選択コード１０５は、ＲＴＣメモリ５１にＳ３４フラグが設定されているか否かを確認する。Ｓ３４フラグが設定されているときは、遷移元のパワー・ステートがＳ３４ステートであるためブロック５０７に移行する。Ｓ３４フラグが設定されていないときは、ブロック５０３に移行して、ＰＯＳＴ選択コード１０５はさらにＡＣＰＩレジスタ５７にＳ３ビットが設定されているか否かを確認する。Ｓ３ビットが設定されているときは、遷移元のパワー・ステートがＳ３ステートであるためブロック５０７に移行する。
【００９０】
Ｓ３ビットが設定されていなときは、ＳＳＤパスワードが設定され、かつ、遷移元のパワー・ステートがＳ４ステートまたはＳ５ステートであるためブロック５０５に移行する。ブロック５０５でＰＯＳＴ選択コード１０５は、ＡＣＰＩレジスタ５７およびＲＴＣメモリ５１のＳ３４フラグを参照して図１０の実行パス＃６を選択し、基本ＰＯＳＴコード１０７と認証コード１０９を実行してユーザにパスワード入力を要求してからシステムをＳ０ステートに復帰させる。
【００９１】
ブロック５０７でＰＯＳＴ選択コード１０５は、レジスタ６１を参照してパワー・ビットを確認する。パワー・ビットが設定されているときはブロック５０９に移行し、パワー・ビットがクリアされているときはブロック５１３に移行する。ブロック５０９でＰＯＳＴ選択コード１０５は、レジスタ５９を参照してタンパー・ビットを確認する。タンパー・ビットが設定されているときはＳＳＤ２３に対する不正アクセスを検出したことに相当するためブロック５１３に移行する。タンパー・ビットが設定されていないときはＳＳＤ２３に対する不正アクセスを検出しないためブロック５１０に移行する。ブロック５１０でＰＯＳＴ選択コード１０５は、ＲＴＣメモリ５１を参照してＳ３４フラグが設定されているか否かを判断する。
【００９２】
Ｓ３４フラグが設定されているときは、図１０の実行パス＃１を選択して図８のブロック６５１に移行する。Ｓ３４フラグが設定されていないときは、Ｓ３ステートからの遷移であるためブロック５１１に移行する。ブロック５１１でＰＯＳＴ選択コード１０５は、ＡＣＰＩレジスタ５７、レジスタ５９、６１およびＲＴＣメモリ５１のＳ３４フラグを参照して図１０の実行パス＃４を選択しＳ３ＰＯＳＴコード１１５に制御を移す。
【００９３】
Ｓ３ＰＯＳＴコード１１５は、ＰＯＳＴ処理が終了するとセキュアな領域に記憶していたＳＳＤパスワードのハッシュ値をＳＳＤ２３に自動的に送付して、ＳＳＤ２３のロックを解除する。ＳＳＤパスワードの自動送付は、ブロック５０７、５０９で不正アクセスがないことを確認した上で行っているので、ＳＳＤ２３は盗聴装置から保護されている。
【００９４】
ブロック５１３でＰＯＳＴ選択コード１０５は、ＲＴＣメモリ５１にＳ３４フラグが設定されているか否かを確認する。Ｓ３４フラグが設定されていないときは、遷移元のパワー・ステートがＳ３ステートであるためブロック５５５に移行する。Ｓ３フラグが設定されているときは、図８のブロック６０１に移行する。
【００９５】
ブロック５５５でＰＯＳＴ選択コード１０５は、ＡＣＰＩレジスタ５７、レジスタ５９、６１およびＲＴＣメモリ５１のＳ３４フラグを参照し、図１０の実行パス＃５を選択すると、パスワード入力のプロンプトを表示することなくシステムを強制的にシャットダウンしてＳ５ステートに遷移させる。
【００９６】
図８のブロック６０１でＰＯＳＴ選択コード１０５は、レジスタ５９、６１およびＲＴＣメモリ５１のＳ３４フラグを参照して、Ｓ３４ステートからの復帰の際にＳＳＤ２３に対する不正アクセスを検出したと判断して図１０の実行パス＃２を選択し、基本ＰＯＳＴコード１０７に制御を移す。
【００９７】
ブロック６０３でＰＯＳＴ処理が終了した基本ＰＯＳＴコード１０７が認証コード１０９に制御を移すと、認証コード１０９はユーザにパスワード入力を要求する。ブロック６０５で認証コード１０９が表示したパスワード入力画面に対してユーザが正しいＳＳＤパスワードを入力するとブロック６０９に移行する。認証に失敗したときはブロック６０７に移行してブートが停止する。ブートが停止したときは、再度起動して正しいＳＳＤパスワードを入力するかＢＩＯＳセット・アップ・コード１１９を実行してＳＳＤパスワードをクリアすることでブートできるようになる。
【００９８】
ブロック６０９では、正しいパスワードの入力により安全を確認した認証コード１０９がレジスタ５９のタンパー・ビットをクリアし、ブロック６１１でレジスタ６１にパワー・ビットを設定する。ブロック６１３で認証コード１０９が、ＣＰＵ１１をリセットすると、ＣＰＵ１１はＰＯＳＴ選択コード１０５を実行し（時刻ｔ７）、図６のブロック４１５に戻る。
【００９９】
今度はレジスタ５９、６１が示す不正アクセスの状態が解除されているので、ＰＯＳＴ選択コード１０５は、レジスタ５９、６１およびＲＴＣメモリ５１のＳ３４フラグを参照して図１０の実行パス＃１を選択しブロック５０１からブロック５１０を経由して図８のブロック６５１に移行して簡易ＰＯＳＴコード１１１に制御を移す。簡易ＰＯＳＴコード１１１は、ブロック６５３でセキュアな領域に記憶していたＳＳＤパスワードのハッシュ値をＳＳＤ２３に自動的に送付してロックを解除する。ＳＳＤパスワードの自動送付は、ブロック５０７、５０９で不正アクセスがないことを確認した上で行っているので、ＳＳＤ２３はパスワードおよびデータの盗聴から保護されている。
【０１００】
ブロック６５５で簡易ＰＯＳＴコード１１１は、図６のブロック４０３でＳＳＤ２３に退避していたメイン・メモリ１５の記憶状態をメイン・メモリ１５に復帰する。ブロック６５７で簡易ＰＯＳＴコード１１１はＲＴＣメモリ５１のＳ３４フラグをクリアする。この時点でノートＰＣ１０のデータ状態はＳ３ステートであるが、電源状態はＨＷ＿Ｓ０ステートである。データ転送が終了するとブロック６５９で簡易ＰＯＳＴコード１１１は、制御権をＯＳに移す。ＯＳは、ＡＣＰＩレジスタ５７を参照して遷移元のパワー・ステートがＳ３ステートであると認識してＳ０ステートに遷移するために、必要に応じてデバイス・ドライバおよびＢＩＯＳと協働しながらシステム・コンテキスト２１３をリセットされた各デバイスに復帰して図５のブロック３０７に戻る（時刻ｔ８）。
【０１０１】
図５〜図８の手順によれば、図５のブロック３０９でＯＳはシステムをＳ３ステートに遷移させたと認識しており、図８のブロック６５９ではＳ３ステートからの復帰処理をする。この間の処理はすべてＢＩＯＳが行うのでＯＳはＢＩＯＳが実行していることを認識する必要がないためＯＳに変更を加える必要がない。Ｓ３４ステートからＳ０ステートに遷移する際に、Ｓ３ステートからＳ０ステートに遷移するときのようにＳ３ＰＯＳＴコード１１５を実行すると、ＳＳＤ２３に対する不正アクセスを検出したときにシステムを強制的にシャットダウンさせてしまう。
【０１０２】
この点において本実施の形態では、不正アクセスを検出しないときはＳＳＤ２３に自動的にパスワードを送付する簡易ＰＯＳＴコード１１１を実行して短時間で復帰できるようにし、不正アクセスを検出したときだけ基本ＰＯＳＴコード１０７と認証コード１０９を実行してパスワード入力を要求することでパスワードの保護を図りながらＳ３４ステートに遷移する前の編集データを消失させないようにしている。
【０１０３】
これまで、Ｓ３４ステートから復帰する場合を例にしてパスワードとデータを保護する方法を説明したが、本発明はＳ４ステートから復帰する際に、基本ＰＯＳＴコード１０７よりも短時間でブートするために、自動的にパスワードを送付してユーザにパスワード入力を要求しないＰＯＳＴコード全般に適用することもできる。また、不正アクセスを検出したときに、基本ＰＯＳＴコード１０７に制御を移してパスワード入力を要求する例を示したが、本発明はＢＩＯＳコードを、不正アクセスを検出した場合にユーザにパスワード入力を要求し、検出しない場合はパスワードを自動的に送付して短時間でブートを完了するように構成することもできる。そのようなＢＩＯＳは、図１０の時刻ｔ５でＨＷ＿Ｓ０ステートに復帰したあとはＣＰＵ１１をリセットしないで、システムをＳ０ステートに復帰することができる。
【０１０４】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【０１０５】
１０  ノートＰＣ
１５  メイン・メモリ
【図１】
0005711160.tif 000002
【図２】
0005711160.tif 000003
【図３】
0005711160.tif 000004
【図４】
0005711160.tif 000005
【図５】
0005711160.tif 000006
【図６】
0005711160.tif 000007
【図７】
0005711160.tif 000008
【図８】
0005711160.tif 000009
【図９】
0005711160.tif 000010
【図１０】
0005711160.tif 000011