JP7054384B2 - 不揮発性メモリとしての揮発性メモリの使用 - Google Patents

不揮発性メモリとしての揮発性メモリの使用 Download PDF

Info

Publication number
JP7054384B2
JP7054384B2 JP2018528232A JP2018528232A JP7054384B2 JP 7054384 B2 JP7054384 B2 JP 7054384B2 JP 2018528232 A JP2018528232 A JP 2018528232A JP 2018528232 A JP2018528232 A JP 2018528232A JP 7054384 B2 JP7054384 B2 JP 7054384B2
Authority
JP
Japan
Prior art keywords
pages
memory
volatile
computing device
volatile 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
JP2018528232A
Other languages
English (en)
Other versions
JP2019510284A (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 JP2019510284A publication Critical patent/JP2019510284A/ja
Application granted granted Critical
Publication of JP7054384B2 publication Critical patent/JP7054384B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • 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
    • DTEXTILES; PAPER
    • D05SEWING; EMBROIDERING; TUFTING
    • D05BSEWING
    • D05B19/00Programme-controlled sewing machines
    • DTEXTILES; PAPER
    • D05SEWING; EMBROIDERING; TUFTING
    • D05BSEWING
    • D05B19/00Programme-controlled sewing machines
    • D05B19/02Sewing machines having electronic memory or microprocessor control unit
    • DTEXTILES; PAPER
    • D05SEWING; EMBROIDERING; TUFTING
    • D05BSEWING
    • D05B19/00Programme-controlled sewing machines
    • D05B19/02Sewing machines having electronic memory or microprocessor control unit
    • D05B19/04Sewing machines having electronic memory or microprocessor control unit characterised by memory aspects
    • DTEXTILES; PAPER
    • D05SEWING; EMBROIDERING; TUFTING
    • D05BSEWING
    • D05B19/00Programme-controlled sewing machines
    • D05B19/02Sewing machines having electronic memory or microprocessor control unit
    • D05B19/04Sewing machines having electronic memory or microprocessor control unit characterised by memory aspects
    • D05B19/06Physical exchange of 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
    • 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/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0647Migration 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/0653Monitoring storage devices or 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/003Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation in serial memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/006Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation at wafer scale level, i.e. wafer scale integration [WSI]
    • 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

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)
  • Textile Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)
  • Memory System (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)

Description

