JP5901698B2 - メモリ管理方法 - Google Patents
メモリ管理方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C14/00—Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
- G11C14/0009—Digital 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
(a)コンピュータの起動時において、プログラムおよび/またはデータをDRAMにロードすることに加えて、所定のプログラムおよび/またはリードオンリーのデータをNVRAMにロードするステップと、
(b)コンピュータの通常動作からサスペンド状態への状態遷移において、DRAMのデータをページ単位でNVRAMに移動するステップと、
(c)コンピュータのサスペンド状態から通常動作への状態遷移において、コンピュータによるプログラムの実行のためにNVRAMからページ単位でデータを読み出すステップと、
(d)NVRAMからページ単位でデータを読み出すステップ(c)において、NVRAMへのページ単位でのデータの書き込みが発生した場合、当該データの書き込みを停止し、当該データの書き込みが行われるNVRAMのデータ領域のデータをページ単位でDRAMに移動させるステップと、
(e)データの移動後のDRAMにおいて、ページ単位でのデータの書き込みを行うステップと、を含む。
S0:通常の動作状態
S4:Suspend to DiskまたはHibernationと呼ばれる状態で、メモリ内容も失われる。メモリの内容をHDD等に書き出し、電源断の状態にするのと同じである。
S5:完全なる電源断である。
本発明では、後述するように、上記の3状態間の次の3つの状態遷移に対応した主メモリの管理を実行する。
T50 : S5 → S0
T04 : S0 → S4
T40 : S4 → S0
<状態遷移:T50>
図3の(a)に示すように、T50の状態遷移は、コンピュータの電源断(S5)から通常動作(S0)への起動時(コールドスタート)での状態遷移である。図3の(b)は、各要素間のデータ等の移動、保管の状態を示す。このコールドスタート時において、BIOSブートローダがOSブートローダを呼び出す。OSのブートローダは、矢印Aで示すように、プログラムやデータをHDD等20(70)からDRAM210にロードする。また、矢印Bで示すように、リードオンリーとわかっているプログラムやデータはNVRAM220にロードする。さらに、 ネットワークや外部ストレージを代表とする入出力装置用バッファは、頻繁に書き込みが発生するのでDRAM210上にマップする。
図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へ移動する。
図5の(a)に示すように、T40の状態遷移は、コンピュータのHibernation状態(S4)から通常動作(S0)への状態遷移である。図4の(b)、(c)、(d)は、各要素間のデータ等の移動、保管の状態を示す。T40の状態遷移では、CPU10がNVRAM220から直接データを読み込みながらプログラムを実行する。最初に、ページテーブルはDRAM210に移動しておく。(b)に示すように、NVRAM220にマップされたページをリードオンリー属性にしておく。(c)に示すように、そのページにCPU10から書き込み要求があった場合は例外を発生させ、すなわち、ページ書き込みフォールトを起こして、その書き込み要求を一旦拒否する。(d)に示すように、そのページのデータをNVRAM220からDRAM210へ移動する。その後、DRAM210へデータを書き込む。最後にページテーブルを更新する。
図4を参照しながら説明した状態遷移T04で移動するデータ量を少なくするため、また、DRAM210の使用率を下げ、空き領域を確保するため、DRAM210上のページをNVRAM220上に移動するオプションを設けることができる。図6を参照しながらこの内容について説明する。
(条件1): 過去Tu秒間使用されていなかったDRAM210のページをNVRAM220へ移動する。
(条件2): 過去Tw秒間書き込みがなかったDRAM210のページをNVRAM220へ移動する。
20 記憶手段
70 外部記憶装置
100 コンピュータ
200 主メモリ
210 DRAM
220 NVRAM
Claims (8)
- DRAM及びNVRAMを含む主メモリを備えるコンピュータの動作状態の遷移に応じて主メモリを管理するための方法であって、
(a)コンピュータの起動時において、プログラムおよび/またはデータをDRAMにロードすることに加えて、所定のプログラムおよび/またはリードオンリーのデータをNVRAMにロードするステップと、
(b)コンピュータの通常動作からサスペンド状態への状態遷移において、DRAMのデータをページ単位でNVRAMに移動するステップと、
(c)コンピュータのサスペンド状態から通常動作への状態遷移において、コンピュータによるプログラムの実行のためにNVRAMからページ単位でデータを読み出すステップと、
(d)前記NVRAMからページ単位でデータを読み出すステップ(c)において、NVRAMへのページ単位でのデータの書き込みが発生した場合、当該データの書き込みを停止し、当該データの書き込みが行われるNVRAMのデータ領域のデータをページ単位でDRAMに移動させるステップと、
(e)前記データの移動後のDRAMにおいて、前記ページ単位でのデータの書き込みを行うステップと、を含む方法。 - 前記DRAMの使用状態を検出するステップと、
T1時間の間読み出しがない、あるいはT2時間の間書き込みがない前記DRAMのページを前記NVRAMに移動するステップと、をさらに含む請求項1に記載の方法。 - 前記DRAMの使用状態を検出するステップは、(i)所定の時間間隔で、(ii)前記コンピュータが備える演算装置の稼働率が所定値以下になった場合に、または(iii)前記コンピュータへの入力が所定時間なかった場合に実行される、請求項2に記載の方法。
- 前記DRAMのデータをページ単位でNVRAMに移動するステップ(b)は、前記DRAMのデータを外部記憶装置に移動するステップを含む、請求項1に記載の方法。
- 前記DRAMのデータをページ単位でNVRAMに移動するステップ(b)は、当該データの移動毎に対応するページテーブルを更新するステップを含む、請求項1または4に記載の方法。
- 前記データの移動後のDRAMにおいて、前記ページ単位でのデータの書き込みを行うステップ(e)は、当該データの書き込み毎に対応するページテーブルを更新するステップを含む、請求項1に記載の方法。
- 前記コンピュータの動作状態は、アドバンスド・コンフィグレーション・アンド・パワー・インターフェイス(ACPI)規格に従う動作状態である、請求項1に記載の方法。
- 請求項1〜7のいずれか1項の各ステップを実行するためのコンピュータ・プログラム。
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)
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)
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 | 株式会社半導体エネルギー研究所 | 半導体装置 |
-
2014
- 2014-06-17 JP JP2014124370A patent/JP5901698B2/ja not_active Expired - Fee Related
-
2015
- 2015-05-27 US US14/722,532 patent/US9552291B2/en not_active Expired - Fee Related
-
2016
- 2016-11-11 US US15/349,391 patent/US9891854B2/en not_active Expired - Fee Related
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 |