JP2017521768A - 耐性があるメモリストレージを伴うファームウェアインターフェイス - Google Patents

耐性があるメモリストレージを伴うファームウェアインターフェイス Download PDF

Info

Publication number
JP2017521768A
JP2017521768A JP2016573050A JP2016573050A JP2017521768A JP 2017521768 A JP2017521768 A JP 2017521768A JP 2016573050 A JP2016573050 A JP 2016573050A JP 2016573050 A JP2016573050 A JP 2016573050A JP 2017521768 A JP2017521768 A JP 2017521768A
Authority
JP
Japan
Prior art keywords
firmware interface
volatile memory
power loss
processor
loss indicator
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.)
Pending
Application number
JP2016573050A
Other languages
English (en)
Inventor
ギーリ ピー. ムドゥスル
ギーリ ピー. ムドゥスル
ジェイ ツィンマー,ヴィンセント
ジェイ ツィンマー,ヴィンセント
コターリー,カルナカラ
エヌ. ストーリー,ロナルド
エヌ. ストーリー,ロナルド
シー. スワンソン,ロバート
シー. スワンソン,ロバート
ダブリュー. オラム,イサーク
ダブリュー. オラム,イサーク
Original Assignee
インテル コーポレイション
インテル コーポレイション
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 インテル コーポレイション, インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2017521768A publication Critical patent/JP2017521768A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2015Redundant power supplies
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • G11C5/141Battery and back-up supplies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Engineering (AREA)
  • Power Sources (AREA)
  • Retry When Errors Occur (AREA)
  • Stored Programmes (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)

Abstract

一般的に、本開示は、例えば、電力喪失の場合に、メモリ書込みの一貫性を提供するための耐性があるストレージを伴うユニファイド・エクステンシブル・ファームウェア・インターフェイス(UEFI)に対するシステム、デバイス、方法、およびコンピュータで読取り可能な媒体を提供する。本システムは、ファームウェアインターフェイスをホストするためのプロセッサを含んでよく、揮発性メモリの保護領域におけるシステム変数へのアクセスをコントロールする。本システムは、また、プロセッサに対して電力を提供し、かつ、さらに、ファームウェアインターフェイスに対して電力喪失インジケータを提供するための電力管理回路も含んでよい。本システムは、さらに、電力喪失インジケータに応じて、プロセッサに対して電力を提供するリザーブエネルギ保管モジュールを含んでよい。ファームウェアインターフェイスは、さらに、電力喪失インジケータに応じて、システム変数を揮発性メモリから不揮発性メモリへコピーするように構成されてよい。

Description