[0001]本開示は、一般に、コンピューティングデバイスのメモリモジュールの操作に関する。詳細には、本開示は、揮発性メモリを使用して、コンピューティングデバイス上で実行するアプリケーションに不揮発性ストレージを提供するためのシステム、方法、及びコンピュータープログラム製品に関する。
[0002]コンピューティングデバイスのメインメモリは、典型的には、ダイナミックランダムアクセス(「DRAM」:dynamic random-access)メモリモジュールに基づく。DRAMは、低コスト及び高ストレージ密度などの、メインメモリとしての使用に適した様々な特性を有する。しかし、DRAMメモリモジュールは、典型的には、データ喪失を防ぐために電力の継続的又はほぼ継続的な供給を必要とするキャパシター又はその他の回路を含む。したがって、DRAMメモリは、その電源装置が中断された(interrupted)際、DRAMメモリに記憶されたデータが失われるので、揮発性と呼ばれる。
[0003]否定論理積ゲート(「NAND」:Negative-AND gate)メモリなどのメモリのその他のタイプは、モジュールの電源装置が中断された際、NANDメモリモジュールの内容が失われないので、不揮発性メモリと呼ばれることがある。しかし、コンピューターのメインメモリは、典型的には、DRAMメモリモジュールと比較して、より高いコスト及びより低いストレージ密度などの様々な理由で、NANDメモリモジュールから構築されない。
[0004]コンピューティングデバイスは、揮発性メモリ及び不揮発性記憶装置を備えてよい。コンピューティングデバイスがユーティリティ電源で動作している間、ユーティリティ電源が中断された場合、どれだけのエネルギーがコンピューティングデバイスに対して利用可能であるかを示す情報を、コンピューティングデバイスは受け取ってよい。コンピューティングデバイスは、揮発性メモリのページを不揮発性記憶装置に転送するのにどれだけのエネルギーが必要とされるかを判断し、この情報を使用して、バッテリー内の利用可能なエネルギーを使用して、メモリのどれだけのページが保護されることになるかを判断してもよい。少なくともある程度この情報に基づいて、コンピューティングデバイスのオペレーティングシステム又はファームウェアは、揮発性メモリの多くのページを不揮発性として識別してよく、その結果、コンピューティングデバイス上で実行するアプリケーションは、ページが不揮発性であるかのように揮発性メモリのページに情報を記憶してよい。
[0005]本概要は、発明を実施するための形態において、下記にさらに記述される簡素化された形の概念の選択を紹介するために提供される。本概要は、請求される主題の主要な特徴又は本質的な特徴を識別することを意図するものではなく、請求される主題の範囲を限定するために使用されることを意図するものでもない。
[0006]本開示の実施形態は、添付の図面を参照しながら、以下にさらに完全に記述される。
[0007]オペレーティングシステムによって不揮発性メモリとして識別された揮発性メモリを有する例示のコンピューティングシステムを描写するブロック図である。 [0008]利用可能なバッテリー電源に基づいて、不揮発性として識別されたページの数を調節することを描写するブロック図である。 [0009]揮発性メモリを揮発性メモリ又は不揮発性メモリとして識別するコンピューティングデバイスの例を描写するブロック図である。 [0010]複数のコンピューティングデバイスによって共有されるバッテリーを描写する図である。 [0011]不揮発性メモリとして識別された揮発性メモリを有するコンピューティングデバイスを動作させるための例示の処理を描写するフロー図である。 [0012]アプリケーションの実績パラメーターに基づいて、不揮発性メモリの識別を調節するための処理の例を描写するフロー図である。 [0013]揮発性メモリの内容を保護する例を提供するブロック図である。 [0014]不揮発性として識別された揮発性メモリの内容を保護するための例示の処理を描写するフロー図である。 [0015]メモリ保護中にプロセッサコアへの電力配給を制御する例を描写するフロー図である。 [0016]不揮発性として識別された揮発性メモリモジュールを有するコンピューティングデバイスを動作させる例を描写するフロー図である。 [0017]本明細書に記述される技法が具体化され得る例示の汎用コンピューティング環境を描写する図である。
[0018]コンピューティングデバイスは、プロセッサ、揮発性メモリモジュールを備えるメインメモリ、及び不揮発性記憶装置を備えてよい。揮発性メモリモジュールは、電力喪失の際に内容が失われるメモリであってよい。いくつかのケースにおいて、揮発性メモリモジュールは、メモリに記憶された内容の保持に関して、その耐久性が不揮発性メモリと比較して相対的に低いメモリモジュールであってよい。
[0019]コンピューティングデバイスの電源は、ユーティリティ電源とバッテリー電源のいくつかの組合せによって供給されてよい。ユーティリティ電源は、送電網で配給される主電源などのソースを指してよい。ユーティリティ電源は、局地的に生成される太陽光発電、風力発電、又は火力発電など、持続可能又は典型的には利用可能であると一般に考えられるその他の電力源を指してもよい。時として、ユーティリティ電源は、太陽光発電又は風力発電システムにおいて、余剰時にエネルギーを貯蔵し、欠乏時にエネルギーを提供するのに使用されるバッテリーなどの、バッテリーコンポーネントを含んでよい。より一般に、ユーティリティ電源は、コンピューティングデバイスの動作期間に典型的に利用可能な電力の任意のソースを指してよい。
[0020]バッテリー電源は、バッテリーセル、キャパシター、又はその他のエネルギーストレージ機構を収めるデバイスなどの、エネルギーのバックアップソースを指してよい。ユーティリティ電源が利用可能なとき、バッテリーは充電してよく、コンピューティングデバイスに利用可能な電力量が増加することがある。ユーティリティ電源が利用可能でないとき、コンピューティングデバイスは、バッテリー電源で動作してよく、バッテリー内の利用可能な電力量が減少することがある。温度、バッテリーの寿命、及びその他のデバイスによるバッテリー電源の消費などのその他のファクターが、利用可能な電力量に影響を及ぼすこともある。
[0021]デバイスのオペレーティングシステム又はファームウェアは、揮発性メモリが不揮発性であるかのように、揮発性メモリをアプリケーションに見せることがある。不揮発性のように見せられること又は識別されることがある揮発性メモリの量は、2つのファクターに基づいて判断されてよい。第1のファクターは、ユーティリティ電源が停止される際に、コンピューティングデバイスによる使用に利用可能なエネルギーの量であってよい。第2のファクターは、揮発性メモリのページを不揮発性記憶装置に転送するのに要求される電力量の見積りであってよい。これらのファクターに基づいて、オペレーティングシステム又はファームウェアは、万一、ユーティリティ電源が中断された場合、メモリのどれだけのページが記憶装置に保護されることになるかについての見積りを判断してよい。次に、これらのページは、オペレーティングシステム又はファームウェアによって、不揮発性であると識別されてよい。
[0022]万一、ユーティリティ電源が中断された場合、コンピューティングデバイスは、不揮発性として識別された揮発性メモリの内容が保護されるメモリ保護フェーズに入ってよい。このフェーズ中、コンピューティングデバイスのコンポーネントへの電力配給は、メモリ保護に必要とされるこれらのコンポーネントに限られてよい。これは、より多くの量の揮発性メモリが不揮発性として識別されるのを許容してよい。追加として、メモリ保護中の電力状態は、エネルギーの消費及び可用性に関する予測がより信頼できるようなものであってよい。
[0023]図1は、オペレーティングシステムによって不揮発性メモリとして識別された揮発性メモリを有する例示のコンピューティングシステムを描写するブロック図である。コンピューティングデバイス100は、オペレーティングシステム102及びファームウェア104の命令を載せるメモリ、プロセッサ106、DRAMメモリモジュール114、及び不揮発性記憶装置120を備えてよい。
[0024]コンピューティングデバイス100は、典型的には、ユーティリティ電力源122で動作してよい。時々、ユーティリティ電力源116が中断されるときなど、コンピューティングデバイス100は、バッテリー電力源124で動作してよい。停電中、又はユーティリティ電力源122に関連があるその他の障害中に、コンピューティングデバイスは、ユーティリティ電力源122からバッテリー電力源124にその電力源をスイッチするか、又は移してよい。いくつかの例において、バッテリー電力源124は、コンピューティングデバイス100に統合されてよい。その他の例において、バッテリー電力源は、コンピューティングデバイス100の外部にあってよい。
[0025]プロセッサ106は、コア108及びアンコア110を含む様々なサブコンポーネントを備えてよい。プロセッサ102の電力消費は、コア108及びアンコア110の電源が非従属的に停止又は維持され得るように制御されてよい。例えば、コア108への電力配給は、アンコア110の電源が維持され得る間、停止されてよい。電力を停止することは、影響を受けるコンポーネントへのエネルギーのフローを部分的に又は全体的に中断することを含んでよい。電力を停止することは、コンポーネントを低電力状態に置くことを指してもよい。典型的には、電力が停止されたコンポーネントは、電力が停止される間、動作しないが、一旦、電力が復元されたら、動作を再開してよい。コンポーネントの電源を維持することは、コンポーネントに充分な電力を配給することを含んでよく、その結果、コンポーネントは、その機能の少なくともいくつかに関して動作可能なままでよい。
[0026]コア108は、プロセッサ106の処理ユニットを備えてよい。表現を簡潔にするために図1は、単一のコア108を有するようにプロセッサ106を描写するが、典型的には、プロセッサ106は多くのコアからなる。プロセッサ106の処理ユニットのように、コア108は、典型的には、オペレーティングシステム102及びファームウェア104のコンピューター読み取り可能命令などの、コンピューター読み取り可能命令を実行し、それによって、コンピューティングデバイスに様々な動作を実施させる。
[0027]アンコア110は、コア108の一部に関連があるが、コア108に含まれないプロセッサ106の一部を含んでよい。いくつかのケースにおいて、プロセッサ106は、描写されたコア108などの、1つのアンコア110及び複数のコアを含んでよい。典型的には、アンコア110は、L3キャッシュのメンテナンスに関連がある機能を実施し、メモリコントローラー112を含んでよい。
[0028]メモリコントローラー112は、DRAMメモリモジュール114に記憶されたデータへのアクセスを制御してよい。これは、直接メモリアクセス(「DMA」:direct-memory access)操作を実施することを含んでよい。DMA操作は、メモリの内容を転送することを伴ってよい。例えば、DMA操作は、DRAMメモリモジュール114の内容を不揮発性記憶装置120に転送することを伴ってよい。DMA操作は、オペレーティングシステム102又はファームウェア104の命令をコア108が実行することによって開始されてよい。一旦、DMA操作が開始されたら、コア108はその他の操作を再開するか、又は低電力状態もしくは無電力状態に置かれてよく、その間にDMA操作は完了する。
[0029]割り込み信号がプロセッサ106に送信されてよい。割り込み信号は、コンピューティングデバイス100のコンポーネント、又はバッテリー電力源124などの外部デバイスからの、イベントに関する信号又はその他の送信を含んでよい。割り込み信号の例は、ネットワークコンポーネント、ユーザーインターフェイスコンポーネントなどによって生成された信号を含む。いくつかのケースにおいて、様々な割り込み信号は、コンピューティングデバイス100の動作中に生じることがあるエラー条件又は状態変更に応答して生成されてよい。割り込み信号は、DMA操作に関連して生成されてよい。例えば、割り込み信号は、DMA操作の完了に応答して生成されてよい。DMA操作に関係がある割り込みなどの一定の割り込みは、アンコア110によって処理されてよい。
[0030]バッテリー電力源124は、割り込み信号又はその他通信をコンピューティングデバイス100に供給してもよい。通信は、バッテリー電力源124の状態に対する変更を示すものであってよい。例えば、状態情報は、バッテリー電力源124がユーティリティ電力源122から、現在充電されているかどうか、及びどれだけのバッテリー電源がコンピューティングデバイス100に利用可能であるかを示す情報を含んでよい。いくつかの例において、バッテリー電力源124は、多くのデバイスに電力を供給することがあるので、コンピューティングデバイス100に利用可能な電力量は、バッテリーに貯蔵された電力の合計量より少ないことがある。
[0031]DRAMメモリモジュール114は、時としてページと呼ばれるメモリのユニットに細分されてよい。メモリのページは、メモリのスピード及び揮発性などの一定の特性と関連付けられてよい。例えば、DRAMメモリモジュール114は、揮発性RAMであることがあり、その結果、DRAMメモリモジュール114の電源が停止される場合、DRAMメモリモジュール114の内容は失われる。メモリの特性は、コンピューティングデバイス100上で実行するアプリケーションプログラムに伝えられてよい。いくつかの例において、ファームウェア104は、DRAMメモリモジュール114の特性をブート時に判断し、この情報をオペレーティングシステム102に伝えてよい。次に、オペレーティングシステム102は、これらの特性をアプリケーションプログラムに伝えてよい。
[0032]本明細書で使用されるように、メモリのページは、メモリモジュール内のメモリの一部を指してよい。いくつかの例において、メモリのページは、時としてメモリの領域又はメモリの一部と呼ばれ、メモリデバイスの特性によってグループ化されるか、又は論理的に区分されてよい。例えば、メモリのページ、領域、又は一部は、メモリの内容が単一の操作で読み取り可能又は書き込み可能であることができるメモリに対応してよい。別の例において、メモリのページ、領域、又は一部は、キャッシュラインを共有してよい。その他の例において、メモリのページ、領域、又は一部の境界は、メモリコントローラー、ファームウェア、又はオペレーティングシステムによって論理的に区分されてよい。
[0033]上述のように、DRAMメモリモジュール114は揮発性RAMであってよい。しかし、ファームウェア104及び/又はオペレーティングシステム102は、揮発性のDRAMメモリモジュール114のページを不揮発性メモリであると識別することがある。識別は、メモリの特性についての情報をメモリのユーザーに伝えることを含んでよい。例えば、ファームウェア104は、DRAMメモリモジュール114の一定のページが不揮発性メモリページであることをオペレーティングシステム102にレポートすることがある。例えば、これは、拡張設定及び電源インターフェイス(「ACPI」:Advanced Configuration and Power Interface)によって定義されるシステム記述テーブルなどの、システム記述テーブルを更新することを伴ってよい。オペレーティングシステム102は、コンピューティングデバイス100上で実行しているアプリケーションにこの情報をレポートすることがある。オペレーティングシステム上で実行するアプリケーションは、オペレーティングシステムのアプリケーションプログラミングインターフェイス(「API」:application programming interface)を起動すること、ACPIのシステム記述テーブルを検査すること、などによって、オペレーティングシステムがメモリのページを不揮発性として識別したことを判断してよい。いくつかのケースにおいて、メモリを不揮発性として識別することは、メモリのページのユーザーに明示的又は暗黙的に通知することなく、メモリのページが不揮発性のように扱われるはずであることを、ファームウェア又はオペレーティングシステムが記録することを伴ってよいことに留意されたい。
[0034]揮発性又は不揮発性として識別されたページの数は、バッテリー電力源124内の利用可能な電力量、及び不揮発性であると識別された揮発性メモリのページの内容を保護するのに必要とされる電力量を含む様々なファクターに依存してよい。それに応じて、DRAMメモリモジュール114は、識別された不揮発性メモリ116の構成部分及び識別された揮発性メモリ118の構成部分を備えてよい。
[0035]コンピューティングデバイス100上で実行するアプリケーションは、例えば、データがコミットされたことを保証するために必ずしも追加のステップを実施することなく、不揮発性メモリとして識別されたメモリにデータを書き込むことによって、これらの処理を適応させてよい。いくつかのケースにおいて、アプリケーションは、より多くの量のメモリが不揮発性のコミットモードにあると識別されるときに、より高いパフォーマンスを実現することがある。例えば、アプリケーションは、書き込みが不揮発性として識別されたメモリの領域に対してであった場合、書き込みがコミットされたことを保証することに関連付けられた処理をバイパスしてよい。
[0036]図2は、利用可能なバッテリー電源に基づいて、不揮発性として識別されたページの数を調節することを描写するブロック図である。図2は、バッテリー200及びDRAMメモリモジュール208を描写する。バッテリー200の3つの状態が示され、3つのエネルギーレベル202、204、206に対応する。図2の例は、図1によって描写されたコンピューティングデバイス100などのコンピューティングデバイスの実施形態を示すことを意図するものであり、コンピューティングデバイス100は、デバイスに利用可能なエネルギーに基づいて、不揮発性として識別されたメモリの量を調節する。図2の例において、コンピューティングデバイス100は、バッテリー200内の利用可能なエネルギーの量が時とともに変動する間にユーティリティ電源で動作していてよい。図2は、バッテリー電源の減少量を描写するが、いくつかの例において、エネルギーの量は時とともに増加することがあり、図2に描写された原則に類似の原則が適用されてよい。エネルギーの量は、様々な理由で変動することがある。例えば、いくつかのケースにおいて、バッテリー200は、複数のコンピューティングデバイスに接続されることがあり、そのうちのいくつかは、コンピューティングデバイス100がバッテリー電源のままである間にバッテリー200から電力を引き出すことがある。別の例において、バッテリーの温度又はその他の動作条件が、利用可能なエネルギーの量の原因となることがある。別の例において、バッテリーの最大容量は、時とともに減ることがある。
[0037]エネルギーレベル202において、バッテリー200内のエネルギーの量は、いくつかの数のメモリページ220上でメモリ転送を実施するのに充分であってよい。例えば、図2において、エネルギーレベル202におけるバッテリー200内のエネルギーの量は、10個の描写されたメモリページ220の7つの内容を転送するのに充分であってよい。オペレーティングシステム又はファームウェアは、それぞれのページのメモリの量、DMA操作を実施するのに使用されるエネルギーの量、メモリ転送操作中に電源が維持されるデバイスによって使用されるエネルギーの量、その他などのファクターに基づいて転送されることがあるメモリページの数を判断してよい。バッテリー200がより多くの量の利用可能なエネルギーを有しているとき、より大きな数のページが不揮発性メモリ210として識別されてよく、より少ないページが揮発性メモリ212として識別されてよい。
[0038]低下したエネルギーレベル204において、メモリページ220の内容を転送するのに利用可能なエネルギーの量は低下してもよい。例えば、利用可能なバッテリー電源を使用して4つのメモリページを転送するために充分なメモリがあってもよい。オペレーティングシステム又はファームウェアは、4つのメモリページを不揮発性メモリ214として識別してよく、6つのページは揮発性メモリ216として識別される。
[0039]同様に、さらに低下したエネルギーレベル206において、バッテリー200は、DRAMメモリモジュール208のページのいずれかを不揮発性記憶装置に転送するのに充分なバッテリー電源を供給できないことがある。したがって、オペレーティングシステム又はファームウェアは、DRAMメモリモジュール208のページのすべてを揮発性メモリ218として識別することがある。
[0040]メモリのページが不揮発性メモリとして識別されたとき、その内容は、その後揮発性メモリとして識別されるより前に保護されてよい。例えば、バッテリー200内の利用可能なエネルギーの量がエネルギーレベル202からエネルギーレベル204に低下したとき、識別された不揮発性メモリ210の3つのページは、次に、揮発性メモリ216として識別されるように切りかわってよい。揮発性メモリ216として識別されるようにページを切りかえることを判断するのに応答して、オペレーティングシステム又はファームウェアは、以前識別された不揮発性メモリ210の3つのページの内容を転送してよい。メモリの内容は、コンピューティングデバイス100がユーティリティ電源をまだ使用している間に転送されてよく、したがってバッテリー200内の利用可能なエネルギーの量は転送によって影響を受けない。
[0041]転送を完了させるより前にユーティリティ電源が故障した場合、不揮発性メモリ210として以前に識別されたメモリページのすべてを転送するのに利用可能な充分なエネルギーがないことがある。これが発生するリスクは、不揮発性として識別されるメモリのページの数をより頻繁に調整することを含むがこれらに限定されない様々な方式で緩和されることがあり、不揮発性として識別すべきメモリのページの数を判断するのに使用される計算時のバッテリー変動に、より大きな許容範囲を取り入れる。例えば、不揮発性として識別すべきページの数は、バッテリー内の電力レベルの変動量に比例して、低下してよい。
[0042]図3は、揮発性メモリを、揮発性メモリ又は不揮発性メモリとして識別するコンピューティングデバイスの例を描写するブロック図である。コンピューティングデバイス300は、バッテリー310から通信を受け取るファームウェア308を含んでよい。例えば、バッテリー310は、ユーティリティ電源の現在の状態、バッテリー310内の利用可能なエネルギーの量、その他についての情報を収めるデータを送ってよい。いくつかの例において、バッテリー310は、日付、時間、及びユーティリティ電源中断の期間などの、様々な測定指標及び履歴情報を提供してよい。
[0043]ファームウェア308は、基本入出力システム(「BIOS」:basic input/output system)であってよい。ファームウェア308は、コンピューティングデバイス300の様々なハードウェアデバイス及びコンポーネントを初期化してよい。ファームウェア308は、ランタイム時の動作の様々な態様に関わってもよい。いくつかの例において、ファームウェア308は、コンピューティングデバイス300のハードウェアコンポーネントに抽象化レイヤーを提供してよく、それを通じてオペレーティングシステム304は、コンピューティングデバイス300のハードウェアにアクセスする。
[0044]設定及び電源インターフェイス306は、コンピューティングデバイス300のメモリ構成に関係がある情報及び更新へのアクセスをオペレーティングシステム304に提供してよい。いくつかの例において、設定及び電源インターフェイスは、拡張設定及び電源インターフェイス(「ACPI」)を備えてよい。ファームウェア308は、コンピューティングデバイスにインストールされた様々なメモリモジュールの特性を記述する構成テーブルを、ACPIを通じて提供してよい。いくつかの例において、これらのテーブルは、メモリモジュールが揮発性メモリとしてレポートされる揮発性メモリ、及び不揮発性としてレポートされる不揮発性メモリであるとして、メモリモジュールの特性を記述することがある。その他の例において、揮発性メモリモジュールのすべてを潜在的に含む、揮発性メモリモジュールのいくつかの部分が不揮発性であることを示すのに、テーブルが使用されることがある。いくつかのケースにおいて、ファームウェア又はオペレーティングシステムによってメモリの不揮発性の特性がシミュレートされることを、テーブルが示すことがある。その他のケースにおいて、不揮発性の特性がメモリモジュール自体の特性ではないという指示を、テーブルが含まないことがある。
[0045]オペレーティングシステム304は、様々なプログラム、処理、及びサブ処理を実行できてよい。本明細書で、これらは、図3に描写されたアプリケーション302などのアプリケーションと呼ばれてよい。アプリケーション302は、様々な方式で不揮発性として識別されたメモリを利用してよい。1つの例において、オペレーティングシステム304は、アプリケーションプログラミングインターフェイス(「API」)を使用して、不揮発性として識別されるメモリへのアクセスをアプリケーション302に提供してよい。これは、ヒープ作成又はメモリ割り当てAPIを起動すること、及びリターンされたヒープ又はメモリセグメントが不揮発性メモリページであるはずであることを示すフラグを指定することを含むことがある。いくつかの例において、供給されるメモリの不揮発性の特性が、オペレーティングシステム又はファームウェアによって提供され得るかどうかを、アプリケーションが指定できることがある。その他の例において、揮発性メモリモジュールに基づくページは、透過的に供給されることがあり、その結果、アプリケーションは、提供されるメモリのシミュレートされた不揮発性に適応されるという命令を必ずしも含まないことがある。
[0046]バッテリー310の状態に関係があるデータは、ファームウェア308を含む様々なコンピューティングデバイス300のコンポーネントに配布されてよい。例えば、ファームウェア308は、バッテリー310からデータを受け取るか、又はそうでなければ取得してよい。ファームウェア308は、設定及び電源インターフェイス306を介してオペレーティングシステム304に情報を配布してよい。次に、オペレーティングシステム304は、不揮発性として識別されたメモリの量を調節することによって情報を適用してよい。不揮発性として識別されたメモリの量は、パフォーマンス・リスク比、ユーティリティ電源中断の見積確率及び長さ、バッテリーの正常性、バッテリー電源が変動するレート、その他などの様々なファクターに基づいて判断されてよい。
[0047]オペレーティングシステム304は、コンピューティングデバイス300による使用に利用可能なエネルギーの量の増加に応答してよい。応答は、不揮発性として識別されたメモリの量を増加させることを含んでよい。例えば、オペレーティングシステム304は、不揮発性メモリページとして識別するためにDRAMメモリモジュールの追加のページを選択してよい。これは、選択されたDRAMモジュールのページへのアクセスをアプリケーション302に提供すること、ページを不揮発性であると識別すること、及びユーティリティ電源の故障又はシステムシャットダウンの際に、メモリページの内容が不揮発性記憶装置に転送されるようにすることを伴ってよい。不揮発性メモリへの後続の書き込み操作のために、又はその他の理由で場所を空けるために、メモリの内容は不揮発性記憶装置に転送されてもよい。
[0048]オペレーティングシステム304は、コンピューティングデバイス300による使用に利用可能なエネルギーの量の減少に応答してよい。応答の態様は、以前、不揮発性として識別されたDRAMメモリモジュールのページを選択すること、及びこれらのページが代わりに揮発性として識別されるようにすることを含んでよい。上述したように、識別処理は、メモリのページが揮発性であるか、又は不揮発性であるかを示すために、システム構成テーブルを更新することを含んでよい。バッテリー310内の利用可能なエネルギーの量が低下したとき、以前、不揮発性として示されたページが揮発性として示されるように、テーブルは更新されてよい。応答の別の態様は、これらの非選択状態にされたページの内容を不揮発性記憶装置に転送することを含んでよい。非選択状態にされたページは、不揮発性記憶装置上でまだ保護されていない内容を有することがあり、したがって、その内容は、ページが非選択状態にされたときに保護されてよい。これは、保護されていないデータが、非選択状態にされたページに書き込まれていなかったときに回避されることがある。したがって、いくつかのケースにおいて、内容が既に保護されたページ、又はデータがまだ書き込まれていないページは、非選択の対象として好ましいことがある。
[0049]バッテリー310は、コンピューティングデバイス300に加えて、デバイスによって共有されてよい。図4は、複数のコンピューティングデバイスによって共有されたバッテリーを描写する。バッテリー400は、多くのコンピューティングデバイス408、410、412に予約動作電源を提供してよい。バッテリー400は、バッテリー400の状態に関係があるデータを提供することもあり、又はこのデータへのアクセスを許可することもある。
[0050]バッテリー電源の一部は、コンピューティングデバイス408、410、412のそれぞれによる使用のために予約されてよい。図4によって描写されるように、コンピューティングデバイス408、410、412のそれぞれは、予約されたエネルギーの構成部分402、404、406を有してよい。予約されたエネルギーの構成部分402、404、406は、ユーティリティ電源が中断される際に、個々のコンピューティングデバイス408、410、412によって使用するために、予約されてよい。いくつかの例において、予約されたエネルギーの構成部分402、404、406は、不揮発性として識別されたDRAMメモリモジュールの内容を転送するために特別に予約されることがある。
[0051]予約されたエネルギーの構成部分402、404、406のエネルギーの量は、不揮発性として識別されるべきメモリの対象量などのファクターに基づいてよい。例えば、コンピューティングデバイス408は、DRAMメモリモジュールを不揮発性として積極的に識別するように構成されることがある。したがって、コンピューティングデバイス408のための予約されたエネルギーの構成部分402は、その他の予約されたエネルギーの構成部分404、406のものよりも、大きくされることがある。予約されたエネルギーの量に組み込まれることがあるその他のファクターは、リスク許容度、ユーティリティ電源を失う見積確率、バッテリーの正常性、その他であってよい。メモリの内容を転送するのに必要とされるエネルギーのモデルは、バッテリーからのエネルギーの供給のモデルと併用して使用されてよい。コンピューティングデバイス408、410、412のそれぞれは、モデルを使用して、その他のコンピューティングデバイス408、410、412の所要電力に干渉することなく、どれだけのメモリが不揮発性として識別されてよいかを判断してよい。
[0052]バッテリー400のエネルギーは、コンピューティングデバイス408、410、及び412のオペレーティングシステム又はファームウェアによって予約されてよい。例えば、コンピューティングデバイス408のオペレーティングシステムは、その他の描写されたコンピューティングデバイス410、412などの、バッテリー400のその他のユーザーについての情報を受け取るか、又はそうでなければ取得してよい。情報は、それぞれの構成部分に対して予約されたエネルギーの量に影響を及ぼすことがあるファクターを含んでよい。ユーティリティ電源が中断される際に、不揮発性として識別されたメモリの内容を転送するために、例えば、予約されたエネルギー402の量だけを使用することによって、コンピューティングデバイス408は、その割り当て済みの「電源予算(power budget)」の範囲で作動してよい。
[0053]図5は、不揮発性メモリとして識別された揮発性メモリを有するコンピューティングデバイスを動作させるための例示の処理を描写するフロー図である。図5は、ブロックのシーケンスとして描写されるが、描写されたシーケンスを堅持する実施形態に本開示の範囲を限定するように、描写されたシーケンスが解釈されるべきではないということが理解されよう。さらに、本開示のいくつかの実施形態において、描写されたブロックによって示される操作のいくつかは、変えられ、再配列され、並列に実施され、又は省略されてよいことが理解されよう。
[0054]図1に描写されたコンピューティングデバイス100などの、コンピューティングデバイスの動作中、コンピューティングデバイスのオペレーティングシステム又はファームウェアは、そのメモリの内容を不揮発性記憶装置に転送するのに必要とされるエネルギーの量に少なくともある程度基づいて、どれだけのメモリが不揮発性として識別され得るかを定期的に判断してよい。ブロック500は、揮発性メモリモジュールを不揮発性として識別するために現在の容量を判断することを描写し、ここで、容量は、ユーティリティ電源が中断される際にメモリの内容を保護するのに利用可能なエネルギーの量によって制限されてよい。
[0055]ブロック502は、ユーティリティ電源フェーズ中に、不揮発性として識別された多くの揮発性メモリページとともにコンピューティングデバイスが動作することを描写する。ユーティリティ電源フェーズは、ユーティリティ電源がコンピューティングデバイスに利用可能な時間を指してよい。いくつかの例において、ユーティリティ電源フェーズは、しきい値の長さの時間より短い長さの時間を別にして、ユーティリティ電源が中断される時間帯を含んでよい。しきい値は、しきい値の長さの時間が経過する前に電源が復元される見積確率に基づいてよい。比較的短期の中断がある場合、ユーティリティ電源フェーズは継続してよい。
[0056]ブロック504の操作は、ユーティリティ電源フェーズ中に実施されてよい。ブロック504によって描写されるように、この間、コンピューティングデバイスは、バッテリー容量及び電力状態をモニターしてよい。容量をモニターすることは、バッテリーに貯蔵された電力量についての情報を受け取ること又はそうでなければ取得することを伴ってよい。さらに、コンピューティングデバイスは、バッテリーに貯蔵される電力量、及び電源故障の際のコンピューティングデバイスによる使用のために予約される電力量の両方をモニターしてよい。電力状態をモニターすることは、コンピューティングデバイス及び/又はバッテリーが、現在、ユーティリティ電源で供給されているかどうか、又はいくつかのその他条件が、バッテリー内の利用可能なエネルギーの量を低下させているかどうかを示す情報を受け取ること又はそうでなければ取得することを伴ってよい。
[0057]ブロック506によって描写されるように、ブロック500から504までの操作は、ユーティリティ電源フェーズが継続する間、繰り返されてよい。ユーティリティ電源が故障するか、又はその他の理由で中断される場合、ブロック508及び510の操作が実施されてよい。
[0058]図5によって描写され、本明細書で説明されたように、ユーティリティ電源フェーズは、ユーティリティ電源の一時的な中断と関連付けられてよい。しかし、停電の期間は、コンピューティングデバイスが、その挙動がバッテリー電源の使用に適応されるフェーズに入るような期間であってよい。ブロック508は、コンピューティングデバイスの動作がバッテリー電源の使用量に適応されるバッテリー電源フェーズに入ることを描写する。揮発性メモリを不揮発性メモリとして識別することに関して、コンピューティングデバイスの動作は、様々な方式に適応されてよい。例えば、コンピューティングデバイスは、揮発性メモリの新しいページを不揮発性として識別するのをやめることがあり、これらのページの内容が不揮発性記憶装置に転送されるときに、揮発性メモリページを不揮発性として日和見的に非選択状態にすることがある。これが発生する度合いは、リスク対パフォーマンスのトレードオフが指定されるのを可能にする調整パラメーターなどの、様々なファクターに基づいてよい。
[0059]バッテリーの枯渇が継続した場合、不揮発性として識別されていた揮発性メモリの内容を保護するのに利用可能な十分なエネルギーがないことがあるというポイントまで、バッテリー内の利用可能なエネルギーの量が低下するまで、ブロック510の操作は延ばされる。ブロック510は、不揮発性として識別されていた揮発性メモリのためのメモリ保護フェーズに入ることを描写する。このフェーズにおいて、コンピューティングデバイスは、不揮発性として識別されたメモリの内容の保護に、電力消費が主に向けられる状態に入ってよい。
[0060]不揮発性として識別されたメモリの量は、コンピューティングデバイスのパフォーマンスに対する効果があることがある。いくつかの例において、より多くの量のメモリを不揮発性として識別し、本明細書に記述される様々な技法を使用して、揮発性メモリに書き込まれたデータが保護されることを保証することによって、アプリケーションのパフォーマンスが増大されることがある。図6は、アプリケーションの実績パラメーターに基づいて、不揮発性メモリの識別を調節するための処理の例を描写するフロー図である。ブロックのシーケンスとして描写されるが、描写されたシーケンスを堅持する実施形態に本開示の範囲を限定するように、描写されたシーケンスが解釈されるべきではないということが理解されよう。さらに、本開示のいくつかの実施形態において、描写されたブロックによって示される操作のいくつかは、変えられ、再配列され、並列に実施され、又は省略されてよいことが理解されよう。
[0061]ブロック600は、コンピューティングデバイスが利用可能なバッテリー電源の指示を受け取ることを描写する。指示は、図5のブロック510によって描写されるように、万一、コンピューティングデバイスがメモリ保護モードに入る場合、利用可能な電力のどれだけが確実に利用可能であるかを判断するのに充分な情報を含んでよい。
[0062]ブロック602は、電源予算及び電源予算の差異を判断することを描写する。電源予算は、メモリ保護モードが入れられる際のバッテリー電源の割り当てを指してよい。例えば、電源予算は、不揮発性として識別されたメモリの内容を保護するために、コア、アンコア、1つ又は複数のメモリモジュール、及び不揮発性記憶装置を動作させるための利用可能なバッテリー電源の割り当てを含むことがある。電源予算は、その他デバイスへの割り当てを含むこともある。
[0063]電源予算の差異は、電源予算の見積られた信頼性を指してよい。これは、利用可能な電力量、及びメモリ保護フェーズ中に電源予算の項目が実際に消費することがある電力量などのファクターの調整を含んでよい。例えば、メモリページが通常の動作の過程で既に保護されたということ、又はメモリページが一度も書き込まれたことがなく、したがって保護されるべきものを何も収めなかったということがあり得るので、不揮発性として識別されたメモリページのいくらかの割合がメモリ保護フェーズ中に保護される必要が実際にはないことを、より積極的な電源予算は想定することがある。しかし、これらの想定が不正確であると判明する場合、メモリ予算は超過されることがある。
[0064]ブロック604は、調整パラメーターを使用して電源予算を設定し直すことを描写する。例えば、調整パラメーターは、コンピューティングシステムがどれだけ積極的に揮発性メモリを不揮発性として識別すべきかを示すオペレーティングシステム又はファームウェアの構成要素であってよい。例えば、いくつかのアプリケーションにおいて、システム故障の際にデータが失われるという危険を冒すことが受入可能であってよい。次に、より多くの量の揮発性メモリが不揮発性として識別されることが許容されるように、電源予算は調節されることがある。その他のアプリケーションに関して、データ喪失は、受入不能なものとみなされてよい。これらのアプリケーションに関して、オペレーティングシステム又はファームウェアの構成要素は、メモリ保護フェーズ中の電力使用量の悲観的な見通しに基づいて、電源予算は計算しているはずであるということを示すことがある。
[0065]ブロック606において、コンピューティングデバイスは、コミットモードを揮発性メモリのページに割り当ててよい。言い換えると、コンピューティングデバイスは、揮発性メモリの一定のページを、不揮発性のコミットモードを有するものとして識別することを判断してよいが、その他のページは、揮発性のコミットモードのままであってよい。ここで、コミットモードは、メモリに書き込まれたとき、書き込みがコミットされた、すなわち持続的とみなされてよいかどうかを指してよい。
[0066]コンピューティングシステムは、電源予算に基づいて、不揮発性のコミットモードのためのメモリのページを選択してよい。これは、電源予算によって許容されるメモリのページの最大数まで選択して不揮発性のコミットモードを有することを含んでよい。これは、ページを選択して不揮発性のコミットモードと関連付けられてよいページの数を最大化することを含んでもよいが、電源予算と一致したままである。いくつかの例において、選択されたページは、メモリモジュールによってグループ化されてよく、その結果、不揮発性のコミットモードのページを有するメモリモジュールの総数は低下してよく、電源予算との適合が増大されることがある。
[0067]図7は、揮発性メモリの内容を保護する例を提供するブロック図である。揮発性メモリの特性を有するDRAMメモリモジュール700は、多くの数のメモリのページを備えてよい。描写されたDRAMメモリモジュール700は揮発性なので、その構成要素のメモリページのすべては揮発性であり、すなわち、DRAMメモリモジュール700の電源が中断される場合、これらの内容は失われる。しかし、本明細書で述べられるように、一定のページは不揮発性であると識別されてよく、そのため、コンピューティングデバイス上で実行するアプリケーションによって不揮発性のように扱われる。図7によって描写されるように、DRAMメモリモジュールは、識別された不揮発性のページ704、706を収めてよい。これらのうち、いくつかのメモリページ704は、保護されない内容を収めてよく、一方、その他のメモリページ706は、既に保護された内容を収めることがあり、又は同等に、メモリページ706は、書き込まれたことがなく、そのために、保護されるべきものを何も有さないことがある。DRAMメモリモジュール700は、現在、揮発性として識別されないメモリのページ708を収めることもある。
[0068]図7の例において、識別された不揮発性のページ706の内容は、ページ706の内容を不揮発性記憶装置702に転送することによって以前に保護されていてよい。ページ706の内容は、保護されたページのレコード712によって不揮発性記憶装置702上に記憶されるように示される。
[0069]不揮発性として識別されたが、まだ保護されていないメモリの1つ又は複数のページ704の内容は、直接メモリ転送操作714によって不揮発性記憶装置上に保護されてよい。例えば、プロセッサ及びメモリコントローラーは、DMA操作に、ページの内容を不揮発性記憶装置702に転送させてよい。
[0070]不揮発性記憶装置702の領域は、予約状態になってよい。これは、予約されたストレージ710という名称の要素によって図7に描写される。予約されたストレージ710は、不揮発性として識別されたメモリのページ704及び706の内容を記憶するのに充分なスペースの領域を含んでよい。いくつかの例において、不揮発性として識別されたメモリの量は、不揮発性として識別されたメモリの内容が保護されるのを、利用可能な記憶域スペースの不足が防ぐことがあるので、不揮発性記憶装置702上で利用可能な記憶域スペースの量に部分的に基づいてよい。
[0071]メモリ保護フェーズは、揮発性メモリの内容を保護することに適応された低電力状態に入ることによって始まってよい。低電力状態は許容してよい。図8は、不揮発性として識別された揮発性メモリの内容を保護するための例示の処理を描写するフロー図である。ブロックのシーケンスとして描写されるが、描写されたシーケンスを堅持する実施形態に本開示の範囲を限定するように、描写されたシーケンスが解釈されるべきではないということが理解されよう。さらに、本開示のいくつかの実施形態において、描写されたブロックによって示される操作のいくつかは、変えられ、再配列され、並列に実施され、又は省略されてよいことが理解されよう。
[0072]ブロック800は、休止状態になるための時間帯が求められる間、コンピューティングデバイスが、仮想マシン、又はデータベースなどのその他のアプリケーションを停止することを描写する。例えば、コンピューティングデバイスがメモリ保護フェーズに入ったこと、又は入ろうとしていることを判断すると、仮想マシンなどの様々なアプリケーションは、できるだけ多くのコミットされていないデータをアプリケーションが保存できる制御時間帯を通知され、及び与えられてよい。いくつかの例において、オペレーティングシステム及び/又はファームウェアは、メモリ保護フェーズ中にメモリの内容を保護するので、不揮発性として識別されたメモリに書き込まれたデータは、コミットされた状態にあるかのようにアプリケーションによって扱われてよい。
[0073]ブロック802において、コンピューティングデバイスは、メモリ保護フェーズの残りの間に必要とされない一定のデバイスへの電力配給を停止することによって、低電力状態に入り始めてよい。これらのデバイスは、グラフィックカード、ユーザーインターフェイスバス、ネットワークカード、その他を含んでよい。
[0074]ブロック804によって描写されるように、コンピューティングデバイスは、プロセッサ割り込みをマスクしてもよい。例えば、すべてのプロセッサ割り込みは、一定のエラーに関連があるもの、及びDMA操作などのメモリ転送操作を処理するために必要とされるものを除いてマスクされてよい。
[0075]ブロック806は、すべての関連付けられたコア、アンコア、及びその他のプロセッサコンポーネントを含む未使用のプロセッサへの電力配給が、停止されてよいことを描写する。このような文脈において、未使用は、メモリ保護を実施するために必要とされないこれらのプロセッサを指してよい。例えば、いくつかの例において、単一のプロセッサ、又は単一のプロセッサの単一のコアが、メモリ保護を完了させるのに充分であることがある。したがって、コンピューティングシステムの残りのプロセッサへの電力配給は、メモリ保護フェーズ中、停止されてよい。いくつかの例において、割り込みが、プロセッサをウェイクさせ、電力配給が再開されるようにしてよいことに留意されたい。ブロック804によって描写される割り込みマスキングは、このようなことが発生するのを防ぎ、未使用のプロセッサを低電力状態又は無電力状態に保ってよい。
[0076]ブロック808は、コンピューティングデバイスが、不揮発性として識別されたページがない揮発性メモリモジュールへの電力配給を停止してもよいことを描写する。コンピューティングデバイスは、内容が既に保護された任意の揮発性メモリモジュールの電源を停止してもよい。追加として、コンピューティングデバイスは、否定論理積ゲート(「NAND」)メモリモジュールなどの、本来的に不揮発性である任意のメモリモジュールの電源を停止してもよい。
[0077]様々な例において、コンピューティングデバイスは、最も早く完了され得る、揮発性メモリモジュールを伴うメモリ転送操作を優先させてよい。例えば、第1のメモリモジュールの内容が第2のメモリモジュールの内容より迅速に保護され得る場合、コンピューティングデバイスは、第2のメモリモジュールの内容以上に、第1のメモリモジュールの内容を転送することを優先させてよい。このアプローチは、第2のメモリモジュールへの電力配給より早く、第1のメモリモジュールへの電力配給が停止されることを可能にすることがあり、メモリ保護フェーズで使用されるエネルギーの量の全般的な減少をもたらす。
[0078]ブロック810は、プロセッサのアンコアへの電力配給を維持しながら、コンピューティングデバイスがプロセッサのコアへの電力配給を停止してよいことを描写する。マルチコアプロセッサに関して、コアのすべてへの電力配給が停止されてよい。メモリ保護フェーズ中、コアの1つの又は複数への電力配給は、定期的に再開されてよい。復元されると、コアはメモリ転送操作を開始するために使用されてよく、この後、電力配給は再び停止されてよい。これは、ブロック812によって描写される。一方で、プロセッサのアンコアへの電力配給は維持される。メモリコントローラーを収めるアンコアは、メモリ転送操作を監視し、転送が完了するときにプロセッサのコアへの電力配給が再開されるようにしてよい。
[0079]ブロック814によって描写されるように、不揮発性記憶装置、及び記憶装置に書き込むことを要求される任意のインターフェイス又は通信バスへの電力配給は、メモリ転送操作が完了され得るように、メモリ保護フェーズ中、維持されてよい。
[0080]図9は、メモリ保護中にプロセッサコアへの電力配給を制御する例を描写するフロー図である。ブロックのシーケンスとして描写されるが、描写されたシーケンスを堅持する実施形態に本開示の範囲を限定するように、描写されたシーケンスが解釈されるべきではないということが理解されよう。さらに、本開示のいくつかの実施形態において、描写されたブロックによって示される操作のいくつかは、変えられ、再配列され、並列に実施され、又は省略されてよいことが理解されよう。
[0081]ブロック900は、揮発性メモリモジュールから不揮発性記憶装置への直接メモリ転送操作を開始する命令をプロセッサのコアが実行してよいことを描写する。直接メモリ転送操作は、不揮発性として識別されていた揮発性メモリモジュールのページを不揮発性記憶装置にコピーしてよい。
[0082]ブロック902は、直接メモリ転送操作を開始した後にプロセッサのコアの電源を停止することを描写する。直接メモリ転送操作は、電源が停止されている間、進行していてよい。この間、プロセッサのアンコアへの電力配給は維持されてよい。
[0083]ブロック904によって描写されるように、メモリ転送操作が完了状態にあることを示すために、割り込みが生成されてよい。割り込みは、アンコアのメモリコントローラーによって生成されてよい。割り込み信号の処理は、コアへの電力配給を少なくとも再開することによって、コアを再覚醒させることを含んでよい。この操作はブロック900によって描写される。
[0084]ブロック908において、覚醒されたコアは、以前、不揮発性として識別されたすべての揮発性メモリが保護されたかどうかを判断する命令を実行してよい。これは、不揮発性として識別された揮発性メモリページのレコードを、及び対応するページの内容が既に保護されたかどうか、書き込まれたことがないので保護する必要がないかどうか、又はまだ保護される必要があるかどうかを示す情報を調査する命令を実行することを含んでよい。
[0085]不揮発性メモリとして識別されたすべての揮発性メモリが保護された場合、又は保護を要しない場合、ブロック910によって描写されるように、システムはシャットダウンしてよい。そうでなければ、処理はブロック900で再開してよく、ここで、覚醒されたプロセッサは、追加のメモリ転送操作を開始してよい。
[0086]図10は、不揮発性として識別された揮発性メモリモジュールを有するコンピューティングデバイスを動作させる例を描写するフロー図である。ブロックのシーケンスとして描写されるが、描写されたシーケンスを堅持する実施形態に本開示の範囲を限定するように、描写されたシーケンスが解釈されるべきではないということが理解されよう。さらに、本開示のいくつかの実施形態において、描写されたブロックによって示される操作のいくつかは、変えられ、再配列され、並列に実施され、又は省略されてよいことが理解されよう。
[0087]ブロック1000は、揮発性メモリのページの内容を不揮発性記憶装置に転送するのに使用されるエネルギーの見積量を示す情報を取得することを描写する。情報は、観察、実験、コンピューティングデバイスの動作中に記録された測定指標、その他から取得されてよい。いくつかのケースにおいて、情報は、構成パラメーターによって供給されてよい。情報は、不揮発性記憶装置へのDMA転送操作を実施するのに使用されるエネルギーの量を含んでよい。情報は、DMA転送を開始するためにプロセッサコアによって使用されるエネルギー、及び不揮発性記憶装置によって消費されるエネルギーの量を含んでもよい。その他の電力消費のファクターが含まれてもよい。
[0088]ブロック1002は、バッテリー内の利用可能なエネルギーの量を示す情報を取得することを描写する。情報は、例えば、バッテリーからコンピューティングデバイスに送られたメッセージから、又はコンピューティングデバイスによって開始されたポーリング機構から取得されてよい。これらの例は例証的なものであり、限定するように解釈されるべきではない。
[0089]ブロック1004は、バッテリー内の利用可能なエネルギーの量を使用して、メモリのページの内容が不揮発性記憶装置に転送されてよいことを判断することを描写する。
[0090]判断は、パフォーマンスモード又はデータセーフティモードなどの動作モードに基づいてよい。動作モードは、パラメーター又は構成データによって指定されてよく、例えば、動作モードは、不揮発性として識別するために揮発性メモリのページの最大数を計算するときに許されると考えられるリスクのレベルを示すものであってよい。
[0091]判断は、現在不揮発性として識別されているページの総数、又は不揮発性として識別されていたページの数及び現在保護を要するデータを有するページの数に基づいてよい。オペレーティングシステム又はファームウェアは、ページあたりの利用可能なエネルギーの量を判断し、この値を、メモリのページを保護するのに要求されるエネルギーと比較してよい。この量が充分以上である場合、より多くのページが不揮発性として識別されてよい。この量が不充分である場合、オペレーティングシステム又はファームウェアは、様々なステップを行い、ユーティリティ電源で動作する間、充分な数のページを揮発性として再識別してよい。コンピューティングシステムは、不揮発性として識別されることがある揮発性メモリのページの最大数を同様に判断してよい。最大数は、定期的に再計算されてよい。
[0092]判断は、ユーティリティ電源中断の際に、利用可能なエネルギーの量を使用して、揮発性メモリの一部が不揮発性メモリに転送可能である統計的確率の計算に基づいてよい。
[0093]ブロック1006は、判断に基づいて、揮発性メモリのページを不揮発性メモリのように扱うように、コンピューティングデバイスのオペレーティングシステムを構成することを描写する。揮発性メモリのページを不揮発性のように扱うことは、コンピューティングデバイス上で実行するアプリケーションに、メモリによってサポートされるコミットモードを識別する情報を提供することを含んでよい。例えば、コミットモードは、メモリに書き込まれたデータがすぐにコミットされる、すなわち(操作すること又はファームウェアが、不揮発性として識別されたメモリの内容を保護する責任を負うので)アプリケーションの関与に関して、すぐに耐久性のあるものにされるということを示してよい。
[0094]オペレーティングシステムを構成することは、ページが揮発性ではなく不揮発性であることを示す情報で構成インターフェイスのデータを更新することを含んでよい。例えば、ファームウェアは、メモリが不揮発性であるとそのユーザーに表示するようにACPIのテーブルを更新してよい。
[0095]ブロック1008は、メモリ保護フェーズに入ることを示す情報を受け取ることを描写する。情報は、ユーティリティ電源が中断されたとき、例えば、バッテリーから送られるか、又はそうでなければ取得されてよい。ユーティリティ電源が中断されるのに応答して、コンピューティングデバイスは、バッテリー電源を使用することにスイッチし、通常の動作を継続してよい。しかし、利用可能なエネルギーの量がさらに減少した場合、現在不揮発性として識別されるすべての揮発性メモリページの内容、及び保護されるべき内容を有するすべての揮発性メモリページの内容を、利用可能なエネルギーの量が保護するのに充分ではないポイントに、バッテリー内の利用可能な電力が時間の経過とともに降下することがある。この時、コンピューティングデバイスは、メモリ保護フェーズに入ってよく、これは、メモリ保護に必要とされない電力消費をシャットダウンすること、及び不揮発性として識別された揮発性メモリの内容を保護するのに要求されるメモリ転送を開始することを伴ってよい。
[0096]バッテリー内の利用可能なエネルギーの量の低下を示す情報を受け取るのに応答して、ページの内容は転送されてよい。例えば、ユーティリティ電源の喪失、バッテリーの正常性の低下、追加のデバイスがバッテリーに接続されること、その他のために、低下は発生することがある。
[0097]メモリ保護フェーズに入るより前に、コンピューティングデバイスのオペレーティングシステム又はファームウェアは、不揮発性として識別されていた揮発性メモリのページを解除し始めてよい。これは、メモリの内容を保護すること、及びページを揮発性として再識別することを伴ってよい。例えば、バッテリー電源で動作しているが普通に動作している間、オペレーティングシステム又はファームウェアは、ユーティリティ電源が中断されてからの時間、又は利用可能なバッテリー電源の量などのファクターをモニターし、メモリ保護フェーズがいよいよ起こりそうになりつつあるが、まだ確かではないという想定の下で、シミュレートされた不揮発性のページを解除し始めてよい。調整パラメーター又はパフォーマンスパラメーターは、これがこれだけ急速に発生するべきかを調節するのに使用されてよい。安全性ではなくパフォーマンスが貴重である場合、できるだけ長い間、システムが揮発性メモリを不揮発性のように扱い続けるべきであることをパラメーターは示してよい。
[0098]ブロック1010は、ページの内容を不揮発性記憶装置に転送することによってメモリのページの内容を保護することを描写する。例えば、本明細書に記述されるように、内容はDMA操作によって転送されてよい。ページの内容が記憶され得る不揮発性記憶装置上の予約されたスペースを、コンピューティングデバイスは維持してよい。
[0099]一実施形態において、コンピューティングデバイスは、
[0100]複数のページに論理的に区分された揮発性メモリと、
[0101]不揮発性記憶装置であって、複数のページのページの内容は、メモリ転送操作によって不揮発性記憶装置に転送可能である、不揮発性記憶装置と、
[0102]コンピューティングデバイスのオペレーティングシステムと、
[0103]少なくとも、
[0104]バッテリー内のエネルギーの量を示す情報を受け取ることであって、エネルギーは、コンピューティングデバイスによる使用に利用可能である、こと、
[0105]メモリ転送操作を実施するのに必要とされるエネルギーの量を判断すること、
[0106]メモリ転送操作を実施するのに必要とされるエネルギーの量に少なくともある程度基づいて、コンピューティングデバイスによる使用に利用可能なエネルギーの量を使用して不揮発性記憶装置に内容を転送することが可能な複数のページのページ数を判断すること、及び
[0107]揮発性メモリの複数のページの1つ又は複数のページを不揮発性メモリのように扱うように、オペレーティングシステムを構成することであって、1つ又は複数のページの数は、判断されたページ数に基づく、こと
をコンピューティングデバイスに行わせる1つ又は複数のプロセッサと
を備えてよい。
[0108]一実施形態において、1つ又は複数のプロセッサは、少なくとも、
[0109]1つ又は複数のページの内容を不揮発性記憶装置の予約された部分に転送すること
をコンピューティングデバイスにさらに行わせる。
[0110]一実施形態において、1つ又は複数のページの内容は、バッテリー内のエネルギーの量の低下を示す情報を受け取るのに応答して転送される。
[0111]一実施形態において、オペレーティングシステムを構成することは、揮発性メモリの1つ又は複数のページに対応する不揮発性メモリの1つ又は複数のページを示す情報で構成インターフェイスのデータを更新することを含む。
[0112]一実施形態において、コンピューティングデバイスのメモリを使用する方法は、
[0113]揮発性メモリのページの内容を不揮発性メモリに転送するのに必要とされるエネルギーの量を示す情報を取得することと、
[0114]揮発性メモリのページの内容を不揮発性メモリに転送するのに利用可能なエネルギーの量を示す情報を受け取ることと、
[0115]必要とされるエネルギーの量に少なくともある程度基づいて、利用可能なエネルギーの量を使用して揮発性メモリのページの内容が不揮発性メモリに転送可能であることを判断することと、
[0116]揮発性メモリのページを不揮発性メモリのページのように扱うように、コンピューティングデバイスのオペレーティングシステムを構成することと
を含む。
[0117]一実施形態において、方法は、
[0118]揮発性メモリのページの内容を不揮発性メモリの予約された部分に転送すること
をさらに含む。
[0119]一実施形態において、方法は、
[0120]揮発性メモリのページの内容を不揮発性メモリに転送するのに利用可能なエネルギーの量の低下を示す情報を受け取るのに応答して、揮発性メモリのページの内容を不揮発性メモリの予約された部分に転送すること
をさらに含む。
[0121]一実施形態において、オペレーティングシステムを構成することは、揮発性メモリの1つ又は複数のページに対応する不揮発性メモリの1つ又は複数のページを示す情報で構成インターフェイスのデータを更新することを含む。
[0122]一実施形態において、方法は、
[0123]コンピューティングデバイスのパフォーマンスモード又は安全性モードの少なくとも1つを示す情報に少なくともある程度基づいて、揮発性メモリのページの内容が不揮発性メモリに転送可能であることを判断すること
をさらに含む。
[0124]実施形態において、方法は、
[0125]コンピューティングデバイスがユーティリティ電源からバッテリー電源にスイッチしたことを示す情報を受け取ることと、
[0126]コンピューティングデバイスがユーティリティ電源からバッテリー電源にスイッチしてからの時間の長さに少なくともある程度基づいて、揮発性メモリのページを揮発性メモリのように扱うように、オペレーティングシステムを構成することと、
[0127]揮発性メモリのページの内容を不揮発性メモリに転送することと
をさらに含む。
[0128]一実施形態において、揮発性メモリのページの内容を不揮発性メモリに転送するのに必要とされるエネルギーの量を示す情報は、揮発性メモリのページから不揮発性メモリに直接メモリアクセス転送を実施することによって消費されるエネルギーに少なくともある程度基づく。
[0129]一実施形態において、揮発性メモリのページの内容を不揮発性メモリに転送するのに必要とされるエネルギーの量を示す情報は、プロセッサがページの内容を転送するための操作を開始することによって消費されるエネルギーに少なくともある程度基づく。
[0130]一実施形態において、方法は、
[0131]オペレーティングシステムによって不揮発性メモリページのように扱われるように構成される揮発性メモリのその他のページの数に少なくともある程度基づいて、揮発性メモリのページの内容が転送可能であることを判断すること
をさらに含む。
[0132]実施形態において、方法は、
[0133]揮発性メモリのページの内容を不揮発性メモリに転送するのに利用可能なエネルギーを使用して、不揮発性メモリに転送可能な揮発性メモリのページの最大数を判断すること
をさらに含む。
[0134]一実施形態において、コンピューター読み取り可能記憶媒体は、コンピューターによる実行時に、少なくとも、
[0135]揮発性メモリの内容を不揮発性メモリに転送するのに必要とされるエネルギーの量を示す情報を取得することと、
[0136]揮発性メモリの内容を不揮発性メモリに転送するのに利用可能なエネルギーの量を示す情報を受け取ることと、
[0137]必要とされるエネルギーの量に少なくともある程度基づいて、利用可能なエネルギーの量を使用して不揮発性メモリに転送可能な揮発性メモリの一部を識別することと、
[0138]揮発性メモリの上記一部を不揮発性メモリのように扱うように、コンピューターのオペレーティングシステムを構成することと
をコンピューターに行わせるコンピューター実行可能命令を記憶している。
[0139]一実施形態において、コンピューター読み取り可能記憶媒体は、コンピューターによる実行時に、少なくとも、
[0140]利用可能なエネルギーの量を使用して不揮発性メモリに転送され得るメモリの量を少なくとも判断することによって、不揮発性メモリに転送可能な揮発性メモリの一部を識別すること
をコンピューターに行わせる命令をさらに含む。
[0141]一実施形態において、コンピューター読み取り可能記憶媒体は、コンピューターによる実行時に、少なくとも、
[0142]ユーティリティ電源中断の際に、揮発性メモリの上記一部が、利用可能なエネルギーの量を使用して不揮発性メモリに転送可能である統計的確率を計算すること
をコンピューターに行わせる命令をさらに含む。
[0143]一実施形態において、コンピューター読み取り可能記憶媒体は、コンピューターによる実行時に、少なくとも、
[0144]揮発性メモリの内容を不揮発性メモリに転送するのに利用可能なエネルギーの量の低下を示す情報を受け取るのに応答して、揮発性メモリの上記一部を不揮発性メモリの予約された部分に転送すること
をコンピューターに行わせるさらなる命令をさらに含む。
[0145]一実施形態において、オペレーティングシステムは、オペレーティングシステムによってアクセスされる設定及びインターフェイスデータを少なくとも更新することによって、揮発性メモリの上記一部を不揮発性メモリのように扱うように構成される。
[0146]一実施形態において、揮発性メモリの上記一部は、揮発性メモリの当該一部に記憶されたデータと互換性のあるコミットモードを示す情報を、コンピューター上で実行するアプリケーションに少なくとも提供することによって、オペレーティングシステムによって不揮発性メモリのように扱われる。
[0147]本開示の態様は、1つ又は複数のコンピューティングデバイス又は環境に実装されてよい。図11は、本明細書に記述される技法のうちのいくつかが具体化され得る例示のコンピューティング環境を描写する。コンピューティングデバイス1102は、適切なコンピューティング環境の1つの例にすぎず、本開示の主題の使用又は機能性の範囲について、いかなる限定も示唆することを意図するものではない。コンピューティング環境の描写は、例示のコンピューティングデバイス1102において図示されるコンポーネントの任意の1つ又はこれらの組合せに関する、いかなる依存関係又は要件も含意するように解釈されるべきではない。いくつかの実施形態において、様々な描写されたコンピューティング要素は、本開示の具体的な態様を例示するように構成された回路機器を含んでよい。例えば、本開示で使用される用語回路機器は、ファームウェア又はスイッチによって機能を実施するように構成された専用のハードウェアコンポーネントを含んでよい。その他の例示の実施形態において、用語回路機器は、機能を実施するように動作可能なロジックを具体化するソフトウェア命令によって構成された汎用処理ユニット、メモリ、他を含むことができる。回路機器がハードウェアとソフトウェアの組合せを含む例示の実施形態において、実装者は、ロジックを具体化するソースコードを書き込んでよく、ソースコードは、汎用処理ユニットによって処理され得るマシン読み取り可能コードにコンパイルされてよい。ハードウェア、ソフトウェア、又はハードウェア/ソフトウェアの組合せの間にほとんど相違がないポイントに最新技術が進化してきたことを当業者は理解できるので、具体的な機能を遂行するためにソフトウェアに対するハードウェアを選択することは、実装者に残されたデザインの選択肢である。より具体的には、ソフトウェアプロセスは、同等のハードウェア構造に変換されてよく、ハードウェア構造は、同等のソフトウェアプロセスにそれ自体が変換されてよいということを当業者は理解することができる。このように、ソフトウェア実装形態に対するハードウェア実装形態を選択することは、デザインの選択肢のうちの1つであり、実装者に残される。
[0148]コンピューティングデバイス1102は、モバイルデバイス、スマートフォン、タブレットPC、ノートPC、デスクトップコンピューター、他のいずれかを含んでよく、典型的には、様々なコンピューター読み取り可能媒体を含む。コンピューター読み取り可能媒体は、コンピューティングデバイス1102によってアクセスされ得る任意の利用可能な媒体であってよく、揮発性媒体及び不揮発性媒体、リムーバブル媒体及び非リムーバブル媒体を含む。本明細書で使用されるように、媒体及びコンピューター読み取り可能媒体は、伝搬する信号又は一時的な信号を当然含まない。
[0149]システムメモリ1122は、リードオンリーメモリ(「ROM」:read only memory)1123及びランダムアクセスメモリ(「RAM」:random access memory)1160などのメモリの形式のコンピューター読み取り可能記憶媒体を含む。RAMメモリ1160は、デュアルインラインメモリモジュール(「DIMM」)などの揮発性メモリモジュールを含んでよい。システムメモリ1122のRAM1160の部分は、時として、メインメモリと呼ばれることがある。RAM1160は、典型的には、すぐにアクセス可能な、及び/又はプロセッサ1159によって現在操作されているデータ及び/又はプログラムモジュールを収める。例として、及び限定ではなく、図11は、オペレーティングシステム1025、アプリケーションプログラム1126、その他のプログラムモジュール1127、及びプログラムデータ1128を示す。
[0150]プロセッサ1159は、典型的には、時としてコアと呼ばれる少なくとも1つの1次処理ユニット、及び時としてアンコアと呼ばれる少なくとも1つのシステムエージェントを収める。メモリ転送を監視すること、及びプロセッサのキャッシュを維持することを含み得る関連タスクをアンコアが実施する間、プロセッサ1159のコアは、典型的には、コンピューター実行可能命令を実行する。アンコアは、プロセッサ1159のコアとシステムメモリ1122との間をインターフェイスするためのメモリコントローラーを備えてよい。
[0151]スタートアップ中などにコンピューティングデバイス1102内の要素間で情報を転送するのに役立つ基本的なルーチンを収める基本入出力システム1124(「BIOS」)は、典型的には、ROM1123に記憶される。様々な実施形態において、BIOS1124は、その他のファームウェアによって置き替えられてよい。
[0152]コンピューティングデバイス1102は、不揮発性記憶装置を含んでもよい。例としてのみ、図11は、非リムーバブルで不揮発性の磁気媒体から読み取り又はこれらに書き込むハードディスクドライブ1138、及びCDROM又はその他の光媒体などの、リムーバブルで不揮発性の光ディスク1153から読み取り又はこれらに書き込む光ディスクドライブ1114を示す。例示のオペレーティング環境において使用されることがあるその他の不揮発性記憶装置は、フラッシュメモリ、デジタル多用途ディスク、ソリッドステートディスクドライブ、などを含むが限定されない。ハードディスクドライブ1138は、典型的には、インターフェイス1134などの非リムーバブルメモリインターフェイスを通じてシステムバス1121に接続され、光ディスクドライブ1104は、典型的には、インターフェイス1135などのリムーバブルメモリインターフェイスによってシステムバス1121に接続される。
[0153]上記で論じられ、図11に図示されたドライブ及びこれらに関連付けられたコンピューター記憶媒体は、コンピューター読み取り可能命令、データ構造、プログラムモジュール、及びコンピューティングデバイス1102のためのその他のデータのストレージを提供する。例えば、図1において、ハードディスクドライブ1138は、オペレーティングシステム1158の命令、アプリケーションプログラム1157、その他のプログラムモジュール1156、及びプログラムデータ1155を記憶するように示される。これらのコンポーネントは、オペレーティングシステム1125、アプリケーションプログラム1126、その他のプログラムモジュール1127、及びプログラムデータ1128と同じ、又は異なってよいことに留意されたい。オペレーティングシステム1158、アプリケーションプログラム1157、その他のプログラムモジュール1156、及びプログラムデータ1155は、最低でも、これらが異なるコピーであることを示すために、ここでは異なる番号を与えられる。ユーザーは、ユーザー入力デバイス1152を通じて、コマンド及び情報をコンピューティングデバイス1102に入れてよい。ユーザーインターフェイスデバイス1152は、キーボード、タッチパッド、コンピューターマウス、トラックボールなどを含んでよいが、これらに限定されない。その他の入力デバイスは、同じく図示していないが、マイク、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナー、又は同様のものを含んでよい。これらの及びその他の入力デバイスは、しばしば、システムバスに連結されるユーザー入力インターフェイス1136を通じて処理ユニット1159に接続されるが、パラレルポート、ゲームポート、又はユニバーサルシリアルバス(USB)などのその他のインターフェイス及びバス構造に接続されてよい。画面1142又はディスプレイデバイスのその他のタイプは、GPU1129を介して同様に接続されるが、いくつかの例において、画面1142はシステムバス1121又は別のインターフェイスを通じて駆動されてよい。モニターに加えて、コンピューターは、入出力インターフェイス1133を通じて接続されることがあるスピーカー、プリンター、その他などのその他の周辺入出力デバイスを含んでもよい。バッテリー1184は、入出力インターフェイス1133によってシステムに接続されてもよい。バッテリー1184は、入出力インターフェイス1133を介して情報を送ること及び受け取ることを行ってよい。情報は、バッテリー1134内の利用可能なエネルギーの量、ユーティリティ電源1182の状態、バッテリー1134の正常性、その他などの状態情報を含んでよい。
[0154]電源装置1180は、コンピューティングデバイス1102のコンポーネントへの電力の配給を制御してよい。電力配給は、時々、特定のコンポーネントに対して停止されてよいが、その他のコンポーネントに対しては維持される。電源の一時停止は、有効なコンポーネントへのエネルギーのフローにおける全体的又は部分的な中断を伴ってよく、したがってコンポーネントに低電力状態に入らせることを含んでよい。
[0155]電源装置1180は、ユーティリティ電源1182又はバッテリー1184から電力を受け取ってよい。ユーティリティ電源1182は、コンピューティングデバイス1102の動作期間中に、一般に利用可能であるとみなされてよい任意の電力源を指してよい。バッテリー1184は、ユーティリティ電源1182が中断される際にバックアップ電源を提供することを意図する任意の電力源を含んでよい。
[0156]コンピューティングデバイス1102は、リモートコンピューター1146などの1つ又は複数のリモートコンピューターへの論理接続を使用してネットワーク化環境で動作してよい。リモートコンピューター1146は、パーソナルコンピューター、サーバー、ルーター、ネットワークPC、ピアデバイス又はその他の計算ノードであってよく、典型的には、コンピューティングデバイス1102に関連して上記で記述された要素の多く又はすべてを含む。図11に描写された接続はネットワーク1145を含み、これは、ローカルエリアネットワーク、ワイドエリアネットワーク、携帯ネットワーク、及びメッシュネットワーク、又はネットワークのその他のタイプを含んでよい。
[0157]様々な項目が、使用されながらメモリ又はストレージに記憶されるように図示されること、並びにメモリ管理及びデータ整合性のために、メモリとその他の記憶装置の間でこれらの項目又はその部分が転送されてよいことも理解されよう。代替として、その他の実施形態において、ソフトウェアモジュール及び/又はシステムのいくつか又はすべては、別のデバイス上のメモリ内で実行し、コンピューター間通信を介して、図示されたコンピューティングシステムと通信してよい。さらに、いくつかの実施形態において、システム及び/又はモジュールのいくつか又はすべては、少なくとも部分的に、ファームウェア及び/又はハードウェア内などの、その他の方式で実装又は提供されてよく、1つ又は複数の特定用途向け集積回路(ASIC)、標準的な集積回路、(例えば、適正な命令を実行すること、並びにマイクロコントローラ及び/又は埋め込みコントローラーを含むことによる)コントローラー、フィールドプログラマブルゲートアレイ(FPGA)、複合プログラマブルロジックデバイス(CPLD:complex programmable logic device)、他を含むが限定されない。モジュール、システム、及びデータ構造のいくつか又はすべては、ハードディスク、メモリ、ネットワーク、又はポータブル媒体物品などの、コンピューター読み取り可能媒体に(例えば、ソフトウェア命令又は構造化データとして)記憶され、適正なドライブによって、又は適正な接続を介して読み取られてよい。システム、モジュール、及びデータ構造は、ワイヤレスベース及びワイヤード/ケーブルベースの媒体を含む様々なコンピューター読み取り可能送信媒体上で、生成されたデータ信号として(例えば、搬送波又はその他のアナログ又はデジタル伝搬信号の一部として)送信されてもよく、(例えば、単一のもしくは多重化されたアナログ信号の一部のような、又は複数の分離したデジタルパケットもしくはフレームのような)様々な形式をとってよい。このようなコンピュータープログラム製品は、他の実施形態において、その他の形式をとってもよい。それに応じて、本開示は、その他のコンピューターシステム構成で実践されてよい。
[0158]本明細書に記述される処理、方法、及びアルゴリズムのそれぞれは、コンピューティングデバイスの1つ又は複数のプロセッサによってメモリにロードされ、実行されるコンピューター実行可能命令を含むモジュール内で具体化されてよく、これらのモジュールによって完全に又は部分的に自動化されてよい。処理及びアルゴリズムは、アプリケーション固有の回路機器に、全面的に又は部分的に実装されてもよい。開示された処理及び処理ステップの結果は、永続的に、又はそうでなければ、例えば、揮発性もしくは不揮発性ストレージなどのコンピューター記憶装置の任意のタイプに、記憶されてよい。本明細書で使用されるように、揮発性及び不揮発性ストレージは、伝搬する信号又は一時的な信号を当然除外する。
[0159]本明細書に記述される様々な特徴及び処理は、互いに非従属的に使用されてよく、又は様々な方式で結合されてよい。すべての可能な組合せ及び小結合は、本開示の範囲に入ることを意図される。追加として、処理、方法、及びアルゴリズムの一定の要素は、いくつかの実装形態において省略されてよい。本明細書に記述される方法及び処理は、いずれかの特定のシーケンスに限定されるものでもなく、それに関するブロック又は状態を含む描写は、適正なその他のシーケンスで実施されてよい。例えば、記述されるブロックもしくは状態は、具体的に開示された順序以外の順序で実施されてよく、又は複数のブロックもしくは状態は、単一のブロックもしくは状態の中で結合されてよい。例示のブロック又は状態は、連続に、並列に、又はいくつかのその他の手法で実施されてよい。ブロック又は状態は、開示された例示の実施形態に追加されてよく、又は開示された例示の実施形態から削除されてよい。本明細書に記述された例示のシステム及びコンポーネントは、記述されたものとは異なって構成されてもよい。例えば、要素は、開示された例示の実施形態に追加されてよく、開示された例示の実施形態から削除されてよく、又は開示された例示の実施形態と比較して再整理されてよい。
[0160]とりわけ、「できる(can)」、「できる(could)」、「してよい(might)」、「してよい(may)」、「例えば」、その他などの本明細書で使用される条件付きの言葉づかいは、別の方法で具体的に述べられない限り、又はそうでなければ、文脈の中で使用されるように理解されない限り、一般に、一定の特徴、要素、及び/又はステップを、一定の実施形態は含むが、その他の実施形態は含まないことを伝えることを意図される。このように、このような条件付きの言葉づかいは、特徴、要素、及び/又はステップが、いずれかの方式で1つ又は複数の実施形態に要求されること、あるいは1つ又は複数の実施形態が、作成者の入力又は催促があってもなくても、これらの特徴、要素及び/もしくはステップが含まれるかどうか、又は任意の特定の実施形態において実施されることになるかどうかを判定するためのロジックを必然的に含むことを含意することを一般に意図されない。用語「備える(comprising)」、「含む(including)」、「有する(having)」などは同義であり、自由な様式で包括的に使用され、追加の要素、特徴、作用、操作などを除外しない。また、用語「又は」は、使用されるとき、例えば、要素のリストを接続するために、用語「又は」が、リストの要素の1つ、いくつか、又はすべてを意味するように、その包括的な意味で(かつ、その排他的意味ではなく)使用される。
[0161]本明細書に提示された実施形態は、例としてそのように提示され、本開示の範囲を限定することを意図されない。このように、前述にあるものは、任意の特定の特徴、特性、ステップ、モジュール又はブロックが要求され、必要であり、又は不可欠であることを含意することを意図されない。本明細書に記述される方法及びシステムは、様々な形式で具体化されてよい。本明細書に記述される方法及びシステムの形式における様々な除外、代用、及び変更は、本明細書で開示されるものの精神から逸脱することなく行われてよい。付随する特許請求の範囲及びこれらの均等物は、本明細書で開示された一定の実施形態の範囲及び精神に入るような形式又は修正をカバーすることを意図される。
[0162]主題は、構造上の特徴及び/又は作用に固有の言葉づかいで記述されたが、追加された特許請求の範囲で定義された主題は、上述の具体的な特徴又は作用に必ずしも限定されないということを理解されたい。むしろ、上述の具体的な特徴及び作用は、特許請求の範囲を実装する例として開示され、その他の同等の特徴及び作用は、特許請求の範囲の範囲内にあることを意図される。

