JP2022536681A - 不揮発性記憶区画識別子 - Google Patents

不揮発性記憶区画識別子 Download PDF

Info

Publication number
JP2022536681A
JP2022536681A JP2021573383A JP2021573383A JP2022536681A JP 2022536681 A JP2022536681 A JP 2022536681A JP 2021573383 A JP2021573383 A JP 2021573383A JP 2021573383 A JP2021573383 A JP 2021573383A JP 2022536681 A JP2022536681 A JP 2022536681A
Authority
JP
Japan
Prior art keywords
volatile
volatile storage
partition
computing device
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.)
Pending
Application number
JP2021573383A
Other languages
English (en)
Other versions
JPWO2020251687A5 (ja
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 JP2022536681A publication Critical patent/JP2022536681A/ja
Publication of JPWO2020251687A5 publication Critical patent/JPWO2020251687A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0284Multiple user address space allocation, e.g. using different base addresses
    • 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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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
    • G06F12/1425Protection 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 the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection 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 the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)

Abstract

Figure 2022536681000001
メモリモジュールを含むコンピューティングデバイス。コンピューティングデバイスは、オペレーティングシステムの命令を実行することによって、メモリモジュールの不揮発性領域を、オペレーティングシステムに割り当てられた第1の不揮発性記憶区画およびシステムファームウェアに割り当てられた第2の不揮発性記憶区画に分割するように構成された、プロセッサをさらに含むことができる。プロセッサは、グローバル一意識別子(GUID)を不揮発性領域に書き込むことができる。GUIDは、第1の不揮発性記憶区画と第2の不揮発性記憶区画との間の境界のロケーションを示すことができる。プロセッサは、第1の不揮発性記憶区画にアクセスすることができる。システムファームウェアの命令を実行することによって、プロセッサは境界のロケーションを決定することができる。プロセッサは、第2の不揮発性記憶区画にアクセスすることができる。オペレーティングシステムは、第2の不揮発性記憶区画へのアクセスが妨げられ得、システムファームウェアは、第1の不揮発性記憶区画へのアクセスが妨げられ得る。

Description