本開示は、ファームウェアインターフェイスに関する。そして、より特定的には、例えば、電力喪失(power loss)の場合に、メモリ書込みの一貫性を提供するための耐性がある(durable)ストレージを伴うユニファイド・エクステンシブル・ファームウェア・インターフェイス(UEFI)に関する。
ファームウェアインターフェイスは、一般的には、オペレーティングシステム(OS)と、その根底にあるファームウェア及び/又はシステムプラットフォームに関連付けられたハードウェアとの間のインターフェイスを提供する。ファームウェアインターフェイスの実施例は、従来のベーシック・インプット・アウトプット・システム(BIOS)と、より最近のユニファイド・エクステンシブル・ファームウェア・インターフェイス(UEFI)を含んでいる。ファームウェアインターフェイスは、典型的には、システムブートサービスを、ランタイム(runtime)サービスと同様に提供する。UEFIによって提供されるランタイムサービスは、OSまたは他のエンティティによるシステム変数に対するアクセスの管理を含んでいる。UEFIは、一般的に、これらの変数に対してなされたあらゆる変更が耐性があることを保証するために要求される。例えば、予期しない電力喪失、リセット、または、他の中断の場合に、変更が存続することである。
UEFIに対する潜在的にコンフリクト(conflict)しているゴールは、しかしながら、これらのシステム変数が、UEFI以外のあらゆるエンティティによっては直接的にアクセスできない、信頼され、かつ、安全なメモリ領域またはデバイスの中に保管されることである。例えば、不正侵入された(compromised)OSは、このUEFI予約メモリにアクセスできるべきではない。不幸にも、そうした安全な、または、隔離されたオペレーティングモードが利用可能なメモリは、典型的に揮発性である。例えば、ダイナミックランダムアクセスメモリ(DRAM)、といったものであり、電源中断の場合にはコンテンツが失われてしまう。
請求される技術的事項に係る実施例の特徴および利点は、以下の詳細な説明が進行するにつれて、そして、図面を参照して明らかになるだろう。図面では類似の数字は類似のパーツを示している。
図1は、本開示と一致する一つの実施例に係るトップレベルのシステムダイヤグラムを示している。 図2は、本開示と一致する一つの実施例に係るブロックダイヤグラムを示している。 図3は、本開示と一致する一つの実施例に係るオペレーションのフローチャートを示している。 図4は、本開示と一致する別の実施例に係るオペレーションのフローチャートを示している。 図5は、本開示と一致する別の実施例に係るオペレーションのフローチャートを示している。 図6は、本開示と一致する別の実施例に係るプラットフォームのシステムダイヤグラムを示している。
以降の詳細な説明は、説明的な実施例に対してなされる参照と共に進行するが、それらの多くの代替、変更、および変形が、当業者に対して明らかであろう。
一般的に、この開示は、例えば、電力喪失の場合において、メモリ書込みの一貫性を提供するための耐性があるストレージを伴うユニファイド・エクステンシブル・ファームウェア・インターフェイス(UEFI)のためのシステム、デバイス、方法、およびコンピュータで読取り可能な媒体を提供する。例えば、コンピューティングまたは通信プラットフォーム、といったシステムは、一つまたはそれ以上のプロセッサ又はコア、および、揮発性と不揮発性両方のメモリタイプを含んでいる、一つまたはそれ以上のメモリモジュールを含んでよい。プロセッサとメモリは、一つまたはそれ以上のオペレーティングシステム(OS)および他のソフトウェアアプリケーション又はエンティティと共に、UEFIをホストする(例えば、保管及び/又は実行)ように構成されてよい。UEFIは、システムブートサービスとランタイム(例えば、ブート後)サービスを実行するように構成されてよい。ランタイムサービスは、OSによって、揮発性メモリの保護され/安全な領域の中に保管されているシステム変数に対するアクセスをコントロールすることを含んでよい。
システムは、また、一つまたはそれ以上の1次電源(primary power source)からプロセッサに対して電力を提供する電力管理回路を含んでもよい。システムは、また、1次電源からの電力喪失の場合にプロセッサに対して電力を提供するためのリザーブエネルギ(reserve energy)保管モジュールを含んでもよく、その場合には、電力喪失インジケータがUEFIに対して提供されてよい。UEFIは、さらに、電力喪失インジケータに応じて、システム変数を揮発性メモリから不揮発性メモリへコピーするように構成されてよい。
本開示と一致する実施例はUEFIのコンテクストにおいて表されてよいが、説明される原理は、OSと、その根底にあるハードウェアとの間のあらゆるタイプのインターフェイスに対して適用されてよいことが正しく理解されよう。
図1は、本開示と一致する一つの実施例に係るトップレベルのシステムダイヤグラム100を示している。システムは、プロセッサ102、メモリモジュール110、電力管理回路108(電力管理集積回路またはPMICとしても参照されるもの)、および、リザーブエネルギ保管モジュール116を含むように示されている。メモリモジュール110は、揮発性メモリ112(例えば、データコンテンツを維持するために電力を要するメモリ)、および、不揮発性メモリモジュール114を含んでいる。プロセッサ102は、以下により詳細に説明されるように、耐性があるストレージ機能を伴うUEFI104をホストするように示されている。耐性があるストレージは、書込まれてきたデータを保持するように構成されたメモリストレージを含むように理解されてよい。予期しない電力喪失、リセット、または、他の中断の場合でさえ、データが持続するようにである。プロセッサ102は、また、ホストOS106に対しても示されている。
いくつかの実施例において、システムは、コンピューティングデバイス及び/又は通信デバイスであってよい。例えば、スマートフォン、タブレット、パーソナルデジタルアシスタント(PDA)、モバイルインターネットデバイス(MID)、コンバーチブルタブレット、ノートブックまたはラップトップコンピュータ、ワークステーションまたはデスクトップコンピュータ、を含むものである。
PMIC108は、1次電源118から、プロセッサ102へ、および、他のシステムコンポーネントに対して電力を提供するように構成されてよい。電源は、交流(AC)ベース電源(例えば、メインまたはライン電力)、バッテリー、または、他の適切な電源を含んでよい。利用可能な1次電源からの電力喪失の場合には、PMICが、リザーブエネルギ保管モジュール116へ切り替えられてよい。以下により詳細に説明されるように、「クリーン(”clean”)」なシャットダウンを実行するのに十分な時間期間について電力の継続性を提供するためである。電力喪失は、例えば、バッテリーの取り外し、電源コードの切断、過度なバッテリー放電、等のせいで生じ得るものである。
図2は、本開示と一致する一つの実施例に係るブロックダイヤグラム200を示している。UEFI104が、より詳細に示されており、ブートサービスモジュール210、ランタイムサービスモジュール212、および、UEFI(またはシステム)変数214を含んでいる。揮発性メモリモジュール112は、OS106によっては直接的にアクセス可能でない保護キャッシュ領域208を含むように示されている。不揮発性メモリ114は、対照的に、UEFI104とOS106の両方によって共有可能なものとして構成されてよい。リザーブエネルギ保管モジュール116は、キャパシタ202、もしくは、任意的に2次電源又は少なくとも一時的なオペレーションに適した他の電源を含むように示されている。
UEFI104は、システムパワーアップ、リセット、または、リスタートと関連付されたブートサービス210を提供するように構成されてよく、その最中には一般的にOSがまだ実行されていない。UEFI104は、また、ブートプロセスが完了し、かつ、OSが開始された後で、ランタイムサービス212を提供するように構成されてもよい。この時間の最中、OSが実行されているときに、UEFIとOSとの間でメモリを共有することが、メモリコンテンション(contention)問題をトリガーし、及び/又は、セキュリティ問題を提起することがある。このことは、UEFI認証変数を保管しているメモリ領域の共有について特定的に真実である。プラットフォームキー(PK)、キー交換キー(KEK)、認証キー(trusted key)と署名と実行可能イメージ(DB)のデータベース、および、非認証キー(non−trusted key)と署名と実行可能イメージ(DBX)のデータベース、を含んでいるものである。
ランタイムサービス212は、OS106によるUEFI変数214に対する間接的なアクセスができるようにし得る。このアクセスは、例えば、GetVariable()、読出しのためのもの、および、SetVariable()、書込みのためのもの、といったファンクションコール(function call)を介して備えられてよい。UEFI104とOS106との間のプログラミングインターフェイスの中に含まれるものである。読出しリクエストに応じて、UEFIは、揮発性メモリ112の保護キャッシュ208からシステム変数データを取り出し(retrieve)てよい。書込みリクエストに応じて、UEFIは、揮発性メモリ112の保護キャッシュ208の中にシステム変数データを保管してよい。システム変数は、例えば、ブートローダーの場所、システム言語プリファレンス、暗号法のための公開鍵(public key)、等を含んでよい。上記のPK、KEK、DB、および、DBXを含んでいるものである。
UEFIファームウェアコード、または、これらのシステム変数を実装する少なくとも一つの領域は、保護されたシステム管理ランダムアクセスメモリ(SMRAM)に対するアクセスを伴って、プロセッサのシステム管理モード(SMM)において実行されてよい。SMMとSMRAMは、その下でOSが実行され得る、最高の特権レベル(privilege level)である、リング0(Ring0)からさえも隔離されている。SMRAMは、一般的に、揮発性メモリであり、しかしながら、その内容は電力中断の最中に失われてしまう。
PMIC108は、1次電源が利用可能である間に、リザーブエネルギ保管モジュール116のキャパシタ202(または、2次バッテリー204)における電荷(charge)を維持するように構成されてよい。PMIC108は、また、1次電源112からの電力喪失を検出し、そして、リザーブエネルギ保管モジュール116へ切り替えるように構成されてもよい。この電力喪失の検出に応じて、PMIC108は、また、プロセッサ102に対して電力喪失インジケータ(PLI)206を生成してもよい。「クリーン」シャットダウンを実行するようにUEFI104によるアクションをトリガーする、インタラプト(interrupt)、例えばシステム管理インタラプト(SMI)、を生成し得るものである。SMIは、プロセッサをシステム管理モードへと強制し、その最中は、UEFIが、OSがプラットフォームハードウェアのコントロールを放棄した認証実行環境(trusted execution environment)において実行している。クリーンシャットダウンの一部として、UEFIは、リザーブエネルギ保管モジュール116からの残りの電力で実行しており、システム変数を揮発性保護キャッシュメモリ208から不揮発性メモリ114の領域の中へコピーする(例えば、キャッシュからフラッシュ(flush)される)ように構成されてよい。システム変数が保存され、かつ、1次電源が回復した後で、後続のシステムリブート/リセットのために利用できるようにである。システム変数がキャッシュからフラッシュされた後で、十分なリザーブ電力が利用可能であれば、クリーンシャットダウンは、また、UEFIによるマスクできない(non−maskable)インタラプト(NMI)の生成を含んでもよい。例えば、ユーザアプリケーションの状態及び/又はデータをセーブする(saving)、といった、適切であり得るあらゆる追加のオペレーションを実行するように、OSをトリガーするためである。
いくつかの実施例において、UEFI104は、システム変数について隔離されたメモリキャッシュと関連付けされて、第2プロセッサまたはマイクロコントローラにおいてホストされてよい。これら両方またはいずれかは、プロセッサ102から分離され、または、隔離されてよい。この第2プロセッサ/マイクロコントローラは、しかしながら、プロセッサ102及び/又は他のコンポーネントを含むシステムオンチップ(SoC)アーキテクチャの中に統合されてよい。
いくつかの実施例において、キャパシタ202のサイズは、揮発性から不揮発性メモリへのUEFI(システム)変数の移転が完了できるために十分な持続時間(duration)の放電(discharge)時定数を提供するように選定されてよい。いくつかの実施例において、システム変数は、概ね128キロバイトのメモリを占有し得るが、より小さい又はより大きいサイズも、また、実施されてよい。いくつかの実施例において、揮発性メモリは、ダイナミックランダムアクセスメモリ(DRAM)として構成されてよく、そして、不揮発性メモリは、フラッシュメモリ(例えば、NANDフラッシュメモリ)として構成されてよい。
図3は、本開示と一致する一つの実施例に係るオペレーション300のフローチャートを示している。オペレーションは、システムブートまたはリセットの最中にUEFIによって実行されてよい。オペレーション302においては、揮発性メモリの中で保護キャッシュ(protected cache)がイネーブル(enable)される。保護キャッシュは、UEFI以外のOS又はあらゆるソフトウェア/エンティティによってはアクセスできないように構成されてよい。オペレーション304においては、UEFIがプラットフォームを初期化する。オペレーション306においては、PLIキャパシタ(リザーブエネルギ保管モジュール116)の充電を開始する。オペレーション308においては、コントロールがOSへ移転される。
図4は、本開示と一致する別の実施例に係るオペレーション400のフローチャートを示している。オペレーション402において、SMIが、コントロールをUEFIへ移転する。オペレーション404において、UEFIは、電力喪失インジケータが生成されたかを判断する。電力喪失インジケータが無い場合には、次に、UEFIは、オペレーション406において、例えば、OSによるGetVariable()またはSetVariable()ファンクションコールを通じて、システム変数アクセスリクエストがなされたかを判断する。書込みがリクエストされた場合には、オペレーション410において、データが保護キャッシュに対して書込まれる。読出しがリクエストされた場合には、オペレーション408において、データが保護キャッシュから読出される。UEFIは、さらに、オペレーション412においてコントロールをOSへ戻す前に、適切に、あらゆる追加のオペレーションを実行してよい。
電力喪失が発生し、そして、PLIキャパシタが十分な電荷を有している場合、オペレーション420において判断されて、「クリーン」シャットダウンが、次に、オペレーション424において実行される。クリーンシャットダウンは、オペレーション424において、保護キャッシュから不揮発性メモリへシステム変数をフラッシュすることまたはコピーすることを含んでいる。クリーンシャットダウンは、さらに、オペレーション426において、NMIを生成することを含んでよい。シャットダウンの前に、OSに、適切であり得るあらゆる他のオペレーションを実行させるためである。PLIキャパシタが十分な電荷を有していない場合には、次に、オペレーション422において「ダーティ(”dirty”)」シャットダウンが生じる。ダーティシャットダウンは、従って、揮発性メモリにおける保護キャッシュの中に保管されたあらゆるデータのロス(loss)を結果として生じ得る。
図5は、本開示と一致する別の実施例に係るオペレーション500のフローチャートを示している。オペレーションは、一般的に、ファームウェアインターフェイスによる耐性があるストレージのための方法を提供する。オペレーション510においては、ファームウェアインターフェイスが、揮発性メモリの保護領域の中のシステム変数へのアクセスをコントロールする。オペレーション520においては、電力喪失インジケータがファームウェアインターフェイスに対して提供される。オペレーション530においては、電力喪失インジケータに応じて、リザーブエネルギ保管モジュールからの電力への切り替えが実行される。オペレーション540においては、電力喪失インジケータに応じて、システム変数が、ファームウェアインターフェイスによって、揮発性メモリから不揮発性メモリへとコピーされる。
図6は、本開示と一致する別の実施例のシステムダイヤグラム600を示している。システム600は、モバイルプラットフォーム610であってよく、もしくは、例えば、スマートフォン、スマートタブレット、パーソナルデジタルアシスタント(PDA)、モバイルインターネットデバイス(MID)、コンバーチブルタブレット、ノートブックまたはラップトップコンピュータ、または、あらゆる他の適切なデバイスといった、コンピューティングデバイスであってよい。しかしながら、ここにおいて説明されるシステムの実施例は、モバイルプラットフォームに限定されるものではないこと、そして、いくつかの実施例において、システム600は、ワークステーションまたはデスクトップコンピュータであってよいこと、が正しく理解されよう。
システム600は、プロセッサ620を含むように示されている。いくつかの実施例において、プロセッサ620は、あらゆる数量のプロセッサコアとして実装されてよい。プロセッサ(またはプロセッサコア)は、あらゆるタイプのプロセッサであってよい。例えば、マイクロプロセッサ、エンベッドされたプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロトコル、フィールドプログラマブルゲートアレイ、または、コードを実行するように構成された他のデバイス、といったものである。プロセッサ620は、シングルスレッドコア、または、その中にコア毎に一つ以上のハードウェアスレッドコンテクスト(または「論理プロセッサ(”logical processor”)」)を含み得るマルチスレッドコアであってよい。システム600は、また、プロセッサ620に接続されたメモリを含むように示されている。メモリは、揮発性メモリ112および不揮発性メモリ114を含んでよい。メモリは、当業者について知られているように、または、そうでなければ利用可能であるように、多種多様なメモリ(メモリ階層及び/又はメモリキャッシュの様々なレイヤを含む)のうちあらゆるものであってよい。プロセッサ620とメモリ112、114は、一つまたはそれ以上のオペレーティングシステム、ファームウェアインターフェイス、ユーザアプリケーション、または他のソフトウェアモジュールを保管、ホスト、及び/又は実行するように構成されてよいことが正しく理解されよう。これらのアプリケーションは、例えば、これらに限定されるわけではないが、あらゆるタイプの計算、通信、データ管理、データストレージ、及び/又は、ユーザインターフェイスタスクを含んでよい。いくつかの実施例において、これらのアプリケーションは、モバイルプラットフォーム610のあらゆる他のコンポーネントを使用し、または、相互作用してよい。
システム600は、また、例えば、プラットフォームへのイーサネット(登録商標)接続性(Ethernet connectivity)を提供するように構成され得る、ネットワークインターフェイスモジュール640を含むようにも示されている。システム600は、また、無線通信モジュール650を含むようにも示されている。例えば、セルラー通信、ワイファイ(WiFi)、ブルートゥース(登録商標)(R)、及び/又は、近距離無線通信(NFC)といった、無線通信機能を含んでよい。無線通信は、あらゆる既存の、または、まだ開発されている通信標準に準拠し、または、そうでなければコンパチブルなものであってよい。ブルートゥース(登録商標)(R)、Wi−Fi、および、携帯電話通信標準の過去、現在、および将来のバージョンを含むものである。
システム600は、また、入力/出力(IO)システムまたはコントローラ630を含むようにも示されている。プロセッサ620と、システム600の他のエレメント又はシステム600の外部の他のエレメント(図示なし)との間のデータ通信を可能にし、または、管理するように構成され得るものである。
システムは、一般的に、例えば、タッチスクリーン、液晶ディスプレイ(LCD)、または、あらゆる他の適切なディスプレイタイプ、といったディスプレイエレメント660を介して、ユーザに対して様々なインターフェイスを提供してよい。
システム600は、また、PMICモジュール108とリザーブエネルギ保管モジュール116を含むようにも示されている。そのオペレーションは、上記に詳細に説明されてきている。
いくつかの実施例においては、システム600の様々なコンポーネントが、システムオンチップ(SoC)アーキテクチャにおいて結合されてよいことが正しく理解されよう。いくつかの実施例において、コンポーネントは、ハードウェアコンポーネント、ファームウェアコンポーネント、ソフトウェアコンポーネント、もしくは、ハードウェア、ファームウェア、又はソフトウェアのあらゆる適切な組み合わせであってよい。
ここにおいて説明された実施例は、一つまたはそれ以上のストレージ媒体を含むシステムにおいて実施されてよい。一つまたはそれ以上のプロセッサによって実行されると、本方法を実行するインストラクションを、個別に、または、組み合わせて保管している媒体である。ここで、プロセッサは、例えば、システムCPU(例えば、コアプロセッサ)、及び/又は、プログラマブル回路を含んでよい。従って、ここにおいて説明された方法に応じたオペレーションは、例えば、いくつかの異なる物理的ロケーションでの処理構成といった、複数の物理的デバイスにわたり分配されてよいことが意図されている。また、当業者によって理解されるであろうように、本方法のオペレーションは、個別に、または、部分的な組み合わせにおいて実行されてよいことも意図されている。従って、それぞれのフローチャートの必ずしも全てのオペレーションが実行される必要はなく、そして、本開示は、当業者によって理解されるであろうように、そうしたオペレーションの全ての部分的な組み合わせが可能であることを明示的に意図するものである。
ストレージ媒体は、あらゆるタイプの有形の媒体を含んでよい。例えば、フロッピー(登録商標)ディスク、光ディスク、コンパクトディスク読出し専用メモリ(CD−ROM)、再書込み可能コンパクトディスク(CD−RW)、デジタル多目的ディスク(DVD)、および光磁気ディスクを含むあらゆるタイプのディスク、読出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)といった半導体デバイス、ダイナミック及びスタティックRAM、消去可能プログラム可能読出し専用メモリ(EPROM)、電気的消去可能プログラム可能読出し専用メモリ(EEPROM)、フラッシュメモリ、磁気又は光カード、または、電子的インストラクションを保管するために適切なあらゆるタイプの媒体といったものである。
「回路(”circuitry”)」は、ここにおけるあらゆる実施例において使用されるように、例えば、単独で又はあらゆる組み合わせにおいて、ハード・ワイヤード(hardwired)回路、プログラム可能回路、状態機械回路、及び/又は、プログラム可能回路によって実行されるインストラクションを保管するファームウェアを含んでよい。アプリケーション(app)は、ホストプロセッサといったプログラム可能回路または他のプログラム可能回路において実行され得るコードまたはインストラクションとして具現化されてよい。モジュールは、ここにおけるあらゆる実施例において使用されるように、回路として具現化されてよい。回路は、集積回路チップといった、集積回路として具現化されてよい。
従って、本開示は、例えば、電力喪失の場合に、メモリ書込み一貫性を提供するための耐性があるストレージを伴うUEFIに対する、システム、デバイス、方法、および、コンピュータで読取り可能な媒体を提供する。以下の例示は、さらなる実施例に関連するものである。
実施例1に従って、ファームウェアインターフェイスのために耐性があるストレージを提供するシステムが提供される。本システムは、ファームウェアインターフェイスをホストするためのプロセッサを含んでよく、ファームウェアインターフェイスは、揮発性メモリの保護領域におけるシステム変数へのアクセスをコントロールする。この実施例のシステムは、また、プロセッサに対して電力を提供し、かつ、さらに、ファームウェアインターフェイスに対して電力喪失インジケータを提供するための電力管理回路も含んでよい。この実施例のシステムは、さらに、電力喪失インジケータに応じて、プロセッサに対して電力を提供するリザーブエネルギ保管モジュールを含んでよい。この実施例のファームウェアインターフェイスは、電力喪失インジケータに応じて、システム変数を揮発性メモリから不揮発性メモリへコピーするように構成されてよい。
実施例2は、上記の実施例に係るエレメントを含んでよく、かつ、リザーブエネルギ保管モジュールは、キャパシタである。
実施例3は、上記の実施例に係るエレメントを含んでよく、かつ、プロセッサは、さらに、オペレーティングシステム(OS)をホストし、ファームウェアインターフェイスは、OSによるシステム変数へのアクセスをコントロールする。
実施例4は、上記の実施例に係るエレメントを含んでよく、かつ、さらに、オペレーティングシステム(OS)をホストするための第2プロセッサを含み、ファームウェアインターフェイスは、OSによるシステム変数へのアクセスをコントロールする。
実施例5は、上記の実施例に係るエレメントを含んでよく、かつ、電力喪失インジケータは、ファームウェアインターフェイスのシステム管理インタラプト(SMI)と関連付けされている。
実施例6は、上記の実施例に係るエレメントを含んでよく、かつ、ファームウェアインターフェイスは、さらに、システム変数を不揮発性メモリへコピーした後で、OSに対してマスクできないインタラプト(NMI)を生成する。
実施例7は、上記の実施例に係るエレメントを含んでよく、かつ、電力管理回路は、さらに、リザーブエネルギ保管モジュールを充電する。
実施例8は、上記の実施例に係るエレメントを含んでよく、かつ、ファームウェアインターフェイスは、ユニファイド・エクステンシブル・ファームウェア・インターフェイス(UEFI)である。
実施例9は、上記の実施例に係るエレメントを含んでよく、かつ、リザーブエネルギ保管モジュールは、バッテリーである。
実施例10は、上記の実施例に係るエレメントを含んでよく、かつ、揮発性メモリは、ダイナミックランダムアクセスメモリ(DRAM)である。
実施例11は、上記の実施例に係るエレメントを含んでよく、かつ、不揮発性メモリは、フラッシュメモリである。
実施例12は、上記の実施例に係るエレメントを含んでよく、かつ、本システムは、スマートフォン、スマートタブレット、または、ラップトップコンピュータである。
実施例13に従って、ファームウェアインターフェイスによって、耐性があるストレージを提供するための方法が提供される。本方法は、ファームウェアインターフェイスによって、揮発性メモリの保護領域におけるシステム変数へのアクセスをコントロールするステップを含んでよい。この実施例の方法は、また、ファームウェアインターフェイスに対して電力喪失インジケータを提供するステップも含んでよい。この実施例の方法は、さらに、電力喪失インジケータに応じて、リザーブエネルギ保管モジュールからの電力供給に切り替えるステップを含んでよい。この実施例の方法は、さらに、ファームウェアインターフェイスによって、電力喪失インジケータに応じて、システム変数を揮発性メモリから不揮発性メモリへコピーするステップを含んでよい。
実施例14は、上記の実施例に係るオペレーションを含んでよく、かつ、リザーブエネルギ保管モジュールは、キャパシタである。
実施例15は、上記の実施例に係るオペレーションを含んでよく、かつ、システム変数は、オペレーティングシステム(OS)によって、コントロール可能にアクセスされる。
実施例16は、上記の実施例に係るオペレーションを含んでよく、かつ、さらに、ファームウェアインターフェイスのシステム管理インタラプト(SMI)を生成するステップを含み、SMIは、電力喪失インジケータと関連付けされている。
実施例17は、上記の実施例に係るオペレーションを含んでよく、かつ、さらに、システム変数を不揮発性メモリへコピーした後で、OSに対してマスクできないインタラプト(NMI)を生成するステップを含む。
実施例18は、上記の実施例に係るオペレーションを含んでよく、かつ、さらに、リザーブエネルギ保管モジュールを充電するステップを含む。
実施例19は、上記の実施例に係るオペレーションを含んでよく、かつ、ファームウェアインターフェイスは、ユニファイド・エクステンシブル・ファームウェア・インターフェイス(UEFI)である。
実施例20に従って、ファームウェアインターフェイスによって、耐性があるストレージを提供するためのシステムが提供される。システムは、ファームウェアインターフェイスによって、揮発性メモリの保護領域におけるシステム変数へのアクセスをコントロールするための手段を含んでよい。この実施例のシステムは、また、ファームウェアインターフェイスに対して電力喪失インジケータを提供するための手段も含んでよい。この実施例のシステムは、さらに、電力喪失インジケータに応じて、リザーブエネルギ保管モジュールからの電力供給に切り替えるための手段を含んでよい。この実施例のシステムは、さらに、ファームウェアインターフェイスによって、電力喪失インジケータに応じて、システム変数を揮発性メモリから不揮発性メモリへコピーするための手段を含んでよい。
実施例21は、上記の実施例に係るエレメントを含んでよく、かつ、リザーブエネルギ保管モジュールは、キャパシタである。
実施例22は、上記の実施例に係るエレメントを含んでよく、かつ、システム変数は、オペレーティングシステム(OS)によって、コントロール可能にアクセスされる。
実施例23は、上記の実施例に係るエレメントを含んでよく、かつ、さらに、ファームウェアインターフェイスのシステム管理インタラプト(SMI)を生成するための手段を含み、SMIは、電力喪失インジケータと関連付けされている。
実施例24は、上記の実施例に係るエレメントを含んでよく、かつ、さらに、システム変数を不揮発性メモリへコピーした後で、OSに対してマスクできないインタラプト(NMI)を生成するための手段を含む。
実施例25は、上記の実施例に係るエレメントを含んでよく、かつ、さらに、リザーブエネルギ保管モジュールを充電するための手段を含む。
実施例26は、上記の実施例に係るエレメントを含んでよく、かつ、ファームウェアインターフェイスは、ユニファイド・エクステンシブル・ファームウェア・インターフェイス(UEFI)である。
別の実施例に従って、少なくとも一つのコンピュータで読取り可能な記憶媒体が提供される。プロセッサによって実行されると、上記のあらゆる実施例において説明されたように、本方法のオペレーションを実行させるインストラクションが保管されたものである。
別の実施例に従って、上記のあらゆる実施例において説明されたように、本方法を実行するための手段を含む装置が提供される。
ここにおいて使用されてきた用語と表現は、説明に係る用語として使用されており、限定するものではない。そうした用語と表現の使用においては、示され、かつ、説明された特徴に係るあらゆる均等物(または、それらの部分)を排除する意図は存在しない。そして、請求の範囲内において種々の変更が可能であることが理解される。従って、請求項は、そうした均等物の全てをカバーするように意図されているものである。様々な特徴、態様、及び実施例が、ここにおいて説明されてきた。特徴、態様、及び実施例は、当業者であれば理解されるように、変形および変更と同様に、お互いに組み合わされることが可能である。本開示は、従って、そうした組み合わせ、変形、および変更を包含するものと考えられるべきである。

