JP2009512020A - オペレーティングシステムの停止状態からの高速起動 - Google Patents

オペレーティングシステムの停止状態からの高速起動 Download PDF

Info

Publication number
JP2009512020A
JP2009512020A JP2008534707A JP2008534707A JP2009512020A JP 2009512020 A JP2009512020 A JP 2009512020A JP 2008534707 A JP2008534707 A JP 2008534707A JP 2008534707 A JP2008534707 A JP 2008534707A JP 2009512020 A JP2009512020 A JP 2009512020A
Authority
JP
Japan
Prior art keywords
static data
code
system component
computer
fast
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008534707A
Other languages
English (en)
Other versions
JP2009512020A5 (ja
JP4459290B2 (ja
Inventor
ツァング,マイケル・エイチ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009512020A publication Critical patent/JP2009512020A/ja
Publication of JP2009512020A5 publication Critical patent/JP2009512020A5/ja
Application granted granted Critical
Publication of JP4459290B2 publication Critical patent/JP4459290B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

【解決手段】
記載されたものは、通常システムコンポーネントのための静的データ及び/又はコードを存続し、その後の装置の起動の間、静的データ及び/又はコードへのアクセスをそのシステムコンポーネントに提供することによって、作動する高速起動メカニズムである。例えば1つ以上のコンポーネントの静的データ及び/又はコードが、不揮発性メモリから揮発性メモリにリストアされ得、それによって、その後の再起動が、存続されたそれらの静的データをコンポーネントに再計算する必要がないために、その後の再起動をより高速にできる。高速起動基盤環境は、インターフェースセットを含み得、システムコンポーネントのための静的データ及び/又はコードを存続する第1のメカニズム及び静的データ及び/又はコードへのアクセスをシステムコンポーネントに提供する第2のメカニズムを提供する。高速起動基盤環境はまた、システムコンポーネントから静的データ及び/又はコードを収集するためのバックグラウンドメカニズムと共に、コンポーネントに静的データ及び/又はコードを無効化させる方法も提供できる。
【選択図】図3

Description

モバイル装置が更に普及するにつれて、より長いバッテリー寿命及び即時アクセス容易性に対する需要が増している。マイクロソフトのWindows(登録商標)ベースのオペレーティングシステムのようなオペレーティングシステム全体の複雑性のために、その需要に応えることは大きな課題である。例えば、典型的なモバイルパーソナル計算機は、(例えばACPI標準規格に従うS5状態に対応する)停止状態から約20〜40秒以内で起動するのであって、疑いもなく即時アクセス可能な装置であると考えられていない。
計算機システムを更に短時間に動作復帰させるために、多様なメカニズムが試みられている。例えば、ACPIのS3/スタンバイスリープ状態が定義されていて、システム状態がシステムメモリ内で実質的に停止(サスペンド)され、それによって妥当な即時起動性能が達成される。しかし、S3状態が電池の電力を消費し、それは多くのユーザ及び装置メーカにとって関心事であり、少なくともその理由によってS3状態を使用することは、多くのユーザのための十分な解決策にはならない。ユーザ及びメーカの中には、S3状態がまた、時間と共に悪化し得るという懸念もあって、それは多様な開発ソースから取得され得、重要な意味を持つリジュームコードパスの一部であり得る様々なドライバ及びサービスによって生じやすい。
S4/ハイバネーションのスリープ状態もまた定義されていて、電力供給停止時にデータもまた保持しながら、システムをいくらかでも更に短時間に起動できるように通常、システムメモリをハードディスクファイルに転送する。S4スリープ状態は、電力を全く必要としない利点を有するが、S3状態に対するのと同等の安定性及び潜在的なデータ損失の懸念の声を共有する。更に、S4リジュームは、平均すると未だに約15秒を要し、これもまた「即時起動」の解決策としてほ考えられない。
電池で電力供給されないデスクトップの計算機システムであっても、迅速な電源投入体験をすることが大きな需要になっている。例えば、多くの計算機システムが娯楽を提供する方向に発展しているので、競合する計算機及び家庭用電化製品市場において、計算機製品を売る目的のために、特に家庭用計算機システムは、更に家庭用電化製品のように計算装置を機能させる必要性が増加する。例えば、前述のコールド起動のシーケンスのための20秒以上の時間と異なり、典型的な家庭用電化製品装置は、電源を投入して数秒以内に機能的になり得る。
一般に、完全な停止状態からの更なる高速起動が、計算機システムに対して望まれている。そのような更なる高速起動は、他のタイプ(例えばS3及びS4)のリジューム動作に対し独立して優遇される必要があり、なぜならばそれらのスリープ状態が、いくつかのユーザシナリオにおいて重要であるシステム状態を保持するからである。
簡潔に言うと、本発明の種々の特徴は、システムコンポーネントのための静的データを存続(persisting)し、その後の装置の起動の間、静的データへのアクセスをそのシステムコンポーネントに提供することによって、普通に作動する高速起動メカニズムを目指すものである。例えば、セットアップ又はインストール後、1つ以上のコンポーネントの静的データ及び場合によってはコードを含む高速起動イメージが、不揮発性メモリから揮発性メモリ(例えばRAM)にリストアされ得、例えば、不揮発性メモリに起動コードパスを置くことは、回転媒体の比較的遅い回転時間を回避する利点を有していて、例えば典型的なハードディスクの回転時間は最大約5秒であり得る。その後の再起動時、静的データを存続されたシステムコンポーネントそれぞれは、それに対応する静的データへのアクセスを与えられ、それにより毎回の起動の間、データの多くが再び列挙される必要はないため、その後の再起動を更に高速にできる。最初の時間において、システムコンポーネントのための静的データ及び/又はコードを存続する第1のメカニズムと、第1の時間の後でシステム機器の起動の間である第2の時間において、静的データへのアクセスをシステムコンポーネントに提供する第2のメカニズムを含む高速起動基盤環境を例示する。高速起動基盤環境は、インターフェースセットを含み得、システムコンポーネント(クライアント)は、静的データ及び/又はコードを存続し、静的データへのアクセスを取得し、静的データを(例えば変更時)無効化できる。また、高速起動基盤環境は、システム起動などに続いて、静的データ及び/又はコードをシステムコンポーネントから収集するバックグラウンドメカニズムも使用できる。
図面に関連して捉えると、以下の詳細説明から他の利点が明らかになるだろう。
本発明は例によって示され、同様の参照番号が同様の要素を示す、以下に添付の図に限定されない。
例示的な操作環境
図1は、本発明が実施され得る、最適な計算システム環境(100)の一例を示す。計算システム環境(100)は、最適な計算環境の一例に過ぎず、本発明の使用又は機能性の範囲に関して、いかなる制限も提示することを意図されていない。計算環境(100)が、例示的な動作環境(100)において示される任意の1つのコンポーネント又はコンポーネントの組み合わせに関連し、いかなる依存性も要求も有すると解釈するべきでない。
本発明は、多くの別の汎用又は特定用途の計算システム環境又は構成と共に作動する。本発明を用いて使用に適し得る周知の計算システム、環境及び/又は構成の例は、パーソナル計算機、サーバ計算機、携帯用又はラップトップ装置、タブレット装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル家電、ネットワークPC、ミニコンピュータ、メインフレーム計算機、前述のシステム又は装置などのいくつかを含む分散計算環境を含むが、これらに限定されない。
本発明は、計算機によって実行されるプログラムモジュールなどの計算機実行可能命令の一般的な文脈で説明され得る。一般に、プログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含み、特定のタスクを実行するか、又は特定の抽象データ型を実現する。本発明はまた、通信ネットワークを経由し、接続されるリモートプロセッシング装置によって、タスクを実行する分散計算環境においても実施され得る。分散計算環境においては、メモリ記憶装置を含むローカル及び/又はリモート計算機記憶媒体においてプログラムモジュールを配置できる。
図1を参照し、本発明を実施する例示的なシステムは、計算機(110)の形式の汎用計算装置を含む。計算機(110)のコンポーネントは、処理ユニット(120)、システムメモリ(130)及びシステムメモリを含む多様なシステムコンポーネントを処理ユニット(120)に接続するシステムバス(121)を含むがこれらに限定されない。システムバス(121)は、メモリバス又はメモリコントローラを含むいくつかの任意のタイプのバス構造、周辺機器用バス及び様々なバスアーキテクチャのうちいくつかを使用するローカルバスであり得る。制限ではなく例として、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ機器に関する標準化団体(VESA)ローカルバス及びメザニンバスとして知られる周辺機器相互接続(PCI)バスを含む。
計算機(110)は一般に、様々な計算機可読媒体を含む。計算機可読媒体は、計算機(110)によってアクセスされ得る使用可能ないくつかの媒体であり得、揮発性及び不揮発性の双方の媒体及び取り外し可能及び取り外し不可能な双方の媒体を含む。制限ではなく例として、計算機可読媒体は、計算機記憶媒体及び通信媒体を含む。計算機記憶媒体は、計算機可読命令、データ構造、プログラムモジュール又は他のデータなどの情報の記憶に関する任意の方法又は技術にて実装される揮発性及び不揮発性の取り外し可能及び取り外し不可能な媒体を含む。計算機記憶媒体は、制限ではないが、RAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)又は他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置又は他の磁気記憶装置又は所望の情報をストアするために使用され得、計算機(110)によってアクセスされ得る任意の他の媒体を含む。通信媒体は一般に、搬送波又は別の移送メカニズムなどの変調データ信号で計算機可読命令、データ構造、プログラムモジュール又は他のデータを具現化したものであって、任意の情報伝達媒体を含む。語句「変調データ信号」は、1つ以上の特徴の組を有するか又は信号中の情報を符号化する方法によって変更された信号を意味する。制限ではなく例として、通信媒体は、有線ネットワーク又は直接有線接続のようなワイヤード媒体並びに音響、無線(RF)、赤外線及び他の無線媒体のようなワイヤレス媒体を含む。前述のうち任意の組み合わせもまた、計算機可読媒体の範囲内に含む必要がある。
システムメモリ(130)は、読み出し専用メモリ(ROM)(131)及びランダムアクセスメモリ(RAM)(132)などの揮発性及び/又は不揮発性メモリ形式の計算機記憶媒体を含む。基本入出力システム(BIOS)(133)は、起動の間など、計算機(110)の素子間の情報の送信を支援する基本ルーチンを含んでいて通常、ROM(131)にストアされる。RAM(132)は通常、データ及び/又はプログラムモジュールを含んでいて、処理ユニット(120)によって、即時アクセス可能及び/又は現在作動中である。制限ではなく例として、図1は、オペレーティングシステム(134)、アプリケーションプログラム(135)、他のプログラムモジュール(136)及びプログラムデータ(137)を示す。
計算機(110)はまた、別の取り外し可能/取り外し不可能、揮発性/不揮発性の計算機記憶媒体も含み得る。例に過ぎないが、図1は、取り外し不可能、不揮発性磁気媒体から読み出すか又は書き込むハードディスクドライブ(141)、取り外し可能、不揮発性磁気ディスク(152)から読み出すか又は書き込む磁気ディスクドライブ(151)、CD−ROM又は他の光媒体のような取り外し可能、不揮発性光ディスク(156)から読み出すか又は書き込む光ディスクドライブ(155)を示す。例示的な動作環境において使用され得る別の取り外し可能/取り外し不可能、揮発性/不揮発性計算機記憶媒体は、限定しないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体RAM、半導体ROM等を含む。ハードディスクドライブ(141)は通常、インタフェース(140)などの取り外し不可能メモリインタフェースを介し、システムバス(121)と接続され、磁気ディスクドライブ(151)及び光ディスクドライブ(155)は通常、インタフェース(150)などの取り外し可能メモリインタフェースによってシステムバス(121)と接続される。
前述の図1に例示されるドライブ及びそれらに関連する計算機記憶媒体は、計算機(110)のための計算機可読命令、データ構造、プログラムモジュール及び他のデータの記憶装置を提供する。図1において、例えばハードディスクドライブ(141)は、オペレーティングシステム(144)、アプリケーションプログラム(145)、他のプログラムモジュール(146)及びプログラムデータ(147)をストアするように示されている。これらのコンポーネントは、オペレーティングシステム(134)、アプリケーションプログラム(135)、他のプログラムモジュール(136)、及びプログラムデータ(137)と同等か又は異なるいずれかであり得ることに留意されたい。オペレーティングシステム(144)、アプリケーションプログラム(145)、他のプログラムモジュール(146)及びプログラムデータ(147)は、それらが異なる複製物であることを最小限示すように、本明細書においては異なる番号が与えられている。ユーザは、タブレット又は電子デジタイザ(164)、マイクロフォン(163)、キーボード(162)及び一般にマウス(161)、トラックボール又はタッチパッドとして呼ばれるポインティング装置などの入力装置を介し、計算機(110)にコマンド及び情報を入力できる。図1に表示されない別の入力装置は、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ又はその他を含み得る。これら及び他の入力装置は多くの場合、システムバスに接続されるユーザ入力インタフェース(160)を介し、処理ユニット(120)と接続されるが、パラレルポート、ゲームポート又はユニバーサルシリアルバス(USB)のような別のインタフェース及びバス構造によっても接続され得る。モニタ(191)又は別のタイプの表示装置もまた、ビデオインタフェース(190)などのインタフェースを介し、システムバス(121)に接続される。モニタ(191)もまた、タッチスクリーンパネル又はその他と一体化され得る。モニタ及び/又はタッチスクリーンパネルが、タブレットタイプのパーソナル計算機などの計算機装置(110)が組み込まれる筐体に、物理的に接続され得ることを留意されたい。追加すると、計算装置(110)などの計算機はまた、スピーカ(195)及びプリンタ(196)などの他の周辺出力装置も含み得、これらは出力周辺インタフェース(194)又はその他を介し接続され得る。
計算機(110)は、リモートコンピュータ(180)などの1つ以上のリモート計算機との論理的な接続を使用し、ネットワーク環境において作動できる。リモートコンピュータ(180)は、パーソナル計算機、サーバ、ルータ、ネットワークPC、ピア装置又は他の一般的なネットワークノードであり得、図1に例示されたのはメモリ記憶装置(181)だけであるが、通常、計算機(110)に関連する前述の要素の多数又はすべてを含む。図1に示される論理的な接続は、ローカルエリアネットワーク(LAN)(171)及び広域ネットワーク(WAN)(173)を含むが、別のネットワークもまた含み得る。そのようなネットワーク環境は、オフィス、企業全体の計算機ネットワーク、イントラネット及びインターネットにおいて一般的である。
LANネットワーク環境において使用されるとき、計算機(110)は、ネットワークインターフェース又はアダプタ(170)を経由し、LAN(171)に接続される。WANネットワーク環境において使用されるとき、計算機(110)は通常、インターネットなどのWAN(173)において通信を確立するためのモデム(172)又は別の手段を含む。内蔵又は外付けであり得るモデム(172)は、ユーザ入力インタフェース(160)又は別の適切なメカニズムを介し、システムバス(121)に接続され得る。ネットワーク環境においては、計算機(110)又はその一部に関連して表示されるプログラムモジュールは、リモートメモリ記憶装置にストアされ得る。制限ではなく例として、図1は、メモリ装置(181)に常駐するリモートアプリケーションプログラム(185)を示す。表示されたネットワーク接続が例示的であって、計算機間の通信リンクを確立する他の手段が使用され得ることが十分に理解されよう。
高速起動
本明細書に記載される技術の種々の特徴は、計算機装置を停止状態から短時間に起動する技術に方向付けられ、計算機装置を短時間に再起動することを含む。実装の一例においては、本技術の一部は、半導体不揮発性RAM記憶装置からデータを読み出すことができ、特にディスクが停止状態から回転開始する必要がある場合、ディスクからデータをリトリーブするよりも高速である。しかし、理解されるように、本明細書に記載される高速起動技術は通常、ハードディスクから(現在の起動時間に対して)はるかに短時間に起動する体験も提供する。そのような本明細書に述べられるいくつかの例は、非限定的であって、本発明は一般にコンピューティングにおいて利益及び利点を提供する多様な方法が使用され得る。
オペレーティングシステム全体に対する毎回の起動時、計算機器は一般に、多くの同等な初期化を幾重にも実行する。反復されるこれらの初期化の中には、相対的に時間を必要とし得るものがある。本明細書に記載される高速起動メカニズムは、例えば、計算機器の初期セットアップの間、少なくとも初期化処理の1部を一度だけ実行させ、その後、その初期化状態の結果を不揮発性形式で存続することによって、時間を使用するこれらの初期化処理の数を減らすことを試みる。それらを毎回再計算するのでなく、むしろその後の起動において、これらの存続された状態を直ちにリストアすることによって、起動時間の大部分が除外される。
起動の間、使用されるコンポーネントは、動的データ及び静的データの双方を有することが留意されるべきであって、本明細書に使用される「静的」は、時折変更され得るが、起動の間は通常、変更されないデータを表わす。容易に正しく評価され得るように、動的な状態データをキャプチャし、リストアすることは、破損したシステムをもたらす。例えば、ファイルシステムは、クラスタビットマップのようなメタデータを含み、システムが起動され、使用されるとき、新しいファイルが生成され、古いファイルが削除され、既にキャプチャされたクラスタビットマップは、最新状態として不正になる。
一般に、本明細書に記載された高速起動技術によって、起動時間に作動するコンポーネントは、従来通り自己の動的データを列挙させる間、それらの静的データを保存し、リストアする。個々のコンポーネントは、何がそれらの静的及び動的な状態かを知っているので、高速起動プロシージャの間、コンポーネントはそれらの静的状態を識別し、単にそれらの静的状態のデータをリストアする間、動的初期化/動的状態のデータの列挙を実行できる。この様にして、遅い起動のシーケンスの間、発生する反復的な初期化の多くは排除される。
コンポーネントの中には、静的データを識別及び/又は保存するための記述されていないレガシーコンポーネントであり得るか、又は別の理由のために、所与の高速起動スキーマに関与しない選択をし得るものもある。関与と関与しないコンポーネントとの混合を可能にするために、高速起動を意識するそれらのコンポーネントだけが、APIを呼び出すことによって関与するようなAPIメカニズムが提供されるが、関与しないレガシーコンポーネントやその他は、提供される本機能性を無視する。
更にコンポーネントは、相互依存性を有し得るので、初期化は複数のパスで行われ、そのような複数フェーズの初期化は、Windows(登録商標)ベースのオペレーティングシステムにおいて既に構造化されている。例えば、NTカーネルにおいては、(例えば、オブジェクト、セキュリティ、プロセス、PnP、監視、カーネル、メモリ管理、レジストリなど)多様なカーネルコンポーネントは、異なる初期化フェーズにおいて呼び出される初期化のエントリポイントを有する。初期化フェーズそれぞれにおいては、コンポーネントは、以前のフェーズにおける別のコンポーネントの初期化の依存性に従って何を初期化すべきかを決定する。
初期化フェーズそれぞれにおいて高速起動に関与するために、コンポーネントは、その初期化のどれが時間がかかるか及び/又は初期化が1回、実行され、結果がセーブされ得るか否かを決定できる。この情報は、新しいコンポーネントがインストールされるときか、又は計算機オペレーティングシステム及びそのコンポーネントが初めてセットアップされるときなど、様々なときに高速起動基盤環境に対して提供され得る。この目的を達成するために、デバイスインストーラ又はその他が、高速起動の状態情報のためのカーネルコンポーネントを列挙し、不揮発性形式で状態情報をセーブするためにメモリマネージャ/ファイルシステムコンポーネントを呼び出す。
例えば、一般に図2に示されるように、カーネルコンポーネントそれぞれ(例えば(202))は、オペレーティングシステムのセットアップの終わりに高速起動基盤環境(206)の(デバイスインストーラに関連するか又はそれを含む)セットアップコンポーネント(204)によって呼び出され得る。一実装においては、呼び出しは、例えば、アプリケーションプログラムインタフェース(API)であるAPIライブラリ(210)へのエントリポイント(単数又は複数)を特定するデータ(208)をコンポーネント(202)に提供する。コンポーネント(202)は、そのエントリポイントを介し、セーブされ得るコード及び/又は静的状態を含む記憶場所を特定でき、それによってこれらの記憶場所が、その後の高速起動セッション中にリストアされ得る。代替として、コンポーネント(202)は、そのような呼び出しに応答し、(例えばコンポーネント(202)によって理解されるデータ構造の)データを直接に提供できる。記憶場所及び/又はコード又はデータ自体は、(送信されるものとして)(212)及び(存続するものとして)(214)のようにラベル付けされる「静的データ」ブロックによって図2に示される。高速起動イメージを含む静的コード及び/又はデータ(214)は、NVRAMのような不揮発性記憶装置(216)に維持されるか、又は代替として、ハードディスクのような別のタイプの記憶媒体の全部又は一部に維持され得る。
一旦、このデータが存続されると、その後の起動中、カーネルコンポーネントそれぞれが、初期化のために、例えば異なるフェーズにおいて呼び出されるとき、これらの記憶場所(又はデータ自体)が、コンポーネントに対して使用可能になる。結果として、関与するコンポーネントそれぞれの時間を必要とする初期化のうち少なくとも特定の部分が省略され得る。関与しないコンポーネントに対しては、従来の初期化は省略され得ず、それによってコンポーネントは、通常の長い起動と同等の時間を必要とすることに留意されたい。
一実装において、カーネルコンポーネントのための新しいインタフェース及び多様なコンポーネントにおけるいくつかの新しい支援用基盤環境を提供する。コード及び/又はデータ(又はコード/データ自体)を含むメモリブロックのリストを返答できるように、カーネルコンポーネントそれぞれを呼び出すことを許すための1つのカーネルコンポーネント・インタフェースが提供される。これらのメモリブロックは、不揮発性記憶装置(216)にセーブされ、現代の計算機装置のハードディスク又はNVRAM記憶装置又は将来の計算機装置の同様のものに高速起動状態イメージファイルを含み得る。
高速起動状態イメージを構築するために、オペレーティングシステムのセットアッププログラムによって開始されるとき、デバイスインストーラによって、静的データを存続するためのこのインタフェースが、呼び出され得る。本インタフェースはまた、新しいコンポーネントがインストールされるときは常に呼び出され得る。関与するコンポーネントそれぞれの役割は、その後の高速起動の起動時間に有益にするために、どのデータがセーブされる必要があるかを決定することである。進展の間、例えば関与するコンポーネントそれぞれは、起動のボトルネックを特定するために、その初期化コードパスに関するコードプロファイリングを実行できる。
例えばフェーズ毎を基本として存続されるようにコンポーネントが依頼されるメモリブロックのリストを、コンポーネントが受信できるための別のインタフェースが提供される。このインタフェースは、例えばWindows(登録商標)ベースのオペレーティングシステムにおいて、既に存在する既存のフェーズ初期化インタフェースの修正版に対応可能なことを留意されたい。静的状態データをリトリーブする能力によって、コンポーネントは、時間を必要とする初期化部分のいくつかを省略できる。支援インタフェースもまた提供されていて、それによってコンポーネントは、高速起動が進行中かどうかを見出し得る。このインタフェースは、コンポーネントが、セーブされた高速起動状態情報からキャッシュされた情報をいつ使用するか又は使用しないかを知り得るように提供される。更に、メモリマネージャコンポーネントなどのカーネルコンポーネント及び場合によっては他のコンポーネントは、高速起動状態のメモリブロックの識別及び/又はセーブを容易にする新規のユーティリティAPIをエキスポートできる。例えば、高速起動状態情報を含むメモリ割当てにタグ付け可能なように、既存のメモリ割当てAPIが拡張され得る。
図3は、不揮発性記憶装置において存続するデータが、その後の高速起動動作において使用される一例を示す。一般に高速起動の間、関与するコンポーネントが呼ばれるとき、コンポーネントは、(例えば、ハードディスク起動のためのローダコンポーネント(319)又はNVRAM起動のためのBIOSによって、メモリにセットされる)高速起動フラグ(318)を認識する。コンポーネント(例えば(202))は次に、現在の起動フェーズに関する以前にキャッシュされたその状態データを受信するために、高速起動基盤環境(206)のAPIライブラリ(210)を呼び出す。コンポーネントが解凍されるか又は不揮発性記憶装置(216)からRAM(132)に別の方法で送信されたその静的データへのポインタを実際に受信できることに留意されたい。例えば、コンポーネントの多様な静的データのいくつか又はすべては、高速起動イメージとしてストアされ得、スタートアップ時、解凍されるか又は別の方法でRAM(132)に送信され、コンポーネントそれぞれはAPI呼び出しを介し、それに対するアクセスを与えられる。
コンポーネントそれぞれ(例えば(202)〜(202))が、1フェーズ毎に一度など順に呼び出され、こうして関与するコンポーネントは、それらの静的データへのアクセスをリトリーブし、それらの動的データを列挙し得る。不揮発性記憶装置(216)からのリトリーブ時、コンポーネント(202)によって、アクセスされるRAM(132)のコンポーネント(202)のフェーズ1に関するデータ(314)を介し、これが図3に一般的に示される。高速起動基盤環境コード(320)は、APIライブラリ(210)に対する呼び出し時、そのリトリーブを処理できる。そのような高速起動を意識するコンポーネントは「このフェーズに対して必要とされないデータ」のような応答を返し得るが、高速起動スキームに関与しない(例えばレガシー)コンポーネントは、特定のフェーズに関するキャッシュされたデータを有しないコンポーネントと同様にコールバックしない。
図4Aに移ると、(典型的には)その静的状態が変更されるので、それによってコンポーネント(例えば、(202))が、そのセーブされた状態イメージのいくつか又はすべてを無効化することを高速起動基盤環境コード(206)に通知できるAPIライブラリ(210)における別のインタフェースの例が提供される。例えばユーザは、コントロールパネル及び/又はレジストリとの対話を介し、コンポーネントの標準的な静的データを変更できる。コンポーネント(202)は、そのデータに対する変更を検出する。一実装においては、無効化されたデータ(430)が返答されず、それによってコンポーネント(202)は、次の起動時、低速の起動動作においてあるように動的データと同様に静的データも列挙することを必要とし、再び有効なデータをキャッシュする。
代わりに図4Bに示されるように、送信される新しい静的状態データ(446)及び存続する(状態データ448)により、キャッシュされた高速起動データの無効化は、(例えば図5の)サイレント/バックグラウンドのスレッド(560)などを介して状態の再キャプチャ動作を開始でき、これは例えば、前述のようなオペレーティングシステムのセットアッププロセスによって実行される状態キャプチャと同様に作動可能である。任意の選択肢においては、通常静的であるデータに対する変更が発生したとき、以前にキャッシュされた状態データのうち少なくとも変更された部分はもはや使用されない。
図5に一般に示されるそのようなバックグラウンド処理は、コンポーネントが変更を検出したときに実行される必要があるだけでなく、それよりもむしろ別の時にも実行され得る。現在の起動時間の一部は、例えばユーザによって加えられ得る装置(例えばIDEハードドライブ)を検索するための遅れによるものであって、(2つのIDEチャンネルを有する計算機は、設置される1〜4個の装置を有し得、)そのような装置それぞれはクエリ時、応答するために約1秒が加えられる。しかし、内蔵型ドライブは、多くの場合、追加又は移動されず、その結果、起動の間、応答するための機会をそれぞれ与えるよりもむしろ、その後のバックグラウンド動作(560)によって任意の変更が検出され得る。
更に、コンポーネントは適切に記述されないこともあり得、またその静的データに対する変更も正しく検出しないこともあり得る。コンポーネントそれぞれが、その静的データを再列挙するように(例えばランダム又はラウンドロビンで)時折リクエストするバックグラウンドスレッド/処理(560)(図5)は、見逃された変化によるデータ破損を回避するために使用される。更に、コンポーネントのいくつか又はすべてが、高速起動の代わりに、遅い起動の全列挙を時折被ることがあり得、静的データの不正が疑われる場合、例えば、コンポーネントの失敗から変更されたデータを無効化にするために、ユーザ又は(ユーティリティなどの)他のメカニズムが遅い起動をリクエストできる。
前述のように、NVRAMなどいくつかの形式の半導体不揮発性記憶装置に高速起動状態情報をストアできる。そのような装置に対しては、例えばオペレーティングシステムがコントロールを取得する前にBIOSが、NVRAMから主記憶装置に必要とされるあらゆる高速起動状態情報をどのようにリトリーブし、リストアするかを指定するための新規の標準BIOSインタフェースが確立され得る。
図6は、ハードドライブ上のファイルとしてストアされた高速起動の状態イメージを有するシステムと、NVRAMにストアされた高速起動の状態イメージを有する新しいシステムとの間のコードパスの相違の一例を示す。計算装置(例えばそのBIOS)は、それがNVRAM又はディスクのいずれから起動しているかを知り得ることに留意されたい。
ステップ(602)は、ハードディスクの起動を示し、ローダのプロセス、例えばNTLDRをロードして実行することによって開始する。ステップ(604)において、ローダは、有効なハイバネーションファイルをチェックし、存在する場合、(ACPIのS4スリープ状態の)ハイバネーションからリジュームする。存在しない場合、ローダは、存続する高速起動イメージの存在をチェックするステップ(608)に続く。
ステップ(608)において見出されない場合、システムは低速(標準時間)の起動を実行する。前述のようなバックグラウンド動作において、関与するコンポーネントからの高速起動情報の取得などによって、次回高速起動することがまだ可能なことに留意されたい。例えばこれは、いくつかの理由のために高速起動イメージが削除された場合に生じ得る。
代わりにステップ(608)において、起動ローダプロセスが、高速起動イメージを探し、見出した場合、そのイメージをメモリにロードするために、例えばBIOSコールを使用してその高速起動状態情報をリストアする。
ステップ(614)は、RAM(132)の最終的な場所にイメージを解凍(又は送信)することを示す。少なくともそれらの永続的記憶装置のいくつかとしてNVRAMを有する将来の機器に対してBIOSは、ステップ(602)〜(610)を必要とせずにロードを実行するために、ステップ(612)と(614)とを実行することに留意されたい。ステップ(616)において、高速起動コード(例えばディスパッチャ)は次に、図3を参照し一般に前述したように、それを初期化するためのシステムコンポーネントそれぞれを呼び出す。
理論的には、NVRAMにストアされる高速起動状態イメージ及び関連するカーネルコンポーネントの大部分又はすべてを使用すると、停止状態からの高速起動時間は、(通常イメージをNVRAMからリストアするための時間にS3リジューム時間と追加的な動的状態初期化を加えた)S3リジューム時間に近づき得る。既存技術を使用すると、(コンテンツ全体をRAMへリトリーブするのに1秒未満を要するPCIバス上に直接ある64MBのNVRAMと仮定し、)これはおよそ5秒であり得る。
本発明は、様々な修正及び代替構造を受け入れられる余地があるが、特定の本発明の例示された実施形態を図面に表示し、詳細に前述した。しかし、本発明を開示された特定の形式に制限するという意図はないことが理解されるべきであって、それとは逆に意図することは、本発明の趣旨と範囲内に納まる全ての修正、代替構造及び同等物を本発明が含むということである。
本発明の様々な特徴が組み込まれ得る汎用計算環境の実例を示す。 例えば、システムコンポーネントのセットアップの間、静的データを存続するためのアーキテクチャの一例を示すブロック図である。 例えば、起動動作の間、静的データへのアクセスをシステムコンポーネントに提供するためのアーキテクチャの一例を示すブロック図である。 変更時、コンポーネントの静的データを無効化するためのアーキテクチャの一例を示すブロック図である。 変更時、コンポーネントの変化に続く静的データを変更するためのアーキテクチャの一例を示すブロック図である。 バックグラウンド動作の間、システムコンポーネントの静的データを取得するためのアーキテクチャの一例を示すブロック図である。 ハードディスク又はNVRAMからの高速起動プロセスの一例を示すブロック図である。

Claims (20)

  1. 計算機実行可能命令を有する少なくとも1つの実体のある計算機可読媒体であって、前記命令が計算機装置上で実行されるとき、計算機装置をして、
    システムコンポーネントのための静的データ及び/又はコードを維持するステップと、
    装置の起動の間、前記静的データ及び/又はコードへのアクセスを前記システムコンポーネントに提供するステップと、を実行させる計算機可読媒体。
  2. 前記静的データ及び/又はコードへのアクセスを前記システムコンポーネントに提供するステップが、高速起動基盤環境のアプリケーションプログラミングインターフェースセットへのエントリポイントを前記システムコンポーネントに提供するステップを含むことを特徴とする請求項1記載の計算機可読媒体。
  3. 前記静的データ及び/又はコードが、半導体メモリにイメージとして維持されることを特徴とする請求項1記載の計算機可読媒体。
  4. 前記静的データ及び/又はコードが、ハードディスクドライブにイメージとして維持されることを特徴とする請求項1記載の計算機可読媒体。
  5. 前記静的データ及び/又はコードへのアクセスを前記システムコンポーネントに提供するステップが、前記装置の起動の間の初期化のために前記システムコンポーネントを呼び出すステップを含むことを特徴とする請求項1記載の計算機可読媒体。
  6. 前記静的データ及び/又はコードへのアクセスを前記システムコンポーネントに提供するステップが、複数の起動フェーズのうち少なくとも2つのフェーズの間、前記システムコンポーネントを呼び出すステップを含むことを特徴とする請求項5記載の計算機可読媒体。
  7. 更に、高速起動基盤環境において前記システムコンポーネントからの呼び出しを受信するステップであって、前記呼び出しが、その後の起動時に使用するために存続している前記静的データ及び/又はコードへのアクセスを前記高速起動基盤環境に提供するもの、を含む計算機実行可能命令を有する請求項1記載の計算機可読媒体。
  8. 更に、高速起動基盤環境において前記システムコンポーネントからの呼び出しを受信するステップであって、前記呼び出しが、現在の状態の前記静的データをその後の起動時に使用しないように前記静的データを無効化することに対応するもの、を含む計算機実行可能命令を有する請求項1記載の計算機可読媒体。
  9. 更に、その後の起動時に使用するために存続している前記静的データ及び/又はコードへのアクセスを高速起動基盤環境に提供するために、バックグラウンド動作において前記システムコンポーネントと通信するステップを含む計算機実行可能命令を有する請求項1記載の計算機可読媒体。
  10. 計算機システムにおいて実施される方法が、
    停止状態から計算機装置を起動するステップであって、システムコンポーネントを初期化するステップを含むものと、
    前記システムコンポーネントの初期化の一部として前記システムコンポーネントのための既に存続する静的データ及び/又はコードへのアクセスを前記システムコンポーネントに提供するステップと、を含む方法。
  11. 前記システムコンポーネントのための既に存続する前記静的データ及び/又はコードが、インストール動作の間に存続させられることを特徴とする請求項10記載の方法。
  12. 更に、前記システムコンポーネントの初期化の一部として、前記システムコンポーネントにおける動的データを列挙するステップを含む請求項10記載の方法。
  13. 前記静的データ及び/又はコードを前記システムコンポーネントに提供するステップが、前記静的データ及び/又はコードを不揮発性ストレージから揮発性メモリに送信するステップを含むことを特徴とする請求項10記載の方法。
  14. 前記静的データ及び/又はコードへのアクセスを前記システムコンポーネントに提供するステップが、高速起動基盤環境のアプリケーションプログラミングインターフェースセットへのエントリポイントを前記システムコンポーネントに提供するステップと、高速起動動作を表示するフラグを設定するステップと、を含むことを特徴とする請求項10記載の方法。
  15. 前記静的データへのアクセスを前記システムコンポーネントに提供するステップが、複数の起動フェーズの少なくとも2つのフェーズの間、前記システムコンポーネントを呼び出すステップを含むことを特徴とする請求項10記載の方法。
  16. 計算機装置におけるシステムが、
    高速起動基盤環境であって、
    a)第1の時間において、システムコンポーネントのための静的データ及び/又はコードを存続する第1のメカニズムと、
    b)第1の時間の後で前記システム装置の起動の間である第2の時間において、前記静的データ及び/又はコードへのアクセスを前記システムコンポーネントに提供する第2のメカニズムを含むもの、を含む計算機装置システム。
  17. 前記第1のメカニズムが、前記静的データ及び/又はコードを存続するためのインターフェースセットを前記システムコンポーネントに提供するステップを含む前記システムコンポーネントを登録する、セットアップコンポーネントを含むことを特徴とする請求項16記載のシステム。
  18. 前記第2のメカニズムが、前記インターフェースセット中の1つのインタフェースを介し、前記システムコンポーネントと通信するコードを含むことを特徴とする請求項17記載のシステム。
  19. 前記高速起動基盤環境が、前記静的データを無効化するための第3のメカニズムを含むことを特徴とする請求項17記載のシステム。
  20. 前記高速起動基盤環境が、静的データ及び/又はコードを前記システムコンポーネントから収集するためのバックグラウンドメカニズムを含むことを特徴とする請求項17記載のシステム。
