[go: up one dir, main page]

JP5901698B2 - メモリ管理方法 - Google Patents

メモリ管理方法 Download PDF

Info

Publication number
JP5901698B2
JP5901698B2 JP2014124370A JP2014124370A JP5901698B2 JP 5901698 B2 JP5901698 B2 JP 5901698B2 JP 2014124370 A JP2014124370 A JP 2014124370A JP 2014124370 A JP2014124370 A JP 2014124370A JP 5901698 B2 JP5901698 B2 JP 5901698B2
Authority
JP
Japan
Prior art keywords
data
dram
nvram
computer
units
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.)
Expired - Fee Related
Application number
JP2014124370A
Other languages
English (en)
Other versions
JP2016004420A (ja
Inventor
信之 大庭
信之 大庭
誠治 宗藤
誠治 宗藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2014124370A priority Critical patent/JP5901698B2/ja
Priority to US14/722,532 priority patent/US9552291B2/en
Publication of JP2016004420A publication Critical patent/JP2016004420A/ja
Application granted granted Critical
Publication of JP5901698B2 publication Critical patent/JP5901698B2/ja
Priority to US15/349,391 priority patent/US9891854B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/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/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • 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/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0009Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a DRAM cell

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)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)
  • Memory System (AREA)

Description

本発明は、メモリ管理方法に関し、より具体的には、DRAM及びNVRAMを含む主メモリを備えるコンピュータの動作状態に応じて主メモリを管理するための方法に関する。
現在、不揮発性メモリ(以下、「NVRAM」と呼ぶ)が盛んに研究開発されている。将来的に、NVRAMを使うことで、より高集積、低電力、低コストのメモリシステムを構築できると期待されている。そうした中で、コンピュータの主記憶メモリにDRAMとNVRAMを使うことが提案されている。
しかし、NVRAMは、DRAMに比べて書き込み時間が長い、書き込み消費電力が大きい、書き込み単位が大きい、書き込みの耐久性(Endurance)が弱いなどの欠点がある。したがって、NVRAMを主記憶メモリとして使うためには、これらの欠点を補わなければならないが、実使用上必ずしも十分な改善が図られていない。
その結果、現状では実使用上せいぜいNVRAMを主記憶メモリのデータのバックアップのために利用するに留まっている状況にある。
国際公開WO2006/028658 特開2010−282252 特開2009−93502
したがって、本発明の目的は、NVRAMをコンピュータの主記憶メモリの1つとして利用できるようにすることであり、より具体的には、DRAM及びNVRAMを含む主メモリを備えるコンピュータの動作状態に応じて主メモリを管理するための方法を提供することである。
本発明の一態様では、DRAM及びNVRAMを含む主メモリを備えるコンピュータの動作状態に応じて主メモリを管理するための方法を提供する。その方法は、
(a)コンピュータの起動時において、プログラムおよび/またはデータをDRAMにロードすることに加えて、所定のプログラムおよび/またはリードオンリーのデータをNVRAMにロードするステップと、
(b)コンピュータの通常動作からサスペンド状態への状態遷移において、DRAMのデータをページ単位でNVRAMに移動するステップと、
(c)コンピュータのサスペンド状態から通常動作への状態遷移において、コンピュータによるプログラムの実行のためにNVRAMからページ単位でデータを読み出すステップと、
(d)NVRAMからページ単位でデータを読み出すステップ(c)において、NVRAMへのページ単位でのデータの書き込みが発生した場合、当該データの書き込みを停止し、当該データの書き込みが行われるNVRAMのデータ領域のデータをページ単位でDRAMに移動させるステップと、
(e)データの移動後のDRAMにおいて、ページ単位でのデータの書き込みを行うステップと、を含む。
本発明の一態様によれば、DRAM及びNVRAMを含む主メモリを備えるコンピュータにおいて、コンピュータの動作状態に応じてNVRAMを主メモリの一部として(DRAMの補完/補強として)あるいはデータのバックアップ先として使い分けることにより、主メモリを用いたコンピュータの動作の高速化あるいは省電力化を図ることが可能となる。
本発明の一態様では、DRAMの使用状態を検出するステップと、T1時間の間読み出しがない、あるいはT2時間の間書き込みがないDRAMのページをNVRAMに移動するステップと、をさらに含む。
本発明の一態様によれば、DRAMの使用状態に応じて、予めNVRAMへデータを移動させて、DRAMの空き容量を増やすと共に、コンピュータ動作のサスペンド状態に移行する際のデータ移動量を低減させることが可能となる。
本発明の一態様では、DRAMの使用状態を検出するステップは、(i)所定の時間間隔で、(ii)コンピュータが備える演算装置の稼働率が所定値以下になった場合に、または(iii)コンピュータへの入力が所定時間なかった場合に実行される。
本発明の一態様によれば、コンピュータ(CPU)の稼働状態に応じて、予めNVRAMへデータを退避させて、DRAMの空き容量を増やすと共に、コンピュータ動作のサスペンド時におけるデータ移動量を低減させることが可能となる。
本発明の一態様では、DRAMのデータをページ単位でNVRAMに移動するステップ(b)は、DRAMのデータを外部記憶装置に移動するステップを含む。
本発明の一態様によれば、NVRAMの容量不足を外部記憶装置で補完させることによりコンピュータ動作のサスペンド時におけるデータ移動を円滑かつ安全におこなうことが可能となる。
本発明を実行するコンピュータの構成例を示すブロック図である。 本発明が実行可能なACPIの動作状態の遷移を示す図である。 本発明の一実施例の動作状態のイメージ図である。 本発明の一実施例の動作状態のイメージ図である。 本発明の一実施例の動作状態のイメージ図である。 本発明の一実施例の動作状態のイメージ図である。
図面を参照しながら本発明の実施の形態を説明する。図1は、本発明の方法を実行するコンピュータの一構成例を示すブロック図である。コンピュータ100は、バス30を介して相互に接続された演算処理装置(以下、CPUと呼ぶ)10、記憶手段20、各種インターフェース(以下、I/Fと呼ぶ)40を含む。各種I/F40は、入力I/F、出力I/F、外部記憶I/F、外部通信I/F等を含む総称として用いられる。各I/Fは、それぞれ対応するキーボード、マウス等の入力手段50、CRT、LCD等の表示手段60、USB接続の半導体メモリやHDD等の外部記憶手段70に接続する。
記憶手段20は、RAM、ROM等の半導体メモリ、HDD等を含むことができる。本発明では、記憶手段20は、主メモリ200として機能するDRAM210及びNVRAM220を含む。NVRAM220は、EEPROM、Flush Memory等の基本的に電源を供給し続けなくてもデータの保管が可能な任意の不揮発性のメモリを含むことができる。本発明の方法は、コンピュータ100が例えば記憶手段20、70等に格納された所定のソフトウェア(OSを含む)を呼び出して実行することにより実施される。
図2は、本発明が実行可能なACPIの動作状態の遷移を示す図である。ACPIは、アドバンスド・コンフィグレーション・アンド・パワー・インターフェイス(Advanced Configuration and Power Interface)の略称であり、PC/AT互換機等の電源制御と構成要素に関する公開された統一規格である。なお、本発明の適用対象はACPIに限定されず、同様なコンピュータの動作状態の遷移を伴う形態(仕様)であれば、他の規格等に基づくものでもよい。
ACPIで規定するコンピュータの動作状態にはS0〜S5の6状態がある。本発明ではこの中の特にS0、S4、及びS5の3状態に着目する。このS0、S4、及びS5の3状態の意味は下記の通りである。