Claims (26)

  1. ファームウェアインターフェイスのために耐性があるストレージを提供するシステムであって、
    前記ファームウェアインターフェイスをホストするためのプロセッサであり、前記ファームウェアインターフェイスは、揮発性メモリの保護領域におけるシステム変数へのアクセスをコントロールする、プロセッサと、
    前記プロセッサに対して電力を提供し、かつ、さらに、前記ファームウェアインターフェイスに対して電力喪失インジケータを提供する、電力管理回路と、
    前記電力喪失インジケータに応じて、前記プロセッサに対して電力を提供するリザーブエネルギ保管モジュールと、
    を含み、
    前記ファームウェアインターフェイスは、さらに、前記電力喪失インジケータに応じて、前記システム変数を前記揮発性メモリから不揮発性メモリへコピーする、
    システム。
  2. 前記リザーブエネルギ保管モジュールは、キャパシタである、
    請求項1に記載のシステム。
  3. 前記プロセッサは、さらに、オペレーティングシステム(OS)をホストし、
    前記ファームウェアインターフェイスは、前記OSによる前記システム変数へのアクセスをコントロールする、
    請求項1または2に記載のシステム。
  4. 前記システムは、さらに、
    オペレーティングシステム(OS)をホストするための第2プロセッサを含み、
    前記ファームウェアインターフェイスは、前記OSによる前記システム変数へのアクセスをコントロールする、
    請求項1または2に記載のシステム。
  5. 前記電力喪失インジケータは、前記ファームウェアインターフェイスのシステム管理インタラプト(SMI)と関連付けされている、
    請求項1乃至4いずれか一項に記載のシステム。
  6. 前記ファームウェアインターフェイスは、さらに、
    前記システム変数を前記不揮発性メモリへコピーした後で、前記OSに対してマスクできないインタラプト(NMI)を生成する、
    請求項3に記載のシステム。
  7. 前記電力管理回路は、さらに、前記リザーブエネルギ保管モジュールを充電する、
    請求項1乃至6いずれか一項に記載のシステム。
  8. 前記ファームウェアインターフェイスは、ユニファイド・エクステンシブル・ファームウェア・インターフェイス(UEFI)である、
    請求項1乃至7いずれか一項に記載のシステム。
  9. 前記リザーブエネルギ保管モジュールは、バッテリーである、
    請求項1乃至8いずれか一項に記載のシステム。
  10. 前記揮発性メモリは、ダイナミックランダムアクセスメモリ(DRAM)である、
    請求項1乃至9いずれか一項に記載のシステム。
  11. 前記不揮発性メモリは、フラッシュメモリである、
    請求項1乃至10いずれか一項に記載のシステム。
  12. 前記システムは、スマートフォン、スマートタブレット、または、ラップトップコンピュータである、
    請求項1乃至11いずれか一項に記載のシステム。
  13. ファームウェアインターフェイスによって耐性があるストレージを提供するための方法であって、
    前記ファームウェアインターフェイスによって、揮発性メモリの保護領域におけるシステム変数へのアクセスをコントロールするステップと、
    前記ファームウェアインターフェイスに対して電力喪失インジケータを提供するステップと、
    前記電力喪失インジケータに応じて、リザーブエネルギ保管モジュールからの電力供給に切り替えるステップと、
    前記ファームウェアインターフェイスによって、前記電力喪失インジケータに応じて、前記システム変数を前記揮発性メモリから不揮発性メモリへコピーするステップと、
    を含む、方法。
  14. 前記リザーブエネルギ保管モジュールは、キャパシタである、
    請求項13に記載の方法。
  15. 前記システム変数は、オペレーティングシステム(OS)によって、コントロール可能にアクセスされる、
    請求項13または14に記載の方法。
  16. 前記方法は、さらに、
    前記ファームウェアインターフェイスのシステム管理インタラプト(SMI)を生成するステップ、を含み、
    前記SMIは、前記電力喪失インジケータと関連付けされている、
    請求項13乃至15いずれか一項に記載の方法。
  17. 前記方法は、さらに、
    前記システム変数を前記不揮発性メモリへコピーした後で、前記OSに対してマスクできないインタラプト(NMI)を生成するステップ、
    を含む、請求項15に記載の方法。
  18. 前記方法は、さらに、
    前記リザーブエネルギ保管モジュールを充電するステップ、
    を含む、請求項13乃至17いずれか一項に記載の方法。
  19. 前記ファームウェアインターフェイスは、ユニファイド・エクステンシブル・ファームウェア・インターフェイス(UEFI)である、
    請求項13乃至18いずれか一項に記載の方法。
  20. プロセッサによって実行されると、ファームウェアインターフェイスによって耐性があるストレージを提供するためのオペレーションを実施するインストラクションを含むコンピュータプログラムであって、前記オペレーションは、
    前記ファームウェアインターフェイスによって、揮発性メモリの保護領域におけるシステム変数へのアクセスをコントロールするステップと、
    前記ファームウェアインターフェイスに対して電力喪失インジケータを提供するステップと、
    前記電力喪失インジケータに応じて、リザーブエネルギ保管モジュールからの電力供給に切り替えるステップと、
    前記ファームウェアインターフェイスによって、前記電力喪失インジケータに応じて、前記システム変数を前記揮発性メモリから不揮発性メモリへコピーするステップと、
    を含む、コンピュータプログラム。
  21. 前記システム変数は、オペレーティングシステム(OS)によって、コントロール可能にアクセスされる、
    請求項20に記載のコンピュータプログラム。
  22. 前記オペレーションは、さらに、
    前記ファームウェアインターフェイスのシステム管理インタラプト(SMI)を生成するステップ、を含み、
    前記SMIは、前記電力喪失インジケータと関連付けされている、
    請求項20または21に記載のコンピュータプログラム。
  23. 前記オペレーションは、さらに、
    前記システム変数を前記不揮発性メモリへコピーした後で、前記OSに対してマスクできないインタラプト(NMI)を生成するステップ、
    を含む、請求項21に記載のコンピュータプログラム。
  24. 前記オペレーションは、さらに、
    前記リザーブエネルギ保管モジュールを充電するステップ、
    を含む、請求項20乃至23いずれか一項に記載のコンピュータプログラム。
  25. 前記ファームウェアインターフェイスは、ユニファイド・エクステンシブル・ファームウェア・インターフェイス(UEFI)である、
    請求項20乃至24いずれか一項に記載のコンピュータプログラム。
  26. 請求項20乃至25いずれか一項に記載のコンピュータプログラムを記憶したコンピュータ読取り可能な記憶媒体。
