JP5860543B2 - ブートデータのロード - Google Patents

ブートデータのロード Download PDF

Info

Publication number
JP5860543B2
JP5860543B2 JP2014538764A JP2014538764A JP5860543B2 JP 5860543 B2 JP5860543 B2 JP 5860543B2 JP 2014538764 A JP2014538764 A JP 2014538764A JP 2014538764 A JP2014538764 A JP 2014538764A JP 5860543 B2 JP5860543 B2 JP 5860543B2
Authority
JP
Japan
Prior art keywords
volatile memory
boot
data
boot data
nonvolatile memory
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.)
Active
Application number
JP2014538764A
Other languages
English (en)
Other versions
JP2014534521A (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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2014534521A publication Critical patent/JP2014534521A/ja
Application granted granted Critical
Publication of JP5860543B2 publication Critical patent/JP5860543B2/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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

コンピューティング装置は、比較的遅いアクセスタイムを有するハードディスクドライブ(HDD)といった低速記憶装置を含み得るものである。該低速記憶装置は、ボトルネックとして振る舞い、コンピューティング装置の性能に影響を与え得るものである。性能を改善するために、コンピューティング装置は、フラッシュメモリといった比較的高速のアクセスタイムを有する高速記憶装置を含むことが可能である。しかし、該高速記憶装置は、一記憶単位につき低速記憶装置よりも一層高価なものとなる。
その結果として、高速記憶装置は、低速記憶装置よりも一層小さな記憶容量を有するものとなり得る。この一層小さな記憶容量を有する高速記憶装置は、例えば頻繁にアクセスされるデータのために、コンピューティング装置によって目一杯使用されるされるようになった。コンピューティング装置はまた、追加の記憶容量が必要となった場合に該頻繁にアクセスされるデータの一部を低速記憶装置に格納することが可能である。高速記憶装置に格納することができる頻繁にアクセスされるデータのパーセンテージを増大させれば、コンピューティング装置の性能を一層改善することが可能となる。
ブートデータをロードするための装置の例示的なブロック図である。 ブートデータをロードするための装置のもう1つの例示的なブロック図である。 ブートデータをロードするための命令を含むコンピューティング装置の例示的なブロック図である。 ブートデータをロードするための方法の例示的なフローチャートである。 ブートデータをロードするための方法の例示的なフローチャートである。
以下の説明では、本実施形態の完全な理解を提供するために特定の細部を提示する。しかし、当業者には理解されるように、該実施形態はかかる特定の細部を伴わなくとも実施することが可能である。例えば、不要な細部のために実施形態が不明確なものとならないようにするために複数のシステムをブロック図で示すことが可能である。別の例では、実施形態が不明確なものとなるのを回避すべく、周知のプロセス、構造、及び技術を不要な細部を伴うことなく示すことが可能である。
コンピューティング装置は、ハードディスクドライブ(HDD)等の低速記憶装置に加えて、フラッシュメモリ等の高速記憶装置を含むことが可能である。高速記憶装置は、低速記憶装置よりも低レイテンシを有することが可能なものである。コンピューティング装置は、より頻繁にアクセスされるデータを低速記憶装置ではなく高速記憶装置に格納することにより性能を向上させることが可能である。例えば、コンピューティング装置は、高速記憶装置をキャッシュとして使用すること又はブートデータを格納するために使用することが可能である。しかし、高速記憶装置は、コンピューティング装置により使用されている頻繁にアクセスされるデータの全てを格納するだけの十分な記憶容量を有していない可能性がある。このため、高速記憶装置の記憶容量は、コンピューティング装置の性能のボトルネックとして振る舞い得るものである。更に、高速記憶装置は一般に、一記憶単位につき低速記憶装置よりも遙かに高価なものであり、高速記憶装置の記憶容量は一般に増大させることができない。
例えば、高速記憶装置からブートデータをロードすることによりコンピューティング装置をブートさせると、低速記憶装置からロードする場合とは対照的に、コンピューティング装置のブート時間を短縮することが可能となる。該ブートデータは、高速記憶装置の大きなパーセンテージを占有し得るものである。例えば、ブートデータは4ギガバイト(GB)となり、及び高速記憶装置の記憶容量は16ギガバイトとなり得る。高速記憶装置の所定部分をブートデータのために予約することが可能であるが、該ブートデータのサイズは変動し得るものである。このため、該所定部分のサイズは伝統的に大きく設定され、その結果として高速記憶装置の記憶容量の一部が浪費されることになる。例えば、ブートデータは4GBであるが、前記所定部分は5GBであり、1GBの記憶容量が使用不能となる。
更に、コンピューティング装置が頻繁にブートされない場合には、該所定部分の予約は、高速記憶装置の記憶容量を効率的に使用するものとはならない。一方、高速記憶装置全体をキャッシュとして使用可能とした場合には、ブートデータが時間と共に上書きされることになる。その結果として、コンピューティング装置は、次のブート時に高速記憶装置からブートデータをロードすることができなくなる。代替的に、コンピューティング装置は、次のブート時に低速記憶装置からブートデータをロードすることが可能である。
本発明の実施形態は、頻繁にアクセスされるデータのために使用することができる高速記憶装置の記憶容量を増大させると共に、依然としてコンピューティング装置が該高速記憶装置からブートデータをロードすることを可能とするものである。例えば、コンピューティング装置は、高速記憶装置の一部からブートデータをロードし、次いで該高速記憶装置の該ブートデータを格納している部分を他のタイプのデータ(例えばキャッシュデータ)を目的とするものにすることを可能にする。次いで、コンピューティング装置の電源が落とされる前に、次回のブート処理に備えて高速記憶装置にブートデータを再び書き込むことが可能である。
図1Aは、ブートデータをロードするための装置100の例示的なブロック図である。該装置100の実施形態は、ノートブックコンピュータ、デスクトップコンピュータ、オールインワンシステム、スレートコンピューティング装置、ポータブルリーディング装置、ワイヤレス電子メール装置、及び携帯電話等を含むことが可能なものである。図1Aの実施形態では、装置100は、プロセッサ110、キャッシュモジュール120、ブートモジュール130、及び第1の不揮発性メモリ140を含む。該第1の不揮発性メモリ140は更に、第1の部分142を含む。、
該プロセッサ110は、CPU、GPU、又は第1の不揮発性メモリ140からの命令の読み出し及び実行を行うのに適したマイクロプロセッサ及び/又は後述するモジュール120,130の機能を実行するよう構成された電子回路とすることが可能である。該第1の不揮発性メモリ140は、電力が供給されていない場合であっても格納された情報を保持し続ける電子的、磁気的、光学的、又はその他の物理的な記憶装置といった、1つ以上の不揮発性のマシン読み取り可能記憶媒体とすることが可能である。該第1の不揮発性メモリ140の例として、ソリッドステートドライブ(SSD)又はフラッシュメモリが挙げられる。
モジュール120,130の各々は、例えば、後述する機能を実施するための電子回路を含むハードウェア装置を含むことが可能である。追加的又は代替的に、各モジュールは、マシン読み取り可能記憶媒体(例えば第1の不揮発性メモリ140)上にエンコードされ、及びプロセッサ110により実行される、一連の命令として実施することが可能である。実施形態によっては、モジュール120,130の一部をハードウェア装置として実施する一方、他のモジュールを実行可能命令として実施することが可能である。例えば、モジュール120,130は、装置100上で実行しているオペレーティングシステム(OS)により実行されているアプリケーションの一部として実施することが可能である。
第1の不揮発性メモリ140は、第1の部分142にブートデータを格納することになる。該ブートデータは、該装置100の最初のブート処理を完了させるために使用されることになる。例えば、装置100の不活性状態(例えばオフ状態)からの電源投入時に、装置100は、初期命令セット(リードオンリーメモリ(ROM)(図示せず)に格納されている命令等)を最初に実行することが可能である。かかる命令に基づいて、装置100は、第1の不揮発性メモリ140(第1の部分142等)から別の場所(ランダムアクセスメモリ(RAM)(図示せず)等)へブートデータをロードすることが可能である。該ブートデータは、装置100の電源投入に応じて実行されるべき命令(プログラム及び/又はオペレーティングシステム(OS)の命令等)及び/又はデータを含むことが可能である。一実施形態では、該ブートデータは、装置100上でオペレーティングシステムを起動させるために使用することが可能である。次いで、装置100は、該RAM上のブートデータを実行し及び/又は使用して、該装置100の最初のブート処理(例えばOSの起動)を完了させることが可能である。
キャッシュモジュール120は、第1の不揮発性メモリ140の第1の部分142からブートデータがロードされた後、該第1の不揮発性メモリ140の該第1の部分142にキャッシュデータを書き込むことになる。該キャッシュデータは、再び使用され又は頻繁に使用され得るデータ(例えば、アプリケーションファイル、ユーザ文書、及び/又はメタデータ等)を含むことが可能である。例えば、ソフトウェア(例えばOS)、アプリケーション、又はウェブブラウザ、又はハードウェア(プロセッサ110等)、又は別のメモリが、キャッシュデータへの高速アクセスのために該キャッシュデータを第1の部分142に格納することが可能である。該キャッシュデータは、冗長タイプ又は非冗長タイプの情報とすることが可能である。冗長タイプの情報は、別の記憶場所から取り出された第1の部分142に格納されているリードオンリーデータとすることが可能である。この場合には、第1の部分142と該別の記憶場所との両方に格納された冗長タイプの情報の複製が存在することが可能である。非冗長タイプの情報は、第1の部分142のみに格納されるデータ(例えば、ハードウェア、アプリケーション、又はユーザ等により修正され又は生成されるデータ)とすることが可能である。
ブートモジュール130は、装置100が低電力状態に移行する前に第1の不揮発性メモリ140にブートデータを書き込むことになる。該低電力状態の例として、装置100が、電源オフ状態、休止状態、又はスリープ状態になることが挙げられる。例えば、装置100が低電力状態になるというOSからの指示を受信した際に、ブートモジュール130は、該装置100の電源が落ちる前に第1の部分142にブートデータを再び書き込むことが可能である。代替的に、ブートデータは、装置100の電源が落ちる前に第1の不揮発性メモリ140の別の部分に書き込むことが可能である。一実施形態では、OSは、ブートデータが第1の不揮発性メモリ140に成功裏に転送されたことの確認を例えばブートモジュール130から受信するまで、装置100の低電力状態への移行の完了を待機することが可能である。
続いて、装置100の電源が投入された際に、第2のブート処理を開始することが可能である。上述した書き込まれたブートデータを第1の不揮発性メモリ140から再びロードして装置100の第2のブート処理を完了させることが可能である。このように、第1の不揮発性メモリ140におけるブートデータを格納する記憶場所(例えば第1の部分142)をキャッシュデータのために解放することにより、一層大量の頻繁に使用される情報を該第1の不揮発性メモリ140に格納することが可能となり、これにより装置の性能及び/又は処理速度が改善される。更に、装置100の電源断前に第1の不揮発性メモリ140にブートデータを書き戻すことにより、該装置100は、低速記憶装置からブートデータをロードする場合よりも高速にブートすることが可能となる。
図1Bは、ブートデータをロードするための装置150のもう1つの例示的なブロック図を示している。図1Bの装置150は、プロセッサ110、キャッシュモジュール120、ブートモジュール130、及び第1の不揮発性メモリ140といった、図1Aの装置100と同様の構成要素を含んでいる。該第1の不揮発性メモリ140は同様に第1の部分142を含む。しかし、図1Bの装置150は更に、第2の不揮発性メモリ160を含む。該第2の不揮発性メモリ160は第2の部分162を含む。
該第2の不揮発性メモリ160は、電力が供給されていない場合であっても格納された情報を保持し続ける電子的、磁気的、光学的、又はその他の物理的な記憶装置といった、1つ以上の不揮発性のマシン読み取り可能記憶媒体とすることが可能である。該第2の不揮発性メモリ160の例として、ハードディスクドライブ(HDD)又はストレージドライブが挙げられる。該第2の不揮発性メモリ160は、第1の不揮発性メモリ140よりも大きなレイテンシ及び/又は容量を有することが可能である。例えば、第2の不揮発性メモリ160は、一層大きなアクセスタイムを有する磁気記憶媒体(例えば、500ギガバイト(GB)のHDD)とすることが可能であり、第1の不揮発性メモリ140は、一層小さなアクセスタイムを有するフラッシュメモリの類(例えば、64GBのSDD)とすることが可能である。
該第2の不揮発性メモリ160もブートデータを格納することが可能である。例えば、ブートモジュール130は、キャッシュモジュール120が第1の不揮発性メモリ140の第1の部分142にキャッシュデータを書き込む前に、第2の不揮発性メモリ160(例えば、第2の部分162)にブートデータを書き込むことが可能である。こうして、ブートデータを保存することが可能となる。その後、ブートモジュール130は、装置150が低電力状態に入る前に、第2の不揮発性メモリ160にあるブートデータを、第1の不揮発性メモリ140(例えば、第1の部分142)に書き込むことが可能である。こうして、装置150は、上述のように、再び第1の不揮発性メモリ140からのブートデータにアクセスすることによりブートすることが可能となる。更に、第2の不揮発性メモリ160にあるブートデータのコピーをバックアップとして保持することが可能である。例えば、第1又は第2のブート処理を完了させるために第1の不揮発性メモリ140からブートデータをロードすることができない場合に該ブートデータを第2の不揮発性メモリ160からロードすることが可能である。例えば、ブートモジュール130が第1の不揮発性メモリ140に対するブートデータの書き戻しを完了する前に装置100の電源が遮断された場合又は第1の不揮発性メモリ140が誤動作した場合には、第1の不揮発性メモリ140からブートデータをロードすることができなくなる。第2の不揮発性メモリ160にあるブートデータのアドレス位置は、第1の不揮発性メモリ140上に格納することが可能である。その結果として、第1の不揮発性メモリ140からブートデータをロードすることができない場合に、装置150は、該第1の不揮発性メモリ140上に格納されている前記アドレス位置を読み出して、第2の不揮発性メモリ160にあるブートデータにアクセスすることが可能となる。
随意選択的に、キャッシュモジュール120は、装置150が低電力状態に移行する前に第1の不揮発性メモリ140にあるキャッシュデータを第2の不揮発性メモリ160に格納することが可能である。例えば、キャッシュモジュール120は、ブートモジュール130が第1の部分142にブートデータを書き戻す前に、第1の部分142にあるキャッシュデータを第2の不揮発性メモリ160に待避することが可能である。こうして、該キャッシュデータを第2の不揮発性メモリ160に保存して第2のブート処理後に該キャッシュデータを再利用することが可能となる。そうではなく、キャッシュデータのコピーを第2の不揮発性メモリ160に待避しない場合には、該キャッシュデータは、ブートモジュール130により第1の部分142にブートデータが上書きされる際に失われることになる。装置100,150の動作については図3A及び図3Bに関して一層詳細に説明する。
図2は、ブートデータをロードするための命令を含むコンピューティング装置200の例示的なブロック図である。図2の実施形態では、コンピューティング装置200は、プロセッサ205、第1の不揮発性メモリ140、及びマシン読み取り可能記憶媒体210を含む。該マシン読み取り可能記憶媒体210は更に、ブートデータをロードするための命令212,214,216を含む。第1の不揮発性メモリ140は、第1の部分142を含み、図1A及び図1Bのものと同様のものとすることが可能である。
コンピューティング装置200は、例えば、チップセット、ノートブックコンピュータ、スレートコンピューティング装置、ポータブルリーディング装置、ワイヤレス電子メール装置、携帯電話、又は前記命令212,214,216を実行することができる任意の他の装置とすることが可能である。特定の実施形態では、コンピューティング装置200は、メモリ、センサ、及びディスプレイといった更なる構成要素を含み又はそれらに接続することが可能なものである。例えば、コンピューティング装置200は、図1Bの第2の不揮発性メモリ160と同様の第2の不揮発性メモリ(図示せず)を含むことが可能である。代替的に、該第2の不揮発性メモリをマシン読み取り可能記憶媒体210の一部とすることが可能である。
前記プロセッサ205は、少なくとも1つの中央処理装置(CPU)、少なくとも1つの半導体ベースのマイクロプロセッサ、少なくとも1つのグラフィクス処理装置(GPU)、マシン読み取り可能記憶媒体210内に格納されている命令の読み出し及び実行を行うのに適したその他のハードウェア、及びそれらの組み合わせとすることが可能である。該プロセッサ205は、ブートデータのロード処理を実行するために、命令212,214,216をフェッチし、デコードし、及び実行することが可能である。命令の読み出し及び実行を行う代わりに又はそれに加えて、プロセッサ205は、命令212,214,216の機能を実行するための複数の電子部品を含む、少なくとも1つの集積回路(IC)、他の制御ロジック、他の電子回路、又はそれらの組み合わせを含むことが可能である。
前記マシン読み取り可能記憶媒体210は、実行可能命令を格納し又は記憶する任意の電子的、磁気的、光学的、又はその他の物理的な記憶装置とすることが可能である。このため、マシン読み取り可能記憶媒体210は、例えば、ランダムアクセスメモリ(RAM)、EEPROM(Electrically Erasble Programmable Read-Only Memory)、ストレージデバイス、CD-ROM(Compact Disc Read Only Memory)等とすることが可能である。この場合、該マシン読み取り可能記憶媒体210は持続性のものとすることができる。以下で詳述するように、マシン読み取り可能記憶媒体210には、ブートデータのロード処理を設定するための一連の実行可能命令をエンコードすることが可能である。
更に、命令212,214,216は、プロセッサによる(例えば該プロセッサの1つの処理要素又は複数の処理要素を介した)それらの実行時に、図3A及び図3Bのプロセス等のプロセスを該プロセッサに行わせることが可能である。例えば、ロード命令212は、装置の第1のブート処理を完了させるべく第1の不揮発性メモリ140の第1の部分142からブートデータをロードするためにプロセッサ205により実行することが可能なものである。解放命令214は、装置200が第1の不揮発性メモリ140の第1の部分142を上書きすることを可能にすべく該第1の部分142を解放するためにプロセッサ205により実行することが可能なものである。書き込み命令216は、装置200が低電力状態に移行する前に第1の不揮発性メモリ140(第1の部分142等)にブートデータを書き込むためにプロセッサ205により実行することが可能なものである。装置200が第2のブート処理を開始する場合には、該装置200の該第2のブート処理を完了させるために、前記書き込まれたブートデータが第1の不揮発性メモリ140からロードされることになる。
前記マシン読み取り可能記憶媒体210はまた、第1の不揮発性メモリ140の第1の部分142が解放される前に該第1の部分142にあるブートデータを第2の不揮発性メモリに格納するための命令(図示せず)を含むことが可能であり、この場合、該ブートデータは、第2の不揮発性メモリから第1の不揮発性メモリ140へと書き込まれることになる。更に、マシン読み取り可能記憶媒体210は、第1及び第2のブート処理の少なくとも一方を完了させるために第1の不揮発性メモリ140からブートデータをロードすることができない場合に第2の不揮発性メモリからブートデータをロードするための命令(図示せず)を含むことが可能である。該ブートデータは、第2の不揮発性メモリからよりも速く第1の不揮発性メモリ140からロードすることが可能である。装置200の動作を図3A及び図3Bに関して一層詳細に説明する。
図3A及び図3Bは、ブートデータをロードするための方法300の例示的なフローチャートである。該方法300の実行について装置150に関して以下で説明するが、該方法300を実行するために他の適当な構成要素(例えば装置100又は装置200)を使用することが可能である。更に、方法300を実行するための構成要素は、複数の装置(例えば、入力装置及び出力装置と通信可能な状態にある処理装置)にわたって分散させることが可能である。場合によっては、互いに協働する複数の装置を方法300を実行するための単一の装置とみなすことが可能である。方法300は、マシン読み取り可能記憶媒体(例えば記憶媒体210)上に格納された実行可能命令という形及び/又は電子回路という形で実施することが可能である。
ブロック310で、装置150は、該装置150の第1のブート処理を完了させるために第1の不揮発性メモリ140の第1の部分142からブートデータをロードする。例えば、装置150は、装置150のOSのイメージを第1の不揮発性メモリ140から別のメモリ(例えばRAM)へロードするための命令にアクセスすることが可能である。該OSがロードされると、第1のブート処理を完了させることが可能となる。次いで、ブロック320で、装置150は、第1の不揮発性メモリ140の第1の部分142にあるブートデータを第2の不揮発性メモリへ格納する。次いで、ブロック330で、装置150は、該装置150が第1の不揮発性メモリ140の第1の部分142に上書きすることを可能とするために、該第1の部分142を解放する。該ブロック330での解放は、該装置150のキャッシュデータを格納するためのキャッシュとして第1の不揮発性メモリ140の第1の部分142を使用することを含むことが可能である。その後、装置150の電源が断たれる前に、ブロック340で、装置150は、第1の不揮発性メモリ140にあるキャッシュデータを第2の不揮発性メモリ160に格納する。該キャッシュデータは、例えば、装置150の第2のブート処理後に第1の不揮発性メモリ140の第1の部分142に戻すことにより、再利用することが可能となる。
次いで、ブロック350で、装置150は、装置150が低電力状態へ移行する前に、第2の不揮発性メモリ160にあるブートデータを第1の不揮発性メモリ140へ書き込む。ブロック360で、装置150が低電力状態に移行した後に該装置150の第2のブート処理が開始されたか否かが判定される。第2のブート処理が発生していない場合には該方法300は終了する。そうでない場合には、ブロック370で、装置150は、該装置150の第2のブート処理を完了させるために第1の不揮発性メモリ140に書き込まれているブートデータをロードする。ブロック380で、該書き込まれているブートデータが第1の不揮発性メモリ140から成功裏にロードされたか否かを判定する。該書き込まれているブートデータが成功裏にロードされた場合には、方法300は終了する。そうでない場合には、ブロック390で、装置150は、第2の不揮発性メモリ160からブートデータをロードする。該ブートデータは、第2の不揮発性メモリ160より第1の不揮発性メモリ140から一層速くロードすることが可能である。
上述したように、本実施形態は、装置のブート時に第1の不揮発性メモリからブートデータをロードすることを可能としつつ、使用可能なキャッシュ空間(例えば、第1の不揮発性メモリのキャッシュ空間)を増大させるための、方法及び/又は装置を提供するものである。このため、該実施形態は、装置のブート時間及びデータレイテンシを短縮することが可能となる。例えば、該実施形態は、装置の使用中に第2の不揮発性メモリにブートデータを格納し、次いで該装置が低電力状態に移行する前に該格納したブートデータを第1の不揮発性メモリへ書き戻すことが可能である。次回ブート時に、該ブートデータを該第1の不揮発性メモリから再びロードすることが可能となる。

Claims (11)

  1. 装置の第1のブート処理を完了させるために第1の不揮発性メモリの第1の部分からブートデータをロードするステップと
    前記ブートデータをアクセスタイムが前記第1の不揮発性メモリより大きい第2の不揮発性メモリに格納した後、前記装置が前記第1の不揮発性メモリの前記第1の部分を上書きすることを可能とするために該第1の部分を解放するステップと
    前記装置が低電力状態に移行する前に、前記第2の不揮発性メモリから前記第1の不揮発性メモリに前記ブートデータを書き込むステップと
    を含み、
    該書き込まれたブートデータは、前記装置の第2のブート処理が開始される場合に該第2のブート処理を完了させるために、前記第1の不揮発性メモリからロードされることになる、
    メモリ割当方法。
  2. 前記解放するステップが、キャッシュデータを格納するためのキャッシュとして前記第1の不揮発性メモリの前記第1の部分を使用することを含む、請求項1に記載の方法。
  3. 前記書き込ステップの前に前記第1の不揮発性メモリにあるキャッシュデータを前記第2の不揮発性メモリに格納するステップを更に含む、請求項に記載の方法。
  4. 前記第1の不揮発性メモリがフラッシュメモリを含み、前記第2の不揮発性メモリが磁気記憶媒体を含む、請求項に記載の方法。
  5. 前記第1及び第2のブート処理の少なくとも一方を完了させるために前記第1の不揮発性メモリから前記ブートデータをロードすることができない場合に前記第2の不揮発性メモリから前記ブートデータをロードするステップを更に含み、
    前記第2の不揮発性メモリにおける該ブートデータのアドレス位置は、前記第1の不揮発性メモリ上に格納されており、
    該第1の不揮発性メモリ上に格納された前記アドレス位置を読み出すことにより、前記ブートデータを前記第2の不揮発性メモリからロードすることが可能となる、
    請求項1に記載の方法。
  6. 装置であって、
    前記装置の第1のブート処理を完了させるためのブートデータを第1の部分に格納する第1の不揮発性メモリと、
    アクセスタイムが前記第1の不揮発性メモリより大きい第2の不揮発性メモリと、
    前記第1の不揮発性メモリから前記ブートデータがロードされた後に該第1の不揮発性メモリの前記第1の部分にキャッシュデータを書き込むキャッシュモジュールと、
    前記キャッシュモジュールが前記第1の不揮発性メモリの前記第1の部分に前記キャッシュデータを書き込む前に前記第2の不揮発性メモリに前記ブートデータを書き込み、前記装置が低電力状態に移行する前に、前記第2の不揮発性メモリにある前記ブートデータを前記第1の不揮発性メモリに書き込むブートモジュールと
    を備え
    前記装置の第2のブート処理が開始された場合に該第2のブート処理を完了させるために前記第1の不揮発性メモリから書き込まれたブートデータがロードされることになる、
    装置
  7. 前記キャッシュモジュールが、前記装置が低電力状態に移行する前に前記第1の不揮発性メモリにある前記キャッシュデータを前記第2の不揮発性メモリに格納する、請求項に記載の装置。
  8. 前記第1の不揮発性メモリがフラッシュメモリを含み、前記第2の不揮発性メモリが磁気記憶媒体を含む、請求項に記載の装置。
  9. 前記第1及び第2のブート処理の少なくとも一方を完了させるために前記第1の不揮発性メモリから前記ブートデータをロードすることができない場合に前記第2の不揮発性メモリから前記ブートデータをロードするように構成され
    前記第2の不揮発性メモリにおける該ブートデータのアドレス位置は、前記第1の不揮発性メモリ上に格納されており、
    該第1の不揮発性メモリ上に格納された前記アドレス位置を読み出すことにより、前記ブートデータを前記第2の不揮発性メモリからロードすることが可能となる、
    請求項に記載の装置。
  10. 複数の命令を格納した持続性のマシン読み取り可能記憶媒体であって、前記複数の命令、装置のプロセッサにより実行される場合に、
    前記装置の第1のブート処理を完了させるために第1の不揮発性メモリの第1の部分からブートデータをロードし、
    前記第1の不揮発性メモリの前記第1の部分にある前記ブートデータをアクセスタイムが前記第1の不揮発性メモリより大きい第2の不揮発性メモリに格納した後、前記装置が前記第1の不揮発性メモリの前記第1の部分を上書きすることを可能とするために該第1の部分を解放し、
    前記装置が低電力状態に移行する前に、前記第2の不揮発性メモリから前記第1の不揮発性メモリに前記ブートデータを書き込む、
    ことを前記プロセッサに行わせ
    該書き込まれたブートデータは、前記装置の第2のブート処理が開始される場合に該第2のブート処理を完了させるために、前記第1の不揮発性メモリからロードされることになる、
    持続性のマシン読み取り可能記憶媒体。
  11. 前記プロセッサにより実行される場合に、
    前記第1及び第2のブート処理の少なくとも一方を完了させるために前記第1の不揮発性メモリから前記ブートデータをロードすることができない場合に前記第2の不揮発性メモリから前記ブートデータをロードする、
    ことを前記プロセッサに行わせる命令を更に含み、
    前記第2の不揮発性メモリにおける該ブートデータのアドレス位置は、前記第1の不揮発性メモリ上に格納されており、
    該第1の不揮発性メモリ上に格納された前記アドレス位置を読み出すことにより、前記ブートデータを前記第2の不揮発性メモリからロードすることが可能となる、
    請求項10に記載の持続性のマシン読み取り可能記憶媒体。
JP2014538764A 2011-10-26 2011-10-26 ブートデータのロード Active JP5860543B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/057924 WO2013062543A1 (en) 2011-10-26 2011-10-26 Load boot data

Publications (2)

Publication Number Publication Date
JP2014534521A JP2014534521A (ja) 2014-12-18
JP5860543B2 true JP5860543B2 (ja) 2016-02-16

Family

ID=48168214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014538764A Active JP5860543B2 (ja) 2011-10-26 2011-10-26 ブートデータのロード

Country Status (9)

Country Link
US (1) US9858086B2 (ja)
EP (1) EP2771785B1 (ja)
JP (1) JP5860543B2 (ja)
KR (1) KR101846612B1 (ja)
CN (1) CN103999042B (ja)
BR (1) BR112014009915B1 (ja)
IN (1) IN2014CN02917A (ja)
TW (1) TWI509513B (ja)
WO (1) WO2013062543A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5984500B2 (ja) * 2011-11-30 2016-09-06 三菱電機株式会社 情報処理装置、放送受信装置及びソフトウェア起動方法
US20140241071A1 (en) * 2013-02-26 2014-08-28 Seagate Technology Llc Fast Power Loss Recovery By Swapping Boot and Recovery Data Sets in a Memory
US9619330B2 (en) * 2013-10-08 2017-04-11 Seagate Technology Llc Protecting volatile data of a storage device in response to a state reset
WO2015118436A1 (en) * 2014-02-07 2015-08-13 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device, device, and electronic device
US10055232B2 (en) * 2014-02-07 2018-08-21 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device comprising memory circuit
US9424134B2 (en) * 2014-03-28 2016-08-23 Intel Corporation Boot management in a non-volatile memory system
US9823972B2 (en) * 2014-10-28 2017-11-21 Samsung Electronics Co., Ltd. Mobile flash storage boot partition and/or logical unit shadowing
US10055236B2 (en) * 2015-07-02 2018-08-21 Sandisk Technologies Llc Runtime data storage and/or retrieval
US10474473B2 (en) * 2017-04-11 2019-11-12 Intel Corporation Technology to facilitate rapid booting with high-speed and low-speed nonvolatile memory
TWI698748B (zh) * 2019-01-02 2020-07-11 慧榮科技股份有限公司 資料儲存裝置、存取裝置及資料處理方法
WO2023035233A1 (en) * 2021-09-10 2023-03-16 Schneider Electric It Corporation Cost effective firmware upgrade algorithm for resource constrained microprocessors

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100313996B1 (ko) 1998-01-08 2001-12-28 구자홍 컴퓨터시스템의바이오스데이터저장장치및방법
JPH11353229A (ja) 1998-06-05 1999-12-24 Canon Inc メモリ制御装置およびメモリ制御方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
US6205548B1 (en) 1998-07-31 2001-03-20 Intel Corporation Methods and apparatus for updating a nonvolatile memory
US20100146256A1 (en) * 2000-01-06 2010-06-10 Super Talent Electronics Inc. Mixed-Mode ROM/RAM Booting Using an Integrated Flash Controller with NAND-Flash, RAM, and SD Interfaces
US20010047473A1 (en) * 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
US7082495B2 (en) * 2002-06-27 2006-07-25 Microsoft Corporation Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory
JP2004145730A (ja) * 2002-10-25 2004-05-20 Ricoh Co Ltd 画像形成装置
US7206971B2 (en) * 2003-04-07 2007-04-17 Lsi Logic Corporation Selectable and updatable computer boot memory
JP2006526831A (ja) * 2003-06-03 2006-11-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 不揮発性メモリからのブート
US7412565B2 (en) * 2003-08-18 2008-08-12 Intel Corporation Memory optimization for a computer system having a hibernation mode
JP2005107608A (ja) * 2003-09-29 2005-04-21 Nec Electronics Corp 電子機器、不揮発性メモリ及び不揮発性メモリのデータ書き換え方法
US20050251617A1 (en) 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
US7631138B2 (en) 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
US7644239B2 (en) * 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7469336B2 (en) * 2005-06-24 2008-12-23 Sony Corporation System and method for rapid boot of secondary operating system
JP4736593B2 (ja) 2005-07-25 2011-07-27 ソニー株式会社 データ記憶装置、データ記録方法、記録及び/又は再生システム、並びに、電子機器
US20080109612A1 (en) 2006-11-02 2008-05-08 Jones Kevin M Dynamic Code Relocation for Low Endurance Memories
KR101406493B1 (ko) * 2007-07-19 2014-06-12 엘지전자 주식회사 플래쉬 메모리를 구비한 컴퓨터 및 플래쉬 메모리의구동방법
US8239611B2 (en) * 2007-12-28 2012-08-07 Spansion Llc Relocating data in a memory device
US8621144B2 (en) 2008-06-26 2013-12-31 Intel Corporation Accelerated resume from hibernation in a cached disk system
US8417928B2 (en) * 2008-09-24 2013-04-09 Marvell International Ltd. Turbo boot systems and methods for subsequent booting from a captured data stored in a non-volatile semiconductor memory
US8407398B2 (en) 2008-10-01 2013-03-26 Lenovo (Singapore) Pte. Ltd. Cache mapping for solid state drives
US9282277B2 (en) 2008-12-19 2016-03-08 Seagate Technology Llc Storage device and controller to selectively activate a storage media
TW201027324A (en) 2009-01-14 2010-07-16 Giga Byte Tech Co Ltd Embedded electronic device free from being stuck in update failure and method of making the same
US8327076B2 (en) 2009-05-13 2012-12-04 Seagate Technology Llc Systems and methods of tiered caching
TWI460588B (zh) 2009-07-17 2014-11-11 Toshiba Kk Memory management device and memory information processing device
CN102103508A (zh) * 2009-12-22 2011-06-22 鸿富锦精密工业(深圳)有限公司 电子装置及其开机与关机方法
JP2011198133A (ja) 2010-03-19 2011-10-06 Toshiba Corp メモリシステムおよびコントローラ

Also Published As

Publication number Publication date
CN103999042B (zh) 2018-03-30
US20140250295A1 (en) 2014-09-04
EP2771785A4 (en) 2015-06-10
TWI509513B (zh) 2015-11-21
JP2014534521A (ja) 2014-12-18
CN103999042A (zh) 2014-08-20
TW201329868A (zh) 2013-07-16
WO2013062543A1 (en) 2013-05-02
EP2771785A1 (en) 2014-09-03
US9858086B2 (en) 2018-01-02
KR20140082734A (ko) 2014-07-02
BR112014009915A2 (pt) 2017-04-25
KR101846612B1 (ko) 2018-04-06
BR112014009915B1 (pt) 2021-06-15
EP2771785B1 (en) 2022-12-21
IN2014CN02917A (ja) 2015-07-03

Similar Documents

Publication Publication Date Title
JP5860543B2 (ja) ブートデータのロード
US20180046447A1 (en) Data storage device and method for reducing firmware update time and data processing system including the device
TWI514408B (zh) 於裝置開機期間處置來自非揮發性記憶體之錯誤
US8464257B2 (en) Method and system for reducing power loss to backup IO start time of a storage device in a storage virtualization environment
US9158475B2 (en) Memory apparatus and method therefor
TWI519952B (zh) 非揮發性暫時資料處理
JP6399916B2 (ja) 情報処理装置およびその制御方法
US20100318727A1 (en) Memory system and related method of loading code
US20120311240A1 (en) Information processing apparatus, information processing method, and storage medium
US20200183677A1 (en) Boot rom update method and boot-up method of embedded system
TWI574203B (zh) 用以分割快取記憶體的方法及相關儲存媒體與裝置
TW201011524A (en) Method and controller for power management
US11422860B2 (en) Optimizing save operations for OS/hypervisor-based persistent memory
JP6686614B2 (ja) 情報処理装置の制御プログラム、情報処理装置および情報処理装置の制御方法
TWI546661B (zh) 使用狀態資訊回復系統之技術
US8751760B2 (en) Systems and methods for power state transitioning in an information handling system
KR20080057688A (ko) 비휘발성 메모리를 이용한 운영체계 부팅 방법
CN110727470A (zh) 一种混合式非失性存储装置
KR100994723B1 (ko) 시스템에서 초기 구동시간을 단축시키는 선택적 서스펜드 리쥼 방법 및 그 기록매체
US20150317181A1 (en) Operating system switching method
JP5894044B2 (ja) ハイブリッド・ディスク・ドライブにデータを記憶する方法および携帯式コンピュータ
JP6080492B2 (ja) 情報処理装置、起動方法およびプログラム
JP2009205410A (ja) メモリコントローラおよびメモリシステム
US20130080717A1 (en) Information processing apparatus and control method
JP5685070B2 (ja) 情報処理装置、およびプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150721

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151020

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20151109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151118

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: 20151211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151218

R150 Certificate of patent or registration of utility model

Ref document number: 5860543

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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