[0001]ソフトウェア定義記憶クラスメモリは、いくつかのコンピューティングデバイスにおいて使用される記憶デバイスの特別なクラスである。実行時、ソフトウェア定義記憶クラスメモリは、揮発性メモリとして作用する。コンピューティングデバイスがシャットダウンされると、ソフトウェア定義記憶クラスメモリは、不揮発性メモリとして作用する。ソフトウェア定義記憶クラスメモリのこの機能は、揮発性メモリ領域および不揮発性記憶区画のファームウェア支援結合を介して可能となる。
[0002]本開示の一態様によれば、メモリモジュールを含むコンピューティングデバイスが提供される。コンピューティングデバイスは、オペレーティングシステムの命令を実行することによって、メモリモジュールの不揮発性領域を、オペレーティングシステムに割り当てられた第1の不揮発性記憶区画、およびシステムファームウェアに割り当てられた第2の不揮発性記憶区画に分割するように構成された、プロセッサをさらに含むことができる。プロセッサは、グローバル一意識別子(GUID)をメモリモジュールの不揮発性領域に書き込むようにさらに構成され得る。GUIDは、第1の不揮発性記憶区画と第2の不揮発性記憶区画との間の境界を示すことができる。プロセッサは、オペレーティングシステムの命令を実行することによって、第1の不揮発性記憶区画にアクセスするようにさらに構成され得る。システムファームウェアの命令を実行することによって、プロセッサは、境界のロケーションを決定するようにさらに構成され得る。システムファームウェアの命令を実行することによって、プロセッサは、境界のロケーションの決定に応答して、第2の不揮発性記憶区画にアクセスするようにさらに構成され得る。オペレーティングシステムは、第2の不揮発性記憶区画へのアクセスを妨げられ得、システムファームウェアは、第1の不揮発性記憶区画へのアクセスを妨げられ得る。
[0003]本発明の概要は、概念の選択を簡略化された形で紹介するために提供され、概念は下記の発明を実施するための形態でさらに説明される。本発明の概要は、請求される主題の主な特徴または本質的な特徴を識別することは意図されておらず、また、請求される主題の範囲を限定するために使用されることも意図されていない。さらに、請求される主題は、本開示のいずれかの部分に示される任意またはすべての欠点を解決する実装形態に限定されない。
[0004]一例示的実施形態に従った、メモリモジュールおよびプロセッサを含む、例示的コンピューティングデバイスを概略的に示す図である。 [0005]図1のコンピューティングデバイスのメモリモジュールを概略的に示す図である。 [0006]図1のメモリモジュールの不揮発性領域を概略的に示す図である。 [0007]図1の実施形態に従った、メモリモジュールの不揮発性領域を分割するときに実行され得るステップの、例示的タイムラインを示す図である。 [0008]図1の実施形態に従った、コンピューティングデバイスで実行され得る例示的方法を示すフローチャートである。 [0009]いくつかの実施形態において実行され得る、図5の方法の追加ステップを示す図である。 [0010]メモリモジュールが揮発性領域を含むときにいくつかの実施形態において実行され得る、図5の方法の追加ステップを示す図である。 [0011]図1のコンピュータデバイスが実施され得る例示のコンピューティング環境を示す概略図である。
[0012]不揮発性デュアル・インライン・メモリ・モジュール(NVDIMM)などのソフトウェア定義記憶クラスメモリは、基本入力/出力システム(BIOS)またはユニファイド・エクステンシブル・ファームウェア・インターフェース(UEFI)などの、オペレーティングシステムとシステムファームウェアとの間で不揮発性記憶を分割するために使用され得る。不揮発性記憶がオペレーティングシステムとシステムファームウェアとの間で分割されるとき、オペレーティングシステムおよびシステムファームウェアの各々には、不揮発性記憶のそれぞれの区画があてがわれ(assigned)得る。各々に割り当てられる記憶の量は、ユーザによって指定され得、それにより、様々なコンテキストおよび使用の場合において、オペレーティングシステムおよびシステムファームウェアに様々な量の記憶をあてがうことが可能となる。
[0013]新規のサーバコンピューティングデバイスがデータセンタにインストールされる場合、新規のサーバコンピューティングデバイスに含まれるすべての記憶媒体は、典型的にはセキュリティ手段としてフォーマット化される。したがって、新規のサーバコンピューティングデバイスがインストールされるとき、記憶媒体の区画は典型的には削除される。ソフトウェア定義記憶クラスメモリによって指定された不揮発性メモリの区画がこのように削除されるとき、ユーザは、オペレーティングシステムとシステムファームウェアとの間の不揮発性記憶を再割り当てしなければならない可能性がある。したがって、新規のサーバコンピューティングデバイスをインストールするユーザは、不揮発性記憶を再区分化するために追加のリソースを費やさなければならない可能性がある。
[0014]上記で論じた問題に対処するために、図1の例示的実施形態で概略的に示されるように、コンピューティングデバイス10が提供される。図1のコンピューティングデバイス10は、プログラム命令を実行するように構成されたプロセッサ12を含むことができる。コンピューティングデバイス10は、プロセッサ12に動作可能に結合されたメモリモジュール14をさらに含むことができる。図1に示されるようなメモリモジュール14は、たとえば、コンピューティングデバイス10のマザーボードを介してプロセッサ12に結合されるメモリチップであり得る、ハードウェアデバイスである。メモリモジュール14は、不揮発性領域20および揮発性領域30を含むことができる。
[0015]図2の例に示されるように、メモリモジュール14は、1つまたは複数の不揮発性記憶ドライブ16および1つまたは複数の揮発性メモリデバイス18を含むことができる。たとえば、メモリモジュール14は不揮発性デュアル・インライン・メモリ・モジュール(NVDIMM)であり得る。NVDIMMは、1つまたは複数の不揮発性メモリエクスプレス(NVMe)ドライブなどの、1つまたは複数の不揮発性記憶ドライブ16として1つまたは複数のM.2ドライブを含むことができる。1つまたは複数の揮発性メモリデバイス18は、たとえば、ダイナミックランダムアクセスメモリ(DRAM)デバイスであり得る。追加または代替として、1つまたは複数の他のタイプの不揮発性記憶ドライブ16または揮発性メモリデバイス18が、ハードディスクまたはフラッシュメモリなどのメモリモジュール14内に含まれ得る。
[0016]図1に戻ると、コンピューティングデバイスのプロセッサ12は、オペレーティングシステム40を実行するための命令を実行するように構成され得る。プロセッサ12は、システムファームウェア50を実行するための命令を実行するようにさらに構成され得る。システムファームウェア50は、前述のようにBIOSまたはUEFIであり得る。オペレーティングシステム40の命令を実行することによって、プロセッサ12は、メモリモジュール14の不揮発性領域20を、オペレーティングシステム40に割り当てられた第1の不揮発性記憶区画22およびシステムファームウェア50に割り当てられた第2の不揮発性記憶区画24に分割するようにさらに構成され得る。いくつかの実施形態においてプロセッサ12は、不揮発性領域を2つより多くの区画に分割するように構成され得る。こうした実施形態において、第1の不揮発性記憶区画22および第2の不揮発性記憶区画24以外の1つまたは複数の追加の区画が、各々、オペレーティングシステム40、システムファームウェア50、またはプロセッサ12上で実行される何らかの他のプロセスに割り当てられ得る。こうした実施形態において、プロセッサ12は、複数のオペレーティングシステム40を実行するようにさらに構成され得る。それぞれの区画が、複数のオペレーティングシステム40のうちの各オペレーティングシステム40に割り当てられ得る。
[0017]オペレーティングシステム40の命令を実行することによって、プロセッサ12は、グローバル一意識別子(GUID)26をメモリモジュール14の不揮発性領域20に書き込むようにさらに構成され得る。GUID26は、第1の不揮発性記憶区画22と第2の不揮発性記憶区画24との間の境界68のロケーション44を示すことができる。いくつかの実施形態において、GUID26は、不揮発性領域20のGUID区画テーブル(GPT)に書き込まれ得る。他の実施形態において、GUID26は、下記でさらに詳細に考察するように、不揮発性領域20の何らかの他の部分に書き込まれ得る。
[0018]図3は、一例示的実施形態に従った、メモリモジュール14の不揮発性領域20をさらに詳細に示す。図3の例において、GUID26は、オペレーティングシステム40およびシステムファームウェア50の両方によってアクセス可能であり得る、共有記憶領域56に書き込まれる。図3は、第1の不揮発性記憶区画22と第2の不揮発性記憶区画24との間の境界68も示す。GUID26に加えて、共有記憶ロケーション56は、境界68のロケーション44を示すことができる。
[0019]図3は、不揮発性領域20が分割される複数のメモリ間隔66も示す。プロセッサ12は、第1の不揮発性記憶区画22と第2の不揮発性記憶区画24との間の境界68が、複数のメモリ間隔66のうちの1つのメモリ間隔66と位置合わせされるように、不揮発性領域20を分割するようにさらに構成され得る。各メモリ間隔66は所定の長さを有することができる。たとえば各メモリ間隔66は、長さ4kBであってよい。他の実施形態において、各メモリ間隔66は、2kBまたは8kBなどの何らかの他の所定の長さを有することができる。
[0020]いくつかの実施形態において、プロセッサ12は、不揮発性領域20の合計サイズ60およびメモリモジュール14に含まれる不揮発性記憶ドライブ16の数に少なくとも部分的に基づいて、第1の不揮発性記憶区画22の第1の区画サイズ62および第2の不揮発性記憶区画24の第2の区画サイズ64を決定するようにさらに構成され得る。たとえばプロセッサ12は、不揮発性記憶ドライブ16の数によって分割され、最も近いギガバイトに切り上げられた、不揮発性領域20の合計サイズ60に、第1の区画サイズ62を設定するように構成され得る。代替として、第1の区画サイズ62は、切り捨てられるか、または何らかの他のサイズの間隔に丸められてよい。第1の区画サイズ62および第2の区画サイズ64は、オペレーティングシステム40において決定され得る。いくつかの実施形態において、プロセッサ12は、オペレーティングシステム40における合計サイズ60および不揮発性記憶ドライブ16の数を、システムファームウェア50から受信するように構成され得る。
[0021]図1に戻ると、プロセッサ12は、少なくとも部分的に、GUID26および境界68のロケーション44を示す不揮発性記憶割り当てテーブル52を生成することによって、メモリモジュール14の不揮発性領域20を分割するように構成され得る。いくつかの実施形態において、不揮発性記憶割り当てテーブル52はGPTであってよい。不揮発性記憶割り当てテーブル52は、システムファームウェア50の命令を実行することによって生成され得る。メモリモジュール14の不揮発性領域20が2つより多くの区画に分割される実施形態では、不揮発性記憶割り当てテーブル52は、複数のGUID、および区画間の境界68の対応する複数のロケーション44を示すことができる。
[0022]不揮発性記憶割り当てテーブル52が生成される実施形態では、プロセッサ12は、システムファームウェア50の命令を実行することによって、不揮発性記憶割り当てテーブル52をシステム管理モードドライバ54に伝送するようにさらに構成され得る。システム管理モードドライバ54は、システムファームウェア50に含まれ得る。システム管理モードドライバ54は、コンピューティングデバイス10上の最高レベルの管理特権であり得る、システム管理モードで動作することができる。システム管理モードドライバ54の命令を実行することによって、プロセッサ12は、不揮発性記憶割り当てテーブル52をオペレーティングシステム40に伝送するようにさらに構成され得る。いくつかの実施形態において、システム管理モードドライバ54は、不揮発性記憶割り当てテーブル52を共有記憶ロケーション56に書き込むことによって、不揮発性記憶割り当てテーブル52をオペレーティングシステム40に伝送することができる。次いで、プロセッサ12は、オペレーティングシステム40の命令を実行して、不揮発性記憶割り当てテーブル52を取り出すことができる。
[0023]いくつかの実施形態において、プロセッサ12は、プロビジョニングエージェント70の命令を実行するようにさらに構成され得る。プロビジョニングエージェント70は、GUID26が不揮発性領域20に書き込まれた後、第1の不揮発性記憶区画22および第2の不揮発性記憶区画24を作成するために、プロセッサ12によって起動されるプログラムであってよい。いくつかの実施形態において、プロビジョニングエージェント70は、システムファームウェア50の外部で実行されるソフトウェアスタックであってよい。プロビジョニングエージェント70は、たとえば、コンピューティングデバイス10がクラウドコンピューティング環境においてサーバコンピューティングデバイスとして使用するように準備される、ブートフロー中に実行され得る。
[0024]不揮発性領域20が第1の不揮発性記憶区画22および第2の不揮発性記憶区画24に分割された後、プロセッサ12は、オペレーティングシステム40の命令を実行することによって、オペレーティングシステム40における第1の不揮発性記憶区画22にアクセスするようにさらに構成され得る。オペレーティングシステム40は、第2の不揮発性記憶区画24へのアクセスを妨げられ得る。いくつかの実施形態において、プロセッサ12は、少なくとも部分的に、不揮発性記憶割り当てテーブル52にアクセスすることによって、不揮発性領域20のどの部分がオペレーティングシステム40にアクセスできるか、およびどの部分がオペレーティングシステム40にアクセスできないかを決定するように構成され得る。
[0025]システムファームウェア50の命令を実行することによって、プロセッサ12は、不揮発性領域20が第1の不揮発性記憶区画22および第2の不揮発性記憶区画24に分割され、GUID26が不揮発性領域20に書き込まれた後、境界68のロケーション44を決定するようにさらに構成され得る。いくつかの実施形態において、境界68のロケーション44を決定するためにシステムファームウェア50の命令を実行することは、不揮発性記憶割り当てテーブル52を照会することを含むことができる。プロセッサ12は、境界68のロケーション44を決定することに応答して、第2の不揮発性記憶区画24にアクセスするようにさらに構成され得る。システムファームウェア50は、第1の不揮発性記憶区画22へのアクセスを妨げられ得る。したがって、不揮発性領域20は、オペレーティングシステム40はアクセスできるがシステムファームウェア50はアクセスできない第1の不揮発性記憶区画22と、システムファームウェア50はアクセスできるがオペレーティングシステム40はアクセスできない第2の不揮発性記憶区画24とに、分割され得る。
[0026]いくつかの実施形態において、システムファームウェア50の命令を実行することによって、プロセッサ12は、GUID26が不揮発性領域20に書き込まれた後、コンピューティングデバイス10のリブートに続いて、境界68のロケーション44を決定するように構成され得る。追加または代替として、システムファームウェア50の命令を実行することによって、プロセッサ12は、オペレーティングシステム40から境界ロケーション検索命令42を受信することに応答して、境界68のロケーション44を決定するようにさらに構成され得る。
[0027]図4は、一例示的実施形態に従った、不揮発性領域20のプロビジョニング中に、システム管理モードドライバ54、オペレーティングシステム40、およびプロビジョニングエージェント70の命令を実行することによってプロセッサ12が実行できるステップの、例示的タイムライン100を示す。ステップ102において、プロセッサ12はシステムファームウェアをブートするように構成され得る。システムファームウェア50において、プロセッサ12は、1つまたは複数の不揮発性記憶ドライブ16が不揮発性領域20に含まれるように指定するように構成され得る。ステップ104において、プロセッサ12は、オペレーティングシステム40をブートするようにさらに構成され得る。オペレーティングシステム40から、プロセッサ12は、ステップ106においてプロビジョニングエージェント70を起動するようにさらに構成され得る。たとえばプロセッサ12は、オペレーティングシステム40において、たとえばグラフィカルユーザインターフェースでユーザから受信した命令に応答して、プロビジョニングエージェント70を起動することができる。
[0028]ステップ108において、プロビジョニングエージェント70の命令を実行することによって、プロセッサ12は、第1の不揮発性記憶区画22および第2の不揮発性記憶区画24を作成するようにさらに構成され得る。いくつかの実施形態において、プロセッサ12は、プロビジョニングエージェントの命令を実行することによって、1つまたは複数の追加の区画を生成するようにさらに構成され得る。第1の不揮発性記憶区画22および第2の不揮発性記憶区画24が作成された後、プロセッサ12は、ステップ110において、システムのリブートを実行するようにさらに構成され得る。プロセッサ12がシステムのリブートを実行するとき、プロセッサ12はステップ112において、システムファームウェア50を再度ブートするようにさらに構成され得る。プロセッサ12は、前述のように、システムファームウェア50の命令を実行することによって、境界68のロケーション44を決定するようにさらに構成され得る。ステップ114において、プロセッサ12は、オペレーティングシステム40にブートするようにさらに構成され得る。プロセッサ12が、ステップ114においてオペレーティングシステム40にブートするとき、プロセッサ12は、第1の不揮発性記憶区画22にアクセスするように構成され得る。
[0029]図1に戻ると、メモリモジュール14の揮発性領域30が示される。揮発性領域30は、1つまたは複数の揮発性メモリデバイス18の第1の揮発性メモリ区画32および第2の揮発性メモリ区画34を含むことができる。いくつかの実施形態において、プロセッサ12は、第1の揮発性メモリ区画32の第1のバックアップ36を第1の不揮発性記憶区画22内に記憶するようにさらに構成され得る。追加または代替として、プロセッサ12は、第2の揮発性メモリ区画34の第2のバックアップ38を第2の不揮発性記憶区画24内に記憶するようにさらに構成され得る。したがって、メモリモジュール14の不揮発性領域20は、バックアップされたデータがシステムのリブートを越えて存続するように、揮発性領域30内に記憶されたデータの少なくとも一部をバックアップすることができる。
[0030]不揮発性領域20が、第1の揮発性メモリ区画32の第1のバックアップ36または第2の揮発性メモリ区画34の第2のバックアップ38のうちの少なくとも1つを記憶する実施形態において、プロセッサ12は、第1の揮発性メモリ区画32または第2の揮発性メモリ区画34が消去されたと決定するようにさらに構成され得る。たとえば、プロセッサ12は、システムのリブート後、この決定を行うことができる。この決定に応答して、プロセッサ12は、消去された揮発性メモリ区画をその揮発性メモリ区画のそれぞれのバックアップから復元するようにさらに構成され得る。したがって、プロセッサ42が、第1の揮発性メモリ区画32が消去されたと決定するとき、プロセッサ12は、第1のバックアップ36を揮発性メモリ領域30内にロードするようにさらに構成され得る。同様に、プロセッサ12が、第2の揮発性メモリ区画34が消去されたと決定するとき、プロセッサ12は、第2のバックアップ38を揮発性メモリ領域30内にロードするようにさらに構成され得る。揮発性メモリ区画がバックアップから復元されたとき、プロセッサ12は、揮発性メモリ区画が消去される前に位置していたロケーションにおいて、揮発性メモリ領域30にバックアップを書き込むことができる。
[0031]図5は、メモリモジュールの不揮発性領域を区分化するために、コンピューティングデバイスと共に使用するための、例示の方法200のフローチャートを示す。図5の方法200が使用されるコンピューティングデバイスは、図1のコンピューティングデバイス10または何らかの他のコンピューティングデバイスであってよい。ステップ202において、方法200は、メモリモジュールの不揮発性領域を、オペレーティングシステムに割り当てられた第1の不揮発性記憶区画およびシステムファームウェアに割り当てられた第2の不揮発性記憶区画に分割することを含むことができる。メモリモジュールは、たとえばNVDIMMであってよい。ステップ202は、方法200が実行されるコンピューティングデバイスのオペレーティングシステムの命令を実行することによって、実行され得る。
[0032]ステップ204において、方法200は、メモリモジュールの不揮発性領域にGUIDを書き込むことをさらに含むことができる。GUIDは、第1の不揮発性記憶区画と第2の不揮発性記憶区画との間の境界のロケーションを示すことができる。ステップ204は、オペレーティングシステムの命令を実行することによって実行され得る。ステップ206において、方法200は、オペレーティングシステムの命令を実行することによって、第1の不揮発性記憶区画にアクセスすることをさらに含むことができる。第1の不揮発性記憶区画には、オペレーティングシステムにブートした後にアクセスすることができる。オペレーティングシステムは、第2の不揮発性記憶区画へのアクセスを妨げられ得る。
[0033]方法200のステップ208は、コンピューティングデバイスのシステムファームウェアの命令を実行することによって、実行され得る。ステップ208において、方法200は、メモリモジュールの不揮発性領域における境界のロケーションを決定することをさらに含むことができる。いくつかの実施形態において、システムファームウェアの命令を実行することによって、境界のロケーションは、GUIDが不揮発性領域に書き込まれた後に、コンピューティングデバイスのリブートに続いて決定され得る。追加または代替として、システムファームウェアの命令を実行することによって、不揮発性領域内の境界のロケーションは、オペレーティングシステムから境界ロケーション検索命令を受信することに応答して、決定され得る。
[0034]ステップ210において、方法200は、システムファームウェアの命令を実行することによって、境界のロケーションを決定することに応答して、第2の不揮発性記憶区画にアクセスすることをさらに含むことができる。システムファームウェアは、第1の不揮発性記憶区画へのアクセスが妨げられ得る。したがって、第1の不揮発性記憶区画はオペレーティングシステムに割り当てられ得、また第2の不揮発性記憶区画はシステムファームウェアに割り当てられ得る。
[0035]いくつかの実施形態において、メモリモジュールの不揮発性領域は2つより多くの区画に分割され得る。こうした実施形態において、第1の不揮発性記憶区画および第2の不揮発性記憶区画以外の追加の不揮発性記憶区画が、各々、オペレーティングシステムまたはシステムファームウェアに割り当てられ得る。いくつかの実施形態において、複数のオペレーティングシステムは、コンピューティングデバイス上で実行され得る。複数のオペレーティングシステムのうちの各々のオペレーティングシステムには、こうした実施形態において、不揮発性記憶区画が割り当てられ得る。
[0036]図6は、いくつかの実施形態において実行され得る方法200の追加のステップを示す。ステップ212において、方法200は、GUIDおよび境界のロケーションを示す不揮発性記憶割り当てテーブルを生成することをさらに含むことができる。ステップ212は、ステップ202においてメモリモジュールの不揮発性領域を分割することの一部として実行され得る。不揮発性記憶割り当てテーブルは、いくつかの実施形態において、メモリモジュールの不揮発性領域に含まれる共有記憶ロケーション内に記憶され得る。ステップ212が実行される実施形態において、方法200は、ステップ214において、不揮発性記憶割り当てテーブルをシステム管理モードドライバに伝送することをさらに含むことができる。不揮発性記憶割り当てテーブルは、システムファームウェアの命令を実行することによって、システム管理モードドライバに伝送され得る。ステップ216において、方法200は、システム管理モードドライバの命令を実行することによって、不揮発性記憶割り当てテーブルをオペレーティングシステムに伝送することをさらに含むことができる。
[0037]図7も、いくつかの実施形態において実行され得る方法200の追加のステップを示す。図7のステップは、メモリモジュールが揮発性領域をさらに含む実施形態、ならびに、揮発性領域が1つまたは複数の揮発性メモリデバイスの第1の揮発性メモリ区画および第2の揮発性メモリ区画を含む実施形態において、実行され得る。ステップ218において、方法200は、第1の揮発性メモリ区画の第1のバックアップを第1の不揮発性記憶区画内に記憶することをさらに含むことができる。追加または代替として、ステップ220において、方法200は、第2の揮発性メモリ区画の第2のバックアップを第2の不揮発性記憶区画内に記憶することをさらに含むことができる。いくつかの実施形態において、メモリモジュールの揮発性領域は、2つより多くの区画を含むことができる。こうした実施形態において、不揮発性領域が2つより多くの不揮発性記憶区画を含むとき、各揮発性メモリ区画は、対応する不揮発性記憶区画上にバックアップされ得る。代替として、不揮発性記憶区画のうちの1つまたは複数は、複数の揮発性メモリ区画のそれぞれのバックアップを記憶することができる。
[0038]ステップ222において、方法200は、第1の揮発性メモリ区画または第2の揮発性メモリ区画が消去されたと決定することをさらに含むことができる。たとえば揮発性領域は、システムのリブート中に消去され得る。この決定に応答して、方法200は、ステップ224において、消去された揮発性メモリ区画を、その揮発性メモリ区画のそれぞれのバックアップから復元することをさらに含むことができる。したがって、揮発性領域内に記憶されたデータは、不揮発性領域内にバックアップされ得、揮発性領域の少なくとも一部が消去された後、バックアップから復元され得る。
[0039]前述のデバイスおよび方法を使用して、メモリモジュールの不揮発性領域は、コンピューティングデバイスのオペレーティングシステムとシステムファームウェアとの間で区分化され得る。コンピューティングデバイスが、データセンタ内にインストールされるプロセスにおけるサーバコンピューティングデバイスであるとき、典型的にはドライブは、セキュリティの理由で、インストールの前に再フォーマット化され、その時点以前にインストールされた任意の区画を削除する効果を有する。プロビジョニングプロセスの間、本明細書におけるシステムおよび方法は、不揮発性メモリ(すなわち、NVDIMMメモリ)のためのドライバなどのBIOSの構成要素が、不揮発性メモリ区画をスキャンできるようにする。ドライブがセキュリティの理由で再フォーマット化された後に何も見つからないことがわかる場合、オペレーティングシステムは、オペレーティングシステムによって生成されるNVDIMM固有のGUIDを使用して、不揮発性メモリのためのGUID付き区画を作成し、これを前述のように適切なロケーション内に記憶する。次いでサーバコンピューティングデバイスはリブートされ得、後続のブートアッププロセス中に、NVDIMMメモリのためのドライバは区画をスキャンして、オペレーティングシステムによって書き込まれたGUID付き区画を見つけ、GUID付き区画定義に従って区分化されたNVDIMM上で保存動作を開始できるようにするために、アーム動作をNVDIMMに送信することができる。このようにして、オペレーティングシステムを使用し、たとえばサーバプロビジョニング中に、NVDIMM内の不揮発性メモリを区分化することができる。この手法を使用して、サーバコンピューティングデバイスをインストールするユーザは、インストール後にメモリモジュールを手動で再区分化する必要性を回避することができる。加えてユーザは、オペレーティングシステム内で前述のデバイスおよび方法を使用して、不揮発性領域内のどこに不揮発性記憶区画が作成されるかを選択することが可能であり、ユーザによる高度に柔軟なケース特有の区分化が実行可能となる。
[0040]いくつかの実施形態において、本明細書で説明される方法およびプロセスは、1つまたは複数のコンピューティングデバイスのコンピューティングシステムと結び付けられ得る。特に、こうした方法およびプロセスは、コンピュータ・アプリケーション・プログラムまたはサービス、アプリケーション・プログラミング・インターフェース(API)、ライブラリ、および/または他のコンピュータプログラム製品として実装され得る。
[0041]図8は、前述の方法およびプロセスのうちの1つまたは複数を実行可能な、コンピューティングシステム300の非限定的実施形態を概略的に示す。コンピューティングシステム300は簡略化された形で示される。コンピューティングシステム300は、上記で説明され図1に示されたコンピューティングデバイス10を具体化することができる。コンピューティングシステム300は、1つまたは複数のパーソナルコンピュータ、サーバコンピュータ、タブレットコンピュータ、ホームエンターテイメントコンピュータ、ネットワークコンピューティングデバイス、ゲーミングデバイス、モバイルコンピューティングデバイス、モバイル通信デバイス(たとえば、スマートフォン)、および/または他のコンピューティングデバイス、ならびに、スマートリストウォッチおよびヘッドマウント型拡張現実デバイスなどのウェアラブルコンピューティングデバイスの形を取ることができる。
[0042]コンピューティングシステム300は、論理プロセッサ302、揮発性メモリ304、および不揮発性記憶デバイス306を含む。コンピューティングシステム300は任意選択として、ディスプレイサブシステム308、入力サブシステム310、通信サブシステム312、および/または図8に示されていない他の構成要素を含むことができる。
[0043]論理プロセッサ302は、命令を実行するように構成された1つまたは複数の物理デバイスを含む。たとえば論理プロセッサは、1つまたは複数のアプリケーション、プログラム、ルーチン、ライブラリ、オブジェクト、構成要素、データ構造、または他の論理構成の一部である、命令を実行するように構成され得る。こうした命令は、タスクを実行するため、データ型を実装するため、1つまたは複数の構成要素の状態を変換するため、技術的効果を達成するため、またはその他の方法で望ましい結果に到達するために、実装され得る。
[0044]論理プロセッサは、ソフトウェア命令を実行するように構成された、1つまたは複数の物理プロセッサ(ハードウェア)を含むことができる。追加または代替として、論理プロセッサは、ハードウェア実装論理またはファームウェア命令を実行するように構成された、1つまたは複数のハードウェア論理回路またはファームウェアデバイスを含むことができる。論理プロセッサ302のプロセッサは、シングルコアまたはマルチコアであってよく、またそれらの上で実行される命令は、順次、並列、および/または分散型の処理のために構成され得る。論理プロセッサの個々の構成要素は、任意選択として、リモートでの配置、および/または、調整済み処理用の構成が可能な、2つまたはそれ以上の別々のデバイス間で分散され得る。論理プロセッサの態様は、クラウドコンピューティング構成で構成された、リモートアクセス可能な、ネットワーク化されたコンピューティングデバイスによって、仮想化および実行され得る。このような場合、これらの仮想化態様は、様々な異なる機械の異なる物理的論理プロセッサ上で実行されることを理解されよう。
[0045]不揮発性記憶デバイス306は、本明細書で説明される方法およびプロセスを実装するために、論理プロセッサによって実行可能な命令を保持するように構成された、1つまたは複数の物理デバイスを含む。こうした方法およびプロセスが実装されるとき、不揮発性記憶デバイス306の状態は、たとえば異なるデータを保持するように変換され得る。
[0046]不揮発性記憶デバイス306は、取り外し可能および/または組み込み型の物理デバイスを含むことができる。不揮発性記憶デバイス306は、光学メモリ(たとえば、CD、DVD、HD-DVD、ブルーレイディスクなど)、半導体メモリ(たとえば、ROM、EPROM、EEPROM、フラッシュメモリなど)、および/または磁気メモリ(たとえば、ハードディスクドライブ、フロッピーディスクドライブ、テープドライブ、MRAMなど)、あるいは、他の大容量記憶デバイス技術を含むことができる。不揮発性記憶デバイス306は、不揮発性、ダイナミック、スタティック、読み取り/書き込み、読み取り専用、順次アクセス、ロケーションアドレス可能、ファイルアドレス可能、および/またはコンテンツアドレス可能な、デバイスを含むことができる。不揮発性記憶デバイス306は、たとえ不揮発性記憶デバイス306への電力が遮断されたときでも、命令を保持するように構成されることを理解されよう。
[0047]揮発性メモリ304は、ランダムアクセスメモリを含む物理デバイスを含むことができる。揮発性メモリ304は、典型的には、ソフトウェア命令の処理中に情報を一時的に記憶するために、論理プロセッサ302によって利用される。揮発性メモリ304は、典型的には、揮発性メモリ304への電力が遮断されたとき、命令の記憶を続行しないことを理解されよう。
[0048]論理プロセッサ302、揮発性メモリ304、および不揮発性記憶デバイス306の態様は、1つまたは複数のハードウェア論理構成要素内に統合され得る。こうしたハードウェア論理構成要素は、たとえば、フィールド・プログラマブル・ゲートアレイ(FPGA)、特定プログラムおよび特定用途向け集積回路(PASIC/ASIC)、特定プログラムおよび特定用途向け標準製品(PSSP/ASSP)、システム・オン・チップ(SOC)、および結合プログラマブル論理回路(CPLD)を含むことができる。
[0049]「モジュール」、「プログラム」、および「エンジン」という用語は、典型的には、揮発性メモリの一部を使用して特定の機能を実行するために、プロセッサによってソフトウェア内に実装される、コンピューティングシステム300の態様を説明するために使用され得、機能は、機能を実行するためのプロセッサを特別に構成する変革処理を含む。したがって、モジュール、プログラム、またはエンジンは、揮発性メモリ304の一部を使用して、不揮発性記憶デバイス306によって保持される命令を実行する論理プロセッサ302を介してインスタンス化され得る。異なるモジュール、プログラム、および/またはエンジンは、同じアプリケーション、サービス、コードブロック、オブジェクト、ライブラリ、ルーチン、API、機能などからインスタンス化され得ることを理解されよう。同様に、同じモジュール、プログラム、および/またはエンジンは、異なるアプリケーション、サービス、コードブロック、オブジェクト、ルーチン、API、機能などによってインスタンス化され得る。「モジュール」、「プログラム」、および「エンジン」という用語は、実行可能ファイル、データファイル、ライブラリ、ドライバ、スクリプト、データベース記録などの個々またはグループを包含することができる。
[0050]ディスプレイサブシステム308は、含まれる場合、不揮発性記憶デバイス306によって保持されるデータの視覚表現を提示するために使用され得る。視覚表現は、グラフィカル・ユーザ・インターフェース(GUI)の形を取ることができる。本明細書で説明される方法およびプロセスは、不揮発性記憶デバイスによって保持されるデータを変更し、またしたがって、不揮発性記憶デバイスの状態を変換するため、ディスプレイサブシステム308の状態は同様に、基礎となるデータにおける変化を視覚的に表すように変換され得る。ディスプレイサブシステム308は、任意のタイプの技術を仮想的に利用する1つまたは複数のディスプレイデバイスを含むことができる。こうしたディスプレイデバイスは、共有エンクロージャ内で、論理プロセッサ302、揮発性メモリ304、および/または不揮発性記憶デバイス306と組み合わせられ得るか、またはこうしたディスプレイデバイスは周辺ディスプレイデバイスとすることができる。
[0051]入力サブシステム310は、含まれる場合、キーボード、マウス、タッチスクリーン、またはゲームコントローラなどの、1つまたは複数のユーザ入力デバイスを備えるか、またはそれらとインターフェースすることができる。いくつかの実施形態において、入力サブシステムは、選択された自然ユーザ入力(NUI)構成要素を備えるか、またはそれらとインターフェースすることができる。こうした構成要素は集積または周辺であり得、入力動作の変換および/または処理は、オンボードまたはオフボードでの取り扱いが可能である。例示のNUI構成要素は、音声および/または言語認識用のマイクロフォン、機械視覚および/またはジェスチャ認識用の赤外線、カラー、立体、および/または深度カメラ、運動検出および/または意図認識用のヘッドトラッカ、アイトラッカ、加速度計、および/またはジャイロスコープ、ならびに、脳活動評価用の電界感知構成要素、および/または、任意の他の適切なセンサを含むことができる。
[0052]通信サブシステム312は、含まれる場合、本明細書で説明される様々なコンピューティングデバイスを互いに、および他のデバイスと、通信可能に結合するように構成され得る。通信サブシステム312は、1つまたは複数の異なる通信プロトコルと互換性のある、有線および/または無線の通信デバイスを含むことができる。非限定的な例として、通信サブシステムは、無線電話網、あるいは、Wi-Fi接続を介したHDMI(登録商標)などの、有線または無線のローカルまたはワイド・エリア・ネットワークを介した通信用に構成され得る。いくつかの実施形態において、通信サブシステムは、コンピューティングシステム300が、インターネットなどのネットワークを介して、他のデバイスとの間でメッセージを送信および/または受信できるようにし得る。
[0053]本開示の一態様によれば、メモリモジュールおよびプロセッサを含むコンピューティングデバイスが提供される。プロセッサは、オペレーティングシステムの命令を実行することによって、メモリモジュールの不揮発性領域を、オペレーティングシステムに割り当てられた第1の不揮発性記憶区画およびシステムファームウェアに割り当てられた第2の不揮発性記憶区画に分割するように構成され得る。プロセッサは、グローバル一意識別子(GUID)をメモリモジュールの不揮発性領域に書き込むようにさらに構成され得る。GUIDは、第1の不揮発性記憶区画と第2の不揮発性記憶区画との間の境界のロケーションを示すことができる。プロセッサは、第1の不揮発性記憶区画にアクセスするようにさらに構成され得る。システムファームウェアの命令を実行することによって、プロセッサは境界のロケーションを決定するようにさらに構成され得る。プロセッサは、境界のロケーションの決定に応答して、第2の不揮発性記憶区画にアクセスするようにさらに構成され得る。オペレーティングシステムは、第2の不揮発性記憶区画へのアクセスが妨げられ得、システムファームウェアは、第1の不揮発性記憶区画へのアクセスが妨げられ得る。
[0054]本態様によれば、メモリモジュールは、不揮発性デュアル・インライン・メモリ・モジュール(NVDIMM)であってよい。
[0055]本態様によれば、プロセッサは、少なくとも部分的に、GUIDおよび境界のロケーションを含む不揮発性記憶割り当てテーブルを生成することによって、メモリモジュールの不揮発性領域を分割するように構成され得る。
[0056]本態様によれば、プロセッサは、システムファームウェアの命令を実行することによって、不揮発性記憶割り当てテーブルをシステム管理モードドライバに伝送するようにさらに構成され得る。システム管理モードドライバの命令を実行することによって、プロセッサは、不揮発性記憶割り当てテーブルをオペレーティングシステムに伝送するようにさらに構成され得る。
[0057]本態様によれば、システムファームウェアの命令を実行することによって、プロセッサは、GUIDが不揮発性領域に書き込まれた後、コンピューティングデバイスのリブートに続いて、境界のロケーションを決定するように構成され得る。
[0058]本態様によれば、システムファームウェアの命令を実行することによって、プロセッサは、オペレーティングシステムから境界ロケーション検索命令を受信することに応答して、境界のロケーションを決定するようにさらに構成され得る。
[0059]本態様によれば、プロセッサは、第1の不揮発性記憶区画と第2の不揮発性記憶区画との間の境界が、各々が所定の長さを有する複数のメモリ間隔のうちの1つのメモリ間隔と位置合わせされるように、不揮発性領域を分割するように構成され得る。
[0060]本態様によれば、メモリモジュールは、1つまたは複数の揮発性メモリデバイスの第1の揮発性メモリ区画および第2の揮発性メモリ区画を含む、揮発性領域をさらに含むことができる。
[0061]本態様によれば、プロセッサは、第1の揮発性メモリ区画の第1のバックアップを第1の不揮発性記憶区画に記憶し、第2の揮発性メモリ区画の第2のバックアップを第2の不揮発性記憶区画に記憶するようにさらに構成され得る。
[0062]本態様によれば、プロセッサは、第1の揮発性メモリ区画または第2の揮発性メモリ区画が消去されたと決定するようにさらに構成され得る。プロセッサは、消去された揮発性メモリ区画を、その揮発性メモリ区画のそれぞれのバックアップから復元するよう、さらに構成され得る。
[0063]本態様によれば、プロセッサは、不揮発性領域の合計サイズおよびメモリモジュールに含まれる不揮発性記憶ドライブの数に少なくとも部分的に基づいて、第1の不揮発性記憶区画の第1の区画サイズおよび第2の不揮発性記憶区画の第2の区画サイズを決定するようにさらに構成され得る。
[0064]本開示の別の態様によれば、コンピューティングデバイスと共に使用するための方法が提供される。方法は、オペレーティングシステムの命令を実行することによって、メモリモジュールの不揮発性領域を、オペレーティングシステムに割り当てられた第1の不揮発性記憶区画およびシステムファームウェアに割り当てられた第2の不揮発性記憶区画に分割することを含むことができる。方法は、グローバル一意識別子(GUID)をメモリモジュールの不揮発性領域に書き込むことをさらに含むことができる。GUIDは、第1の不揮発性記憶区画と第2の不揮発性記憶区画との間の境界のロケーションを示す。方法は、第1の不揮発性記憶区画にアクセスすることをさらに含むことができる。方法は、システムファームウェアの命令を実行することによって、境界のロケーションを決定することをさらに含むことができる。方法は、境界のロケーションを決定することに応答して、第2の不揮発性記憶区画にアクセスすることをさらに含むことができる。オペレーティングシステムは、第2の不揮発性記憶区画へのアクセスが妨げられ得、システムファームウェアは、第1の不揮発性記憶区画へのアクセスが妨げられ得る。
[0065]本態様によれば、メモリモジュールは不揮発性デュアル・インライン・メモリ・モジュール(NVDIMM)であってよい。
[0066]本態様によれば、メモリモジュールの不揮発性領域を分割することは、GUIDおよび境界のロケーションを示す不揮発性記憶割り当てテーブルを生成することを含むことができる。
[0067]本態様によれば、方法は、システムファームウェアの命令を実行することによって、不揮発性記憶割り当てテーブルをシステム管理モードドライバに伝送することをさらに含むことができる。方法は、システム管理モードドライバの命令を実行することによって、不揮発性記憶割り当てテーブルをオペレーティングシステムに伝送することをさらに含むことができる。
[0068]本態様によれば、システムファームウェアの命令を実行することによって、GUIDが不揮発性領域に書き込まれた後、コンピューティングデバイスのリブートに続いて、境界のロケーションが決定され得る。
[0069]本態様によれば、不揮発性領域は、第1の不揮発性記憶区画と第2の不揮発性記憶区画との間の境界が、各々が所定の長さを有する複数のメモリ間隔のうちの1つのメモリ間隔と位置合わせされるように分割され得る。
[0070]本態様によれば、メモリモジュールは、1つまたは複数の揮発性メモリデバイスの第1の揮発性メモリ区画および第2の揮発性メモリ区画を含む、揮発性領域をさらに含むことができる。方法は、第1の揮発性メモリ区画の第1のバックアップを第1の不揮発性記憶区画に記憶することをさらに含むことができる。方法は、第2の揮発性メモリ区画の第2のバックアップを第2の不揮発性記憶区画に記憶することをさらに含むことができる。
[0071]本態様によれば、方法は、第1の揮発性メモリ区画または第2の揮発性メモリ区画が消去されたと決定することをさらに含むことができる。方法は、消去された揮発性メモリ区画を、その揮発性メモリ区画のそれぞれのバックアップから復元することをさらに含むことができる。
[0072]本開示の別の態様によれば、不揮発性デュアル・インライン・メモリ・モジュール(NVDIMM)およびプロセッサを含む、コンピューティングデバイスが提供される。プロセッサは、オペレーティングシステムの命令を実行することによって、NVDIMMの不揮発性領域を、オペレーティングシステムに割り当てられた第1の不揮発性記憶区画およびシステムファームウェアに割り当てられた第2の不揮発性記憶区画に分割するように構成され得る。プロセッサは、グローバル一意識別子(GUID)を、NVDIMMの不揮発性領域に書き込むようにさらに構成され得る。GUIDは、第1の不揮発性記憶区画と第2の不揮発性記憶区画との間の境界のロケーションを示すことができる。プロセッサは、第1の不揮発性記憶区画にアクセスするようにさらに構成され得る。プロセッサは、システムファームウェアの命令を実行することによって、GUIDが不揮発性領域に書き込まれた後、コンピューティングデバイスのリブートに続いて、境界のロケーションを決定するようにさらに構成され得る。プロセッサは、境界のロケーションを決定することに応答して、第2の不揮発性記憶区画にアクセスするようにさらに構成され得る。オペレーティングシステムは、第2の不揮発性記憶区画へのアクセスが妨げられ得、システムファームウェアは、第1の不揮発性記憶区画へのアクセスが妨げられ得る。
[0073]本明細書で説明される構成および/または手法は、事実上例示的であり、多数の変形形態が可能であるため、これらの特定の実施形態または実施例は、限定的な意味であるとは見なされないことを理解されよう。本明細書で説明される特定のルーチンまたは方法は、任意数の処理ストラテジのうちの1つまたは複数を表すことができる。したがって、図示および/または説明される様々な動作は、図示および/または説明された順序で、他の順序で、または並行して実行され得るか、あるいは省略されてもよい。同様に、前述のプロセスの順序は変更されてよい。
[0074]本開示の主題は、様々なプロセス、システム、および構成、ならびに、本明細書で開示される他の特徴、機能、動作、および/または特性の、すべての新規な明白でない組み合わせおよび下位組み合わせ、ならびにそれらの任意およびすべての等価物を含む。