JP2016573050A 2014-06-23 2015-05-14 耐性があるメモリストレージを伴うファームウェアインターフェイス Pending JP2017521768A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/312,017 US9703346B2 (en) 2014-06-23 2014-06-23 Firmware interface with backup non-volatile memory storage
US14/312,017 2014-06-23
PCT/US2015/030700 WO2015199830A1 (en) 2014-06-23 2015-05-14 Firmware interface with durable memory storage

Publications (1)

Publication Number Publication Date
JP2017521768A true JP2017521768A (ja) 2017-08-03

Family

ID=54869580

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016573050A Pending JP2017521768A (ja) 2014-06-23 2015-05-14 耐性があるメモリストレージを伴うファームウェアインターフェイス

Country Status (6)

Country Link
US (1) US9703346B2 (ja)
EP (1) EP3158452B1 (ja)
JP (1) JP2017521768A (ja)
KR (1) KR20160146937A (ja)
CN (2) CN106462483A (ja)
WO (1) WO2015199830A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9594929B2 (en) * 2014-08-11 2017-03-14 Honeywell International Inc. Open architecture security methods and systems
US10078597B2 (en) * 2015-04-03 2018-09-18 Via Alliance Semiconductor Co., Ltd. System and method of distinguishing system management mode entries in a translation address cache of a processor
US10366224B2 (en) 2016-06-22 2019-07-30 Dell Products, Lp System and method for securing secure memory allocations in an information handling system
US10185553B2 (en) * 2016-06-30 2019-01-22 Microsoft Technology Licensing, Llc Fault-tolerant variable region repaving during firmware over the air update
US10140117B2 (en) 2016-06-30 2018-11-27 Microsoft Technology Licensing, Llc Fault-tolerant variable region repaving during firmware over the air update
US10152393B2 (en) * 2016-08-28 2018-12-11 Microsoft Technology Licensing, Llc Out-of-band data recovery in computing systems
US10521216B2 (en) 2017-01-17 2019-12-31 Oracle International Corporation Unified extensible firmware interface updates
JP6802484B2 (ja) * 2017-02-10 2020-12-16 富士通株式会社 ストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法
US11036408B2 (en) 2017-03-26 2021-06-15 Oracle International Corporation Rule-based modifications in a data storage appliance monitor
US10318417B2 (en) * 2017-03-31 2019-06-11 Intel Corporation Persistent caching of memory-side cache content
US10496443B2 (en) * 2017-05-03 2019-12-03 Vmware, Inc. OS/hypervisor-based persistent memory
US10474550B2 (en) 2017-05-03 2019-11-12 Vmware, Inc. High availability for persistent memory
US20200117468A1 (en) * 2017-07-03 2020-04-16 Hewlett-Packard Development Company, L.P. Shutdown sequence of thin clients
CN110363034B (zh) * 2019-06-28 2023-05-05 联想企业解决方案(新加坡)有限公司 解锁信息处理装置的存储器中的持久区域的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008522322A (ja) * 2004-12-03 2008-06-26 インテル・コーポレーション 電力障害によるデータ損失の防止
JP2013061799A (ja) * 2011-09-13 2013-04-04 Toshiba Corp 記憶装置、記憶装置の制御方法およびコントローラ

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4309369A1 (de) * 1993-03-23 1994-09-29 Siemens Nixdorf Inf Syst Netzausfallüberbrückung
CN1155696A (zh) * 1995-12-13 1997-07-30 惠普公司 用主高速缓存器和打印机高速缓存器提高文本打印性能
US6195754B1 (en) * 1997-01-28 2001-02-27 Tandem Computers Incorporated Method and apparatus for tolerating power outages of variable duration in a multi-processor system
US6848046B2 (en) 2001-05-11 2005-01-25 Intel Corporation SMM loader and execution mechanism for component software for multiple architectures
US20050010811A1 (en) 2003-06-16 2005-01-13 Zimmer Vincent J. Method and system to support network port authentication from out-of-band firmware
US20050193259A1 (en) 2004-02-17 2005-09-01 Martinez Juan I. System and method for reboot reporting
US20090113220A1 (en) * 2007-10-26 2009-04-30 Sang Han Lee Encrypted backup data storage device and storage system using the same
US8316244B1 (en) * 2008-05-13 2012-11-20 Netapp, Inc. Power failure system and method for storing request information
US8289801B2 (en) * 2009-09-09 2012-10-16 Fusion-Io, Inc. Apparatus, system, and method for power reduction management in a storage device
EP2437171B1 (de) * 2010-09-09 2013-05-01 Siemens Aktiengesellschaft Datenspeichersystem und Verfahren
US9158700B2 (en) * 2012-01-20 2015-10-13 Seagate Technology Llc Storing cached data in over-provisioned memory in response to power loss
CN103377063B (zh) * 2012-04-28 2016-06-22 国际商业机器公司 从遗留操作系统环境恢复到uefi预启动环境的方法和系统
US9678732B2 (en) 2012-09-14 2017-06-13 Intel Corporation Firmware agent
US20140082406A1 (en) * 2012-09-18 2014-03-20 Sandisk Technologies Inc. Data protection through power loss prediction
US8677097B1 (en) * 2012-10-17 2014-03-18 Avalance Technology, Inc. Persistent block storage attached to memory bus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008522322A (ja) * 2004-12-03 2008-06-26 インテル・コーポレーション 電力障害によるデータ損失の防止
JP2013061799A (ja) * 2011-09-13 2013-04-04 Toshiba Corp 記憶装置、記憶装置の制御方法およびコントローラ