JP2008534707A 2005-10-06 2006-10-03 オペレーティングシステムの停止状態からの高速起動 Active JP4459290B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/245,629 US7409537B2 (en) 2005-10-06 2005-10-06 Fast booting an operating system from an off state
PCT/US2006/039127 WO2007044516A1 (en) 2005-10-06 2006-10-03 Fast booting an operating system from an off state

Publications (3)

Publication Number Publication Date
JP2009512020A true JP2009512020A (ja) 2009-03-19
JP2009512020A5 JP2009512020A5 (ja) 2009-10-01
JP4459290B2 JP4459290B2 (ja) 2010-04-28

Family

ID=37912167

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008534707A Active JP4459290B2 (ja) 2005-10-06 2006-10-03 オペレーティングシステムの停止状態からの高速起動

Country Status (8)

Country Link
US (1) US7409537B2 (ja)
EP (1) EP1934714A4 (ja)
JP (1) JP4459290B2 (ja)
KR (1) KR101292429B1 (ja)
CN (1) CN101283330B (ja)
BR (1) BRPI0616858B1 (ja)
RU (1) RU2435200C2 (ja)
WO (1) WO2007044516A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015526827A (ja) * 2012-08-30 2015-09-10 マイクロソフト テクノロジー ライセンシング,エルエルシー Bpramを使用したソフトウェア・アプリケーションのレイアウトおよび実行
JP2015530662A (ja) * 2012-08-30 2015-10-15 マイクロソフト テクノロジー ライセンシング,エルエルシー Bpramを使用したオペレーティング・システムのレイアウトおよび実行

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US7624260B2 (en) * 2006-05-04 2009-11-24 Qnx Software Systems Gmbh & Co. Kg System executing a fast boot wake-up
TW200842569A (en) * 2007-04-24 2008-11-01 Inventec Corp Method for initiating system
DE102007044199A1 (de) * 2007-09-17 2009-04-02 Fujitsu Siemens Computers Gmbh Steuergerät für einen Massenspeicher und Verfahren zum Bereitstellen von Daten für einen Startvorgang eines Computers
US8631203B2 (en) 2007-12-10 2014-01-14 Microsoft Corporation Management of external memory functioning as virtual cache
WO2009096181A2 (en) * 2008-01-30 2009-08-06 Panasonic Corporation Secure boot with optional components method
US7900037B1 (en) 2008-02-12 2011-03-01 Western Digital Technologies, Inc. Disk drive maintaining multiple logs to expedite boot operation for a host computer
US8082433B1 (en) 2008-02-12 2011-12-20 Western Digital Technologies, Inc. Disk drive employing boot disk space to expedite the boot operation for a host computer
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US8032707B2 (en) 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
US8230208B2 (en) * 2009-04-20 2012-07-24 Intel Corporation Booting an operating system of a system using a read ahead technique
TWI421769B (zh) * 2009-12-28 2014-01-01 Apacer Technology Inc 增加電子裝置開機速度之方法
US10394570B2 (en) * 2010-02-26 2019-08-27 Hp Printing Korea Co., Ltd. Method of generating boot image for fast booting and image forming apparatus for performing the method, and method of performing fast booting and image forming apparatus for performing the method
US8656149B2 (en) 2010-06-07 2014-02-18 International Business Machies Corporation Rapid activation of service management processor subsystem for server device
WO2012036665A1 (en) * 2010-09-13 2012-03-22 Hewlett-Packard Development Company, L.P. Operating speed of a component
US8719559B2 (en) 2010-10-13 2014-05-06 International Business Machines Corporation Memory tagging and preservation during a hot upgrade
US9405668B1 (en) 2011-02-15 2016-08-02 Western Digital Technologies, Inc. Data storage device initialization information accessed by searching for pointer information
CN102693137A (zh) * 2011-03-24 2012-09-26 昆达电脑科技(昆山)有限公司 用于缩短开机时间的驱动程序加载与初始化方法
US20120311312A1 (en) * 2011-05-31 2012-12-06 Broadcom Corporation Fast Boot Via State Recreation
US9286079B1 (en) 2011-06-30 2016-03-15 Western Digital Technologies, Inc. Cache optimization of a data storage device based on progress of boot commands
US9058126B2 (en) * 2012-09-10 2015-06-16 Texas Instruments Incorporated Nonvolatile logic array with retention flip flops to reduce switching power during wakeup
US9250922B2 (en) 2013-02-28 2016-02-02 Qualcomm Incorporated Method and apparatus for prefetching peripheral device drivers for smart phones and other connected devices prior to HLOS boot
US9477484B2 (en) * 2013-07-23 2016-10-25 Samsung Electronics Co., Ltd. System and method for boot acceleration of a data processing system wherein a nonvolatile memory is pre-configured before boot time
US9588774B2 (en) * 2014-03-18 2017-03-07 International Business Machines Corporation Common boot sequence for control utility able to be initialized in multiple architectures
US9582295B2 (en) 2014-03-18 2017-02-28 International Business Machines Corporation Architectural mode configuration
US9916185B2 (en) 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities
US10114661B2 (en) 2014-11-07 2018-10-30 Roku, Inc. System and method for fast starting an application
US10037071B2 (en) 2015-02-25 2018-07-31 Texas Instruments Incorporated Compute through power loss approach for processing device having nonvolatile logic memory
CN105117246A (zh) * 2015-08-04 2015-12-02 晶晨半导体(上海)有限公司 电子设备快速启动的方法
US10452594B2 (en) 2015-10-20 2019-10-22 Texas Instruments Incorporated Nonvolatile logic memory for computing module reconfiguration
TWI569129B (zh) 2015-12-01 2017-02-01 財團法人工業技術研究院 系統暫停方法、系統回復方法及應用其之電腦系統
US10331203B2 (en) 2015-12-29 2019-06-25 Texas Instruments Incorporated Compute through power loss hardware approach for processing device having nonvolatile logic memory
KR20170091436A (ko) * 2016-02-01 2017-08-09 삼성전자주식회사 영상 표시 장치 및 그 동작방법
US10452561B2 (en) 2016-08-08 2019-10-22 Raytheon Company Central processing unit architecture and methods for high availability systems
US10289421B2 (en) * 2017-02-17 2019-05-14 Dell Products, L.P. Booting of IHS from SSD using PCIe
US11204715B1 (en) * 2018-09-25 2021-12-21 Amazon Technologies, Inc. Derived data generation and storage
US11550593B2 (en) 2019-01-08 2023-01-10 Dell Products L.P. Information handling system quick boot
US11010249B2 (en) 2019-01-08 2021-05-18 Dell Products L.P. Kernel reset to recover from operating system errors
US11194589B2 (en) 2019-01-08 2021-12-07 Dell Products L.P. Information handling system adaptive component reset
US11126420B2 (en) 2019-01-08 2021-09-21 Dell Products L.P. Component firmware update from baseboard management controller
US11003483B1 (en) 2019-06-28 2021-05-11 Amazon Technologies, Inc. Parameterized launch acceleration for compute instances
CN110457899B (zh) * 2019-08-12 2021-06-01 北京无线电测量研究所 一种操作系统保护系统及方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098158A (en) * 1997-12-18 2000-08-01 International Business Machines Corporation Software-enabled fast boot
US6101601A (en) 1998-04-20 2000-08-08 International Business Machines Corporation Method and apparatus for hibernation within a distributed data processing system
US7134133B1 (en) 1999-11-08 2006-11-07 Gateway Inc. Method, system, and software for creating and utilizing broadcast electronic program guide templates
US20030233534A1 (en) * 2002-06-12 2003-12-18 Adrian Bernhard Enhanced computer start-up methods
US7017037B2 (en) * 2002-06-27 2006-03-21 Microsoft Corporation Apparatus and method to decrease boot time and hibernate awaken time of a computer system utilizing disk spin-up-time
US7036040B2 (en) * 2002-11-26 2006-04-25 Microsoft Corporation Reliability of diskless network-bootable computers using non-volatile memory cache
CN1282059C (zh) * 2003-03-12 2006-10-25 联想(北京)有限公司 一种加快操作系统的引导方法
US7430661B2 (en) * 2004-09-09 2008-09-30 Hewlett-Packard Development Company, L.P. System and method of storing user data in a partition file or using a partition file containing user data

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015526827A (ja) * 2012-08-30 2015-09-10 マイクロソフト テクノロジー ライセンシング,エルエルシー Bpramを使用したソフトウェア・アプリケーションのレイアウトおよび実行
JP2015530662A (ja) * 2012-08-30 2015-10-15 マイクロソフト テクノロジー ライセンシング,エルエルシー Bpramを使用したオペレーティング・システムのレイアウトおよび実行
US9952879B2 (en) 2012-08-30 2018-04-24 Microsoft Technology Licensing, Llc Application pre-layout in byte-addressable persistent random access memory