Claims (14)

  1. 複数のページに論理的に区分された揮発性メモリと、
    不揮発性記憶装置であって、前記複数のページのうちのページの内容は、メモリ転送操作によって前記不揮発性記憶装置に転送可能である、不揮発性記憶装置と、
    コンピューティングデバイスのオペレーティングシステムと、
    前記コンピューティングデバイスに、少なくとも、
    バッテリー内のエネルギーの量を示す情報を受け取らせ、前記エネルギーは、前記コンピューティングデバイスによる使用に利用可能であり、
    前記メモリ転送操作を実施するのに必要とされるエネルギーの量を判断させ、
    前記メモリ転送操作を実施するのに必要とされるエネルギーの前記量に少なくとも部分的に基づいて、前記コンピューティングデバイスによる使用に利用可能なエネルギーの前記量を使用して前記複数のページのうちの前記不揮発性記憶装置に内容を転送することが可能なページの数を判断させ、
    前記オペレーティングシステムが前記揮発性メモリの前記複数のページのうちの1つ又は複数のページを不揮発性メモリとして識別するように、前記オペレーティングシステムを構成させ、前記1つ又は複数のページの数は、前記判断されたページの数に基づき、
    前記1つ又は複数のページの内容を前記不揮発性記憶装置へ転送させる、
    1つ又は複数のプロセッサと、
    を備える、コンピューティングデバイス。
  2. 前記1つ又は複数のプロセッサは、前記コンピューティングデバイスに、少なくとも、
    前記1つ又は複数のページの内容を前記不揮発性記憶装置の予約された部分に転送させる、請求項1に記載のコンピューティングデバイス。
  3. 前記1つ又は複数のページの前記内容は、前記バッテリー内のエネルギーの前記量の低下を示す情報を受け取るのに応答して転送される、請求項2に記載のコンピューティングデバイス。
  4. 前記オペレーティングシステムを構成することは、揮発性メモリの前記1つ又は複数のページに対応する不揮発性メモリの1つ又は複数のページを示す情報で構成インターフェイスのデータを更新することを含む、請求項1に記載のコンピューティングデバイス。
  5. コンピューティングデバイスのメモリを使用する方法であって、
    前記コンピューティングデバイスが、複数のページ内に論理的に区分された揮発性メモリの前記複数のページのうちのページの内容を不揮発性記憶装置に転送するのに必要とされるエネルギーの量を判断するステップと、
    前記コンピューティングデバイスが、前記コンピューティングデバイスによる使用に利用可能なバッテリー内のエネルギーの量を示す情報を受け取るステップと、
    前記コンピューティングデバイスが、前記必要とされるエネルギーの量に少なくとも部分的に基づいて、前記コンピューティングデバイスによる使用に利用可能なエネルギーの量を使用して前複数のページのうちの前記不揮発性記憶装置に内容を転送することが可能なページの数を判断するステップと、
    前記コンピューティングデバイスが、前記コンピューティングデバイスのオペレーティングシステムが前記揮発性メモリの前記複数のページのうちの1つ又は複数のページを不揮発性メモリのページとして識別するように、前記コンピューティングデバイスの前記オペレーティングシステムを構成するステップであって、前記1つ又は複数のページの数は、前記判断されたページの数に基づく、ステップ
    を含む、方法。
  6. 前記揮発性メモリの前記1つ又は複数のページの前記内容を前記不揮発性記憶装置の予約された部分に転送するステップ
    をさらに含む、請求項5に記載の方法。
  7. 前記バッテリー内の前記エネルギーの量の低下を示す情報を受け取るのに応答して、前記揮発性メモリの前記1つ又は複数のページの前記内容を前記不揮発性記憶装置の予約された部分に転送するステップ
    をさらに含む、請求項5に記載の方法。
  8. 前記オペレーティングシステムを構成するステップは、前記揮発性メモリの前記1つ又は複数のページに対応する不揮発性メモリの1つ又は複数のページを示す情報で構成インターフェイスのデータを更新するステップを含む、請求項5に記載の方法。
  9. 前記コンピューティングデバイスのパフォーマンスモード又は安全性モードの少なくとも1つを示す情報に少なくとも部分的に基づいて、前記揮発性メモリの前記1つ又は複数のページの前記内容が前記不揮発性記憶装置に転送可能であることを判断するステップ
    をさらに含む、請求項5に記載の方法。
  10. 前記コンピューティングデバイスがユーティリティ電源からバッテリー電源にスイッチしたことを示す情報を受け取るステップと、
    前記コンピューティングデバイスがユーティリティ電源からバッテリー電源にスイッチしてからの時間の長さに少なくとも部分的に基づいて、前記揮発性メモリの前記1つ又は複数のページを揮発性メモリとして識別するように、前記オペレーティングシステムを構成するステップと、
    前記揮発性メモリの前記1つ又は複数のページの前記内容を前記不揮発性記憶装置に転送するステップと
    をさらに含む、請求項5に記載の方法。
  11. 前記揮発性メモリのページの内容を前記不揮発性記憶装置に転送するのに必要とされるエネルギーの量は前記揮発性メモリの前記ページから前記不揮発性記憶装置に直接メモリアクセス転送を実施することによって消費されるエネルギーに少なくとも部分的に基づく、請求項5に記載の方法。
  12. 前記揮発性メモリのページの内容を前記不揮発性記憶装置に転送するのに必要とされるエネルギーの量は、プロセッサが前記ページの前記内容を転送するための操作を開始することによって消費されるエネルギーに少なくとも部分的に基づく、請求項5に記載の方法。
  13. 前記コンピューティングデバイスによる使用に利用可能な前記エネルギーを使用して、前記不揮発性記憶装置に転送可能な前記揮発性メモリのページの最大数を判断するステップ
    をさらに含む、請求項5に記載の方法。
  14. コンピューターによる実行時に、前記コンピューターに、少なくとも、
    複数のページ内に論理的に区分された揮発性メモリの前記複数のページのうちのページの内容を不揮発性記憶装置に転送するのに必要とされるエネルギーの量を判断させ、
    前記コンピューターによる使用に利用可能なバッテリー内のエネルギーの量を示す情報を受け取らせ、
    前記必要とされるエネルギーの前記量に少なくとも部分的に基づいて、前記コンピューターによる使用に利用可能なエネルギーの前記量を使用して前記複数のページのうちの前記不揮発性記憶装置に内容を転送することが可能なページの数を判断させ、
    前記コンピューターのオペレーティングシステムが前記揮発性メモリの前記複数のページのうちの1つ又は複数のページを不揮発性メモリとして識別するように、前記コンピューターの前記オペレーティングシステムを構成させ、前記1つ又は複数のページの数は、前記判断されたページの数に基づく、
    コンピューター実行可能命令を記憶したコンピューター読み取り可能記憶媒体。