S0:通常の動作状態
S4:Suspend to DiskまたはHibernationと呼ばれる状態で、メモリ内容も失われる。メモリの内容をHDD等に書き出し、電源断の状態にするのと同じである。
S5:完全なる電源断である。

本発明では、後述するように、上記の3状態間の次の3つの状態遷移に対応した主メモリの管理を実行する。

T50 : S5 → S0
T04 : S0 → S4
T40 : S4 → S0
図3〜図6を参照しながら、コンピュータの各状態遷移における本発明の実施形態について説明する。
<状態遷移:T50>
図3の(a)に示すように、T50の状態遷移は、コンピュータの電源断(S5)から通常動作(S0)への起動時(コールドスタート)での状態遷移である。図3の(b)は、各要素間のデータ等の移動、保管の状態を示す。このコールドスタート時において、BIOSブートローダがOSブートローダを呼び出す。OSのブートローダは、矢印Aで示すように、プログラムやデータをHDD等20(70)からDRAM210にロードする。また、矢印Bで示すように、リードオンリーとわかっているプログラムやデータはNVRAM220にロードする。さらに、 ネットワークや外部ストレージを代表とする入出力装置用バッファは、頻繁に書き込みが発生するのでDRAM210上にマップする。
<状態遷移:T04>
図4の(a)に示すように、T04の状態遷移は、コンピュータの通常動作(S0)からHibernation状態(S4)への状態遷移である。図4の(b)、(c)、(d)は、各要素間のデータ等の移動、保管の状態を示す。(b)に示すように、S0状態ではDRAM210にデータ等とページテーブルが保管されている。(c)に示すように、T04の状態遷移では、DRAM210上のデータをページ単位で(以下、“ページ”を“データ”と同意で用いる場合がある)NVRAM220上へ移動する(矢印A)。ページテーブルを更新してNVRAM220上に保管する。(b)及び(c)におけるページテーブルからの破線矢印は、メモリ上の領域(アドレス)を特定するためのポインタをイメージしている。この点、後述する図5及び図6においても同様である。(d)に示すように、NVRAM220にデータが移動しきれない場合は、HDD等20(70)に移動させる(矢印B)。ページテーブル自体は、最後にNVRAM220へ移動する。
<状態遷移:T40>
図5の(a)に示すように、T40の状態遷移は、コンピュータのHibernation状態(S4)から通常動作(S0)への状態遷移である。図4の(b)、(c)、(d)は、各要素間のデータ等の移動、保管の状態を示す。T40の状態遷移では、CPU10がNVRAM220から直接データを読み込みながらプログラムを実行する。最初に、ページテーブルはDRAM210に移動しておく。(b)に示すように、NVRAM220にマップされたページをリードオンリー属性にしておく。(c)に示すように、そのページにCPU10から書き込み要求があった場合は例外を発生させ、すなわち、ページ書き込みフォールトを起こして、その書き込み要求を一旦拒否する。(d)に示すように、そのページのデータをNVRAM220からDRAM210へ移動する。その後、DRAM210へデータを書き込む。最後にページテーブルを更新する。
上記した図5(b)〜(d)の動作は、従来のCopy On Writeで使われている方法と類似しているが、本発明ではデータをコピーするのではなく移動する点が相違している。 元のNVRAM220上のデータは必ずしもクリアする必要はないが、セキュリティ上の観点からクリアするのが望ましい。NVRAM220がFLASH Memoryである場合は、その1ブロックは一度に消去できるので、その消去機能を使ってよい。 DRAM210に空きスペースが無くなった場合は、DRAM210上のデータをNVRAM220に移動する。NVRAM220に空きスペースが無い場合は、通常のページングと同じように、外部記憶装置70へスワップアウトする。
<状態遷移:T04の補助動作(オプション)>
図4を参照しながら説明した状態遷移T04で移動するデータ量を少なくするため、また、DRAM210の使用率を下げ、空き領域を確保するため、DRAM210上のページをNVRAM220上に移動するオプションを設けることができる。図6を参照しながらこの内容について説明する。
図6の(b)に示すように、DRAM210のページテーブルの使用状態をスキャンし(矢印Scan)、以下のいずれかの条件を満たした場合に、図6の(c)に示すように、DRAM210上のページをNVRAM220上へ移動する(矢印Move)。条件1を使うか、条件2を使うかは適宜選択することができる。
(条件1): 過去Tu秒間使用されていなかったDRAM210のページをNVRAM220へ移動する。
(条件2): 過去Tw秒間書き込みがなかったDRAM210のページをNVRAM220へ移動する。
図6(b)でのスキャン開始のトリガーとして、例えば、Linux(登録商標)ではkscandやkswapdルーチンのように定期的に走るプログラムからこの補助動作を呼び出すことができる。その他のスキャン開始トリガーとしては、CPU10の稼働率が予め設定された値を下回った時、またはユーザからの入力が一定時間なかった時(スクリーンセーバの起動タイミングなど)を用いることができる
本発明の実施形態について、図を参照しながら説明をした。しかし、本発明はこれらの実施形態に限られるものではない。本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良、修正、変形を加えた態様で実施できるものである。
10 CPU
20 記憶手段
70 外部記憶装置
100 コンピュータ
200 主メモリ
210 DRAM
220 NVRAM