Also Published As

Publication number Publication date
WO2007044516A1 (en) 2007-04-19
CN101283330B (zh) 2012-06-06
BRPI0616858B1 (pt) 2018-09-25
CN101283330A (zh) 2008-10-08
RU2008113217A (ru) 2009-10-10
JP4459290B2 (ja) 2010-04-28
EP1934714A1 (en) 2008-06-25
US7409537B2 (en) 2008-08-05
US20070083743A1 (en) 2007-04-12
KR101292429B1 (ko) 2013-08-07
KR20080052625A (ko) 2008-06-11
BRPI0616858A2 (pt) 2011-07-05
RU2435200C2 (ru) 2011-11-27
EP1934714A4 (en) 2009-01-14

Similar Documents

Publication Publication Date Title
JP4459290B2 (ja) オペレーティングシステムの停止状態からの高速起動
JP5606633B2 (ja) オペレーティングシステム(os)不在サービス環境においてファームウェアをプロビジョニングする方法
US9489029B2 (en) Operating system independent network event handling
US7631173B2 (en) Method and system for performing pre-boot operations from an external memory including memory address and geometry
US7082495B2 (en) Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory
US7620773B2 (en) In-line non volatile memory disk read cache and write buffer
KR101702700B1 (ko) 고속 컴퓨터 시동
US10061595B2 (en) Fast computer startup
US9563439B2 (en) Caching unified extensible firmware interface (UEFI) and/or other firmware instructions in a non-volatile memory of an information handling system (IHS)
US7707400B2 (en) Direct computing experience
US7162629B2 (en) Method to suspend-and-resume across various operational environment contexts
US11841773B2 (en) Persistence of learned profiles

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090813

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090813

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20090813

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20090903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100208

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100209

R150 Certificate of patent or registration of utility model

Ref document number: 4459290

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130219

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140219

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250