Claims (15)

  1. メモリモジュールと、
    プロセッサと
    を備えたコンピューティングデバイスであって、
    前記プロセッサは、
    オペレーティングシステムの命令を実行することによって、
    前記メモリモジュールの不揮発性領域を、前記オペレーティングシステムに割り当てられた第1の不揮発性記憶区画およびシステムファームウェアに割り当てられた第2の不揮発性記憶区画に分割することと、
    グローバル一意識別子(GUID)を前記メモリモジュールの前記不揮発性領域に書き込むことであって、前記GUIDは、前記第1の不揮発性記憶区画と前記第2の不揮発性記憶区画との間の境界のロケーションを示す、書き込むことと、
    前記第1の不揮発性記憶区画にアクセスすることと
    を行い、
    前記システムファームウェアの命令を実行することによって、
    前記境界の前記ロケーションを決定することと、
    前記境界の前記ロケーションの決定に応答して、前記第2の不揮発性記憶区画にアクセスすることであって、前記オペレーティングシステムは、前記第2の不揮発性記憶区画へのアクセスが妨げられ、前記システムファームウェアは、前記第1の不揮発性記憶区画へのアクセスが妨げられる、アクセスすることと
    を行う
    ように構成される、コンピューティングデバイス。
  2. 請求項1に記載のコンピューティングデバイスであって、前記メモリモジュールは、不揮発性デュアル・インライン・メモリ・モジュール(NVDIMM)である、コンピューティングデバイス。
  3. 請求項1に記載のコンピューティングデバイスであって、前記プロセッサは、少なくとも部分的に、前記GUIDおよび前記境界の前記ロケーションを含む不揮発性記憶割り当てテーブルを生成することによって、前記メモリモジュールの前記不揮発性領域を分割するように構成される、コンピューティングデバイス。
  4. 請求項3に記載のコンピューティングデバイスであって、前記プロセッサは、
    前記システムファームウェアの命令を実行することによって前記不揮発性記憶割り当てテーブルをシステム管理モードドライバに伝送することと、
    前記システム管理モードドライバの命令を実行することによって前記不揮発性記憶割り当てテーブルを前記オペレーティングシステムに伝送することと
    を行うようにさらに構成される、
    コンピューティングデバイス。
  5. 請求項1に記載のコンピューティングデバイスであって、前記システムファームウェアの命令を実行することによって、前記プロセッサは、前記GUIDが前記不揮発性領域に書き込まれた後、前記コンピューティングデバイスのリブートに続いて、前記境界の前記ロケーションを決定するように構成される、コンピューティングデバイス。
  6. 請求項1に記載のコンピューティングデバイスであって、前記システムファームウェアの命令を実行することによって、前記プロセッサは、前記オペレーティングシステムから境界ロケーション検索命令を受信することに応答して、前記境界の前記ロケーションを決定するように構成される、コンピューティングデバイス。
  7. 請求項1に記載のコンピューティングデバイスであって、前記プロセッサは、前記第1の不揮発性記憶区画と前記第2の不揮発性記憶区画との間の前記境界が、各々が所定の長さを有する複数のメモリ間隔のうちの1つのメモリ間隔と位置合わせされるように、前記不揮発性領域を分割するように構成される、コンピューティングデバイス。
  8. 請求項1に記載のコンピューティングデバイスであって、前記メモリモジュールは、1つまたは複数の揮発性メモリデバイスの第1の揮発性メモリ区画および第2の揮発性メモリ区画を含む揮発性領域をさらに含む、コンピューティングデバイス。
  9. 請求項8に記載のコンピューティングデバイスであって、前記プロセッサは、
    前記第1の揮発性メモリ区画の第1のバックアップを前記第1の不揮発性記憶区画に記憶することと、
    前記第2の揮発性メモリ区画の第2のバックアップを前記第2の不揮発性記憶区画に記憶することと
    を行うようにさらに構成される、コンピューティングデバイス。
  10. 請求項9に記載のコンピューティングデバイスであって、前記プロセッサは、
    前記第1の揮発性メモリ区画または前記第2の揮発性メモリ区画が消去されたと決定することと、
    消去された前記揮発性メモリ区画を、その揮発性メモリ区画のそれぞれの前記バックアップから復元することと
    を行うようにさらに構成される、コンピューティングデバイス。
  11. 請求項1に記載のコンピューティングデバイスであって、前記プロセッサは、前記不揮発性領域の合計サイズおよび前記メモリモジュールに含まれる不揮発性記憶ドライブの数に少なくとも部分的に基づいて、前記第1の不揮発性記憶区画の第1の区画サイズおよび前記第2の不揮発性記憶区画の第2の区画サイズを決定するようにさらに構成される、コンピューティングデバイス。
  12. コンピューティングデバイスと共に使用するための方法であって、
    オペレーティングシステムの命令を実行することによって、
    メモリモジュールの不揮発性領域を、前記オペレーティングシステムに割り当てられた第1の不揮発性記憶区画およびシステムファームウェアに割り当てられた第2の不揮発性記憶区画に分割するステップと、
    グローバル一意識別子(GUID)を前記メモリモジュールの前記不揮発性領域に書き込むステップであって、前記GUIDは、前記第1の不揮発性記憶区画と前記第2の不揮発性記憶区画との間の境界のロケーションを示す、書き込むステップと、
    前記第1の不揮発性記憶区画にアクセスするステップと
    を含み、
    システムファームウェアの命令を実行することによって、
    前記境界の前記ロケーションを決定するステップと、
    前記境界の前記ロケーションの決定に応答して、前記第2の不揮発性記憶区画にアクセスするステップであって、前記オペレーティングシステムは、前記第2の不揮発性記憶区画へのアクセスが妨げられ、前記システムファームウェアは、前記第1の不揮発性記憶区画へのアクセスが妨げられる、アクセスするステップと、
    を含む
    方法。
  13. 請求項12に記載の方法であって、前記メモリモジュールは不揮発性デュアル・インライン・メモリ・モジュール(NVDIMM)である、方法。
  14. 請求項12に記載の方法であって、前記メモリモジュールの前記不揮発性領域を分割するステップは、前記GUIDおよび前記境界の前記ロケーションを示す不揮発性記憶割り当てテーブルを生成するステップを含む、方法。
  15. 請求項12に記載の方法であって、前記不揮発性領域は、前記第1の不揮発性記憶区画と前記第2の不揮発性記憶区画との間の前記境界が、各々が所定の長さを有する複数のメモリ間隔のうちの1つのメモリ間隔と位置合わせされるように分割される、方法。