Also Published As

Publication number Publication date
CN114879828A (zh) 2022-08-09
CN106462483A (zh) 2017-02-22
WO2015199830A1 (en) 2015-12-30
US9703346B2 (en) 2017-07-11
KR20160146937A (ko) 2016-12-21
EP3158452B1 (en) 2021-12-01
US20150370302A1 (en) 2015-12-24
EP3158452A4 (en) 2018-04-18
EP3158452A1 (en) 2017-04-26

Similar Documents

Publication Publication Date Title
JP2017521768A (ja) 耐性があるメモリストレージを伴うファームウェアインターフェイス
JP6333993B2 (ja) ハードウェアプラットフォームのためのファームウェアのインシステムプロビジョニング
KR101343704B1 (ko) 공유된 비휘발성 메모리 아키텍쳐
US20150089287A1 (en) Event-triggered storage of data to non-volatile memory
US9658930B2 (en) Method and device for managing hardware errors in a multi-core environment
TW201502990A (zh) 唯讀記憶體之修補啓動碼
TW201239759A (en) BIOS update method and computer system for using the same
JP2018523201A (ja) ファームウェア関連イベント通知
CN114222975A (zh) 使用存储器孔径冲刷顺序的数据保存
KR20150018041A (ko) 웨이크-업 시간을 줄일 수 있는 시스템 온 칩, 이의 동작 방법, 및 상기 시스템 온 칩을 포함하는 컴퓨터 시스템
TW201525869A (zh) 用於雙作業系統記憶體切換的系統及方法
WO2013013396A1 (zh) 基本输入/输出系统bios配置数据管理方法及系统
CN107408034B (zh) 执行上下文迁移方法和装置
US20150186311A1 (en) Smart direct memory access
US20210357202A1 (en) Firmware updating
US10628168B2 (en) Management with respect to a basic input/output system policy
CN105556461A (zh) 用于预os镜像重写以提供跨架构支持、安全性自省和性能优化的技术
US9910677B2 (en) Operating environment switching between a primary and a secondary operating system
US20130166852A1 (en) Method for hibernation mechanism and computer system therefor
US11204781B2 (en) Optimizing power, memory and load time of a computing system during image loading based on image segmentation
US10613850B1 (en) Performant and secure storage and retrieval of firmware variables
WO2023010265A1 (en) Firmware update technologies
JP2011180840A (ja) プロセッサ、マルチプロセッサシステム、及びメモリアクセス不正検出方法
JPWO2013136457A1 (ja) 仮想計算機システム、情報保存処理プログラム及び情報保存処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170912

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20171208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180208

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180717