JP2018528232A 2016-01-22 2017-01-20 不揮発性メモリとしての揮発性メモリの使用 Active JP7054384B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/004,830 US9746895B2 (en) 2016-01-22 2016-01-22 Use of volatile memory as non-volatile memory
US15/004,830 2016-01-22
PCT/US2017/014377 WO2017127709A1 (en) 2016-01-22 2017-01-20 Use of volatile memory as non-volatile memory

Publications (2)

Publication Number Publication Date
JP2019510284A JP2019510284A (ja) 2019-04-11
JP7054384B2 true JP7054384B2 (ja) 2022-04-13

Family

ID=57956418

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018528232A Active JP7054384B2 (ja) 2016-01-22 2017-01-20 不揮発性メモリとしての揮発性メモリの使用

Country Status (18)

Country Link
US (2) US9746895B2 (ja)
EP (1) EP3405858A1 (ja)
JP (1) JP7054384B2 (ja)
KR (1) KR20180102057A (ja)
CN (1) CN108369488B (ja)
AU (1) AU2017210226B2 (ja)
BR (1) BR112018010704A8 (ja)
CA (1) CA3003486C (ja)
CL (1) CL2018001390A1 (ja)
CO (1) CO2018005630A2 (ja)
HK (1) HK1256100A1 (ja)
IL (1) IL259104B (ja)
MX (1) MX2018006388A (ja)
PH (1) PH12018550054A1 (ja)
RU (1) RU2739722C2 (ja)
SG (1) SG11201803670UA (ja)
WO (1) WO2017127709A1 (ja)
ZA (1) ZA201802763B (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9760147B2 (en) 2016-01-22 2017-09-12 Microsoft Technology Licensing, Llc Power control for use of volatile memory as non-volatile memory
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
CN115080158A (zh) * 2021-03-12 2022-09-20 Oppo广东移动通信有限公司 界面显示方法、装置、终端设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040054851A1 (en) 2002-09-18 2004-03-18 Acton John D. Method and system for dynamically adjusting storage system write cache based on the backup battery level
US20150363272A1 (en) 2014-06-16 2015-12-17 Samsung Electronics Co., Ltd. Computing system with adaptive back-up mechanism and method of operation thereof

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01241653A (ja) * 1988-03-24 1989-09-26 Matsushita Graphic Commun Syst Inc メモリー・バックアップ・システム
JPH0467219A (ja) * 1990-07-09 1992-03-03 Fujitsu Ltd 停電時における半導体記憶装置のデータ保護方式
JPH07271683A (ja) * 1994-03-31 1995-10-20 Fanuc Ltd データ保持方式
JPH07306839A (ja) * 1994-05-11 1995-11-21 Hitachi Ltd ネットワークファイルのアクセス高速化方法
GB0320142D0 (en) * 2003-08-28 2003-10-01 Ibm Data storage systems
US7051223B2 (en) * 2003-09-30 2006-05-23 International Business Madnine Corporation System, apparatus, and method for limiting non-volatile memory
US7805523B2 (en) * 2004-03-15 2010-09-28 Mitchell David C Method and apparatus for partial updating of client interfaces
DE602004003583T2 (de) * 2004-10-04 2007-11-22 Research In Motion Ltd., Waterloo System und Verfahren zum Datensichern bei Stromausfall
JP4842563B2 (ja) * 2005-05-16 2011-12-21 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
JP2006323739A (ja) * 2005-05-20 2006-11-30 Renesas Technology Corp メモリモジュール、メモリシステム、及び情報機器
US7451348B2 (en) 2005-08-04 2008-11-11 Dot Hill Systems Corporation Dynamic write cache size adjustment in raid controller with capacitor backup energy source
CZ298373B6 (cs) * 2006-01-13 2007-09-12 Ažd Praha S. R. O. Zpusob zachování bezpecného stavu elektronických bezpecnostne relevantních zarízení se složenou bezpecností pri poruše
US9081669B2 (en) * 2006-04-27 2015-07-14 Avalanche Technology, Inc. Hybrid non-volatile memory device
US8200885B2 (en) * 2007-07-25 2012-06-12 Agiga Tech Inc. Hybrid memory system with backup power source and multiple backup an restore methodology
US8281169B2 (en) 2008-08-27 2012-10-02 Wireless Silicon Group, Inc. Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM)
US8468370B2 (en) * 2009-09-16 2013-06-18 Seagate Technology Llc Systems, methods and devices for control of the operation of data storage devices using solid-state memory and monitoring energy used therein
US8437808B2 (en) 2010-05-03 2013-05-07 Hewlett-Packard Development Company, L.P. Apparatus and methods for power management on mobile devices
US9037820B2 (en) * 2012-06-29 2015-05-19 Intel Corporation Optimized context drop for a solid state drive (SSD)
US9317212B2 (en) 2012-12-18 2016-04-19 Intel Corporation Method and apparatus for controlling a storage device
US9098280B2 (en) 2012-12-28 2015-08-04 Intel Corporation Staged power distribution control
US20140229657A1 (en) * 2013-02-08 2014-08-14 Microsoft Corporation Readdressing memory for non-volatile storage devices
US9335809B2 (en) 2013-03-15 2016-05-10 Seagate Technology Llc Volatile memory storing system data during low power mode operation and monitoring the voltage supplied to the memory during low power mode

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040054851A1 (en) 2002-09-18 2004-03-18 Acton John D. Method and system for dynamically adjusting storage system write cache based on the backup battery level
US20150363272A1 (en) 2014-06-16 2015-12-17 Samsung Electronics Co., Ltd. Computing system with adaptive back-up mechanism and method of operation thereof

Also Published As

Publication number Publication date
RU2018119717A (ru) 2019-12-02
WO2017127709A1 (en) 2017-07-27
BR112018010704A2 (pt) 2018-11-21
NZ742061A (en) 2021-09-24
BR112018010704A8 (pt) 2019-02-26
RU2018119717A3 (ja) 2020-06-30
MX2018006388A (es) 2018-09-05
ZA201802763B (en) 2019-07-31
CO2018005630A2 (es) 2018-05-31
RU2739722C2 (ru) 2020-12-28
JP2019510284A (ja) 2019-04-11
US20170212573A1 (en) 2017-07-27
HK1256100A1 (zh) 2019-09-13
IL259104B (en) 2021-09-30
CA3003486A1 (en) 2017-07-27
AU2017210226A1 (en) 2018-05-17
CA3003486C (en) 2024-01-16
KR20180102057A (ko) 2018-09-14
IL259104A (en) 2018-07-31
EP3405858A1 (en) 2018-11-28
CN108369488A (zh) 2018-08-03
SG11201803670UA (en) 2018-08-30
CL2018001390A1 (es) 2018-09-14
US10359826B2 (en) 2019-07-23
US9746895B2 (en) 2017-08-29
AU2017210226B2 (en) 2021-07-22
CN108369488B (zh) 2021-11-02
PH12018550054A1 (en) 2018-11-12
US20170329379A1 (en) 2017-11-16