JP2021573383A 2019-06-10 2020-04-29 不揮発性記憶区画識別子 Pending JP2022536681A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/436,737 2019-06-10
US16/436,737 US10996893B2 (en) 2019-06-10 2019-06-10 Non-volatile storage partition identifier
PCT/US2020/030329 WO2020251687A1 (en) 2019-06-10 2020-04-29 Non-volatile storage partition identifier

Publications (2)

Publication Number Publication Date
JP2022536681A true JP2022536681A (ja) 2022-08-18
JPWO2020251687A5 JPWO2020251687A5 (ja) 2023-05-11

Family

ID=70847508

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021573383A Pending JP2022536681A (ja) 2019-06-10 2020-04-29 不揮発性記憶区画識別子

Country Status (6)

Country Link
US (1) US10996893B2 (ja)
EP (1) EP3980897A1 (ja)
JP (1) JP2022536681A (ja)
KR (1) KR20220018499A (ja)
CN (1) CN113950673A (ja)
WO (1) WO2020251687A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114035842B (zh) * 2022-01-07 2022-04-08 飞腾信息技术有限公司 固件配置方法、计算系统配置方法、计算装置以及设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120054734A1 (en) * 2010-08-31 2012-03-01 Apple Inc. Device software upgrade using a dynamically sized partition
US20150128000A1 (en) 2013-11-05 2015-05-07 Samsung Electronics Co., Ltd. Method of operating memory system
TWI502345B (zh) 2014-05-12 2015-10-01 Via Tech Inc 快閃記憶體控制晶片以及資料儲存裝置以及快閃記憶體控制方法
US10126950B2 (en) 2014-12-22 2018-11-13 Intel Corporation Allocating and configuring persistent memory
US20160378344A1 (en) 2015-06-24 2016-12-29 Intel Corporation Processor and platform assisted nvdimm solution using standard dram and consolidated storage
US9858412B2 (en) * 2015-06-25 2018-01-02 Intel Corporation Secure trusted execution environment data store
US10942658B2 (en) * 2017-10-26 2021-03-09 Insyde Software Corp. System and method for dynamic system memory sizing using non-volatile dual in-line memory modules
US10795581B2 (en) * 2019-01-25 2020-10-06 Dell Products L.P. GPT-based data storage partition securing system