Claims (8)

  1. DRAM及びNVRAMを含む主メモリを備えるコンピュータの動作状態の遷移に応じて主メモリを管理するための方法であって、
    (a)コンピュータの起動時において、プログラムおよび/またはデータをDRAMにロードすることに加えて、所定のプログラムおよび/またはリードオンリーのデータをNVRAMにロードするステップと、
    (b)コンピュータの通常動作からサスペンド状態への状態遷移において、DRAMのデータをページ単位でNVRAMに移動するステップと、
    (c)コンピュータのサスペンド状態から通常動作への状態遷移において、コンピュータによるプログラムの実行のためにNVRAMからページ単位でデータを読み出すステップと、
    (d)前記NVRAMからページ単位でデータを読み出すステップ(c)において、NVRAMへのページ単位でのデータの書き込みが発生した場合、当該データの書き込みを停止し、当該データの書き込みが行われるNVRAMのデータ領域のデータをページ単位でDRAMに移動させるステップと、
    (e)前記データの移動後のDRAMにおいて、前記ページ単位でのデータの書き込みを行うステップと、を含む方法。
  2. 前記DRAMの使用状態を検出するステップと、
    T1時間の間読み出しがない、あるいはT2時間の間書き込みがない前記DRAMのページを前記NVRAMに移動するステップと、をさらに含む請求項1に記載の方法。
  3. 前記DRAMの使用状態を検出するステップは、(i)所定の時間間隔で、(ii)前記コンピュータが備える演算装置の稼働率が所定値以下になった場合に、または(iii)前記コンピュータへの入力が所定時間なかった場合に実行される、請求項2に記載の方法。
  4. 前記DRAMのデータをページ単位でNVRAMに移動するステップ(b)は、前記DRAMのデータを外部記憶装置に移動するステップを含む、請求項1に記載の方法。
  5. 前記DRAMのデータをページ単位でNVRAMに移動するステップ(b)は、当該データの移動毎に対応するページテーブルを更新するステップを含む、請求項1または4に記載の方法。
  6. 前記データの移動後のDRAMにおいて、前記ページ単位でのデータの書き込みを行うステップ(e)は、当該データの書き込み毎に対応するページテーブルを更新するステップを含む、請求項1に記載の方法。
  7. 前記コンピュータの動作状態は、アドバンスド・コンフィグレーション・アンド・パワー・インターフェイス(ACPI)規格に従う動作状態である、請求項1に記載の方法。
  8. 請求項1〜7のいずれか1項の各ステップを実行するためのコンピュータ・プログラム。