Similar Documents

Publication Publication Date Title
US10115442B2 (en) Demand-based provisioning of volatile memory for use as non-volatile memory
US10936038B2 (en) Power control for use of volatile memory as non-volatile memory
TWI480724B (zh) 用以指示電池電力之方法及運算裝置、以及儲存相關指令的儲存媒體
US9904346B2 (en) Methods and apparatus to improve turbo performance for events handling
JP7054384B2 (ja) 不揮発性メモリとしての揮発性メモリの使用
BRPI0907774B1 (pt) Programação de encadeamento ciente de energia e uso dinâmico de processadores
US20160314024A1 (en) Clearance mode in a multicore processor system
EP3649536A1 (en) Core frequency management using effective utilization for power-efficient performance
TW201423400A (zh) 用於超管理器系統之針對雙直列記憶體模組節能的系統與方法
US20170220354A1 (en) Server node shutdown
US10664034B2 (en) Communication associated with multiple nodes for delivery of power
NZ742061B2 (en) Use of volatile memory as non-volatile memory
JP2019109600A (ja) 情報処理装置、計算機制御方法、および計算機制御プログラム
JP2013196316A (ja) ディスクアレイ装置及びディスクアレイ装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220207

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220401

R150 Certificate of patent or registration of utility model

Ref document number: 7054384

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150