Also Published As

Publication number Publication date
KR20220018499A (ko) 2022-02-15
WO2020251687A1 (en) 2020-12-17
US20200387325A1 (en) 2020-12-10
US10996893B2 (en) 2021-05-04
EP3980897A1 (en) 2022-04-13
CN113950673A (zh) 2022-01-18

Similar Documents

Publication Publication Date Title
US9448728B2 (en) Consistent unmapping of application data in presence of concurrent, unquiesced writers and readers
US11385903B2 (en) Firmware update patch
CN101650660B (zh) 从中央存储装置引导计算机系统
US8433890B2 (en) Preparing and preserving a system configuration during a hot upgrade
US20170269978A1 (en) Operating System Layering
US8751785B2 (en) Memory tagging and preservation during a hot upgrade
US11010355B2 (en) Layer-based file access method and apparatus of virtualization instance
US9417886B2 (en) System and method for dynamically changing system behavior by modifying boot configuration data and registry entries
US20230067317A1 (en) Code update in system management mode
US10417010B2 (en) Disk sector based remote storage booting
US10684895B1 (en) Systems and methods for managing containerized applications in a flexible appliance platform
EP2639698B1 (en) Backup control program, backup control method, and information processing device
US9619340B1 (en) Disaster recovery on dissimilar hardware
JP2022536681A (ja) 不揮発性記憶区画識別子
US20230239317A1 (en) Identifying and Mitigating Security Vulnerabilities in Multi-Layer Infrastructure Stacks
CN114237814A (zh) 跨虚拟化平台的虚拟机迁移方法、装置和计算机设备
US11947501B2 (en) Two-hierarchy file system
EP3314390B1 (en) Returning coherent data in response to a failure of a storage device when a single input/output request spans two storage devices

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230428

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230428