JP2014124370A 2014-06-17 2014-06-17 メモリ管理方法 Expired - Fee Related JP5901698B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014124370A JP5901698B2 (ja) 2014-06-17 2014-06-17 メモリ管理方法
US14/722,532 US9552291B2 (en) 2014-06-17 2015-05-27 Memory management method
US15/349,391 US9891854B2 (en) 2014-06-17 2016-11-11 Memory management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014124370A JP5901698B2 (ja) 2014-06-17 2014-06-17 メモリ管理方法

Publications (2)

Publication Number Publication Date
JP2016004420A JP2016004420A (ja) 2016-01-12
JP5901698B2 true JP5901698B2 (ja) 2016-04-13

Family

ID=54836261

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014124370A Expired - Fee Related JP5901698B2 (ja) 2014-06-17 2014-06-17 メモリ管理方法

Country Status (2)

Country Link
US (2) US9552291B2 (ja)
JP (1) JP5901698B2 (ja)

Families Citing this family (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US12137140B2 (en) 2014-06-04 2024-11-05 Pure Storage, Inc. Scale out storage platform having active failover
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US12182044B2 (en) 2014-07-03 2024-12-31 Pure Storage, Inc. Data storage in a zone drive
CN105320621A (zh) * 2014-08-04 2016-02-10 株式会社东芝 存储器系统以及信息处理装置
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US12158814B2 (en) 2014-08-07 2024-12-03 Pure Storage, Inc. Granular voltage tuning
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US9928168B2 (en) * 2016-01-11 2018-03-27 Qualcomm Incorporated Non-volatile random access system memory with DRAM program caching
US9847105B2 (en) * 2016-02-01 2017-12-19 Samsung Electric Co., Ltd. Memory package, memory module including the same, and operation method of memory package
WO2017145360A1 (ja) * 2016-02-26 2017-08-31 三菱電機株式会社 情報処理装置及び情報処理方法
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US12235743B2 (en) 2016-06-03 2025-02-25 Pure Storage, Inc. Efficient partitioning for storage system resiliency groups
US10942844B2 (en) * 2016-06-10 2021-03-09 Apple Inc. Reserved memory in memory management system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10613974B2 (en) 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US20180095788A1 (en) 2016-10-04 2018-04-05 Pure Storage, Inc. Scheduling operations for a storage device
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US12067274B2 (en) 2018-09-06 2024-08-20 Pure Storage, Inc. Writing segments and erase blocks based on ordering
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
CN108572799B (zh) * 2018-04-12 2021-05-04 上海理工大学 一种双向哈希链表的异构内存系统数据页迁移方法
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US12079494B2 (en) 2018-04-27 2024-09-03 Pure Storage, Inc. Optimizing storage system upgrades to preserve resources
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11157179B2 (en) 2019-12-03 2021-10-26 Pure Storage, Inc. Dynamic allocation of blocks of a storage device based on power loss protection
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US12056365B2 (en) 2020-04-24 2024-08-06 Pure Storage, Inc. Resiliency for a storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US12229437B2 (en) 2020-12-31 2025-02-18 Pure Storage, Inc. Dynamic buffer for storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US12067282B2 (en) 2020-12-31 2024-08-20 Pure Storage, Inc. Write path selection
US12093545B2 (en) 2020-12-31 2024-09-17 Pure Storage, Inc. Storage system with selectable write modes
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US12061814B2 (en) 2021-01-25 2024-08-13 Pure Storage, Inc. Using data similarity to select segments for garbage collection
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
US12204788B1 (en) 2023-07-21 2025-01-21 Pure Storage, Inc. Dynamic plane selection in data storage system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4281421B2 (ja) * 2003-06-06 2009-06-17 ソニー株式会社 情報処理システム及びその制御方法、並びにコンピュータ・プログラム
JP3906825B2 (ja) * 2003-06-17 2007-04-18 日本電気株式会社 計算機システム、計算機システム起動方法およびプログラム
US20060053325A1 (en) 2004-09-03 2006-03-09 Chary Ram V Storing system information in a low-latency persistent memory device upon transition to a lower-power state
WO2008055271A2 (en) * 2006-11-04 2008-05-08 Virident Systems, Inc. Seamless application access to hybrid main memory
JP5060241B2 (ja) 2007-10-10 2012-10-31 キヤノン株式会社 情報処理装置及びその制御方法
US7971081B2 (en) * 2007-12-28 2011-06-28 Intel Corporation System and method for fast platform hibernate and resume
JP4986247B2 (ja) 2009-06-02 2012-07-25 株式会社ユビキタス プログラム、制御方法、並びに制御装置
KR20130033230A (ko) * 2011-09-26 2013-04-03 삼성전자주식회사 하이브리드 메모리 장치, 이를 포함하는 시스템, 및 하이브리드 메모리장치의 데이터 기입 및 독출 방법
US9829951B2 (en) * 2011-12-13 2017-11-28 Intel Corporation Enhanced system sleep state support in servers using non-volatile random access memory
WO2013089686A1 (en) * 2011-12-13 2013-06-20 Intel Corporation A method and system for providing instant responses to sleep state transitions with non-volatile random access memory
JP6335616B2 (ja) * 2013-04-30 2018-05-30 株式会社半導体エネルギー研究所 半導体装置

Also Published As

Publication number Publication date
US20170075618A1 (en) 2017-03-16
US20150363311A1 (en) 2015-12-17
US9552291B2 (en) 2017-01-24
JP2016004420A (ja) 2016-01-12
US9891854B2 (en) 2018-02-13

Similar Documents

Publication Publication Date Title
JP5901698B2 (ja) メモリ管理方法
CN104603750B (zh) 使用bpram来布局和执行软件应用
US8312213B2 (en) Method to speed up access to an external storage device and an external storage system
CN104583948B (zh) 使用bpram来布局和执行操作系统
TWI407300B (zh) 電源管理控制器與方法
KR101562973B1 (ko) 메모리 장치 및 메모리 장치의 동작 방법
JP5783809B2 (ja) 情報処理装置、起動方法およびプログラム
CN102122250A (zh) 计算机系统及其操作系统切换方法
JP2013520744A (ja) 最小ブートイメージの生成方法及びその装置
JP2008276555A (ja) 情報処理装置、およびファームウェア更新方法
JP5426576B2 (ja) 仮想化技術を利用したデータ入出力方法及び装置
US9575827B2 (en) Memory management program, memory management method, and memory management device
EP2518626A2 (en) Electronic device and booting method thereof
JP2011209963A (ja) メモリ制御装置及びメモリ制御方法
US9507657B2 (en) Investigation program, information processing apparatus, and information processing method
JP6004923B2 (ja) 情報処理装置及びその制御方法とプログラム
US20200133562A1 (en) Information processing device, controlling method and program
US20150262696A1 (en) Memory system and control method of memory system
KR100994723B1 (ko) 시스템에서 초기 구동시간을 단축시키는 선택적 서스펜드 리쥼 방법 및 그 기록매체
KR20150058092A (ko) 네트워크 부트 시스템
JP6740719B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2013109404A (ja) 情報処理装置
TWI522924B (zh) 電子裝置及其切換作業系統的方法
JP4182928B2 (ja) 情報処理装置、メモリ管理プログラムおよびメモリ管理方法
JP4572205B2 (ja) フラッシュメモリドライブ装置、その制御方法及びそのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160112

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160122

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160204

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160308

R150 Certificate of patent or registration of utility model

Ref document number: 5901698

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees